Squashed commit of the following:

commit 62007975e1
Author: Omar Hatem <omarh.ismail1@gmail.com>
Date:   Fri Jul 14 01:48:47 2023 +0300

    Old state (#999)

    * Fix Bitcoin transactions not showing (#978)

    * handle multiple responses coming in a single event

    * Add timeout for getting transaction info, to allow other transactions to be returned in case of any failure or network issue

    * Handle other cases of receiving multiple messages in the same response

    * Fix shib and storj (#997)

    * Merge main branch

    * Add missing files

    ---------

    Co-authored-by: Justin Ehrenhofer <justin.ehrenhofer@gmail.com>

commit f51f0a1d1f
Merge: 459a40bc d7fa9991
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Thu Jul 13 19:06:22 2023 +0300

    Merge branch 'main' of https://github.com/cake-tech/cake_wallet into linux/password-direct-input

commit 459a40bcd9
Merge: e9582f31 7d77a167
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Thu Jul 13 18:59:49 2023 +0300

    Merge remote-tracking branch 'origin/linux/password-direct-input' into linux/password-direct-input

commit e9582f31e5
Merge: fc18b2dc ff420c7c
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Thu Jul 13 18:26:27 2023 +0300

    Merge branch 'main' of https://github.com/cake-tech/cake_wallet into linux/password-direct-input

     Conflicts:
    	cw_bitcoin/lib/electrum_transaction_history.dart
    	lib/core/wallet_loading_service.dart
    	lib/di.dart
    	lib/main.dart
    	lib/router.dart
    	lib/src/screens/dashboard/widgets/market_place_page.dart
    	lib/src/screens/wallet_list/wallet_list_page.dart
    	lib/view_model/wallet_list/wallet_list_view_model.dart
    	macos/Podfile.lock
    	res/values/strings_ar.arb
    	res/values/strings_bg.arb
    	res/values/strings_cs.arb
    	res/values/strings_de.arb
    	res/values/strings_en.arb
    	res/values/strings_es.arb
    	res/values/strings_fr.arb
    	res/values/strings_hi.arb
    	res/values/strings_hr.arb
    	res/values/strings_id.arb
    	res/values/strings_it.arb
    	res/values/strings_ja.arb
    	res/values/strings_ko.arb
    	res/values/strings_my.arb
    	res/values/strings_nl.arb
    	res/values/strings_pl.arb
    	res/values/strings_pt.arb
    	res/values/strings_ru.arb
    	res/values/strings_th.arb
    	res/values/strings_tr.arb
    	res/values/strings_uk.arb
    	res/values/strings_ur.arb
    	res/values/strings_zh.arb

commit 7d77a167ac
Author: Harold Than <62450449+thanvinhbaohoang@users.noreply.github.com>
Date:   Fri Jul 7 07:21:43 2023 -0400

    Button: Cursor to Pointer on Hover (#982)

    * Button: Cursor to Pointer on Hover

    * Updated build-guide-linux.md to Revert Flutter Version

    ---------

    Co-authored-by: Harold <harold@pop-os.localdomain>

commit 1ca09e692d
Author: Serhii <borodenko.sv@gmail.com>
Date:   Thu Jun 29 16:44:31 2023 +0300

    Revert "Merge branch 'linux/password-direct-input' of https://github.com/cake-tech/cake_wallet into linux/password-direct-input"

    This reverts commit 424cf2e635, reversing
    changes made to e1fe03ca28.

commit 02eead0014
Author: Serhii <borodenko.sv@gmail.com>
Date:   Thu Jun 29 16:38:36 2023 +0300

    Revert " fix routing and context issue"

    This reverts commit e1fe03ca28.

commit 424cf2e635
Merge: e1fe03ca fc18b2dc
Author: Serhii <borodenko.sv@gmail.com>
Date:   Thu Jun 29 14:01:18 2023 +0300

    Merge branch 'linux/password-direct-input' of https://github.com/cake-tech/cake_wallet into linux/password-direct-input

commit e1fe03ca28
Author: Serhii <borodenko.sv@gmail.com>
Date:   Thu Jun 29 14:00:12 2023 +0300

     fix routing and context issue

commit fc18b2dc52
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Fri Jun 16 22:25:27 2023 +0300

    - Pump Linux version
    - Fix conflicts with main

commit 2da9112aa2
Merge: e592c892 3f2af133
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Fri Jun 16 22:14:52 2023 +0300

    Merge branch 'v4.6.7_v1.3.8' of https://github.com/cake-tech/cake_wallet into linux/password-direct-input

     Conflicts:
    	cw_bitcoin/lib/electrum_wallet.dart
    	lib/di.dart
    	lib/main.dart
    	lib/src/screens/dashboard/widgets/market_place_page.dart

commit 3f2af1334d
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Fri Jun 16 21:43:33 2023 +0300

    Pump app versions and update release notes

commit 8ffad4bf80
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Fri Jun 16 19:54:34 2023 +0300

    Revert removing swipe to delete wallet feature

commit 337bfd0527
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Fri Jun 16 17:05:00 2023 +0300

    - Replace payfura widget with direct browser link
    - Remove Payfura widget class as it is duplicate for the web view page

commit e592c892cc
Author: Rafael Saes <76502841+saltrafael@users.noreply.github.com>
Date:   Fri May 26 17:16:36 2023 -0300

    fix: theme refactor for wallet_unlock_page.dart (#951)

commit 76559e50d6
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Fri May 26 21:52:02 2023 +0300

    Remove secure storage

commit 825c99094f
Merge: 5ba313cb 19cbc40e
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Fri May 26 21:16:08 2023 +0300

    Merge branch 'main' of https://github.com/cake-tech/cake_wallet into linux/password-direct-input

commit 5ba313cb13
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Fri May 26 16:43:30 2023 +0300

    Fix Conflicts with main

commit 53d3db5340
Merge: 3ddb6c0a 75c65d67
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Fri May 26 15:09:55 2023 +0300

    Merge branch 'main' of https://github.com/cake-tech/cake_wallet into linux/password-direct-input

     Conflicts:
    	cw_core/lib/wallet_base.dart
    	lib/core/auth_service.dart
    	lib/di.dart
    	lib/main.dart
    	lib/router.dart
    	lib/routes.dart
    	lib/src/screens/dashboard/desktop_widgets/desktop_wallet_selection_dropdown.dart
    	lib/src/screens/restore/restore_wallet_from_seed_page.dart
    	lib/src/screens/settings/security_backup_page.dart
    	lib/src/screens/wallet_list/wallet_list_page.dart
    	lib/store/settings_store.dart
    	lib/view_model/wallet_creation_vm.dart
    	macos/Podfile.lock
    	pubspec_base.yaml
    	res/values/strings_bg.arb
    	res/values/strings_en.arb
    	res/values/strings_id.arb
    	res/values/strings_my.arb
    	res/values/strings_nl.arb
    	res/values/strings_pt.arb
    	res/values/strings_ru.arb
    	res/values/strings_th.arb
    	res/values/strings_tr.arb
    	res/values/strings_uk.arb
    	res/values/strings_ur.arb
    	res/values/strings_zh.arb

commit 3ddb6c0a40
Author: M <m@cakewallet.com>
Date:   Thu Apr 27 21:17:41 2023 -0400

    Add flatpak section to Linux build guide.

commit 89980cac5a
Author: M <m@cakewallet.com>
Date:   Thu Apr 27 20:51:35 2023 -0400

    Add flatpak manifest. Add desktop file for Linux.

commit 0dc2effe41
Author: M <m@cakewallet.com>
Date:   Tue Apr 25 16:44:14 2023 -0400

    Add check gcc and troubleshooting section to Linux build guide.

commit d4b96d6f98
Author: M <m@cakewallet.com>
Date:   Fri Apr 21 18:08:42 2023 -0400

    Add build guide for Linux.

commit c7138a9124
Author: M <m@cakewallet.com>
Date:   Fri Apr 21 18:06:05 2023 -0400

    Make `model_generator.sh` executable.

commit d45df36238
Author: M <m@cakewallet.com>
Date:   Fri Apr 21 18:02:19 2023 -0400

    Add ability to get random bytes on Linux. Used same method as in cake backups.

commit 5c2490e721
Author: M <m@cakewallet.com>
Date:   Fri Apr 21 15:55:26 2023 -0400

    Update boost version for Linux to 1.82. Update monero for Linux to 0.18.2.2.

commit d251539f13
Author: M <m@cakewallet.com>
Date:   Fri Apr 21 11:48:02 2023 -0400

    Change package_info to package_info_plus

commit a90966b640
Author: M <m@cakewallet.com>
Date:   Wed Apr 19 17:20:04 2023 -0400

    Remove unused constant MONERO_BLOCK_SIZE in ios/Classes/monero_api.cpp

commit d34dca99ed
Author: M <m@cakewallet.com>
Date:   Wed Apr 19 16:11:01 2023 -0400

    Remove duplication for routes. Removed unused constant and fixed TransactionInfoRow iterator for macos/Classes/monero_api.cpp.

commit 2ff6cf43b3
Merge: 2e19e9d2 27961f2f
Author: M <m@cakewallet.com>
Date:   Wed Apr 19 15:18:43 2023 -0400

    Merge branch 'main' of github.com:cake-tech/cake_wallet into linux/password-direct-input

commit 2e19e9d2b6
Author: M <m@cakewallet.com>
Date:   Tue Apr 18 16:45:32 2023 -0400

    Fixes for Linux build scripts. Fixes for load cw_monero on Linux. Catch exception for get PackageInfo in SettingsStore. Add `excludeFlutterSecureStorage` to app_config.sh for Linux. Add FUNCTION_VISABILITY_ATTRIBUTE for monero_api.cpp.

commit 9cd02b7541
Merge: 8efedbcc 786ba3b0
Author: M <m@cakewallet.com>
Date:   Tue Apr 18 15:45:32 2023 -0400

    Merge branch 'desktop-linux' of github.com:cake-tech/cake_wallet into linux/password-direct-input

commit 8efedbccf6
Author: M <m@cakewallet.com>
Date:   Thu Apr 13 19:48:51 2023 -0400

    Add ability to set custom data application directory

commit f52c45b167
Author: M <m@cakewallet.com>
Date:   Mon Apr 10 19:16:13 2023 -0400

    Change encryption method for electrum wallets is wallet password provides directly. Add ability to user for repeat wallets password and compare with original wallet password before wallet creation for cases when wallet password provides directly.

commit 3b82a390c1
Author: M <m@cakewallet.com>
Date:   Thu Mar 30 18:33:59 2023 -0400

    Add ability to enter wallet password directly. Add ability to build without flutter secure storage. Add `excludeFlutterSecureStorage` flag to too/configure.dart for settings for secure storage. Add wallet unlock screen.

commit a70b6f298c
Merge: f0164db4 14a4d413
Author: Omar Hatem <omarh.ismail1@gmail.com>
Date:   Mon Feb 27 15:11:54 2023 +0200

    Merge pull request #804 from cake-tech/desktop-ui-enhancements

    Desktop UI enhancements

commit 14a4d41339
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Sat Feb 25 00:07:15 2023 +0200

    Fixate MobX version to fix restore issue

commit e8fa3953b5
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Fri Feb 24 17:17:30 2023 +0200

    Fix Navigation animation for settings screens

commit 89aaa9bfef
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Fri Feb 24 15:49:37 2023 +0200

    Add back wallet settings page to desktop settings actions

commit 26a7bfcee5
Merge: f00dc913 f0164db4
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Fri Feb 24 15:39:01 2023 +0200

    Merge branch 'dashboard-desktop-view' of https://github.com/cake-tech/cake_wallet into desktop-ui-enhancements

commit f0164db47f
Merge: f050f022 143a6eec
Author: Omar Hatem <omarh.ismail1@gmail.com>
Date:   Fri Feb 24 15:38:35 2023 +0200

    Merge pull request #802 from cake-tech/CW-321-lock-app-feature-on-mac

    Add app lock feature on mac

commit 143a6eecf5
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Fri Feb 24 15:38:05 2023 +0200

    pop only PIN screen after successful auth

commit a210a1e325
Merge: 538220f7 f050f022
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Fri Feb 24 15:23:36 2023 +0200

    Merge branch 'dashboard-desktop-view' of https://github.com/cake-tech/cake_wallet into CW-321-lock-app-feature-on-mac

commit f00dc9132c
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Fri Feb 24 15:19:59 2023 +0200

    Fix UI issues
    Add missing translation

commit 05b1bb05c4
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Fri Feb 24 15:18:31 2023 +0200

    Enable adding contact from send screen

commit b7e9237963
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Fri Feb 24 15:18:01 2023 +0200

    Add Nano currency image

commit 538220f7bc
Author: Godwin Asuquo <godilite@gmail.com>
Date:   Fri Feb 24 14:50:19 2023 +0200

    Add assertion to avoid null

commit 770ed710d7
Author: Godwin Asuquo <godilite@gmail.com>
Date:   Fri Feb 24 14:24:40 2023 +0200

    Add app lock feature on mac

commit f050f022b6
Merge: f8acc1c0 ac099075
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Fri Feb 24 00:40:19 2023 +0200

    Merge branch 'main' of https://github.com/cake-tech/cake_wallet into dashboard-desktop-view

     Conflicts:
    	lib/src/screens/buy/onramper_page.dart
    	lib/src/screens/seed/wallet_seed_page.dart
    	pubspec_base.yaml
    	res/values/strings_de.arb
    	res/values/strings_en.arb
    	res/values/strings_es.arb
    	res/values/strings_fr.arb
    	res/values/strings_hi.arb
    	res/values/strings_hr.arb
    	res/values/strings_it.arb
    	res/values/strings_ja.arb
    	res/values/strings_ko.arb
    	res/values/strings_nl.arb
    	res/values/strings_pl.arb
    	res/values/strings_pt.arb
    	res/values/strings_ru.arb
    	res/values/strings_uk.arb
    	res/values/strings_zh.arb

commit f8acc1c007
Merge: 67503f39 d3eb22e1
Author: Omar Hatem <omarh.ismail1@gmail.com>
Date:   Thu Feb 23 21:56:50 2023 +0200

    Merge pull request #791 from cake-tech/fix-desktop-colors-addressbook

    Fix desktop background color and address book view issues

commit d3eb22e1d4
Author: Godwin Asuquo <godilite@gmail.com>
Date:   Thu Feb 23 21:16:28 2023 +0200

    Replace removed code

commit 8d482464d9
Author: Godwin Asuquo <godilite@gmail.com>
Date:   Thu Feb 23 18:56:20 2023 +0200

    Fix ionia input field alignment

commit 67503f393d
Merge: 99344600 016bca01
Author: Omar Hatem <omarh.ismail1@gmail.com>
Date:   Thu Feb 23 18:24:32 2023 +0200

    Merge pull request #797 from cake-tech/align-create-restore-screens

    Fix alignment in create and restore wallet screens

commit 016bca01f4
Author: Godwin Asuquo <godilite@gmail.com>
Date:   Thu Feb 23 18:18:40 2023 +0200

    remove unused code

commit 9934460004
Merge: 7a504abc bba0ce2e
Author: Omar Hatem <omarh.ismail1@gmail.com>
Date:   Thu Feb 23 18:06:27 2023 +0200

    Merge pull request #796 from cake-tech/fix-popup-width-constraints

    Fix Popup width constraint and add focus orders

commit bba0ce2ec6
Author: Godwin Asuquo <godilite@gmail.com>
Date:   Thu Feb 23 18:03:44 2023 +0200

    Remove autofocus

commit 28c599e68a
Merge: d5e9982e 7a504abc
Author: Godwin Asuquo <godilite@gmail.com>
Date:   Thu Feb 23 17:51:26 2023 +0200

    Merge branch 'dashboard-desktop-view' of https://github.com/cake-tech/cake_wallet into align-create-restore-screens

commit d5e9982e91
Author: Godwin Asuquo <godilite@gmail.com>
Date:   Thu Feb 23 16:03:20 2023 +0200

    override navbar with desktopnavbar

commit 7a504abc01
Merge: c05d70b1 9616974d
Author: Omar Hatem <omarh.ismail1@gmail.com>
Date:   Wed Feb 22 19:31:37 2023 +0200

    Merge pull request #787 from cake-tech/macos-fix-settings-create-wallet

    Fix wallet create in settings

commit 9616974d33
Merge: 75d52794 24dc9bea
Author: Omar Hatem <omarh.ismail1@gmail.com>
Date:   Wed Feb 22 19:05:20 2023 +0200

    Merge pull request #790 from cake-tech/add-create-restore-dropdown

    Add create and restore wallet options to dropdown menu

commit 24dc9bea27
Author: Godwin Asuquo <godilite@gmail.com>
Date:   Wed Feb 22 18:47:00 2023 +0200

    remove space

commit 6dc4eafff4
Author: Godwin Asuquo <godilite@gmail.com>
Date:   Wed Feb 22 18:44:49 2023 +0200

    Fix dropdown change state bug

    Hide scanner for desktop

commit c41b6b7f89
Author: Godwin Asuquo <godilite@gmail.com>
Date:   Wed Feb 22 16:17:26 2023 +0200

    Fix alignment in create and restore wallet screens

commit 07f6f43e0b
Author: Godwin Asuquo <godilite@gmail.com>
Date:   Tue Feb 21 22:05:02 2023 +0200

    refactor dropdown items

commit 88e245e480
Author: Godwin Asuquo <godilite@gmail.com>
Date:   Tue Feb 21 12:22:32 2023 +0200

    Fix issues from code review

commit c05d70b118
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Tue Feb 21 01:52:47 2023 +0200

    Fix variable name

commit 44b1eec81d
Author: Godwin Asuquo <godilite@gmail.com>
Date:   Mon Feb 20 23:24:19 2023 +0200

    Fix Popup width constraint and add focus orders

commit 17aa72e460
Merge: 1b892288 c920b62a
Author: Omar Hatem <omarh.ismail1@gmail.com>
Date:   Mon Feb 20 14:48:22 2023 +0200

    Merge pull request #792 from cake-tech/add-keyboard-control

    Add keyboard control for desktop

commit cf125d1e06
Author: Godwin Asuquo <godilite@gmail.com>
Date:   Sat Feb 18 14:23:48 2023 +0200

    Fix issue from code review

commit c920b62aa0
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Sat Feb 18 00:13:51 2023 +0200

    Add onFieldSubmitted to allow "enter" button interaction

commit 59a79242af
Author: Godwin Asuquo <godilite@gmail.com>
Date:   Fri Feb 17 19:06:41 2023 +0200

    Fix input field

commit 52468e1331
Author: Godwin Asuquo <godilite@gmail.com>
Date:   Fri Feb 17 18:19:26 2023 +0200

    Fix desktop background color and address book view issues

commit 4bc81242fc
Author: Godwin Asuquo <godilite@gmail.com>
Date:   Fri Feb 17 16:41:49 2023 +0200

    Add create and restore wallet options to dropdown menu

commit 75d52794f4
Merge: e0970fa1 1b892288
Author: Godwin Asuquo <godilite@gmail.com>
Date:   Thu Feb 16 18:27:19 2023 +0200

    Merge branch 'dashboard-desktop-view' of https://github.com/cake-tech/cake_wallet into macos-fix-settings-create-wallet

commit e0970fa182
Author: Godwin Asuquo <godilite@gmail.com>
Date:   Thu Feb 16 18:05:10 2023 +0200

    fix pageview controller reset index

commit 1b89228893
Merge: bb05573c 4027ea04
Author: Omar Hatem <omarh.ismail1@gmail.com>
Date:   Thu Feb 16 17:57:43 2023 +0200

    Merge pull request #745 from cake-tech/CW-301-desktop-side-bar-ui

    Add desktop sidebar

commit 4027ea04eb
Merge: dd13172c 0015f41a
Author: Omar Hatem <omarh.ismail1@gmail.com>
Date:   Thu Feb 16 17:54:54 2023 +0200

    Merge pull request #775 from cake-tech/CW-311-remove-drawer-from-mac-os

    Replace drawer icon for mac os

commit 0015f41a0d
Merge: 5a77aa20 55bf964a
Author: Omar Hatem <omarh.ismail1@gmail.com>
Date:   Thu Feb 16 17:52:24 2023 +0200

    Merge pull request #785 from cake-tech/desktop-ui-for-exchange-send

    Desktop UI for exchange send

commit 55bf964a27
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Thu Feb 16 17:51:52 2023 +0200

    - Use close icon on main screens
    - Minor UI fixes

commit 5296a2118a
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Wed Feb 15 23:50:15 2023 +0200

    Remove duplicated constrains

commit 2496a6574a
Author: Godwin Asuquo <godilite@gmail.com>
Date:   Wed Feb 15 22:14:07 2023 +0200

    remove unnecessary code

commit f0c4952809
Author: Godwin Asuquo <godilite@gmail.com>
Date:   Wed Feb 15 22:13:24 2023 +0200

    remove unnecessary code

commit 3dcf5b05a5
Author: Godwin Asuquo <godilite@gmail.com>
Date:   Wed Feb 15 22:11:34 2023 +0200

    Fix wallet create in settings

commit 8de9c80fe1
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Wed Feb 15 20:55:06 2023 +0200

    Rename misleading variable
    Change initial mac window size

commit f8d70e7ce6
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Wed Feb 15 16:07:46 2023 +0200

    Fix UI issues, paddings and alignments

commit b1947426fb
Merge: 843db656 5a77aa20
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Wed Feb 15 03:09:38 2023 +0200

    Merge branch 'CW-311-remove-drawer-from-mac-os' of https://github.com/cake-tech/cake_wallet into desktop-ui-for-exchange-send

     Conflicts:
    	lib/src/screens/dashboard/desktop_dashboard_page.dart
    	lib/src/screens/dashboard/desktop_widgets/desktop_sidebar_wrapper.dart

commit 843db65603
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Wed Feb 15 01:28:10 2023 +0200

    Add width constraints to desktop dashboard

commit 5a77aa2017
Merge: 107e136f 6caeae28
Author: Omar Hatem <omarh.ismail1@gmail.com>
Date:   Wed Feb 15 01:20:05 2023 +0200

    Merge pull request #786 from cake-tech/CW-312-mac-os-settings-icon-to-be-a-toggle

    MacOS settings icon to be a toggle

commit 6caeae2817
Author: Godwin Asuquo <godilite@gmail.com>
Date:   Tue Feb 14 21:55:13 2023 +0200

    Add padding to support page

commit ea09bba0fb
Author: Godwin Asuquo <godilite@gmail.com>
Date:   Tue Feb 14 21:53:17 2023 +0200

    Make side menu items toggle back to dashboard

commit 02fe3c008f
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Tue Feb 14 18:05:44 2023 +0200

    Constrain primary Buttons width

commit fb5efc0429
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Tue Feb 14 18:01:24 2023 +0200

    Fix Desktop dashboard actions background color

commit 8f76232937
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Tue Feb 14 17:21:09 2023 +0200

    - Change design/paddings for Send page on desktop view
    - Make AddTemplateButton instead of having it duplicated in send/exchange

commit bd04383b7c
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Tue Feb 14 01:36:34 2023 +0200

    Change Exchange page UI depending on platform

commit 10b877f55e
Merge: 107e136f dd13172c
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Sat Feb 11 00:48:16 2023 +0200

    Merge branch 'CW-301-desktop-side-bar-ui' of https://github.com/cake-tech/cake_wallet into CW-311-remove-drawer-from-mac-os

commit dd13172cfe
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Sat Feb 11 00:41:48 2023 +0200

    Add max width constrain to Welcome page

commit 107e136f52
Author: Godwin Asuquo <godilite@gmail.com>
Date:   Sat Feb 11 00:35:11 2023 +0200

    remove empty line

commit bdfe070f8d
Author: Godwin Asuquo <godilite@gmail.com>
Date:   Sat Feb 11 00:32:26 2023 +0200

    Refactor sidebar state management

commit 770e3b6f52
Merge: 99bb3cce 5fa50c76
Author: Omar Hatem <omarh.ismail1@gmail.com>
Date:   Fri Feb 10 23:29:36 2023 +0200

    Merge pull request #774 from cake-tech/CW-310-add-constraints-to-images-on-macos

    [CW-310] Add constraints to images on macos

commit 5fa50c7668
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Fri Feb 10 23:27:19 2023 +0200

    Fix Constrained width screens UI

commit c1bf0ee7aa
Merge: eb3b2464 99bb3cce
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Fri Feb 10 22:54:13 2023 +0200

    Merge branch 'CW-301-desktop-side-bar-ui' of https://github.com/cake-tech/cake_wallet into CW-310-add-constraints-to-images-on-macos

     Conflicts:
    	lib/src/screens/pin_code/pin_code_widget.dart

commit 99bb3cce47
Merge: 2623546b 3fb8be00
Author: Omar Hatem <omarh.ismail1@gmail.com>
Date:   Fri Feb 10 22:34:18 2023 +0200

    Merge pull request #779 from cake-tech/CW-318-desktop-marketplace

    Add Marketplace to dashboard view

commit 3fb8be0053
Merge: 887afdad 2623546b
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Fri Feb 10 22:33:31 2023 +0200

    Merge branch 'CW-301-desktop-side-bar-ui' of https://github.com/cake-tech/cake_wallet into CW-318-desktop-marketplace

     Conflicts:
    	lib/src/screens/dashboard/desktop_widgets/desktop_dashboard_actions.dart

commit 2623546b5e
Merge: 2b2bebe9 2ea360d8
Author: Omar Hatem <omarh.ismail1@gmail.com>
Date:   Fri Feb 10 22:09:55 2023 +0200

    Merge pull request #776 from cake-tech/CW-309-allow-pin-keyboard-entry-on-macos

    Allow Keyboard usage on PIN screen

commit 887afdadd0
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Fri Feb 10 20:39:23 2023 +0200

    Change ionia welcome page animation

commit 2b2bebe98f
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Fri Feb 10 20:26:07 2023 +0200

    Refresh desktop dashboard actions on wallet change

commit eb3b246437
Author: Godwin Asuquo <godilite@gmail.com>
Date:   Fri Feb 10 20:19:13 2023 +0200

    Add empty trailing to center page title on desktop

commit 32d2bf2c85
Author: Godwin Asuquo <godilite@gmail.com>
Date:   Fri Feb 10 20:07:53 2023 +0200

    Update widget contraints

commit 89fe8df459
Author: Godwin Asuquo <godilite@gmail.com>
Date:   Fri Feb 10 19:45:48 2023 +0200

    Update trailing icon to open transaction page

commit 6d49e6a543
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Fri Feb 10 18:40:50 2023 +0200

    Add Marketplace to dashboard view

commit 2ea360d81d
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Fri Feb 10 18:15:05 2023 +0200

    Fix desktop nav bar UI

commit 677305f625
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Thu Feb 9 22:53:02 2023 +0200

    - Listen to keyboard events in PIN screen
    - Fix PIN buttons style

commit 1831ebf435
Author: Godwin Asuquo <godilite@gmail.com>
Date:   Thu Feb 9 20:29:38 2023 +0200

    Remove drawer from mac os

commit 150d43b2da
Author: Godwin Asuquo <godilite@gmail.com>
Date:   Thu Feb 9 20:11:20 2023 +0200

    constraint images and pincoded box

commit a116241185
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Thu Feb 9 19:17:52 2023 +0200

    Separate Dashboard desktop view from mobile view

commit 5c89c42540
Author: Godwin Asuquo <godilite@gmail.com>
Date:   Thu Feb 9 16:53:07 2023 +0200

    [skip ci] remove .project changes

commit dd2bf60b01
Author: Godwin Asuquo <godilite@gmail.com>
Date:   Thu Feb 9 16:51:49 2023 +0200

    [skip ci] remove .project changes

commit 167eae1293
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Thu Feb 9 16:10:43 2023 +0200

    Revert changes in .gitignore

commit 30d16266c0
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Thu Feb 9 16:02:02 2023 +0200

    Revert removing .lock files

commit 3c17310a5b
Author: Godwin Asuquo <godilite@gmail.com>
Date:   Wed Feb 8 22:12:11 2023 +0200

    [skip ci] reformat desktop dashboard

commit 48ae156eb8
Author: Godwin Asuquo <godilite@gmail.com>
Date:   Wed Feb 8 21:57:26 2023 +0200

    [skip ci] reformat desktop dashboard

commit b1b8193043
Author: Godwin Asuquo <godilite@gmail.com>
Date:   Wed Feb 8 20:41:46 2023 +0200

    Fix issues from code review

commit a1abdc849a
Author: Godwin Asuquo <godilite@gmail.com>
Date:   Wed Feb 8 18:56:00 2023 +0200

    Fix bug on sidebar reset

commit 3f03fb0b18
Merge: 69651b3e 9f69de80
Author: Omar Hatem <omarh.ismail1@gmail.com>
Date:   Wed Feb 8 15:50:37 2023 +0200

    Merge pull request #769 from cake-tech/fix-buy-feature-on-macos

    Fix buy feature on macos

commit 9f69de8057
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Wed Feb 8 15:49:26 2023 +0200

    Remove Podfile.lock from cache

commit 738621254f
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Wed Feb 8 15:46:57 2023 +0200

    Add pubspec.lock and Podfile.lock to gitignore

commit 26b79fe0cd
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Mon Feb 6 18:23:40 2023 +0200

    - Refactor onRamper to have a single point of modification
    - Enlarge initial app size
    - update Flutter and Packages

commit dea81f92e3
Merge: c7db7b99 69651b3e
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Tue Jan 31 16:48:36 2023 +0200

    Merge remote-tracking branch 'origin/CW-301-desktop-side-bar-ui' into CW-301-desktop-side-bar-ui

commit 69651b3eb4
Author: Godwin Asuquo <godilite@gmail.com>
Date:   Tue Jan 31 15:30:46 2023 +0200

    Remove constants

commit c7db7b99a5
Merge: 9ed77cd6 4902dc8d
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Tue Jan 31 15:23:47 2023 +0200

    Merge remote-tracking branch 'origin/CW-301-desktop-side-bar-ui' into CW-301-desktop-side-bar-ui

commit 4902dc8dd4
Merge: d12bcc80 bb05573c
Author: Godwin Asuquo <godilite@gmail.com>
Date:   Tue Jan 31 15:12:01 2023 +0200

    Merge branch 'dashboard-desktop-view' of https://github.com/cake-tech/cake_wallet into CW-301-desktop-side-bar-ui

commit 9ed77cd6f9
Merge: d12bcc80 bb05573c
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Mon Jan 30 23:43:09 2023 +0200

    Merge branch 'dashboard-desktop-view' of https://github.com/cake-tech/cake_wallet into CW-301-desktop-side-bar-ui

     Conflicts:
    	lib/src/screens/dashboard/dashboard_page.dart

commit bb05573c3a
Merge: de2b887a c20eb232
Author: Omar Hatem <omarh.ismail1@gmail.com>
Date:   Mon Jan 30 23:33:44 2023 +0200

    Merge pull request #753 from cake-tech/mac-os-icons

    Mac os icons

commit d12bcc80d1
Author: Godwin Asuquo <godilite@gmail.com>
Date:   Mon Jan 30 23:32:31 2023 +0200

    Fix exchange page as fullScreenDialog

commit de2b887a9b
Merge: abf5f0b7 adfebe69
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Mon Jan 30 23:31:59 2023 +0200

    Merge branch 'mac-os-fixes' of https://github.com/cake-tech/cake_wallet into dashboard-desktop-view

commit c20eb2325e
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Mon Jan 30 23:28:15 2023 +0200

    Change Mac os app name and bundle id

commit deadc93a76
Author: Godwin Asuquo <godilite@gmail.com>
Date:   Mon Jan 30 23:23:42 2023 +0200

    fix dashboard sidebar and responsive utils

commit abf5f0b7c6
Merge: b6666ca4 5b50ea05
Author: Omar Hatem <omarh.ismail1@gmail.com>
Date:   Mon Jan 30 22:28:24 2023 +0200

    Merge pull request #754 from cake-tech/desktop-appbar-view

    Desktop AppBar

commit 94184d69d6
Author: Godwin Asuquo <godilite@gmail.com>
Date:   Mon Jan 30 17:26:40 2023 +0200

    localize settings

commit d5957b9873
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Mon Jan 30 16:01:37 2023 +0200

    Generate MacOS icons

commit 5b50ea053e
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Sun Jan 29 16:49:42 2023 +0200

    Add Wallet selection dropdown to dashboard desktop view

commit b6666ca405
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Sat Jan 28 17:13:34 2023 +0200

    Ignore increasing brightness for non-mobile platforms

commit 75f33a433e
Author: Godwin Asuquo <godilite@gmail.com>
Date:   Sat Jan 28 12:43:44 2023 +0200

    refactor desktop settings sidebar

commit adfebe6940
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Thu Jan 26 20:53:26 2023 +0200

    Temporarily fetch unstoppable domains only on mobile

commit 132033207e
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Thu Jan 26 02:33:15 2023 +0200

    Remove unstoppable domain from macos since it's not supported

commit 409c13a77a
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Thu Jan 26 02:25:28 2023 +0200

    Remove wake lock native code and just use the ready made package

commit 90a7432bf9
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Thu Jan 26 02:05:48 2023 +0200

    - Remove legacy migration from macos
    - Remove wake lock native code and just use the ready made package

commit 6b2bf313a3
Merge: 42a28d42 e8c1d863
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Wed Jan 25 18:24:57 2023 +0200

    Merge branch 'mac-os-fixes' of https://github.com/cake-tech/cake_wallet into dashboard-desktop-view

commit 20ae8d530f
Author: Godwin Asuquo <godilite@gmail.com>
Date:   Wed Jan 25 16:17:50 2023 +0200

    [skip ci] Add desktop sidebar

commit ba09a24d53
Author: Godwin Asuquo <godilite@gmail.com>
Date:   Wed Jan 25 16:14:34 2023 +0200

    [skip ci] Add desktop sidebar

commit 4f1f51e0aa
Author: Godwin Asuquo <godilite@gmail.com>
Date:   Wed Jan 25 15:57:56 2023 +0200

    Add desktop sidebar

commit e8c1d86373
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Wed Jan 25 02:38:28 2023 +0200

    Add platform channel specific code for mac os

commit 4aebbdace7
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Wed Jan 25 00:14:28 2023 +0200

    Revert mac os version

commit fa072ff2f1
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Wed Jan 25 00:11:18 2023 +0200

    Revert mac os version

commit 6e03d2933d
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Wed Jan 25 00:07:11 2023 +0200

    Revert back to Cake fork for secure storage

commit c3c81f7685
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Tue Jan 24 23:58:06 2023 +0200

    Revert back to Cake fork for secure storage

commit d41e7b7bab
Merge: ed0d87c8 ae3620b1
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Fri Jan 20 18:24:39 2023 +0200

    Merge branch 'desktop-mac-os' of https://github.com/cake-tech/cake_wallet into mac-os-fixes

commit ed0d87c893
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Fri Jan 20 17:45:54 2023 +0200

    Update deployment target to 10.13

commit dac7f8e1b3
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Fri Jan 20 15:02:08 2023 +0200

    Add Bundle ID in entitlements files through app config script

commit 786ba3b042
Author: M <m@cakewallet.com>
Date:   Thu Jan 19 18:14:46 2023 -0500

    Add linux application to the project.

commit ae3620b171
Author: M <m@cakewallet.com>
Date:   Thu Jan 19 15:54:59 2023 -0500

    Fix arch match for monero lib for darwin x86_64 -> x86-64

commit 42a28d4246
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Thu Jan 19 04:04:20 2023 +0200

    Add on Tap to desktop_action_button.dart
    Remove unused functions

commit 42a7439315
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Wed Jan 18 22:11:59 2023 +0200

    Change Dashboard view on desktop size screens

commit 9f1e663719
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Tue Jan 17 22:06:05 2023 +0200

    Add network access to mac

commit 456ba28cb2
Author: OmarHatem <omarh.ismail1@gmail.com>
Date:   Tue Jan 17 21:10:39 2023 +0200

    - Update Flutter secure storage to work with macos
    - Enable uni links only on Mobile
    - Update devcelocale to work with macos

commit 31fa9e8b19
Author: M <m@cakewallet.com>
Date:   Tue Jan 10 21:15:24 2023 -0500

    Add build scripts for macOS. Add macos for cw_monero plugin. Add macos proj to the application.
This commit is contained in:
Rafael Saes 2023-09-07 13:22:59 -03:00
parent a382186be1
commit e53bcc411f
46 changed files with 417 additions and 104 deletions

View file

@ -1,2 +1,6 @@
Bug fixes Opt-in to Cake 2FA for security. More info: https://guides.cakewallet.com/docs/advanced-features/authentication/#cake-2fa
Fiat Onramp improvements Auto generate restore height for Monero restore QR codes
Hausa and Yoruba languages
Additional privacy settings
Update Monero to 0.18.2.2
Refactoring and bug fixes

View file

@ -1,2 +1,6 @@
Bug fixes Opt-in to Cake 2FA for security. More info: https://guides.cakewallet.com/docs/advanced-features/authentication/#cake-2fa
Fiat Onramp improvements Auto generate restore height for Monero restore QR codes
Hausa and Yoruba languages
Additional privacy settings
Update Monero to 0.18.2.2
Refactoring and bug fixes

View file

@ -3,6 +3,7 @@ import 'package:cw_bitcoin/bitcoin_mnemonic.dart';
import 'package:cw_bitcoin/bitcoin_mnemonic_is_incorrect_exception.dart'; import 'package:cw_bitcoin/bitcoin_mnemonic_is_incorrect_exception.dart';
import 'package:cw_bitcoin/bitcoin_wallet_creation_credentials.dart'; import 'package:cw_bitcoin/bitcoin_wallet_creation_credentials.dart';
import 'package:cw_bitcoin/encryption_file_utils.dart'; import 'package:cw_bitcoin/encryption_file_utils.dart';
import 'package:cw_bitcoin/encryption_file_utils.dart';
import 'package:cw_core/unspent_coins_info.dart'; import 'package:cw_core/unspent_coins_info.dart';
import 'package:cw_core/wallet_base.dart'; import 'package:cw_core/wallet_base.dart';
import 'package:cw_core/wallet_service.dart'; import 'package:cw_core/wallet_service.dart';
@ -22,6 +23,7 @@ class BitcoinWalletService extends WalletService<
final Box<WalletInfo> walletInfoSource; final Box<WalletInfo> walletInfoSource;
final Box<UnspentCoinsInfo> unspentCoinsInfoSource; final Box<UnspentCoinsInfo> unspentCoinsInfoSource;
final bool isDirect; final bool isDirect;
final bool isDirect;
@override @override
WalletType getType() => WalletType.bitcoin; WalletType getType() => WalletType.bitcoin;
@ -45,8 +47,8 @@ class BitcoinWalletService extends WalletService<
@override @override
Future<BitcoinWallet> openWallet(String name, String password) async { Future<BitcoinWallet> openWallet(String name, String password) async {
final walletInfo = walletInfoSource.values.firstWhereOrNull( final walletInfo = walletInfoSource.values
(info) => info.id == WalletBase.idFor(name, getType()))!; .firstWhereOrNull((info) => info.id == WalletBase.idFor(name, getType()))!;
final wallet = await BitcoinWalletBase.open( final wallet = await BitcoinWalletBase.open(
password: password, name: name, walletInfo: walletInfo, password: password, name: name, walletInfo: walletInfo,
unspentCoinsInfo: unspentCoinsInfoSource, unspentCoinsInfo: unspentCoinsInfoSource,
@ -57,22 +59,23 @@ class BitcoinWalletService extends WalletService<
@override @override
Future<void> remove(String wallet) async { Future<void> remove(String wallet) async {
File(await pathForWalletDir(name: wallet, type: getType())) File(await pathForWalletDir(name: wallet, type: getType())).delete(recursive: true);
.delete(recursive: true); final walletInfo = walletInfoSource.values
final walletInfo = walletInfoSource.values.firstWhereOrNull( .firstWhereOrNull((info) => info.id == WalletBase.idFor(wallet, getType()))!;
(info) => info.id == WalletBase.idFor(wallet, getType()))!;
await walletInfoSource.delete(walletInfo.key); await walletInfoSource.delete(walletInfo.key);
} }
@override @override
Future<void> rename(String currentName, String password, String newName) async { Future<void> rename(String currentName, String password, String newName) async {
final currentWalletInfo = walletInfoSource.values.firstWhereOrNull( final currentWalletInfo = walletInfoSource.values
(info) => info.id == WalletBase.idFor(currentName, getType()))!; .firstWhereOrNull((info) => info.id == WalletBase.idFor(currentName, getType()))!;
final currentWallet = await BitcoinWalletBase.open( final currentWallet = await BitcoinWalletBase.open(
password: password, password: password,
name: currentName, name: currentName,
walletInfo: currentWalletInfo, walletInfo: currentWalletInfo,
unspentCoinsInfo: unspentCoinsInfoSource); unspentCoinsInfo: unspentCoinsInfoSource,
encryptionFileUtils: encryptionFileUtilsFor(isDirect),
);
await currentWallet.renameWalletFiles(newName); await currentWallet.renameWalletFiles(newName);
@ -84,13 +87,11 @@ class BitcoinWalletService extends WalletService<
} }
@override @override
Future<BitcoinWallet> restoreFromKeys( Future<BitcoinWallet> restoreFromKeys(BitcoinRestoreWalletFromWIFCredentials credentials) async =>
BitcoinRestoreWalletFromWIFCredentials credentials) async =>
throw UnimplementedError(); throw UnimplementedError();
@override @override
Future<BitcoinWallet> restoreFromSeed( Future<BitcoinWallet> restoreFromSeed(BitcoinRestoreWalletFromSeedCredentials credentials) async {
BitcoinRestoreWalletFromSeedCredentials credentials) async {
if (!validateMnemonic(credentials.mnemonic)) { if (!validateMnemonic(credentials.mnemonic)) {
throw BitcoinMnemonicIsIncorrectException(); throw BitcoinMnemonicIsIncorrectException();
} }

View file

@ -1,5 +1,6 @@
import 'dart:io'; import 'dart:io';
import 'package:cw_bitcoin/encryption_file_utils.dart'; import 'package:cw_bitcoin/encryption_file_utils.dart';
import 'package:cw_bitcoin/encryption_file_utils.dart';
import 'package:cw_core/unspent_coins_info.dart'; import 'package:cw_core/unspent_coins_info.dart';
import 'package:hive/hive.dart'; import 'package:hive/hive.dart';
import 'package:cw_bitcoin/bitcoin_mnemonic.dart'; import 'package:cw_bitcoin/bitcoin_mnemonic.dart';
@ -22,6 +23,7 @@ class LitecoinWalletService extends WalletService<
final Box<WalletInfo> walletInfoSource; final Box<WalletInfo> walletInfoSource;
final Box<UnspentCoinsInfo> unspentCoinsInfoSource; final Box<UnspentCoinsInfo> unspentCoinsInfoSource;
final bool isDirect; final bool isDirect;
final bool isDirect;
@override @override
WalletType getType() => WalletType.litecoin; WalletType getType() => WalletType.litecoin;
@ -46,8 +48,8 @@ class LitecoinWalletService extends WalletService<
@override @override
Future<LitecoinWallet> openWallet(String name, String password) async { Future<LitecoinWallet> openWallet(String name, String password) async {
final walletInfo = walletInfoSource.values.firstWhereOrNull( final walletInfo = walletInfoSource.values
(info) => info.id == WalletBase.idFor(name, getType()))!; .firstWhereOrNull((info) => info.id == WalletBase.idFor(name, getType()))!;
final wallet = await LitecoinWalletBase.open( final wallet = await LitecoinWalletBase.open(
password: password, name: name, walletInfo: walletInfo, password: password, name: name, walletInfo: walletInfo,
unspentCoinsInfo: unspentCoinsInfoSource, unspentCoinsInfo: unspentCoinsInfoSource,
@ -58,22 +60,23 @@ class LitecoinWalletService extends WalletService<
@override @override
Future<void> remove(String wallet) async { Future<void> remove(String wallet) async {
File(await pathForWalletDir(name: wallet, type: getType())) File(await pathForWalletDir(name: wallet, type: getType())).delete(recursive: true);
.delete(recursive: true); final walletInfo = walletInfoSource.values
final walletInfo = walletInfoSource.values.firstWhereOrNull( .firstWhereOrNull((info) => info.id == WalletBase.idFor(wallet, getType()))!;
(info) => info.id == WalletBase.idFor(wallet, getType()))!;
await walletInfoSource.delete(walletInfo.key); await walletInfoSource.delete(walletInfo.key);
} }
@override @override
Future<void> rename(String currentName, String password, String newName) async { Future<void> rename(String currentName, String password, String newName) async {
final currentWalletInfo = walletInfoSource.values.firstWhereOrNull( final currentWalletInfo = walletInfoSource.values
(info) => info.id == WalletBase.idFor(currentName, getType()))!; .firstWhereOrNull((info) => info.id == WalletBase.idFor(currentName, getType()))!;
final currentWallet = await LitecoinWalletBase.open( final currentWallet = await LitecoinWalletBase.open(
password: password, password: password,
name: currentName, name: currentName,
walletInfo: currentWalletInfo, walletInfo: currentWalletInfo,
unspentCoinsInfo: unspentCoinsInfoSource); unspentCoinsInfo: unspentCoinsInfoSource,
encryptionFileUtils: encryptionFileUtilsFor(isDirect),
);
await currentWallet.renameWalletFiles(newName); await currentWallet.renameWalletFiles(newName);

View file

@ -52,6 +52,7 @@ abstract class MoneroWalletBase extends WalletBase<MoneroBalance,
_hasSyncAfterStartup = false, _hasSyncAfterStartup = false,
isEnabledAutoGenerateSubaddress = false, isEnabledAutoGenerateSubaddress = false,
_password = password, _password = password,
walletAddresses = MoneroWalletAddresses(walletInfo),
syncStatus = NotConnectedSyncStatus(), syncStatus = NotConnectedSyncStatus(),
unspentCoins = [], unspentCoins = [],
this.unspentCoinsInfo = unspentCoinsInfo, this.unspentCoinsInfo = unspentCoinsInfo,

View file

@ -13,8 +13,7 @@ import 'package:cake_wallet/.secrets.g.dart' as secrets;
import 'package:cw_core/crypto_currency.dart'; import 'package:cw_core/crypto_currency.dart';
class MoonPaySellProvider { class MoonPaySellProvider {
MoonPaySellProvider({this.isTest = false}) MoonPaySellProvider({this.isTest = false}) : baseUrl = isTest ? _baseTestUrl : _baseProductUrl;
: baseUrl = isTest ? _baseTestUrl : _baseProductUrl;
static const _baseTestUrl = 'sell-staging.moonpay.com'; static const _baseTestUrl = 'sell-staging.moonpay.com';
static const _baseProductUrl = 'sell.moonpay.com'; static const _baseProductUrl = 'sell.moonpay.com';
@ -68,8 +67,7 @@ class MoonPayBuyProvider extends BuyProvider {
@override @override
BuyProviderDescription get description => BuyProviderDescription.moonPay; BuyProviderDescription get description => BuyProviderDescription.moonPay;
String get currencyCode => String get currencyCode => walletTypeToCryptoCurrency(walletType).title.toLowerCase();
walletTypeToCryptoCurrency(walletType).title.toLowerCase();
@override @override
String get trackUrl => baseUrl + '/transaction_receipt?transactionId='; String get trackUrl => baseUrl + '/transaction_receipt?transactionId=';
@ -78,16 +76,24 @@ class MoonPayBuyProvider extends BuyProvider {
@override @override
Future<String> requestUrl(String amount, String sourceCurrency) async { Future<String> requestUrl(String amount, String sourceCurrency) async {
final enabledPaymentMethods = final enabledPaymentMethods = 'credit_debit_card%2Capple_pay%2Cgoogle_pay%2Csamsung_pay'
'credit_debit_card%2Capple_pay%2Cgoogle_pay%2Csamsung_pay'
'%2Csepa_bank_transfer%2Cgbp_bank_transfer%2Cgbp_open_banking_payment'; '%2Csepa_bank_transfer%2Cgbp_bank_transfer%2Cgbp_open_banking_payment';
final suffix = '?apiKey=' + _apiKey + '&currencyCode=' + final suffix = '?apiKey=' +
currencyCode + '&enabledPaymentMethods=' + enabledPaymentMethods + _apiKey +
'&walletAddress=' + walletAddress + '&currencyCode=' +
'&baseCurrencyCode=' + sourceCurrency.toLowerCase() + currencyCode +
'&baseCurrencyAmount=' + amount + '&lockAmount=true' + '&enabledPaymentMethods=' +
'&showAllCurrencies=false' + '&showWalletAddressForm=false'; enabledPaymentMethods +
'&walletAddress=' +
walletAddress +
'&baseCurrencyCode=' +
sourceCurrency.toLowerCase() +
'&baseCurrencyAmount=' +
amount +
'&lockAmount=true' +
'&showAllCurrencies=false' +
'&showWalletAddressForm=false';
final originalUrl = baseUrl + suffix; final originalUrl = baseUrl + suffix;
@ -96,25 +102,28 @@ class MoonPayBuyProvider extends BuyProvider {
final hmac = Hmac(sha256, key); final hmac = Hmac(sha256, key);
final digest = hmac.convert(messageBytes); final digest = hmac.convert(messageBytes);
final signature = base64.encode(digest.bytes); final signature = base64.encode(digest.bytes);
final urlWithSignature = originalUrl + final urlWithSignature = originalUrl + '&signature=${Uri.encodeComponent(signature)}';
'&signature=${Uri.encodeComponent(signature)}';
return isTestEnvironment ? originalUrl : urlWithSignature; return isTestEnvironment ? originalUrl : urlWithSignature;
} }
@override @override
Future<BuyAmount> calculateAmount(String amount, String sourceCurrency) async { Future<BuyAmount> calculateAmount(String amount, String sourceCurrency) async {
final url = _apiUrl + _currenciesSuffix + '/$currencyCode' + final url = _apiUrl +
_quoteSuffix + '/?apiKey=' + _apiKey + _currenciesSuffix +
'&baseCurrencyAmount=' + amount + '/$currencyCode' +
'&baseCurrencyCode=' + sourceCurrency.toLowerCase(); _quoteSuffix +
'/?apiKey=' +
_apiKey +
'&baseCurrencyAmount=' +
amount +
'&baseCurrencyCode=' +
sourceCurrency.toLowerCase();
final uri = Uri.parse(url); final uri = Uri.parse(url);
final response = await get(uri); final response = await get(uri);
if (response.statusCode != 200) { if (response.statusCode != 200) {
throw BuyException( throw BuyException(description: description, text: 'Quote is not found!');
description: description,
text: 'Quote is not found!');
} }
final responseJSON = json.decode(response.body) as Map<String, dynamic>; final responseJSON = json.decode(response.body) as Map<String, dynamic>;
@ -123,22 +132,17 @@ class MoonPayBuyProvider extends BuyProvider {
final minSourceAmount = responseJSON['baseCurrency']['minAmount'] as int; final minSourceAmount = responseJSON['baseCurrency']['minAmount'] as int;
return BuyAmount( return BuyAmount(
sourceAmount: sourceAmount, sourceAmount: sourceAmount, destAmount: destAmount, minAmount: minSourceAmount);
destAmount: destAmount,
minAmount: minSourceAmount);
} }
@override @override
Future<Order> findOrderById(String id) async { Future<Order> findOrderById(String id) async {
final url = _apiUrl + _transactionsSuffix + '/$id' + final url = _apiUrl + _transactionsSuffix + '/$id' + '?apiKey=' + _apiKey;
'?apiKey=' + _apiKey;
final uri = Uri.parse(url); final uri = Uri.parse(url);
final response = await get(uri); final response = await get(uri);
if (response.statusCode != 200) { if (response.statusCode != 200) {
throw BuyException( throw BuyException(description: description, text: 'Transaction $id is not found!');
description: description,
text: 'Transaction $id is not found!');
} }
final responseJSON = json.decode(response.body) as Map<String, dynamic>; final responseJSON = json.decode(response.body) as Map<String, dynamic>;
@ -156,8 +160,7 @@ class MoonPayBuyProvider extends BuyProvider {
createdAt: createdAt, createdAt: createdAt,
amount: amount.toString(), amount: amount.toString(),
receiveAddress: walletAddress, receiveAddress: walletAddress,
walletId: walletId walletId: walletId);
);
} }
static Future<bool> onEnabled() async { static Future<bool> onEnabled() async {

View file

@ -4,6 +4,7 @@ import 'package:cake_wallet/src/screens/auth/auth_page.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:mobx/mobx.dart'; import 'package:mobx/mobx.dart';
import 'package:cake_wallet/core/secure_storage.dart'; import 'package:cake_wallet/core/secure_storage.dart';
import 'package:cake_wallet/core/secure_storage.dart';
import 'package:shared_preferences/shared_preferences.dart'; import 'package:shared_preferences/shared_preferences.dart';
import 'package:cake_wallet/entities/preferences_key.dart'; import 'package:cake_wallet/entities/preferences_key.dart';
import 'package:cake_wallet/entities/secret_store_key.dart'; import 'package:cake_wallet/entities/secret_store_key.dart';

View file

@ -16,14 +16,13 @@ class WalletLoadingService {
final KeyService keyService; final KeyService keyService;
final WalletService Function(WalletType type) walletServiceFactory; final WalletService Function(WalletType type) walletServiceFactory;
Future<void> renameWallet( Future<void> renameWallet(WalletType type, String name, String newName,
WalletType type, String name, String newName) async { {String? password}) async {
final walletService = walletServiceFactory.call(type); final walletService = walletServiceFactory.call(type);
final password = await keyService.getWalletPassword(walletName: name); final walletPassword = password ?? (await keyService.getWalletPassword(walletName: name));
// Save the current wallet's password to the new wallet name's key // Save the current wallet's password to the new wallet name's key
await keyService.saveWalletPassword( await keyService.saveWalletPassword(walletName: newName, password: walletPassword);
walletName: newName, password: password);
// Delete previous wallet name from keyService to keep only new wallet's name // Delete previous wallet name from keyService to keep only new wallet's name
// otherwise keeps duplicate (old and new names) // otherwise keeps duplicate (old and new names)
await keyService.deleteWalletPassword(walletName: name); await keyService.deleteWalletPassword(walletName: name);
@ -85,11 +84,9 @@ class WalletLoadingService {
// Save new generated password with backup key for case where // Save new generated password with backup key for case where
// wallet will change password, but it will fail to update in secure storage // wallet will change password, but it will fail to update in secure storage
final bakWalletName = '#__${wallet.name}_bak__#'; final bakWalletName = '#__${wallet.name}_bak__#';
await keyService.saveWalletPassword( await keyService.saveWalletPassword(walletName: bakWalletName, password: password);
walletName: bakWalletName, password: password);
await wallet.changePassword(password); await wallet.changePassword(password);
await keyService.saveWalletPassword( await keyService.saveWalletPassword(walletName: wallet.name, password: password);
walletName: wallet.name, password: password);
isPasswordUpdated = true; isPasswordUpdated = true;
await sharedPreferences.setBool(key, isPasswordUpdated); await sharedPreferences.setBool(key, isPasswordUpdated);
} }

View file

@ -7,13 +7,11 @@ import 'package:cake_wallet/entities/preferences_key.dart';
import 'package:cake_wallet/anonpay/anonpay_api.dart'; import 'package:cake_wallet/anonpay/anonpay_api.dart';
import 'package:cake_wallet/anonpay/anonpay_info_base.dart'; import 'package:cake_wallet/anonpay/anonpay_info_base.dart';
import 'package:cake_wallet/anonpay/anonpay_invoice_info.dart'; import 'package:cake_wallet/anonpay/anonpay_invoice_info.dart';
import 'package:cake_wallet/buy/onramper/onramper_buy_provider.dart';
import 'package:cake_wallet/buy/payfura/payfura_buy_provider.dart'; import 'package:cake_wallet/buy/payfura/payfura_buy_provider.dart';
import 'package:cake_wallet/core/yat_service.dart'; import 'package:cake_wallet/core/yat_service.dart';
import 'package:cake_wallet/entities/background_tasks.dart'; import 'package:cake_wallet/entities/background_tasks.dart';
import 'package:cake_wallet/entities/auto_generate_subaddress_status.dart'; import 'package:cake_wallet/entities/auto_generate_subaddress_status.dart';
import 'package:cake_wallet/entities/exchange_api_mode.dart'; import 'package:cake_wallet/entities/exchange_api_mode.dart';
import 'package:cake_wallet/entities/parse_address_from_domain.dart';
import 'package:cake_wallet/entities/receive_page_option.dart'; import 'package:cake_wallet/entities/receive_page_option.dart';
import 'package:cake_wallet/ethereum/ethereum.dart'; import 'package:cake_wallet/ethereum/ethereum.dart';
import 'package:cake_wallet/ionia/ionia_anypay.dart'; import 'package:cake_wallet/ionia/ionia_anypay.dart';
@ -30,6 +28,8 @@ import 'package:cake_wallet/src/screens/dashboard/desktop_widgets/desktop_wallet
import 'package:cake_wallet/src/screens/dashboard/edit_token_page.dart'; import 'package:cake_wallet/src/screens/dashboard/edit_token_page.dart';
import 'package:cake_wallet/src/screens/dashboard/home_settings_page.dart'; import 'package:cake_wallet/src/screens/dashboard/home_settings_page.dart';
import 'package:cake_wallet/src/screens/dashboard/widgets/transactions_page.dart'; import 'package:cake_wallet/src/screens/dashboard/widgets/transactions_page.dart';
import 'package:cake_wallet/src/screens/dashboard/desktop_dashboard_page.dart';
import 'package:cake_wallet/src/screens/dashboard/desktop_widgets/desktop_sidebar_wrapper.dart';
import 'package:cake_wallet/src/screens/receive/anonpay_invoice_page.dart'; import 'package:cake_wallet/src/screens/receive/anonpay_invoice_page.dart';
import 'package:cake_wallet/src/screens/receive/anonpay_receive_page.dart'; import 'package:cake_wallet/src/screens/receive/anonpay_receive_page.dart';
import 'package:cake_wallet/src/screens/settings/display_settings_page.dart'; import 'package:cake_wallet/src/screens/settings/display_settings_page.dart';
@ -45,6 +45,10 @@ import 'package:cake_wallet/src/screens/wallet_unlock/wallet_unlock_arguments.da
import 'package:cake_wallet/themes/theme_list.dart'; import 'package:cake_wallet/themes/theme_list.dart';
import 'package:cake_wallet/utils/payment_request.dart'; import 'package:cake_wallet/utils/payment_request.dart';
import 'package:cake_wallet/view_model/dashboard/desktop_sidebar_view_model.dart'; import 'package:cake_wallet/view_model/dashboard/desktop_sidebar_view_model.dart';
import 'package:cake_wallet/src/screens/wallet_unlock/wallet_unlock_arguments.dart';
import 'package:cake_wallet/themes/theme_list.dart';
import 'package:cake_wallet/utils/payment_request.dart';
import 'package:cake_wallet/view_model/dashboard/desktop_sidebar_view_model.dart';
import 'package:cake_wallet/src/screens/setup_2fa/modify_2fa_page.dart'; import 'package:cake_wallet/src/screens/setup_2fa/modify_2fa_page.dart';
import 'package:cake_wallet/src/screens/setup_2fa/setup_2fa_qr_page.dart'; import 'package:cake_wallet/src/screens/setup_2fa/setup_2fa_qr_page.dart';
import 'package:cake_wallet/src/screens/setup_2fa/setup_2fa.dart'; import 'package:cake_wallet/src/screens/setup_2fa/setup_2fa.dart';
@ -52,7 +56,6 @@ import 'package:cake_wallet/src/screens/setup_2fa/setup_2fa_enter_code_page.dart
import 'package:cake_wallet/src/screens/support_chat/support_chat_page.dart'; import 'package:cake_wallet/src/screens/support_chat/support_chat_page.dart';
import 'package:cake_wallet/src/screens/support_other_links/support_other_links_page.dart'; import 'package:cake_wallet/src/screens/support_other_links/support_other_links_page.dart';
import 'package:cake_wallet/src/screens/wallet/wallet_edit_page.dart'; import 'package:cake_wallet/src/screens/wallet/wallet_edit_page.dart';
import 'package:cake_wallet/themes/theme_list.dart';
import 'package:cake_wallet/utils/device_info.dart'; import 'package:cake_wallet/utils/device_info.dart';
import 'package:cake_wallet/store/anonpay/anonpay_transactions_store.dart'; import 'package:cake_wallet/store/anonpay/anonpay_transactions_store.dart';
import 'package:cake_wallet/utils/payment_request.dart'; import 'package:cake_wallet/utils/payment_request.dart';
@ -217,6 +220,7 @@ import 'package:cake_wallet/src/screens/receive/fullscreen_qr_page.dart';
import 'package:cake_wallet/core/wallet_loading_service.dart'; import 'package:cake_wallet/core/wallet_loading_service.dart';
import 'package:cw_core/crypto_currency.dart'; import 'package:cw_core/crypto_currency.dart';
import 'package:cake_wallet/src/screens/wallet_unlock/wallet_unlock_page.dart'; import 'package:cake_wallet/src/screens/wallet_unlock/wallet_unlock_page.dart';
import 'package:cake_wallet/src/screens/wallet_unlock/wallet_unlock_page.dart';
import 'package:cake_wallet/entities/qr_view_data.dart'; import 'package:cake_wallet/entities/qr_view_data.dart';
import 'core/totp_request_details.dart'; import 'core/totp_request_details.dart';

View file

@ -1,5 +1,6 @@
import 'package:cake_wallet/buy/moonpay/moonpay_buy_provider.dart'; import 'package:cake_wallet/buy/moonpay/moonpay_buy_provider.dart';
import 'package:cake_wallet/buy/onramper/onramper_buy_provider.dart'; import 'package:cake_wallet/buy/onramper/onramper_buy_provider.dart';
import 'package:cake_wallet/buy/payfura/payfura_buy_provider.dart';
import 'package:cake_wallet/di.dart'; import 'package:cake_wallet/di.dart';
import 'package:cake_wallet/generated/i18n.dart'; import 'package:cake_wallet/generated/i18n.dart';
import 'package:cake_wallet/routes.dart'; import 'package:cake_wallet/routes.dart';

View file

@ -85,6 +85,7 @@ class Routes {
static const anonPayInvoicePage = '/anon_pay_invoice_page'; static const anonPayInvoicePage = '/anon_pay_invoice_page';
static const anonPayReceivePage = '/anon_pay_receive_page'; static const anonPayReceivePage = '/anon_pay_receive_page';
static const anonPayDetailsPage = '/anon_pay_details_page'; static const anonPayDetailsPage = '/anon_pay_details_page';
static const payfuraPage = '/pay_fura_page';
static const desktop_actions = '/desktop_actions'; static const desktop_actions = '/desktop_actions';
static const transactionsPage = '/transactions_page'; static const transactionsPage = '/transactions_page';
static const setup_2faPage = '/setup_2fa_page'; static const setup_2faPage = '/setup_2fa_page';

View file

@ -0,0 +1,58 @@
import 'package:cake_wallet/buy/payfura/payfura_buy_provider.dart';
import 'package:cake_wallet/generated/i18n.dart';
import 'package:cake_wallet/src/screens/base_page.dart';
import 'package:flutter/material.dart';
import 'package:flutter_inappwebview/flutter_inappwebview.dart';
import 'package:permission_handler/permission_handler.dart';
class PayFuraPage extends BasePage {
PayFuraPage(this._PayfuraBuyProvider);
final PayfuraBuyProvider _PayfuraBuyProvider;
@override
String get title => S.current.buy;
@override
Widget body(BuildContext context) {
return PayFuraPageBody(_PayfuraBuyProvider);
}
}
class PayFuraPageBody extends StatefulWidget {
PayFuraPageBody(this._PayfuraBuyProvider);
final PayfuraBuyProvider _PayfuraBuyProvider;
Uri get uri => _PayfuraBuyProvider.requestUrl();
@override
PayFuraPageBodyState createState() => PayFuraPageBodyState();
}
class PayFuraPageBodyState extends State<PayFuraPageBody> {
PayFuraPageBodyState();
@override
Widget build(BuildContext context) {
return InAppWebView(
initialOptions: InAppWebViewGroupOptions(
crossPlatform: InAppWebViewOptions(transparentBackground: true),
),
initialUrlRequest: URLRequest(url: widget.uri),
androidOnPermissionRequest: (_, __, resources) async {
bool permissionGranted = await Permission.camera.status == PermissionStatus.granted;
if (!permissionGranted) {
permissionGranted = await Permission.camera.request().isGranted;
}
return PermissionRequestResponse(
resources: resources,
action: permissionGranted
? PermissionRequestResponseAction.GRANT
: PermissionRequestResponseAction.DENY,
);
},
);
}
}

View file

@ -41,9 +41,11 @@ class TransactionsPage extends StatelessWidget {
return Padding( return Padding(
padding: const EdgeInsets.fromLTRB(24, 0, 24, 8), padding: const EdgeInsets.fromLTRB(24, 0, 24, 8),
child: DashBoardRoundedCardWidget( child: DashBoardRoundedCardWidget(
onTap: () => Navigator.of(context).pushNamed( onTap: () => Navigator.of(context).pushNamed(Routes.webViewPage, arguments: [
Routes.webViewPage, '',
arguments: ['', Uri.parse('https://guides.cakewallet.com/docs/bugs-service-status/why_are_my_funds_not_appearing/')]), Uri.parse(
'https://guides.cakewallet.com/docs/bugs-service-status/why_are_my_funds_not_appearing/')
]),
title: S.of(context).syncing_wallet_alert_title, title: S.of(context).syncing_wallet_alert_title,
subTitle: S.of(context).syncing_wallet_alert_content, subTitle: S.of(context).syncing_wallet_alert_content,
), ),

View file

@ -398,8 +398,82 @@ class SendPage extends BasePage {
}, },
) )
], ],
)),
), ),
),
bottomSectionPadding:
EdgeInsets.only(left: 24, right: 24, bottom: 24),
bottomSection: Column(
children: [
if (sendViewModel.hasCurrecyChanger)
Observer(builder: (_) =>
Padding(
padding: EdgeInsets.only(bottom: 12),
child: PrimaryButton(
onPressed: () => presentCurrencyPicker(context),
text: 'Change your asset (${sendViewModel.selectedCryptoCurrency})',
color: Colors.transparent,
textColor: Theme.of(context)
.accentTextTheme!.displaySmall!
.decorationColor!,
)
)
),
if (sendViewModel.hasMultiRecipient)
Padding(
padding: EdgeInsets.only(bottom: 12),
child: PrimaryButton(
onPressed: () {
sendViewModel.addOutput();
Future.delayed(const Duration(milliseconds: 250), () {
controller.jumpToPage(sendViewModel.outputs.length - 1);
});
},
text: S.of(context).add_receiver,
color: Colors.transparent,
textColor: Theme.of(context)
.accentTextTheme!.displaySmall!
.decorationColor!,
isDottedBorder: true,
borderColor: Theme.of(context)
.primaryTextTheme!.displaySmall!
.decorationColor!,
)),
Observer(
builder: (_) {
return LoadingPrimaryButton(
onPressed: () async {
if (_formKey.currentState != null && !_formKey.currentState!.validate()) {
if (sendViewModel.outputs.length > 1) {
showErrorValidationAlert(context);
}
return;
}
final notValidItems = sendViewModel.outputs
.where((item) =>
item.address.isEmpty || item.cryptoAmount.isEmpty)
.toList();
if (notValidItems.isNotEmpty ?? false) {
showErrorValidationAlert(context);
return;
}
await sendViewModel.createTransaction();
},
text: S.of(context).send,
color: Theme.of(context).accentTextTheme!.bodyLarge!.color!,
textColor: Colors.white,
isLoading: sendViewModel.state is IsExecutingState ||
sendViewModel.state is TransactionCommitting,
isDisabled: !sendViewModel.isReadyForSend,
);
},
)
],
)),
); );
} }

View file

@ -48,13 +48,15 @@ class TotpAuthCodePageState extends State<TotpAuthCodePage> {
_reaction ??= reaction((_) => widget.setup2FAViewModel.state, _reaction ??= reaction((_) => widget.setup2FAViewModel.state,
(ExecutionState state) { (ExecutionState state) {
WidgetsBinding.instance.addPostFrameCallback((_) { WidgetsBinding.instance.addPostFrameCallback((_) {
if (state is ExecutedSuccessfullyState) {
widget.totpArguments.onTotpAuthenticationFinished!(true, this); widget.totpArguments.onTotpAuthenticationFinished!(true, this);
});
} }
if (state is FailureState) { if (state is FailureState) {
print(state.error); print(state.error);
WidgetsBinding.instance.addPostFrameCallback((_) {
widget.totpArguments.onTotpAuthenticationFinished!(false, this); widget.totpArguments.onTotpAuthenticationFinished!(false, this);
});
} }
if (state is AuthenticationBanned) { if (state is AuthenticationBanned) {

View file

@ -1,5 +1,5 @@
import 'dart:io'; import 'dart:io';
import 'package:package_info/package_info.dart'; import 'package:package_info_plus/package_info_plus.dart';
enum DistributionType { googleplay, github, appstore, fdroid } enum DistributionType { googleplay, github, appstore, fdroid }

View file

@ -133,10 +133,10 @@ class ExceptionHandler {
static const List<String> _ignoredErrors = const [ static const List<String> _ignoredErrors = const [
"errno = 9", // SocketException: Bad file descriptor "errno = 9", // SocketException: Bad file descriptor
"errno = 28", // OS Error: No space left on device "errno = 28", // OS Error: No space left on device
"errno = 32", // SocketException: OS Error: Broken pipe "errno = 32", // SocketException: Write failed (OS Error: Broken pipe)
"errno = 49", // SocketException: Can't assign requested address "errno = 49", // SocketException: Can't assign requested address
"errno = 54", // SocketException: Connection reset by peer "errno = 54", // SocketException: Connection reset by peer
"errno = 57", // SocketException: OS Error: Socket is not connected "errno = 57", // SocketException: Read failed (OS Error: Socket is not connected)
"errno = 60", // SocketException: Operation timed out "errno = 60", // SocketException: Operation timed out
"errno = 65", // SocketException: No route to host "errno = 65", // SocketException: No route to host
"errno = 103", // SocketException: Software caused connection abort "errno = 103", // SocketException: Software caused connection abort

View file

@ -9,7 +9,6 @@ import connectivity_macos
import cw_monero import cw_monero
import device_info_plus import device_info_plus
import devicelocale import devicelocale
import flutter_secure_storage_macos
import in_app_review import in_app_review
import package_info_plus import package_info_plus
import path_provider_foundation import path_provider_foundation
@ -25,7 +24,6 @@ func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
CwMoneroPlugin.register(with: registry.registrar(forPlugin: "CwMoneroPlugin")) CwMoneroPlugin.register(with: registry.registrar(forPlugin: "CwMoneroPlugin"))
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"))
FlutterSecureStoragePlugin.register(with: registry.registrar(forPlugin: "FlutterSecureStoragePlugin"))
InAppReviewPlugin.register(with: registry.registrar(forPlugin: "InAppReviewPlugin")) InAppReviewPlugin.register(with: registry.registrar(forPlugin: "InAppReviewPlugin"))
FLTPackageInfoPlusPlugin.register(with: registry.registrar(forPlugin: "FLTPackageInfoPlusPlugin")) FLTPackageInfoPlusPlugin.register(with: registry.registrar(forPlugin: "FLTPackageInfoPlusPlugin"))
PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin")) PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin"))

View file

@ -322,6 +322,12 @@
"trade_state_timeout": "نفذ الوقت", "trade_state_timeout": "نفذ الوقت",
"trade_state_created": "تم الأنشاء", "trade_state_created": "تم الأنشاء",
"trade_state_finished": "تم", "trade_state_finished": "تم",
"invalid_password": "رمز مرور خاطئ",
"unlock": "الغاء القفل",
"enter_wallet_password": "أدخل كلمة مرور المحفظة",
"repeate_wallet_password": "كرر كلمة مرور المحفظة",
"wallet_password_is_empty": "كلمة مرور المحفظة فارغة. يجب ألا تكون كلمة مرور المحفظة فارغة",
"repeated_password_is_incorrect": "كلمة المرور المتكررة غير صحيحة. يرجى إعادة كلمة مرور المحفظة مرة أخرى.",
"change_language": "تغيير اللغة", "change_language": "تغيير اللغة",
"change_language_to": "هل تريد تغيير اللغة إلى ${language}؟", "change_language_to": "هل تريد تغيير اللغة إلى ${language}؟",
"paste": "لصق", "paste": "لصق",
@ -339,6 +345,12 @@
"template": "قالب", "template": "قالب",
"confirm_delete_template": "سيؤدي هذا الإجراء إلى حذف هذا القالب. هل ترغب في الاستمرار؟", "confirm_delete_template": "سيؤدي هذا الإجراء إلى حذف هذا القالب. هل ترغب في الاستمرار؟",
"confirm_delete_wallet": "سيؤدي هذا الإجراء إلى حذف هذه المحفظة. هل ترغب في الاستمرار؟", "confirm_delete_wallet": "سيؤدي هذا الإجراء إلى حذف هذه المحفظة. هل ترغب في الاستمرار؟",
"invalid_password": "رمز مرور خاطئ",
"unlock": "الغاء القفل",
"enter_wallet_password": "أدخل كلمة مرور المحفظة",
"repeate_wallet_password": "كرر كلمة مرور المحفظة",
"wallet_password_is_empty": "كلمة مرور المحفظة فارغة. يجب ألا تكون كلمة مرور المحفظة فارغة",
"repeated_password_is_incorrect": "كلمة المرور المتكررة غير صحيحة. يرجى إعادة كلمة مرور المحفظة مرة أخرى.",
"picker_description": "لاختيار ChangeNOW أو MorphToken ، يرجى تغيير زوج التداول الخاص بك أولاً", "picker_description": "لاختيار ChangeNOW أو MorphToken ، يرجى تغيير زوج التداول الخاص بك أولاً",
"change_wallet_alert_title": "تغيير المحفظة الحالية", "change_wallet_alert_title": "تغيير المحفظة الحالية",
"change_wallet_alert_content": "هل تريد تغيير المحفظة الحالية إلى ${wallet_name}؟", "change_wallet_alert_content": "هل تريد تغيير المحفظة الحالية إلى ${wallet_name}؟",

View file

@ -322,6 +322,12 @@
"trade_state_timeout": "Време за изчакване", "trade_state_timeout": "Време за изчакване",
"trade_state_created": "Създадено", "trade_state_created": "Създадено",
"trade_state_finished": "Завършено", "trade_state_finished": "Завършено",
"invalid_password" : "Невалидна парола",
"unlock" : "Отключи",
"enter_wallet_password" : "Въведете паролата на портфейла",
"repeate_wallet_password" : "Повторете паролата на портфейла",
"wallet_password_is_empty" : "Паролата за Wallet е празна. Паролата за Wallet не трябва да е празна",
"repeated_password_is_incorrect" : "Повтарящата се парола е неправилна. Моля, повторете отново паролата за портфейла.",
"change_language": "Смяна на езика", "change_language": "Смяна на езика",
"change_language_to": "Смяна на езика на ${language}?", "change_language_to": "Смяна на езика на ${language}?",
"paste": "Поставяне", "paste": "Поставяне",
@ -344,6 +350,12 @@
"change_wallet_alert_content": "Искате ли да смените сегашния портфейл на ${wallet_name}?", "change_wallet_alert_content": "Искате ли да смените сегашния портфейл на ${wallet_name}?",
"creating_new_wallet": "Създаване на нов портфейл", "creating_new_wallet": "Създаване на нов портфейл",
"creating_new_wallet_error": "Грешка: ${description}", "creating_new_wallet_error": "Грешка: ${description}",
"invalid_password" : "Невалидна парола",
"unlock" : "Отключи",
"enter_wallet_password" : "Въведете паролата на портфейла",
"repeate_wallet_password" : "Повторете паролата на портфейла",
"wallet_password_is_empty" : "Паролата за Wallet е празна. Паролата за Wallet не трябва да е празна",
"repeated_password_is_incorrect" : "Повтарящата се парола е неправилна. Моля, повторете отново паролата за портфейла.",
"seed_alert_title": "Внимание", "seed_alert_title": "Внимание",
"seed_alert_content": "Seed-ът е единственият начин да възстановите портфейла си. Записахте ли го?", "seed_alert_content": "Seed-ът е единственият начин да възстановите портфейла си. Записахте ли го?",
"seed_alert_back": "Назад", "seed_alert_back": "Назад",
@ -603,6 +615,7 @@
"sell_monero_com_alert_content": "Продажбата на Monero все още не се поддържа", "sell_monero_com_alert_content": "Продажбата на Monero все още не се поддържа",
"error_text_input_below_minimum_limit": "Сумата е по-малко от минималната", "error_text_input_below_minimum_limit": "Сумата е по-малко от минималната",
"error_text_input_above_maximum_limit": "Сумата надвишава максималната", "error_text_input_above_maximum_limit": "Сумата надвишава максималната",
"settings": "Настройки",
"show_market_place": "Покажи пазар", "show_market_place": "Покажи пазар",
"prevent_screenshots": "Предотвратете екранни снимки и запис на екрана", "prevent_screenshots": "Предотвратете екранни снимки и запис на екрана",
"profile": "Профил", "profile": "Профил",

View file

@ -322,6 +322,12 @@
"trade_state_timeout": "Vypršel časový limit", "trade_state_timeout": "Vypršel časový limit",
"trade_state_created": "Vytvořeno", "trade_state_created": "Vytvořeno",
"trade_state_finished": "Hotovo", "trade_state_finished": "Hotovo",
"invalid_password" : "Neplatné heslo",
"unlock" : "Odemknout",
"enter_wallet_password" : "Zadejte heslo peněženky",
"repeate_wallet_password" : "Opakujte heslo peněženky",
"wallet_password_is_empty" : "Heslo peněženky je prázdné. Heslo peněženky by nemělo být prázdné",
"repeated_password_is_incorrect" : "Opakované heslo je nesprávné. Zopakujte prosím heslo peněženky znovu.",
"change_language": "Změnit jazyk", "change_language": "Změnit jazyk",
"change_language_to": "Změnit jazyk na ${language}?", "change_language_to": "Změnit jazyk na ${language}?",
"paste": "Vložit", "paste": "Vložit",

View file

@ -322,6 +322,12 @@
"trade_state_timeout": "Timeout", "trade_state_timeout": "Timeout",
"trade_state_created": "Erstellt", "trade_state_created": "Erstellt",
"trade_state_finished": "Fertig", "trade_state_finished": "Fertig",
"invalid_password" : "Ongeldig wachtwoord",
"unlock" : "Freischalten",
"enter_wallet_password" : "Geben Sie das Wallet-Passwort ein",
"repeat_wallet_password" : "Wiederholen Sie das Wallet-Passwort",
"wallet_password_is_empty" : "Wallet-Passwort ist leer. Wallet-Passwort darf nicht leer sein",
"repeated_password_is_incorrect" : "Wiederholtes Passwort ist falsch. Bitte wiederholen Sie das Wallet-Passwort noch einmal.",
"change_language": "Sprache ändern", "change_language": "Sprache ändern",
"change_language_to": "Sprache zu ${language} ändern?", "change_language_to": "Sprache zu ${language} ändern?",
"paste": "Einfügen", "paste": "Einfügen",

View file

@ -322,6 +322,12 @@
"trade_state_timeout": "Timeout", "trade_state_timeout": "Timeout",
"trade_state_created": "Created", "trade_state_created": "Created",
"trade_state_finished": "Finished", "trade_state_finished": "Finished",
"invalid_password" : "Invalid password",
"unlock" : "Unlock",
"enter_wallet_password" : "Enter the wallet password",
"repeate_wallet_password" : "Repeat the wallet password",
"wallet_password_is_empty" : "Wallet password is empty. Wallet password should not be empty",
"repeated_password_is_incorrect" : "Repeated password is incorrect. Please repeat the wallet password again.",
"change_language": "Change language", "change_language": "Change language",
"change_language_to": "Change language to ${language}?", "change_language_to": "Change language to ${language}?",
"paste": "Paste", "paste": "Paste",

View file

@ -322,6 +322,12 @@
"trade_state_timeout": "Se acabó el tiempo", "trade_state_timeout": "Se acabó el tiempo",
"trade_state_created": "Creado", "trade_state_created": "Creado",
"trade_state_finished": "Terminado", "trade_state_finished": "Terminado",
"invalid_password" : "Contraseña invalida",
"unlock" : "desbloquear",
"enter_wallet_password" : "Ingrese la contraseña de la billetera",
"repeate_wallet_password" : "Repita la contraseña de la billetera",
"wallet_password_is_empty" : "La contraseña de la billetera está vacía. La contraseña de la billetera no debe estar vacía",
"repeated_password_is_incorrect" : "La contraseña repetida es incorrecta. Repita la contraseña de la billetera nuevamente.",
"change_language": "Cambiar idioma", "change_language": "Cambiar idioma",
"change_language_to": "Cambiar el idioma a ${language}?", "change_language_to": "Cambiar el idioma a ${language}?",
"paste": "Pegar", "paste": "Pegar",

View file

@ -322,6 +322,12 @@
"trade_state_timeout": "Délai dépassé", "trade_state_timeout": "Délai dépassé",
"trade_state_created": "Créé", "trade_state_created": "Créé",
"trade_state_finished": "Terminé", "trade_state_finished": "Terminé",
"invalid_password" : "Mot de passe incorrect",
"unlock" : "Ouvrir",
"enter_wallet_password" : "Entrez le mot de passe du portefeuille",
"repeate_wallet_password" : "Répétez le mot de passe du portefeuille",
"wallet_password_is_empty" : "Le mot de passe du portefeuille est vide. Le mot de passe du portefeuille ne doit pas être vide",
"repeated_password_is_incorrect" : "Le mot de passe répété est incorrect. Veuillez répéter le mot de passe du portefeuille.",
"change_language": "Changer de langue", "change_language": "Changer de langue",
"change_language_to": "Changer la langue vers ${language} ?", "change_language_to": "Changer la langue vers ${language} ?",
"paste": "Coller", "paste": "Coller",

View file

@ -322,6 +322,12 @@
"trade_state_timeout": "lokacin da ya ƙare", "trade_state_timeout": "lokacin da ya ƙare",
"trade_state_created": "an halicci", "trade_state_created": "an halicci",
"trade_state_finished": "an kammala", "trade_state_finished": "an kammala",
"invalid_password" : "Mot de passe incorrect",
"unlock" : "Ouvrir",
"enter_wallet_password" : "Entrez le mot de passe du portefeuille",
"repeate_wallet_password" : "Répétez le mot de passe du portefeuille",
"wallet_password_is_empty" : "Le mot de passe du portefeuille est vide. Le mot de passe du portefeuille ne doit pas être vide",
"repeated_password_is_incorrect" : "Le mot de passe répété est incorrect. Veuillez répéter le mot de passe du portefeuille.",
"change_language": "canja harshen", "change_language": "canja harshen",
"change_language_to": "canja harshen zuwa ${language}?", "change_language_to": "canja harshen zuwa ${language}?",
"paste": "Manna", "paste": "Manna",

View file

@ -322,6 +322,12 @@
"trade_state_timeout": "समय समाप्त", "trade_state_timeout": "समय समाप्त",
"trade_state_created": "बनाया था", "trade_state_created": "बनाया था",
"trade_state_finished": "ख़त्म होना", "trade_state_finished": "ख़त्म होना",
"invalid_password" : "अवैध पासवर्ड",
"unlock" : "अनलॉक",
"enter_wallet_password" : "वॉलेट पासवर्ड दर्ज करें",
"repeate_wallet_password" : "वॉलेट पासवर्ड दोहराएं",
"wallet_password_is_empty" : "वॉलेट पासवर्ड खाली है। वॉलेट पासवर्ड खाली नहीं होना चाहिए",
"repeated_password_is_incorrect" : "दोहराया गया पासवर्ड गलत है। कृपया वॉलेट पासवर्ड दोबारा दोहराएं।",
"change_language": "भाषा बदलो", "change_language": "भाषा बदलो",
"change_language_to": "को भाषा बदलें ${language}?", "change_language_to": "को भाषा बदलें ${language}?",
"paste": "पेस्ट करें", "paste": "पेस्ट करें",

View file

@ -322,6 +322,12 @@
"trade_state_timeout": "Isteklo", "trade_state_timeout": "Isteklo",
"trade_state_created": "Stvoreno", "trade_state_created": "Stvoreno",
"trade_state_finished": "Završeno", "trade_state_finished": "Završeno",
"invalid_password" : "Érvénytelen jelszó",
"unlock" : "Kinyit",
"enter_wallet_password" : "Adja meg a pénztárca jelszavát",
"repeate_wallet_password" : "Az ismételt jelszó helytelen. Kérjük, ismételje meg újra a pénztárca jelszavát.",
"wallet_password_is_empty" : "A Wallet jelszó üres. A Wallet jelszó nem lehet üres",
"repeated_password_is_incorrect" : "Az ismételt jelszó helytelen. Kérjük, ismételje meg újra a pénztárca jelszavát.",
"change_language": "Promijeni jezik", "change_language": "Promijeni jezik",
"change_language_to": "Promijeni jezik u ${language}?", "change_language_to": "Promijeni jezik u ${language}?",
"paste": "Zalijepi", "paste": "Zalijepi",

View file

@ -322,6 +322,12 @@
"trade_state_timeout": "Waktu habis", "trade_state_timeout": "Waktu habis",
"trade_state_created": "Dibuat", "trade_state_created": "Dibuat",
"trade_state_finished": "Selesai", "trade_state_finished": "Selesai",
"invalid_password" : "Kata sandi salah",
"unlock" : "Membuka kunci",
"enter_wallet_password" : "Masukkan kata sandi dompet",
"repeate_wallet_password" : "Ulangi kata sandi dompet",
"wallet_password_is_empty" : "Kata sandi dompet kosong. Kata sandi dompet tidak boleh kosong",
"repeated_password_is_incorrect" : "Kata sandi berulang salah. Harap ulangi kata sandi dompet lagi.",
"change_language": "Ganti bahasa", "change_language": "Ganti bahasa",
"change_language_to": "Ganti bahasa ke ${language}?", "change_language_to": "Ganti bahasa ke ${language}?",
"paste": "Tempel", "paste": "Tempel",
@ -599,6 +605,7 @@
"sell_monero_com_alert_content": "Menjual Monero belum didukung", "sell_monero_com_alert_content": "Menjual Monero belum didukung",
"error_text_input_below_minimum_limit": "Jumlah kurang dari minimal", "error_text_input_below_minimum_limit": "Jumlah kurang dari minimal",
"error_text_input_above_maximum_limit": "Jumlah lebih dari maksimal", "error_text_input_above_maximum_limit": "Jumlah lebih dari maksimal",
"settings": "Pengaturan",
"show_market_place": "Tampilkan Pasar", "show_market_place": "Tampilkan Pasar",
"prevent_screenshots": "Cegah tangkapan layar dan perekaman layar", "prevent_screenshots": "Cegah tangkapan layar dan perekaman layar",
"profile": "Profil", "profile": "Profil",

View file

@ -322,6 +322,12 @@
"trade_state_timeout": "Timeout", "trade_state_timeout": "Timeout",
"trade_state_created": "Creato", "trade_state_created": "Creato",
"trade_state_finished": "Finito", "trade_state_finished": "Finito",
"invalid_password" : "Password non valida",
"unlock" : "Sbloccare",
"enter_wallet_password" : "Inserisci la password del portafoglio",
"repeate_wallet_password" : "Ripeti la password del portafoglio",
"wallet_password_is_empty" : "La password del portafoglio è vuota. La password del portafoglio non deve essere vuota",
"repeated_password_is_incorrect" : "La password ripetuta non è corretta. Ripeti di nuovo la password del portafoglio.",
"change_language": "Cambia lingua", "change_language": "Cambia lingua",
"change_language_to": "Cambiare lingua in ${language}?", "change_language_to": "Cambiare lingua in ${language}?",
"paste": "Incolla", "paste": "Incolla",

View file

@ -322,6 +322,12 @@
"trade_state_timeout": "タイムアウト", "trade_state_timeout": "タイムアウト",
"trade_state_created": "作成した", "trade_state_created": "作成した",
"trade_state_finished": "完成した", "trade_state_finished": "完成した",
"invalid_password" : "無効なパスワード",
"unlock" : "ロック解除",
"enter_wallet_password" : "ウォレットのパスワードを入力してください",
"repeate_wallet_password" : "ウォレットのパスワードを繰り返す",
"wallet_password_is_empty" : "ウォレットのパスワードが空です。 ウォレットのパスワードを空にすることはできません",
"repeated_password_is_incorrect" : "繰り返されるパスワードが正しくありません。 ウォレットのパスワードをもう一度入力してください。",
"change_language": "言語を変えてください", "change_language": "言語を変えてください",
"change_language_to": "言語を変更 ${language}?", "change_language_to": "言語を変更 ${language}?",
"paste": "ペースト", "paste": "ペースト",

View file

@ -322,6 +322,12 @@
"trade_state_timeout": "타임 아웃", "trade_state_timeout": "타임 아웃",
"trade_state_created": "만들어진", "trade_state_created": "만들어진",
"trade_state_finished": "끝마친", "trade_state_finished": "끝마친",
"invalid_password" : "유효하지 않은 비밀번호",
"unlock" : "터놓다",
"enter_wallet_password" : "지갑 비밀번호를 입력하세요",
"repeate_wallet_password" : "지갑 비밀번호를 반복하십시오",
"wallet_password_is_empty" : "지갑 비밀번호가 비어 있습니다. 월렛 비밀번호는 비워둘 수 없습니다.",
"repeated_password_is_incorrect" : "반복되는 비밀번호가 올바르지 않습니다. 지갑 비밀번호를 다시 한번 입력해주세요.",
"change_language": "언어 변경", "change_language": "언어 변경",
"change_language_to": "언어를로 변경 ${language}?", "change_language_to": "언어를로 변경 ${language}?",
"paste": "풀", "paste": "풀",

View file

@ -322,6 +322,12 @@
"trade_state_timeout": "ခဏပွဲရပ်ခြင်း", "trade_state_timeout": "ခဏပွဲရပ်ခြင်း",
"trade_state_created": "ဖန်တီးခဲ့သည်။", "trade_state_created": "ဖန်တီးခဲ့သည်။",
"trade_state_finished": "ပြီးပြီ။", "trade_state_finished": "ပြီးပြီ။",
"invalid_password" : "စကားဝှက် မမှန်ကန်ပါ။",
"unlock" : "သော့ဖွင့်ပါ။",
"enter_wallet_password" : "ပိုက်ဆံအိတ်စကားဝှက်ကိုထည့်ပါ။",
"repeate_wallet_password" : "ပိုက်ဆံအိတ်စကားဝှက်ကို ပြန်လုပ်ပါ။",
"wallet_password_is_empty" : "ပိုက်ဆံအိတ်စကားဝှက်သည် ဗလာဖြစ်နေသည်။ ပိုက်ဆံအိတ်စကားဝှက်သည် ဗလာမဖြစ်သင့်ပါ။",
"repeated_password_is_incorrect" : "ထပ်ခါတလဲလဲ စကားဝှက် မမှန်ပါ။ ပိုက်ဆံအိတ်စကားဝှက်ကို ထပ်လုပ်ပါ။",
"change_language": "ဘာသာစကားပြောင်းပါ။", "change_language": "ဘာသာစကားပြောင်းပါ။",
"change_language_to": "ဘာသာစကားကို ${language} သို့ ပြောင်းမလား။", "change_language_to": "ဘာသာစကားကို ${language} သို့ ပြောင်းမလား။",
"paste": "ငါးပိ", "paste": "ငါးပိ",

View file

@ -322,6 +322,12 @@
"trade_state_timeout": "Time-out", "trade_state_timeout": "Time-out",
"trade_state_created": "Gemaakt", "trade_state_created": "Gemaakt",
"trade_state_finished": "Afgewerkt", "trade_state_finished": "Afgewerkt",
"invalid_password" : "Ongeldig wachtwoord",
"unlock" : "Ontgrendelen",
"enter_wallet_password" : "Voer het portemonnee-wachtwoord in",
"repeate_wallet_password" : "Herhaal het wachtwoord van de portemonnee",
"wallet_password_is_empty" : "Wallet-wachtwoord is leeg. Wallet-wachtwoord mag niet leeg zijn",
"repeated_password_is_incorrect" : "Herhaald wachtwoord is onjuist. Herhaal het wachtwoord van de portemonnee nogmaals.",
"change_language": "Verander de taal", "change_language": "Verander de taal",
"change_language_to": "Verander de taal in ${language}?", "change_language_to": "Verander de taal in ${language}?",
"paste": "Plakken", "paste": "Plakken",

View file

@ -322,6 +322,12 @@
"trade_state_timeout": "Koniec czasu", "trade_state_timeout": "Koniec czasu",
"trade_state_created": "Stworzona", "trade_state_created": "Stworzona",
"trade_state_finished": "Zakończona", "trade_state_finished": "Zakończona",
"invalid_password" : "Nieprawidłowe hasło",
"unlock" : "Odblokować",
"enter_wallet_password" : "Wprowadź hasło do portfela",
"repeate_wallet_password" : "Powtórz hasło do portfela",
"wallet_password_is_empty" : "Hasło portfela jest puste. Hasło portfela nie powinno być puste",
"repeated_password_is_incorrect" : "Powtórzone hasło jest nieprawidłowe. Powtórz hasło do portfela jeszcze raz.",
"change_language": "Zmień język", "change_language": "Zmień język",
"change_language_to": "Zmień język na ${language}?", "change_language_to": "Zmień język na ${language}?",
"paste": "Wklej", "paste": "Wklej",

View file

@ -322,6 +322,12 @@
"trade_state_timeout": "Tempo esgotado", "trade_state_timeout": "Tempo esgotado",
"trade_state_created": "Criada", "trade_state_created": "Criada",
"trade_state_finished": "Finalizada", "trade_state_finished": "Finalizada",
"invalid_password" : "Senha inválida",
"unlock" : "desbloquear",
"enter_wallet_password" : "Digite a senha da carteira",
"repeate_wallet_password" : "Repita a senha da carteira",
"wallet_password_is_empty" : "A senha da carteira está vazia. A senha da carteira não deve estar vazia",
"repeated_password_is_incorrect" : "A senha repetida está incorreta. Por favor, repita a senha da carteira novamente.",
"change_language": "Mudar idioma", "change_language": "Mudar idioma",
"change_language_to": "Alterar idioma para ${language}?", "change_language_to": "Alterar idioma para ${language}?",
"paste": "Colar", "paste": "Colar",

View file

@ -322,6 +322,12 @@
"trade_state_timeout": "Таймаут", "trade_state_timeout": "Таймаут",
"trade_state_created": "Созданная", "trade_state_created": "Созданная",
"trade_state_finished": "Завершена", "trade_state_finished": "Завершена",
"invalid_password" : "Invalid password",
"unlock" : "Unlock",
"enter_wallet_password" : "Enter the wallet password",
"repeate_wallet_password" : "Repeat the wallet password",
"wallet_password_is_empty" : "Wallet password is empty. Wallet password should not be empty",
"repeated_password_is_incorrect" : "Repeated password is incorrect. Please repeat the wallet password again.",
"change_language": "Изменить язык", "change_language": "Изменить язык",
"change_language_to": "Изменить язык на ${language}?", "change_language_to": "Изменить язык на ${language}?",
"paste": "Вставить", "paste": "Вставить",

View file

@ -322,6 +322,12 @@
"trade_state_timeout": "เวลาหมด", "trade_state_timeout": "เวลาหมด",
"trade_state_created": "ถูกสร้าง", "trade_state_created": "ถูกสร้าง",
"trade_state_finished": "เสร็จสิ้น", "trade_state_finished": "เสร็จสิ้น",
"invalid_password" : "รหัสผ่านไม่ถูกต้อง",
"unlock" : "ปลดล็อค",
"enter_wallet_password" : "ป้อนรหัสผ่านกระเป๋าเงิน",
"repeate_wallet_password" : "ทำซ้ำรหัสผ่านกระเป๋าเงิน",
"wallet_password_is_empty" : "รหัสผ่าน Wallet ว่างเปล่า รหัสผ่าน Wallet ไม่ควรว่างเปล่า",
"repeated_password_is_incorrect" : "รหัสผ่านซ้ำไม่ถูกต้อง กรุณากรอกรหัสผ่านกระเป๋าเงินซ้ำอีกครั้ง",
"change_language": "เปลี่ยนภาษา", "change_language": "เปลี่ยนภาษา",
"change_language_to": "เปลี่ยนภาษาเป็น ${language}?", "change_language_to": "เปลี่ยนภาษาเป็น ${language}?",
"paste": "วาง", "paste": "วาง",

View file

@ -322,6 +322,12 @@
"trade_state_timeout": "Zaman aşımı", "trade_state_timeout": "Zaman aşımı",
"trade_state_created": "Oluşturuldu", "trade_state_created": "Oluşturuldu",
"trade_state_finished": "Tamamlandı", "trade_state_finished": "Tamamlandı",
"invalid_password" : "Geçersiz şifre",
"unlock" : "Kilidini aç",
"enter_wallet_password" : "cüzdan şifresini girin",
"repeate_wallet_password" : "M-cüzdan şifresini tekrarla",
"wallet_password_is_empty" : "Cüzdan şifresi boş. Cüzdan şifresi boş olmamalıdır",
"repeated_password_is_incorrect" : "Tekrarlanan şifre yanlış. Lütfen cüzdan şifresini tekrar tekrarlayın.",
"change_language": "Dili değiştir", "change_language": "Dili değiştir",
"change_language_to": "Dili şuna değiştir: ${language}?", "change_language_to": "Dili şuna değiştir: ${language}?",
"paste": "Yapıştır", "paste": "Yapıştır",

View file

@ -322,6 +322,12 @@
"trade_state_timeout": "Таймаут", "trade_state_timeout": "Таймаут",
"trade_state_created": "Створена", "trade_state_created": "Створена",
"trade_state_finished": "Завершена", "trade_state_finished": "Завершена",
"invalid_password" : "Невірний пароль",
"unlock" : "Розблокувати",
"enter_wallet_password" : "Введіть пароль гаманця",
"repeate_wallet_password" : "Повторіть пароль гаманця",
"wallet_password_is_empty" : "Пароль гаманця порожній. Пароль гаманця не повинен бути порожнім",
"repeated_password_is_incorrect" : "Повторний пароль неправильний. Будь ласка, повторіть пароль гаманця ще раз.",
"change_language": "Змінити мову", "change_language": "Змінити мову",
"change_language_to": "Змінити мову на ${language}?", "change_language_to": "Змінити мову на ${language}?",
"paste": "Вставити", "paste": "Вставити",

View file

@ -322,6 +322,12 @@
"trade_state_timeout": "وقت ختم", "trade_state_timeout": "وقت ختم",
"trade_state_created": "بنایا", "trade_state_created": "بنایا",
"trade_state_finished": "ختم", "trade_state_finished": "ختم",
"invalid_password" : "غلط پاسورڈ",
"unlock" : "غیر مقفل کریں۔",
"enter_wallet_password" : "بٹوے کا پاس ورڈ درج کریں۔",
"repeate_wallet_password" : "والیٹ پاس ورڈ کو دہرائیں۔",
"wallet_password_is_empty" : "والیٹ کا پاس ورڈ خالی ہے۔ والیٹ کا پاس ورڈ خالی نہیں ہونا چاہیے۔",
"repeated_password_is_incorrect" : "بار بار پاس ورڈ غلط ہے۔ براہ کرم بٹوے کا پاس ورڈ دوبارہ دہرائیں۔",
"change_language": "زبان تبدیل کریں", "change_language": "زبان تبدیل کریں",
"change_language_to": "زبان کو ${language} میں تبدیل کریں؟", "change_language_to": "زبان کو ${language} میں تبدیل کریں؟",
"paste": "چسپاں کریں۔", "paste": "چسپاں کریں۔",
@ -603,6 +609,7 @@
"sell_monero_com_alert_content": "Monero فروخت کرنا ابھی تک تعاون یافتہ نہیں ہے۔", "sell_monero_com_alert_content": "Monero فروخت کرنا ابھی تک تعاون یافتہ نہیں ہے۔",
"error_text_input_below_minimum_limit": "رقم کم از کم سے کم ہے۔", "error_text_input_below_minimum_limit": "رقم کم از کم سے کم ہے۔",
"error_text_input_above_maximum_limit": "رقم زیادہ سے زیادہ سے زیادہ ہے۔", "error_text_input_above_maximum_limit": "رقم زیادہ سے زیادہ سے زیادہ ہے۔",
"settings": "ترتیبات",
"show_market_place": "بازار دکھائیں۔", "show_market_place": "بازار دکھائیں۔",
"prevent_screenshots": "اسکرین شاٹس اور اسکرین ریکارڈنگ کو روکیں۔", "prevent_screenshots": "اسکرین شاٹس اور اسکرین ریکارڈنگ کو روکیں۔",
"profile": "پروفائل", "profile": "پروفائل",

View file

@ -322,6 +322,12 @@
"trade_state_timeout": "超时", "trade_state_timeout": "超时",
"trade_state_created": "已建立", "trade_state_created": "已建立",
"trade_state_finished": "已完成", "trade_state_finished": "已完成",
"invalid_password" : "无效的密码",
"unlock" : "开锁",
"enter_wallet_password" : "输入钱包密码",
"repeate_wallet_password" : "重复钱包密码",
"wallet_password_is_empty" : "钱包密码为空。 钱包密码不能为空",
"repeated_password_is_incorrect" : "重复的密码不正确。 请再次输入钱包密码。",
"change_language": "修改语言", "change_language": "修改语言",
"change_language_to": "修改语言为 ${language}?", "change_language_to": "修改语言为 ${language}?",
"paste": "粘贴", "paste": "粘贴",

View file

@ -14,14 +14,14 @@ TYPES=($MONERO_COM $CAKEWALLET $HAVEN)
APP_ANDROID_TYPE=$1 APP_ANDROID_TYPE=$1
MONERO_COM_NAME="Monero.com" MONERO_COM_NAME="Monero.com"
MONERO_COM_VERSION="1.5.1" MONERO_COM_VERSION="1.3.7"
MONERO_COM_BUILD_NUMBER=55 MONERO_COM_BUILD_NUMBER=50
MONERO_COM_BUNDLE_ID="com.monero.app" MONERO_COM_BUNDLE_ID="com.monero.app"
MONERO_COM_PACKAGE="com.monero.app" MONERO_COM_PACKAGE="com.monero.app"
CAKEWALLET_NAME="Cake Wallet" CAKEWALLET_NAME="Cake Wallet"
CAKEWALLET_VERSION="4.8.1" CAKEWALLET_VERSION="4.6.6"
CAKEWALLET_BUILD_NUMBER=168 CAKEWALLET_BUILD_NUMBER=160
CAKEWALLET_BUNDLE_ID="com.cakewallet.cake_wallet" CAKEWALLET_BUNDLE_ID="com.cakewallet.cake_wallet"
CAKEWALLET_PACKAGE="com.cakewallet.cake_wallet" CAKEWALLET_PACKAGE="com.cakewallet.cake_wallet"

View file

@ -13,13 +13,13 @@ TYPES=($MONERO_COM $CAKEWALLET $HAVEN)
APP_IOS_TYPE=$1 APP_IOS_TYPE=$1
MONERO_COM_NAME="Monero.com" MONERO_COM_NAME="Monero.com"
MONERO_COM_VERSION="1.5.1" MONERO_COM_VERSION="1.3.7"
MONERO_COM_BUILD_NUMBER=53 MONERO_COM_BUILD_NUMBER=48
MONERO_COM_BUNDLE_ID="com.cakewallet.monero" MONERO_COM_BUNDLE_ID="com.cakewallet.monero"
CAKEWALLET_NAME="Cake Wallet" CAKEWALLET_NAME="Cake Wallet"
CAKEWALLET_VERSION="4.8.1" CAKEWALLET_VERSION="4.6.6"
CAKEWALLET_BUILD_NUMBER=176 CAKEWALLET_BUILD_NUMBER=155
CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet" CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet"
HAVEN_NAME="Haven" HAVEN_NAME="Haven"

View file

@ -15,8 +15,8 @@ if [ -n "$1" ]; then
fi fi
CAKEWALLET_NAME="Cake Wallet" CAKEWALLET_NAME="Cake Wallet"
CAKEWALLET_VERSION="1.1.1" CAKEWALLET_VERSION="1.0.5"
CAKEWALLET_BUILD_NUMBER=30 CAKEWALLET_BUILD_NUMBER=24
CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet" CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet"
if ! [[ " ${TYPES[*]} " =~ " ${APP_MACOS_TYPE} " ]]; then if ! [[ " ${TYPES[*]} " =~ " ${APP_MACOS_TYPE} " ]]; then