Alerting API reference
परिचय
Tenderly का Alert API आपको सरल और जटिल Alerts बनाने की अनुमति देता है। एक सरल अलर्ट में एक नियम होता है, उदाहरण के लिएmethod_call तब ट्रिगर होगा जब कोई transaction आपके public या external method को invoke करता है। एक जटिल अलर्ट में कई शर्तें हो सकती हैं, और जब वे सभी पूरी हो जाती हैं तो यह ट्रिगर होगा। उदाहरण के लिए, method_call और state_change के साथ एक अलर्ट तब ट्रिगर होगा जब कोई transaction दिए गए method को कॉल करता है और निर्दिष्ट storage slot को अपडेट करता है।
API का उपयोग करके Alert को परिभाषित करते समय, आपको निम्नलिखित निर्दिष्ट करना होगा:
- delivery channels जिन्हें alerting नियम ट्रिगर होने पर सूचित किया जाता है। Delivery Channels के बारे में अधिक देखें।
- expressions array जो alert को ट्रिगर करेगा जब व्यक्तिगत expressions द्वारा दर्शाई गई सभी शर्तें पूरी हो जाती हैं।
email, Discord, और Sentry delivery channels API (
POST /api/v1/account/{accountId}/delivery-channel) के माध्यम से बनाए जा सकते हैं। Slack, Telegram, और PagerDuty channels के लिए OAuth/bot connection flow आवश्यक है और वे केवल Dashboard के माध्यम से बनाए जा सकते हैं। सभी channels को API का उपयोग करके प्राप्त किया जा सकता है।Authentication
alerts बनाने से पहले, आपको authentication सेट अप करने और अपने प्रोजेक्ट की पहचान करने की आवश्यकता होगी:- JavaScript
- Shell
- Python
Expression प्रकार
आप Alerts के trigger नियम निर्दिष्ट करने के लिए विभिन्न expression प्रकारों का उपयोग कर सकते हैं।नोट्स
- ये वे सभी expression प्रकार हैं जिन्हें API स्वीकार करता है। किसी अन्य
typevalue वाला payload400(“Expressions are not in the right format”) के साथ अस्वीकार कर दिया जाता है। - एक alert के भीतर सभी expressions AND-ed होते हैं: alert केवल तभी fire करता है जब हर expression एक ही transaction से मेल खाता है। स्वतंत्र शर्तों की निगरानी के लिए, प्रत्येक के लिए अलग alert बनाएँ।
- comparison operators (
operator) के लिए, मान्य मान हैं:>,>=,<,<=,==,!=,contains,notContains - Parameter types (
parameter_type) में शामिल हैं:uint,int,bool,address,string,slice,array,tuple,fixed_bytes,bytes,hash,function - Expression प्रकार
emitted_log,erc20_transfer_matcher,eth_balance,tx_value,method_call,state_change,tx_status, औरview_functionएक वैकल्पिकnot: truefield का समर्थन करते हैं जो match को negate करता है erc20_token_transferनियम:addressesयाmatch_anyमें से एक सेट करें, दोनों नहीं।address_tagmatch_anyको tagged project addresses तक सीमित करता है।token_addressesके बिना, token scope project के ERC-20 contracts होते हैं (token_tagसे सीमित, याmatch_non_project_contractsसे किसी भी token तक विस्तारित)।require_dollar_value: trueबिना ज्ञात USD price वाले tokens के transfers को skip करता है और केवलmatch_non_project_contractsके साथ स्वीकार किया जाता है।min_amountऔरmax_amountinclusive हैं, absolute amount की तुलना करते हैं, औरtoken_addressesमें ठीक एक entry की आवश्यकता होती है।net: trueके साथ, direction और amount transaction में प्रति address और token net balance change पर लागू होते हैं। देखें ERC-20 token transfer monitoring।eth_balanceकेवल तब fire करता है जब कोई transaction balance को threshold के पार ले जाता है (non-matching से matching), हर उस transaction पर नहीं जब तक शर्त बनी रहती है- सभी addresses मान्य Ethereum addresses होने चाहिए (
0xउपसर्ग वाले, 40 hex वर्ण) - Wei मान बड़ी संख्याओं को संभालने के लिए strings के रूप में पास किए जाने चाहिए
- Network IDs लक्ष्य blockchain से मेल खाना चाहिए (जैसे, Ethereum mainnet के लिए “1”)
सरल expressions के उदाहरण
सरल expression नियम स्थापित करने के उदाहरणों का अन्वेषण करें।1. Method Call Monitoring
Use Case: अपने smart contract में विशिष्ट function calls की निगरानी करें।- JavaScript
- Shell
- Python
2. State Change Monitoring
Use Case: contract state variables में परिवर्तनों की निगरानी करें, विशेष रूप से paused state या balance thresholds जैसे महत्वपूर्ण parameters को ट्रैक करने के लिए उपयोगी।- JavaScript
- Shell
- Python
3. Event Monitoring
Use Case: parameter filtering के साथ अपने contracts द्वारा emit किए गए विशिष्ट events की निगरानी करें।- JavaScript
- Shell
- Python
4. Native ETH Balance Monitoring
Use Case: alert तब जब किसी address का native ETH balance एक threshold से नीचे गिर जाए, उदाहरण के लिए एक relayer या operations wallet जिसे funded रहना चाहिए। alert को एक network और एक address तक सीमित करें, फिर native balance की तुलना threshold (wei में) से करें।- JavaScript
- Shell
- Python
5. ERC-20 Token Transfer Monitoring
Use Case: alert तब जब कोई treasury wallet Ethereum mainnet पर कम से कम 100,000 USDT भेजे।network expression alert को एक network तक सीमित करता है, और min_amount raw units में है (USDT के 6 decimals हैं)। ERC20 Token Transfer हर field का वर्णन करता है।
- JavaScript
- Shell
- Python
addresses को "match_any": true से बदलें, वैकल्पिक रूप से "address_tag" के साथ। हर project token को cover करने के लिए, token_addresses को हटा दें; amount bounds के लिए single token आवश्यक है, इसलिए min_amount और max_amount भी हटा दें।
किसी भी ERC-20 token से match करने के लिए, जिसमें project में न जोड़े गए tokens भी शामिल हैं, token_addresses को हटा दें और "match_non_project_contracts": true सेट करें। Spam और airdropped tokens जैसे बिना ज्ञात USD price वाले tokens को skip करने के लिए "require_dollar_value": true जोड़ें। यह expression तब fire होता है जब कोई भी priced ERC-20 token treasury tag वाले project address से बाहर जाता है:
जटिल Alert के उदाहरण
जटिल expression नियमों को दिखाने वाले उदाहरणों का अन्वेषण करें। जबexpressions array में हर expression संतुष्ट होगा तो alert ट्रिगर होगा।
1. Security Monitoring System
Use Case: कई शर्तों को मिलाकर व्यापक security monitoring:- Admin function calls की निगरानी करें
- बड़े value transfers को ट्रैक करें
- blacklisted addresses पर नज़र रखें
- महत्वपूर्ण parameters के state changes पर alert करें
- JavaScript
- Shell
- Python
2. DeFi Protocol Monitor
Use Case: DeFi pool की निम्न के लिए निगरानी करें:- बड़े trades/swaps
- Liquidity परिवर्तन
- विफल transactions
- JavaScript
- Shell
- Python
3. ERC20 Token Monitor
Use Case: Token monitoring, जिसमें शामिल है:- Transfer consistency जाँचें
- बड़े transfers की निगरानी
- Total supply परिवर्तन
- JavaScript
- Shell
- Python