Skip to content

incorrect simulations with cast run on hyperevm #10827

Open
@maxandron

Description

@maxandron

Component

Cast

Have you ensured that all of these are up to date?

  • Foundry
  • Foundryup

What version of Foundry are you on?

cast Version: 1.2.3-nightly (e6de72c)

What version of Foundryup are you on?

foundryup: 1.1.0

What command(s) is the bug in?

cast run --rpc-url https://rpc.hyperliquid.xyz/evm 0x84a03169ac02688b0af28ca81fb0ccc1d4fea0ff10d024cd65a910ba04df480a

Operating System

None

Describe the bug

Hello,

I'm seeing that sometimes transactions are not simulated properly. Transactions that were reverted on-chain are simulated as succeeded (probably because the state is applied incorrectly)
As far as I can tell this is only happening in Hyperevm.

For example -

> cast receipt --rpc-url https://rpc.hyperliquid.xyz/evm 0x84a03169ac02688b0af28ca81fb0ccc1d4fea0ff10d024cd65a910ba04df480a
status               0 (failed)
...

And the simulation for the same tx shows it succeeds

> cast run --rpc-url https://rpc.hyperliquid.xyz/evm 0x84a03169ac02688b0af28ca81fb0ccc1d4fea0ff10d024cd65a910ba04df480a

Executing previous transactions from the block.
Traces:
  [27669] 0x99E854bbaB42Da92acCe010C44Fc69e4FdDA4a66::13572d0b(000000000000000000000000fe3adbfed96da23ee1fc1059e08b3775497141cf00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000988eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ea1694eb5ce437fa6f4e974cba12e80bfe3258a70000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000098929800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ca79db4b49f608ef54a5cb813fbed3a6387bc645000000000000000000000000b8ce59fc3717ada4c02eadf9682a9e934f625ebb00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000021d8261c1f8d6478c8aa0000000000000000000000000000000000000000000021d58cecc396e1847579)
    ├─ [5345] 0xfe3adbfED96dA23ee1Fc1059E08b3775497141Cf::slot0() [staticcall]
    │   ├─ [2649] 0xe5Ff71A87E4a1e959Ab8C9b0644363E2cA7222dc::slot0() [delegatecall]
    │   │   └─ ← [Return] 0x00000000000000000000000000000000000f47dd700e905448ac250fac7ba1ad00000000000000000000000000000000000000000000000000000000000437800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001
    │   └─ ← [Return] 0x00000000000000000000000000000000000f47dd700e905448ac250fac7ba1ad00000000000000000000000000000000000000000000000000000000000437800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001
    ├─ [2594] 0xfe3adbfED96dA23ee1Fc1059E08b3775497141Cf::liquidity() [staticcall]
    │   ├─ [2428] 0xe5Ff71A87E4a1e959Ab8C9b0644363E2cA7222dc::liquidity() [delegatecall]
    │   │   └─ ← [Return] 0x0000000000000000000000000000000000000000000000000a2a7eb7c788ec5a
    │   └─ ← [Return] 0x0000000000000000000000000000000000000000000000000a2a7eb7c788ec5a
    ├─ [2696] 0xEA1694eB5CE437fA6F4e974cBa12E80BFE3258a7::slot0() [staticcall]
    │   └─ ← [Return] 0x00000000000000000000000000000000000f478aaf200746540c43678159c34d000000000000000000000000000000000000000000000000000000000004377f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000660000000000000000000000000000000000000000000000000000000000000001
    ├─ [2405] 0xEA1694eB5CE437fA6F4e974cBa12E80BFE3258a7::liquidity() [staticcall]
    │   └─ ← [Return] 0x000000000000000000000000000000000000000000000000088799f8dd100899
    ├─  emit topic 0: 0xf9a805381de36fd4dcc5919d5977acb7b2eee8f8f36b4b19ab3637af2215b323
    │           data: 0x0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000aa4ff2caab000000000000000000000000000000000000000000009b58010c3982a97b8eca0000000000000000000000000000000000000000000000000000008ee9311e420000000000000000000000000000000000000000000082544037bcd9894e7893
    └─ ← [Return] 0x0000000000000000000000000000000000000000000000000000000000000002


Transaction successfully executed.

Note: I'm on the nightly version because cast run doesn't work on the current stable version.

Thank you!

Metadata

Metadata

Assignees

No one assigned

    Labels

    T-bugType: bugT-needs-triageType: this issue needs to be labelled

    Type

    No type

    Projects

    Status

    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions