Skip to main content
Viem 是一个 Ethereum 的 TypeScript 接口,提供用于与 Ethereum 交互的低级无状态原语。 当您复制 Public RPC 时,可以使用标准 RPC 方法与 Virtual Environments 交互, 以及当您复制 Admin RPC 时,可以使用 Node RPC 上可用的自定义方法

Code samples: Using Viem with Virtual Environments

定义自定义链

创建一个 tenderly.config.ts 文件,并使用 defineChain 创建一个链对象。
如果您在创建 Virtual Environment 期间指定了唯一的 Chain ID,您需要创建一个新的链对象,并将 id 设置为您选择的值。
virtual-environments/src/tenderly.config.ts

为自定义 RPC 方法定义 Viem actions

为自定义 RPC 方法(例如 tenderly_setBalancetenderly_setErc20Balancesimulate)定义 Viem actions。 例如,以下文件定义了一个 tenderlySetBalance action,它会调用 tenderly_setBalance 您可以在这里找到更多 actions:

Viem actions for custom RPC methods

virtual-environments/src/viem-tenderly-actions.ts

调用标准和自定义 RPC 方法

在此示例中,您可以看到如何:
  • 调用 Viem 的 createPublicClient 并传入以下参数:
  • chain:设置为我们在上一步中定义的 vMainnet
  • transport:对 http 的一次调用,设置为 https RPC URL。
virtual-environments/src/viem-call-balance-top-up.ts

使用 viem 模拟交易

要使用 Virtual Environment 的 Simulation RPC 方法,只需 request 一次对 tenderly_simulateTransaction 的调用:
virtual-environments/src/viem-call-simulate.ts

使用 Viem 追踪交易

使用 tenderly_traceTransaction 获取完全解码的交易跟踪。
node/samples/viem/2-transaction-trace.ts