def deserialize(self, reader: serialization.BinaryReader) -> None: """ Deserialize the object from a binary stream. Args: reader: instance. """ if reader.read_uint32() != self.magic: raise ValueError("Deserialization error - Incorrect magic") self.compiler = reader.read_bytes(64).decode('utf-8') if reader.read_uint16() != 0: raise ValueError("Reserved bytes must be 0") self.tokens = reader.read_serializable_list(MethodToken) if reader.read_uint16() != 0: raise ValueError("Reserved bytes must be 0") self.script = reader.read_var_bytes(max=512 * 1024) if len(self.script) == 0: raise ValueError("Deserialization error - Script can't be empty") checksum = int.from_bytes(reader.read_bytes(4), 'little') if checksum != self.compute_checksum(): raise ValueError("Deserialization error - Invalid checksum") else: self._checksum = checksum
def deserialize_without_type(self, reader: serialization.BinaryReader) -> None: """ Deserialize the object from a binary stream without deserializing the base class `type` property. Args: reader: instance. """ self.port = reader.read_uint16()
def deserialize_unsigned(self, reader: serialization.BinaryReader) -> None: """ Deserialize the object from a binary stream excluding the validation byte + witness. Args: reader: instance. """ self.version = reader.read_uint32() self.prev_hash = reader.read_serializable(types.UInt256) self.block_index = reader.read_uint32() self.validator_index = reader.read_uint16() self.data = reader.read_var_bytes()
def deserialize(self, reader: serialization.BinaryReader) -> None: """ Deserialize the object from a binary stream. Args: reader: instance. """ self.hash = reader.read_serializable(types.UInt160) self.method = reader.read_var_string(32) self.parameters_count = reader.read_uint16() self.has_return_value = bool(reader.read_uint8()) self.call_flags = contracts.CallFlags(reader.read_uint8())
def deserialize(self, reader: serialization.BinaryReader) -> None: """ Deserialize the object from a binary stream. Args: reader: instance. Raises: ValueError: if `count` is zero or exceeds :const:`~neo3.network.payloads.getblocks.GetBlockDataPayload.MAX_BLOCKS_COUNT`. """ self.index_start = reader.read_uint32() self.count = reader.read_uint16() if self.count == 0 or self.count > self.MAX_BLOCKS_COUNT: raise ValueError("Deserialization error - invalid count")
def deserialize(self, reader: serialization.BinaryReader) -> None: self.hash = reader.read_serializable(types.UInt160) self.method = reader.read_var_string(32) self.parameters_count = reader.read_uint16() self.has_return_value = bool(reader.read_uint8()) self.call_flags = contracts.CallFlags(reader.read_uint8())
def deserialize(self, reader: serialization.BinaryReader) -> None: self.id = reader.read_int32() self.nef = reader.read_serializable(contracts.NEF) self.manifest = reader.read_serializable(contracts.ContractManifest) self.update_counter = reader.read_uint16() self.hash = reader.read_serializable(types.UInt160)