Add Privy type wallet

This commit is contained in:
2025-03-05 10:36:54 +07:00
parent 30bf9d26f6
commit 988cc9eb61
21 changed files with 287 additions and 53 deletions

View File

@@ -7,6 +7,7 @@ using Managing.Domain.Users;
using Microsoft.Extensions.Logging;
namespace Managing.Application.Accounts;
public class AccountService : IAccountService
{
private readonly IAccountRepository _accountRepository;
@@ -48,6 +49,21 @@ public class AccountService : IAccountService
request.Key = keys.Key;
request.Secret = keys.Secret;
}
else if (request.Exchange == Enums.TradingExchanges.Evm
&& request.Type == Enums.AccountType.Privy)
{
if (string.IsNullOrEmpty(request.Key) || string.IsNullOrEmpty(request.Secret))
{
var privyClient = await _evmManager.CreatePrivyWallet();
request.Key = privyClient.Address;
request.Secret = privyClient.Id;
}
else
{
request.Key = request.Key; // Address
request.Secret = request.Secret; // Privy wallet id
}
}
else
{
request.Key = request.Key;
@@ -116,10 +132,8 @@ public class AccountService : IAccountService
{
var cacheKey = $"user-account-{user.Name}";
return _cacheService.GetOrSave(cacheKey, () =>
{
return GetAccounts(user, hideSecrets, false);
}, TimeSpan.FromMinutes(5));
return _cacheService.GetOrSave(cacheKey, () => { return GetAccounts(user, hideSecrets, false); },
TimeSpan.FromMinutes(5));
}
private IEnumerable<Account> GetAccounts(User user, bool hideSecrets, bool getBalance)
@@ -139,10 +153,8 @@ public class AccountService : IAccountService
public IEnumerable<Account> GetAccountsBalancesByUser(User user, bool hideSecrets)
{
var cacheKey = $"user-account-balance-{user.Name}";
var accounts = _cacheService.GetOrSave(cacheKey, () =>
{
return GetAccounts(user, true, true);
}, TimeSpan.FromHours(3));
var accounts = _cacheService.GetOrSave(cacheKey, () => { return GetAccounts(user, true, true); },
TimeSpan.FromHours(3));
return accounts;
}