trace_block
विधि एक निर्दिष्ट ब्लॉक में शामिल सभी लेनदेनों के लिए निष्पादन ट्रेस लौटाती है। यह एक ही ब्लॉक के भीतर होने वाले सभी कॉन्ट्रैक्ट इंटरैक्शन में व्यापक अंतर्दृष्टि प्रदान करता है।
यह विधि निर्दिष्ट ब्लॉक में सभी लेनदेनों के लिए ट्रेस की एक सरणी लौटाती है।
ब्लॉक संख्या (हेक्स ब्लॉक संख्या या "latest", "earliest", "pending")
ब्लॉक में सभी लेनदेनों के लिए ट्रेस ऑब्जेक्ट्स की सरणी
की गई कार्रवाई के बारे में जानकारी
कॉल प्रकार (जैसे, "call", "delegatecall", "staticcall")
प्रेषक का पता
इस कार्रवाई के लिए प्रदान किया गया गैस
इनपुट डेटा
प्राप्तकर्ता का पता
भेजा गया मूल्य (wei में)
कॉन्ट्रैक्ट प्रारंभीकरण कोड (create ट्रेस के लिए)
ब्लॉक का हैश
ब्लॉक संख्या
कॉल का परिणाम
उपयोग किया गया गैस की मात्रा
आउटपुट डेटा
बनाए गए कॉन्ट्रैक्ट का पता (create ट्रेस के लिए)
कॉन्ट्रैक्ट कोड (create ट्रेस के लिए)
सबट्रेस की संख्या
निष्पादन ट्रेस के भीतर पता पथ
लेनदेन का हैश
ब्लॉक में लेनदेन की अनुक्रमिक स्थिति
ट्रेस प्रकार (जैसे, "call", "create", "suicide")
त्रुटि संदेश (यदि लेनदेन विफल हुआ)
प्रतिक्रिया में ब्लॉक के सभी लेनदेनों के लिए ट्रेस शामिल होते हैं, प्रत्येक लेनदेन में संभावित रूप से कई ट्रेस होते हैं। ट्रेस एक पदानुक्रमित संरचना बनाते हैं:
traceAddress: []
) प्रारंभिक लेनदेन का प्रतिनिधित्व करते हैंtraceAddress
सरणी होती है जो कॉल ट्री में इसकी स्थिति को दर्शाती हैsubtraces
फील्ड दिखाता है कि एक ट्रेस में कितने प्रत्यक्ष बच्चे हैंयहां ट्रेस की संरचना का एक सरलीकृत दृश्य प्रतिनिधित्व है:
Transaction 1
├── Call to Contract A [traceAddress: []]
│ ├── Call from A to B [traceAddress: [0]]
│ └── Call from A to C [traceAddress: [1]]
│ └── Call from C to D [traceAddress: [1, 0]]
└── Call to Contract E [traceAddress: []]
Transaction 2
└── ... (समान संरचना)
विधि विभिन्न प्रकार के ट्रेस लौटाती है जिन्हें type
फील्ड द्वारा इंगित किया जाता है:
type: "call"
वाले ट्रेस के लिए, callType
फील्ड कॉल के प्रकार को इंगित करता है:
यदि कोई लेनदेन या सबट्रेस विफल हुआ:
error
फील्ड में कारण शामिल होगा (जैसे, "out of gas", "reverted")result
फील्ड null या अधूरा हो सकता है{
"jsonrpc": "2.0",
"id": 1,
"result": [
{
"action": {
"callType": "call",
"from": "0x8bb73bcb5d553b5a556358d27625323fd781d37",
"gas": "0x576e",
"input": "0x370158ea000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"to": "0x6090a6e47849629b7245dfa1ca21d94cd15878ef",
"value": "0x0"
},
"blockHash": "0x8512d367492371edf44ebcbbbd935bc434946dddc2b126cb558df5906012186c",
"blockNumber": 1059416,
"result": {
"gasUsed": "0x14a0",
"output": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
"subtraces": 0,
"traceAddress": [],
"transactionHash": "0x4c253746e8d0ab1d135df9711532c41a85ab33f069f1c733ceb0a6bf3e304503",
"transactionPosition": 0,
"type": "call"
},
{
"action": {
"callType": "call",
"from": "0x431957dbd818eaab7c5ed352430d1bf44dccd837",
"gas": "0x3d090",
"input": "0x4c37a69b00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001",
"to": "0x6090a6e47849629b7245dfa1ca21d94cd15878ef",
"value": "0x0"
},
"blockHash": "0x8512d367492371edf44ebcbbbd935bc434946dddc2b126cb558df5906012186c",
"blockNumber": 1059416,
"result": {
"gasUsed": "0x2b43",
"output": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
"subtraces": 0,
"traceAddress": [],
"transactionHash": "0x1eb099b3e9396b9d188b1c313261f6a13c7e13cb5c1afd3884847cc2c61289c0",
"transactionPosition": 1,
"type": "call"
}
]
}
trace_transaction
का उपयोग करें--gcmode=archive
के साथ और OpenEthereum/Nethermind)