From 5b162c54daf16a0f0f0a0d82671c86f6d4375961 Mon Sep 17 00:00:00 2001 From: Omar Hatem Date: Mon, 2 Dec 2024 20:24:01 +0300 Subject: [PATCH 1/8] Update AndroidManifestBase.xml --- android/app/src/main/AndroidManifestBase.xml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/android/app/src/main/AndroidManifestBase.xml b/android/app/src/main/AndroidManifestBase.xml index 5b080e3ec..a92f493df 100644 --- a/android/app/src/main/AndroidManifestBase.xml +++ b/android/app/src/main/AndroidManifestBase.xml @@ -1,5 +1,4 @@ - + From 3e1cb3905e9e2843860326e5748cb67d801cf078 Mon Sep 17 00:00:00 2001 From: Serhii Date: Tue, 3 Dec 2024 00:26:33 +0200 Subject: [PATCH 2/8] fix infinity values in LetsExchange fixed rate (#1849) Co-authored-by: Omar Hatem --- lib/exchange/provider/letsexchange_exchange_provider.dart | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/exchange/provider/letsexchange_exchange_provider.dart b/lib/exchange/provider/letsexchange_exchange_provider.dart index 1d4da55cb..0a2f81317 100644 --- a/lib/exchange/provider/letsexchange_exchange_provider.dart +++ b/lib/exchange/provider/letsexchange_exchange_provider.dart @@ -97,6 +97,8 @@ class LetsExchangeExchangeProvider extends ExchangeProvider { final amountToGet = double.tryParse(responseJSON['amount'] as String) ?? 0.0; + if (amountToGet == 0.0) return 0.0; + return isFixedRateMode ? amount / amountToGet : amountToGet / amount; } catch (e) { log(e.toString()); From 2e6dbe71affe3df2e42d7fd6ce66782ecae34cfc Mon Sep 17 00:00:00 2001 From: MyEcoria <103332030+MyEcoria@users.noreply.github.com> Date: Tue, 3 Dec 2024 12:02:50 +0100 Subject: [PATCH 3/8] (fix)[translations]: update French translations for wallet (#1850) --- res/values/strings_fr.arb | 100 +++++++++++++++++++------------------- 1 file changed, 50 insertions(+), 50 deletions(-) diff --git a/res/values/strings_fr.arb b/res/values/strings_fr.arb index c03682ada..47c6addb6 100644 --- a/res/values/strings_fr.arb +++ b/res/values/strings_fr.arb @@ -39,8 +39,8 @@ "alert_notice": "Avis", "all": "TOUT", "all_coins": "Toutes les pièces", - "all_trades": "Tous échanges", - "all_transactions": "Toutes transactions", + "all_trades": "Tous les échanges", + "all_transactions": "Toutes les transactions", "alphabetical": "Alphabétique", "already_have_account": "Vous avez déjà un compte ?", "always": "toujours", @@ -55,7 +55,7 @@ "arrive_in_this_address": "${currency} ${tag}arrivera à cette adresse", "ascending": "Ascendant", "ask_each_time": "Demander à chaque fois", - "auth_store_ban_timeout": "délai de bannisement", + "auth_store_ban_timeout": "expulsion_temporaire", "auth_store_banned_for": "Banni pour ", "auth_store_banned_minutes": " minutes", "auth_store_incorrect_password": "Mauvais code PIN", @@ -85,7 +85,7 @@ "Blocks_remaining": "Blocs Restants : ${status}", "bluetooth": "Bluetooth", "bright_theme": "Vif", - "bump_fee": "Frais de bosse", + "bump_fee": "Augmenter les frais", "buy": "Acheter", "buy_alert_content": "Actuellement, nous ne prenons en charge que l'achat de Bitcoin, Ethereum, Litecoin et Monero. Veuillez créer ou basculer vers votre portefeuille Bitcoin, Ethereum, Litecoin ou Monero.", "buy_bitcoin": "Acheter du Bitcoin", @@ -94,7 +94,7 @@ "buy_with": "Acheter avec", "by_cake_pay": "par Cake Pay", "cake_2fa_preset": "Cake 2FA prédéfini", - "cake_dark_theme": "Thème sombre du gâteau", + "cake_dark_theme": "Thème sombre Cake", "cake_pay_account_note": "Inscrivez-vous avec juste une adresse e-mail pour voir et acheter des cartes. Certaines sont même disponibles à prix réduit !", "cake_pay_learn_more": "Achetez et utilisez instantanément des cartes-cadeaux dans l'application !\nBalayer de gauche à droite pour en savoir plus.", "cake_pay_save_order": "La carte doit être envoyée à votre e-mail dans un jour ouvrable \n Enregistrez votre identifiant de commande:", @@ -107,7 +107,7 @@ "camera_consent": "Votre appareil photo sera utilisé pour capturer une image à des fins d'identification par ${provider}. Veuillez consulter leur politique de confidentialité pour plus de détails.", "camera_permission_is_required": "L'autorisation de la caméra est requise.\nVeuillez l'activer à partir des paramètres de l'application.", "cancel": "Annuler", - "card_address": "Adresse :", + "card_address": "Adresse:", "cardholder_agreement": "Contrat de titulaire de carte", "cards": "Cartes", "chains": "Chaînes", @@ -128,13 +128,13 @@ "choose_a_payment_method": "Choisissez un mode de paiement", "choose_a_provider": "Choisissez un fournisseur", "choose_account": "Choisir le compte", - "choose_address": "\n\nMerci de choisir l'adresse :", + "choose_address": "\n\nMerci de choisir l'adresse:", "choose_card_value": "Choisissez une valeur de carte", - "choose_derivation": "Choisissez le chemin de dérivation du portefeuille", - "choose_from_available_options": "Choisissez parmi les options disponibles :", + "choose_derivation": "Choisir la dérivation du portefeuille", + "choose_from_available_options": "Choisissez parmi les options disponibles:", "choose_one": "Choisissez-en un", "choose_relay": "Veuillez choisir un relais à utiliser", - "choose_wallet_currency": "Merci de choisir la devise du portefeuille (wallet) :", + "choose_wallet_currency": "Merci de choisir la devise du portefeuille (wallet):", "choose_wallet_group": "Choisissez un groupe de portefeuille", "clear": "Effacer", "clearnet_link": "Lien Clearnet", @@ -145,12 +145,12 @@ "commit_transaction_amount_fee": "Valider la transaction\nMontant : ${amount}\nFrais : ${fee}", "confirm": "Confirmer", "confirm_delete_template": "Cette action va supprimer ce modèle. Souhaitez-vous continuer ?", - "confirm_delete_wallet": "Cette action va supprimer ce portefeuille (wallet). Souhaitez-vous contnuer ?", + "confirm_delete_wallet": "Cette action va supprimer ce portefeuille (wallet). Souhaitez-vous continuer ?", "confirm_fee_deduction": "Confirmer la déduction des frais", "confirm_fee_deduction_content": "Acceptez-vous de déduire les frais de la production?", "confirm_passphrase": "Confirmer la phrase passante", "confirm_sending": "Confirmer l'envoi", - "confirm_silent_payments_switch_node": "Votre nœud actuel ne prend pas en charge les paiements silencieux \\ ncake qui passera à un nœud compatible, juste pour la numérisation", + "confirm_silent_payments_switch_node": "Votre nœud actuel ne prend pas en charge les paiements silencieux.\n\nCake Wallet passera à un nœud compatible pendant l'analyse.", "confirmations": "Confirmations", "confirmed": "Solde confirmé", "confirmed_tx": "Confirmé", @@ -178,7 +178,7 @@ "copy_id": "Copier l'ID", "copyWalletConnectLink": "Copiez le lien WalletConnect depuis l'application décentralisée (dApp) et collez-le ici", "corrupted_seed_notice": "Les fichiers de ce portefeuille sont corrompus et ne peuvent pas être ouverts. Veuillez consulter la phrase de graines, sauver et restaurer le portefeuille.\n\nSi la valeur est vide, la graine n'a pas pu être correctement récupérée.", - "countries": "Des pays", + "countries": "Pays", "create_account": "Créer un compte", "create_backup": "Créer une sauvegarde", "create_donation_link": "Créer un lien de don", @@ -189,8 +189,8 @@ "creating_new_wallet": "Création d'un nouveau portefeuille (wallet)", "creating_new_wallet_error": "Erreur : ${description}", "creation_date": "Date de création", - "custom": "personnalisé", - "custom_drag": "Custom (maintenir et traîner)", + "custom": "Personnalisé", + "custom_drag": "Personnalisé (Maintenir et Glisser)", "custom_redeem_amount": "Montant d'échange personnalisé", "custom_value": "Valeur personnalisée", "dark_theme": "Sombre", @@ -245,7 +245,7 @@ "enable": "Activer", "enable_mempool_api": "API Mempool pour les frais et dates précis", "enable_replace_by_fee": "Activer Remplace-by-Fee", - "enable_silent_payments_scanning": "Commencez à scanner les paiements silencieux, jusqu'à ce que la pointe soit atteinte", + "enable_silent_payments_scanning": "Commencez à analyser les transactions envoyées à votre adresse de paiement silencieux.", "enabled": "Activé", "enter_amount": "Entrez le montant", "enter_backup_password": "Entrez le mot de passe de sauvegarde ici", @@ -289,7 +289,7 @@ "event": "Événement", "events": "Événements", "exchange": "Échanger", - "exchange_incorrect_current_wallet_for_xmr": "Si vous souhaitez échanger XMR à partir de votre balance monero portefeuille de gâteau, veuillez d'abord passer à votre portefeuille Monero.", + "exchange_incorrect_current_wallet_for_xmr": "Si vous souhaitez échanger des XMR depuis le solde Monero de votre Cake Wallet, veuillez d'abord passer à votre portefeuille Monero.", "exchange_new_template": "Nouveau modèle d'échange", "exchange_provider_unsupported": "${providerName} n'est plus pris en charge !", "exchange_result_confirm": "En pressant confirmer, vous enverrez ${fetchingLabel} ${from} depuis votre portefeuille (wallet) nommé ${walletName} vers l'adresse ci-dessous. Vous pouvez aussi envoyer depuis votre portefeuille externe vers l'adresse/QR code ci-dessous.\n\nMerci d'appuyer sur confirmer pour continuer ou retournez en arrière pour modifier les montants.", @@ -370,11 +370,11 @@ "is_percentage": "est", "last_30_days": "30 derniers jours", "learn_more": "En savoir plus", - "ledger_connection_error": "Impossible de se connecter à votre grand livre. Veuillez réessayer.", - "ledger_error_device_locked": "Le grand livre est verrouillé", + "ledger_connection_error": "Impossible de se connecter à votre Ledger. Veuillez réessayer.", + "ledger_error_device_locked": "La Ledger est verrouillé", "ledger_error_tx_rejected_by_user": "Transaction rejetée sur l'appareil", - "ledger_error_wrong_app": "Veuillez vous assurer d'ouvrir la bonne application sur votre grand livre", - "ledger_please_enable_bluetooth": "Veuillez activer Bluetooth pour détecter votre grand livre", + "ledger_error_wrong_app": "Veuillez vous assurer d'ouvrir la bonne application sur votre Ledger", + "ledger_please_enable_bluetooth": "Veuillez activer le Bluetooth pour détecter votre Ledger", "light_theme": "Clair", "litecoin_enable_mweb_sync": "Activer la numérisation MWEB", "litecoin_mweb": "Mweb", @@ -386,8 +386,8 @@ "litecoin_mweb_enable_later": "Vous pouvez choisir d'activer à nouveau MWEB sous Paramètres d'affichage.", "litecoin_mweb_logs": "Journaux MWEB", "litecoin_mweb_node": "Node MWEB", - "litecoin_mweb_pegin": "Entraver", - "litecoin_mweb_pegout": "Crever", + "litecoin_mweb_pegin": "Dépôt Peg", + "litecoin_mweb_pegout": "Retrait Peg", "litecoin_mweb_scanning": "Scann mweb", "litecoin_mweb_settings": "Paramètres MWEB", "litecoin_mweb_warning": "L'utilisation de MWEB téléchargera initialement ~ 600 Mo de données et peut prendre jusqu'à 30 minutes en fonction de la vitesse du réseau. Ces données initiales ne téléchargeront qu'une seule fois et seront disponibles pour tous les portefeuilles litecoin", @@ -395,9 +395,9 @@ "live_fee_rates": "Taux de frais en direct via l'API", "load_more": "Charger plus", "loading_your_wallet": "Chargement de votre portefeuille (wallet)", - "login": "Utilisateur", + "login": "Connexion", "logout": "Déconnexion", - "low_fee": "Frais modiques", + "low_fee": "Frais faibles", "low_fee_alert": "Vous utilisez actuellement une priorité de frais de réseau peu élevés. Cela pourrait entraîner de longues attentes, des taux différents ou des transactions annulées. Nous vous recommandons de fixer des frais plus élevés pour une meilleure expérience.", "manage_nodes": "Gérer les nœuds", "manage_pow_nodes": "Gérer les nœuds PoW", @@ -428,9 +428,9 @@ "nano_current_rep": "Représentant actuel", "nano_gpt_thanks_message": "Merci d'avoir utilisé Nanogpt! N'oubliez pas de retourner au navigateur une fois votre transaction terminée!", "nano_pick_new_rep": "Choisissez un nouveau représentant", - "nanogpt_subtitle": "Tous les modèles les plus récents (GPT-4, Claude). \\ NNO abonnement, payez avec crypto.", - "narrow": "Étroit", - "new_first_wallet_text": "Garder votre crypto en sécurité est un morceau de gâteau", + "nanogpt_subtitle": "Tous les modèles les plus récents (GPT-4, Claude).\nPas d'abonnement, payez avec vos crypto-monnaies.", + "narrow": "Rédruit", + "new_first_wallet_text": "Garder vos crypto-monnaies en sécurité est un jeu d'enfant.", "new_node_testing": "Test du nouveau nœud", "new_subaddress_create": "Créer", "new_subaddress_label_name": "Nom", @@ -459,7 +459,7 @@ "note_optional": "Note (optionnelle)", "note_tap_to_change": "Note (appuyez pour changer)", "nullURIError": "L'URI est nul", - "offer_expires_in": "L'Offre expire dans : ", + "offer_expires_in": "L'Offre expire dans: ", "offline": "Hors ligne", "ok": "OK", "old_fee": "Anciens", @@ -517,7 +517,7 @@ "private_key": "Clef privée", "proceed_after_one_minute": "Si l'écran ne s'affiche pas après 1 minute, vérifiez vos e-mails.", "proceed_on_device": "Continuez sur votre appareil", - "proceed_on_device_description": "Veuillez suivre les instructions invitées sur votre portefeuille matériel", + "proceed_on_device_description": "Veuillez suivre les instructions affichées sur votre portefeuille physique.", "profile": "Profil", "provider_error": "Erreur de ${provider}", "public_key": "Clef publique", @@ -535,8 +535,8 @@ "reconnect": "Reconnecter", "reconnect_alert_text": "Êtes vous certain de vouloir vous reconnecter ?", "reconnection": "Reconnexion", - "red_dark_theme": "Thème rouge noir", - "red_light_theme": "Thème de la lumière rouge", + "red_dark_theme": "Thème rouge sombre", + "red_light_theme": "Thème rouge clair", "redeemed": "Converties", "refund_address": "Adresse de Remboursement", "reject": "Rejeter", @@ -567,9 +567,9 @@ "restore_address": "Adresse", "restore_bitcoin_description_from_keys": "Restaurer votre portefeuille (wallet) d'après la chaîne WIF générée d'après vos clefs privées", "restore_bitcoin_description_from_seed": "Restaurer votre portefeuille (wallet) à l'aide d'une phrase secrète (seed) de 24 mots", - "restore_bitcoin_title_from_keys": "Restaurer depuis la chaîne WIF", + "restore_bitcoin_title_from_keys": "Restaurer à partir de WIF", "restore_description_from_backup": "Vous pouvez restaurer l'intégralité de l'application Cake Wallet depuis un fichier de sauvegarde", - "restore_description_from_hardware_wallet": "Restaurer à partir d'un portefeuille matériel de grand livre", + "restore_description_from_hardware_wallet": "Restaurer depuis un portefeuille matériel Ledger", "restore_description_from_keys": "Restaurer votre portefeuille (wallet) d'après les séquences de touches générées d'après vos clefs privées", "restore_description_from_seed": "Restaurer votre portefeuille (wallet) depuis une phrase secrète (seed) de 25 ou 13 mots", "restore_description_from_seed_keys": "Restaurez votre portefeuille (wallet) depuis une phrase secrète (seed) ou des clefs que vous avez stockées en lieu sûr", @@ -636,10 +636,10 @@ "seed_reminder": "Merci d'écrire votre phrase secrète (seed) au cas où vous perdriez ou effaceriez votre téléphone", "seed_share": "Partager la phrase secrète (seed)", "seed_title": "Phrase secrète (seed)", - "seedtype": "Type de type graine", - "seedtype_alert_content": "Le partage de graines avec d'autres portefeuilles n'est possible qu'avec Bip39 SeedType.", - "seedtype_alert_title": "Alerte de type SeedType", - "seedtype_legacy": "Héritage (25 mots)", + "seedtype": "Type de graine", + "seedtype_alert_content": "Le partage de graines avec d'autres portefeuilles n'est possible qu'avec le type de graine BIP39.", + "seedtype_alert_title": "Alerte Type de Graine", + "seedtype_legacy": "Legacy (25 words)", "seedtype_polyseed": "Polyseed (16 mots)", "seedtype_wownero": "WOWNERO (14 mots)", "select_backup_file": "Sélectionnez le fichier de sauvegarde", @@ -652,13 +652,13 @@ "sell_monero_com_alert_content": "La vente de Monero n'est pas encore prise en charge", "send": "Envoyer", "send_address": "adresse ${cryptoCurrency}", - "send_amount": "Montant :", + "send_amount": "Montant:", "send_change_to_you": "Changer, pour vous:", "send_creating_transaction": "Création de la transaction", "send_error_currency": "La monnaie ne peut contenir que des nombres", "send_error_minimum_value": "La valeur minimale du montant est 0.01", "send_estimated_fee": "Estimation des frais :", - "send_fee": "Frais :", + "send_fee": "Frais:", "send_name": "Nom", "send_new": "Nouveau", "send_payment_id": "ID de paiement (optionnel)", @@ -672,9 +672,9 @@ "send_your_wallet": "Votre portefeuille (wallet)", "sending": "Envoi", "sent": "Envoyés", - "service_health_disabled": "Le bulletin de santé du service est handicapé", + "service_health_disabled": "Le bulletin de santé du service est désactivé.", "service_health_disabled_message": "Ceci est la page du Bulletin de santé du service, vous pouvez activer cette page sous Paramètres -> Confidentialité", - "set_a_pin": "Régler une goupille", + "set_a_pin": "Définir un code PIN", "settings": "Paramètres", "settings_all": "TOUT", "settings_allow_biometrical_authentication": "Autoriser l'authentification biométrique", @@ -704,7 +704,7 @@ "setup_pin": "Configurer le code PIN", "setup_successful": "Votre code PIN a été configuré avec succès !", "setup_totp_recommended": "Configurer TOTP", - "setup_warning_2fa_text": "Vous devrez restaurer votre portefeuille à partir de la graine mnémonique.\n\nLe support Cake ne pourra pas vous aider si vous perdez l'accès à vos graines 2FA ou mnémoniques.\nCake 2FA est une seconde authentification pour certaines actions dans le portefeuille. Avant d'utiliser Cake 2FA, nous vous recommandons de lire le guide.Ce n’est PAS aussi sécurisé que l’entreposage frigorifique.\n\nSi vous perdez l'accès à votre application 2FA ou à vos clés TOTP, vous perdrez l'accès à ce portefeuille. ", + "setup_warning_2fa_text": "Vous devrez restaurer votre portefeuille à partir de la graine mnémotechnique.\n\nLe support Cake ne pourra pas vous aider si vous perdez l'accès à vos graines 2FA ou mnémotechniques.\nCake 2FA est une seconde authentification pour certaines actions dans le portefeuille. Avant d'utiliser Cake 2FA, nous vous recommandons de lire le guide.Ce n’est PAS aussi sécurisé que l’entreposage frigorifique.\n\nSi vous perdez l'accès à votre application 2FA ou à vos clés TOTP, vous perdrez l'accès à ce portefeuille. ", "setup_your_debit_card": "Configurer votre carte de débit", "share": "Partager", "share_address": "Partager l'adresse", @@ -731,15 +731,15 @@ "silent_payments_scan_from_date": "Analyser à partir de la date", "silent_payments_scan_from_date_or_blockheight": "Veuillez saisir la hauteur du bloc que vous souhaitez commencer à scanner pour les paiements silencieux entrants, ou utilisez la date à la place. Vous pouvez choisir si le portefeuille continue de numériser chaque bloc ou ne vérifie que la hauteur spécifiée.", "silent_payments_scan_from_height": "Scan à partir de la hauteur du bloc", - "silent_payments_scanned_tip": "Scanné à la pointe! (${tip})", - "silent_payments_scanning": "Payments silencieux SCANNING", + "silent_payments_scanned_tip": "SCANNEZ POUR DONNER ! (${tip})", + "silent_payments_scanning": "Scan des paiements silencieux", "silent_payments_settings": "Paramètres de paiement silencieux", "single_seed_wallets_group": "Portefeuilles de semences simples", "slidable": "Glissable", "sort_by": "Trier par", "spend_key_private": "Clef de dépense (spend key) (privée)", "spend_key_public": "Clef de dépense (spend key) (publique)", - "status": "Statut : ", + "status": "Statut: ", "string_default": "Défaut", "subaddress_title": "Liste des sous-adresses", "subaddresses": "Sous-adresses", @@ -752,7 +752,7 @@ "support_title_live_chat": "Support en direct", "support_title_other_links": "Autres liens d'assistance", "sweeping_wallet": "Portefeuille (wallet) de consolidation", - "sweeping_wallet_alert": "Cette opération ne devrait pas prendre longtemps. NE QUITTEZ PAS CET ÉCRAN OU LES FONDS CONSOLIDÉS POURRAIENT ÊTRE PERDUS", + "sweeping_wallet_alert": "Cela ne devrait pas prendre longtemps. NE QUITTEZ PAS CET ÉCRAN OU LES FONDS TRANSFÉRÉS POURRAIENT ÊTRE PERDUS.", "switchToETHWallet": "Veuillez passer à un portefeuille (wallet) Ethereum et réessayer", "switchToEVMCompatibleWallet": "Veuillez passer à un portefeuille compatible EVM et réessayer (Ethereum, Polygon)", "symbol": "Symbole", @@ -779,7 +779,7 @@ "thorchain_contract_address_not_supported": "Thorchain ne prend pas en charge l'envoi à une adresse de contrat", "thorchain_taproot_address_not_supported": "Le fournisseur de Thorchain ne prend pas en charge les adresses de tapoot. Veuillez modifier l'adresse ou sélectionner un autre fournisseur.", "time": "${minutes}m ${seconds}s", - "tip": "Pourboire :", + "tip": "Pourboire:", "today": "Aujourd'hui", "token_contract_address": "Adresse du contrat de token", "token_decimal": "Décimales de token", @@ -928,8 +928,8 @@ "wallets": "Portefeuilles", "warning": "Avertissement", "welcome": "Bienvenue sur", - "welcome_subtitle_new_wallet": "Si vous souhaitez recommencer à créer un nouveau portefeuille ci-dessous et vous serez parti pour les courses.", - "welcome_subtitle_restore_wallet": "Si vous avez un portefeuille existant que vous souhaitez apporter dans le gâteau, choisissez simplement restaurer le portefeuille existant et nous vous guiderons tout au long du processus.", + "welcome_subtitle_new_wallet": "Si vous souhaitez repartir de zéro, appuyez sur Créer un nouveau portefeuille ci-dessous et vous serez prêt à commencer.", + "welcome_subtitle_restore_wallet": "Si vous avez un portefeuille existant que vous souhaitez importer dans Cake, choisissez simplement Restaurer un portefeuille existant et nous vous guiderons à travers le processus.", "welcome_to_cakepay": "Bienvenue sur Cake Pay !", "what_is_silent_payments": "Qu'est-ce que les paiements silencieux?", "widgets_address": "Adresse", From 0691b9ddb35fb2443bccf8fd395e67920d091012 Mon Sep 17 00:00:00 2001 From: ArTombado <45319004+ArTombado@users.noreply.github.com> Date: Tue, 3 Dec 2024 08:03:24 -0300 Subject: [PATCH 4/8] NanoGPT portuguese string fix (#1839) --- res/values/strings_pt.arb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/res/values/strings_pt.arb b/res/values/strings_pt.arb index b910d49b2..6bf05ae46 100644 --- a/res/values/strings_pt.arb +++ b/res/values/strings_pt.arb @@ -429,7 +429,7 @@ "nano_current_rep": "Representante atual", "nano_gpt_thanks_message": "Obrigado por usar o Nanogpt! Lembre -se de voltar para o navegador após a conclusão da transação!", "nano_pick_new_rep": "Escolha um novo representante", - "nanogpt_subtitle": "Todos os modelos mais recentes (GPT-4, Claude). \\ Nno assinatura, pagam com criptografia.", + "nanogpt_subtitle": "Todos os modelos mais recentes (GPT-4, Claude). \\nSem assinatura, pague com criptomoeda.", "narrow": "Estreito", "new_first_wallet_text": "Manter sua cripto segura é um pedaço de bolo", "new_node_testing": "Teste de novo nó", @@ -963,4 +963,4 @@ "you_will_get": "Converter para", "you_will_send": "Converter de", "yy": "aa" -} \ No newline at end of file +} From 01faeabefeb449800ea8049a3801771de8184914 Mon Sep 17 00:00:00 2001 From: Omar Hatem Date: Tue, 3 Dec 2024 14:04:11 +0300 Subject: [PATCH 5/8] test (#1842) * test * macos new build --- .github/workflows/pr_test_build_linux.yml | 2 +- lib/core/address_validator.dart | 2 +- .../screens/cake_pay/cards/cake_pay_buy_card_page.dart | 7 ++----- scripts/android/app_env.sh | 4 ++-- scripts/ios/app_env.sh | 8 ++++---- scripts/macos/app_env.sh | 2 +- 6 files changed, 11 insertions(+), 14 deletions(-) diff --git a/.github/workflows/pr_test_build_linux.yml b/.github/workflows/pr_test_build_linux.yml index 9e25f9f7a..c37b11582 100644 --- a/.github/workflows/pr_test_build_linux.yml +++ b/.github/workflows/pr_test_build_linux.yml @@ -38,7 +38,7 @@ jobs: - name: Flutter action uses: subosito/flutter-action@v1 with: - flutter-version: "3.24.4" + flutter-version: "3.24.0" channel: stable - name: Install package dependencies diff --git a/lib/core/address_validator.dart b/lib/core/address_validator.dart index 9ca8a41ad..c122a872b 100644 --- a/lib/core/address_validator.dart +++ b/lib/core/address_validator.dart @@ -134,7 +134,7 @@ class AddressValidator extends TextValidator { case CryptoCurrency.btcln: pattern = '(lnbc|LNBC)([0-9]{1,}[a-zA-Z0-9]+)'; default: - pattern = '[0-9a-zA-Z]+'; + return ''; } return '$BEFORE_REGEX($pattern)$AFTER_REGEX'; diff --git a/lib/src/screens/cake_pay/cards/cake_pay_buy_card_page.dart b/lib/src/screens/cake_pay/cards/cake_pay_buy_card_page.dart index 21e35359b..bd1840974 100644 --- a/lib/src/screens/cake_pay/cards/cake_pay_buy_card_page.dart +++ b/lib/src/screens/cake_pay/cards/cake_pay_buy_card_page.dart @@ -248,14 +248,11 @@ class CakePayBuyCardPage extends BasePage { } bool isWordInCardsName(CakePayCard card, String word) { - // word must be followed by a space or beginning of the string - final regex = RegExp(r'(^|\s)' + word + r'(\s|$)', caseSensitive: false); - - return regex.hasMatch(card.name.toLowerCase()); + return card.name.toLowerCase().contains(word.toLowerCase()); } bool isIOSUnavailable(CakePayCard card) { - if (!Platform.isIOS) { + if (!Platform.isIOS && !Platform.isMacOS) { return false; } diff --git a/scripts/android/app_env.sh b/scripts/android/app_env.sh index 79afc5c78..24f1f5a51 100644 --- a/scripts/android/app_env.sh +++ b/scripts/android/app_env.sh @@ -16,14 +16,14 @@ APP_ANDROID_TYPE=$1 MONERO_COM_NAME="Monero.com" MONERO_COM_VERSION="1.18.2" -MONERO_COM_BUILD_NUMBER=107 +MONERO_COM_BUILD_NUMBER=108 MONERO_COM_BUNDLE_ID="com.monero.app" MONERO_COM_PACKAGE="com.monero.app" MONERO_COM_SCHEME="monero.com" CAKEWALLET_NAME="Cake Wallet" CAKEWALLET_VERSION="4.21.2" -CAKEWALLET_BUILD_NUMBER=238 +CAKEWALLET_BUILD_NUMBER=239 CAKEWALLET_BUNDLE_ID="com.cakewallet.cake_wallet" CAKEWALLET_PACKAGE="com.cakewallet.cake_wallet" CAKEWALLET_SCHEME="cakewallet" diff --git a/scripts/ios/app_env.sh b/scripts/ios/app_env.sh index 2ca0df21d..816ddd29a 100644 --- a/scripts/ios/app_env.sh +++ b/scripts/ios/app_env.sh @@ -13,13 +13,13 @@ TYPES=($MONERO_COM $CAKEWALLET $HAVEN) APP_IOS_TYPE=$1 MONERO_COM_NAME="Monero.com" -MONERO_COM_VERSION="1.18.1" -MONERO_COM_BUILD_NUMBER=104 +MONERO_COM_VERSION="1.18.2" +MONERO_COM_BUILD_NUMBER=105 MONERO_COM_BUNDLE_ID="com.cakewallet.monero" CAKEWALLET_NAME="Cake Wallet" -CAKEWALLET_VERSION="4.21.1" -CAKEWALLET_BUILD_NUMBER=283 +CAKEWALLET_VERSION="4.21.2" +CAKEWALLET_BUILD_NUMBER=284 CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet" HAVEN_NAME="Haven" diff --git a/scripts/macos/app_env.sh b/scripts/macos/app_env.sh index 930a1e5ed..c9fa6d81e 100755 --- a/scripts/macos/app_env.sh +++ b/scripts/macos/app_env.sh @@ -22,7 +22,7 @@ MONERO_COM_BUNDLE_ID="com.cakewallet.monero" CAKEWALLET_NAME="Cake Wallet" CAKEWALLET_VERSION="1.14.1" -CAKEWALLET_BUILD_NUMBER=96 +CAKEWALLET_BUILD_NUMBER=97 CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet" if ! [[ " ${TYPES[*]} " =~ " ${APP_MACOS_TYPE} " ]]; then From ad6eb7db150a873de54ac4bcc82f174f3e93727a Mon Sep 17 00:00:00 2001 From: OmarHatem Date: Tue, 3 Dec 2024 21:29:40 +0300 Subject: [PATCH 6/8] macos new build linux new build --- android/app/build.gradle | 2 +- .../screens/dashboard/pages/cake_features_page.dart | 12 ++++++++++-- scripts/linux/app_env.sh | 4 ++-- scripts/macos/app_env.sh | 4 ++-- 4 files changed, 15 insertions(+), 7 deletions(-) diff --git a/android/app/build.gradle b/android/app/build.gradle index c19211117..238dc769d 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -44,7 +44,7 @@ android { disable 'InvalidPackage' } - namespace appProperties['id'] + namespace "com.cakewallet.cake_wallet" defaultConfig { applicationId appProperties['id'] diff --git a/lib/src/screens/dashboard/pages/cake_features_page.dart b/lib/src/screens/dashboard/pages/cake_features_page.dart index 775cb6c3f..07d023b28 100644 --- a/lib/src/screens/dashboard/pages/cake_features_page.dart +++ b/lib/src/screens/dashboard/pages/cake_features_page.dart @@ -1,3 +1,5 @@ +import 'dart:io'; + import 'package:cake_wallet/generated/i18n.dart'; import 'package:cake_wallet/routes.dart'; import 'package:cake_wallet/src/widgets/alert_with_one_action.dart'; @@ -40,7 +42,13 @@ class CakeFeaturesPage extends StatelessWidget { children: [ SizedBox(height: 20), DashBoardRoundedCardWidget( - onTap: () => _navigatorToGiftCardsPage(context), + onTap: () { + if (Platform.isMacOS) { + _launchUrl("buy.cakepay.com"); + } else { + _navigatorToGiftCardsPage(context); + } + }, title: 'Cake Pay', subTitle: S.of(context).cake_pay_subtitle, image: Image.asset( @@ -75,7 +83,7 @@ class CakeFeaturesPage extends StatelessWidget { icon: Icon( Icons.speaker_notes_rounded, color: - Theme.of(context).extension()!.pageTitleTextColor, + Theme.of(context).extension()!.pageTitleTextColor, size: 75, ), ); diff --git a/scripts/linux/app_env.sh b/scripts/linux/app_env.sh index 77a33ccfd..12f4cf8be 100755 --- a/scripts/linux/app_env.sh +++ b/scripts/linux/app_env.sh @@ -14,8 +14,8 @@ if [ -n "$1" ]; then fi CAKEWALLET_NAME="Cake Wallet" -CAKEWALLET_VERSION="1.11.1" -CAKEWALLET_BUILD_NUMBER=39 +CAKEWALLET_VERSION="1.11.2" +CAKEWALLET_BUILD_NUMBER=40 if ! [[ " ${TYPES[*]} " =~ " ${APP_LINUX_TYPE} " ]]; then echo "Wrong app type." diff --git a/scripts/macos/app_env.sh b/scripts/macos/app_env.sh index c9fa6d81e..bed3eb326 100755 --- a/scripts/macos/app_env.sh +++ b/scripts/macos/app_env.sh @@ -21,8 +21,8 @@ MONERO_COM_BUILD_NUMBER=37 MONERO_COM_BUNDLE_ID="com.cakewallet.monero" CAKEWALLET_NAME="Cake Wallet" -CAKEWALLET_VERSION="1.14.1" -CAKEWALLET_BUILD_NUMBER=97 +CAKEWALLET_VERSION="1.14.2" +CAKEWALLET_BUILD_NUMBER=98 CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet" if ! [[ " ${TYPES[*]} " =~ " ${APP_MACOS_TYPE} " ]]; then From 9fcbc4d72a9d1b763f8fdfc21071f6024e1b4630 Mon Sep 17 00:00:00 2001 From: cyan Date: Wed, 4 Dec 2024 07:01:49 -0500 Subject: [PATCH 7/8] CW-846: Correctly display balance (#1848) * Correctly display balance even with frozen coins * remove package= from AndroidMainfest.xml * update namespace --- android/app/src/debug/AndroidManifest.xml | 3 +-- android/app/src/profile/AndroidManifest.xml | 3 +-- cw_core/lib/monero_balance.dart | 4 ++-- cw_monero/lib/monero_wallet.dart | 5 +++-- 4 files changed, 7 insertions(+), 8 deletions(-) diff --git a/android/app/src/debug/AndroidManifest.xml b/android/app/src/debug/AndroidManifest.xml index dc767a55d..f880684a6 100644 --- a/android/app/src/debug/AndroidManifest.xml +++ b/android/app/src/debug/AndroidManifest.xml @@ -1,5 +1,4 @@ - + diff --git a/android/app/src/profile/AndroidManifest.xml b/android/app/src/profile/AndroidManifest.xml index dc767a55d..f880684a6 100644 --- a/android/app/src/profile/AndroidManifest.xml +++ b/android/app/src/profile/AndroidManifest.xml @@ -1,5 +1,4 @@ - + diff --git a/cw_core/lib/monero_balance.dart b/cw_core/lib/monero_balance.dart index 98a7f134a..9a63c407e 100644 --- a/cw_core/lib/monero_balance.dart +++ b/cw_core/lib/monero_balance.dart @@ -3,8 +3,8 @@ import 'package:cw_core/monero_amount_format.dart'; class MoneroBalance extends Balance { MoneroBalance({required this.fullBalance, required this.unlockedBalance, this.frozenBalance = 0}) - : formattedFullBalance = moneroAmountToString(amount: fullBalance), - formattedUnlockedBalance = moneroAmountToString(amount: unlockedBalance - frozenBalance), + : formattedFullBalance = moneroAmountToString(amount: frozenBalance + fullBalance), + formattedUnlockedBalance = moneroAmountToString(amount: unlockedBalance), formattedLockedBalance = moneroAmountToString(amount: frozenBalance + fullBalance - unlockedBalance), super(unlockedBalance, fullBalance); diff --git a/cw_monero/lib/monero_wallet.dart b/cw_monero/lib/monero_wallet.dart index 2b302e745..d7a67c47d 100644 --- a/cw_monero/lib/monero_wallet.dart +++ b/cw_monero/lib/monero_wallet.dart @@ -725,8 +725,9 @@ abstract class MoneroWalletBase extends WalletBase Date: Mon, 9 Dec 2024 14:25:36 +0200 Subject: [PATCH 8/8] temporarily ignore flutter secure storage errors --- lib/utils/exception_handler.dart | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/lib/utils/exception_handler.dart b/lib/utils/exception_handler.dart index 6f1ed35a0..7fdbf9307 100644 --- a/lib/utils/exception_handler.dart +++ b/lib/utils/exception_handler.dart @@ -1,6 +1,5 @@ import 'dart:io'; -import 'package:cake_wallet/core/secure_storage.dart'; import 'package:cake_wallet/entities/preferences_key.dart'; import 'package:cake_wallet/generated/i18n.dart'; import 'package:cake_wallet/main.dart'; @@ -21,7 +20,8 @@ class ExceptionHandler { static const _coolDownDurationInDays = 7; static File? _file; - static Future _saveException(String? error, StackTrace? stackTrace, {String? library}) async { + static Future _saveException(String? error, StackTrace? stackTrace, + {String? library}) async { final appDocDir = await getAppDir(); if (_file == null) { @@ -103,7 +103,8 @@ class ExceptionHandler { return; } - if (_ignoreError(errorDetails.exception.toString())) { + if (_ignoreError(errorDetails.exception.toString()) || + _ignoreError(errorDetails.stack.toString())) { return; } @@ -199,6 +200,13 @@ class ExceptionHandler { "input stream error", "invalid signature", "invalid password", + // Temporary ignored, More context: Flutter secure storage reads the values as null some times + // probably when the device was locked and then opened on Cake + // this is solved by a restart of the app + // just ignoring until we find a solution to this issue or migrate from flutter secure storage + "core/auth_service.dart:63", + "core/key_service.dart:14", + "core/wallet_loading_service.dart:132", ]; static Future _addDeviceInfo(File file) async {