मुख्य सामग्री पर जाएं
इस tutorial में, हम आपको दिखाएंगे कि कैसे Lido validator exit requests की निगरानी के लिए एक Tenderly Web3 Action सेट अप करें और Telegram के माध्यम से notifications भेजें। यह project प्रदर्शित करता है कि smart contracts और external APIs के साथ interact करने के लिए Web3 Actions का उपयोग कैसे करें और एक custom notification system कैसे बनाएँ। Lido validator exit requests की अपनी खुद की निगरानी सेट अप करने के लिए इस Github project template का उपयोग करें:

Validator monitoring Web3 Action template

Project अवलोकन

इस project का उद्देश्य एक system सेट अप करना है जो Lido validator exit requests की निगरानी करता है और विशिष्ट शर्तें पूरी होने पर notifications भेजता है। यहाँ project के flow का एक quick breakdown है:
  1. प्रासंगिक on-chain events पर subscribe करें: Web3 Action Ethereum mainnet पर Lido contract से ValidatorExitRequest events के लिए listen करता है।
  2. Tenderly API का उपयोग करके event को Decode करें: जब कोई event detect होता है, तो यह Tenderly API का उपयोग करके transaction विवरण प्राप्त करता है।
  3. रुचि के विशिष्ट events के लिए Filter करें: ValidatorExitRequest event का आगे मूल्यांकन तब किया जाता है जब stakingModuleId 1 है और nodeOperatorId 14 है।
  4. प्रतिक्रिया दें: यदि रुचि का ValidatorExitRequest हुआ है, तो Web3 Action validator exit request के बारे में विवरण के साथ निर्दिष्ट Telegram channel पर एक notification भेजता है।

पूर्वापेक्षाएँ

शुरू करने से पहले, सुनिश्चित करें कि आपके पास निम्नलिखित है:
  • Tenderly CLI स्थापित
  • Node.js (v20 वर्तमान में समर्थित)
  • npm
  • एक Telegram bot token और channel ID
  • एक Tenderly account और project

Setup

आइए अपने Lido Validator Exit Notification system को सेट अप करने के चरणों से गुज़रें:

यह कैसे काम करता है

आइए lidoEvents.ts file के main components का breakdown करें:
showLineNumbers
subscribeToLidoValidatorExitRequestFn function हमारी Web3 Action के लिए मुख्य entry point है। यह निम्न tasks को संभालता है:
  1. Tenderly API का उपयोग करके transaction विवरण retrieve करता है
  2. जाँच करता है कि stakingModuleId 1 है और nodeOperatorId 14 है
  3. यदि शर्त पूरी हो जाती है, तो निर्दिष्ट Telegram channel पर notification भेजता है

Transaction Trace के लिए Tenderly API

इस Web3 Action का एक महत्वपूर्ण हिस्सा Tenderly API का उपयोग करके transaction trace retrieve करना है। यहाँ उपयोग किया गया API endpoint है:
यह API endpoint transaction का detailed trace देता है, जिसमें transaction execution के दौरान emit किए गए सभी logs और events शामिल हैं। यहाँ URL का प्रत्येक भाग क्या दर्शाता है:
  • https://api.tenderly.co/api/v1/public-contract/: Tenderly के public contract API के लिए base URL
  • ${network}: network identifier (जैसे Ethereum Mainnet के लिए 1)
  • ${txHash}: उस transaction का hash जिसमें हमारी रुचि है
इस API से response में transaction के बारे में जानकारी की एक wealth होती है, जिसमें शामिल हैं:
  • सभी emit किए गए events और उनके parameters
  • transaction के दौरान किए गए internal calls
  • हुए state changes
हमारी Web3 Action में, हम इस trace का उपयोग ValidatorExitRequest event को खोजने और प्रासंगिक जानकारी extract करने के लिए करते हैं:
showLineNumbers
यह हमें रुचि के validator exit requests को precisely पहचानने और notification भेजने के लिए आवश्यक जानकारी extract करने की अनुमति देता है।
transaction traces के लिए Tenderly API का उपयोग करना on-chain events के बारे में detailed जानकारी access करने का एक शक्तिशाली तरीका प्रदान करता है, बिना blockchain के साथ सीधे interact किए या अपना खुद का node सेट अप किए।

Customization

Lido validator exits के लिए, रुचि के events को stakingModuleId parameter के मान 1, और nodeOperatorId के मान 14 द्वारा पहचाना जाता है। इन filtering शर्तों को modify करने या निगरानी के लिए अधिक events जोड़ने के लिए:
  1. lidoEvents.ts file को edit करें
  2. अपनी आवश्यकताओं से मेल खाने के लिए if statement में condition check को update करें
  3. message format को modify करें या आवश्यकतानुसार अतिरिक्त जानकारी जोड़ें
उदाहरण के लिए, stakingModuleId और nodeOperatorId शर्तों को बदलने के लिए:
showLineNumbers

Monitoring और Troubleshooting

यह सुनिश्चित करने के लिए कि आपकी Web3 Action सही तरीके से काम कर रही है:
  • Tenderly dashboard में अपनी Web3 Action executions की निगरानी करें
  • किसी भी error संदेशों या execution विवरण के लिए Tenderly logs की जाँच करें
  • सुनिश्चित करें कि आपके Telegram bot को निर्दिष्ट channel पर संदेश भेजने की अनुमति है
यह setup विशेष रूप से Ethereum mainnet पर Lido validator exit requests की निगरानी के लिए designed है।

निष्कर्ष

आपने अब Lido validator exit requests की निगरानी के लिए Tenderly Web3 Actions का उपयोग करके एक custom notification system सेट अप कर लिया है।