X-Git-Url: https://git.novaco.in/?a=blobdiff_plain;f=Novacoin%2FCTxIn.cs;h=067ad4639dabd9b3c46f9df6287e8c30473c4bce;hb=be9d844557911f95165d2c9875c4f5b2822cfc92;hp=af8539feac791b19f035c45b20ceaf5230675f03;hpb=6c6e3b0c68e764ea520dde48d5e44c757f1dabbb;p=NovacoinLibrary.git diff --git a/Novacoin/CTxIn.cs b/Novacoin/CTxIn.cs index af8539f..067ad46 100644 --- a/Novacoin/CTxIn.cs +++ b/Novacoin/CTxIn.cs @@ -19,6 +19,7 @@ using System; using System.Text; using System.Collections.Generic; +using System.IO; namespace Novacoin { @@ -131,18 +132,19 @@ namespace Novacoin /// Byte sequence. public static implicit operator byte[] (CTxIn input) { - var inputBytes = new List(); + var stream = new MemoryStream(); + var writer = new BinaryWriter(stream); - inputBytes.AddRange((byte[])input.prevout); // prevout + writer.Write(input.prevout); // prevout + writer.Write(VarInt.EncodeVarInt(input.scriptSig.Size)); // scriptSig length + writer.Write(input.scriptSig); // scriptSig + writer.Write(input.nSequence); // nSequence - var s = (byte[])input.scriptSig; - inputBytes.AddRange(VarInt.EncodeVarInt(s.Length)); // scriptSig length - inputBytes.AddRange(s); // scriptSig - inputBytes.AddRange(BitConverter.GetBytes(input.nSequence)); // Sequence - - return inputBytes.ToArray(); + var inputBytes = stream.ToArray(); + writer.Close(); + return inputBytes; } - + public bool IsFinal { get { return (nSequence == uint.MaxValue); }