Пример #1
0
 def serialize(self, writer: serialization.BinaryWriter) -> None:
     version_str = "{0}.{1}.{2}.{3}".format(self.major, self.minor,
                                            self.build, self.revision)
     from boa3.neo.vm.type.String import String
     version_bytes = String(version_str).to_bytes() + bytes(
         s.uint64 * 4 - len(version_str))
     writer.write_bytes(version_bytes)
Пример #2
0
    def serialize(self, writer: serialization.BinaryWriter) -> None:
        """
        Serialize the object into a binary stream.

        Args:
            writer: instance.
        """
        writer.write_serializable_list(self.headers)
Пример #3
0
    def serialize(self, writer: serialization.BinaryWriter) -> None:
        """
        Serialize the object into a binary stream.

        Args:
            writer: instance.
        """
        writer.write_bytes(self._data)
Пример #4
0
    def serialize(self, writer: BinaryWriter) -> None:
        """
        Serialize the object into a binary stream.

        Args:
            writer: instance.
        """
        writer.write_var_string(json.dumps(self.to_json()).replace(' ', ''))
Пример #5
0
    def serialize(self, writer: serialization.BinaryWriter) -> None:
        """
        Serialize the object into a binary stream.

        Args:
            writer: instance.
        """
        writer.write_var_bytes(self.invocation_script)
        writer.write_var_bytes(self.verification_script)
Пример #6
0
    def serialize(self, writer: serialization.BinaryWriter) -> None:
        """
        Serialize the object into a binary stream.

        Args:
            writer: instance.
        """
        self.serialize_unsigned(writer)
        writer.write_serializable_list(self.witnesses)
Пример #7
0
    def serialize(self, writer: serialization.BinaryWriter) -> None:
        """
        Serialize the object into a binary stream.

        Args:
            writer: instance.
        """
        super(Header, self).serialize(writer)
        writer.write_uint8(0)
Пример #8
0
    def serialize_without_type(self,
                               writer: serialization.BinaryWriter) -> None:
        """
        Serialize the object into a binary stream without serializing the base class `type` property.

        Args:
            writer: instance.
        """
        writer.write_uint16(self.port)
Пример #9
0
    def serialize(self, writer: serialization.BinaryWriter) -> None:
        """
        Serialize the object into a binary stream.

        Args:
            writer: instance.
        """
        writer.write_uint8(self.type)
        self.serialize_without_type(writer)
Пример #10
0
    def serialize(self, writer: serialization.BinaryWriter) -> None:
        """
        Serialize the object into a binary stream.

        Args:
            writer: instance.
        """
        writer.write_var_int(self.primary_index)
        writer.write_uint64(self.nonce)
Пример #11
0
    def serialize(self, writer: serialization.BinaryWriter) -> None:
        """
        Serialize the object into a binary stream.

        Args:
            writer: instance.
        """
        writer.write_uint8(self.type)
        writer.write_uint8(self.view_number)
Пример #12
0
    def serialize(self, writer: serialization.BinaryWriter) -> None:
        """
        Serialize the object into a binary stream.

        Args:
            writer: instance.
        """
        writer.write_uint32(self.index_start)
        writer.write_uint16(self.count)
Пример #13
0
    def serialize(self, writer: serialization.BinaryWriter) -> None:
        """
        Serialize the object into a binary stream.

        Args:
            writer: instance.
        """
        writer.write_var_int(len(self.addresses))
        for address in self.addresses:
            address.serialize(writer)
Пример #14
0
    def serialize_unsigned(self, writer: serialization.BinaryWriter) -> None:
        """
        Serialize the object into a binary stream excluding the validation byte + witness.

        Args:
            writer: instance.
        """
        writer.write_uint32(self.version)
        writer.write_serializable(self.prev_hash)
        writer.write_uint32(self.block_index)
        writer.write_uint16(self.validator_index)
        writer.write_var_bytes(self.data)
Пример #15
0
    def serialize(self, writer: serialization.BinaryWriter) -> None:
        """
        Serialize the object into a binary stream.

        Args:
            writer: instance.
        """
        writer.write_serializable(self.account)
        writer.write_uint8(self.scope)

        if payloads.WitnessScope.CUSTOM_CONTRACTS in self.scope:
            writer.write_serializable_list(self.allowed_contracts)

        if payloads.WitnessScope.CUSTOM_GROUPS in self.scope:
            writer.write_serializable_list(self.allowed_groups)
Пример #16
0
    def serialize(self, writer: serialization.BinaryWriter) -> None:
        """
        Serialize the object into a binary stream.

        Args:
            writer: instance.
        """
        writer.write_var_bytes(self.filter)
        writer.write_uint8(self.K)
        writer.write_uint32(self.tweak)
Пример #17
0
    def serialize(self, writer: serialization.BinaryWriter) -> None:
        """
        Serialize the object into a binary stream.

        Args:
            writer: instance.
        """
        writer.write_uint32(self.current_height)
        writer.write_uint32(self.timestamp)
        writer.write_uint32(self.nonce)
