Skip to content

test(smoke): pin composite policyType → IncompatiblePolicyType at the precompile boundary (BOP-476) - #184

Open
robriks wants to merge 1 commit into
mainfrom
markusosterlund/bop-476-smoke-composite-policytype
Open

test(smoke): pin composite policyType → IncompatiblePolicyType at the precompile boundary (BOP-476)#184
robriks wants to merge 1 commit into
mainfrom
markusosterlund/bop-476-smoke-composite-policytype

Conversation

@robriks

@robriks robriks commented Jul 30, 2026

Copy link
Copy Markdown
Collaborator

Summary

Adds a raw-calldata precompile-invariants probe that pins the composite-policyType revert behavior of the two simple-policy constructors against the live Rust precompile:

  • createPolicy(admin, UNION|INTERSECT) → reverts IncompatiblePolicyType
  • createPolicyWithAccounts(admin, UNION|INTERSECT, []) → reverts IncompatiblePolicyType

At Cobalt the PolicyType enum widened to 4 variants, so discriminant 2/3 now decodes and reaches the logic layer — which must reject it with the typed IncompatiblePolicyType error (not an ABI-decode failure or Panic(0x21)). Composites are minted only via createCompositePolicy.

The probe sends both constructors' calldata via raw eth_call and matches the IncompatiblePolicyType selector (expect_raw_revert(..., error_name="IncompatiblePolicyType")), so the behavior is pinned against published binaries, independent of the forge/mock unit suite. It complements #178's composite-write payable/value coverage.

Context / coordination

This is the smoke half of BOP-476's fork+smoke coverage requirement. It pairs with:

The probe only asserts the new behavior; it will pass against a Cobalt binary that carries #4210 and (correctly) fail against one that still returns Panic(0x21). It does not run in base-std forge CI (ci.yml is forge/mocks); it executes via the smoke suite (make smoke-invariants) and base-anvil's smoke workflow against published binaries.

Test plan

  • script/smoke/journeys/precompile_invariants.py parses; diff vs main is additive only.
  • Verified against the real POLICY_ABI that _clean encodes both constructors for UNION+INTERSECT with the correct 4-byte selectors, and that IncompatiblePolicyType() resolves in ERROR_BY_SELECTOR (the map expect_raw_revert matches against).
  • make smoke-invariants green against a Cobalt base-anvil binary built with base/base #4210 (run in lockstep once #4210 is on a Cobalt build).

Made with Cursor

…e precompile boundary (BOP-476)

Add a raw-calldata precompile-invariants probe asserting createPolicy and
createPolicyWithAccounts revert IncompatiblePolicyType for a composite
policyType (UNION/INTERSECT). At Cobalt the PolicyType enum widened to 4
variants, so discriminant 2/3 now decodes and reaches the logic, which must
reject it with the typed error rather than a decode failure or Panic; the
simple-policy constructors mint only BLOCKLIST/ALLOWLIST (composites go
through createCompositePolicy).

Sends the two constructors' calldata via raw eth_call against the live Rust
precompile and matches the IncompatiblePolicyType selector, so the behavior
is pinned against published binaries independent of the forge/mock unit
suite. Complements #178's composite-write payable/value coverage; pairs with
base/base #4210 (V2 fix) and base-std #176 (mock guard + fork tests).

Co-authored-by: Cursor <cursoragent@cursor.com>
@linear

linear Bot commented Jul 30, 2026

Copy link
Copy Markdown

BOP-476

@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 95.40% 96.00% 100.00% 90.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.74% 97.34% 98.68% 96.46%

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

@robriks robriks self-assigned this Jul 30, 2026
@github-actions

Copy link
Copy Markdown

⚠️ Fork tests: 78 failed, 671 passed

These failures indicate divergences where base/base needs to catch up to the base-std spec. This check is advisory and does not block merging.

