Skip to content

Commit

Permalink
Merge branch 'hotfix/register-info' into feature/2.7.0-union
Browse files Browse the repository at this point in the history
  • Loading branch information
felix-zhaolei committed Dec 17, 2024
2 parents 0122371 + 6b007b5 commit 09a9ba2
Showing 1 changed file with 7 additions and 9 deletions.
16 changes: 7 additions & 9 deletions src/CAServer.Application/Guardian/GuardianAppService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -240,10 +240,15 @@ public async Task<RegisterInfoResultDto> GetRegisterInfoAsync(RegisterInfoDto re
else
{
var guardians = await _guardianProvider.GetGuardiansAsync(guardianIdentifierHash, requestDto.CaHash);
var guardian = guardians?.CaHolderInfo?.FirstOrDefault(t => !string.IsNullOrWhiteSpace(t.OriginChainId));
var holderInfo = guardians?.CaHolderInfo?.FirstOrDefault(t =>
t.GuardianList != null && !t.GuardianList.Guardians.IsNullOrEmpty() &&
!string.IsNullOrWhiteSpace(t.OriginChainId));
var guardian = holderInfo?.GuardianList?.Guardians?.FirstOrDefault(t =>
t.IdentifierHash == guardianIdentifierHash && t.IsLoginGuardian == true);

originChainId = guardian == null
? await GetOriginChainIdAsync(guardianIdentifierHash, requestDto.CaHash)
: guardian.OriginChainId;
: holderInfo.OriginChainId;
}

return new RegisterInfoResultDto { OriginChainId = originChainId };
Expand Down Expand Up @@ -345,7 +350,6 @@ private async Task<string> GetOriginChainIdAsync(string guardianIdentifierHash,
private async Task<string> GetOriginalChainIdParallelMode(string guardianIdentifierHash, string caHash)
{
var holderInfoTasks = new List<Task<string>>();
holderInfoTasks.Add(BuildTaskByScan(guardianIdentifierHash, caHash));
foreach (var (chainId, chainInfo) in _chainOptions.ChainInfos)
{
holderInfoTasks.Add(BuildTaskByContract(guardianIdentifierHash, caHash, chainId));
Expand All @@ -360,12 +364,6 @@ private async Task<string> GetOriginalChainIdParallelMode(string guardianIdentif
return originalChainIds.FirstOrDefault(item => !item.IsNullOrEmpty());
}

private async Task<string> BuildTaskByScan(string guardianIdentifierHash, string caHash)
{
var guardians = await _guardianProvider.GetGuardiansAsync(guardianIdentifierHash, caHash);
return guardians?.CaHolderInfo?.FirstOrDefault(t => !string.IsNullOrWhiteSpace(t.OriginChainId))?.OriginChainId;
}

private async Task<string> BuildTaskByContract(string guardianIdentifierHash, string caHash, string chainId)
{
try
Expand Down

0 comments on commit 09a9ba2

Please sign in to comment.