Skip to content

Commit 4d3b4f2

Browse files
author
Zhichao Link
committed
update webgl
1 parent 7ca1a48 commit 4d3b4f2

File tree

7 files changed

+1308
-288
lines changed

7 files changed

+1308
-288
lines changed

ParticleWebGLDemo/ParticleWebGLDemo/Assets/Plugins/WebGL/ParticleAuthWebGL/InitConfig.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ public Authorization(string message, bool uniq)
117117
public struct LoginConfig
118118
{
119119
/// <summary>
120-
/// email,phone,jwt
120+
/// support email | phone | jwt | google | apple | facebook | discord | twitter | twitch | microsoft | linkedin
121121
/// </summary>
122122
public string preferredAuthType;
123123

@@ -144,7 +144,7 @@ public struct LoginConfig
144144
public Authorization? authorization;
145145

146146
public LoginConfig(string preferredAuthType, string account, bool? hideLoading, string socialLoginPrompt,
147-
Authorization authorization)
147+
Authorization? authorization)
148148
{
149149
this.preferredAuthType = preferredAuthType;
150150
this.account = account;

ParticleWebGLDemo/ParticleWebGLDemo/Assets/Plugins/WebGL/ParticleAuthWebGL/ParticleAuth.cs

Lines changed: 76 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,7 @@ public Task<string> Login(LoginConfig? config)
219219
// Called from browser
220220
public void OnLogin(string json)
221221
{
222-
loginTask?.TrySetResult(json);
222+
HandleLoginResult(json, loginTask);
223223
}
224224

225225
/// <summary>
@@ -232,7 +232,7 @@ public Task<bool> Logout()
232232
LogoutParticle();
233233
return logoutTask.Task;
234234
}
235-
235+
236236
// Called from browser
237237
public void OnLogout()
238238
{
@@ -269,6 +269,7 @@ public Task<string> GetSecurityAccount()
269269
return getSecurityAccountTask.Task;
270270
}
271271

272+
// Called from browser
272273
public void OnGetSecurityAccount(string json)
273274
{
274275
getSecurityAccountTask?.TrySetResult(json);
@@ -292,12 +293,21 @@ public void OpenBuy(string options)
292293
{
293294
OpenParticleBuy(options);
294295
}
295-
296+
297+
/// <summary>
298+
/// Get address base on current chainInfo
299+
/// </summary>
300+
/// <returns></returns>
296301
public string GetWalletAddress()
297302
{
298303
return GetParticleWalletAddress();
299304
}
300305

306+
/// <summary>
307+
/// Switch chain
308+
/// </summary>
309+
/// <param name="chainInfo"></param>
310+
/// <returns></returns>
301311
public Task<string> SwitchChain(ChainInfo chainInfo)
302312
{
303313
switchChainTask = new TaskCompletionSource<string>();
@@ -311,6 +321,11 @@ public void OnSwitchChain(string json)
311321
switchChainTask?.TrySetResult(json);
312322
}
313323

324+
/// <summary>
325+
/// EVM send transaction
326+
/// </summary>
327+
/// <param name="transaction">The EVM transaction requires a hexadecimal string.</param>
328+
/// <returns></returns>
314329
public Task<string> EVMSendTransaction(string transaction)
315330
{
316331
var jsonString = "";
@@ -335,9 +350,9 @@ public void OnEVMSendTransaction(string json)
335350
}
336351

337352
/// <summary>
338-
/// Personal sign
353+
/// EVM personal sign
339354
/// </summary>
340-
/// <param name="message">Message</param>
355+
/// <param name="message">The message requires a hexadecimal string.</param>
341356
/// <param name="accountName">Optional, if you are using smart account, should provide this value</param>
342357
/// <returns></returns>
343358
public Task<string> EVMPersonalSign(string message, [CanBeNull] AAAccountName accountName = null)
@@ -358,6 +373,11 @@ public void OnEVMPersonalSign(string json)
358373
}
359374

360375

376+
/// <summary>
377+
/// EVM personal sign unique
378+
/// </summary>
379+
/// <param name="message">The message requires a hexadecimal string.</param>
380+
/// <returns></returns>
361381
public Task<string> EVMPersonalSignUniq(string message)
362382
{
363383
evmPersonalSignUniqTask = new TaskCompletionSource<string>();
@@ -370,6 +390,11 @@ public void OnEVMPersonalSignUniq(string json)
370390
HandleSignResult(json, evmPersonalSignUniqTask);
371391
}
372392

