Beispiel #1
0
        public void AddSignature(BlockSignatures signatures, BlockProposalSignatures proposalSignatures, short issuer)
        {
            var block = Block;

            if (block != null)
            {
                var memeberKey = _members.GetKey(issuer);
                if (signatures.IsSignatureValid(memeberKey?.PublicKey, issuer, block) &&
                    proposalSignatures.IsSignatureValid(memeberKey?.PublicKey, issuer, block))
                {
                    lock (_votes)
                    {
                        if (Signatures == null)
                        {
                            Signatures = new BlockSignatures(block);
                        }

                        if (ProposalSignatures == null)
                        {
                            ProposalSignatures = new BlockProposalSignatures(block);
                        }

                        Signatures.AddSignature(signatures.GetSignature(issuer));
                        ProposalSignatures.AddSignature(proposalSignatures.GetSignature(issuer));
                    }
                }
            }
        }