diff --git a/index.js b/index.js index 74298d79..6065fd0d 100644 --- a/index.js +++ b/index.js @@ -32,6 +32,7 @@ class LedgerBridgeKeyring extends EventEmitter { this.iframe = null this.network = 'mainnet' this.implementFullBIP44 = false + this.msgQueue = [] this.deserialize(opts) this.iframeLoaded = false @@ -432,6 +433,9 @@ class LedgerBridgeKeyring extends EventEmitter { delete this.delayedPromise } } + if (this.msgQueue.length > 0) { + this.msgQueue.forEach((fn) => fn()) + } } document.head.appendChild(this.iframe) } @@ -444,7 +448,13 @@ class LedgerBridgeKeyring extends EventEmitter { _sendMessage (msg, cb) { msg.target = 'LEDGER-IFRAME' - this.iframe.contentWindow.postMessage(msg, '*') + if (!this.iframeLoaded) { + this.msgQueue.push(() => { + this.iframe.contentWindow.postMessage(msg, '*'); + }); + } else { + this.iframe.contentWindow.postMessage(msg, '*'); + } const eventListener = ({ origin, data }) => { if (origin !== this._getOrigin()) { return false