Exemplo n.º 1
0
    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
Exemplo n.º 2
0
    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()
Exemplo n.º 3
0
    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()
Exemplo n.º 4
0
    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())
Exemplo n.º 5
0
    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")
Exemplo n.º 6
0
 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())
Exemplo n.º 7
0
 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)