aboutsummaryrefslogtreecommitdiffstats
path: root/src/i18n.js
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2026-06-24 13:38:08 -0700
committerAdam Soltys <[email protected]>2026-06-24 13:38:08 -0700
commit7234a3de9e200f36accb754f62163f0bd5360832 (patch)
treef30b492cd8938503512a2f565a7d4a9b396afff1 /src/i18n.js
parentffb5c30b54f913746cd6f9f79166cc4d0842dc78 (diff)
downloadcoinosv3-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.js19
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',