RPC के माध्यम से Simulate करें
Node RPC आपको blockchain डेटा पढ़ने और transactions भेजने की अनुमति देता है। लेकिन आप Node पर transactions का simulation भी कर सकते हैं। RPC के माध्यम से simulate करने का लाभ यह है कि आप ये सभी operations एक ही RPC URL के माध्यम से कर सकते हैं।RPC या API के माध्यम से Simulations केवल समर्थित नेटवर्क पर उपलब्ध हैं। समर्थित नेटवर्क की सूची देखें।
example
tenderly_simulateTransaction विधि को कॉल करें। RPC reference देखें।
उदाहरण
- request
- response.json
request
API के माध्यम से Simulate करें
विभिन्न पैरामीटर्स के साथ single transaction का simulation करने के लिए simulate API endpoint का उपयोग करें।Virtual Environments पर Simulations का उपयोग करने के लिए, हम Simulate RPC और Bundle Simulate RPC की अनुशंसा करते हैं।
अन्यथा, आप Virtual Environments Simulation API का उपयोग कर सकते हैं।
Simulation API endpoint on public network
Simulation API endpoint on a Virtual Environment
अनुरोध payload
API एंडपॉइंट परPOST अनुरोध भेजें। अनुरोध payload के पूर्ण विवरण के लिए, API reference देखें।
Simulated payload eth_call JSON RPC कॉल के समान है।
नीचे दिए गए फ़ील्ड आवश्यक हैं:
network_id(string): नेटवर्क का ID जहाँ आप simulation चलाना चाहते हैं।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 के बारे में अधिक जानें।
Block number और transaction index
block_number और transaction_index तय करते हैं कि transaction किस state पर execute होगा। दोनों optional integers हैं।
Validation नियम:
block_numberएक integer है।"latest"या"pending"जैसे block tags 400Bad request input parameterserror के साथ reject होते हैं।transaction_indexके लिए स्पष्टblock_numberआवश्यक है। Block छोड़े जाने पर non-zero index 400Transaction index is not allowed when block number is pendingके साथ reject होता है।- Block की transaction संख्या से बड़ा index
transaction index too high: invalid transaction simulationके साथ fail होता है। Index को clamp नहीं किया जाता, और block के अंत के लिए कोई keyword नहीं है।
नवीनतम block की post-state
0 है, At tx चुना गया index है, और At end of block block की transaction संख्या है।
API अनुरोध करते समय, X-Access-Key header जोड़ें जिसका मान एक्सेस टोकन हो।
उदाहरण
सुनिश्चित करें कि एक्सेस कुंजी को सुरक्षित रूप से एक .env फ़ाइल में संग्रहीत करें।
- request.ts
- response.json
request.ts
उपयोग के मामले जानें
- Transaction परिणामों का पूर्वावलोकन: उन समस्याओं की पहचान करें और उन्हें ठीक करें जो transactions को विफल कर सकती हैं।
- Asset और balance परिवर्तन: होने वाले सभी balance और asset परिवर्तनों के लिए सटीक डॉलर मूल्य प्राप्त करें।
- Gas अनुमान: transaction भेजने से पहले gas लागतों की सटीक भविष्यवाणी करें।
- State overrides: विभिन्न परिदृश्यों का परीक्षण करने के लिए timestamps और contract डेटा जैसी blockchain स्थितियों को संशोधित करें।