> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tenderly.co/llms.txt
> Use this file to discover all available pages before exploring further.

# विफल Transaction की जाँच

> call trace, Debugger, और Evaluate का उपयोग करके एक reverted transaction को उसके मूल कारण तक trace करें, फिर इसे पुनः simulate करके fix को सत्यापित करें।

इस guide में, हम transaction विफलता के मूल कारण की जाँच करेंगे और fix को सत्यापित करेंगे।

हम एक [Uniswap transaction](https://www.tdly.co/tx/1/0xbe082dcc8ae59868f5b2330173902bb88c6643b5c2fdf0d8a9f43d03dbca0c36) देखेंगे। यह transaction `swapExactTokensForTokens` का प्रयास करता है।

<Steps>
  ### Tenderly dashboard के search में transaction hash पेस्ट करें

  Transaction hash: `0xbe082dcc8ae59868f5b2330173902bb88c6643b5c2fdf0d8a9f43d03dbca0c36`

  ### error का पता लगाएँ

  Revert `swapExactTokensForTokens` में हुआ, `amountOutMin` से संबंधित एक condition की जाँच करते हुए जो एक input parameter है। यह निम्नलिखित error message के साथ revert हुआ:
  Error message: `UniswapV2Router: INSUFFICIENT_OUTPUT_AMOUNT`

  Inputs section से, हम देख सकते हैं कि `amountOutMin` का मान `1102820622890207119` था।

  <img src="https://mintcdn.com/tenderly/XsEZlaGXYskrtN68/images/debugger/failed-tx-1.webp?fit=max&auto=format&n=XsEZlaGXYskrtN68&q=85&s=7870862a8fb522c861f797116435d338" alt="" width="3360" height="2100" data-path="images/debugger/failed-tx-1.webp" />

  ### revert condition का पता लगाएँ

  [debugger view](https://dashboard.tenderly.co/tx/1/0xbe082dcc8ae59868f5b2330173902bb88c6643b5c2fdf0d8a9f43d03dbca0c36/debugger?trace=0.1) में जाएँ। ध्यान दें कि require में `amounts[amounts.length - 1]` शामिल है।

  <img src="https://mintcdn.com/tenderly/XsEZlaGXYskrtN68/images/debugger/failed-tx-2.webp?fit=max&auto=format&n=XsEZlaGXYskrtN68&q=85&s=c8d985b4f74f9a446462dda13ecbc3bb" alt="" width="3360" height="2100" data-path="images/debugger/failed-tx-2.webp" />

  ### expression का मूल्यांकन करें

  इस expression का मान प्राप्त करने के लिए, आप Evaluate का उपयोग कर सकते हैं:

  1. सुनिश्चित करें कि debugger revert की line पर है,
  2. expression \`amounts\[amounts.length - 1] पेस्ट करें,
  3. "Evaluate" बटन दबाएँ।

  मान है:
  मान `1029855063181377015` है।

  <img src="https://mintcdn.com/tenderly/XsEZlaGXYskrtN68/images/debugger/failed-tx-3.webp?fit=max&auto=format&n=XsEZlaGXYskrtN68&q=85&s=29e7a31e020dbf5e3d1abc5e8bd407c2" alt="" width="3360" height="2100" data-path="images/debugger/failed-tx-3.webp" />

  ### call जानकारी से मान प्राप्त करें

  आप उस function का विश्लेषण करके भी प्रश्न में expression का मान निकाल सकते हैं जिसने मान उत्पन्न किया:

  1. बाईं ओर के Execution trace से debugger को [`getAmountsOut`](https://dashboard.tenderly.co/tx/1/0xbe082dcc8ae59868f5b2330173902bb88c6643b5c2fdf0d8a9f43d03dbca0c36/debugger?trace=0.0) पर move करें
  2. निचले pane में `output` खोजें
  3. चूँकि expression `amounts[amounts.length - 1]` array का अंतिम element प्राप्त करता है, हम यह निष्कर्ष निकालते हैं कि प्रश्न में मान `1029855063181377015` है।

  <img src="https://mintcdn.com/tenderly/XsEZlaGXYskrtN68/images/debugger/failed-tx-4.webp?fit=max&auto=format&n=XsEZlaGXYskrtN68&q=85&s=32dc026b46ee2100859b2d74caca7792" alt="" width="3360" height="2100" data-path="images/debugger/failed-tx-4.webp" />

  ### संभावित समाधान

  यह transaction सफल हो जाती अगर `amountOutMin` का मान `1029855063181377015` होता।

  ### समाधान का सत्यापन

  समाधान सत्यापित करने के लिए, "Re-Simulate" बटन पर क्लिक करें:

  1. दूसरे argument में मान `1029855063181377015` पेस्ट करें
  2. **Simulate** पर क्लिक करें।

  Simulation सफल हो गई है, इसका मतलब है कि हमें सही argument मान मिल गया है।

  <Info>
    Swap transactions समय-संवेदनशील होती हैं, वे `block.timestamp` मान को ध्यान में रखती हैं।
    Simulations डिफ़ॉल्ट रूप से मूल block पर और मूल timestamp पर execute होती हैं।
    केवल यदि आपको custom block और timestamp मानों की आवश्यकता हो, तो आप उस उद्देश्य के लिए block header overrides का उपयोग कर सकते हैं।
  </Info>
</Steps>