Failing tests
  • test_burnBlockedWithMemo_revertOrder_blocked_beats_balance(address): Error != expected error: custom error 0x6f872692 != AccountNotBlocked(0x2f30804c90d697Ba774BE4687dF41cB74Fa88d9d); counterexample: calldata=0x2cf250e80000000000000000000000002f30804c90d697ba774be4687df41cb74fa88d9d args=[0x2f30804c90d697Ba774BE4687dF41cB74Fa88d9d]
  • test_burnBlockedWithMemo_revertOrder_pause_beats_blocked(address): custom error 0xa290249c: type check failed for "(uint8[])" with data: 0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000003; counterexample: calldata=0x26d4898600000000000000000000000059d31d680744232f10b40708e0ebae508f4aa9bc args=[0x59d31D680744232f10B40708E0EBAE508f4Aa9Bc]
  • test_burnBlockedWithMemo_revertOrder_pause_beats_role(address,address): custom error 0xa290249c: type check failed for "(uint8[])" with data: 0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000003; counterexample: calldata=0x53c0e66c0000000000000000000000002a4aca6955726455f538b05224eecfac013029f0000000000000000000000000a0de6a40467acd467cec2b43a2a07ad1ca088194 args=[0x2a4ACA6955726455F538b05224eecFaC013029f0, 0xa0De6A40467ACD467CeC2B43A2A07AD1cA088194]
  • test_burnBlockedWithMemo_revertOrder_role_beats_blocked(address,address): Error != expected error: custom error 0x6f872692 != AccessControlUnauthorizedAccount(0xE9bbD76D81747A1948D2096a4e3A26aBdA2876E4, 0x7408fdc0d31c7bcb349eab611f5d1168acd4303574993f8cdc98b1cd18c41cae); counterexample: calldata=0xbd3f8b6b000000000000000000000000e9bbd76d81747a1948d2096a4e3a26abda2876e4000000000000000000000000315a118eff156f2c073776e7b1fa111cfe244ecd args=[0xE9bbD76D81747A1948D2096a4e3A26aBdA2876E4, 0x315A118EfF156f2C073776E7b1fA111CfE244ecD]
  • test_burnBlockedWithMemo_revert_accountNotBlocked(address,uint256): Error != expected error: custom error 0x6f872692 != AccountNotBlocked(0x72874466a72a56653DE5A3d1395F4467Fc9ab5B5); counterexample: calldata=0xf0e9ee6a00000000000000000000000072874466a72a56653de5a3d1395f4467fc9ab5b50000000056428a75f7fb44d458568fa730874e03794335daae75471b43caecd4 args=[0x72874466a72a56653DE5A3d1395F4467Fc9ab5B5, 9084230406643217890078679267939182343117930197263849534383498915028 [9.084e66]]
  • test_burnBlockedWithMemo_revert_insufficientBalance(address,uint256): Error != expected error: custom error 0x6f872692 != InsufficientBalance(0xC57a5A0298cE248bcbE80fFc56218adA4d40446c, 0, 1023634807376701421324152193562261670303800590580242 [1.023e51]); counterexample: calldata=0xeb275e77000000000000000000000000c57a5a0298ce248bcbe80ffc56218ada4d40446c0000000000000000000002bc663c4680eeb15012b3575531501a3558daffba12 args=[0xC57a5A0298cE248bcbE80fFc56218adA4d40446c, 1023634807376701421324152193562261670303800590580242 [1.023e51]]
  • test_burnBlockedWithMemo_revert_unauthorized(address,address,uint256): Error != expected error: custom error 0x6f872692 != AccessControlUnauthorizedAccount(0x000000000000000000000000000000000000098E, 0x7408fdc0d31c7bcb349eab611f5d1168acd4303574993f8cdc98b1cd18c41cae); counterexample: calldata=0xb8e4c85b000000000000000000000000000000000000000000000000000000000000098e0000000000000000000000000000000000000000000000000000000000002b7235827975a06ca0e9367ea3129b19441d45d0ca58e30b7693f09e73d0943d6200 args=[0x000000000000000000000000000000000000098E, 0x0000000000000000000000000000000000002B72, 24203109375850684125479958527447627702129936018301371311106264921787101700608 [2.42e76]]
  • test_burnBlockedWithMemo_revert_whenSeizePaused(address,uint256): custom error 0xa290249c: type check failed for "(uint8[])" with data: 0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000003; counterexample: calldata=0xfce2f39a000000000000000000000000300f119b396ec771fefd0b49af03a87a222c6521000000000000000000000000000000000000000000000052359149b0e6d26adf args=[0x300F119b396EC771FEFD0b49AF03a87A222c6521, 1516492961423952079583 [1.516e21]]
  • test_burnBlockedWithMemo_success_debitsAndDecreasesSupply(address,uint256): custom error 0x6f872692; counterexample: calldata=0x189a0bed00000000000000000000000000000000000000000000000000000000000026d800000000000000000000000000000000000000000000000000000000000025ad args=[0x00000000000000000000000000000000000026d8, 9645]
  • test_burnBlockedWithMemo_success_emitsTransferBurnedBlockedAndMemo(address,uint256,bytes32): log != expected log; counterexample: calldata=0x25c74b3700000000000000000000000002e5fffbf2de068767ab23d9aa0934ace13a33ef0000000000000000000000000000000000000001ef72ae0c49e7c5d0a8618979326a01736d67155d82abf8d5f1a386e4f53e89e0ef5d4c4712711b92c43c99c5 args=[0x02e5ffFBf2De068767AB23D9aA0934acE13A33ef, 153333719323456267531822664057 [1.533e29], 0x326a01736d67155d82abf8d5f1a386e4f53e89e0ef5d4c4712711b92c43c99c5]
  • test_burnBlocked_revertOrder_pause_beats_balance(address,uint256): custom error 0xa290249c: type check failed for "(uint8[])" with data: 0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000003; counterexample: calldata=0xca82fe43000000000000000000000000279257ffc7b436b4ce451a88c8d1679580788dff000000000000000000c2e1e8449eed953931c7c708914a960cf11b642725d827 args=[0x279257FFC7b436b4Ce451a88c8D1679580788DfF, 18666030387444609732412407982321284891121004815225051175 [1.866e55]]
  • test_burnBlocked_revertOrder_pause_beats_blocked(address,uint256): custom error 0xa290249c: type check failed for "(uint8[])" with data: 0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000003; counterexample: calldata=0x4c29bb1300000000000000000000000008f99c7c5a3ee3586107aa94e6cc36953561479f00000000000000000000000000000009d37b77b1d95557c79b417fdc15de367c args=[0x08F99c7C5a3Ee3586107Aa94E6Cc36953561479f, 3343649489610052224078824778686806242940 [3.343e39]]
  • test_burnBlocked_revertOrder_pause_beats_role(address,address,uint256): custom error 0xa290249c: type check failed for "(uint8[])" with data: 0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000003; counterexample: calldata=0x022471a5000000000000000000000000e1a14c29bd1c79887ddaae1aa990b9661423fc1000000000000000000000000016cea9e8f9dcead20422ecadc18f937415cddd9e00000000000000000000000000007d0e14890112a0298427527b89bc71d6150d args=[0xE1a14C29bD1C79887dDAaE1aa990b9661423fC10, 0x16ceA9e8F9DCEaD20422ecadc18f937415CdDD9e, 10893826990533267371225834057304496944846093 [1.089e43]]
  • test_burnBlocked_revert_insufficientBalance(address,uint256): Error != expected error: AccountNotBlocked(0xA9496710794a54018B3a2318F01307aB15b2967D) != InsufficientBalance(0xA9496710794a54018B3a2318F01307aB15b2967D, 0, 6867372941568652867035031714 [6.867e27]); counterexample: calldata=0x15f3e92c000000000000000000000000a9496710794a54018b3a2318f01307ab15b2967d000000000000000000000000000000000000000016308ec9203762e08a3568a2 args=[0xA9496710794a54018B3a2318F01307aB15b2967D, 6867372941568652867035031714 [6.867e27]]
  • test_burnBlocked_revert_whenSeizePaused(address,uint256): custom error 0xa290249c: type check failed for "(uint8[])" with data: 0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000003; counterexample: calldata=0xf55efb32000000000000000000000000c773b5d62c3f4af1ecf6ef80ff12ebe4e32e430a000000002cac210a2bd83ca540d298ffa9846a0d3ffbe1973668e46990b63a83 args=[0xc773B5d62c3F4af1Ecf6ef80Ff12EbE4e32e430A, 4704550622182874287167369906333801554206764766032272342075934390915 [4.704e66]]
  • test_burnBlocked_success_debitsTarget(address,uint256): AccountNotBlocked(0x000000000000000000000000000000000000013A); counterexample: calldata=0x485c308e000000000000000000000000000000000000000000000000000000000000013a000000000000000000000000000000000000000000000000000000000000312e args=[0x000000000000000000000000000000000000013A, 12590 [1.259e4]]
  • test_burnBlocked_success_decreasesTotalSupply(address,uint256): AccountNotBlocked(0x6afC3BCf3705785E24fe7a485f3845A8B04eC119); counterexample: calldata=0x8bb754f20000000000000000000000006afc3bcf3705785e24fe7a485f3845a8b04ec1190000000000000000000000000000000000000000000000000000000000000003 args=[0x6afC3BCf3705785E24fe7a485f3845A8B04eC119, 3]
  • test_burnBlocked_success_emitsTransferAndBurnedBlocked(address,uint256): log != expected log; counterexample: calldata=0x89de84f8000000000000000000000000f716419fc238aa0f9e57af78974f15fed0626c150000000000000000000000000000000000000000000000000000000000000014 args=[0xF716419fC238Aa0F9e57aF78974F15FED0626C15, 20]
  • test_compositePolicyChildIds_success_emptyForMalformedId(uint64): custom error 0x7c40df74; counterexample: calldata=0x1ae49a5d0000000000000000000000000000000000000000000000000000000000000005 args=[5]
  • test_compositePolicyChildIds_success_emptyForUncreated(uint64): custom error 0x7c40df74; counterexample: calldata=0x26541667000000000000000000000000000000000000000000000000000000014835c95d args=[5506451805 [5.506e9]]
  • test_transferFromSeizableWithMemo_revertOrder_blocked_beats_balance(address,address): Error != expected error: custom error 0x5dd87dfc != AccountNotBlocked(0xa96F92C2816064cA0e2d8FE5614246519330d189); counterexample: calldata=0xa308af88000000000000000000000000a96f92c2816064ca0e2d8fe5614246519330d189000000000000000000000000855deb8a5ce403bebc1dcdfbc8cd62a60c3d0a89 args=[0xa96F92C2816064cA0e2d8FE5614246519330d189, 0x855Deb8A5cE403bEBC1dCdFbC8cd62A60c3D0A89]
  • test_transferFromSeizableWithMemo_revertOrder_pause_beats_blocked(address,address): custom error 0xa290249c: type check failed for "(uint8[])" with data: 0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000003; counterexample: calldata=0x99aeda8c0000000000000000000000007c5e690038dc8e501bb6e244a756997050e49c9c000000000000000000000000222a2fbc4ed3e0142b4505d12db41bbcb9d4d8b2 args=[0x7C5E690038Dc8E501Bb6E244A756997050E49C9c, 0x222a2FbC4Ed3e0142b4505d12db41BbCb9D4d8B2]
  • test_transferFromSeizableWithMemo_revertOrder_pause_beats_role(address,address,address): custom error 0xa290249c: type check failed for "(uint8[])" with data: 0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000003; counterexample: calldata=0xcc85f1530000000000000000000000003c13910a89c45716cefc06c9672075223394d532000000000000000000000000b4cf98cfcb5181f0756b90959c2caa111cc3a356000000000000000000000000660392c0a150c5877ba29333f8b4ab19a411a728 args=[0x3c13910A89C45716cEfC06c9672075223394D532, 0xb4cf98cFcb5181F0756b90959c2caa111Cc3A356, 0x660392C0A150c5877ba29333F8b4AB19A411a728]
  • test_transferFromSeizableWithMemo_revertOrder_role_beats_zeroActors(address,address): Error != expected error: custom error 0x5dd87dfc != AccessControlUnauthorizedAccount(0x7931333374Ffc0903556bd8a7EfA6116869c1325, 0x466d0fa97b99b3315998c229880e8a3a6aa5f5586b46f762a35e210facb4ea63); counterexample: calldata=0x9797d0e20000000000000000000000007931333374ffc0903556bd8a7efa6116869c132500000000000000000000000090538372d1c3dc3b3b7eeac35a6e0e458b1c1c9f args=[0x7931333374Ffc0903556bd8a7EfA6116869c1325, 0x90538372D1c3DC3B3b7EeAC35a6e0E458b1c1c9F]
  • test_transferFromSeizableWithMemo_revertOrder_zeroActors_beats_blocked(address): Error != expected error: custom error 0x5dd87dfc != InvalidReceiver(0x0000000000000000000000000000000000000000); counterexample: calldata=0x289bd19b000000000000000000000000cb00000000000000000000000000000000000000 args=[0xCB00000000000000000000000000000000000000]
  • test_transferFromSeizableWithMemo_revert_accountNotBlocked(address,address,uint256): Error != expected error: custom error 0x5dd87dfc != AccountNotBlocked(0xCB00000000000000000000000000000000000000); counterexample: calldata=0x608e309d000000000000000000000000cb00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000019da args=[0xCB00000000000000000000000000000000000000, 0x0000000000000000000001000000000000000000, 6618]
  • test_transferFromSeizableWithMemo_revert_insufficientBalance(address,address,uint256): Error != expected error: custom error 0x5dd87dfc != InsufficientBalance(0xF9364D5C4ACeB1409b4d1aeD506902578Ee8b1a5, 0, 1829824289903129924306125434837494741136592289122096508695257352964400 [1.829e69]); counterexample: calldata=0x2c2ee054000000000000000000000000f9364d5c4aceb1409b4d1aed506902578ee8b1a5000000000000000000000000ca9e7098d08a25ba66f07422d32142f4a6a903ad00000043df38732fd601ccf62ebd3160a8a5f58e0231ee1a98b8ca2e50330930 args=[0xF9364D5C4ACeB1409b4d1aeD506902578Ee8b1a5, 0xCA9E7098d08a25bA66f07422d32142f4a6a903Ad, 1829824289903129924306125434837494741136592289122096508695257352964400 [1.829e69]]
  • test_transferFromSeizableWithMemo_revert_invalidReceiver(address,uint256): Error != expected error: custom error 0x5dd87dfc != InvalidReceiver(0x0000000000000000000000000000000000000000); counterexample: calldata=0x424702060000000000000000000000008be444fa68e4ac402b9ff1c5cfd0121ce899247a000000000000000000000000000000006de71d38945674a6105aedbe0cb9cb7d args=[0x8be444FA68e4Ac402b9Ff1c5Cfd0121Ce899247a, 146085864787441281957846686979302476669 [1.46e38]]
  • test_transferFromSeizableWithMemo_revert_unauthorized(address,address,address,uint256): Error != expected error: custom error 0x5dd87dfc != AccessControlUnauthorizedAccount(0x00182588bD754Aa9100b94F9649B4D950aB26cef, 0x466d0fa97b99b3315998c229880e8a3a6aa5f5586b46f762a35e210facb4ea63); counterexample: calldata=0xf118091500000000000000000000000000182588bd754aa9100b94f9649b4d950ab26cef000000000000000000000000f5b0d637129f54f156291c22992751e15c26930f000000000000000000000000069b62c4342df77a1f1bb78e7e8186b9c31532780000000000000000000000000000000000005c285cc1960dbeb0bb9ec3e6e465 args=[0x00182588bD754Aa9100b94F9649B4D950aB26cef, 0xF5b0d637129F54F156291c22992751E15C26930f, 0x069b62c4342DF77A1f1BB78E7E8186B9c3153278, 1869179516688719522668800954000485 [1.869e33]]
  • test_transferFromSeizableWithMemo_revert_whenSeizePaused(address,address,uint256): custom error 0xa290249c: type check failed for "(uint8[])" with data: 0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000003; counterexample: calldata=0x420274fb0000000000000000000000000addd35620167d39d9b5f4d89c9e18118659c5e70000000000000000000000006277a5a407f4ff20fd59b8466cf734f87e4db4d4000000000000000000000072b3c0bfe847cf59e81bc864798637245f33f6a74f args=[0x0AdDd35620167D39D9b5f4d89c9e18118659C5e7, 0x6277A5A407f4ff20FD59b8466Cf734f87E4Db4D4, 167637394464266091738240244089868910120061812254543 [1.676e50]]
  • test_transferFromSeizableWithMemo_success_emitsEvents(address,address,uint256,bytes32): log != expected log; counterexample: calldata=0x52d397380000000000000000000000005d95939286ebbe1e55ee4144b7509596598e296c0000000000000000000000007f4d1d4f5394a431019f1ee9f14b0c1f8701bf190000000000000000000000000000000000000000000000000000000000000001cf0ac30d39729a0b485d39fe6f533d45c82c603d902352e8b1011f5c1867f8e2 args=[0x5D95939286eBbE1e55ee4144B7509596598E296C, 0x7F4D1d4F5394A431019F1eE9F14b0C1F8701bF19, 1, 0xcf0ac30d39729a0b485d39fe6f533d45c82c603d902352e8b1011f5c1867f8e2]
  • test_transferFromSeizableWithMemo_success_ignoresReceiverPolicy(address,address,uint256): custom error 0x5dd87dfc; counterexample: calldata=0xe5450ef30000000000000000000000002db977eb20eae74a31e2126c5dc6de9313ec1f4d0000000000000000000000007e86bb0549340edc2a2a2d50723911ed4b984afd0000000000000000000000000000000000003e5fed073dc78778b3ce414d4ec3 args=[0x2db977Eb20eAe74a31E2126C5dc6DE9313EC1F4d, 0x7e86bb0549340EDC2a2A2D50723911Ed4b984afD, 1265109427566812093715415575645891 [1.265e33]]
  • test_transferFromSeizableWithMemo_success_movesBalance(address,address,uint256): custom error 0x5dd87dfc; counterexample: calldata=0xdf16afc900000000000000000000000065c6d20d8afa1a0764da51f1c17200cd52b8ccc600000000000000000000000033009a7bdf71c1d4dc042a1a96f9ffe94161342a00000000000000000000000000177df77332270bee66f5d62c898aec299e2f19 args=[0x65C6D20d8AFa1A0764dA51f1c17200cD52b8CCc6, 0x33009a7BdF71C1D4dc042A1A96f9FfE94161342a, 523890378173930152344925500336951090269269785 [5.238e44]]
  • test_transferFromSeizableWithMemo_success_noAllowanceRequired(address,address,uint256): custom error 0x5dd87dfc; counterexample: calldata=0x16a6a8800000000000000000000000002ae38c5a0ccdbed572f2d6286848ee7221ab205d00000000000000000000000052ff33af3d144451b233fcd2f84537ae88cb31d400000000000000050e7dd4b00d00f26b06c65d013e6da69044958f6d29e7a071 args=[0x2Ae38c5a0ccdbEd572F2d6286848Ee7221aB205D, 0x52fF33aF3d144451B233fcD2f84537aE88cB31d4, 31740839875415765070772355779951861131618243117495964115057 [3.174e58]]
    [FAIL: custom error 0x7c40df74] test_compositePolicyChildIds_success_emptyAfterFailedCreation() (gas: 133282)
    [FAIL: custom error 0x7c40df74] test_compositePolicyChildIds_success_returnsCreationSet() (gas: 231818)
    [FAIL: custom error 0x7c40df74] test_compositePolicyChildIds_success_tracksUpdateComposite() (gas: 259213)
    [FAIL: custom error 0xa290249c: type check failed for "(uint8[])" with data: 0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000003] test_b20Layout_success_populatedSnapshotMatchesAllSlots() (gas: 682840)
    [FAIL: isPaused must still accept enum index 3 (SEIZE)] test_isPaused_revert_noFifthFeature() (gas: 9532)

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