उदाहरण: 2 DAI mint करना
हम0xe2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2 से भेजे गए holder 0xe58b9ee93700a616b50509c8292977fa7a0f8ce1 को 2 DAI (2000000000000000000 wei) mint करने का simulate करेंगे।
DAI का mint function एक wards mapping द्वारा संरक्षित है: केवल पंजीकृत ward addresses ही mint कर सकते हैं। sender Mainnet पर ward नहीं है, इसलिए एक सादा simulation revert हो जाता है। override wards[0xe2e2…e2e2] = 1 इसे simulation की अवधि के लिए एक ward बनाता है।
mint step बनाएँ
- Simulator पर जाएँ और New Simulation पर क्लिक करें।
- Contract field में,
0x6b175474e89094c44da98b954eedeac495271d0fpaste करें और Dai चुनें। - Function field में mint चुनें।
- usr को
0xe58b9ee93700a616b50509c8292977fa7a0f8ce1पर सेट करें और wad को2000000000000000000पर। - step के From को
0xe2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2पर सेट करें।
state override जोड़ें
- step fields के नीचे State overrides section का विस्तार करें और Add State Override पर क्लिक करें। override का contract step के target (Dai) पर डिफ़ॉल्ट होता है।
- Storage variables के अंतर्गत, key
wards[0xe2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2]और value1दर्ज करें। key field contract के decoded storage variables (wards[],balanceOf[],totalSupply, और इसी तरह) का सुझाव देता है; brackets के अंदर mapping key भरें। - जोड़ी जोड़ने के लिए value के आगे + बटन पर क्लिक करें। committed जोड़ी Storage variables के तहत एक row के रूप में दिखाई देती है। Tenderly इसे computed storage slot hash के रूप में store करता है।

override जोड़ी को + बटन के साथ commit करना होगा। एक uncommitted key/value entry को अमान्य माना जाता है और simulation शुरू नहीं होगी।
चलाएँ और निरीक्षण करें
- Simulate पर क्लिक करें। mint सफलतापूर्वक execute होता है क्योंकि simulation sender को एक ward के रूप में देखती है।

- Events tab
2000000000000000000wei के लिए zero address से holder तकTransferevent दिखाता है।

- State tab लागू State Overrides (ward slot
1पर सेट) और परिणामी State Changes को सूचीबद्ध करता है: holder काbalanceOf0से2000000000000000000तक जाना, बढ़ा हुआtotalSupply, और sender का nonce।

Raw storage keys
decodedmapping[key] फ़ॉर्म के बजाय, आप raw 32-byte storage slot को सीधे दर्ज कर सकते हैं। storage position p पर एक Solidity mapping के लिए, mapping[k] के लिए slot keccak256(abi.encode(k, p)) है। ऊपर wards override इस पर resolve होता है: