diff --git a/app/extensions/brave/locales/en-US/preferences.properties b/app/extensions/brave/locales/en-US/preferences.properties index 0b26dcad5ea..68271fe6290 100644 --- a/app/extensions/brave/locales/en-US/preferences.properties +++ b/app/extensions/brave/locales/en-US/preferences.properties @@ -71,6 +71,9 @@ add=Fund with debit/credit transferTime=Transfer may take up to 40 minutes addFundsTitle=Add funds… addFunds=Three ways to add funds to your Brave Wallet +copy=Copy +firstKey=Key 1 +secondKey=Key 2 copyToClipboard=Copy to clipboard smartphoneTitle=Use your smartphone app to transfer Bitcoin displayQRCode=Display QR code @@ -110,6 +113,16 @@ offerSearchSuggestions=Autocomplete search term as you type doNotTrackTitle=Do Not Track doNotTrack=Send a 'Do Not Track' header with browsing requests (requires browser restart) blockCanvasFingerprinting=Fingerprinting Protection (may break some websites) +advancedSettings=Advanced Settings... +advancedSettingsTitle=Advanced Settings for Brave Payments +ledgerBackupTitle=Backup your Brave wallet +ledgerBackupContent=Below, you will find the anonymized recovery keys that are required if you ever lose access to this computer. We recommend that you print or save these keys and store them in a safe place, like your local safe deposit box, or under your mattress. It's really up to you! +minimumPageTimeSetting=Minimum page time before logging a visit +minimumVisitsSetting=Minimum visits for publisher relevancy +backupLedger=Backup your wallet +recoverLedger=Recover your wallet +printKeys=Print keys +saveRecoveryFile=Save recovery file... advancedPrivacySettings=Advanced Privacy Settings: braveryDefaults=Bravery Defaults blockAttackSites=Block reported attack sites (not available yet) diff --git a/app/ledger.js b/app/ledger.js index 6e80de3e8ef..40ec6069501 100644 --- a/app/ledger.js +++ b/app/ledger.js @@ -869,6 +869,10 @@ var ledgerInfo = { buyURL: undefined, bravery: undefined, + // wallet credentials + paymentId: undefined, + passphrase: undefined, + hasBitcoinHandler: false, // geoIP/exchange information @@ -1107,6 +1111,9 @@ var getStateInfo = (state) => { var info = state.paymentInfo var then = underscore.now() - msecs.year + ledgerInfo.paymentId = state.properties.wallet.paymentId + ledgerInfo.passphrase = state.properties.wallet.keychains.passphrase + ledgerInfo.created = !!state.properties.wallet ledgerInfo.creating = !ledgerInfo.created @@ -1228,7 +1235,6 @@ var getPaymentInfo = () => { info = underscore.extend(info, underscore.pick(body, [ 'buyURL', 'buyURLExpires', 'balance', 'unconfirmed', 'satoshis' ])) info.address = client.getWalletAddress() - info.passphrase = client.getWalletPassphrase() if ((amount) && (currency)) { info = underscore.extend(info, { amount: amount, currency: currency }) if ((body.rates) && (body.rates[currency])) { diff --git a/js/about/preferences.js b/js/about/preferences.js index 9cd22297284..e3af3371608 100644 --- a/js/about/preferences.js +++ b/js/about/preferences.js @@ -721,6 +721,7 @@ class TabsTab extends ImmutableComponent { class PaymentsTab extends ImmutableComponent { constructor () { super() + this.printKeys = this.printKeys.bind(this) this.createWallet = this.createWallet.bind(this) } @@ -730,6 +731,23 @@ class PaymentsTab extends ImmutableComponent { } } + copyToClipboard (text) { + aboutActions.setClipboard(text) + } + + printKeys () { + const paymentId = this.props.ledgerData.get('paymentId') + const passphrase = this.props.ledgerData.get('passphrase') + + aboutActions.newFrame({ + location: `data:text/html,Brave Wallet Recovery keys + Date created: + Recovery Key 1: ${paymentId} + Recovery Key 2: ${passphrase} + Note: These keys are not stored on Brave servers. These keys are your only method of recovering your Brave wallet. Save these keys in a safe place, separate from your brave browser.` + }, true) + } + get enabled () { return getSetting(settings.PAYMENTS_ENABLED, this.props.settings) } @@ -839,6 +857,103 @@ class PaymentsTab extends ImmutableComponent { } + get advancedSettingsContent () { + return