public IEnumerable <uint256> GetMatchedTransactions() { BitReader flags = new BitReader(Flags); MerkleNode root = MerkleNode.GetRoot((int)TransactionCount); var hashes = Hashes.GetEnumerator(); return(GetMatchedTransactionsCore(root, flags, hashes, false)); }
public MerkleNode GetMerkleRoot() { MerkleNode node = MerkleNode.GetRoot((int)TransactionCount); BitReader flags = new BitReader(Flags); var hashes = Hashes.GetEnumerator(); GetMatchedTransactionsCore(node, flags, hashes, true).AsEnumerable(); return(node); }
public PartialMerkleTree(uint256[] vTxid, bool[] vMatch) { if (vMatch.Length != vTxid.Length) { throw new ArgumentException("The size of the array of txid and matches is different"); } TransactionCount = (uint)vTxid.Length; MerkleNode root = MerkleNode.GetRoot(vTxid); BitWriter flags = new BitWriter(); MarkNodes(root, vMatch); BuildCore(root, flags); Flags = flags.ToBitArray(); }
public MerkleNode GetMerkleRoot() { return(MerkleNode.GetRoot(this.Transactions.Select(t => t.GetHash()))); }