public Script ReadWrite(Script data) { if (Serializing) { var bytes = data == null?Script.Empty.ToBytes(true) : data.ToBytes(true); ReadWriteAsVarString(ref bytes); return(data); } else { var varString = new VarString(); varString.ReadWrite(this); return(Script.FromBytesUnsafe(varString.GetString(true))); } }
public void ReadWrite(BitcoinStream stream) { if (stream.Serializing) { var ms = new MemoryStream(); var bs = new BitcoinStream(ms, true) { Type = SerializationType.Hash }; if (KeyId != null) { stream.ReadWrite(new uint160(KeyId.ToBytes())); } else { bs.ReadWriteAsCompactVarInt(ref Height); bs.ReadWriteAsCompactVarInt(ref Index); } var packBytes = ms.ToArray(); stream.ReadWriteAsVarString(ref packBytes); } else { var packVar = new VarString(); stream.ReadWrite(ref packVar); var bs = new BitcoinStream(packVar.GetString()); if (packVar.Length >= 20) { var keyHash = uint160.Zero; stream.ReadWrite(ref keyHash); KeyId = new KeyId(keyHash); } else { bs.ReadWriteAsCompactVarInt(ref Height); bs.ReadWriteAsCompactVarInt(ref Index); } } }
public Raw(byte[] data) { var str = new VarString(); str.FromBytes(data); _Data = str.GetString(true); }