FABRKNT
← EVM Perp
EVM Perp · SandboxPass

Single-block cascade

Cascade compressed into a single block — verifies the per-block scanner pipeline handles all close orders in one consensus tick without re-entrancy.

Same accounts as `cascade`, but the entire setup + crash fires on block 1.

What happens

The same five-trader cascade as `cascade`, but every event lands in block 1 — deposits, resting sells, market buys all at once. The liquidation engine then runs once and clears everyone the oracle drop made vulnerable, in a single tick. Useful for comparing 'one-shot stress test' vs the staggered multi-block version: both produce the same final state, but the multi-block path lets you see the position-building phase that precedes the cascade.

Declared outcomes

Each declared outcome is scored ✓ pass / ✗ fail against the run’s actual state.

4 of 4 outcome(s) verified.

Step through the run, block by block
Mark96SourceclobTrades8Fills4Deposits5Liquidations2ADLyes

2 liquidations + ADL fire here

Verbatim report

The exact 5-section report the run emits — identical every run.

─── scenario: single-block-cascade ────────────────────────────────────
HEADLINE ✓: Same accounts as `cascade`, but the entire setup + crash fires on block 1.

DESCRIPTION:
  The same five-trader cascade as `cascade`, but every event lands in block 1 — deposits, resting sells, market buys all at once. The liquidation engine then runs once and clears everyone the oracle drop made vulnerable, in a single tick. Useful for comparing 'one-shot stress test' vs the staggered multi-block version: both produce the same final state, but the multi-block path lets you see the position-building phase that precedes the cascade.

TIMELINE (per-block):
  height  mark    src              trades  fills  deposits  liqs  adl  fund
  ------  ------  ---------------  ------  -----  --------  ----  ---  ----
       1      96  clob                  8      4         5     2  yes     —
       2      96  clob                  0      0         0     0    —     —
       3      96  clob                  0      0         0     0    —     —

ACCOUNT DELTA (final − initial):
  account  collateral  position  avg_entry
  -------  ----------  --------  ---------
       10         200        10        110
       20           0         0        110
       30           0         0        110
       40         300         0        110
       50         444         0        110
  (initial account count: 0, final account count: 5)

OUTCOMES:
  ✓ Five trading accounts exist after the single-block setup
  ✓ Four fills (the four market buys crossing the resting sells)
  ✓ The liquidation scanner flags accounts after the mark-book settles
  ✓ No more than 2 liquidations fire — write-back prevents re-flagging

  4 of 4 outcome(s) verified.

NOTE: v1 runs the scenario in-process against a unit-provider
`LiveRethEvmBridge<()>` (no Reth boot). For the production-shape
run (real Reth + Malachite + JSON-RPC), use:
  openhl reth-devnet --chain-history scenarios/single-block-cascade.json --rounds 3

NEXT:
  • Adopt this engine  : https://github.com/psyto/rdk
  • Custom build       : https://fabrknt.com/waitlist.html?product=evm-perp&intent=build
  • Hosted access      : https://fabrknt.com/waitlist.html?product=evm-perp&intent=hosted

Other scenarios