pysui.sui_move.module package

Submodules

pysui.sui_move.module.base_deserializers module

Move module byte code raw deserializer.

pysui.sui_move.module.base_deserializers.sig_walk(reader: ModuleReader) list

sig_walk Walks data for signatures.

Parameters:

reader (ModuleReader) – Byte stream reader

Raises:

NotImplementedError – If SignatureType not recognized

Returns:

Signature list. First is always SignatureType

Return type:

list

pysui.sui_move.module.base_deserializers.read_op_code(reader: ModuleReader) tuple[OpCode, list]

read_op_code Disassembles byte code instructions.

Parameters:

reader (ModuleReader) – Stream reader

Returns:

Tuple of OpCode followed by zero or more operands

Return type:

tuple[OpCode, list]

pysui.sui_move.module.base_deserializers.read_code_units(reader: ModuleReader) tuple[int, list[tuple[OpCode, list]]]

read_code_units Disassembles a functions byte code instructions.

Parameters:

reader (ModuleReader) – Stream reader

Returns:

Tuple of opcode count for function and list of instructions

Return type:

tuple[int, list[tuple[OpCode, list]]]

pysui.sui_move.module.base_deserializers.deserialize_signatures(table_header: TableHeader, reader: ModuleReader) list[Signature]

deserialize_signatures builds collection of Signatures from it’s table content.

Parameters:
Returns:

All Signatures found in Signature content

Return type:

list[Signature]

pysui.sui_move.module.base_deserializers.deserialize_identifiers(table_header: TableHeader, reader: ModuleReader) list[Identifier]

deserialize_identifiers builds collection of Identifiers from it’s table content.

Parameters:
Returns:

All Identifiers found in Identifier content

Return type:

list[Identifier]

pysui.sui_move.module.base_deserializers.deserialize_addresses(table_header: TableHeader, reader: ModuleReader) list[Address]

deserialize_addresses builds collection of Addresses from it’s table content.

Parameters:
Returns:

All Addresses found in Address content

Return type:

list[bcd.Address]

pysui.sui_move.module.base_deserializers.deserialize_constants(table_header: TableHeader, reader: ModuleReader) list[Constant]

deserialize_constants builds collection of Constants from it’s table content.

Parameters:
Returns:

All Constants found in Address content

Return type:

list[Constant]

pysui.sui_move.module.base_deserializers.deserialize_module_handles(table_header: TableHeader, reader: ModuleReader) list[ModuleHandle]

deserialize_module_handles builds collection of ModuleHandles from it’s table content.

Parameters:
Returns:

All ModuleHandles found in ModuleHandle content

Return type:

list[ModuleHandle]

pysui.sui_move.module.base_deserializers.deserialize_stuct_handles(table_header: TableHeader, reader: ModuleReader) list[StructHandle]

deserialize_stuct_handles builds collection of StructHandles from it’s table content.

Parameters:
Returns:

All StructHandles found in StructHandle content

Return type:

list[StructHandle]

pysui.sui_move.module.base_deserializers.deserialize_stuct_definition(table_header: TableHeader, reader: ModuleReader) list[StructDefinition]

deserialize_stuct_definition builds collection of StructDefinition from it’s table content.

Parameters:
Returns:

All StructDefinitions found in StructDefinition content

Return type:

list[StructDefinition]

pysui.sui_move.module.base_deserializers.deserialize_structure_instantiations(table_header: TableHeader, reader: ModuleReader) list[StructInstantiation]

deserialize_structure_instantiations builds collection of StructInstantiation from it’s table content.

Parameters:
Returns:

All StructInstantiation found in StructInstantiation content

Return type:

list[StructInstantiation]

pysui.sui_move.module.base_deserializers.deserialize_structure_field_handles(table_header: TableHeader, reader: ModuleReader) list[FieldHandle]

deserialize_structure_field_handles builds collection of FieldHandles from it’s table content.

Parameters:
Returns:

All FieldHandles found in FieldHandle content

Return type:

list[FieldHandle]

pysui.sui_move.module.base_deserializers.deserialize_structure_field_instantiations(table_header: TableHeader, reader: ModuleReader) list[FieldInstantiation]

deserialize_structure_field_instantiations builds collection of FieldInstantiations from it’s table content.

Parameters:
Returns:

All FieldInstantiations found in FieldInstantiation content

Return type:

list[FieldInstantiation]

pysui.sui_move.module.base_deserializers.deserialize_function_handles(table_header: TableHeader, reader: ModuleReader) list[FunctionHandle]

deserialize_function_handles builds collection of FunctionHandles from it’s table content.

Parameters:
Returns:

All FunctionHandles found in FunctionHandle content

Return type:

list[FunctionHandle]

pysui.sui_move.module.base_deserializers.deserialize_function_definition(table_header: TableHeader, reader: ModuleReader) list[FunctionDefinition]

deserialize_function_definition builds collection of FunctionDefinition types from it’s table content.

Parameters:
Returns:

All FunctionDefinitions found in StructDefinition content

Return type:

list[FunctionDefinition]

pysui.sui_move.module.base_deserializers.deserialize_function_instantiations(table_header: TableHeader, reader: ModuleReader) list[FunctionInstantiation]

_deserialize_module_handles builds collection of ModuleHandles from it’s table content.

Parameters:
Returns:

All FunctionInstantiations found in FunctionInstantiation content

Return type:

list[FunctionInstantiation]

pysui.sui_move.module.base_deserializers.deserialize_friends(table_header: TableHeader, reader: ModuleReader) list[Friend]

deserialize_friends builds collection of Friend from it’s table content.

Parameters:
Returns:

All Friends found in Friend content

Return type:

list[Friend]

pysui.sui_move.module.deserialize module

Move module byte code deserializer.

class pysui.sui_move.module.deserialize.Deserialize(value)

Bases: IntEnum

Deserialize degree of deserialization invariants.

MODULE_HANDLES = 1
MTS_HANDLES = 2
ALL = 3
class pysui.sui_move.module.deserialize.RawModuleContent(magic: str, version: int, module_self: int, signatures: list[~pysui.sui_move.model.bytecode_tables.Signature] = <factory>, identifiers: list[~pysui.sui_move.model.bytecode_tables.Identifier] = <factory>, addresses: list[~pysui.sui_move.model.bytecode_tables.Address] = <factory>, constants: list[~pysui.sui_move.model.bytecode_tables.Constant] = <factory>, module_handles: list[~pysui.sui_move.model.bytecode_tables.ModuleHandle] = <factory>, structure_handles: list[~pysui.sui_move.model.bytecode_tables.StructHandle] = <factory>, structure_definitions: list[~pysui.sui_move.model.bytecode_tables.StructDefinition] = <factory>, structure_instantiations: list[~pysui.sui_move.model.bytecode_tables.StructInstantiation] = <factory>, field_handles: list[~pysui.sui_move.model.bytecode_tables.FieldHandle] = <factory>, field_instantiations: list[~pysui.sui_move.model.bytecode_tables.FieldInstantiation] = <factory>, function_handles: list[~pysui.sui_move.model.bytecode_tables.FunctionHandle] = <factory>, function_definitions: list[~pysui.sui_move.model.bytecode_tables.FunctionDefinition] = <factory>, function_instantiations: list[~pysui.sui_move.model.bytecode_tables.FunctionInstantiation] = <factory>, friends: list[~pysui.sui_move.model.bytecode_tables.Friend] = <factory>)

Bases: object

RawModuleContent contains table collections in raw form.

For each table type, the collection of types have immediate data or indexes in to other content table collections.

Variables:
  • magic (type) – Contains the Move magic signature at beginning of byte code

  • magic – str

  • version (type) – The compiler version

  • version – int

  • module_self (type) – ModuleHandle index for self (i.e. the module itself)

  • module_self – int

  • signatures (type) – List of Signatures or empty list if none found

  • signatures – list[Signature]

  • identifiers (type) – List of Identifiers or empty list if none found

  • identifiers – list[Identifier]

  • addresses (type) – List of Addresses or empty list if none found

  • addresses – list[Address]

  • constants (type) – List of Constants or empty list if none found

  • constants – list[Constant]

  • module_handles (type) – List of ModuleHandle or empty list if none found

  • module_handles – list[ModuleHandle]

  • structure_handles (type) – List of StructHandles or empty list if none found

  • structure_handles – list[StructHandle]

  • structure_definitions (type) – List of StructDefinitions or empty list if none found

  • structure_definitions – list[StructDefinition]

  • structure_instantiations (type) – List of StructInstantiations or empty list if none found

  • structure_instantiations – list[StructInstantiation]

  • field_handles (type) – List of FieldHandles or empty list if none found

  • field_handles – list[FieldHandle]

  • field_instantiations (type) – List of FieldInstantiations or empty list if none found

  • field_instantiations – list[FieldInstantiation]

  • function_handles (type) – List of FunctionHandles or empty list if none found

  • function_handles – list[FunctionHandle]

  • function_definitions (type) – List of FunctionDefinition or empty list if none found

  • function_definitions – list[FunctionDefinition]

  • function_instantiations (type) – List of FunctionInstantiation or empty list if none found

  • function_instantiations – list[FunctionInstantiation]

  • friends (type) – List of Friends or empty list if none found

  • friends – list[Friend]

