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