Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
91c9035
draft - memory fuzzer for venom
charles-cooper Jun 8, 2025
ebdac4d
improvements / tuning
charles-cooper Jun 8, 2025
2c5871b
remove dead code
charles-cooper Jun 8, 2025
fdea055
add some cleanup
charles-cooper Jun 8, 2025
49ecb06
lint
charles-cooper Jun 8, 2025
2791a82
polishing, refactoring
charles-cooper Jun 8, 2025
193c5d4
make things compile
charles-cooper Jun 8, 2025
d42ed64
add evm harness
charles-cooper Jun 8, 2025
50feb1c
cleanup, add proper deploy code
charles-cooper Jun 8, 2025
554d34e
lint
charles-cooper Jun 8, 2025
3c700c5
debug, analysis for available vars
charles-cooper Jun 8, 2025
1b52d0a
fix weakref bug
charles-cooper Jun 8, 2025
0ff2b9b
fix assumption in venom_to_assembly: entry block has no predecessors
charles-cooper Jun 8, 2025
a67d12d
allocate variables after the fact, rather than finding available
charles-cooper Jun 8, 2025
798055b
lint
charles-cooper Jun 8, 2025
69383a8
fix variable allocation
charles-cooper Jun 9, 2025
f6b9bdd
simplify symbolic vars
charles-cooper Jun 9, 2025
dd8f365
update back edge logic
charles-cooper Jun 9, 2025
65a9a12
Merge branch 'master' into tests/venom/memory-fuzzer
charles-cooper Jun 26, 2025
27a09ca
add cfg normalization pass
charles-cooper Jun 26, 2025
cfa0d1d
add debug
charles-cooper Jun 26, 2025
215efd1
update variable definitions
charles-cooper Jun 26, 2025
6c08d3b
fix[venom]: fix last_variable in function copy
charles-cooper Jun 26, 2025
351c58e
wip - rework variable allocation
charles-cooper Jun 26, 2025
fd322de
some polishing
charles-cooper Jun 26, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions tests/evm_backends/base_env.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ def deploy(self, abi: list[dict], bytecode: bytes, value=0, *args, **kwargs):
ctor = ABIFunction(ctor_abi, contract_name=factory._name)
initcode += ctor.prepare_calldata(*args, **kwargs)

deployed_at = self._deploy(initcode, value)
deployed_at = self._deploy(initcode, value=value)
address = to_checksum_address(deployed_at)
return factory.at(self, address)

Expand Down Expand Up @@ -184,7 +184,7 @@ def get_excess_blob_gas(self) -> Optional[int]:
def set_excess_blob_gas(self, param):
raise NotImplementedError # must be implemented by subclasses

def _deploy(self, code: bytes, value: int, gas: int | None = None) -> str:
def _deploy(self, code: bytes, value: int = 0, gas: int | None = None) -> str:
raise NotImplementedError # must be implemented by subclasses

@staticmethod
Expand Down
2 changes: 1 addition & 1 deletion tests/evm_backends/pyevm_env.py
Original file line number Diff line number Diff line change
Expand Up @@ -189,7 +189,7 @@ def get_excess_blob_gas(self) -> Optional[int]:
def set_excess_blob_gas(self, param):
self._context._excess_blob_gas = param

def _deploy(self, code: bytes, value: int, gas: int = None) -> str:
def _deploy(self, code: bytes, value: int = 0, gas: int = None) -> str:
sender = _addr(self.deployer)
target_address = self._generate_contract_address(sender)

Expand Down
2 changes: 1 addition & 1 deletion tests/evm_backends/revm_env.py
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ def get_blob_gasprice(self) -> Optional[int]:
def set_excess_blob_gas(self, value):
self._evm.env.block.excess_blob_gas = value

def _deploy(self, code: bytes, value: int, gas: int = None) -> str:
def _deploy(self, code: bytes, value: int = 0, gas: int = None) -> str:
try:
return self._evm.deploy(self.deployer, code, value, gas)
except RuntimeError as e:
Expand Down
Loading
Loading