magic: str
version: int
module_self: int
signatures: list[Signature]
identifiers: list[Identifier]
addresses: list[Address]
constants: list[Constant]
module_handles: list[ModuleHandle]
structure_handles: list[StructHandle]
structure_definitions: list[StructDefinition]
structure_instantiations: list[StructInstantiation]
field_handles: list[FieldHandle]
field_instantiations: list[FieldInstantiation]
function_handles: list[FunctionHandle]
function_definitions: list[FunctionDefinition]
function_instantiations: list[FunctionInstantiation]
friends: list[Friend]
__init__(magic: str, version: int, module_self: int, signatures: list[~pysui.sui_move.model.bytecode_tables.Signature] = <factory>, identifiers: list[~pysui.sui_move.model.bytecode_tables.Identifier] = <factory>, addresses: list[~pysui.sui_move.model.bytecode_tables.Address] = <factory>, constants: list[~pysui.sui_move.model.bytecode_tables.Constant] = <factory>, module_handles: list[~pysui.sui_move.model.bytecode_tables.ModuleHandle] = <factory>, structure_handles: list[~pysui.sui_move.model.bytecode_tables.StructHandle] = <factory>, structure_definitions: list[~pysui.sui_move.model.bytecode_tables.StructDefinition] = <factory>, structure_instantiations: list[~pysui.sui_move.model.bytecode_tables.StructInstantiation] = <factory>, field_handles: list[~pysui.sui_move.model.bytecode_tables.FieldHandle] = <factory>, field_instantiations: list[~pysui.sui_move.model.bytecode_tables.FieldInstantiation] = <factory>, function_handles: list[~pysui.sui_move.model.bytecode_tables.FunctionHandle] = <factory>, function_definitions: list[~pysui.sui_move.model.bytecode_tables.FunctionDefinition] = <factory>, function_instantiations: list[~pysui.sui_move.model.bytecode_tables.FunctionInstantiation] = <factory>, friends: list[~pysui.sui_move.model.bytecode_tables.Friend] = <factory>) None
pysui.sui_move.module.deserialize.deserialize(reader: ModuleReader, form: Deserialize) RawModuleContent | Exception

deserialize decomposes a move compiled module file into constituent table parts.

Parameters:
Raises:

ValueError – If there is no module_handles in the move file

Returns:

Itemized table layout

Return type:

Union[RawModuleContent, Exception]

pysui.sui_move.module.deserialize.reader_from_file(module: str) ModuleReader | Exception

reader_from_file Returns a module reader for module.

Parameters:

module (str) – Full qualified module path

Returns:

Instance of the module reader

Return type:

Union[ModuleReader,Exception]

pysui.sui_move.module.deserialize.from_file(module: str, form: Deserialize = Deserialize.ALL) RawModuleContent | Exception

from_file Deserialize the content of a module from file system.

Parameters:
  • module (str) – The sui module file path

  • form (Deserialize, optional) – Defines how many tables to walk from module, defaults to Deserialize.ALL

Returns:

Container of deserialized tables

Return type:

Union[RawModuleContent, Exception]

pysui.sui_move.module.deserialize.from_base64(in_base64: str, form: Deserialize = Deserialize.ALL) RawModuleContent | Exception

from_base64 Deserialize the content of a module base64 representation.

Parameters:
  • in_base64 (str) – The sui module base64 string

  • form (Deserialize, optional) – Defines how many tables to walk from module, defaults to Deserialize.ALL

Returns:

Container of deserialized tables

Return type:

Union[RawModuleContent, Exception]

Module contents

Module package.