Generic enhancements (#1447)

* Disable hardware wallets for Monero.com * disable ble permission on Monero.com * code cleanup [skip ci] * Fix missing Trade bytes issue

Omar Hatem committed May 13, 2024 at 23:59 UTC e92e8df3aaab119679f94d4561a0931d0a305a82
17 files changed +499 -228
assets/text/Monerocom_Release_Notes.txt
+1 -1
@@ -1 +1 @@
1 -Generic bug fixes and enhancements
\ No newline at end of file
1 +Bug fixes and generic enhancements
\ No newline at end of file
assets/text/Release_Notes.txt
-2
@@ -1,3 +1 @@
1 -Hardware wallets support for Bitcoin, Ethereum and Polygon
2 -Security enhancements
1 Bug fixes and generic enhancements
\ No newline at end of file
cw_bitcoin/pubspec.lock
+52 -20
@@ -217,10 +217,10 @@ packages:
217 dependency: transitive
218 description:
219 name: collection
220 - sha256: "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c"
220 + sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a
221 url: "https://pub.dev"
222 source: hosted
223 - version: "1.17.1"
223 + version: "1.18.0"
224 convert:
225 dependency: transitive
226 description:
@@ -446,6 +446,30 @@ packages:
446 url: "https://pub.dev"
447 source: hosted
448 version: "4.8.1"
449 + leak_tracker:
450 + dependency: transitive
451 + description:
452 + name: leak_tracker
453 + sha256: "78eb209deea09858f5269f5a5b02be4049535f568c07b275096836f01ea323fa"
454 + url: "https://pub.dev"
455 + source: hosted
456 + version: "10.0.0"
457 + leak_tracker_flutter_testing:
458 + dependency: transitive
459 + description:
460 + name: leak_tracker_flutter_testing
461 + sha256: b46c5e37c19120a8a01918cfaf293547f47269f7cb4b0058f21531c2465d6ef0
462 + url: "https://pub.dev"
463 + source: hosted
464 + version: "2.0.1"
465 + leak_tracker_testing:
466 + dependency: transitive
467 + description:
468 + name: leak_tracker_testing
469 + sha256: a597f72a664dbd293f3bfc51f9ba69816f84dcd403cdac7066cb3f6003f3ab47
470 + url: "https://pub.dev"
471 + source: hosted
472 + version: "2.0.1"
473 ledger_bitcoin:
474 dependency: "direct main"
475 description:
@@ -483,26 +507,26 @@ packages:
507 dependency: transitive
508 description:
509 name: matcher
486 - sha256: "6501fbd55da300384b768785b83e5ce66991266cec21af89ab9ae7f5ce1c4cbb"
510 + sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb
511 url: "https://pub.dev"
512 source: hosted
489 - version: "0.12.15"
513 + version: "0.12.16+1"
514 material_color_utilities:
515 dependency: transitive
516 description:
517 name: material_color_utilities
494 - sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724
518 + sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a"
519 url: "https://pub.dev"
520 source: hosted
497 - version: "0.2.0"
521 + version: "0.8.0"
522 meta:
523 dependency: transitive
524 description:
525 name: meta
502 - sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3"
526 + sha256: d584fa6707a52763a52446f02cc621b077888fb63b93bbcb1143a7be5a0c0c04
527 url: "https://pub.dev"
528 source: hosted
505 - version: "1.9.1"
529 + version: "1.11.0"
530 mime:
531 dependency: transitive
532 description:
@@ -547,10 +571,10 @@ packages:
571 dependency: transitive
572 description:
573 name: path
550 - sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917"
574 + sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af"
575 url: "https://pub.dev"
576 source: hosted
553 - version: "1.8.3"
577 + version: "1.9.0"
578 path_provider:
579 dependency: "direct main"
580 description:
@@ -736,26 +760,26 @@ packages:
760 dependency: transitive
761 description:
762 name: source_span
739 - sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250
763 + sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c"
764 url: "https://pub.dev"
765 source: hosted
742 - version: "1.9.1"
766 + version: "1.10.0"
767 stack_trace:
768 dependency: transitive
769 description:
770 name: stack_trace
747 - sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5
771 + sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b"
772 url: "https://pub.dev"
773 source: hosted
750 - version: "1.11.0"
774 + version: "1.11.1"
775 stream_channel:
776 dependency: transitive
777 description:
778 name: stream_channel
755 - sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8"
779 + sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7
780 url: "https://pub.dev"
781 source: hosted
758 - version: "2.1.1"
782 + version: "2.1.2"
783 stream_transform:
784 dependency: transitive
785 description:
@@ -784,10 +808,10 @@ packages:
808 dependency: transitive
809 description:
810 name: test_api
787 - sha256: eb6ac1540b26de412b3403a163d919ba86f6a973fe6cc50ae3541b80092fdcfb
811 + sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b"
812 url: "https://pub.dev"
813 source: hosted
790 - version: "0.5.1"
814 + version: "0.6.1"
815 timing:
816 dependency: transitive
817 description:
@@ -820,8 +844,16 @@ packages:
844 url: "https://pub.dev"
845 source: hosted
846 version: "2.1.4"
823 - watcher:
847 + vm_service:
848 dependency: transitive
849 + description:
850 + name: vm_service
851 + sha256: b3d56ff4341b8f182b96aceb2fa20e3dcb336b9f867bc0eafc0de10f1048e957
852 + url: "https://pub.dev"
853 + source: hosted
854 + version: "13.0.0"
855 + watcher:
856 + dependency: "direct overridden"
857 description:
858 name: watcher
859 sha256: "3d2ad6751b3c16cf07c7fca317a1413b3f26530319181b37e3b9039b84fc01d8"
@@ -861,5 +893,5 @@ packages:
893 source: hosted
894 version: "3.1.2"
895 sdks:
864 - dart: ">=3.0.6 <4.0.0"
896 + dart: ">=3.2.0-0 <4.0.0"
897 flutter: ">=3.10.0"
cw_core/pubspec.lock
+52 -20
@@ -149,10 +149,10 @@ packages:
149 dependency: transitive
150 description:
151 name: collection
152 - sha256: "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c"
152 + sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a
153 url: "https://pub.dev"
154 source: hosted
155 - version: "1.17.1"
155 + version: "1.18.0"
156 convert:
157 dependency: transitive
158 description:
@@ -331,6 +331,30 @@ packages:
331 url: "https://pub.dev"
332 source: hosted
333 version: "4.8.1"
334 + leak_tracker:
335 + dependency: transitive
336 + description:
337 + name: leak_tracker
338 + sha256: "78eb209deea09858f5269f5a5b02be4049535f568c07b275096836f01ea323fa"
339 + url: "https://pub.dev"
340 + source: hosted
341 + version: "10.0.0"
342 + leak_tracker_flutter_testing:
343 + dependency: transitive
344 + description:
345 + name: leak_tracker_flutter_testing
346 + sha256: b46c5e37c19120a8a01918cfaf293547f47269f7cb4b0058f21531c2465d6ef0
347 + url: "https://pub.dev"
348 + source: hosted
349 + version: "2.0.1"
350 + leak_tracker_testing:
351 + dependency: transitive
352 + description:
353 + name: leak_tracker_testing
354 + sha256: a597f72a664dbd293f3bfc51f9ba69816f84dcd403cdac7066cb3f6003f3ab47
355 + url: "https://pub.dev"
356 + source: hosted
357 + version: "2.0.1"
358 logging:
359 dependency: transitive
360 description:
@@ -343,26 +367,26 @@ packages:
367 dependency: transitive
368 description:
369 name: matcher
346 - sha256: "6501fbd55da300384b768785b83e5ce66991266cec21af89ab9ae7f5ce1c4cbb"
370 + sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb
371 url: "https://pub.dev"
372 source: hosted
349 - version: "0.12.15"
373 + version: "0.12.16+1"
374 material_color_utilities:
375 dependency: transitive
376 description:
377 name: material_color_utilities
354 - sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724
378 + sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a"
379 url: "https://pub.dev"
380 source: hosted
357 - version: "0.2.0"
381 + version: "0.8.0"
382 meta:
383 dependency: transitive
384 description:
385 name: meta
362 - sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3"
386 + sha256: d584fa6707a52763a52446f02cc621b077888fb63b93bbcb1143a7be5a0c0c04
387 url: "https://pub.dev"
388 source: hosted
365 - version: "1.9.1"
389 + version: "1.11.0"
390 mime:
391 dependency: transitive
392 description:
@@ -407,10 +431,10 @@ packages:
431 dependency: transitive
432 description:
433 name: path
410 - sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917"
434 + sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af"
435 url: "https://pub.dev"
436 source: hosted
413 - version: "1.8.3"
437 + version: "1.9.0"
438 path_provider:
439 dependency: "direct main"
440 description:
@@ -564,26 +588,26 @@ packages:
588 dependency: transitive
589 description:
590 name: source_span
567 - sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250
591 + sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c"
592 url: "https://pub.dev"
593 source: hosted
570 - version: "1.9.1"
594 + version: "1.10.0"
595 stack_trace:
596 dependency: transitive
597 description:
598 name: stack_trace
575 - sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5
599 + sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b"
600 url: "https://pub.dev"
601 source: hosted
578 - version: "1.11.0"
602 + version: "1.11.1"
603 stream_channel:
604 dependency: transitive
605 description:
606 name: stream_channel
583 - sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8"
607 + sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7
608 url: "https://pub.dev"
609 source: hosted
586 - version: "2.1.1"
610 + version: "2.1.2"
611 stream_transform:
612 dependency: transitive
613 description:
@@ -612,10 +636,10 @@ packages:
636 dependency: transitive
637 description:
638 name: test_api
615 - sha256: eb6ac1540b26de412b3403a163d919ba86f6a973fe6cc50ae3541b80092fdcfb
639 + sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b"
640 url: "https://pub.dev"
641 source: hosted
618 - version: "0.5.1"
642 + version: "0.6.1"
643 timing:
644 dependency: transitive
645 description:
@@ -640,8 +664,16 @@ packages:
664 url: "https://pub.dev"
665 source: hosted
666 version: "2.1.4"
643 - watcher:
667 + vm_service:
668 dependency: transitive
669 + description:
670 + name: vm_service
671 + sha256: b3d56ff4341b8f182b96aceb2fa20e3dcb336b9f867bc0eafc0de10f1048e957
672 + url: "https://pub.dev"
673 + source: hosted
674 + version: "13.0.0"
675 + watcher:
676 + dependency: "direct overridden"
677 description:
678 name: watcher
679 sha256: "3d2ad6751b3c16cf07c7fca317a1413b3f26530319181b37e3b9039b84fc01d8"
@@ -681,5 +713,5 @@ packages:
713 source: hosted
714 version: "3.1.2"
715 sdks:
684 - dart: ">=3.0.0 <4.0.0"
716 + dart: ">=3.2.0-0 <4.0.0"
717 flutter: ">=3.10.0"
cw_haven/pubspec.lock
+49 -25
@@ -149,10 +149,10 @@ packages:
149 dependency: transitive
150 description:
151 name: collection
152 - sha256: f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687
152 + sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a
153 url: "https://pub.dev"
154 source: hosted
155 - version: "1.17.2"
155 + version: "1.18.0"
156 convert:
157 dependency: transitive
158 description:
@@ -338,6 +338,30 @@ packages:
338 url: "https://pub.dev"
339 source: hosted
340 version: "4.8.0"
341 + leak_tracker:
342 + dependency: transitive
343 + description:
344 + name: leak_tracker
345 + sha256: "78eb209deea09858f5269f5a5b02be4049535f568c07b275096836f01ea323fa"
346 + url: "https://pub.dev"
347 + source: hosted
348 + version: "10.0.0"
349 + leak_tracker_flutter_testing:
350 + dependency: transitive
351 + description:
352 + name: leak_tracker_flutter_testing
353 + sha256: b46c5e37c19120a8a01918cfaf293547f47269f7cb4b0058f21531c2465d6ef0
354 + url: "https://pub.dev"
355 + source: hosted
356 + version: "2.0.1"
357 + leak_tracker_testing:
358 + dependency: transitive
359 + description:
360 + name: leak_tracker_testing
361 + sha256: a597f72a664dbd293f3bfc51f9ba69816f84dcd403cdac7066cb3f6003f3ab47
362 + url: "https://pub.dev"
363 + source: hosted
364 + version: "2.0.1"
365 logging:
366 dependency: transitive
367 description:
@@ -350,26 +374,26 @@ packages:
374 dependency: transitive
375 description:
376 name: matcher
353 - sha256: "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e"
377 + sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb
378 url: "https://pub.dev"
379 source: hosted
356 - version: "0.12.16"
380 + version: "0.12.16+1"
381 material_color_utilities:
382 dependency: transitive
383 description:
384 name: material_color_utilities
361 - sha256: "9528f2f296073ff54cb9fee677df673ace1218163c3bc7628093e7eed5203d41"
385 + sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a"
386 url: "https://pub.dev"
387 source: hosted
364 - version: "0.5.0"
388 + version: "0.8.0"
389 meta:
390 dependency: transitive
391 description:
392 name: meta
369 - sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3"
393 + sha256: d584fa6707a52763a52446f02cc621b077888fb63b93bbcb1143a7be5a0c0c04
394 url: "https://pub.dev"
395 source: hosted
372 - version: "1.9.1"
396 + version: "1.11.0"
397 mime:
398 dependency: transitive
399 description:
@@ -406,10 +430,10 @@ packages:
430 dependency: transitive
431 description:
432 name: path
409 - sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917"
433 + sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af"
434 url: "https://pub.dev"
435 source: hosted
412 - version: "1.8.3"
436 + version: "1.9.0"
437 path_provider:
438 dependency: "direct main"
439 description:
@@ -571,18 +595,18 @@ packages:
595 dependency: transitive
596 description:
597 name: stack_trace
574 - sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5
598 + sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b"
599 url: "https://pub.dev"
600 source: hosted
577 - version: "1.11.0"
601 + version: "1.11.1"
602 stream_channel:
603 dependency: transitive
604 description:
605 name: stream_channel
582 - sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8"
606 + sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7
607 url: "https://pub.dev"
608 source: hosted
585 - version: "2.1.1"
609 + version: "2.1.2"
610 stream_transform:
611 dependency: transitive
612 description:
@@ -611,10 +635,10 @@ packages:
635 dependency: transitive
636 description:
637 name: test_api
614 - sha256: "75760ffd7786fffdfb9597c35c5b27eaeec82be8edfb6d71d32651128ed7aab8"
638 + sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b"
639 url: "https://pub.dev"
640 source: hosted
617 - version: "0.6.0"
641 + version: "0.6.1"
642 timing:
643 dependency: transitive
644 description:
@@ -639,6 +663,14 @@ packages:
663 url: "https://pub.dev"
664 source: hosted
665 version: "2.1.4"
666 + vm_service:
667 + dependency: transitive
668 + description:
669 + name: vm_service
670 + sha256: b3d56ff4341b8f182b96aceb2fa20e3dcb336b9f867bc0eafc0de10f1048e957
671 + url: "https://pub.dev"
672 + source: hosted
673 + version: "13.0.0"
674 watcher:
675 dependency: "direct overridden"
676 description:
@@ -647,14 +679,6 @@ packages:
679 url: "https://pub.dev"
680 source: hosted
681 version: "1.1.0"
650 - web:
651 - dependency: transitive
652 - description:
653 - name: web
654 - sha256: dc8ccd225a2005c1be616fe02951e2e342092edf968cf0844220383757ef8f10
655 - url: "https://pub.dev"
656 - source: hosted
657 - version: "0.1.4-beta"
682 web_socket_channel:
683 dependency: transitive
684 description:
@@ -688,5 +712,5 @@ packages:
712 source: hosted
713 version: "3.1.1"
714 sdks:
691 - dart: ">=3.1.0-185.0.dev <4.0.0"
715 + dart: ">=3.2.0-0 <4.0.0"
716 flutter: ">=3.7.0"
cw_monero/example/pubspec.lock
+45 -21
@@ -53,10 +53,10 @@ packages:
53 dependency: transitive
54 description:
55 name: collection
56 - sha256: f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687
56 + sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a
57 url: "https://pub.dev"
58 source: hosted
59 - version: "1.17.2"
59 + version: "1.18.0"
60 convert:
61 dependency: transitive
62 description:
@@ -201,6 +201,30 @@ packages:
201 url: "https://pub.dev"
202 source: hosted
203 version: "0.6.7"
204 + leak_tracker:
205 + dependency: transitive
206 + description:
207 + name: leak_tracker
208 + sha256: "78eb209deea09858f5269f5a5b02be4049535f568c07b275096836f01ea323fa"
209 + url: "https://pub.dev"
210 + source: hosted
211 + version: "10.0.0"
212 + leak_tracker_flutter_testing:
213 + dependency: transitive
214 + description:
215 + name: leak_tracker_flutter_testing
216 + sha256: b46c5e37c19120a8a01918cfaf293547f47269f7cb4b0058f21531c2465d6ef0
217 + url: "https://pub.dev"
218 + source: hosted
219 + version: "2.0.1"
220 + leak_tracker_testing:
221 + dependency: transitive
222 + description:
223 + name: leak_tracker_testing
224 + sha256: a597f72a664dbd293f3bfc51f9ba69816f84dcd403cdac7066cb3f6003f3ab47
225 + url: "https://pub.dev"
226 + source: hosted
227 + version: "2.0.1"
228 lints:
229 dependency: transitive
230 description:
@@ -213,26 +237,26 @@ packages:
237 dependency: transitive
238 description:
239 name: matcher
216 - sha256: "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e"
240 + sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb
241 url: "https://pub.dev"
242 source: hosted
219 - version: "0.12.16"
243 + version: "0.12.16+1"
244 material_color_utilities:
245 dependency: transitive
246 description:
247 name: material_color_utilities
224 - sha256: "9528f2f296073ff54cb9fee677df673ace1218163c3bc7628093e7eed5203d41"
248 + sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a"
249 url: "https://pub.dev"
250 source: hosted
227 - version: "0.5.0"
251 + version: "0.8.0"
252 meta:
253 dependency: transitive
254 description:
255 name: meta
232 - sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3"
256 + sha256: d584fa6707a52763a52446f02cc621b077888fb63b93bbcb1143a7be5a0c0c04
257 url: "https://pub.dev"
258 source: hosted
235 - version: "1.9.1"
259 + version: "1.11.0"
260 mobx:
261 dependency: transitive
262 description:
@@ -245,10 +269,10 @@ packages:
269 dependency: transitive
270 description:
271 name: path
248 - sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917"
272 + sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af"
273 url: "https://pub.dev"
274 source: hosted
251 - version: "1.8.3"
275 + version: "1.9.0"
276 path_provider:
277 dependency: transitive
278 description:
@@ -362,18 +386,18 @@ packages:
386 dependency: transitive
387 description:
388 name: stack_trace
365 - sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5
389 + sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b"
390 url: "https://pub.dev"
391 source: hosted
368 - version: "1.11.0"
392 + version: "1.11.1"
393 stream_channel:
394 dependency: transitive
395 description:
396 name: stream_channel
373 - sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8"
397 + sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7
398 url: "https://pub.dev"
399 source: hosted
376 - version: "2.1.1"
400 + version: "2.1.2"
401 string_scanner:
402 dependency: transitive
403 description:
@@ -394,10 +418,10 @@ packages:
418 dependency: transitive
419 description:
420 name: test_api
397 - sha256: "75760ffd7786fffdfb9597c35c5b27eaeec82be8edfb6d71d32651128ed7aab8"
421 + sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b"
422 url: "https://pub.dev"
423 source: hosted
400 - version: "0.6.0"
424 + version: "0.6.1"
425 typed_data:
426 dependency: transitive
427 description:
@@ -414,14 +438,14 @@ packages:
438 url: "https://pub.dev"
439 source: hosted
440 version: "2.1.4"
417 - web:
441 + vm_service:
442 dependency: transitive
443 description:
420 - name: web
421 - sha256: dc8ccd225a2005c1be616fe02951e2e342092edf968cf0844220383757ef8f10
444 + name: vm_service
445 + sha256: b3d56ff4341b8f182b96aceb2fa20e3dcb336b9f867bc0eafc0de10f1048e957
446 url: "https://pub.dev"
447 source: hosted
424 - version: "0.1.4-beta"
448 + version: "13.0.0"
449 win32:
450 dependency: transitive
451 description:
@@ -439,5 +463,5 @@ packages:
463 source: hosted
464 version: "0.2.0+3"
465 sdks:
442 - dart: ">=3.1.0-185.0.dev <4.0.0"
466 + dart: ">=3.2.0-0 <4.0.0"
467 flutter: ">=3.7.0"
cw_monero/pubspec.lock
+49 -25
@@ -149,10 +149,10 @@ packages:
149 dependency: transitive
150 description:
151 name: collection
152 - sha256: f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687
152 + sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a
153 url: "https://pub.dev"
154 source: hosted
155 - version: "1.17.2"
155 + version: "1.18.0"
156 convert:
157 dependency: transitive
158 description:
@@ -354,6 +354,30 @@ packages:
354 url: "https://pub.dev"
355 source: hosted
356 version: "4.8.0"
357 + leak_tracker:
358 + dependency: transitive
359 + description:
360 + name: leak_tracker
361 + sha256: "78eb209deea09858f5269f5a5b02be4049535f568c07b275096836f01ea323fa"
362 + url: "https://pub.dev"
363 + source: hosted
364 + version: "10.0.0"
365 + leak_tracker_flutter_testing:
366 + dependency: transitive
367 + description:
368 + name: leak_tracker_flutter_testing
369 + sha256: b46c5e37c19120a8a01918cfaf293547f47269f7cb4b0058f21531c2465d6ef0
370 + url: "https://pub.dev"
371 + source: hosted
372 + version: "2.0.1"
373 + leak_tracker_testing:
374 + dependency: transitive
375 + description:
376 + name: leak_tracker_testing
377 + sha256: a597f72a664dbd293f3bfc51f9ba69816f84dcd403cdac7066cb3f6003f3ab47
378 + url: "https://pub.dev"
379 + source: hosted
380 + version: "2.0.1"
381 logging:
382 dependency: transitive
383 description:
@@ -366,26 +390,26 @@ packages:
390 dependency: transitive
391 description:
392 name: matcher
369 - sha256: "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e"
393 + sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb
394 url: "https://pub.dev"
395 source: hosted
372 - version: "0.12.16"
396 + version: "0.12.16+1"
397 material_color_utilities:
398 dependency: transitive
399 description:
400 name: material_color_utilities
377 - sha256: "9528f2f296073ff54cb9fee677df673ace1218163c3bc7628093e7eed5203d41"
401 + sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a"
402 url: "https://pub.dev"
403 source: hosted
380 - version: "0.5.0"
404 + version: "0.8.0"
405 meta:
406 dependency: transitive
407 description:
408 name: meta
385 - sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3"
409 + sha256: d584fa6707a52763a52446f02cc621b077888fb63b93bbcb1143a7be5a0c0c04
410 url: "https://pub.dev"
411 source: hosted
388 - version: "1.9.1"
412 + version: "1.11.0"
413 mime:
414 dependency: transitive
415 description:
@@ -422,10 +446,10 @@ packages:
446 dependency: transitive
447 description:
448 name: path
425 - sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917"
449 + sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af"
450 url: "https://pub.dev"
451 source: hosted
428 - version: "1.8.3"
452 + version: "1.9.0"
453 path_provider:
454 dependency: "direct main"
455 description:
@@ -595,18 +619,18 @@ packages:
619 dependency: transitive
620 description:
621 name: stack_trace
598 - sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5
622 + sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b"
623 url: "https://pub.dev"
624 source: hosted
601 - version: "1.11.0"
625 + version: "1.11.1"
626 stream_channel:
627 dependency: transitive
628 description:
629 name: stream_channel
606 - sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8"
630 + sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7
631 url: "https://pub.dev"
632 source: hosted
609 - version: "2.1.1"
633 + version: "2.1.2"
634 stream_transform:
635 dependency: transitive
636 description:
@@ -635,10 +659,10 @@ packages:
659 dependency: transitive
660 description:
661 name: test_api
638 - sha256: "75760ffd7786fffdfb9597c35c5b27eaeec82be8edfb6d71d32651128ed7aab8"
662 + sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b"
663 url: "https://pub.dev"
664 source: hosted
641 - version: "0.6.0"
665 + version: "0.6.1"
666 timing:
667 dependency: transitive
668 description:
@@ -663,6 +687,14 @@ packages:
687 url: "https://pub.dev"
688 source: hosted
689 version: "2.1.4"
690 + vm_service:
691 + dependency: transitive
692 + description:
693 + name: vm_service
694 + sha256: b3d56ff4341b8f182b96aceb2fa20e3dcb336b9f867bc0eafc0de10f1048e957
695 + url: "https://pub.dev"
696 + source: hosted
697 + version: "13.0.0"
698 watcher:
699 dependency: "direct overridden"
700 description:
@@ -671,14 +703,6 @@ packages:
703 url: "https://pub.dev"
704 source: hosted
705 version: "1.1.0"
674 - web:
675 - dependency: transitive
676 - description:
677 - name: web
678 - sha256: dc8ccd225a2005c1be616fe02951e2e342092edf968cf0844220383757ef8f10
679 - url: "https://pub.dev"
680 - source: hosted
681 - version: "0.1.4-beta"
706 web_socket_channel:
707 dependency: transitive
708 description:
@@ -712,5 +736,5 @@ packages:
736 source: hosted
737 version: "3.1.1"
738 sdks:
715 - dart: ">=3.1.0-185.0.dev <4.0.0"
739 + dart: ">=3.2.0-0 <4.0.0"
740 flutter: ">=3.7.0"
cw_nano/pubspec.lock
+52 -20
@@ -173,10 +173,10 @@ packages:
173 dependency: transitive
174 description:
175 name: collection
176 - sha256: "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c"
176 + sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a
177 url: "https://pub.dev"
178 source: hosted
179 - version: "1.17.1"
179 + version: "1.18.0"
180 convert:
181 dependency: transitive
182 description:
@@ -399,6 +399,30 @@ packages:
399 url: "https://pub.dev"
400 source: hosted
401 version: "4.8.1"
402 + leak_tracker:
403 + dependency: transitive
404 + description:
405 + name: leak_tracker
406 + sha256: "78eb209deea09858f5269f5a5b02be4049535f568c07b275096836f01ea323fa"
407 + url: "https://pub.dev"
408 + source: hosted
409 + version: "10.0.0"
410 + leak_tracker_flutter_testing:
411 + dependency: transitive
412 + description:
413 + name: leak_tracker_flutter_testing
414 + sha256: b46c5e37c19120a8a01918cfaf293547f47269f7cb4b0058f21531c2465d6ef0
415 + url: "https://pub.dev"
416 + source: hosted
417 + version: "2.0.1"
418 + leak_tracker_testing:
419 + dependency: transitive
420 + description:
421 + name: leak_tracker_testing
422 + sha256: a597f72a664dbd293f3bfc51f9ba69816f84dcd403cdac7066cb3f6003f3ab47
423 + url: "https://pub.dev"
424 + source: hosted
425 + version: "2.0.1"
426 libcrypto:
427 dependency: "direct main"
428 description:
@@ -419,26 +443,26 @@ packages:
443 dependency: transitive
444 description:
445 name: matcher
422 - sha256: "6501fbd55da300384b768785b83e5ce66991266cec21af89ab9ae7f5ce1c4cbb"
446 + sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb
447 url: "https://pub.dev"
448 source: hosted
425 - version: "0.12.15"
449 + version: "0.12.16+1"
450 material_color_utilities:
451 dependency: transitive
452 description:
453 name: material_color_utilities
430 - sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724
454 + sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a"
455 url: "https://pub.dev"
456 source: hosted
433 - version: "0.2.0"
457 + version: "0.8.0"
458 meta:
459 dependency: transitive
460 description:
461 name: meta
438 - sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3"
462 + sha256: d584fa6707a52763a52446f02cc621b077888fb63b93bbcb1143a7be5a0c0c04
463 url: "https://pub.dev"
464 source: hosted
441 - version: "1.9.1"
465 + version: "1.11.0"
466 mime:
467 dependency: transitive
468 description:
@@ -492,10 +516,10 @@ packages:
516 dependency: transitive
517 description:
518 name: path
495 - sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917"
519 + sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af"
520 url: "https://pub.dev"
521 source: hosted
498 - version: "1.8.3"
522 + version: "1.9.0"
523 path_provider:
524 dependency: transitive
525 description:
@@ -713,26 +737,26 @@ packages:
737 dependency: transitive
738 description:
739 name: source_span
716 - sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250
740 + sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c"
741 url: "https://pub.dev"
742 source: hosted
719 - version: "1.9.1"
743 + version: "1.10.0"
744 stack_trace:
745 dependency: transitive
746 description:
747 name: stack_trace
724 - sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5
748 + sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b"
749 url: "https://pub.dev"
750 source: hosted
727 - version: "1.11.0"
751 + version: "1.11.1"
752 stream_channel:
753 dependency: transitive
754 description:
755 name: stream_channel
732 - sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8"
756 + sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7
757 url: "https://pub.dev"
758 source: hosted
735 - version: "2.1.1"
759 + version: "2.1.2"
760 stream_transform:
761 dependency: transitive
762 description:
@@ -761,10 +785,10 @@ packages:
785 dependency: transitive
786 description:
787 name: test_api
764 - sha256: eb6ac1540b26de412b3403a163d919ba86f6a973fe6cc50ae3541b80092fdcfb
788 + sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b"
789 url: "https://pub.dev"
790 source: hosted
767 - version: "0.5.1"
791 + version: "0.6.1"
792 timing:
793 dependency: transitive
794 description:
@@ -789,8 +813,16 @@ packages:
813 url: "https://pub.dev"
814 source: hosted
815 version: "2.1.4"
792 - watcher:
816 + vm_service:
817 dependency: transitive
818 + description:
819 + name: vm_service
820 + sha256: b3d56ff4341b8f182b96aceb2fa20e3dcb336b9f867bc0eafc0de10f1048e957
821 + url: "https://pub.dev"
822 + source: hosted
823 + version: "13.0.0"
824 + watcher:
825 + dependency: "direct overridden"
826 description:
827 name: watcher
828 sha256: "3d2ad6751b3c16cf07c7fca317a1413b3f26530319181b37e3b9039b84fc01d8"
@@ -830,5 +862,5 @@ packages:
862 source: hosted
863 version: "3.1.2"
864 sdks:
833 - dart: ">=3.0.0 <4.0.0"
865 + dart: ">=3.2.0-0 <4.0.0"
866 flutter: ">=3.7.0"
ios/Podfile.lock
+1 -1
@@ -307,7 +307,7 @@ SPEC CHECKSUMS:
307 Toast: ec33c32b8688982cecc6348adeae667c1b9938da
308 uni_links: d97da20c7701486ba192624d99bffaaffcfc298a
309 UnstoppableDomainsResolution: c3c67f4d0a5e2437cb00d4bd50c2e00d6e743841
310 - url_launcher_ios: 6116280ddcfe98ab8820085d8d76ae7449447586
310 + url_launcher_ios: 5334b05cef931de560670eeae103fd3e431ac3fe
311 wakelock_plus: 8b09852c8876491e4b6d179e17dfe2a0b5f60d47
312 workmanager: 0afdcf5628bbde6924c21af7836fed07b42e30e6
313
lib/exchange/trade.dart
+122 -16
@@ -5,9 +5,6 @@ import 'package:cw_core/format_amount.dart';
5 import 'package:cw_core/hive_type_ids.dart';
6 import 'package:hive/hive.dart';
7
8 -part 'trade.g.dart';
9 -
10 -@HiveType(typeId: Trade.typeId)
8 class Trade extends HiveObject {
9 Trade({
10 required this.id,
@@ -32,6 +29,7 @@ class Trade extends HiveObject {
29 this.txId,
30 this.isRefund,
31 this.isSendAll,
32 + this.router,
33 }) {
34 if (provider != null) providerRaw = provider.raw;
35
@@ -121,21 +119,26 @@ class Trade extends HiveObject {
119 @HiveField(21)
120 bool? isSendAll;
121
122 + @HiveField(22)
123 + String? router;
124 +
125 static Trade fromMap(Map<String, Object?> map) {
126 return Trade(
126 - id: map['id'] as String,
127 - provider: ExchangeProviderDescription.deserialize(raw: map['provider'] as int),
128 - from: CryptoCurrency.deserialize(raw: map['input'] as int),
129 - to: CryptoCurrency.deserialize(raw: map['output'] as int),
130 - createdAt:
131 - map['date'] != null ? DateTime.fromMillisecondsSinceEpoch(map['date'] as int) : null,
132 - amount: map['amount'] as String,
133 - walletId: map['wallet_id'] as String,
134 - fromWalletAddress: map['from_wallet_address'] as String?,
135 - memo: map['memo'] as String?,
136 - txId: map['tx_id'] as String?,
137 - isRefund: map['isRefund'] as bool?,
138 - isSendAll: map['isSendAll'] as bool?);
127 + id: map['id'] as String,
128 + provider: ExchangeProviderDescription.deserialize(raw: map['provider'] as int),
129 + from: CryptoCurrency.deserialize(raw: map['input'] as int),
130 + to: CryptoCurrency.deserialize(raw: map['output'] as int),
131 + createdAt:
132 + map['date'] != null ? DateTime.fromMillisecondsSinceEpoch(map['date'] as int) : null,
133 + amount: map['amount'] as String,
134 + walletId: map['wallet_id'] as String,
135 + fromWalletAddress: map['from_wallet_address'] as String?,
136 + memo: map['memo'] as String?,
137 + txId: map['tx_id'] as String?,
138 + isRefund: map['isRefund'] as bool?,
139 + isSendAll: map['isSendAll'] as bool?,
140 + router: map['router'] as String?,
141 + );
142 }
143
144 Map<String, dynamic> toMap() {
@@ -152,8 +155,111 @@ class Trade extends HiveObject {
155 'tx_id': txId,
156 'isRefund': isRefund,
157 'isSendAll': isSendAll,
158 + 'router': router,
159 };
160 }
161
162 String amountFormatted() => formatAmount(amount);
163 }
164 +
165 +class TradeAdapter extends TypeAdapter<Trade> {
166 + @override
167 + final int typeId = Trade.typeId;
168 +
169 + @override
170 + Trade read(BinaryReader reader) {
171 + final numOfFields = reader.readByte();
172 + final fields = <int, dynamic>{};
173 + for (int i = 0; i < numOfFields; i++) {
174 + try {
175 + fields[reader.readByte()] = reader.read();
176 + } catch (_) {}
177 + }
178 +
179 + return Trade(
180 + id: fields[0] == null ? '' : fields[0] as String,
181 + amount: fields[7] == null ? '' : fields[7] as String,
182 + createdAt: fields[5] as DateTime?,
183 + expiredAt: fields[6] as DateTime?,
184 + inputAddress: fields[8] as String?,
185 + extraId: fields[9] as String?,
186 + outputTransaction: fields[10] as String?,
187 + refundAddress: fields[11] as String?,
188 + walletId: fields[12] as String?,
189 + payoutAddress: fields[13] as String?,
190 + password: fields[14] as String?,
191 + providerId: fields[15] as String?,
192 + providerName: fields[16] as String?,
193 + fromWalletAddress: fields[17] as String?,
194 + memo: fields[18] as String?,
195 + txId: fields[19] as String?,
196 + isRefund: fields[20] as bool?,
197 + isSendAll: fields[21] as bool?,
198 + router: fields[22] as String?,
199 + )
200 + ..providerRaw = fields[1] == null ? 0 : fields[1] as int
201 + ..fromRaw = fields[2] == null ? 0 : fields[2] as int
202 + ..toRaw = fields[3] == null ? 0 : fields[3] as int
203 + ..stateRaw = fields[4] == null ? '' : fields[4] as String;
204 + }
205 +
206 + @override
207 + void write(BinaryWriter writer, Trade obj) {
208 + writer
209 + ..writeByte(23)
210 + ..writeByte(0)
211 + ..write(obj.id)
212 + ..writeByte(1)
213 + ..write(obj.providerRaw)
214 + ..writeByte(2)
215 + ..write(obj.fromRaw)
216 + ..writeByte(3)
217 + ..write(obj.toRaw)
218 + ..writeByte(4)
219 + ..write(obj.stateRaw)
220 + ..writeByte(5)
221 + ..write(obj.createdAt)
222 + ..writeByte(6)
223 + ..write(obj.expiredAt)
224 + ..writeByte(7)
225 + ..write(obj.amount)
226 + ..writeByte(8)
227 + ..write(obj.inputAddress)
228 + ..writeByte(9)
229 + ..write(obj.extraId)
230 + ..writeByte(10)
231 + ..write(obj.outputTransaction)
232 + ..writeByte(11)
233 + ..write(obj.refundAddress)
234 + ..writeByte(12)
235 + ..write(obj.walletId)
236 + ..writeByte(13)
237 + ..write(obj.payoutAddress)
238 + ..writeByte(14)
239 + ..write(obj.password)
240 + ..writeByte(15)
241 + ..write(obj.providerId)
242 + ..writeByte(16)
243 + ..write(obj.providerName)
244 + ..writeByte(17)
245 + ..write(obj.fromWalletAddress)
246 + ..writeByte(18)
247 + ..write(obj.memo)
248 + ..writeByte(19)
249 + ..write(obj.txId)
250 + ..writeByte(20)
251 + ..write(obj.isRefund)
252 + ..writeByte(21)
253 + ..write(obj.isSendAll)
254 + ..writeByte(22)
255 + ..write(obj.router);
256 + }
257 +
258 + @override
259 + int get hashCode => typeId.hashCode;
260 +
261 + @override
262 + bool operator ==(Object other) =>
263 + identical(this, other) ||
264 + other is TradeAdapter && runtimeType == other.runtimeType && typeId == other.typeId;
265 +}
lib/main.dart
+27 -59
@@ -5,7 +5,6 @@ import 'package:cake_wallet/core/secure_storage.dart';
5 import 'package:cake_wallet/entities/language_service.dart';
6 import 'package:cake_wallet/buy/order.dart';
7 import 'package:cake_wallet/locales/locale.dart';
8 -import 'package:cake_wallet/store/yat/yat_store.dart';
8 import 'package:cake_wallet/utils/device_info.dart';
9 import 'package:cake_wallet/utils/exception_handler.dart';
10 import 'package:cake_wallet/view_model/link_view_model.dart';
@@ -38,7 +37,6 @@ import 'package:cake_wallet/entities/template.dart';
37 import 'package:cake_wallet/exchange/trade.dart';
38 import 'package:cake_wallet/exchange/exchange_template.dart';
39 import 'package:cake_wallet/src/screens/root/root.dart';
41 -import 'package:uni_links/uni_links.dart';
40 import 'package:cw_core/unspent_coins_info.dart';
41 import 'package:cake_wallet/monero/monero.dart';
42 import 'package:cw_core/cake_hive.dart';
@@ -46,7 +44,7 @@ import 'package:cw_core/window_size.dart';
44
45 final navigatorKey = GlobalKey<NavigatorState>();
46 final rootKey = GlobalKey<RootState>();
49 -final RouteObserver<PageRoute> routeObserver = RouteObserver<PageRoute>();
47 +final RouteObserver<PageRoute<dynamic>> routeObserver = RouteObserver<PageRoute<dynamic>>();
48
49 Future<void> main() async {
50 await runZonedGuarded(() async {
@@ -63,13 +61,38 @@ Future<void> main() async {
61 };
62
63 await setDefaultMinimumWindowSize();
66 -
64 +
65 await CakeHive.close();
66
67 await initializeAppConfigs();
68
69 runApp(App());
70 }, (error, stackTrace) async {
71 + runApp(
72 + MaterialApp(
73 + debugShowCheckedModeBanner: false,
74 + home: Scaffold(
75 + body: SingleChildScrollView(
76 + child: Container(
77 + margin: EdgeInsets.only(top: 50, left: 20, right: 20, bottom: 20),
78 + child: Column(
79 + children: [
80 + Text(
81 + 'Error:\n${error.toString()}',
82 + style: TextStyle(fontSize: 22),
83 + ),
84 + Text(
85 + 'Stack trace:\n${stackTrace.toString()}',
86 + style: TextStyle(fontSize: 16),
87 + ),
88 + ],
89 + ),
90 + ),
91 + ),
92 + ),
93 + ),
94 + );
95 +
96 ExceptionHandler.onError(FlutterErrorDetails(exception: error, stack: stackTrace));
97 });
98 }
@@ -229,61 +252,6 @@ class App extends StatefulWidget {
252 }
253
254 class AppState extends State<App> with SingleTickerProviderStateMixin {
232 - AppState() : yatStore = getIt.get<YatStore>();
233 -
234 - YatStore yatStore;
235 - StreamSubscription? stream;
236 -
237 - @override
238 - void initState() {
239 - super.initState();
240 - //_handleIncomingLinks();
241 - //_handleInitialUri();
242 - }
243 -
244 - Future<void> _handleInitialUri() async {
245 - try {
246 - final uri = await getInitialUri();
247 - print('uri: $uri');
248 - if (uri == null) {
249 - return;
250 - }
251 - if (!mounted) return;
252 - //_fetchEmojiFromUri(uri);
253 - } catch (e) {
254 - if (!mounted) return;
255 - print(e.toString());
256 - }
257 - }
258 -
259 - void _handleIncomingLinks() {
260 - if (!kIsWeb) {
261 - stream = getUriLinksStream().listen((Uri? uri) {
262 - print('uri: $uri');
263 - if (!mounted) return;
264 - //_fetchEmojiFromUri(uri);
265 - }, onError: (Object error) {
266 - if (!mounted) return;
267 - print('Error: $error');
268 - });
269 - }
270 - }
271 -
272 - void _fetchEmojiFromUri(Uri uri) {
273 - //final queryParameters = uri.queryParameters;
274 - //if (queryParameters?.isEmpty ?? true) {
275 - // return;
276 - //}
277 - //final emoji = queryParameters['eid'];
278 - //final refreshToken = queryParameters['refresh_token'];
279 - //if ((emoji?.isEmpty ?? true)||(refreshToken?.isEmpty ?? true)) {
280 - // return;
281 - //}
282 - //yatStore.emoji = emoji;
283 - //yatStore.refreshToken = refreshToken;
284 - //yatStore.emojiIncommingSC.add(emoji);
285 - }
286 -
255 @override
256 Widget build(BuildContext context) {
257 return Observer(builder: (BuildContext context) {
lib/src/screens/restore/restore_options_page.dart
+19 -1
@@ -1,3 +1,5 @@
1 +import 'dart:io';
2 +
3 import 'package:cake_wallet/core/execution_state.dart';
4 import 'package:cake_wallet/di.dart';
5 import 'package:cake_wallet/generated/i18n.dart';
@@ -13,6 +15,9 @@ import 'package:cake_wallet/utils/responsive_layout_util.dart';
15 import 'package:cake_wallet/utils/show_pop_up.dart';
16 import 'package:cake_wallet/view_model/restore/restore_from_qr_vm.dart';
17 import 'package:cake_wallet/view_model/restore/wallet_restore_from_qr_code.dart';
18 +import 'package:cake_wallet/wallet_type_utils.dart';
19 +import 'package:cw_core/hardware/device_connection_type.dart';
20 +import 'package:cw_core/wallet_type.dart';
21 import 'package:flutter/material.dart';
22 import 'package:permission_handler/permission_handler.dart';
23
@@ -24,6 +29,19 @@ class RestoreOptionsPage extends BasePage {
29
30 final bool isNewInstall;
31
32 + bool get _doesSupportHardwareWallets {
33 + if (!DeviceInfo.instance.isMobile) {
34 + return false;
35 + }
36 +
37 + if (isMoneroOnly) {
38 + return DeviceConnectionType.supportedConnectionTypes(WalletType.monero, Platform.isIOS)
39 + .isNotEmpty;
40 + }
41 +
42 + return true;
43 + }
44 +
45 @override
46 Widget body(BuildContext context) {
47 final imageColor = Theme.of(context).extension<OptionTileTheme>()!.titleColor;
@@ -57,7 +75,7 @@ class RestoreOptionsPage extends BasePage {
75 description: S.of(context).restore_description_from_backup,
76 ),
77 ),
60 - if (DeviceInfo.instance.isMobile)
78 + if (_doesSupportHardwareWallets)
79 Padding(
80 padding: EdgeInsets.only(top: 24),
81 child: OptionTile(
lib/src/screens/root/root.dart
-4
@@ -1,10 +1,7 @@
1 import 'dart:async';
2 import 'package:cake_wallet/core/auth_service.dart';
3 import 'package:cake_wallet/core/totp_request_details.dart';
4 -import 'package:cake_wallet/generated/i18n.dart';
5 -import 'package:cake_wallet/reactions/wallet_connect.dart';
4 import 'package:cake_wallet/utils/device_info.dart';
7 -import 'package:cake_wallet/utils/payment_request.dart';
5 import 'package:cake_wallet/view_model/link_view_model.dart';
6 import 'package:cw_core/wallet_base.dart';
7 import 'package:flutter/material.dart';
@@ -13,7 +10,6 @@ import 'package:cake_wallet/src/screens/auth/auth_page.dart';
10 import 'package:cake_wallet/store/app_store.dart';
11 import 'package:cake_wallet/store/authentication_store.dart';
12 import 'package:cake_wallet/entities/qr_scanner.dart';
16 -import 'package:fluttertoast/fluttertoast.dart';
13 import 'package:mobx/mobx.dart';
14 import 'package:uni_links/uni_links.dart';
15 import 'package:cake_wallet/src/screens/setup_2fa/setup_2fa_enter_code_page.dart';
lib/view_model/hardware_wallet/ledger_view_model.dart
+18 -1
@@ -1,8 +1,12 @@
1 +import 'dart:io';
2 +
3 import 'package:cake_wallet/bitcoin/bitcoin.dart';
4 import 'package:cake_wallet/ethereum/ethereum.dart';
5 import 'package:cake_wallet/generated/i18n.dart';
6 import 'package:cake_wallet/polygon/polygon.dart';
7 import 'package:cake_wallet/utils/device_info.dart';
8 +import 'package:cake_wallet/wallet_type_utils.dart';
9 +import 'package:cw_core/hardware/device_connection_type.dart';
10 import 'package:cw_core/wallet_base.dart';
11 import 'package:cw_core/wallet_type.dart';
12 import 'package:ledger_flutter/ledger_flutter.dart';
@@ -11,8 +15,21 @@ import 'package:permission_handler/permission_handler.dart';
15 class LedgerViewModel {
16 late final Ledger ledger;
17
18 + bool get _doesSupportHardwareWallets {
19 + if (!DeviceInfo.instance.isMobile) {
20 + return false;
21 + }
22 +
23 + if (isMoneroOnly) {
24 + return DeviceConnectionType.supportedConnectionTypes(WalletType.monero, Platform.isIOS)
25 + .isNotEmpty;
26 + }
27 +
28 + return true;
29 + }
30 +
31 LedgerViewModel() {
15 - if (DeviceInfo.instance.isMobile) {
32 + if (_doesSupportHardwareWallets) {
33 ledger = Ledger(
34 options: LedgerOptions(
35 scanMode: ScanMode.balanced,
scripts/android/app_env.sh
+4 -4
@@ -15,15 +15,15 @@ TYPES=($MONERO_COM $CAKEWALLET $HAVEN)
15 APP_ANDROID_TYPE=$1
16
17 MONERO_COM_NAME="Monero.com"
18 -MONERO_COM_VERSION="1.13.0"
19 -MONERO_COM_BUILD_NUMBER=86
18 +MONERO_COM_VERSION="1.13.1"
19 +MONERO_COM_BUILD_NUMBER=87
20 MONERO_COM_BUNDLE_ID="com.monero.app"
21 MONERO_COM_PACKAGE="com.monero.app"
22 MONERO_COM_SCHEME="monero.com"
23
24 CAKEWALLET_NAME="Cake Wallet"
25 -CAKEWALLET_VERSION="4.16.0"
26 -CAKEWALLET_BUILD_NUMBER=210
25 +CAKEWALLET_VERSION="4.16.1"
26 +CAKEWALLET_BUILD_NUMBER=211
27 CAKEWALLET_BUNDLE_ID="com.cakewallet.cake_wallet"
28 CAKEWALLET_PACKAGE="com.cakewallet.cake_wallet"
29 CAKEWALLET_SCHEME="cakewallet"
scripts/ios/app_env.sh
+4 -4
@@ -13,13 +13,13 @@ TYPES=($MONERO_COM $CAKEWALLET $HAVEN)
13 APP_IOS_TYPE=$1
14
15 MONERO_COM_NAME="Monero.com"
16 -MONERO_COM_VERSION="1.13.0"
17 -MONERO_COM_BUILD_NUMBER=84
16 +MONERO_COM_VERSION="1.13.1"
17 +MONERO_COM_BUILD_NUMBER=85
18 MONERO_COM_BUNDLE_ID="com.cakewallet.monero"
19
20 CAKEWALLET_NAME="Cake Wallet"
21 -CAKEWALLET_VERSION="4.16.0"
22 -CAKEWALLET_BUILD_NUMBER=236
21 +CAKEWALLET_VERSION="4.16.1"
22 +CAKEWALLET_BUILD_NUMBER=239
23 CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet"
24
25 HAVEN_NAME="Haven"
scripts/macos/app_env.sh
+4 -4
@@ -16,13 +16,13 @@ if [ -n "$1" ]; then
16 fi
17
18 MONERO_COM_NAME="Monero.com"
19 -MONERO_COM_VERSION="1.3.0"
20 -MONERO_COM_BUILD_NUMBER=17
19 +MONERO_COM_VERSION="1.3.1"
20 +MONERO_COM_BUILD_NUMBER=18
21 MONERO_COM_BUNDLE_ID="com.cakewallet.monero"
22
23 CAKEWALLET_NAME="Cake Wallet"
24 -CAKEWALLET_VERSION="1.9.0"
25 -CAKEWALLET_BUILD_NUMBER=71
24 +CAKEWALLET_VERSION="1.9.1"
25 +CAKEWALLET_BUILD_NUMBER=72
26 CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet"
27
28 if ! [[ " ${TYPES[*]} " =~ " ${APP_MACOS_TYPE} " ]]; then