What an EVM transaction (or an approve → call sequence) will do before it is signed: decoded calls, approvals, transfers, simulated balance changes (eth_simulateV1 with transfer tracing, eth_call fallback) and a verdict of named checks for a review screen
decoded calls — the recipient, the contract, the method;
approvals and transfers: approve, increaseAllowance / increaseApproval, setApprovalForAll, EIP-2612 permit calls, Permit2 approve and permit (single and batch); a permit whose arguments can't be read is the approval-unparsed warning;
simulated balance changes at a pinned block (eth_simulateV1 with transfer tracing, eth_call as the fallback);
a verdict made of named checks: unlimited approval, unknown spender, value out, simulation failed…
import { previewEvmTx } from '@anywalletkit/tx-preview-evm'
Pure functions over an injected rpc(method, params). The only dependency is viem.
What an EVM transaction (or an approve → call sequence) will do before it is signed: decoded calls, approvals, transfers, simulated balance changes (eth_simulateV1 with transfer tracing, eth_call fallback) and a verdict of named checks for a review screen