Use usdc balance instead usdc value for ensuring balance check

This commit is contained in:
2025-10-05 01:36:25 +07:00
parent 63683d6bdf
commit de0d042254
7 changed files with 72 additions and 96 deletions

View File

@@ -343,7 +343,7 @@ public class EvmManager : IEvmManager
"https://api.coingecko.com/api/v3/simple/price?ids=" + idsCombined + "&vs_currencies=usd");
}
public async Task<List<EvmBalance>> GetAllBalancesOnAllChain(string publicAddress)
public async Task<List<Balance>> GetAllBalancesOnAllChain(string publicAddress)
{
try
{
@@ -352,44 +352,17 @@ public class EvmManager : IEvmManager
var chains = new[] { "arbitrum" };
// Get balances from Web3Proxy service
var balances = await _web3ProxyService.GetWalletBalanceAsync(publicAddress, assets, chains);
return await _web3ProxyService.GetWalletBalanceAsync(publicAddress, assets, chains);
// Convert Balance objects to EvmBalance objects
var evmBalances = new List<EvmBalance>();
foreach (var balance in balances)
{
if (balance.Amount > 0)
{
var evmBalance = new EvmBalance
{
Balance = balance.Amount,
TokenName = balance.TokenName ?? "Unknown",
TokenAddress = balance.TokenAdress ?? "",
TokenImage = balance.TokenImage ?? "",
Price = balance.Price,
Value = balance.Value,
Chain = new Chain
{
Id = balance.Chain?.Id ?? "",
Name = balance.Chain?.Name ?? "Unknown",
ChainId = balance.Chain?.ChainId ?? 0,
RpcUrl = balance.Chain?.RpcUrl ?? ""
}
};
evmBalances.Add(evmBalance);
}
}
var othersChains = ChainService.GetChains();
foreach (var chain in othersChains)
{
evmBalances.AddRange(await GetAllBalances(chain, publicAddress));
}
return evmBalances;
// TODO : Update here to get all different chains
// var othersChains = ChainService.GetChains();
//
// foreach (var chain in othersChains)
// {
// evmBalances.AddRange(await GetAllBalances(chain, publicAddress));
// }
//
// return evmBalances;
}
catch (Exception ex)
{
@@ -404,7 +377,7 @@ public class EvmManager : IEvmManager
chainBalances.AddRange(await GetAllBalances(chain, publicAddress));
}
return chainBalances;
return EvmMappers.Map(chainBalances);
}
}

View File

@@ -0,0 +1,20 @@
using Managing.Domain.Accounts;
using Managing.Domain.Evm;
namespace Managing.Infrastructure.Evm;
public static class EvmMappers
{
public static List<Balance> Map(List<EvmBalance> balances)
{
return balances.ConvertAll(balance => new Balance
{
TokenName = balance.TokenName,
Price = balance.Price,
Value = balance.Value,
Amount = balance.Balance,
TokenAdress = balance.TokenAddress,
Chain = balance.Chain
});
}
}