From 7234a3de9e200f36accb754f62163f0bd5360832 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Wed, 24 Jun 2026 13:38:08 -0700 Subject: Replace seed gift links with presigned PSBT claim links MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Gifting no longer shares a seed. "Gift some Bitcoin" (Settings) presigns a chosen amount as a #gift= link: one SIGHASH_SINGLE input (the sender's change output is cryptographically fixed, so a front-runner can only take the gift portion, never the change) plus the rest left open. The coin is reserved per-wallet so normal sends skip it; reclaim it anytime. Opening the link generates a brand-new wallet the sender never sees, shows the amount, and on Claim adds the claimer's address as the output, finalizes, and broadcasts — then prompts backup of the fresh seed. This gives forward secrecy (sender locked out once confirmed), one-shot semantics (claiming spends the input), and keeps funds in the sender's wallet until claimed. Crypto verified end-to-end (sign NONE/SINGLE -> add output -> finalize -> valid tx; deterministic-signature equality proves the presigned sig is valid for any output the claimer picks). Strings retranslated across all 19 locales. Co-Authored-By: Claude Opus 4.8 (1M context) --- src/locales/de.json | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'src/locales/de.json') diff --git a/src/locales/de.json b/src/locales/de.json index 49b291b..0b7b11e 100644 --- a/src/locales/de.json +++ b/src/locales/de.json @@ -151,9 +151,19 @@ "giftBackup": "Diese Wallet sichern", "giftSkip": "Vorerst überspringen", "giftBackedUp": "Ich habe sie aufgeschrieben", - "giftLink": "Diese Wallet verschenken", - "giftLinkDesc": "Erstelle einen Link, der diese Wallet samt Guthaben öffnet, um jemanden schnell einzurichten.", - "giftLinkWarn": "⚠ Wer diesen Link öffnet, kontrolliert das gesamte Guthaben dieser Wallet. Teile ihn nur, um die Wallet zu verschenken, und halte den Betrag klein.", + "giftLink": "Bitcoin verschenken", + "giftLinkDesc": "Signiere einen Betrag im Voraus als Link. Wer ihn öffnet, beansprucht das Bitcoin in einer brandneuen Wallet, die nur er selbst kontrolliert.", + "giftLinkWarn": "⚠ Wer diesen Link öffnet, kann den Betrag beanspruchen. Teile ihn daher nur mit der Person, die du beschenkst. Halte die Beträge klein.", "giftLinkReveal": "Geschenk-Link erstellen", - "copyLink": "Link kopieren" + "copyLink": "Link kopieren", + "giftAmountLabel": "Zu verschenkender Betrag", + "giftAmountInvalid": "Gib einen gültigen Betrag ein.", + "giftAnother": "Weiteres erstellen", + "giftReserved": "{n} Coin für unbeanspruchte Geschenke zurückgelegt", + "giftReclaim": "Zurückfordern", + "claimBody": "Beanspruche es in einer brandneuen Wallet, die nur du selbst kontrollierst.", + "claimBtn": "Beanspruchen", + "claimFailed": "Dieses Geschenk wurde bereits beansprucht oder ist nicht mehr verfügbar.", + "claimedTitle": "Beansprucht!", + "claimedBody": "Dein Bitcoin ist unterwegs. Sichere deine Wiederherstellungsphrase, um es zu schützen." } -- cgit v1.2.3