Browse Source

Merge pull request #823 from LedgerHQ/develop

prepare for beta.7
master
Gaëtan Renaudeau 7 years ago
committed by GitHub
parent
commit
fa89c7fc5a
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 3
      package.json
  2. 1
      src/components/ExportLogsBtn.js
  3. 2
      src/components/RenderError.js
  4. 2
      src/components/SettingsPage/sections/About.js
  5. 80
      src/helpers/deviceAccess.js
  6. 2
      src/logger.js
  7. 2
      static/i18n/en/app.yml
  8. 49
      yarn.lock

3
package.json

@ -96,7 +96,6 @@
"rxjs": "^6.2.1",
"rxjs-compat": "^6.2.1",
"secp256k1": "3.3.1",
"semaphore": "^1.1.0",
"semver": "^5.5.0",
"smoothscroll-polyfill": "^0.4.3",
"source-map": "0.7.3",
@ -133,7 +132,7 @@
"babel-plugin-styled-components": "^1.5.0",
"chalk": "^2.4.0",
"chance": "^1.0.13",
"concurrently": "^3.5.1",
"concurrently": "3.5.1",
"dotenv": "^5.0.1",
"electron": "1.8.7",
"electron-builder": "20.14.7",

1
src/components/ExportLogsBtn.js

@ -21,6 +21,7 @@ class ExportLogsBtn extends Component<{
release: __APP_VERSION__,
git_commit: __GIT_REVISION__,
environment: __DEV__ ? 'development' : 'production',
userAgent: window.navigator.userAgent,
})
const path = remote.dialog.showSaveDialog({
title: 'Export logs',

2
src/components/RenderError.js

@ -136,7 +136,7 @@ ${error.stack || 'no stacktrace'}`}</ErrContainer>
fontSize: 10,
}}
>
{__APP_VERSION__}
{`Ledger Live ${__APP_VERSION__}`}
</pre>
{children}
</Box>

2
src/components/SettingsPage/sections/About.js

@ -40,7 +40,7 @@ class SectionAbout extends PureComponent<Props> {
/>
<Body>
<Row title={t('app:settings.about.version')} desc={version}>
<Row title={t('app:settings.about.version')} desc={`Ledger Live ${version}`}>
<ReleaseNotesButton />
</Row>

80
src/helpers/deviceAccess.js

@ -1,5 +1,4 @@
// @flow
import createSemaphore from 'semaphore'
import type Transport from '@ledgerhq/hw-transport'
import TransportNodeHid from '@ledgerhq/hw-transport-node-hid'
import { DEBUG_DEVICE } from 'config/constants'
@ -10,67 +9,34 @@ import { createCustomErrorClass } from './errors'
// and guarantee we do one device access at a time. It also will handle the .close()
// NOTE optim: in the future we can debounce the close & reuse the same transport instance.
type WithDevice = (devicePath: string) => <T>(job: (Transport<*>) => Promise<T>) => Promise<T>
const semaphorePerDevice = {}
type WithDevice = (devicePath: string) => <T>(job: (Transport<*>) => Promise<*>) => Promise<T>
const DisconnectedDevice = createCustomErrorClass('DisconnectedDevice')
const remapError = <T>(p: Promise<T>): Promise<T> =>
p.catch(e => {
if (e && e.message && e.message.indexOf('HID') >= 0) {
throw new DisconnectedDevice(e.message)
}
throw e
})
const mapError = e => {
if (e && e.message && e.message.indexOf('HID') >= 0) {
throw new DisconnectedDevice(e.message)
}
throw e
}
export const withDevice: WithDevice = devicePath => {
const sem =
semaphorePerDevice[devicePath] || (semaphorePerDevice[devicePath] = createSemaphore(1))
let queue = Promise.resolve()
return job =>
takeSemaphorePromise(sem, devicePath, async () => {
const t = await retry(() => TransportNodeHid.open(devicePath), { maxRetry: 1 })
export const withDevice: WithDevice = devicePath => job => {
const p = queue.then(async () => {
const t = await retry(() => TransportNodeHid.open(devicePath), { maxRetry: 1 })
if (DEBUG_DEVICE) {
t.setDebugMode(true)
}
try {
const res = await job(t).catch(mapError)
return res
} finally {
await t.close()
}
})
if (DEBUG_DEVICE) t.setDebugMode(true)
try {
const res = await remapError(job(t))
// $FlowFixMe
return res
} finally {
await t.close()
}
})
}
queue = p.catch(() => null)
function takeSemaphorePromise<T>(sem, devicePath, f: () => Promise<T>): Promise<T> {
return new Promise((resolve, reject) => {
sem.take(() => {
process.send({
type: 'setDeviceBusy',
busy: true,
devicePath,
})
f().then(
r => {
sem.leave()
resolve(r)
process.send({
type: 'setDeviceBusy',
busy: false,
devicePath,
})
},
e => {
sem.leave()
reject(e)
process.send({
type: 'setDeviceBusy',
busy: false,
devicePath,
})
},
)
})
})
return p
}

2
src/logger.js

@ -34,7 +34,7 @@ const transports = [
}),
]
if (process.env.NODE_ENV !== 'production' || process.env.LOGS_IN_CONSOLE) {
if (process.env.NODE_ENV !== 'production' || process.env.DEV_TOOLS) {
let consoleT
if (typeof window === 'undefined') {
// on Node we want a concise logger

2
static/i18n/en/app.yml

@ -414,5 +414,5 @@ crash:
disclaimerModal:
title: Trade safely
desc_1: Before sending and receiving crypto assets, educate yourself to make informed decisions. Crypto assets are volatile and the prices can go up and down. Carefully evaluate your trading goals and the financial risk you are willing to take.
desc_2: Please beware that Ledger does not provide financial, tax, or legal advice. You should take such decisions on your own or rely on opinions of reliable experts.
desc_2: Please beware that Ledger does not provide financial, tax, or legal advice. You should take such decisions on your own or consult with reliable experts.
cta: Got it

49
yarn.lock

@ -2119,6 +2119,10 @@ ansi-html@0.0.7:
version "0.0.7"
resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e"
ansi-regex@^0.2.0, ansi-regex@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-0.2.1.tgz#0d8e946967a3d8143f93e24e298525fc1b2235f9"
ansi-regex@^2.0.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
@ -2127,6 +2131,10 @@ ansi-regex@^3.0.0, ansi-regex@~3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
ansi-styles@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.1.0.tgz#eaecbf66cd706882760b2f4691582b8f55d7a7de"
ansi-styles@^2.2.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
@ -4150,6 +4158,16 @@ chainsaw@~0.1.0:
dependencies:
traverse ">=0.3.0 <0.4"
chalk@0.5.1:
version "0.5.1"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.5.1.tgz#663b3a648b68b55d04690d49167aa837858f2174"
dependencies:
ansi-styles "^1.1.0"
escape-string-regexp "^1.0.0"
has-ansi "^0.1.0"
strip-ansi "^0.3.0"
supports-color "^0.2.0"
chalk@1.1.3, chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
@ -4602,15 +4620,14 @@ concat-stream@1.6.2, concat-stream@^1.5.0, concat-stream@^1.5.2, concat-stream@^
readable-stream "^2.2.2"
typedarray "^0.0.6"
concurrently@^3.5.1:
version "3.6.0"
resolved "https://registry.yarnpkg.com/concurrently/-/concurrently-3.6.0.tgz#c25e34b156a9d5bd4f256a0d85f6192438ae481f"
concurrently@3.5.1:
version "3.5.1"
resolved "https://registry.yarnpkg.com/concurrently/-/concurrently-3.5.1.tgz#ee8b60018bbe86b02df13e5249453c6ececd2521"
dependencies:
chalk "^2.4.1"
chalk "0.5.1"
commander "2.6.0"
date-fns "^1.23.0"
lodash "^4.5.1"
read-pkg "^3.0.0"
rx "2.3.24"
spawn-command "^0.0.2-1"
supports-color "^3.2.3"
@ -6134,7 +6151,7 @@ escape-html@~1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
escape-string-regexp@1.0.5, escape-string-regexp@^1.0.0, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
@ -7370,6 +7387,12 @@ hard-source-webpack-plugin@^0.6.0:
webpack-sources "^1.0.1"
write-json-file "^2.3.0"
has-ansi@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-0.1.0.tgz#84f265aae8c0e6a88a12d7022894b7568894c62e"
dependencies:
ansi-regex "^0.2.0"
has-ansi@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
@ -12787,10 +12810,6 @@ selfsigned@^1.9.1:
dependencies:
node-forge "0.7.5"
semaphore@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/semaphore/-/semaphore-1.1.0.tgz#aaad8b86b20fe8e9b32b16dc2ee682a8cd26a8aa"
semver-diff@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36"
@ -13420,6 +13439,12 @@ strip-ansi@3.0.1, strip-ansi@^3.0.0, strip-ansi@^3.0.1:
dependencies:
ansi-regex "^2.0.0"
strip-ansi@^0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-0.3.0.tgz#25f48ea22ca79187f3174a4db8759347bb126220"
dependencies:
ansi-regex "^0.2.1"
strip-ansi@^4.0.0, strip-ansi@~4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
@ -13527,6 +13552,10 @@ sumchecker@^2.0.2:
dependencies:
debug "^2.2.0"
supports-color@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-0.2.0.tgz#d92de2694eb3f67323973d7ae3d8b55b4c22190a"
supports-color@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"

Loading…
Cancel
Save