跳转到主要内容
Tenderly Simulator landing page showing the Simulate transaction button and three feature cards: Unlock the blockchain, Inspect and debug errors, Integrate in your dapp

Simulator 着陆页:单交易和 simulation bundle 入口,附带功能摘要。

Tenderly Simulator 让您可以针对实时 mainnet 或 testnet 状态运行交易,而无需广播任何内容。您可以作为任何发送方进行模拟、覆盖合约存储、为地址充值、操控区块上下文,一切都通过 dashboard 完成。 无论您运行一笔还是五笔交易,构建器都是相同的。单次模拟就是一步的 bundle。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 builder showing session strip with network and block selectors, transaction parameters (From, Contract, Function), and collapsed cheatcode sections for Override gas, Fund address, Increase block, Override timestamp, State overrides, and Optional Access Lists

New Simulation 表单:顶部是会话条(Network、Block),左侧是交易参数,下方是 cheatcode 部分。

Cheatcodes

每个步骤都有一组 cheatcodes(在步骤执行之前立即运行的附加组件)。它们既适用于单次模拟(作为步骤级控件),也适用于 bundle 中的每个步骤。
Step editor showing Fund address, Override timestamp, and State overrides cheatcodes expanded

展开 Fund address、Override timestamp 和 State overrides 的步骤。此处 State overrides 设置 DAI ward 存储槽,以使 mint 成功。

有关状态覆盖的详细步骤,包括存储槽计算,请参阅使用状态覆盖进行模拟

另请参阅