示例#1
0
        public void ReadWrite(BitcoinStream stream)
        {
            if (stream.Serializing)
            {
                ulong val = CompressAmount((ulong)_TxOut.Value.Satoshi);
                stream.ReadWriteAsCompactVarInt(ref val);
            }
            else
            {
                ulong val = 0;
                stream.ReadWriteAsCompactVarInt(ref val);
                _TxOut.Value = new Money(DecompressAmount(val));
            }
            ScriptCompressor cscript = new ScriptCompressor(_TxOut.ScriptPubKey);

            stream.ReadWrite(ref cscript);
            if (!stream.Serializing)
            {
                _TxOut.ScriptPubKey = new Script(cscript.ScriptBytes);
            }
        }
示例#2
0
		public byte[] ToCompressedBytes()
		{
			var compressor = new ScriptCompressor(this);
			return compressor.ToBytes();
		}
示例#3
0
		public Script(byte[] data, bool compressed)
		{
			if(!compressed)
				_Script = data.ToArray();
			else
			{
				ScriptCompressor compressor = new ScriptCompressor();
				compressor.ReadWrite(data);
				_Script = compressor.GetScript()._Script;
			}
		}
示例#4
0
        public byte[] ToCompressedBytes()
        {
            var compressor = new ScriptCompressor(this);

            return(compressor.ToBytes());
        }
示例#5
0
 public void ReadWrite(BitcoinStream stream)
 {
     if(stream.Serializing)
     {
         ulong val = CompressAmount((ulong)_TxOut.Value.Satoshi);
         stream.ReadWriteAsCompactVarInt(ref val);
     }
     else
     {
         ulong val = 0;
         stream.ReadWriteAsCompactVarInt(ref val);
         _TxOut.Value = new Money(DecompressAmount(val));
     }
     ScriptCompressor cscript = new ScriptCompressor(_TxOut.ScriptPubKey);
     stream.ReadWrite(ref cscript);
     if(!stream.Serializing)
         _TxOut.ScriptPubKey = new Script(cscript.ScriptBytes);
 }