概览
了解如何在您的 dapp 中使用 Simulation API,让用户在将交易发送到链上之前预览交易结果。这样,您可以帮助他们避免因失败或错误的交易而造成的经济损失,并增强他们使用您的 dapp 时的信心。 要将 Tenderly Simulations API 集成到您的 dapp 中,以便在交易发送到链上之前检测其是否会失败,您需要:- 从 ethers.js 库填充原始交易。
- 在发送交易之前先对其进行模拟。
- (可选)将每一次区块链交互包装到 Tenderly 模拟中。
从 ethers.js 填充原始交易
第一步是创建将发送到我们模拟端点的交易对象。我们将直接从ethers.js 库生成它。在下面的示例中,我们将演示如何针对 DAI 合约上的 transfer() 函数完成此操作:
example.tsx
在发送之前模拟交易
现在我们已经提取了未签名的原始交易,让我们在将其发送到链上(发送到 Ethereum Mainnet)之前对其进行模拟:example.tsx
将每一次区块链交互包装到 Tenderly 模拟中(可选)
为了确保每一次区块链交互都会先被模拟,请围绕ethers.js 的 signer 对象编写一个简单的封装,让它始终对交易进行模拟。
此外,您还可以在后续引入类型化错误,供您的逻辑与之交互:
example.tsx
这里有一个 GitHub
仓库,您可以在其中
找到此实现的示例。