Beispiel #1
0
 def stream_deserialize_value(self, f):
     lut = {
         FieldType.Type.u8: lambda: ser_read(f, 1),
         FieldType.Type.u16: lambda: struct.unpack(b'<H', ser_read(f, 2))[0],
         FieldType.Type.u32: lambda: struct.unpack(b'<I', ser_read(f, 4))[0],
         FieldType.Type.u64: lambda: struct.unpack(b'<Q', ser_read(f, 8))[0],
         FieldType.Type.i8: lambda: ser_read(f, 1),
         FieldType.Type.i16: lambda: struct.unpack(b'<h', ser_read(f, 2))[0],
         FieldType.Type.i32: lambda: struct.unpack(b'<i', ser_read(f, 4))[0],
         FieldType.Type.i64: lambda: struct.unpack(b'<q', ser_read(f, 8))[0],
         FieldType.Type.vi: lambda: VarIntSerializer.stream_deserialize(f),
         FieldType.Type.fvi: lambda: FlagVarIntSerializer.stream_deserialize(f),
         FieldType.Type.str: lambda: VarStringSerializer.stream_deserialize(f).decode('utf-8'),
         FieldType.Type.bytes: lambda: BytesSerializer.stream_deserialize(f),
         FieldType.Type.sha256: lambda: Hash256Id.stream_deserialize(f),
         FieldType.Type.sha256d: lambda: Hash256Id.stream_deserialize(f),
         FieldType.Type.ripmd160: lambda: Hash160Id.stream_deserialize(f),
         FieldType.Type.hash160: lambda: Hash160Id.stream_deserialize(f),
         FieldType.Type.pubkey: lambda: PubKey.stream_deserialize(f),
         FieldType.Type.ecdsa: lambda: None,
     }
     if self.type in lut.keys():
         return lut[self.type]()
     else:
         raise NotImplementedError()
Beispiel #2
0
 def stream_deserialize(cls, f):
     nonce = ser_read(f, HASH_LENGTH)
     strPaymentInfo = VarStringSerializer.stream_deserialize(f)
     host = VarStringSerializer.stream_deserialize(f)
     port = struct.unpack(b">H", ser_read(f, 2))[0]
     return cls(nonce, strPaymentInfo, host, port)
 def stream_deserialize(cls, f):
     c = cls()
     c.vchMsg = VarStringSerializer.stream_deserialize(f)
     c.vchSig = VarStringSerializer.stream_deserialize(f)
     return c
Beispiel #4
0
 def stream_deserialize(cls, f):
     c = cls()
     c.vchMsg = VarStringSerializer.stream_deserialize(f)
     c.vchSig = VarStringSerializer.stream_deserialize(f)
     return c
Beispiel #5
0
 def stream_deserialize(cls, f, **kwargs):
     name = VarStringSerializer.stream_deserialize(f)
     type_val = ser_read(f, 1)
     return FieldType(name, FieldType.Type(type_val))