public RingCTSignatureType()
 {
     AssetID   = new UInt256();
     rangeSigs = new List <RangeProveType>();
     MG        = new MLSAGSignatureType();
     mixRing   = new List <List <MixRingCTKey> >();
     ecdhInfo  = new List <EcdhTuple>();
     outPK     = new List <CTKey>();
     vPub      = Fixed8.Zero;
 }
        public void Deserialize(BinaryReader reader)
        {
            AssetID   = reader.ReadSerializable <UInt256>();
            rangeSigs = reader.ReadSerializableArray <RangeProveType>().ToList();
            MG        = reader.ReadSerializable <MLSAGSignatureType>();

            int row = reader.ReadInt32();
            int col = reader.ReadInt32();

            for (int i = 0; i < row; i++)
            {
                List <MixRingCTKey> mixRing_i = new List <MixRingCTKey>();
                for (int j = 0; j < col; j++)
                {
                    mixRing_i.Add(reader.ReadSerializable <MixRingCTKey>());
                }

                mixRing.Add(mixRing_i);
            }

            ecdhInfo = reader.ReadSerializableArray <EcdhTuple>().ToList();
            outPK    = reader.ReadSerializableArray <CTKey>().ToList();
            vPub     = reader.ReadSerializable <Fixed8>();
        }