Пример #18
0
    def serialize(self, writer: serialization.BinaryWriter) -> None:
        """
        Serialize the object into a binary stream.

        Args:
            writer: instance.
        """
        writer.write_uint8(self.type)
        writer.write_var_int(len(self.hashes))
        for h in self.hashes:  # type: types.UInt256
            writer.write_bytes(h.to_array())
Пример #19
0
    def serialize(self, writer: serialization.BinaryWriter) -> None:
        """
        Serialize the object into a binary stream.

        Args:
            writer: instance.
        """
        super(MerkleBlockPayload, self).serialize(writer)
        writer.write_var_int(self.content_count)
        writer.write_serializable_list(self.hashes)
        writer.write_var_bytes(self.flags)
Пример #20
0
    def serialize(self, writer: serialization.BinaryWriter) -> None:
        """
        Serialize the object into a binary stream.

        Args:
            writer: instance.
        """
        writer.write_uint32(self.timestamp)
        ip = IPAddress(self.ip).ipv6()
        writer.write_bytes(ip.packed)
        writer.write_serializable_list(self.capabilities)
Пример #21
0
    def serialize(self, writer: serialization.BinaryWriter) -> None:
        """
        Serialize the object into a binary stream.

        Args:
            writer: instance.
        """
        super(Block, self).serialize(writer)
        writer.write_var_int(len(self.transactions) + 1)
        writer.write_serializable(self.consensus_data)
        for tx in self.transactions:
            writer.write_serializable(tx)
Пример #22
0
    def serialize(self, writer: serialization.BinaryWriter) -> None:
        """
        Serialize the object into a binary stream.

        Args:
            writer: instance.
        """
        payload = self.payload.to_array()

        if len(
                self.payload
        ) > self.COMPRESSION_MIN_SIZE and MessageConfig.COMPRESSED not in self.config:
            compressed_data = lz4.block.compress(self.payload.to_array(),
                                                 store_size=False)
            if len(compressed_data) < len(
                    self.payload) - self.COMPRESSION_THRESHOLD:
                payload = compressed_data
                self.config |= MessageConfig.COMPRESSED

        writer.write_uint8(self.config)
        writer.write_uint8(self.type.value)
        writer.write_var_bytes(payload)
Пример #23
0
    def serialize(self, writer: serialization.BinaryWriter) -> None:
        """
        Serialize the object into a binary stream.

        Args:
            writer: instance.
        """
        writer.write_uint32(self.magic)
        writer.write_uint32(self.version)
        writer.write_uint32(self.timestamp)
        writer.write_uint32(self.nonce)
        writer.write_var_string(self.user_agent)
        writer.write_serializable_list(self.capabilities)
Пример #24
0
 def serialize(self, writer: serialization.BinaryWriter, compress=True):
     if self == self.curve.Infinity:
         writer.write_uint8(b'\x00')
     else:
         byt = self.encode_point(compressed=compress)
         writer.write_bytes(byt)
Пример #25
0
 def serialize_special(self, writer: serialization.BinaryWriter) -> None:
     self.serialize(writer)
     writer.write_uint8(self.vm_state)
     writer.write_uint32(self.block_height)
Пример #26
0
 def serialize_unsigned(self, writer: serialization.BinaryWriter) -> None:
     writer.write_uint8(self.version)
     writer.write_uint32(self.nonce)
     writer.write_serializable(self.sender)
     writer.write_int64(self.system_fee)
     writer.write_int64(self.network_fee)
     writer.write_uint32(self.valid_until_block)
     writer.write_serializable_list(self.attributes)
     writer.write_serializable_list(self.cosigners)
     writer.write_var_bytes(self.script)
Пример #27
0
 def serialize(self, writer: serialization.BinaryWriter) -> None:
     super(TrimmedBlock, self).serialize(writer)
     writer.write_serializable_list(self.hashes)
     if len(self.hashes) > 0:
         writer.write_serializable(self.consensus_data)
Пример #28
0
 def tokens_to_array(self):
     from boa3.neo3.core.serialization import BinaryWriter
     with BinaryWriter() as bw:
         bw.write_var_bytes(bytes())
         return bw._stream.getvalue()
Пример #29
0
    def serialize(self, writer: serialization.BinaryWriter) -> None:
        writer.write_uint32(self.magic)
        writer.write_bytes(self.compiler_with_version)

        writer.write_uint16(0)  # 2 reserved bytes
        writer.write_var_bytes(bytes())  # TODO: method tokens
        writer.write_uint16(0)  # 2 reserved bytes

        writer.write_var_bytes(self.script)
        writer.write_bytes(self.checksum)
Пример #30
0
 def serialize_unsigned(self, writer: serialization.BinaryWriter) -> None:
     writer.write_uint32(self.version)
     writer.write_serializable(self.prev_hash)
     writer.write_serializable(self.merkle_root)
     writer.write_uint64(self.timestamp)
     writer.write_uint32(self.index)
     writer.write_serializable(self.next_consensus)