@@ -5,6 +5,8 @@ import {RpcRequest, RpcResponse} from "../wallet/IWalletAdapter";
5
5
import { LocalStorageProxy , LocalStorageRequest } from "./data/LocalStorageProxy" ;
6
6
import { IViewBinding } from "./IViewBinding" ;
7
7
import { TokenViewData } from "./TokenViewData" ;
8
+ import { TLinkRequest } from "../tlink/ITlinkAdapter" ;
9
+ import { TokenScriptEngine } from "../Engine" ;
8
10
9
11
export enum ViewEvent {
10
12
TOKENS_UPDATED = "tokensUpdated" ,
@@ -27,7 +29,8 @@ export enum RequestFromView {
27
29
EXEC_TRANSACTION = "execTransaction" ,
28
30
REFRESH_TOKENS = "refreshTokens" ,
29
31
SHOW_TX_TOAST = "showTransactionToast" ,
30
- SHOW_TOAST = "showToast"
32
+ SHOW_TOAST = "showToast" ,
33
+ TLINK_REQUEST = "tlinkRequest"
31
34
}
32
35
33
36
export type TXTrigger = "refreshTokens" | "invalidateAttributes" ;
@@ -314,6 +317,10 @@ export class ViewController {
314
317
await this . updateCardData ( params . id ) ;
315
318
break ;
316
319
320
+ case RequestFromView . TLINK_REQUEST :
321
+ await this . tlinkRequest ( { method : params . method , payload : params . payload , uid : params . id } ) ;
322
+ break ;
323
+
317
324
default :
318
325
throw new Error ( "TokenScript view API method: " + method + " is not implemented." ) ;
319
326
}
@@ -340,6 +347,21 @@ export class ViewController {
340
347
this . viewAdapter . showLoader ( false ) ;
341
348
}
342
349
350
+ private async tlinkRequest ( request : TLinkRequest ) {
351
+ try {
352
+ if ( ! this . tokenScript . getEngine ( ) . config . tlinkRequestAdapter )
353
+ throw new Error ( "TLink adapter not available" ) ;
354
+
355
+ const res = await this . tokenScript . getEngine ( ) . config . tlinkRequestAdapter ( request ) ;
356
+
357
+ this . dispatchViewEvent ( ViewEvent . EXECUTE_CALLBACK , { error : null , result : res . response } , request . uid ) ;
358
+
359
+ } catch ( e ) {
360
+ console . error ( e ) ;
361
+ this . dispatchViewEvent ( ViewEvent . EXECUTE_CALLBACK , { error : e . message , result : null } , request . uid ) ;
362
+ }
363
+ }
364
+
343
365
/**
344
366
*
345
367
* @param request
0 commit comments