From 418988938904e3585864457a97c2812ce9ae8063 Mon Sep 17 00:00:00 2001 From: felix-zhaolei Date: Thu, 26 Dec 2024 14:58:45 +0800 Subject: [PATCH 1/2] modify: token image url. --- src/CAServer.Application/Tokens/TokenNftAppService.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/CAServer.Application/Tokens/TokenNftAppService.cs b/src/CAServer.Application/Tokens/TokenNftAppService.cs index 2510b2473..c98d89966 100644 --- a/src/CAServer.Application/Tokens/TokenNftAppService.cs +++ b/src/CAServer.Application/Tokens/TokenNftAppService.cs @@ -284,7 +284,8 @@ private async Task SetFtAsync(List tokenList, List caAddre { Decimals = symbol.Token.Decimals, Symbol = symbol.Token.Symbol, - TokenContractAddress = symbol.Token.Address + TokenContractAddress = symbol.Token.Address, + ImageUrl = symbol.Token.ImageUrl } }; } @@ -294,7 +295,7 @@ private async Task SetFtAsync(List tokenList, List caAddre } var token = ObjectMapper.Map(tokenInfo); - token.ImageUrl = _assetsLibraryProvider.buildSymbolImageUrl(token.Symbol, token.ImageUrl); + token.ImageUrl = _assetsLibraryProvider.buildSymbolImageUrl(token.Symbol, symbol.Token?.ImageUrl); tokenList.Add(token); } From 2eda2ae9e5874b136c73894b2ac1f17cf6212ad6 Mon Sep 17 00:00:00 2001 From: felix-zhaolei Date: Thu, 26 Dec 2024 15:27:57 +0800 Subject: [PATCH 2/2] modify: token allowance image url. --- .../Tokens/Cache/TokenCacheProvider.cs | 17 +++++++++---- .../Tokens/TokenAppService.cs | 25 +++++++++++++------ .../UserSecurity/UserSecurityAppService.cs | 3 ++- 3 files changed, 32 insertions(+), 13 deletions(-) diff --git a/src/CAServer.Application/Tokens/Cache/TokenCacheProvider.cs b/src/CAServer.Application/Tokens/Cache/TokenCacheProvider.cs index f55b37f74..538ad3709 100644 --- a/src/CAServer.Application/Tokens/Cache/TokenCacheProvider.cs +++ b/src/CAServer.Application/Tokens/Cache/TokenCacheProvider.cs @@ -21,7 +21,8 @@ public class TokenCacheProvider : ITokenCacheProvider, ISingletonDependency private readonly IDistributedCache _tokenInfoCache; private readonly ILogger _logger; - public TokenCacheProvider(IContractProvider contractProvider, IDistributedCache tokenInfoCache, ILogger logger) + public TokenCacheProvider(IContractProvider contractProvider, IDistributedCache tokenInfoCache, + ILogger logger) { _contractProvider = contractProvider; _tokenInfoCache = tokenInfoCache; @@ -56,10 +57,15 @@ public async Task GetTokenInfoAsync(string chainId, string symb Issuer = output.Issuer.ToBase58(), IsBurnable = output.IsBurnable, IssueChainId = output.IssueChainId, - Expires = output.ExternalInfo?.Value.TryGetValue("__seed_exp_time", out _) == true ? - output.ExternalInfo?.Value["__seed_exp_time"] : "", - SeedOwnedSymbol = output.ExternalInfo?.Value.TryGetValue("__seed_owned_symbol", out _) == true ? - output.ExternalInfo?.Value?["__seed_owned_symbol"] : "" + Expires = output.ExternalInfo?.Value.TryGetValue("__seed_exp_time", out _) == true + ? output.ExternalInfo?.Value["__seed_exp_time"] + : "", + SeedOwnedSymbol = output.ExternalInfo?.Value.TryGetValue("__seed_owned_symbol", out _) == true + ? output.ExternalInfo?.Value?["__seed_owned_symbol"] + : "", + ImageUrl = output.ExternalInfo?.Value.TryGetValue("__ft_image_uri", out _) == true + ? output.ExternalInfo?.Value?["__ft_image_uri"] + : "" } : new GetTokenInfoDto(); await _tokenInfoCache.SetAsync(cacheKey, tokenInfoCache, new DistributedCacheEntryOptions @@ -68,6 +74,7 @@ public async Task GetTokenInfoAsync(string chainId, string symb }); return tokenInfoCache; } + return tokenInfoCache; } catch (Exception e) diff --git a/src/CAServer.Application/Tokens/TokenAppService.cs b/src/CAServer.Application/Tokens/TokenAppService.cs index f3271002d..5dc21cd66 100644 --- a/src/CAServer.Application/Tokens/TokenAppService.cs +++ b/src/CAServer.Application/Tokens/TokenAppService.cs @@ -149,8 +149,12 @@ public async Task> GetTokenListAsync(GetTokenListRequestDt var tokenInfoList = GetTokenInfoList(userTokensDto, indexerToken.TokenInfo); // Check and adjust SkipCount and MaxResultCount - var skipCount = input.SkipCount < TokensConstants.SkipCountDefault ? TokensConstants.SkipCountDefault : input.SkipCount; - var maxResultCount = input.MaxResultCount <= TokensConstants.MaxResultCountInvalid ? TokensConstants.MaxResultCountDefault : input.MaxResultCount; + var skipCount = input.SkipCount < TokensConstants.SkipCountDefault + ? TokensConstants.SkipCountDefault + : input.SkipCount; + var maxResultCount = input.MaxResultCount <= TokensConstants.MaxResultCountInvalid + ? TokensConstants.MaxResultCountDefault + : input.MaxResultCount; return tokenInfoList.Skip(skipCount).Take(maxResultCount).ToList(); } @@ -305,12 +309,15 @@ public async Task GetTokenAllowancesAsync(GetAssetsBase i SymbolApproveList = t.Items.Select(s => new SymbolApprove() { Symbol = s.Symbol, - Amount = allowanceMap.TryGetValue(GetKey(s.Symbol, t.Key.Spender, t.Key.ChainId), out long value) ? value : 0, + Amount = allowanceMap.TryGetValue(GetKey(s.Symbol, t.Key.Spender, t.Key.ChainId), out long value) + ? value + : 0, Decimals = tokenInfoDtos.FirstOrDefault(i => i.Symbol == s.Symbol.Replace("-*", "-1")) == null ? 0 : tokenInfoDtos.First(i => i.Symbol == s.Symbol.Replace("-*", "-1")).Decimals, UpdateTime = s.UpdateTime, - ImageUrl = _assetsLibraryProvider.buildSymbolImageUrl(s.Symbol), + ImageUrl = _assetsLibraryProvider.buildSymbolImageUrl(s.Symbol, + tokenInfoDtos.FirstOrDefault(i => i.Symbol == s.Symbol)?.ImageUrl), }).ToList() }).ToList(); @@ -325,7 +332,9 @@ public async Task GetTokenAllowancesAsync(GetAssetsBase i } tokenAllowanceList.Sort((t1, t2) => - (t1.Name.IsNullOrWhiteSpace() ? CommonConstant.UpperZ : t1.Name).CompareTo(t2.Name.IsNullOrWhiteSpace() ? CommonConstant.UpperZ : t2.Name)); + (t1.Name.IsNullOrWhiteSpace() ? CommonConstant.UpperZ : t1.Name).CompareTo(t2.Name.IsNullOrWhiteSpace() + ? CommonConstant.UpperZ + : t2.Name)); return new GetTokenAllowancesDto { @@ -341,7 +350,8 @@ private async Task> GetAllowanceList(List Task.Run(() => GetAllowanceTask(dto))); GetAllowanceDTO[] result = await Task.WhenAll(tasks); stopwatch.Stop(); - _logger.LogDebug("GetAllowanceList dtoList count = {0}, spendTime = {1} ms dtoList = {2}", dtoList.Count, stopwatch.ElapsedMilliseconds,JsonConvert.SerializeObject(result)); + _logger.LogDebug("GetAllowanceList dtoList count = {0}, spendTime = {1} ms dtoList = {2}", dtoList.Count, + stopwatch.ElapsedMilliseconds, JsonConvert.SerializeObject(result)); return result.ToDictionary( dto => GetKey(dto.Symbol, dto.Spender, dto.ChainId), @@ -351,7 +361,8 @@ private async Task> GetAllowanceList(List GetAllowanceTask(GetAllowanceDTO dto) { - GetAllowanceOutput output = await _contractProvider.GetAllowanceAsync(dto.Symbol, dto.Owner, dto.Spender, dto.ChainId); + GetAllowanceOutput output = + await _contractProvider.GetAllowanceAsync(dto.Symbol, dto.Owner, dto.Spender, dto.ChainId); dto.Allowance = output.Allowance; _logger.LogDebug("GetAllowanceTask dto = {0}", JsonConvert.SerializeObject(dto)); return dto; diff --git a/src/CAServer.Application/UserSecurity/UserSecurityAppService.cs b/src/CAServer.Application/UserSecurity/UserSecurityAppService.cs index 8ff2cd1c3..eba905dec 100644 --- a/src/CAServer.Application/UserSecurity/UserSecurityAppService.cs +++ b/src/CAServer.Application/UserSecurity/UserSecurityAppService.cs @@ -486,7 +486,8 @@ private async Task GeneratorTransferLimitAsync(IndexerSearchTo Restricted = true }; - transferLimit.ImageUrl = _assetsLibraryProvider.buildSymbolImageUrl(token.TokenInfo.Symbol); + transferLimit.ImageUrl = + _assetsLibraryProvider.buildSymbolImageUrl(token.TokenInfo.Symbol, token.TokenInfo.ImageUrl); if (_securityOptions.TokenTransferLimitDict[token.ChainId].SingleTransferLimit .TryGetValue(token.TokenInfo.Symbol, out var singleLimit))