@@ -96,7 +96,7 @@ export class LedgerIframeBridge
96
96
97
97
iframeLoaded = false ;
98
98
99
- #opts: LedgerIframeBridgeOptions ;
99
+ readonly #opts: LedgerIframeBridgeOptions ;
100
100
101
101
eventListener ?: ( eventMessage : {
102
102
origin : string ;
@@ -121,15 +121,15 @@ export class LedgerIframeBridge
121
121
} ;
122
122
}
123
123
124
- async init ( ) {
124
+ async init ( ) : Promise < void > {
125
125
await this . #setupIframe( this . #opts. bridgeUrl ) ;
126
126
127
127
this . eventListener = this . #eventListener. bind ( this , this . #opts. bridgeUrl ) ;
128
128
129
129
window . addEventListener ( 'message' , this . eventListener ) ;
130
130
}
131
131
132
- async destroy ( ) {
132
+ async destroy ( ) : Promise < void > {
133
133
if ( this . eventListener ) {
134
134
window . removeEventListener ( 'message' , this . eventListener ) ;
135
135
}
@@ -158,7 +158,8 @@ export class LedgerIframeBridge
158
158
if ( 'success' in response && response . success ) {
159
159
resolve ( true ) ;
160
160
} else if ( 'error' in response ) {
161
- reject ( response . error ) ;
161
+ // Assuming this is using an `Error` type:
162
+ reject ( response . error as Error ) ;
162
163
} else {
163
164
reject ( new Error ( 'Unknown error occurred' ) ) ;
164
165
}
@@ -249,7 +250,12 @@ export class LedgerIframeBridge
249
250
| [ IFrameMessageAction . LedgerSignTransaction , LedgerSignTransactionParams ]
250
251
| [ IFrameMessageAction . LedgerSignPersonalMessage , LedgerSignMessageParams ]
251
252
| [ IFrameMessageAction . LedgerSignTypedData , LedgerSignTypedDataParams ]
252
- ) {
253
+ ) : Promise <
254
+ | GetPublicKeyResponse
255
+ | LedgerSignTransactionResponse
256
+ | LedgerSignMessageResponse
257
+ | LedgerSignTypedDataResponse
258
+ > {
253
259
return new Promise ( ( resolve , reject ) => {
254
260
this . #sendMessage(
255
261
{
@@ -276,15 +282,15 @@ export class LedgerIframeBridge
276
282
this . iframe = document . createElement ( 'iframe' ) ;
277
283
this . iframe . src = bridgeUrl ;
278
284
this . iframe . allow = `hid 'src'` ;
279
- this . iframe . onload = async ( ) => {
285
+ this . iframe . onload = async ( ) : Promise < void > => {
280
286
this . iframeLoaded = true ;
281
287
resolve ( ) ;
282
288
} ;
283
289
document . head . appendChild ( this . iframe ) ;
284
290
} ) ;
285
291
}
286
292
287
- #getOrigin( bridgeUrl : string ) {
293
+ #getOrigin( bridgeUrl : string ) : string {
288
294
const tmp = bridgeUrl . split ( '/' ) ;
289
295
tmp . splice ( - 1 , 1 ) ;
290
296
return tmp . join ( '/' ) ;
@@ -296,7 +302,7 @@ export class LedgerIframeBridge
296
302
origin : string ;
297
303
data : IFrameMessageResponse ;
298
304
} ,
299
- ) {
305
+ ) : void {
300
306
if ( eventMessage . origin !== this . #getOrigin( bridgeUrl ) ) {
301
307
return ;
302
308
}
@@ -317,7 +323,7 @@ export class LedgerIframeBridge
317
323
#sendMessage< TAction extends IFrameMessageAction > (
318
324
message : IFrameMessage < TAction > ,
319
325
callback : ( response : IFrameMessageResponse ) => void ,
320
- ) {
326
+ ) : void {
321
327
this . currentMessageId += 1 ;
322
328
323
329
const postMsg : IFramePostMessage < TAction > = {
@@ -328,7 +334,7 @@ export class LedgerIframeBridge
328
334
329
335
this . messageCallbacks [ this . currentMessageId ] = callback ;
330
336
331
- if ( ! this . iframeLoaded || ! this . iframe || ! this . iframe . contentWindow ) {
337
+ if ( ! this . iframeLoaded || ! this . iframe ? .contentWindow ) {
332
338
throw new Error ( 'The iframe is not loaded yet' ) ;
333
339
}
334
340
0 commit comments