Skip to content

backport(smoke): AbiDecodeFailed reverts now carry a bare selector, no message - #228

Closed
rayyan224 wants to merge 1 commit into
releases/v1.0.xfrom
backport/v1.0.x-abidecodefailed
Closed

rayyan224 wants to merge 1 commit into
releases/v1.0.xfrom
backport/v1.0.x-abidecodefailed

Conversation

@rayyan224

Copy link
Copy Markdown
Collaborator

Summary

Partial backport of #226 to releases/v1.0.x.

AbiDecodeFailed reverts now carry a bare function selector with no message. Relaxed chain.py's length check (and docs) from requiring > 4 bytes to >= 4 bytes so the factory and invariants journeys don't fail on this expected shape change when run against a current chain. The selector-match check (which verifies the error type) is unchanged.

The other half of #226 (removing the stale _BURN_BLOCKED_FRAGMENT workaround in stablecoin_lifecycle.py) does not apply to this branch: that workaround was added after v1.0.x was cut, so v1.0.x's stablecoin_lifecycle.py already calls tok.functions.burnBlocked(...) directly and has nothing to fix.

Test plan

…sage

Backport of the chain.py portion of #226/#227 to v1.0.x. AbiDecodeFailed
reverts carry a bare function selector with no message now, so the
harness's length check (and docs) is relaxed from requiring > 4 bytes to
>= 4 bytes. The stablecoin burnBlocked ABI-fragment fix from #226 doesn't
apply here: that workaround was added after v1.0.x branched, so this line
never carried it.

Co-Authored-By: Claude <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

Interface Coverage

✅ All interface functions have test coverage.

@github-actions

Copy link
Copy Markdown

📊 Forge Coverage (src/lib/)

🟡 ≥95% across all metrics — some metrics below 99%.

File Lines Stmts Branches Funcs
🟢 B20FactoryLib.sol 100.00% 100.00% 100.00% 100.00%
🔴 test/lib/ForceFeeder.sol 0.00% 0.00% 100.00% 0.00%
🔴 test/lib/PrecompileProbe.sol 0.00% 0.00% 0.00% 0.00%
🟢 MockActivationRegistry.sol 100.00% 100.00% 100.00% 100.00%
🟢 MockActivationRegistryStorage.sol 100.00% 100.00% 100.00% 100.00%
🟢 MockB20.sol 100.00% 100.00% 100.00% 100.00%
🟢 MockB20Asset.sol 100.00% 100.00% 100.00% 100.00%
🟡 MockB20Factory.sol 98.96% 99.10% 100.00% 100.00%
🟢 MockB20Stablecoin.sol 100.00% 100.00% 100.00% 100.00%
🟢 MockB20Storage.sol 100.00% 100.00% 100.00% 100.00%
🟢 MockPolicyRegistry.sol 100.00% 100.00% 100.00% 100.00%
🟢 MockPolicyRegistryStorage.sol 100.00% 100.00% 100.00% 100.00%
Total 96.69% 97.23% 98.39% 96.89%

Full report: download artifact. To browse locally: make coverage (runs forge coverage + genhtml + opens the HTML report).

@rayyan224 rayyan224 closed this Sep 17, 2026
@github-actions

Copy link
Copy Markdown

✅ Fork tests: all 616 passed

base/base is fully in sync with the base-std spec.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant