From 332312bc84fc6c255966536a410a770c7d29f75d Mon Sep 17 00:00:00 2001 From: Martin CAYUELAS <112866305+mcayuelas-ledger@users.noreply.github.com> Date: Thu, 19 Sep 2024 10:03:42 +0200 Subject: [PATCH] =?UTF-8?q?feat:=20=F0=9F=92=84=20Add=20UTXO=20disclaimer?= =?UTF-8?q?=20on=20Bitcoin=20like=20coins=20(#7840)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .changeset/unlucky-seals-remember.md | 5 +++++ .../renderer/components/UTXOAddressAlert.tsx | 22 +++++++++++++++++++ .../modals/Receive/steps/StepReceiveFunds.tsx | 15 +++++++++++-- .../static/i18n/en/app.json | 3 ++- 4 files changed, 42 insertions(+), 3 deletions(-) create mode 100644 .changeset/unlucky-seals-remember.md create mode 100644 apps/ledger-live-desktop/src/renderer/components/UTXOAddressAlert.tsx diff --git a/.changeset/unlucky-seals-remember.md b/.changeset/unlucky-seals-remember.md new file mode 100644 index 000000000000..cbcb78dec99b --- /dev/null +++ b/.changeset/unlucky-seals-remember.md @@ -0,0 +1,5 @@ +--- +"ledger-live-desktop": patch +--- + +Add UTXO disclaimer on Receive diff --git a/apps/ledger-live-desktop/src/renderer/components/UTXOAddressAlert.tsx b/apps/ledger-live-desktop/src/renderer/components/UTXOAddressAlert.tsx new file mode 100644 index 000000000000..7261142ab667 --- /dev/null +++ b/apps/ledger-live-desktop/src/renderer/components/UTXOAddressAlert.tsx @@ -0,0 +1,22 @@ +import React from "react"; +import { Trans } from "react-i18next"; +import { Text, Alert } from "@ledgerhq/react-ui"; + +export function UTXOAddressAlert() { + return ( + ( + + + + )} + /> + ); +} diff --git a/apps/ledger-live-desktop/src/renderer/modals/Receive/steps/StepReceiveFunds.tsx b/apps/ledger-live-desktop/src/renderer/modals/Receive/steps/StepReceiveFunds.tsx index fa2ce2aced41..20d0c2c9d7d7 100644 --- a/apps/ledger-live-desktop/src/renderer/modals/Receive/steps/StepReceiveFunds.tsx +++ b/apps/ledger-live-desktop/src/renderer/modals/Receive/steps/StepReceiveFunds.tsx @@ -21,7 +21,7 @@ import SuccessDisplay from "~/renderer/components/SuccessDisplay"; import Receive2NoDevice from "~/renderer/components/Receive2NoDevice"; import { renderVerifyUnwrapped } from "~/renderer/components/DeviceAction/rendering"; import { StepProps } from "../Body"; -import { AccountLike, PostOnboardingActionId } from "@ledgerhq/types-live"; +import { Account, PostOnboardingActionId } from "@ledgerhq/types-live"; import { track } from "~/renderer/analytics/segment"; import Modal from "~/renderer/components/Modal"; import Alert from "~/renderer/components/Alert"; @@ -39,6 +39,7 @@ import { firstValueFrom } from "rxjs"; import { useCompleteActionCallback } from "~/renderer/components/PostOnboardingHub/logic/useCompleteAction"; import { getDefaultAccountName } from "@ledgerhq/live-wallet/accountName"; import { useMaybeAccountName } from "~/renderer/reducers/wallet"; +import { UTXOAddressAlert } from "~/renderer/components/UTXOAddressAlert"; const Separator = styled.div` border-top: 1px solid #99999933; @@ -54,17 +55,21 @@ const QRCodeWrapper = styled.div` width: 208px; background: white; `; + +const UTXOFamily = ["bitcoin", "bitcoin_cash", "dash", "dogecoin", "litecoin", "zcash", "cardano"]; + const Receive1ShareAddress = ({ account, name, address, showQRCodeModal, }: { - account: AccountLike; + account: Account; name: string; address: string; showQRCodeModal: () => void; }) => { + const isUTXOCompliant = UTXOFamily.includes(account.currency.id); return ( <> @@ -93,6 +98,12 @@ const Receive1ShareAddress = ({ + + {isUTXOCompliant && ( + + + + )} ); }; diff --git a/apps/ledger-live-desktop/static/i18n/en/app.json b/apps/ledger-live-desktop/static/i18n/en/app.json index d66b5c78ed39..9b5eb4026a52 100644 --- a/apps/ledger-live-desktop/static/i18n/en/app.json +++ b/apps/ledger-live-desktop/static/i18n/en/app.json @@ -1530,7 +1530,8 @@ "messageIfSkipped": "Your {{name}} address was not confirmed on your Ledger device. Please verify it for security.", "showQrCode": "Show QR Code", "taprootWarning": "Make sure the sender supports taproot", - "dashStakingWarning": "Please make sure you don't use this address for receiving staking rewards" + "dashStakingWarning": "Please make sure you don't use this address for receiving staking rewards", + "utxoWarning": "For privacy reasons, a new address is generated for every transaction. The previous ones do remain valid." }, "emptyState": { "dashboard": {