ethpector.assembly package

Submodules

ethpector.assembly.analysis module

class ethpector.assembly.analysis.AssemblyAnalyzer(code, online_resolver, config)[source]

Bases: object

annotate_constants(constants)[source]
get_basic_blocks() <ethpector.data.datatypes.ToJsonDecorator object at 0x7f8ff35d2f70>[source]
get_bytecode_matches() list[ethpector.classify.classification.KnownBytecode][source]
get_calls()[source]
get_code_hash()[source]
get_constants()[source]
get_function_entrypoints()[source]
get_interface_matches(threshold=0.5) list[ethpector.classify.classification.InterfaceMatch][source]
get_known_contracts(address) list[ethpector.classify.classification.KnownAddress][source]
get_program() Program[source]
get_storage_reads()[source]
get_storage_writes()[source]
get_summary() AssemblySummary[source]

ethpector.assembly.flow module

class ethpector.assembly.flow.EvmState[source]

Bases: object

advance() set[object][source]
execute(threshold=1000000)[source]
ident() str[source]
class ethpector.assembly.flow.ReachDef(height)[source]

Bases: object

len()[source]
reaches: list
class ethpector.assembly.flow.ReachingDefState(p: ~ethpector.assembly.program.Program, bb: <ethpector.data.datatypes.ToJsonDecorator object at 0x7f8ff39960d0>, stack: ~ethpector.assembly.flow.Stack = [])[source]

Bases: EvmState

advance() set[ethpector.assembly.flow.EvmState][source]
get_target_basic_block(jump_pc, push_pc)[source]
ident()[source]
update_block_reachings()[source]
update_instruction_reachings(inst, pcs)[source]
class ethpector.assembly.flow.Stack[source]

Bases: object

clear()[source]
dup(n)[source]
len()[source]
list()[source]
peek()[source]
peekn(n)[source]
pop()[source]
popn(n)[source]
push(v)[source]
swap(n)[source]

ethpector.assembly.metadata module

class ethpector.assembly.metadata.BinaryMetadata(code)[source]

Bases: object

bytes()[source]
code_without_metadata()[source]
static extract_metadata(code)[source]
static is_metadata_url(url)[source]
meta_obj()[source]
offset()[source]
solidity_version()[source]
url()[source]

ethpector.assembly.program module

class ethpector.assembly.program.Program(hex_code, strip_metadata=False)[source]

Bases: object

get_basic_block_by_index(index)[source]
get_basic_block_by_pc(pc)[source]
get_basic_blocks() dict[source]
get_bytecode_to_analyze() str[source]
get_calls()[source]
get_code_hash() str[source]
get_constants()[source]
get_full_bytecode() str[source]
get_instruction_by_pc(pc)[source]
get_instructions() list[<ethpector.data.datatypes.ToJsonDecorator object at 0x7f8ff3996070>][source]
get_jump_positions() set[int][source]
get_jump_targets() dict[source]
get_jumpdest_positions() set[int][source]
get_metadata_annotation() MetaDataString[source]
get_reachable_pcs()[source]
get_storage_reads()[source]
get_storage_writes()[source]
mark_reachable(pc)[source]

Module contents