private List <int> FindToBeReleasedChainIdList( GetIndexingProposalStatusOutput pendingChainIndexingProposalStatusList, Timestamp timestamp) { return(pendingChainIndexingProposalStatusList.ChainIndexingProposalStatus .Where(pair => pair.Value.ToBeReleased && pair.Value.ExpiredTime > timestamp).Select(pair => pair.Key) .ToList()); }
public override GetIndexingProposalStatusOutput GetIndexingProposalStatus(Empty input) { var res = new GetIndexingProposalStatusOutput(); var pendingCrossChainIndexingProposal = State.IndexingPendingProposal.Value; if (pendingCrossChainIndexingProposal == null) { return(res); } var crossChainIndexingController = GetCrossChainIndexingController(); foreach (var chainIndexingProposal in pendingCrossChainIndexingProposal.ChainIndexingProposalCollections.Values) { var pendingChainIndexingProposalStatus = new PendingChainIndexingProposalStatus(); var proposalInfo = Context.Call <ProposalOutput>(crossChainIndexingController.ContractAddress, nameof(AuthorizationContractContainer.AuthorizationContractReferenceState.GetProposal), chainIndexingProposal.ProposalId); pendingChainIndexingProposalStatus.Proposer = chainIndexingProposal.Proposer; pendingChainIndexingProposalStatus.ProposalId = chainIndexingProposal.ProposalId; pendingChainIndexingProposalStatus.ToBeReleased = proposalInfo.ToBeReleased && proposalInfo.OrganizationAddress == crossChainIndexingController.OwnerAddress; pendingChainIndexingProposalStatus.ExpiredTime = proposalInfo.ExpiredTime; pendingChainIndexingProposalStatus.ProposedCrossChainBlockData = chainIndexingProposal.ProposedCrossChainBlockData; res.ChainIndexingProposalStatus[chainIndexingProposal.ChainId] = pendingChainIndexingProposalStatus; } return(res); }