def deserialize(cls, serialized): assert len(serialized) == 32 * 5 value = Field(int.from_bytes(serialized[0:32], 'little')) fee = Field(int.from_bytes(serialized[32:64], 'little')) sig_salt = Point.decompress(serialized[64:96]) excess = Point.decompress(serialized[96:128]) metadata = Field(int.from_bytes(serialized[128:160], 'little')) instance = cls(value, fee, sig_salt, excess, metadata) return instance
def deserialize(cls, serialized): assert len(serialized) == 32 * 3 hh_outputs = Point.decompress(serialized[0:32]) hh_excess = Point.decompress(serialized[32:64]) signature = Signature( Field(int.from_bytes(serialized[96:128], 'little')), Point.decompress(serialized[64:96])) range_proof = json.loads(serialized[96:].decode('utf-8')) instance = cls(hh_outputs, hh_excess, signature, range_proof) return instance
def test_serialise(self): for _ in range(0, 10): p = self._point_r() s = p.compress() q = Point.decompress(s) self.assertEqual(p, q)