通过 RPC 发送
使用eth_sendRawTransaction RPC 方法向您的 Virtual Environment 发送交易。
下面的示例展示了如何使用 Viem、Ethers.js 和 cURL 命令发送交易。这些代码片段无需修改即可运行。
- Shell
- virtual-environments/src/viem-send-tx.ts
- send-tx.ts
Documentation Index
Fetch the complete documentation index at: /llms.txt
Use this file to discover all available pages before exploring further.
了解如何通过 JSON-RPC 向 Tenderly Virtual Environment 发送已签名(eth_sendRawTransaction)和未签名的交易,并使用 Admin RPC 作弊码为测试账户注资,模拟真实网络交互。支持 Dashboard UI 和 RPC 两种方式。
eth_sendRawTransaction RPC 方法向您的 Virtual Environment 发送交易。
下面的示例展示了如何使用 Viem、Ethers.js 和 cURL 命令发送交易。这些代码片段无需修改即可运行。
curl $TENDERLY_VIRTUAL_TESTNET_RPC \
-X POST \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 0,
"method": "eth_sendRawTransaction",
"params": [
"0x095ea7b300000000000000000000000040bdb4497614bae1a67061ee20aade3c2067ac9e00000000000000000000000000000000000000000000000000000000000186a0"
]
}'
const EXPLORER_BASE_URL = vMainnet.blockExplorers.default;
const account = privateKeyToAccount(generatePrivateKey());
(async () => {
const client = createWalletClient({
account,
chain: vMainnet,
transport: http(vMainnet.rpcUrls.default.http[0]),
});
await tenderlySetBalance(client, [
[account.address],
"0xDE0B6B3A7640000",
]);
const tx = await client.sendTransaction({
to: "0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC",
value: parseEther("0.01"),
});
console.log(`${EXPLORER_BASE_URL}/tx/${tx}`);
})();
await (async () => {
const provider = new ethers.JsonRpcProvider(process.env.TENDERLY_VIRTUAL_TESTNET_RPC!);
const signer = Wallet.fromPhrase(Mnemonic.fromEntropy(ethers.randomBytes(24)).phrase, provider);
await provider.send("tenderly_setBalance", [
signer.address,
"0xDE0B6B3A7640000",
]);
const tx = await signer.sendTransaction({
to: "0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC",
value: ethers.parseEther("0.01"),
});
console.log(`${process.env.VIRTUAL_MAINNET_EXPLORER!}/tx/${tx.hash}`);
})();