Skip to content

backport(smoke): update AbiDecodeFailed shape and drop stale burnBlocked ABI fragment - #227

Merged
rayyan224 merged 1 commit into
releases/v1.1.xfrom
backport/v1.1.x-smoke-fixes
Sep 17, 2026
Merged

rayyan224 merged 1 commit into
releases/v1.1.xfrom
backport/v1.1.x-smoke-fixes

Conversation

@rayyan224

Copy link
Copy Markdown
Collaborator

Summary

Backport of #226 onto releases/v1.1.x (Cobalt / v1.1.0).

  • 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 stop failing on this expected shape change. The selector-match check (which actually verifies the error type) is unchanged.
  • Removed the stale _BURN_BLOCKED_FRAGMENT / _burn_blocked_at workaround in stablecoin_lifecycle.py. It duplicated an ABI entry that PR refactor(b20): seizeWithMemo returns void; keep deprecated burnBlocked in IB20 #193 restored to IB20, which a stricter web3.py now raises as a colliding-selector Web3ValueError on contract construction. Both call sites now bind through the normal tok contract object.

Cherry-picked cleanly from 0b28c64 (no conflicts).

Test plan

  • PYTHONPATH=script python -m smoke factory -k — passes
  • PYTHONPATH=script python -m smoke invariants -k — passes
  • PYTHONPATH=script python -m smoke stablecoin -k — passes
  • make smoke KEEP_GOING=1 (full suite) — 7 passed, 0 failed, 0 skipped

@github-actions

Copy link
Copy Markdown

Interface Coverage

✅ All interface functions have test coverage.

@github-actions

github-actions Bot commented Sep 17, 2026 •

Copy link
Copy Markdown

📊 Forge Coverage (src/lib/)

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

File Lines Stmts Branches Funcs
🟡 B20FactoryLib.sol 97.70% 98.00% 100.00% 95.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% 99.54% 97.67% 100.00%
🟢 MockPolicyRegistryStorage.sol 100.00% 100.00% 100.00% 100.00%
Total 97.07% 97.52% 98.16% 97.00%

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

@github-actions

Copy link
Copy Markdown

✅ Fork tests: all 725 passed

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

…BI fragment (#226)

AbiDecodeFailed reverts now carry a bare function selector with no message,
so the harness's length check and docs were tightened to match. Separately,
PR #193 restored burnBlocked to the IB20 interface after #186 removed it, so
the stablecoin journey's hand-built ABI fragment for it now collides with
the real entry under a stricter web3.py ABI validator; call it directly
through the normal token binding instead.

Co-authored-by: Claude <noreply@anthropic.com>
(cherry picked from commit f39eea1)
@rayyan224
rayyan224 merged commit 968e1b5 into releases/v1.1.x Sep 17, 2026
7 checks passed
@rayyan224
rayyan224 deleted the backport/v1.1.x-smoke-fixes branch September 17, 2026 15:14
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.

2 participants