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); }
internal void AddFakePendingCrossChainIndexingProposal(int chainId, PendingChainIndexingProposalStatus pendingCrossChainIndexingProposalOutput) { _pendingCrossChainIndexingProposalOutput.ChainIndexingProposalStatus[chainId] = pendingCrossChainIndexingProposalOutput; }