@@ -108,6 +108,7 @@ interface TWBridge {
108
108
smartWalletIsDeployed : ( ) => Promise < string > ;
109
109
resolveENSFromAddress : ( address : string ) => Promise < string > ;
110
110
resolveAddressFromENS : ( ens : string ) => Promise < string > ;
111
+ copyBuffer : ( text : string ) => Promise < void > ;
111
112
}
112
113
113
114
const w = window ;
@@ -151,7 +152,7 @@ class ThirdwebBridge implements TWBridge {
151
152
}
152
153
( globalThis as any ) . X_SDK_NAME = "UnitySDK_WebGL" ;
153
154
( globalThis as any ) . X_SDK_PLATFORM = "unity" ;
154
- ( globalThis as any ) . X_SDK_VERSION = "4.9.1 " ;
155
+ ( globalThis as any ) . X_SDK_VERSION = "4.10.0 " ;
155
156
( globalThis as any ) . X_SDK_OS = browser ?. os ?? "unknown" ;
156
157
}
157
158
this . initializedChain = chain ;
@@ -296,6 +297,7 @@ class ThirdwebBridge implements TWBridge {
296
297
chainId : string ,
297
298
password ?: string ,
298
299
email ?: string ,
300
+ phoneNumber ?: string ,
299
301
personalWallet : PossibleWallet = "localWallet" ,
300
302
authOptions ?: string ,
301
303
smartWalletAccountOverride ?: string ,
@@ -316,9 +318,9 @@ class ThirdwebBridge implements TWBridge {
316
318
const embeddedWallet = walletInstance as EmbeddedWallet ;
317
319
const authOptionsParsed = JSON . parse ( authOptions || "{}" ) ;
318
320
if ( authOptionsParsed . authProvider === 0 ) {
319
- // DefaultManaged
321
+ // EmailOTP
320
322
if ( ! email ) {
321
- throw new Error ( "Email is required for EmbeddedWallet " ) ;
323
+ throw new Error ( "Email is required for EmailOTP auth provider " ) ;
322
324
}
323
325
const authResult = await embeddedWallet . authenticate ( {
324
326
strategy : "iframe_email_verification" ,
@@ -332,12 +334,15 @@ class ThirdwebBridge implements TWBridge {
332
334
// OAuth
333
335
let authProvider : EmbeddedWalletOauthStrategy ;
334
336
switch ( authOptionsParsed . authProvider ) {
337
+ // Google
335
338
case 1 :
336
339
authProvider = "google" ;
337
340
break ;
341
+ // Apple
338
342
case 2 :
339
343
authProvider = "apple" ;
340
344
break ;
345
+ // Facebook
341
346
case 3 :
342
347
authProvider = "facebook" ;
343
348
break ;
@@ -383,6 +388,24 @@ class ThirdwebBridge implements TWBridge {
383
388
chainId : chainIdNumber ,
384
389
authResult,
385
390
} ) ;
391
+ } else if ( authOptionsParsed . authProvider === 6 ) {
392
+ // PhoneOTP
393
+ throw new Error (
394
+ "PhoneOTP auth provider not implemented yet for WebGL, stay tuned!" ,
395
+ ) ;
396
+ // if (!phoneNumber) {
397
+ // throw new Error(
398
+ // "Phone number is required for PhoneOTP auth provider",
399
+ // );
400
+ // }
401
+ // const authResult = await embeddedWallet.authenticate({
402
+ // strategy: "iframe_phone_number_verification",
403
+ // phoneNumber,
404
+ // });
405
+ // await embeddedWallet.connect({
406
+ // chainId: chainIdNumber,
407
+ // authResult,
408
+ // });
386
409
} else {
387
410
throw new Error (
388
411
"Invalid auth provider: " + authOptionsParsed . authProvider ,
@@ -885,6 +908,12 @@ class ThirdwebBridge implements TWBridge {
885
908
return JSON . stringify ( { result : res } ) ;
886
909
}
887
910
911
+ public async copyBuffer ( text : string ) {
912
+ navigator . clipboard . writeText ( text ) . catch ( function ( err ) {
913
+ console . error ( "Could not copy text: " , err ) ;
914
+ } ) ;
915
+ }
916
+
888
917
public openPopupWindow ( ) {
889
918
const win = window . open ( "" , undefined , "width=350, height=500" ) ;
890
919
if ( win ) {
0 commit comments