393+
/// <summary>
394+
/// EVM sign typed data
395+
/// </summary>
396+
/// <param name="message">The message requires a json string.</param>
397+
/// <returns></returns>
373398
public Task<string> EVMSignTypedData(string message)
374399
{
375400
evmSignTypedDataTask = new TaskCompletionSource<string>();
@@ -382,6 +407,11 @@ public void OnEVMSignTypedData(string json)
382407
HandleSignResult(json, evmSignTypedDataTask);
383408
}
384409

410+
/// <summary>
411+
/// EVM sign typed data unique
412+
/// </summary>
413+
/// <param name="message">The message requires a json string.</param>
414+
/// <returns></returns>
385415
public Task<string> EVMSignTypedDataUniq(string message)
386416
{
387417
evmSignTypedDataUniqTask = new TaskCompletionSource<string>();
@@ -394,6 +424,11 @@ public void OnEVMSignTypedDataUniq(string json)
394424
HandleSignResult(json, evmSignTypedDataUniqTask);
395425
}
396426

427+
/// <summary>
428+
/// Solana sign and send transaction
429+
/// </summary>
430+
/// <param name="transaction">The Solana transaction requires a base58 string.</param>
431+
/// <returns></returns>
397432
public Task<string> SolanaSignAndSendTransaction(string transaction)
398433
{
399434
solanaSignAndSendTransactionTask = new TaskCompletionSource<string>();
@@ -406,6 +441,11 @@ public void OnSolanaSignAndSendTransaction(string json)
406441
HandleSignResult(json, solanaSignAndSendTransactionTask);
407442
}
408443

444+
/// <summary>
445+
/// Solana sign message
446+
/// </summary>
447+
/// <param name="transaction">The message requires a base58 string.</param>
448+
/// <returns></returns>
409449
public Task<string> SolanaSignMessage(string transaction)
410450
{
411451
solanaSignMessageTask = new TaskCompletionSource<string>();
@@ -418,6 +458,11 @@ public void OnSolanaSignMessage(string json)
418458
HandleSignResult(json, solanaSignMessageTask);
419459
}
420460

461+
/// <summary>
462+
/// Solana sign transaction
463+
/// </summary>
464+
/// <param name="transaction">The Solana transaction requires a base58 string.</param>
465+
/// <returns></returns>
421466
public Task<string> SolanaSignTransaction(string transaction)
422467
{
423468
solanaSignTransactionTask = new TaskCompletionSource<string>();
@@ -430,6 +475,11 @@ public void OnSolanaSignTransaction(string json)
430475
HandleSignResult(json, solanaSignTransactionTask);
431476
}
432477

478+
/// <summary>
479+
/// Solana sign all transactions
480+
/// </summary>
481+
/// <param name="transactions">Each Solana transaction requires a base58 string.</param>
482+
/// <returns></returns>
433483
public Task<List<string>> SolanaSignAllTransactions(string[] transactions)
434484
{
435485
solanaSignAllTransactionsTask = new TaskCompletionSource<List<string>>();
@@ -443,17 +493,22 @@ public void OnSolanaSignAllTransactions(string json)
443493
HandleSignResult(json, solanaSignAllTransactionsTask);
444494
}
445495

496+
private void HandleLoginResult<T>(string json, TaskCompletionSource<T> task)
497+
{
498+
HandleResult(json, task, "");
499+
}
500+
446501
private void HandleSignResult<T>(string json, TaskCompletionSource<T> task)
502+
{
503+
HandleResult(json, task, "signature");
504+
}
505+
506+
private void HandleResult<T>(string json, TaskCompletionSource<T> task, string key)
447507
{
448508
Debug.Log($"handle result {json}");
449509
var jsonObject = JObject.Parse(json);
450-
451-
if (jsonObject.ContainsKey("signature"))
452-
{
453-
var signature = jsonObject["signature"]!.ToObject<T>();
454-
task?.TrySetResult(signature);
455-
}
456-
else if (jsonObject.ContainsKey("error"))
510+
511+
if (jsonObject.ContainsKey("error"))
457512
{
458513
var error = jsonObject.GetValue("error");
459514

@@ -479,6 +534,15 @@ private void HandleSignResult<T>(string json, TaskCompletionSource<T> task)
479534
task.SetException(new ErrorException(0, "Unknown error: 'error' object missing"));
480535
}
481536
}
537+
else if (jsonObject.ContainsKey(key))
538+
{
539+
var value = jsonObject[key]!.ToObject<T>();
540+
task?.TrySetResult(value);
541+
}
542+
else
543+
{
544+
task?.TrySetResult((T)(object)json);
545+
}
482546
}
483547

484548
private string HexToString(string hex)

0 commit comments

Comments
 (0)