
Simulator 着陆页:单交易和 simulation bundle 入口,附带功能摘要。
布局
构建器包含三个区域: 会话条贯穿顶部。它保存适用于每一步的默认值:Network、Block(默认为Pending)和默认的 From 地址。点击 Configure 可设置默认 gas、gas price 和 value。
Bundle 栏是左侧列。每个步骤卡片显示步骤编号、标签(在选择合约前为 New call,选择后为 ContractName · functionName),以及运行后的状态徽章。点击步骤即可聚焦它。拖动可重新排序。使用 C 添加步骤,J/K 在步骤间移动,F 切换聚焦模式。
聚焦步骤视图是右侧列。运行前,它显示步骤编辑器。运行后,它显示该步骤的结果:解码输出、已使用的 gas、事件、状态变更和代币转账。
单次模拟
要运行单次模拟,请使用默认打开的一个步骤。 Decoded 模式允许您按名称选择合约和函数:
Raw 模式直接接受目标地址和一个
0x 前缀的 hex 负载。当您已有来自现有交易的 calldata 或手动编码时,这很有用。
点击 Simulate(或按 ⌘↵)即可运行。右侧面板会填充结果:函数调用摘要、已使用的 gas、解码输出,以及 Events、State Changes、Fund Flow 和 Gas Profiler 标签页。
您也可以从现有交易开始:在任何交易详情页面上点击 Re-Simulate,将其输入加载到构建器中。默认情况下,模拟会在原始交易的区块和时间戳上运行。
要分享预填表单(例如来自 CI 或测试报告),请点击页面标题中的 Copy draft link,或自己构建链接。参见使用草稿链接预填 Simulator。
Simulation bundles
一个 bundle 按顺序运行最多五个步骤,共享状态。当一笔交易的结果依赖于前一笔时,请使用 bundle,例如允许后续转账的授权。步骤在栏中添加和重新排序,每个步骤都有自己的 From 覆盖和 cheatcodes,整个 bundle 通过一次点击 Simulate 执行。 有关构建、重新排序、结果徽章以及 bundle 在模拟历史中如何显示的信息,请参阅 Simulation Bundles。
New Simulation 表单:顶部是会话条(Network、Block),左侧是交易参数,下方是 cheatcode 部分。
Cheatcodes
每个步骤都有一组 cheatcodes(在步骤执行之前立即运行的附加组件)。它们既适用于单次模拟(作为步骤级控件),也适用于 bundle 中的每个步骤。
展开 Fund address、Override timestamp 和 State overrides 的步骤。此处 State overrides 设置 DAI ward 存储槽,以使 mint 成功。
另请参阅
- Simulation Bundles:具有共享状态的多步骤模拟,包括 3 步 DAI mint、approve 和 transferFrom 指南。
- Simulation Mode:跨 dashboard 的持久钱包模拟,并在运行之间累积状态。
- 使用状态覆盖进行模拟:如何覆盖存储、余额和字节码。
- 模拟参数:会话默认值、区块和交易索引选择、From 地址和 cheatcode 字段的完整参考。
- 使用草稿链接预填 Simulator:构建一个 base64url URL,用于打开带有预填表单的 Simulator,以便从 CI 或工具链共享。
- 编辑合约源码:通过针对修改后的源码运行模拟来测试 bug 修复。
- Bundled Simulations(API):通过
simulate-bundle端点以编程方式运行 bundle。 - Virtual Environments:当您需要完整的持久 RPC 环境而不是无状态 bundle 时。