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 द्वारा दर्शाई गई सभी शर्तें पूरी हो जाती हैं।
आप delivery channels केवल Dashboard के माध्यम से बना सकते हैं, लेकिन आप उन्हें API का उपयोग करके प्राप्त कर सकते हैं।
Authentication
alerts बनाने से पहले, आपको authentication सेट अप करने और अपने प्रोजेक्ट की पहचान करने की आवश्यकता होगी:- JavaScript
- Shell
- Python
Expression प्रकार
आप Alerts के trigger नियम निर्दिष्ट करने के लिए विभिन्न expression प्रकारों का उपयोग कर सकते हैं।| Expression Type | Monitoring | Main Use Case | Required Arguments | Optional Arguments |
|---|---|---|---|---|
method_call | contracts में विशिष्ट function calls (direct या internal transactions लागू) | जब महत्वपूर्ण functions कॉल होते हैं तो ट्रैक करें | - line_number: वह line जहाँ function परिभाषित है; call_position: कॉल की स्थिति (“first”, “last”, “any”) | कोई नहीं |
whitelisted_caller_addresses | विशिष्ट addresses से कॉल के लिए | Allow-list आधारित access control | - addresses: Ethereum addresses का Array | कोई नहीं |
blacklisted_caller_addresses | ब्लॉक किए गए addresses से कॉल के लिए | Block-list आधारित access control | - addresses: Ethereum addresses का Array | कोई नहीं |
contract_address | विशिष्ट contract interactions | contract के साथ सभी interactions को ट्रैक करें | - address: Contract address | - transaction_type: “direct”, “source”, या “internal” |
network | विशिष्ट networks पर events | Multi-chain monitoring | - network_id: Network/chain ID | कोई नहीं |
tag | विशिष्ट tags वाले contracts | Group-आधारित monitoring | - tag: Tag string | - transaction_type: “direct”, “source”, या “internal” |
tx_status | Transaction सफलता/विफलता | विफल transactions को ट्रैक करें | कोई नहीं | - transaction_success: boolean |
function_params | Function parameter values | विशिष्ट function inputs को ट्रैक करें | - address: Contract address; function_line_number: Function परिभाषा line; parameter_conditions: शर्तों का Array | - Parameter विशिष्ट विकल्प |
tx_value | Transaction value | बड़े transfers को ट्रैक करें | - transaction_value: wei में राशि; operator: Comparison operator | कोई नहीं |
emitted_log | Contract events | विशिष्ट events को ट्रैक करें | - address: Contract address; event_name: Event name; event_id: Event signature | - match_any: boolean; decode_events: boolean; parameter_conditions: शर्तों का Array |
state_change | Contract state changes | storage changes को ट्रैक करें | - address: Contract address; parameter_conditions: शर्तों का Array | - Comparison विकल्प (threshold, percentage) |
view_function | Read-only function results | गणना किए गए मान ट्रैक करें | - address: Contract address; input: ABI encoded function data; network_id: Network ID | - parameter_condition: Value comparison |
eth_balance | ETH balance changes | balance thresholds को ट्रैक करें | - address: Contract address; threshold: wei में Balance; operator: Comparison operator | कोई नहीं |
erc20_transfer_matcher | ERC20 transfer consistency | transfer mechanics को validate करें | - address: Token address; log_name: Event name; balances: State variable name | कोई नहीं |
tx_error | transaction errors के लिए | अप्रत्याशित विफलताओं को ट्रैक करें | कोई नहीं | - addresses_to_ignore: addresses का Array |
tx_internal_error | internal tx errors के लिए | internal call विफलताओं को ट्रैक करें | कोई नहीं | - addresses_to_match: addresses का Array |
no_action | निष्क्रियता के लिए | contract निष्क्रियता को ट्रैक करें | - check_after_seconds: Time threshold | - no_log: Log शर्तें; no_transaction: Transaction शर्तें |
sandwich_transaction | sandwich attacks के लिए | MEV गतिविधि को ट्रैक करें | - address: Contract address | - transaction_type: “direct”, “source”, या “internal” |
नोट्स
- comparison operators (
operator) के लिए, मान्य मान हैं:>,>=,<,<=,==,!=,contains,notContains - Parameter types (
parameter_type) में शामिल हैं:uint,int,bool,address,string,byte - सभी 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
जटिल 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 protocol की निगरानी करें:- बड़े trades/swaps
- महत्वपूर्ण price प्रभाव
- Liquidity परिवर्तन
- विफल transactions
- Sandwich attacks
- JavaScript
- Shell
- Python
3. निष्क्रियता Alerts के साथ ERC20 Token Monitor
Use Case: व्यापक token monitoring जिसमें शामिल है:- Transfer monitoring
- Balance जांच
- State consistency जांच
- निष्क्रियता monitoring
- JavaScript
- Shell
- Python