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_setBalance、tenderly_setErc20Balance 和 simulate)定义 Viem actions。
例如,以下文件定义了一个 tenderlySetBalance action,它会调用 tenderly_setBalance。
您可以在这里找到更多 actions:
Viem actions for custom RPC methods
virtual-environments/src/viem-tenderly-actions.ts
调用标准和自定义 RPC 方法
在此示例中,您可以看到如何:- 调用 Viem 的
createPublicClient并传入以下参数: chain:设置为我们在上一步中定义的vMainnettransport:对http的一次调用,设置为httpsRPC 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