diff options
| author | Adam Soltys <[email protected]> | 2026-06-24 13:38:08 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2026-06-24 13:38:08 -0700 |
| commit | 7234a3de9e200f36accb754f62163f0bd5360832 (patch) | |
| tree | f30b492cd8938503512a2f565a7d4a9b396afff1 /src/i18n.js | |
| parent | ffb5c30b54f913746cd6f9f79166cc4d0842dc78 (diff) | |
| download | coinosv3-7234a3de9e200f36accb754f62163f0bd5360832.tar.gz coinosv3-7234a3de9e200f36accb754f62163f0bd5360832.zip | |
Replace seed gift links with presigned PSBT claim links
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) <[email protected]>
Diffstat (limited to 'src/i18n.js')
| -rw-r--r-- | src/i18n.js | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/src/i18n.js b/src/i18n.js index 0c38520..017b6fa 100644 --- a/src/i18n.js +++ b/src/i18n.js @@ -145,15 +145,22 @@ const STR = { backToHistory: '← Back to history', recoveryPhrase: 'Recovery phrase', giftWelcome: 'You’ve been sent Bitcoin', - giftWelcomeBody: 'This wallet is yours now. Anyone with its recovery phrase controls the coins, so back it up before you do anything else.', - giftBackup: 'Back up this wallet', - giftSkip: 'Skip for now', giftBackedUp: 'I’ve written it down', - giftLink: 'Gift this wallet', - giftLinkDesc: 'Create a link that opens this wallet, with its funds, for onboarding someone fast.', - giftLinkWarn: '⚠ Anyone who opens this link controls all the funds in this wallet. Only share it to give the wallet away, and keep the amount small.', + giftLink: 'Gift some Bitcoin', + giftLinkDesc: 'Presign an amount as a link. Whoever opens it claims the Bitcoin into a brand-new wallet that only they control.', + giftLinkWarn: '⚠ Anyone who opens this link can claim the amount, so share it only with the person you are gifting. Keep amounts small.', giftLinkReveal: 'Create gift link', + giftAmountLabel: 'Amount to gift', + giftAmountInvalid: 'Enter a valid amount.', + giftAnother: 'Create another', + giftReserved: '{n} coin set aside for unclaimed gifts', + giftReclaim: 'Reclaim', copyLink: 'Copy link', + claimBody: 'Claim it into a brand-new wallet that only you control.', + claimBtn: 'Claim it', + claimFailed: 'This gift has already been claimed or is no longer available.', + claimedTitle: 'Claimed!', + claimedBody: 'Your Bitcoin is on its way. Back up your recovery phrase to keep it safe.', recoveryWarn: '⚠ Anyone who can see these words can steal your funds. Make sure nobody is watching before you reveal them.', bip39Passphrase: 'Passphrase', copyPassphrase: 'Copy passphrase', |
