Skip to content

Commit

Permalink
feat: update activity operation
Browse files Browse the repository at this point in the history
  • Loading branch information
mixhsnhd committed Dec 21, 2024
1 parent 31e3324 commit a1c9ac6
Show file tree
Hide file tree
Showing 8 changed files with 774 additions and 51 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@ namespace EoaServer.UserAssets.Dtos;

public class GetTokenDto
{
public List<TokenWithoutChain> Data { get; set; } = new();
public string TotalBalanceInUsd { get; set; }
public long TotalRecordCount { get; set; }
public long TotalDisplayCount { get; set; }
public List<TokenWithoutChain> Data { get; set; } = new();
}

public class TokenWithoutChain
Expand All @@ -34,8 +34,4 @@ public class Token : ChainDisplayNameDto
public string TokenContractAddress { get; set; }
public string ImageUrl { get; set; }
public string Label { get; set; }

public string DisplayChainName { get; set; }

public string ChainImageUrl { get; set; }
}
46 changes: 19 additions & 27 deletions src/EoaServer.Application/Common/Provider/ImageProcessProvider.cs
Original file line number Diff line number Diff line change
Expand Up @@ -35,42 +35,34 @@ public ImageProcessProvider(ILogger<ImageProcessProvider> logger,

public async Task<string> GetResizeImageAsync(string imageUrl, int width, int height, ImageResizeType type)
{
try
if (!imageUrl.StartsWith(CommonConstant.ProtocolName))
{
if (!imageUrl.StartsWith(CommonConstant.ProtocolName))
{
return imageUrl;
}

if (!_awsThumbnailOptions.ExcludedSuffixes.Contains(GetImageUrlSuffix(imageUrl)))
{
return imageUrl;
}
return imageUrl;
}

var bucket = imageUrl.Split("/")[2];
if (!_awsThumbnailOptions.BucketList.Contains(bucket))
{
return imageUrl;
}
if (!_awsThumbnailOptions.ExcludedSuffixes.Contains(GetImageUrlSuffix(imageUrl)))
{
return imageUrl;
}

var resizeWidth = Enum.GetValues(typeof(ImageResizeWidthType)).Cast<ImageResizeWidthType>()
.FirstOrDefault(a => (int)a == width);
var bucket = imageUrl.Split("/")[2];
if (!_awsThumbnailOptions.BucketList.Contains(bucket))
{
return imageUrl;
}

var reizeHeight = Enum.GetValues(typeof(ImageResizeHeightType)).Cast<ImageResizeHeightType>()
.FirstOrDefault(a => (int)a == height);
var resizeWidth = Enum.GetValues(typeof(ImageResizeWidthType)).Cast<ImageResizeWidthType>()
.FirstOrDefault(a => (int)a == width);

if (resizeWidth == ImageResizeWidthType.None || reizeHeight == ImageResizeHeightType.None)
{
return imageUrl;
}
var reizeHeight = Enum.GetValues(typeof(ImageResizeHeightType)).Cast<ImageResizeHeightType>()
.FirstOrDefault(a => (int)a == height);

return await GetResizeImageUrlAsync(imageUrl, width, height);
}
catch (Exception ex)
if (resizeWidth == ImageResizeWidthType.None || reizeHeight == ImageResizeHeightType.None)
{
_logger.LogError("sendImageRequest Execption:", ex);
return imageUrl;
}

return imageUrl;
}

public string GetResizeUrl(string imageUrl, int width, int height, bool replaceDomain, ImageResizeType type)
Expand Down
3 changes: 2 additions & 1 deletion src/EoaServer.Application/EoaServerApplicationModule.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
using EoaServer.Options;
using EoaServer.Redis;
using EoaServer.Token.TokenPrice.CoinGecko;
using EoaServer.UserAssets.Provider;
using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.Account;
using Volo.Abp.AutoMapper;
Expand Down Expand Up @@ -51,6 +52,6 @@ public override void ConfigureServices(ServiceConfigurationContext context)
Configure<ETransferOptions>(configuration.GetSection("ETransfer"));
Configure<DepositOptions>(configuration.GetSection("Deposit"));
Configure<CoinGeckoOptions>(configuration.GetSection("CoinGecko"));

Configure<AwsThumbnailOptions>(configuration.GetSection("AWSThumbnail"));
}
}
62 changes: 45 additions & 17 deletions src/EoaServer.Application/UserActivity/UserActivityAppService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -85,25 +85,31 @@ public async Task<GetActivitiesDto> GetActivitiesAsync(GetActivitiesRequestDto r
txns = await txnsTask;
tokenTransfers = await tokenTransfersTask;
var nftTransfers = await nftTransfersTask;

tokenTransfers.List.AddRange(nftTransfers.List);

if (tokenTransfers != null && nftTransfers != null)
{
tokenTransfers.List.AddRange(nftTransfers.List);
}
}
else
{
tokenTransfers = await _aelfScanDataProvider.GetAddressTransfersAsync(chainId, address, 0, 0, request.SkipCount + request.MaxResultCount, request.Symbol);
}
foreach (var transfer in tokenTransfers.List)

