public override Empty ReleaseCodeCheckedContract(ReleaseContractInput input) { var contractProposingInput = State.ContractProposingInputMap[input.ProposedContractInputHash]; Assert( contractProposingInput != null && contractProposingInput.Status == ContractProposingInputStatus.PreCodeChecked && contractProposingInput.Proposer == Context.Sender, "Invalid contract proposing status."); contractProposingInput.Status = ContractProposingInputStatus.CodeChecked; State.ContractProposingInputMap[input.ProposedContractInputHash] = contractProposingInput; State.ParliamentAuthContract.Release.Send(input.ProposalId); return(new Empty()); }
public override Empty ReleaseApprovedContract(ReleaseContractInput input) { var contractProposingInput = State.ContractProposingInputMap[input.ProposedContractInputHash]; Assert( contractProposingInput != null && contractProposingInput.Status == ContractProposingInputStatus.Proposed && contractProposingInput.Proposer == Context.Sender, "Invalid contract proposing status."); contractProposingInput.Status = ContractProposingInputStatus.Approved; State.ContractProposingInputMap[input.ProposedContractInputHash] = contractProposingInput; Context.SendInline(State.ContractDeploymentController.Value.ContractAddress, nameof(AuthorizationContractContainer.AuthorizationContractReferenceState.Release), input.ProposalId.ToByteString()); return(new Empty()); }