diff --git a/core/src/main/java/haveno/core/api/CoreTradesService.java b/core/src/main/java/haveno/core/api/CoreTradesService.java index 30775633e2..177571d0d3 100644 --- a/core/src/main/java/haveno/core/api/CoreTradesService.java +++ b/core/src/main/java/haveno/core/api/CoreTradesService.java @@ -189,7 +189,6 @@ class CoreTradesService { verifyTradeIsNotClosed(tradeId); var trade = getOpenTrade(tradeId).orElseThrow(() -> new IllegalArgumentException(format("trade with id '%s' not found", tradeId))); - log.info("Keeping funds received from trade {}", tradeId); tradeManager.onTradeCompleted(trade); } diff --git a/core/src/main/java/haveno/core/support/dispute/Dispute.java b/core/src/main/java/haveno/core/support/dispute/Dispute.java index 15595b8893..01f0493aa3 100644 --- a/core/src/main/java/haveno/core/support/dispute/Dispute.java +++ b/core/src/main/java/haveno/core/support/dispute/Dispute.java @@ -392,7 +392,7 @@ public final class Dispute implements NetworkPayload, PersistablePayload { change += "chat messages;"; } if (change.length() > 0) { - log.info("cleared sensitive data from {} of dispute for trade {}", change, Utilities.getShortId(getTradeId())); + log.info("Cleared sensitive data from {} of dispute for trade {}", change, Utilities.getShortId(getTradeId())); } } diff --git a/core/src/main/java/haveno/core/trade/Contract.java b/core/src/main/java/haveno/core/trade/Contract.java index 9a88eaff56..1e350d305b 100644 --- a/core/src/main/java/haveno/core/trade/Contract.java +++ b/core/src/main/java/haveno/core/trade/Contract.java @@ -261,18 +261,12 @@ public final class Contract implements NetworkPayload { } public boolean maybeClearSensitiveData() { - return false; // TODO: anything to clear? + return false; // nothing to clear } // edits a contract json string public static String sanitizeContractAsJson(String contractAsJson) { - return contractAsJson - .replaceAll( - "\"takerPaymentAccountPayload\": \\{[^}]*}", - "\"takerPaymentAccountPayload\": null") - .replaceAll( - "\"makerPaymentAccountPayload\": \\{[^}]*}", - "\"makerPaymentAccountPayload\": null"); + return contractAsJson; // nothing to sanitize because the contract does not contain the payment account payloads } public void printDiff(@Nullable String peersContractAsJson) { diff --git a/core/src/main/java/haveno/core/trade/Trade.java b/core/src/main/java/haveno/core/trade/Trade.java index 63ca7a6e8a..6437b40726 100644 --- a/core/src/main/java/haveno/core/trade/Trade.java +++ b/core/src/main/java/haveno/core/trade/Trade.java @@ -1586,11 +1586,24 @@ public abstract class Trade extends XmrWalletBase implements Tradable, Model { public void maybeClearSensitiveData() { String change = ""; + if (contract != null && contract.maybeClearSensitiveData()) { + change += "contract;"; + } + if (processModel != null && processModel.maybeClearSensitiveData()) { + change += "processModel;"; + } + if (contractAsJson != null) { + String edited = Contract.sanitizeContractAsJson(contractAsJson); + if (!edited.equals(contractAsJson)) { + contractAsJson = edited; + change += "contractAsJson;"; + } + } if (removeAllChatMessages()) { change += "chat messages;"; } if (change.length() > 0) { - log.info("cleared sensitive data from {} of trade {}", change, getShortId()); + log.info("Cleared sensitive data from {} of {} {}", change, getClass().getSimpleName(), getShortId()); } } diff --git a/core/src/main/java/haveno/core/trade/protocol/ProcessModel.java b/core/src/main/java/haveno/core/trade/protocol/ProcessModel.java index 4f5ce9e66a..7339585560 100644 --- a/core/src/main/java/haveno/core/trade/protocol/ProcessModel.java +++ b/core/src/main/java/haveno/core/trade/protocol/ProcessModel.java @@ -326,6 +326,17 @@ public class ProcessModel implements Model, PersistablePayload { getAccountAgeWitnessService().getAccountAgeWitnessUtils().witnessDebugLog(trade, null); } + public boolean maybeClearSensitiveData() { + boolean changed = false; + for (TradePeer tradingPeer : getTradePeers()) { + if (tradingPeer.getPaymentAccountPayload() != null || tradingPeer.getContractAsJson() != null) { + tradingPeer.setPaymentAccountPayload(null); + tradingPeer.setContractAsJson(null); + changed = true; + } + } + return changed; + } /////////////////////////////////////////////////////////////////////////////////////////// // Delegates diff --git a/core/src/main/java/haveno/core/user/Preferences.java b/core/src/main/java/haveno/core/user/Preferences.java index 02b1d82aaf..85f49195e1 100644 --- a/core/src/main/java/haveno/core/user/Preferences.java +++ b/core/src/main/java/haveno/core/user/Preferences.java @@ -109,8 +109,8 @@ public final class Preferences implements PersistedDataHost, BridgeAddressProvid )); public static final boolean USE_SYMMETRIC_SECURITY_DEPOSIT = true; - public static final int CLEAR_DATA_AFTER_DAYS_INITIAL = 99999; // feature effectively disabled until user agrees to settings notification - public static final int CLEAR_DATA_AFTER_DAYS_DEFAULT = 60; // used when user has agreed to settings notification + public static final int CLEAR_DATA_AFTER_DAYS_DEFAULT = 60; // used with new instance or when existing user has agreed to settings notification + public static final int CLEAR_DATA_AFTER_DAYS_DISABLED = 99999; // feature effectively disabled until existing user agrees to settings notification // payload is initialized so the default values are available for Property initialization. @@ -309,6 +309,10 @@ public final class Preferences implements PersistedDataHost, BridgeAddressProvid setIgnoreDustThreshold(600); } + if (prefPayload.getClearDataAfterDays() < 1) { + setClearDataAfterDays(Preferences.CLEAR_DATA_AFTER_DAYS_DISABLED); + } + // For users from old versions the 4 flags a false but we want to have it true by default // PhoneKeyAndToken is also null so we can use that to enable the flags if (prefPayload.getPhoneKeyAndToken() == null) { diff --git a/core/src/main/java/haveno/core/user/PreferencesPayload.java b/core/src/main/java/haveno/core/user/PreferencesPayload.java index 44e6aef509..35739037c1 100644 --- a/core/src/main/java/haveno/core/user/PreferencesPayload.java +++ b/core/src/main/java/haveno/core/user/PreferencesPayload.java @@ -122,7 +122,7 @@ public final class PreferencesPayload implements PersistableEnvelope { private String takeOfferSelectedPaymentAccountId; private double securityDepositAsPercent = getDefaultSecurityDepositAsPercent(); private int ignoreDustThreshold = 600; - private int clearDataAfterDays = Preferences.CLEAR_DATA_AFTER_DAYS_INITIAL; + private int clearDataAfterDays = Preferences.CLEAR_DATA_AFTER_DAYS_DEFAULT; private double securityDepositAsPercentForCrypto = getDefaultSecurityDepositAsPercent(); private int blockNotifyPort; private boolean tacAcceptedV120; diff --git a/core/src/main/resources/i18n/displayStrings.properties b/core/src/main/resources/i18n/displayStrings.properties index 1ebbbb2829..1b73ad94a6 100644 --- a/core/src/main/resources/i18n/displayStrings.properties +++ b/core/src/main/resources/i18n/displayStrings.properties @@ -1337,6 +1337,7 @@ setting.preferences.notifyOnPreRelease=Receive pre-release notifications setting.preferences.resetAllFlags=Reset all \"Don't show again\" flags settings.preferences.languageChange=To apply the language change to all screens requires a restart. settings.preferences.supportLanguageWarning=In case of a dispute, please note that arbitration is handled in {0}. +setting.preferences.clearDataAfterDays=Clear sensitive data after (days) settings.preferences.editCustomExplorer.headline=Explorer Settings settings.preferences.editCustomExplorer.description=Choose a system defined explorer from the list on the left, and/or \ customize to suit your own preferences. @@ -1346,6 +1347,15 @@ settings.preferences.editCustomExplorer.name=Name settings.preferences.editCustomExplorer.txUrl=Transaction URL settings.preferences.editCustomExplorer.addressUrl=Address URL +setting.info.headline=New data-privacy feature +settings.preferences.sensitiveDataRemoval.msg=To protect the privacy of yourself and other traders, Haveno intends to \ + remove sensitive data from old trades. This is particularly important for fiat trades which may include bank \ + account details.\n\n\ + The threshold for data removal can be configured on this screen via the field "Clear sensitive data after (days)". \ + It is recommended to set it as low as possible, for example 60 days. That means trades from more than 60 \ + days ago will have sensitive data cleared, as long as they are completed. Completed trades are found in the \ + Portfolio / History tab. + settings.net.xmrHeader=Monero network settings.net.p2pHeader=Haveno network settings.net.onionAddressLabel=My onion address diff --git a/core/src/main/resources/i18n/displayStrings_cs.properties b/core/src/main/resources/i18n/displayStrings_cs.properties index 14cd7b0812..c78fefe199 100644 --- a/core/src/main/resources/i18n/displayStrings_cs.properties +++ b/core/src/main/resources/i18n/displayStrings_cs.properties @@ -1309,6 +1309,9 @@ settings.preferences.editCustomExplorer.name=Jméno settings.preferences.editCustomExplorer.txUrl=Transakční URL settings.preferences.editCustomExplorer.addressUrl=Adresa URL +setting.info.headline=Nová funkce ochrany osobních údajů +settings.preferences.sensitiveDataRemoval.msg=Aby byla chráněna vaše soukromí i soukromí ostatních obchodníků, Haveno zamýšlí odstranit citlivá data ze starých obchodů.\n\nDoporučuje se nastavit tento limit co nejníže, například na 60 dní. To znamená, že obchody starší než 60 dní budou mít citlivá data odstraněna, pokud jsou dokončené. Dokončené obchody najdete na záložce Portfolio / Historie. + settings.net.xmrHeader=Síť Monero settings.net.p2pHeader=Síť Haveno settings.net.onionAddressLabel=Moje onion adresa diff --git a/core/src/main/resources/i18n/displayStrings_de.properties b/core/src/main/resources/i18n/displayStrings_de.properties index d04889babd..c3dd7119ab 100644 --- a/core/src/main/resources/i18n/displayStrings_de.properties +++ b/core/src/main/resources/i18n/displayStrings_de.properties @@ -1044,6 +1044,9 @@ settings.preferences.editCustomExplorer.name=Name settings.preferences.editCustomExplorer.txUrl=Transaktions-URL settings.preferences.editCustomExplorer.addressUrl=Adress-URL +setting.info.headline=Neue Datenschutzfunktion +settings.preferences.sensitiveDataRemoval.msg=Zum Schutz der Privatsphäre von Ihnen und anderen Händlern beabsichtigt Haveno, sensible Daten aus alten Trades zu entfernen. Dies ist besonders wichtig bei Fiat-Trades, die Bankkontodaten enthalten können.\n\nEs wird empfohlen, den Wert so niedrig wie möglich zu setzen, zum Beispiel 60 Tage. Das bedeutet, dass Trades, die älter als 60 Tage sind, sensible Daten gelöscht bekommen, sofern sie abgeschlossen sind. Abgeschlossene Trades finden Sie im Portfolio- / Verlauf-Reiter. + settings.net.xmrHeader=Monero-Netzwerk settings.net.p2pHeader=Haveno-Netzwerk settings.net.onionAddressLabel=Meine Onion-Adresse diff --git a/core/src/main/resources/i18n/displayStrings_es.properties b/core/src/main/resources/i18n/displayStrings_es.properties index a1bb56e29d..a6a5ff1cbd 100644 --- a/core/src/main/resources/i18n/displayStrings_es.properties +++ b/core/src/main/resources/i18n/displayStrings_es.properties @@ -1045,6 +1045,9 @@ settings.preferences.editCustomExplorer.name=Nombre settings.preferences.editCustomExplorer.txUrl=URL de transacción settings.preferences.editCustomExplorer.addressUrl=URL de la dirección +setting.info.headline=Nueva función de privacidad de datos +settings.preferences.sensitiveDataRemoval.msg=Para proteger la privacidad de usted y otros traders, Haveno pretende eliminar datos sensibles de las operaciones antiguas. Esto es especialmente importante para las operaciones con fiat que pueden incluir detalles de cuentas bancarias.\n\nSe recomienda configurarlo lo más bajo posible, por ejemplo, 60 días. Esto significa que las operaciones de hace más de 60 días tendrán los datos sensibles eliminados, siempre que estén completadas. Las operaciones completadas se encuentran en la pestaña Portafolio / Historial. + settings.net.xmrHeader=Red Monero settings.net.p2pHeader=Red Haveno settings.net.onionAddressLabel=Mi dirección onion diff --git a/core/src/main/resources/i18n/displayStrings_fa.properties b/core/src/main/resources/i18n/displayStrings_fa.properties index b6eb0cc2f4..c5444d64ca 100644 --- a/core/src/main/resources/i18n/displayStrings_fa.properties +++ b/core/src/main/resources/i18n/displayStrings_fa.properties @@ -1041,6 +1041,9 @@ settings.preferences.editCustomExplorer.name=نام settings.preferences.editCustomExplorer.txUrl=Transaction URL settings.preferences.editCustomExplorer.addressUrl=Address URL +setting.info.headline=ویژگی جدید حفظ حریم خصوصی داده‌ها +settings.preferences.sensitiveDataRemoval.msg=برای محافظت از حریم خصوصی شما و سایر معامله‌گران، Haveno قصد دارد داده‌های حساس مربوط به معاملات قدیمی را حذف کند. این موضوع به ویژه برای معاملات فیات که ممکن است شامل جزئیات حساب بانکی باشند اهمیت دارد.\n\nتوصیه می‌شود این مقدار را تا حد امکان پایین تنظیم کنید، مثلاً ۶۰ روز. این بدان معناست که معاملاتی که بیش از ۶۰ روز از آنها گذشته و تکمیل شده‌اند، داده‌های حساس آنها پاک خواهد شد. معاملات تکمیل شده در تب «پرتفوی / تاریخچه» یافت می‌شوند. + settings.net.xmrHeader=شبکه بیتکوین settings.net.p2pHeader=Haveno network settings.net.onionAddressLabel=آدرس onion من diff --git a/core/src/main/resources/i18n/displayStrings_fr.properties b/core/src/main/resources/i18n/displayStrings_fr.properties index 5d11a8a6fb..87dc02915e 100644 --- a/core/src/main/resources/i18n/displayStrings_fr.properties +++ b/core/src/main/resources/i18n/displayStrings_fr.properties @@ -1046,6 +1046,9 @@ settings.preferences.editCustomExplorer.name=Nom settings.preferences.editCustomExplorer.txUrl=URL de la transaction settings.preferences.editCustomExplorer.addressUrl=Addresse URL +setting.info.headline=Nouvelle fonctionnalité de confidentialité des données +settings.preferences.sensitiveDataRemoval.msg=Pour protéger la vie privée de vous-même et des autres traders, Haveno a l'intention de supprimer les données sensibles des anciennes transactions. Cela est particulièrement important pour les transactions en fiat qui peuvent inclure des informations bancaires.\n\nIl est recommandé de régler ce délai aussi bas que possible, par exemple 60 jours. Cela signifie que les transactions datant de plus de 60 jours verront leurs données sensibles supprimées, tant qu'elles sont terminées. Les transactions terminées se trouvent dans l'onglet Portefeuille / Historique. + settings.net.xmrHeader=Réseau Monero settings.net.p2pHeader=Le réseau Haveno settings.net.onionAddressLabel=Mon adresse onion diff --git a/core/src/main/resources/i18n/displayStrings_it.properties b/core/src/main/resources/i18n/displayStrings_it.properties index 1e7119606a..a57af5a967 100644 --- a/core/src/main/resources/i18n/displayStrings_it.properties +++ b/core/src/main/resources/i18n/displayStrings_it.properties @@ -1043,6 +1043,9 @@ settings.preferences.editCustomExplorer.name=Nome settings.preferences.editCustomExplorer.txUrl=Transaction URL settings.preferences.editCustomExplorer.addressUrl=Address URL +setting.info.headline=Nuova funzione per la privacy dei dati +settings.preferences.sensitiveDataRemoval.msg=Per proteggere la privacy tua e degli altri trader, Haveno intende rimuovere i dati sensibili dalle vecchie transazioni. Questo è particolarmente importante per le transazioni in valuta fiat che possono includere dettagli del conto bancario.\n\nSi consiglia di impostare questo valore il più basso possibile, ad esempio 60 giorni. Questo significa che le transazioni completate da più di 60 giorni avranno i dati sensibili cancellati. Le transazioni completate si trovano nella scheda Portafoglio / Cronologia. + settings.net.xmrHeader=Network Monero settings.net.p2pHeader=Rete Haveno settings.net.onionAddressLabel=Il mio indirizzo onion diff --git a/core/src/main/resources/i18n/displayStrings_ja.properties b/core/src/main/resources/i18n/displayStrings_ja.properties index 045417f7c4..0a3393a0a0 100644 --- a/core/src/main/resources/i18n/displayStrings_ja.properties +++ b/core/src/main/resources/i18n/displayStrings_ja.properties @@ -1044,6 +1044,9 @@ settings.preferences.editCustomExplorer.name=名義 settings.preferences.editCustomExplorer.txUrl=トランザクションURL settings.preferences.editCustomExplorer.addressUrl=アドレスURL +setting.info.headline=新しいデータプライバシー機能 +settings.preferences.sensitiveDataRemoval.msg=ご自身および他のトレーダーのプライバシーを保護するため、Havenoは過去の取引から機密データを削除する予定です。これは銀行口座情報を含む可能性のある法定通貨の取引で特に重要です。\n\n可能な限り低く設定することをお勧めします。例えば60日です。これは、60日以上前の完了した取引の機密データが削除されることを意味します。完了した取引はポートフォリオ/履歴タブで確認できます。 + settings.net.xmrHeader=ビットコインのネットワーク settings.net.p2pHeader=Havenoネットワーク settings.net.onionAddressLabel=私のonionアドレス diff --git a/core/src/main/resources/i18n/displayStrings_pt-br.properties b/core/src/main/resources/i18n/displayStrings_pt-br.properties index 59b24342db..c60eed1247 100644 --- a/core/src/main/resources/i18n/displayStrings_pt-br.properties +++ b/core/src/main/resources/i18n/displayStrings_pt-br.properties @@ -1045,6 +1045,9 @@ settings.preferences.editCustomExplorer.name=Nome settings.preferences.editCustomExplorer.txUrl=Transaction URL settings.preferences.editCustomExplorer.addressUrl=Address URL +setting.info.headline=Nova funcionalidade de privacidade de dados +settings.preferences.sensitiveDataRemoval.msg=Para proteger a privacidade sua e de outros traders, o Haveno pretende remover dados sensíveis de negociações antigas. Isso é particularmente importante para negociações com moedas fiduciárias que podem incluir detalhes de conta bancária.\n\nÉ recomendado definir o menor valor possível, por exemplo, 60 dias. Isso significa que negociações com mais de 60 dias terão os dados sensíveis removidos, desde que estejam concluídas. Negociações concluídas podem ser encontradas na aba Portfólio / Histórico. + settings.net.xmrHeader=Rede Monero settings.net.p2pHeader=Rede Haveno settings.net.onionAddressLabel=Meu endereço onion diff --git a/core/src/main/resources/i18n/displayStrings_pt.properties b/core/src/main/resources/i18n/displayStrings_pt.properties index 682b825894..eade3dc2ef 100644 --- a/core/src/main/resources/i18n/displayStrings_pt.properties +++ b/core/src/main/resources/i18n/displayStrings_pt.properties @@ -1042,6 +1042,9 @@ settings.preferences.editCustomExplorer.name=Nome settings.preferences.editCustomExplorer.txUrl=Transaction URL settings.preferences.editCustomExplorer.addressUrl=Address URL +setting.info.headline=Nova funcionalidade de privacidade de dados +settings.preferences.sensitiveDataRemoval.msg=Para proteger a privacidade sua e de outros negociadores, o Haveno pretende remover dados sensíveis de negociações antigas. Isso é particularmente importante para negociações com moedas fiduciárias que podem incluir detalhes de conta bancária.\n\nRecomenda-se definir o prazo o mais baixo possível, por exemplo, 60 dias. Isso significa que negociações com mais de 60 dias terão os dados sensíveis removidos, desde que estejam concluídas. Negociações concluídas podem ser encontradas na aba Portfólio / Histórico. + settings.net.xmrHeader=Rede Monero settings.net.p2pHeader=Rede do Haveno settings.net.onionAddressLabel=O meu endereço onion diff --git a/core/src/main/resources/i18n/displayStrings_ru.properties b/core/src/main/resources/i18n/displayStrings_ru.properties index aac587efda..6cf97b8432 100644 --- a/core/src/main/resources/i18n/displayStrings_ru.properties +++ b/core/src/main/resources/i18n/displayStrings_ru.properties @@ -1041,6 +1041,9 @@ settings.preferences.editCustomExplorer.name=Имя settings.preferences.editCustomExplorer.txUrl=Transaction URL settings.preferences.editCustomExplorer.addressUrl=Address URL +setting.info.headline=Новая функция защиты данных +settings.preferences.sensitiveDataRemoval.msg=Для защиты вашей и других трейдеров конфиденциальности Haveno намерен удалять конфиденциальные данные из старых сделок. Это особенно важно для сделок с фиатной валютой, которые могут включать данные банковских счетов.\n\nРекомендуется установить минимальный срок, например, 60 дней. Это означает, что сделки старше 60 дней будут очищены от конфиденциальных данных, при условии, что они завершены. Завершённые сделки находятся во вкладке «Портфель / История». + settings.net.xmrHeader=Сеть Биткойн settings.net.p2pHeader=Haveno network settings.net.onionAddressLabel=Мой onion-адрес diff --git a/core/src/main/resources/i18n/displayStrings_th.properties b/core/src/main/resources/i18n/displayStrings_th.properties index 8da8c3c0ff..392d0bde39 100644 --- a/core/src/main/resources/i18n/displayStrings_th.properties +++ b/core/src/main/resources/i18n/displayStrings_th.properties @@ -1041,6 +1041,9 @@ settings.preferences.editCustomExplorer.name=ชื่อ settings.preferences.editCustomExplorer.txUrl=Transaction URL settings.preferences.editCustomExplorer.addressUrl=Address URL +setting.info.headline=คุณสมบัติความเป็นส่วนตัวข้อมูลใหม่ +settings.preferences.sensitiveDataRemoval.msg=เพื่อปกป้องความเป็นส่วนตัวของคุณและผู้ซื้อขายอื่นๆ Haveno ตั้งใจที่จะลบข้อมูลที่ละเอียดอ่อนจากการซื้อขายเก่า ซึ่งมีความสำคัญอย่างยิ่งสำหรับการซื้อขายฟิอาทที่อาจมีรายละเอียดบัญชีธนาคาร\n\nแนะนำให้ตั้งค่านี้ให้ต่ำที่สุดเท่าที่จะเป็นไปได้ เช่น 60 วัน ซึ่งหมายความว่าการซื้อขายที่เกิน 60 วันจะถูกลบข้อมูลที่ละเอียดอ่อน ตราบใดที่การซื้อขายนั้นเสร็จสมบูรณ์ การซื้อขายที่เสร็จสมบูรณ์สามารถดูได้ในแท็บพอร์ตโฟลิโอ / ประวัติ + settings.net.xmrHeader=เครือข่าย Monero settings.net.p2pHeader=Haveno network settings.net.onionAddressLabel=ที่อยู่ onion ของฉัน diff --git a/core/src/main/resources/i18n/displayStrings_tr.properties b/core/src/main/resources/i18n/displayStrings_tr.properties index 723e108b86..eea3d55cc1 100644 --- a/core/src/main/resources/i18n/displayStrings_tr.properties +++ b/core/src/main/resources/i18n/displayStrings_tr.properties @@ -1305,6 +1305,9 @@ settings.preferences.editCustomExplorer.name=İsim settings.preferences.editCustomExplorer.txUrl=İşlem URL'si settings.preferences.editCustomExplorer.addressUrl=Adres URL'si +setting.info.headline=Yeni veri gizliliği özelliği +settings.preferences.sensitiveDataRemoval.msg=Kendinizin ve diğer tacirlerin gizliliğini korumak için Haveno, eski işlemlerden hassas verileri kaldırmayı planlamaktadır. Bu, banka hesap bilgilerini içerebilecek fiat işlemleri için özellikle önemlidir.\n\nVeri silme eşiğinin mümkün olduğunca düşük, örneğin 60 gün olarak ayarlanması önerilir. Bu, 60 günden eski ve tamamlanmış işlemlerde hassas verilerin temizleneceği anlamına gelir. Tamamlanmış işlemler Portföy / Geçmiş sekmesinde bulunabilir. + settings.net.xmrHeader=Monero ağı settings.net.p2pHeader=Haveno ağı settings.net.onionAddressLabel=Onion adresim diff --git a/core/src/main/resources/i18n/displayStrings_vi.properties b/core/src/main/resources/i18n/displayStrings_vi.properties index 6962df5af2..06d91a6a9d 100644 --- a/core/src/main/resources/i18n/displayStrings_vi.properties +++ b/core/src/main/resources/i18n/displayStrings_vi.properties @@ -1043,6 +1043,9 @@ settings.preferences.editCustomExplorer.name=Tên settings.preferences.editCustomExplorer.txUrl=Transaction URL settings.preferences.editCustomExplorer.addressUrl=Address URL +setting.info.headline=Tính năng bảo mật dữ liệu mới +settings.preferences.sensitiveDataRemoval.msg=Để bảo vệ quyền riêng tư của bạn và các nhà giao dịch khác, Haveno dự định sẽ xóa dữ liệu nhạy cảm khỏi các giao dịch cũ. Điều này đặc biệt quan trọng đối với các giao dịch tiền pháp định có thể bao gồm thông tin tài khoản ngân hàng.\n\nBạn nên đặt giá trị này càng thấp càng tốt, ví dụ 60 ngày. Điều đó có nghĩa là các giao dịch đã hoàn thành từ hơn 60 ngày trước sẽ bị xóa dữ liệu nhạy cảm. Các giao dịch đã hoàn thành có thể được tìm thấy trong tab Danh mục đầu tư / Lịch sử. + settings.net.xmrHeader=Mạng Monero settings.net.p2pHeader=Haveno network settings.net.onionAddressLabel=Địa chỉ onion của tôi diff --git a/core/src/main/resources/i18n/displayStrings_zh-hans.properties b/core/src/main/resources/i18n/displayStrings_zh-hans.properties index daf103a968..003292245e 100644 --- a/core/src/main/resources/i18n/displayStrings_zh-hans.properties +++ b/core/src/main/resources/i18n/displayStrings_zh-hans.properties @@ -1044,6 +1044,9 @@ settings.preferences.editCustomExplorer.name=名称 settings.preferences.editCustomExplorer.txUrl=交易 URL settings.preferences.editCustomExplorer.addressUrl=地址 URL +setting.info.headline=新的数据隐私功能 +settings.preferences.sensitiveDataRemoval.msg=为了保护您和其他交易者的隐私,Haveno 计划从旧交易中删除敏感数据。这对于可能包含银行账户信息的法币交易尤其重要。\n\n建议将其设置得尽可能低,例如 60 天。这意味着超过 60 天且已完成的交易将被清除敏感数据。已完成的交易可在“投资组合 / 历史”标签中找到。 + settings.net.xmrHeader=比特币网络 settings.net.p2pHeader=Haveno 网络 settings.net.onionAddressLabel=我的匿名地址 diff --git a/core/src/main/resources/i18n/displayStrings_zh-hant.properties b/core/src/main/resources/i18n/displayStrings_zh-hant.properties index a816482877..ba735ecfb5 100644 --- a/core/src/main/resources/i18n/displayStrings_zh-hant.properties +++ b/core/src/main/resources/i18n/displayStrings_zh-hant.properties @@ -1044,6 +1044,9 @@ settings.preferences.editCustomExplorer.name=名稱 settings.preferences.editCustomExplorer.txUrl=交易 URL settings.preferences.editCustomExplorer.addressUrl=地址 URL +setting.info.headline=新的資料隱私功能 +settings.preferences.sensitiveDataRemoval.msg=為了保護您與其他交易者的隱私,Haveno 計劃從舊交易中移除敏感資料。這對於可能包含銀行帳戶資訊的法幣交易尤其重要。\n\n建議將此設定設為盡可能低,例如 60 天。這表示只要交易已完成且超過 60 天,敏感資料將被清除。已完成的交易可在「投資組合 / 歷史」標籤中找到。 + settings.net.xmrHeader=比特幣網絡 settings.net.p2pHeader=Haveno 網絡 settings.net.onionAddressLabel=我的匿名地址 diff --git a/desktop/src/main/java/haveno/desktop/main/settings/preferences/PreferencesView.java b/desktop/src/main/java/haveno/desktop/main/settings/preferences/PreferencesView.java index 2590e6a12a..c0e0862fd0 100644 --- a/desktop/src/main/java/haveno/desktop/main/settings/preferences/PreferencesView.java +++ b/desktop/src/main/java/haveno/desktop/main/settings/preferences/PreferencesView.java @@ -39,6 +39,7 @@ import haveno.core.payment.PaymentAccount; import haveno.core.payment.payload.PaymentMethod; import haveno.core.payment.validation.XmrValidator; import haveno.core.trade.HavenoUtils; +import haveno.core.user.DontShowAgainLookup; import haveno.core.user.Preferences; import haveno.core.user.User; import haveno.core.util.FormattingUtils; @@ -111,7 +112,7 @@ public class PreferencesView extends ActivatableViewAndModel tradeCurrencies; private InputTextField deviationInputTextField; private ChangeListener deviationListener, ignoreTradersListListener, - rpcUserListener, rpcPwListener, blockNotifyPortListener, + rpcUserListener, rpcPwListener, blockNotifyPortListener, clearDataAfterDaysListener, autoConfTradeLimitListener, autoConfServiceAddressListener; private ChangeListener deviationFocusedListener; private final boolean displayStandbyModeFeature; @@ -184,6 +185,24 @@ public class PreferencesView extends ActivatableViewAndModel { + DontShowAgainLookup.dontShowAgain(key, true); + // user has acknowledged, enable the feature with a reasonable default value + preferences.setClearDataAfterDays(Preferences.CLEAR_DATA_AFTER_DAYS_DEFAULT); + clearDataAfterDaysInputTextField.setText(String.valueOf(preferences.getClearDataAfterDays())); + }) + .closeButtonText(Res.get("shared.cancel")) + .show(); + } + // We want to have it updated in case an asset got removed allCryptoCurrencies = FXCollections.observableArrayList(CurrencyUtil.getActiveSortedCryptoCurrencies(filterManager)); allCryptoCurrencies.removeAll(cryptoCurrencies); @@ -207,7 +226,7 @@ public class PreferencesView extends ActivatableViewAndModel { + try { + int value = Integer.parseInt(newValue); + if (!newValue.equals(oldValue)) { + preferences.setClearDataAfterDays(value); + } + } catch (Throwable ignore) { + } + }; + if (displayStandbyModeFeature) { // AvoidStandbyModeService feature works only on OSX & Windows avoidStandbyMode = addSlideToggleButton(root, ++gridRow, @@ -264,7 +299,7 @@ public class PreferencesView extends ActivatableViewAndModel referralIdInputTextField.setText(referralId)); referralIdInputTextField.setPromptText(Res.get("setting.preferences.refererId.prompt"));*/ + clearDataAfterDaysInputTextField.setText(String.valueOf(preferences.getClearDataAfterDays())); userLanguageComboBox.setItems(languageCodes); userLanguageComboBox.getSelectionModel().select(preferences.getUserLanguage()); userLanguageComboBox.setConverter(new StringConverter<>() { @@ -672,6 +708,7 @@ public class PreferencesView extends ActivatableViewAndModel