trace_filter
विधि आपको विभिन्न मानदंडों जैसे from/to पतों, ब्लॉक रेंज और ट्रेस प्रकारों के आधार पर ब्लॉक्स की एक श्रेणी के भीतर विशिष्ट ट्रेस खोजने की अनुमति देती है। यह विशिष्ट कॉन्ट्रैक्ट्स या खातों के लिए ब्लॉकचेन गतिविधि का विश्लेषण करने का एक शक्तिशाली तरीका प्रदान करता है।
यह विधि निर्दिष्ट फिल्टर मानदंडों के आधार पर लेनदेन ट्रेस प्राप्त करती है।
फिल्टर पैरामीटर्स
किस ब्लॉक से (हेक्स ब्लॉक संख्या या "latest", "earliest", "pending")
किस ब्लॉक तक (हेक्स ब्लॉक संख्या या "latest", "earliest", "pending")
प्रेषक पतों द्वारा ट्रेस फ़िल्टर करें (पता स्ट्रिंग्स की सरणी)
प्राप्तकर्ता पतों द्वारा ट्रेस फ़िल्टर करें (पता स्ट्रिंग्स की सरणी)
दिए गए इंडेक्स के बाद ऑफसेट ट्रेस
वापस लौटाने के लिए ट्रेस की अधिकतम संख्या
ट्रेस ऑब्जेक्ट्स की सरणी
की गई कार्रवाई के बारे में जानकारी
कॉल का प्रकार (जैसे, "call", "delegatecall", "staticcall")
प्रेषक पता
प्राप्तकर्ता पता
निष्पादन के इस भाग के लिए प्रदान किया गया गैस
कॉल डेटा इनपुट
wei में स्थानांतरित मूल्य
कंस्ट्रक्टर इनिशियलाइजेशन कोड ("create" ट्रेस के लिए)
कॉन्ट्रैक्ट का पता ("suicide" ट्रेस के लिए)
रिफंड प्राप्त करने वाला पता ("suicide" ट्रेस के लिए)
विनाश के समय कॉन्ट्रैक्ट का बैलेंस ("suicide" ट्रेस के लिए)
इस ट्रेस वाले ब्लॉक का हैश
इस ट्रेस वाला ब्लॉक नंबर
कॉल का परिणाम
उपयोग किया गया गैस की मात्रा
कॉल से आउटपुट डेटा
बनाए गए कॉन्ट्रैक्ट का पता ("create" ट्रेस के लिए)
डिप्लॉय किया गया कॉन्ट्रैक्ट कोड ("create" ट्रेस के लिए)
सबट्रेस की संख्या
कॉल ट्री में ट्रेस स्थान का पता पथ
ट्रेस किए जा रहे लेनदेन का हैश
ब्लॉक में लेनदेन की अनुक्रमिक स्थिति
ट्रेस का प्रकार (call, create, suicide)
यदि कॉल विफल हो गया तो त्रुटि संदेश (वैकल्पिक)
पैरामीटर | प्रकार | विवरण |
---|---|---|
fromBlock | string | शुरुआती ब्लॉक संख्या (हेक्स) या टैग ("latest", "earliest", "pending") |
toBlock | string | अंतिम ब्लॉक संख्या (हेक्स) या टैग ("latest", "earliest", "pending") |
fromAddress | array | फ़िल्टर करने के लिए प्रेषक पतों की वैकल्पिक सरणी |
toAddress | array | फ़िल्टर करने के लिए प्राप्तकर्ता पतों की वैकल्पिक सरणी |
after | integer | वैकल्पिक पेजिनेशन पैरामीटर - दिए गए इंडेक्स के बाद ऑफसेट ट्रेस |
count | integer | वापस लौटाने के लिए ट्रेस की वैकल्पिक अधिकतम संख्या |
{
"jsonrpc": "2.0",
"id": 1,
"result": [
{
"action": {
"callType": "call",
"from": "0x8bbb73bcb5d553b5a556358d27625323fd781d37",
"to": "0x6090a6e47849629b7245dfa1ca21d94cd15878ef",
"gas": "0x12a94",
"input": "0x0000000000000000000000000000000000000000000000000000000000000000",
"value": "0x0"
},
"blockHash": "0x7eb25504e4c202cf3d62fd585d3e238f592c780cca82dacb2ed3cb5b38883add",
"blockNumber": 3928366,
"result": {
"gasUsed": "0xd979",
"output": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
"subtraces": 1,
"traceAddress": [],
"transactionHash": "0x17104ac9d3312d8c136b7f44d4b8b47852618065ebfa534bd2d3b5ef218ca1f3",
"transactionPosition": 2,
"type": "call"
}
]
}
विशिष्ट प्रश्नों का उत्तर देने के लिए विभिन्न फिल्टर संयोजनों का उपयोग किया जा सकता है:
किसी विशिष्ट कॉन्ट्रैक्ट पर सभी कॉल खोजने के लिए:
{
"toAddress": ["0x1234567890123456789012345678901234567890"]
}
किसी कॉन्ट्रैक्ट से सभी आंतरिक लेनदेन खोजने के लिए:
{
"fromAddress": ["0x1234567890123456789012345678901234567890"]
}
दो विशिष्ट पतों के बीच इंटरैक्शन खोजने के लिए:
{
"fromAddress": ["0x1234567890123456789012345678901234567890"],
"toAddress": ["0xabcdef0123456789abcdef0123456789abcdef01"]
}
एक विशिष्ट ब्लॉक रेंज के भीतर गतिविधि का विश्लेषण करने के लिए:
{
"fromBlock": "0x429d3b",
"toBlock": "0x429d3d"
}
बड़े परिणाम सेट के लिए, परिणामों के माध्यम से पेजिनेट करने के लिए after
और count
पैरामीटर का उपयोग करें:
{ "after": 0, "count": 100, ... }
{ "after": 100, "count": 100, ... }
after
को count
मान से बढ़ाते रहेंविधि विभिन्न प्रकार के ट्रेस लौटाती है:
--gcmode=archive
के साथ और OpenEthereum/Nethermind)