跳转到主要内容
模拟捆绑(Simulation Bundles)允许您连续模拟多笔交易。例如,为了在模拟目标交易之前设置特定 条件,您需要先执行其他若干笔交易。 Simulation APISimulation RPC 均支持捆绑模拟。端点会接收一个交易数组,并在同一区块内依次模拟这些交易。

RPC 捆绑模拟

Node RPC 允许您读取区块链数据并发送交易。但您也可以通过单个 RPC URL 在 Node 上模拟捆绑交易。通过 RPC 进行的模拟仅在受支持的网络上可用。如果您的网络不受 Node 支持,请改为通过 Simulation API 运行捆绑模拟。 Dashboard 获取 RPC URL。 前往 Node > Copy HTTPS URL 复制所需网络的 URL。
example
https://mainnet.gateway.tenderly.co/$TENDERLY_NODE_ACCESS_KEY
要通过 RPC 模拟捆绑交易,请调用 tenderly_simulateBundle 方法。该自定义方法允许您通过将多笔交易作为数组传递来对其进行模拟。请参阅 RPC 参考
交易会在同一区块内依次进行模拟。
示例
example
curl https://mainnet.gateway.tenderly.co/$TENDERLY_NODE_ACCESS_KEY \
  -X POST \
  -H "Content-Type: application/json" \
  -d \
  '{
    "id": 0,
    "jsonrpc": "2.0",
    "method": "tenderly_simulateBundle",
    "params": [
      [
        {
          "from": "0xe2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2",
          "to": "0x6b175474e89094c44da98b954eedeac495271d0f",
          "data": "0x40c10f19000000000000000000000000e58b9ee93700a616b50509c8292977fa7a0f8ce10000000000000000000000000000000000000000000000001bc16d674ec80000"
        },
        {
          "from": "0xe58b9ee93700a616b50509c8292977fa7a0f8ce1",
          "to": "0x6b175474e89094c44da98b954eedeac495271d0f",
          "gas": "0x7a1200",
          "data": "0x095ea7b3000000000000000000000000f7ddedc66b1d482e5c38e4730b3357d32411e5dd0000000000000000000000000000000000000000000000000de0b6b3a7640000"
        },
        {
          "from": "0xf7ddedc66b1d482e5c38e4730b3357d32411e5dd",
          "to": "0x6b175474e89094c44da98b954eedeac495271d0f",
          "gas": "0x7a1200",
          "data": "0x23b872dd000000000000000000000000e58b9ee93700a616b50509c8292977fa7a0f8ce1000000000000000000000000bd8daa414fda8a8a129f7035e7496759c5af8570000000000000000000000000000000000000000000000000006a94d74f430000"
        }
      ],
      "latest",
      {
        "0x6b175474e89094c44da98b954eedeac495271d0f": {
          "stateDiff": {
            "0xedd7d04419e9c48ceb6055956cbb4e2091ae310313a4d1fa7cbcfe7561616e03": "0x0000000000000000000000000000000000000000000000000000000000000001"
          }
        }
      }
    ]
  }'

API 捆绑模拟

使用 simulate-bundle API 端点一次性模拟多笔连续的交易。请参阅 API 参考
example
https://api.tenderly.co/api/v1/account/${TENDERLY_ACCOUNT_SLUG}/project/${TENDERLY_PROJECT_SLUG}/simulate-bundle
模拟输出显示了如果您将该交易发送到区块链上时可能引发的事件和状态变化。 如果某笔交易失败,将提前返回,包含直至失败点的所有模拟结果。 示例
curl --request POST \
  --url https://api.tenderly.co/api/v1/account/me/project/project/simulate-bundle \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --header "X-Access-Key: $TENDERLY_ACCESS_KEY" \
  --data '{
  "simulations": [
    {
      "network_id": "1",
      "save": true,
      "save_if_fails": true,
      "simulation_type": "full",
      "from": "0xe2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2",
      "to": "0x6b175474e89094c44da98b954eedeac495271d0f",
      "input": "0x40c10f19000000000000000000000000e58b9ee93700a616b50509c8292977fa7a0f8ce10000000000000000000000000000000000000000000000001bc16d674ec80000",
      "state_objects": {
        "0x6b175474e89094c44da98b954eedeac495271d0f": {
          "storage": {
            "0xedd7d04419e9c48ceb6055956cbb4e2091ae310313a4d1fa7cbcfe7561616e03": "0x0000000000000000000000000000000000000000000000000000000000000001"
          }
        }
      }
    },
    {
      "network_id": "1",
      "save": true,
      "save_if_fails": true,
      "simulation_type": "full",
      "from": "0xe58b9ee93700a616b50509c8292977fa7a0f8ce1",
      "to": "0x6b175474e89094c44da98b954eedeac495271d0f",
      "input": "0x095ea7b3000000000000000000000000f7ddedc66b1d482e5c38e4730b3357d32411e5dd0000000000000000000000000000000000000000000000000de0b6b3a7640000"
    },
    {
      "network_id": "1",
      "save": true,
      "save_if_fails": true,
      "simulation_type": "full",
      "from": "0xf7ddedc66b1d482e5c38e4730b3357d32411e5dd",
      "to": "0x6b175474e89094c44da98b954eedeac495271d0f",
      "input": "0x23b872dd000000000000000000000000e58b9ee93700a616b50509c8292977fa7a0f8ce1000000000000000000000000bd8daa414fda8a8a129f7035e7496759c5af8570000000000000000000000000000000000000000000000000006a94d74f430000"
    }
  ]
}'

探索使用场景

  • 资产与余额变化:获取即将发生的所有余额与资产变化的确切美元价值。
  • Gas 估算:在发送交易之前准确预测 gas 费用。
  • 状态覆盖:修改时间戳、合约数据等区块链状态,以测试不同的场景。
  • 预览交易结果:识别并修复可能导致交易失败的问题。

后续内容

单笔模拟

通过 SDK 模拟