Skip to main content
State को revert करना contracts और protocols की testing करते समय सहायक हो सकता है जब आप snapshot स्थिति तक के सभी state changes को छोड़ना चाहते हैं।
State को revert करने के बजाय, इसके बजाय मौजूदा Virtual Environment को fork करने पर विचार करें, और अपनी testing एक disposable working copy पर करें।

एक snapshot पर revert करना

Revert distance सीमा

एकल evm_revert अधिकतम 2000 blocks तक रोल बैक कर सकता है। यदि snapshot वर्तमान block से 2000 से अधिक blocks पीछे है, तो call इसके साथ विफल हो जाती है:
यह उन Virtual Environments को प्रभावित करता है जो continuously blocks उत्पादित करते हैं (उदाहरण के लिए, blocks minting करने वाला एक scheduled job), जहां target snapshot जल्दी से 2000-block window के बाहर गिर सकता है। और पीछे के बिंदु पर वापस जाने के लिए, revert करने के बजाय target ऐतिहासिक block पर Virtual Environment को clone करें।

एक ऐतिहासिक block पर clone करें

एक Virtual Environment प्राप्त करने के लिए जिसका state किसी विशिष्ट पिछले block से match करता है, उसे उस block पर clone करें। Clone एक नया, स्वतंत्र Virtual Environment है जो चुने गए बिंदु पर fork किया गया है, जबकि source अछूता छोड़ दिया जाता है। कोई distance सीमा नहीं है, इसलिए 2000 blocks से अधिक पीछे के block तक पहुंचने का यह तरीका है। Dashboard में, Activity tab खोलें और उस transaction पर clone action का उपयोग करें जिस block पर आप वापस जाना चाहते हैं। नया Virtual Environment उस transaction के block के state के साथ बनाया जाता है।
Screenshot placeholder: Activity tab पर per-transaction clone action।
एक ऐतिहासिक block पर cloning सही दृष्टिकोण भी है जब आप “किसी विशिष्ट block number पर fork” करना चाहते हैं। एक fork हमेशा latest block से शुरू होता है, जबकि clone किसी भी ऐतिहासिक block को लक्षित कर सकता है।