if (tokenTransfers != null)
{
var txn = txns.Transactions.FirstOrDefault(t => t.TransactionId == transfer.TransactionId);
if (txn == null)
foreach (var transfer in tokenTransfers.List)
{
txns.Transactions.Add(new TransactionResponseDto
var txn = txns.Transactions.FirstOrDefault(t => t.TransactionId == transfer.TransactionId);
if (txn == null)
{
TransactionId = transfer.TransactionId,
ChainIds = transfer.ChainIds,
Timestamp = transfer.BlockTime
});
txns.Transactions.Add(new TransactionResponseDto
{
TransactionId = transfer.TransactionId,
ChainIds = transfer.ChainIds,
Timestamp = transfer.BlockTime
});
}
}
}

Expand Down Expand Up @@ -287,7 +293,7 @@ private async Task<GetActivityDto> ConvertDtoAsync(string chainId, TransactionDe
foreach (var tokenTransferred in dto.TokenTransferreds)
{
var isReceived = tokenTransferred.To.Address == dto.From.Address;
var symbolInfo = activityDto.Operations.FirstOrDefault(t => t.Symbol == tokenTransferred.Symbol && t.IsReceived == isReceived);
var symbolInfo = activityDto.Operations.FirstOrDefault(t => t.Symbol == tokenTransferred.Symbol);
if (symbolInfo == null)
{
activityDto.Operations.Add(new OperationItemInfo()
Expand All @@ -301,15 +307,23 @@ private async Task<GetActivityDto> ConvertDtoAsync(string chainId, TransactionDe
}
else
{
symbolInfo.Amount = (long.Parse(symbolInfo.Amount) + tokenTransferred.Amount).ToString();
if (isReceived == symbolInfo.IsReceived)
{
symbolInfo.Amount = (long.Parse(symbolInfo.Amount) + tokenTransferred.Amount).ToString();
}
else
{
symbolInfo.Amount = (long.Parse(symbolInfo.Amount) - tokenTransferred.Amount).ToString();
}

}

}

foreach (var nftsTransferred in dto.NftsTransferreds)
{
var isReceived = nftsTransferred.To.Address == dto.From.Address;
var symbolInfo = activityDto.Operations.FirstOrDefault(t => t.Symbol == nftsTransferred.Symbol && t.IsReceived == isReceived);
var symbolInfo = activityDto.Operations.FirstOrDefault(t => t.Symbol == nftsTransferred.Symbol);
if (symbolInfo == null)
{
var isSeed = false;
Expand Down Expand Up @@ -340,13 +354,27 @@ private async Task<GetActivityDto> ConvertDtoAsync(string chainId, TransactionDe
}
else
{
symbolInfo.Amount = (long.Parse(symbolInfo.Amount) + nftsTransferred.Amount).ToString();
if (isReceived == symbolInfo.IsReceived)
{
symbolInfo.Amount = (long.Parse(symbolInfo.Amount) + nftsTransferred.Amount).ToString();
}
else
{
symbolInfo.Amount = (long.Parse(symbolInfo.Amount) - nftsTransferred.Amount).ToString();
}
}
}

activityDto.ListIcon = activityDto.Operations.FirstOrDefault()?.Icon;
foreach (var operation in activityDto.Operations)
{
if (long.Parse(operation.Amount) < 0)
{
operation.IsReceived = !operation.IsReceived;
operation.Amount = (long.Parse(operation.Amount) * -1).ToString();
}
}

_logger.LogInformation($"convert transaction: {dto.TransactionId}, from: {JsonConvert.SerializeObject(dto)}, to: {JsonConvert.SerializeObject(activityDto)}");
activityDto.ListIcon = activityDto.Operations.FirstOrDefault()?.Icon;

return activityDto;
}
Expand Down
7 changes: 6 additions & 1 deletion src/EoaServer.HttpApi.Host/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
using System.Threading.Tasks;
using EoaServer.Common;
using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Serilog;
Expand All @@ -14,11 +15,15 @@ public class Program
public static async Task<int> Main(string[] args)
{
Log.Logger = LogHelper.CreateLogger(LogEventLevel.Debug);

try
{
Log.Information("Starting EoaServer.HttpApi.Host.");
var builder = WebApplication.CreateBuilder(args);
builder.Configuration.AddJsonFile("seedurl.json");
builder.Configuration.AddJsonFile("activity.json");
builder.Configuration.AddJsonFile("userToken.json");

builder.Host.AddAppSettingsSecretsJson()
.UseApolloForConfigureHostBuilder()
.UseAutofac()
Expand Down
161 changes: 161 additions & 0 deletions src/EoaServer.HttpApi.Host/activity.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,161 @@
{
"activityOptions": {
"TypeMap": {
"Transfer": "Transfer",
"CrossChainTransfer": "Cross-Chain Transfer",
"SocialRecovery": "Social Recovery",
"RemoveManagerInfo": "Exit Wallet",
"AddManagerInfo": "Scan code login",
"CreateCAHolder": "Create AA address",
"AddGuardian": "Add guardian",
"RemoveGuardian": "Remove guardian",
"UpdateGuardian": "Edit guardian",
"SetGuardianForLogin": "Set login account",
"UnsetGuardianForLogin": "Unset login account",
"RemoveOtherManagerInfo": "Remove device",
"ClaimToken": "Transfer",
"Register": "Register",
"Approve": "Approve",
"Bingo": "Bingo",
"Play": "Play",
"ManagerApprove": "Approve",
"MakeOffer": "Make Offer",
"CancelOffer": "Cancel Offer",
"ListWithFixedPrice": "List",
"Delist": "Cancel List",
"Deal": "Deal",
"PlaceBid": "Place Bid",
"Claim": "Claim",
"Buy": "Buy",
"CreatePair": "Create Pair",
"AddLiquidity": "Add Liquidity",
"RemoveLiquidity": "Remove Liquidity",
"SwapExactTokensForTokens": "Swap",
"SwapTokensForExactTokens": "Swap",
"UpdateManagerInfos": "UpdateManagerInfos",
"SetTransferLimit":"Set Transfer Limit",
"TransferToken": "Withdraw",
"CreateCryptoBox": "Send Crypto Box",
"TransferCryptoBoxes": "Claim Crypto Box",
"RefundCryptoBox": "Return Crypto Box",
"CreateCryptoGift": "Send Crypto Gift",
"TransferCryptoGift": "Claim Crypto Gift",
"RefundCryptoGift": "Return Crypto Gift"
},
"TransactionTypeMap": {
"TransferToken": "Transfer",
"CreateCryptoBox": "Transfer",
"TransferCryptoBoxes": "Transfer",
"RefundCryptoBox": "Transfer"
},
"RedPacketTypes": [
"CreateCryptoBox",
"TransferCryptoBoxes",
"RefundCryptoBox"
],
"TransferTypes": [
"Transfer",
"CrossChainTransfer",
"ClaimToken",
"MakeOffer",
"Deal",
"Claim",
"Buy",
"CreatePair",
"AddLiquidity",
"RemoveLiquidity",
"SwapExactTokensForTokens",
"SwapTokensForExactTokens",
"UpdateManagerInfos",
"TransferToken"
],
"ContractTypes": [
"SocialRecovery",
"RemoveManagerInfo",
"AddManagerInfo",
"CreateCAHolder",
"AddGuardian",
"RemoveGuardian",
"UpdateGuardian",
"SetGuardianForLogin",
"UnsetGuardianForLogin",
"RemoveOtherManagerInfo",
"Register",
"Approve",
"Bingo",
"Play",
"BeanGoTown-Bingo",
"BeanGoTown-Play",
"ManagerApprove",
"CancelOffer",
"ListWithFixedPrice",
"DelList",
"PlaceBid"
],
"ShowPriceTypes": [
"Transfer",
"CreateCryptoBox",
"CrossChainTransfer",
"RemoveManagerInfo",
"AddManagerInfo",
"AddGuardian",
"RemoveGuardian",
"UpdateGuardian",
"SetGuardianForLogin",
"UnsetGuardianForLogin",
"RemoveOtherManagerInfo",
"ClaimToken",
"Approve",
"Bingo",
"Play",
"BeanGoTown-Bingo",
"BeanGoTown-Play",
"ManagerApprove",
"ManagerApprove",
"MakeOffer",
"CancelOffer",
"ListWithFixedPrice",
"Delist",
"Deal",
"PlaceBid",
"Claim",
"Buy",
"CreatePair",
"AddLiquidity",
"RemoveLiquidity",
"SwapExactTokensForTokens",
"SwapTokensForExactTokens",
"UpdateManagerInfos",
"SetTransferLimit",
"TransferToken"
],
"ShowNftTypes": [
"Transfer",
"CrossChainTransfer"
],
"RecentTypes": [
"Transfer",
"CrossChainTransfer",
"ClaimToken"
],
"NoShowTypes": [
"CrossChainReceiveToken"
],
"SystemTypes": [
"CreateCAHolder",
"SocialRecovery",
"AddManagerInfo",
"RemoveManagerInfo",
"AddGuardian",
"RemoveGuardian",
"UpdateGuardian",
"SetGuardianForLogin",
"UnsetGuardianForLogin",
"RemoveOtherManagerInfo",
"UpdateManagerInfos",
"SetTransferLimit",
"ManagerApprove"
],
"Zero": "0"
}
}
Loading

0 comments on commit a1c9ac6

Please sign in to comment.