Skip to content

Commit 0185e91

Browse files
committed
Add awaits and fix typos
1 parent 8d87fc0 commit 0185e91

File tree

1 file changed

+18
-10
lines changed

1 file changed

+18
-10
lines changed

src/modules/select/wallets/ledger.ts

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ function ledger(options: LedgerOptions & { networkId: number }): WalletModule {
3232
const provider = await ledgerProvider({
3333
rpcUrl,
3434
networkId,
35-
LedgerTransport,
35+
CustomLedgerTransport: LedgerTransport,
3636
BigNumber,
3737
networkName,
3838
resetWalletState,
@@ -158,10 +158,14 @@ async function ledgerProvider(options: {
158158
provider.isCustomPath = isCustomPath
159159

160160
let transport: any
161+
let transportSubscription: any
161162
let eth: any
162163

163164
function disconnect() {
164165
transport && transport.close()
166+
transportSubscription &&
167+
transportSubscription.unsubscribe &&
168+
transportSubscription.unsubscribe()
165169
provider.stop()
166170
resetWalletState({ disconnected: true, walletName: 'Ledger' })
167171
}
@@ -196,15 +200,19 @@ async function ledgerProvider(options: {
196200

197201
async function createTransport() {
198202
try {
199-
const observer = (event: any) => {
200-
if (event.type === 'remove') {
201-
disconnect()
202-
}
203+
const observer = {
204+
next: (event: any) => {
205+
if (event.type === 'remove') {
206+
disconnect()
207+
}
208+
},
209+
error: console.log,
210+
complete: console.log
203211
}
204212

205213
if (CustomLedgerTransport) {
206214
transport = await CustomLedgerTransport.create()
207-
CustomLedgerTransport.listen(observer)
215+
transportSubscription = CustomLedgerTransport.listen(observer)
208216
} else {
209217
if (
210218
os.name === 'Windows' &&
@@ -215,21 +223,21 @@ async function ledgerProvider(options: {
215223
`OS: ${os.name} ${os.versionName} and Browser: ${browser.name} are not compatible with Ledger wallets, please switch to Chrome browser to continue.`
216224
)
217225
} else if (
218-
os.name === 'macOS' &&
226+
(os.name === 'macOS' || os.name === 'Linux') &&
219227
(browser.name === 'Firefox' || browser.name === 'Safari')
220228
) {
221229
const { default: TransportU2F } = await import(
222230
'@ledgerhq/hw-transport-u2f'
223231
)
224232

225-
transport = TransportU2F.create()
233+
transport = await TransportU2F.create()
226234
} else {
227235
const { default: TransportWebUsb } = await import(
228236
'@ledgerhq/hw-transport-webusb'
229237
)
230238

231-
transport = TransportWebUsb.create()
232-
CustomLedgerTransport.listen(observer)
239+
transport = await TransportWebUsb.create()
240+
transportSubscription = TransportWebUsb.listen(observer)
233241
}
234242
}
235243

0 commit comments

Comments
 (0)