Skip to content
Closed
Changes from all commits
Commits
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
8 changes: 4 additions & 4 deletions script/smoke/chain.py
Original file line number Diff line number Diff line change
Expand Up @@ -272,8 +272,8 @@ def _revert_bytes(exc: ContractLogicError) -> bytes | None:
def expect_abi_decode_failed(self, desc: str, fn, frm: ChecksumAddress) -> None:
"""Simulate `fn` via eth_call; assert Rust precompile AbiDecodeFailed revert shape.

Dispatch decode failures encode as `function_selector || utf8_error`, not a typed
custom error such as InvalidVariant().
Dispatch decode failures encode as a bare `function_selector` (no message; the error
string was dropped), not a typed custom error such as InvalidVariant().
"""
fn_selector = bytes(HexBytes(fn.selector))
try:
Expand Down Expand Up @@ -302,7 +302,7 @@ def _assert_abi_decode_revert(
if raw is None:
self._diagnose(f"expected ABI decode failure: {desc}", repro_fn, repro_overrides, repro_call)
die(f"expected ABI decode failure for {desc} but revert had no data")
if len(raw) <= 4:
if len(raw) < 4:
self._diagnose(f"expected ABI decode failure: {desc}", repro_fn, repro_overrides, repro_call)
die(f"expected ABI decode failure for {desc} but revert was only {len(raw)} byte(s): 0x{raw.hex()}")
if raw[:4] != fn_selector:
Expand All @@ -323,7 +323,7 @@ def expect_raw_abi_decode_failed(
value: int = 0,
frm: ChecksumAddress | None = None,
) -> None:
"""Assert hand-built calldata reverts with AbiDecodeFailed (selector || utf8)."""
"""Assert hand-built calldata reverts with AbiDecodeFailed (bare selector, no message)."""
if len(data) < 4:
die(f"expected ABI decode failure for {desc} but calldata is shorter than 4 bytes")
fn_selector = data[:4]
Expand Down
Loading