मुख्य सामग्री पर जाएं
Tenderly RPC और API के माध्यम से single transaction simulations का समर्थन करता है। Simulations चुने गए नेटवर्क की नवीनतम स्थिति पर निष्पादित होते हैं। Dapps और वॉलेट single simulations का उपयोग अपने उपयोगकर्ताओं को वास्तविक असेट्स प्रतिबद्ध करने से पहले transactions का dry-run करने का एक तरीका देने के लिए कर सकते हैं। यह उन्हें हुए विस्तृत balance और asset परिवर्तनों के साथ transaction execution का पूर्वावलोकन देता है। Transaction previews उपयोगकर्ताओं को dapps में विश्वास बनाने, केवल सफल transactions को approve करने, और महँगी विफलताओं को रोकने में मदद कर सकते हैं।

RPC के माध्यम से Simulate करें

Node RPC आपको blockchain डेटा पढ़ने और transactions भेजने की अनुमति देता है। लेकिन आप Node पर transactions का simulation भी कर सकते हैं। RPC के माध्यम से simulate करने का लाभ यह है कि आप ये सभी operations एक ही RPC URL के माध्यम से कर सकते हैं।
RPC या API के माध्यम से Simulations केवल समर्थित नेटवर्क पर उपलब्ध हैं। समर्थित नेटवर्क की सूची देखें।
अपना RPC URL और एक्सेस कुंजी Dashboard से प्राप्त करें। Node > इच्छित नेटवर्क का Copy HTTPS URL पर जाएँ।
example
https://mainnet.gateway.tenderly.co/$TENDERLY_NODE_ACCESS_KEY
RPC के माध्यम से एक single transaction का simulation करने के लिए, tenderly_simulateTransaction विधि को कॉल करें। RPC reference देखें उदाहरण
request
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_simulateTransaction",
    "params": [
      {
        "from": "0xe2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2",
        "to": "0x6b175474e89094c44da98b954eedeac495271d0f",
        "gas": "0x7a1200",
        "value": "0x0",
        "data": "0x095ea7b3000000000000000000000000f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1000000000000000000000000000000000000000000000000000000000000012b"
      },
      "0xfc497b"
    ]
  }'

API के माध्यम से Simulate करें

विभिन्न पैरामीटर्स के साथ single transaction का simulation करने के लिए simulate API endpoint का उपयोग करें।
Virtual Environments पर Simulations का उपयोग करने के लिए, हम Simulate RPC और Bundle Simulate RPC की अनुशंसा करते हैं। अन्यथा, आप Virtual Environments Simulation API का उपयोग कर सकते हैं।
URL में आपका account slug और project slug होना चाहिए। slugs खोजने के लिए इस quick guide का पालन करें।
Simulation API endpoint on public network
https://api.tenderly.co/api/v1/account/${TENDERLY_ACCOUNT_SLUG}/project/${TENDERLY_PROJECT_SLUG}/simulate
Simulation API endpoint on a Virtual Environment
https://api.tenderly.co/api/v1/account/${TENDERLY_ACCOUNT_SLUG}/project/${TENDERLY_PROJECT_SLUG}/vnets/{vnetId}/transactions/simulate
आपको API एक्सेस टोकन भी प्राप्त करना होगा, जो headers के साथ भेजा जाता है। जानें कि API एक्सेस कुंजी यहाँ कैसे उत्पन्न करें

अनुरोध payload

API एंडपॉइंट पर POST अनुरोध भेजें। अनुरोध payload के पूर्ण विवरण के लिए, API reference देखें Simulated payload eth_call JSON RPC कॉल के समान है। नीचे दिए गए फ़ील्ड आवश्यक हैं:
  • network_id (string): नेटवर्क का ID जहाँ आप simulation चलाना चाहते हैं।
  • block_number (number): “latest” या simulation के लिए उपयोग किया जाने वाला block नंबर।
  • to (string): transaction का प्राप्तकर्ता पता।
  • from (string): transaction शुरू करने वाला पता।
  • input (string): Encoded contract विधि कॉल डेटा।
  • gas (number): simulation के लिए प्रदान की गई gas की मात्रा।
आप from फ़ील्ड में कोई भी sender पता निर्दिष्ट कर सकते हैं। चूँकि Tenderly unsigned transactions का simulation करता है, आपको एक विशिष्ट sender से transactions का simulation करने के लिए किसी account की निजी कुंजी का स्वामी होने की आवश्यकता नहीं है।
आप simulation_type भी निर्दिष्ट कर सकते हैं, जो full, quick, या ABI हो सकता है। यह फ़ील्ड आवश्यक नहीं है क्योंकि डिफ़ॉल्ट full पर सेट है। Simulation Modes के बारे में अधिक जानें। API अनुरोध करते समय, X-Access-Key header जोड़ें जिसका मान एक्सेस टोकन हो। उदाहरण सुनिश्चित करें कि एक्सेस कुंजी को सुरक्षित रूप से एक .env फ़ाइल में संग्रहीत करें।
request.ts

dotenv.config();

const simulateTransaction = async () => {
  const { TENDERLY_ACCOUNT_SLUG, TENDERLY_PROJECT_SLUG, TENDERLY_ACCESS_KEY } = process.env;

  const simulation = await axios.post(
    `https://api.tenderly.co/api/v1/account/${TENDERLY_ACCOUNT_SLUG}/project/${TENDERLY_PROJECT_SLUG}/simulate`,
    {
      network_id: '1',
      block_number: 16533883,
      from: '0xe2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2',
      to: '0x6b175474e89094c44da98b954eedeac495271d0f',
      gas: 8000000,
      gas_price: 0,
      value: 0,
      input: '0x095ea7b3000000000000000000000000f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1000000000000000000000000000000000000000000000000000000000000012b',
      simulation_type: 'quick',
    },
    {
      headers: {
        'X-Access-Key': TENDERLY_ACCESS_KEY as string,
      },
    },
  );

  console.log(simulation.data);
};

simulateTransaction();

उपयोग के मामले जानें

  • Transaction परिणामों का पूर्वावलोकन: उन समस्याओं की पहचान करें और उन्हें ठीक करें जो transactions को विफल कर सकती हैं।
  • Asset और balance परिवर्तन: होने वाले सभी balance और asset परिवर्तनों के लिए सटीक डॉलर मूल्य प्राप्त करें।
  • Gas अनुमान: transaction भेजने से पहले gas लागतों की सटीक भविष्यवाणी करें।
  • State overrides: विभिन्न परिदृश्यों का परीक्षण करने के लिए timestamps और contract डेटा जैसी blockchain स्थितियों को संशोधित करें।

आगे कहाँ जाएँ

Bundled simulations

SDK के माध्यम से Simulate करें