@metamask/eth-ledger-bridge-keyring
Advanced tools
Comparing version 0.10.0 to 0.11.0
@@ -10,2 +10,8 @@ # Changelog | ||
## [0.11.0] | ||
### Added | ||
- Add a new `isConnected` method which allows determining if the device is last known to be connected. ([#131](https://github.com/MetaMask/eth-ledger-bridge-keyring/pull/131)) | ||
### Changed | ||
- Messaging now runs off of message IDs instead of assuming the response received is from the last message sent, which will not always been true. ([#132](https://github.com/MetaMask/eth-ledger-bridge-keyring/pull/132)) | ||
## [0.10.0] | ||
@@ -12,0 +18,0 @@ ### Added |
28
index.js
@@ -21,2 +21,4 @@ const { EventEmitter } = require('events') | ||
const CONNECTION_EVENT = 'ledger-connection-change' | ||
class LedgerBridgeKeyring extends EventEmitter { | ||
@@ -40,2 +42,6 @@ constructor (opts = {}) { | ||
this._setupIframe() | ||
this.currentMessageId = 0 | ||
this.messageCallbacks = {} | ||
this._setupListener() | ||
} | ||
@@ -102,2 +108,6 @@ | ||
isConnected () { | ||
return this.isDeviceConnected | ||
} | ||
setAccountToUnlock (index) { | ||
@@ -473,3 +483,11 @@ this.unlockedAccount = parseInt(index, 10) | ||
msg.target = 'LEDGER-IFRAME' | ||
this.currentMessageId += 1 | ||
msg.messageId = this.currentMessageId | ||
this.messageCallbacks[this.currentMessageId] = cb | ||
this.iframe.contentWindow.postMessage(msg, '*') | ||
} | ||
_setupListener () { | ||
const eventListener = ({ origin, data }) => { | ||
@@ -480,8 +498,10 @@ if (origin !== this._getOrigin()) { | ||
if (data && data.action && data.action === `${msg.action}-reply` && cb) { | ||
cb(data) | ||
return undefined | ||
if (data) { | ||
if (this.messageCallbacks[data.messageId]) { | ||
this.messageCallbacks[data.messageId](data) | ||
} else if (data.action === CONNECTION_EVENT) { | ||
this.isDeviceConnected = data.payload.connected | ||
} | ||
} | ||
window.removeEventListener('message', eventListener) | ||
return undefined | ||
@@ -488,0 +508,0 @@ } |
{ | ||
"name": "@metamask/eth-ledger-bridge-keyring", | ||
"version": "0.10.0", | ||
"version": "0.11.0", | ||
"description": "A MetaMask compatible keyring, for ledger hardware wallets", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
27406
565