internal static void ComputeTapTweak(TaprootInternalPubKey internalKey, uint256?merkleRoot, Span <byte> tweak32) { using Secp256k1.SHA256 sha = new Secp256k1.SHA256(); sha.InitializeTagged("TapTweak"); internalKey.pubkey.WriteToSpan(tweak32); sha.Write(tweak32); if (merkleRoot is uint256) { merkleRoot.ToBytes(tweak32); sha.Write(tweak32); } sha.GetHash(tweak32); }