Skip to content

Commit 1335cfb

Browse files
committed
Removes transition btc->bat code
Resolves brave#12712 Auditors: Test Plan:
1 parent 40432dc commit 1335cfb

File tree

17 files changed

+22
-900
lines changed

17 files changed

+22
-900
lines changed

app/browser/api/ledger.js

+17-166
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ const appActions = require('../../../js/actions/appActions')
2626
// State
2727
const ledgerState = require('../../common/state/ledgerState')
2828
const pageDataState = require('../../common/state/pageDataState')
29-
const migrationState = require('../../common/state/migrationState')
3029

3130
// Constants
3231
const settings = require('../../../js/constants/settings')
@@ -81,7 +80,6 @@ let verifiedTimeoutId = false
8180
let v2RulesetDB
8281
const v2RulesetPath = 'ledger-rulesV2.leveldb'
8382
const statePath = 'ledger-state.json'
84-
const newClientPath = 'ledger-newstate.json'
8583

8684
// Definitions
8785
const clientOptions = {
@@ -1140,8 +1138,6 @@ const initSynopsis = (state) => {
11401138

11411139
const enable = (state, paymentsEnabled) => {
11421140
if (paymentsEnabled) {
1143-
state = checkBtcBatMigrated(state, paymentsEnabled)
1144-
11451141
if (!getSetting(settings.PAYMENTS_NOTIFICATION_TRY_PAYMENTS_DISMISSED)) {
11461142
appActions.changeSetting(settings.PAYMENTS_NOTIFICATION_TRY_PAYMENTS_DISMISSED, true)
11471143
}
@@ -1834,19 +1830,6 @@ const onCallback = (state, result, delayTime) => {
18341830
// persist the new ledger state
18351831
muonWriter(statePath, regularResults)
18361832

1837-
// delete the temp file used during transition (if it still exists)
1838-
if (client && client.options && client.options.version === 'v2') {
1839-
const fs = require('fs')
1840-
fs.access(pathName(newClientPath), fs.FF_OK, (err) => {
1841-
if (err) {
1842-
return
1843-
}
1844-
fs.unlink(pathName(newClientPath), (err) => {
1845-
if (err) console.error('unlink error: ' + err.toString())
1846-
})
1847-
})
1848-
}
1849-
18501833
run(state, delayTime)
18511834

18521835
return state
@@ -1877,7 +1860,6 @@ const initialize = (state, paymentsEnabled) => {
18771860

18781861
if (!paymentsEnabled) {
18791862
client = null
1880-
newClient = false
18811863
return ledgerState.resetInfo(state, true)
18821864
}
18831865

@@ -1933,6 +1915,23 @@ const getContributionAmount = (state) => {
19331915
}
19341916

19351917
const onInitRead = (state, parsedData) => {
1918+
// debugger
1919+
const isBTC = parsedData &&
1920+
parsedData.properties &&
1921+
parsedData.properties.wallet &&
1922+
parsedData.properties.wallet.keychains
1923+
1924+
if (isBTC) {
1925+
const fs = require('fs')
1926+
fs.renameSync(pathName(statePath), pathName('ledger-state-btc.json'))
1927+
state = ledgerState.resetInfo(state, true)
1928+
clientprep()
1929+
client = ledgerClient(null, underscore.extend({roundtrip: roundtrip}, clientOptions), null)
1930+
parsedData = client.state
1931+
muonWriter(statePath, parsedData)
1932+
return state
1933+
}
1934+
19361935
if (Array.isArray(parsedData.transactions)) {
19371936
parsedData.transactions.sort((transaction1, transaction2) => {
19381937
return transaction1.submissionStamp - transaction2.submissionStamp
@@ -2251,147 +2250,6 @@ const deleteSynopsis = () => {
22512250
synopsis.publishers = {}
22522251
}
22532252

2254-
// fix for incorrectly persisted state (see #11585)
2255-
const yoDawg = (stateState) => {
2256-
while (stateState.hasOwnProperty('state') && stateState.state.persona) {
2257-
stateState = stateState.state
2258-
}
2259-
return stateState
2260-
}
2261-
2262-
const checkBtcBatMigrated = (state, paymentsEnabled) => {
2263-
if (!paymentsEnabled) {
2264-
return state
2265-
}
2266-
2267-
// One time conversion of wallet
2268-
const isNewInstall = migrationState.isNewInstall(state)
2269-
const hasUpgradedWallet = migrationState.hasUpgradedWallet(state)
2270-
if (!isNewInstall && !hasUpgradedWallet) {
2271-
state = migrationState.setTransitionStatus(state, true)
2272-
module.exports.transitionWalletToBat()
2273-
} else {
2274-
state = migrationState.setTransitionStatus(state, false)
2275-
}
2276-
2277-
return state
2278-
}
2279-
2280-
let newClient = null
2281-
const getNewClient = () => {
2282-
return newClient
2283-
}
2284-
2285-
let busyRetryCount = 0
2286-
2287-
const transitionWalletToBat = () => {
2288-
let newPaymentId, result
2289-
2290-
if (newClient === true) return
2291-
clientprep()
2292-
2293-
if (!client) {
2294-
console.log('Client is not initialized, will try again')
2295-
return
2296-
}
2297-
2298-
// only attempt this transition if the wallet is v1
2299-
if (client && client.options && client.options.version !== 'v1') {
2300-
// older versions incorrectly marked this for transition
2301-
// this will clean them up (no more bouncy ball)
2302-
appActions.onBitcoinToBatTransitioned()
2303-
return
2304-
}
2305-
2306-
// Restore newClient from the file (if one exists)
2307-
if (!newClient) {
2308-
const fs = require('fs')
2309-
try {
2310-
fs.accessSync(pathName(newClientPath), fs.FF_OK)
2311-
fs.readFile(pathName(newClientPath), (error, data) => {
2312-
if (error) {
2313-
console.error(`ledger client: can't read ${newClientPath} to restore newClient`)
2314-
return
2315-
}
2316-
const parsedData = JSON.parse(data)
2317-
const state = yoDawg(parsedData)
2318-
newClient = ledgerClient(state.personaId,
2319-
underscore.extend(state.options, {roundtrip: roundtrip}, clientOptions),
2320-
state)
2321-
transitionWalletToBat()
2322-
})
2323-
return
2324-
} catch (err) {}
2325-
}
2326-
2327-
// Create new client
2328-
if (!newClient) {
2329-
try {
2330-
newClient = ledgerClient(null, underscore.extend({roundtrip: roundtrip}, clientOptions), null)
2331-
muonWriter(newClientPath, newClient.state)
2332-
} catch (ex) {
2333-
console.error('ledger client creation error(2): ', ex)
2334-
return
2335-
}
2336-
}
2337-
2338-
newPaymentId = newClient.getPaymentId()
2339-
if (!newPaymentId) {
2340-
newClient.sync((err, result, delayTime) => {
2341-
if (err) {
2342-
return console.error('ledger client error(3): ' + JSON.stringify(err, null, 2) + (err.stack ? ('\n' + err.stack) : ''))
2343-
}
2344-
2345-
if (typeof delayTime === 'undefined') delayTime = random.randomInt({ min: 1, max: 500 })
2346-
2347-
if (newClient) {
2348-
muonWriter(newClientPath, newClient.state)
2349-
}
2350-
2351-
setTimeout(() => transitionWalletToBat(), delayTime)
2352-
})
2353-
return
2354-
}
2355-
2356-
if (client.busyP()) {
2357-
if (++busyRetryCount > 3) {
2358-
console.log('ledger client is currently busy; transition will be retried on next launch')
2359-
return
2360-
}
2361-
const delayTime = random.randomInt({
2362-
min: ledgerUtil.milliseconds.minute,
2363-
max: 10 * ledgerUtil.milliseconds.minute
2364-
})
2365-
console.log('ledger client is currently busy; transition will be retried shortly (this was attempt ' + busyRetryCount + ')')
2366-
setTimeout(() => transitionWalletToBat(), delayTime)
2367-
return
2368-
}
2369-
2370-
appActions.onBitcoinToBatBeginTransition()
2371-
2372-
try {
2373-
client.transition(newPaymentId, (err, properties) => {
2374-
if (err || !newClient) {
2375-
console.error('ledger client transition error: ', err)
2376-
} else {
2377-
result = newClient.transitioned(properties)
2378-
client = newClient
2379-
newClient = true
2380-
// NOTE: onLedgerCallback will save latest client to disk as ledger-state.json
2381-
appActions.onLedgerCallback(result, random.randomInt({
2382-
min: ledgerUtil.milliseconds.minute,
2383-
max: 10 * ledgerUtil.milliseconds.minute
2384-
}))
2385-
appActions.onBitcoinToBatTransitioned()
2386-
ledgerNotifications.showBraveWalletUpdated()
2387-
getPublisherTimestamp()
2388-
}
2389-
})
2390-
} catch (ex) {
2391-
console.error('exception during ledger client transition: ', ex)
2392-
}
2393-
}
2394-
23952253
let currentMediaKey = null
23962254
const onMediaRequest = (state, xhr, type, tabId) => {
23972255
if (!xhr || type == null) {
@@ -2657,11 +2515,8 @@ const getMethods = () => {
26572515
migration,
26582516
onInitRead,
26592517
deleteSynopsis,
2660-
transitionWalletToBat,
2661-
getNewClient,
26622518
savePublisherData,
26632519
pruneSynopsis,
2664-
checkBtcBatMigrated,
26652520
onMediaRequest,
26662521
onMediaPublisher,
26672522
saveVisit,
@@ -2680,7 +2535,6 @@ const getMethods = () => {
26802535
privateMethods = {
26812536
enable,
26822537
addSiteVisit,
2683-
checkBtcBatMigrated,
26842538
clearVisitsByPublisher: function () {
26852539
visitsByPublisher = {}
26862540
},
@@ -2691,9 +2545,6 @@ const getMethods = () => {
26912545
setSynopsis: (data) => {
26922546
synopsis = data
26932547
},
2694-
resetNewClient: () => {
2695-
newClient = false
2696-
},
26972548
getClient: () => {
26982549
return client
26992550
},

app/browser/api/ledgerNotifications.js

+1-52
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ const settings = require('../../../js/constants/settings')
1212

1313
// State
1414
const ledgerState = require('../../common/state/ledgerState')
15-
const migrationState = require('../../common/state/migrationState')
1615

1716
// Actions
1817
const appActions = require('../../../js/actions/appActions')
@@ -27,8 +26,7 @@ const text = {
2726
paymentDone: undefined,
2827
addFunds: locale.translation('addFundsNotification'),
2928
tryPayments: locale.translation('notificationTryPayments'),
30-
reconciliation: locale.translation('reconciliationNotification'),
31-
walletConvertedToBat: locale.translation('walletConvertedToBat')
29+
reconciliation: locale.translation('reconciliationNotification')
3230
}
3331

3432
const pollingInterval = 15 * ledgerUtil.milliseconds.minute // 15 * minutes
@@ -76,28 +74,11 @@ const onLaunch = (state) => {
7674
return state
7775
}
7876

79-
const ledger = require('./ledger')
80-
state = ledger.checkBtcBatMigrated(state, enabled)
81-
8277
if (hasFunds(state)) {
8378
// Don't bother processing the rest, which are only
8479
if (!getSetting(settings.PAYMENTS_NOTIFICATIONS)) {
8580
return state
8681
}
87-
88-
// Show one-time BAT conversion message:
89-
// - if payments are enabled
90-
// - user has a positive balance
91-
// - this is an existing profile (new profiles will have firstRunTimestamp matching batMercuryTimestamp)
92-
// - wallet has been transitioned
93-
// - notification has not already been shown yet
94-
// (see https://github.com/brave/browser-laptop/issues/11021)
95-
const isNewInstall = migrationState.isNewInstall(state)
96-
const hasUpgradedWallet = migrationState.hasUpgradedWallet(state)
97-
const hasBeenNotified = migrationState.hasBeenNotified(state)
98-
if (!isNewInstall && hasUpgradedWallet && !hasBeenNotified) {
99-
module.exports.showBraveWalletUpdated()
100-
}
10182
}
10283

10384
return state
@@ -181,16 +162,6 @@ const onResponse = (message, buttonIndex, activeWindow) => {
181162
appActions.changeSetting(settings.PAYMENTS_NOTIFICATION_TRY_PAYMENTS_DISMISSED, true)
182163
break
183164

184-
case text.walletConvertedToBat:
185-
if (buttonIndex === 0) {
186-
// Open backup modal
187-
appActions.createTabRequested({
188-
url: 'about:preferences#payments?ledgerBackupOverlayVisible',
189-
windowId: activeWindow.id
190-
})
191-
}
192-
break
193-
194165
default:
195166
return
196167
}
@@ -324,27 +295,6 @@ const showPaymentDone = (transactionContributionFiat) => {
324295
})
325296
}
326297

327-
const showBraveWalletUpdated = () => {
328-
appActions.onBitcoinToBatNotified()
329-
330-
appActions.showNotification({
331-
position: 'global',
332-
greeting: text.hello,
333-
message: text.walletConvertedToBat,
334-
// Learn More.
335-
buttons: [
336-
{text: locale.translation('walletConvertedBackup')},
337-
{text: locale.translation('walletConvertedDismiss')}
338-
],
339-
options: {
340-
style: 'greetingStyle',
341-
persist: false,
342-
advancedLink: 'https://brave.com/faq-payments/#brave-payments',
343-
advancedText: locale.translation('walletConvertedLearnMore')
344-
}
345-
})
346-
}
347-
348298
const onPromotionReceived = (state) => {
349299
const promotion = ledgerState.getPromotionNotification(state)
350300

@@ -409,7 +359,6 @@ const getMethods = () => {
409359
showPaymentDone,
410360
init,
411361
onLaunch,
412-
showBraveWalletUpdated,
413362
onInterval,
414363
onPromotionReceived,
415364
removePromotionNotification,

app/browser/reducers/ledgerReducer.js

-21
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ const settings = require('../../../js/constants/settings')
1313
// State
1414
const ledgerState = require('../../common/state/ledgerState')
1515
const pageDataState = require('../../common/state/pageDataState')
16-
const migrationState = require('../../common/state/migrationState')
1716

1817
// Utils
1918
const ledgerApi = require('../../browser/api/ledger')
@@ -223,10 +222,6 @@ const ledgerReducer = (state, action, immutableAction) => {
223222
case appConstants.APP_ON_LEDGER_WALLET_CREATE:
224223
{
225224
ledgerApi.boot()
226-
if (ledgerApi.getNewClient() === null) {
227-
state = migrationState.setConversionTimestamp(state, new Date().getTime())
228-
state = migrationState.setTransitionStatus(state, false)
229-
}
230225
break
231226
}
232227
case appConstants.APP_ON_BOOT_STATE_FILE:
@@ -300,22 +295,6 @@ const ledgerReducer = (state, action, immutableAction) => {
300295
state = ledgerApi.onInitRead(state, action.parsedData)
301296
break
302297
}
303-
case appConstants.APP_ON_BTC_TO_BAT_NOTIFIED:
304-
{
305-
state = migrationState.setNotifiedTimestamp(state, new Date().getTime())
306-
break
307-
}
308-
case appConstants.APP_ON_BTC_TO_BAT_BEGIN_TRANSITION:
309-
{
310-
state = migrationState.setTransitionStatus(state, true)
311-
break
312-
}
313-
case appConstants.APP_ON_BTC_TO_BAT_TRANSITIONED:
314-
{
315-
state = migrationState.setConversionTimestamp(state, new Date().getTime())
316-
state = migrationState.setTransitionStatus(state, false)
317-
break
318-
}
319298
case appConstants.APP_ON_LEDGER_QR_GENERATED:
320299
{
321300
state = ledgerState.saveQRCode(state, action.get('currency'), action.get('image'))

0 commit comments

Comments
 (0)