-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathSequenceConnect.cs
More file actions
49 lines (41 loc) · 1.65 KB
/
SequenceConnect.cs
File metadata and controls
49 lines (41 loc) · 1.65 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
using System.Threading.Tasks;
using Sequence.Config;
using Sequence.Utils;
namespace Sequence.EcosystemWallet
{
public class SequenceConnect : IConnect
{
private readonly EcosystemClient _client = new();
public async Task<EcosystemConfig> GetEcosystemConfig()
{
var walletUrl= SequenceConfig.GetConfig().WalletAppUrl;
var client = new HttpClient(walletUrl);
return await client.SendGetRequest<EcosystemConfig>("api/wallet-configuration");
}
public async Task<IWallet> SignInWithEmail(string email, IPermissions permissions)
{
return await SignIn(permissions, "email", email);
}
public async Task<IWallet> SignInWithGoogle(IPermissions permissions)
{
return await SignIn(permissions, "google", null);
}
public async Task<IWallet> SignInWithApple(IPermissions permissions)
{
return await SignIn(permissions, "apple", null);
}
public async Task<IWallet> SignInWithPasskey(IPermissions permissions)
{
return await SignIn(permissions, "passkey", null);
}
public async Task<IWallet> SignInWithMnemonic(IPermissions permissions)
{
return await SignIn(permissions, "mnemonic", null);
}
private async Task<IWallet> SignIn(IPermissions permissions, string preferredLoginMethod, string email)
{
var signers = await _client.CreateNewSession(false, permissions?.GetPermissions(), preferredLoginMethod, email);
return new SequenceWallet(signers);
}
}
}