From 9c8f3b57ad7faf51aafaf05d53331ff43f77531e Mon Sep 17 00:00:00 2001 From: NejcZdovc Date: Mon, 23 Oct 2017 11:10:22 +0200 Subject: [PATCH] Fixes overlay --- app/browser/api/ledger.js | 37 +++++++++++++------ app/browser/reducers/ledgerReducer.js | 6 ++- app/common/state/migrationState.js | 4 ++ .../app/browser/reducers/ledgerReducerTest.js | 7 ++-- 4 files changed, 38 insertions(+), 16 deletions(-) diff --git a/app/browser/api/ledger.js b/app/browser/api/ledger.js index e042fe02ff4..3e2bc13936b 100644 --- a/app/browser/api/ledger.js +++ b/app/browser/api/ledger.js @@ -1792,7 +1792,14 @@ const setPaymentInfo = (amount) => { amount = parseInt(amount, 10) if (isNaN(amount) || (amount <= 0)) return - underscore.extend(bravery.fee, { amount: amount, currency: client.getWalletAddresses().BAT ? 'BAT' : 'USD' }) + let currency = 'USD' + const addresses = client.getWalletAddresses() + + if (addresses && addresses.BAT) { + currency = 'BAT' + } + + underscore.extend(bravery.fee, { amount: amount, currency: currency }) client.setBraveryProperties(bravery, (err, result) => { if (err) { err = err.toString() @@ -1835,7 +1842,7 @@ const callback = (err, result, delayTime) => { } if (err) { - console.log('ledger client error(1): ' + JSON.stringify(err, null, 2) + (err.stack ? ('\n' + err.stack) : '')) + console.error('ledger client error(1): ' + JSON.stringify(err, null, 2) + (err.stack ? ('\n' + err.stack) : '')) if (!client) return if (typeof delayTime === 'undefined') { @@ -1958,6 +1965,7 @@ const initialize = (state, paymentsEnabled) => { if (!paymentsEnabled) { client = null + newClient = false return ledgerState.resetInfo(state) } @@ -2160,7 +2168,7 @@ const run = (state, delayTime) => { }) if (stateData) muonWriter(statePath, stateData) } catch (ex) { - console.log('ledger client error(2): ' + ex.toString() + (ex.stack ? ('\n' + ex.stack) : '')) + console.error('ledger client error(2): ' + ex.toString() + (ex.stack ? ('\n' + ex.stack) : '')) } if (delayTime === 0) { @@ -2187,7 +2195,7 @@ const run = (state, delayTime) => { if (active !== client) return if (!client) { - return console.log('\n\n*** MTR says this can\'t happen(1)... please tell him that he\'s wrong!\n\n') + return console.error('\n\n*** MTR says this can\'t happen(1)... please tell him that he\'s wrong!\n\n') } if (client.sync(callback) === true) { @@ -2259,7 +2267,7 @@ const migration = (state) => { } }) } catch (err) { - console.log('Error migrating file', err.toString()) + console.error(err.toString()) } // Delete ledgerInfo @@ -2326,6 +2334,10 @@ const checkBtcBatMigrated = (state, status) => { } let newClient = null +const getNewClient = () => { + return newClient +} + const transitionWalletToBat = () => { let newPaymentId, result @@ -2338,7 +2350,7 @@ const transitionWalletToBat = () => { fs.accessSync(pathName(newClientPath), fs.FF_OK) fs.readFile(pathName(newClientPath), (error, data) => { if (error) { - console.log(`ledger client: can't read ${newClientPath} to restore newClient`) + console.error(`ledger client: can't read ${newClientPath} to restore newClient`) return } const parsedData = JSON.parse(data) @@ -2350,7 +2362,7 @@ const transitionWalletToBat = () => { }) return } catch (err) { - console.log(err.toString()) + console.error(err.toString()) } } @@ -2370,12 +2382,14 @@ const transitionWalletToBat = () => { if (!newPaymentId) { newClient.sync((err, result, delayTime) => { if (err) { - return console.log('ledger client error(3): ' + JSON.stringify(err, null, 2) + (err.stack ? ('\n' + err.stack) : '')) + return console.error('ledger client error(3): ' + JSON.stringify(err, null, 2) + (err.stack ? ('\n' + err.stack) : '')) } if (typeof delayTime === 'undefined') delayTime = random.randomInt({ min: 1, max: 500 }) - muonWriter(newClientPath, newClient.state) + if (newClient) { + muonWriter(newClientPath, newClient.state) + } setTimeout(() => transitionWalletToBat(), delayTime) }) @@ -2391,7 +2405,7 @@ const transitionWalletToBat = () => { try { client.transition(newPaymentId, (err, properties) => { - if (err) { + if (err || !newClient) { console.error('ledger client transition error: ', err) } else { result = newClient.transitioned(properties) @@ -2438,5 +2452,6 @@ module.exports = { onInitRead, notifications, deleteSynopsis, - transitionWalletToBat + transitionWalletToBat, + getNewClient } diff --git a/app/browser/reducers/ledgerReducer.js b/app/browser/reducers/ledgerReducer.js index 878ef263719..10f88c6d558 100644 --- a/app/browser/reducers/ledgerReducer.js +++ b/app/browser/reducers/ledgerReducer.js @@ -227,8 +227,10 @@ const ledgerReducer = (state, action, immutableAction) => { case appConstants.APP_ON_LEDGER_WALLET_CREATE: { ledgerApi.boot() - state = migrationState.setConversionTimestamp(state, new Date().getTime()) - state = migrationState.setTransitionStatus(state, false) + if (ledgerApi.getNewClient() === null) { + state = migrationState.setConversionTimestamp(state, new Date().getTime()) + state = migrationState.setTransitionStatus(state, false) + } break } case appConstants.APP_ON_BOOT_STATE_FILE: diff --git a/app/common/state/migrationState.js b/app/common/state/migrationState.js index db0aeadbe50..d9273ab38af 100644 --- a/app/common/state/migrationState.js +++ b/app/common/state/migrationState.js @@ -46,11 +46,15 @@ const migrationState = { return state.get('firstRunTimestamp') === state.getIn(['migrations', 'batMercuryTimestamp']) }, + // we set this values when we initialize 0.19 state and this will be only true when transition is done + // or when you create wallet on 0.19+ version hasUpgradedWallet: (state) => { state = validateState(state) return state.getIn(['migrations', 'batMercuryTimestamp']) !== state.getIn(['migrations', 'btc2BatTimestamp']) }, + // we set this values when we initialize 0.19 state and this will be only true when transition is done + // or when you create wallet on 0.19+ version hasBeenNotified: (state) => { state = validateState(state) return state.getIn(['migrations', 'batMercuryTimestamp']) !== state.getIn(['migrations', 'btc2BatNotifiedTimestamp']) diff --git a/test/unit/app/browser/reducers/ledgerReducerTest.js b/test/unit/app/browser/reducers/ledgerReducerTest.js index 3690176419e..b3296575bb4 100644 --- a/test/unit/app/browser/reducers/ledgerReducerTest.js +++ b/test/unit/app/browser/reducers/ledgerReducerTest.js @@ -51,7 +51,8 @@ describe('ledgerReducer unit tests', function () { onCallback: dummyModifyState, onTimeUntilReconcile: dummyModifyState, run: () => {}, - onNetworkConnected: dummyModifyState + onNetworkConnected: dummyModifyState, + getNewClient: () => {} } fakeLedgerState = { resetSynopsis: dummyModifyState, @@ -270,8 +271,8 @@ describe('ledgerReducer unit tests', function () { it('calls ledgerApi.boot', function () { assert(bootSpy.calledOnce) }) - it('returns a modified state', function () { - assert.notDeepEqual(returnedState, appState) + it('returns a non-modified state, if no transition in progress', function () { + assert.deepEqual(returnedState, appState) }) })