示例#1
0
        public void Sign(Block block, ECPoint[] miners)
        {
            SignatureContext context  = new SignatureContext(block);
            Contract         contract = MultiSigContract.Create(null, miners.Length / 2 + 1, miners);

            foreach (ECPoint pubKey in miners)
            {
                UInt160 publicKeyHash = pubKey.EncodePoint(true).ToScriptHash();
                Account account       = GetAccount(publicKeyHash);
                if (account == null)
                {
                    continue;
                }
                byte[] signature = block.Sign(account);
                context.Add(contract, account.PublicKey, signature);
            }
            block.Script = context.GetScripts()[0];
        }