Ruka kwenda kwenye maudhui makuu

Kuweka data kutoka kwa mikataba-erevu na matukio

smart contracts
remix
solidity
events
Intermediate
jdourlens
3 Aprili 2020
2 minute read

Katika Solidity, matukio ni ishara zinazotumwa ambazo mikataba-erevu inaweza kuzichochea. Mifumo mtawanyo ya kimamlaka, au kitu chochote kilichounganishwa na API ya Ethereum JSON-RPC, kinaweza kusikiliza matukio haya na kutenda ipasavyo. Tukio linaweza pia kuwekewa faharasa ili historia ya tukio iweze kutafutwa baadaye.

Matukio

Tukio la kawaida zaidi kwenye mnyororo wa bloku wa Ethereum wakati wa kuandika makala hii ni tukio la Uhamisho linalotolewa na tokeni za ERC20 wakati mtu anahamisha tokeni.

1event Transfer(address indexed from, address indexed to, uint256 value);

Sahihi ya tukio hutangazwa ndani ya msimbo wa mkataba na inaweza kutolewa kwa kutumia neno msingi "emit". Kwa mfano, tukio la uhamisho huweka kumbukumbu ya nani aliyetuma uhamisho (from), kwa nani (to) na ni tokeni ngapi zilihamishwa (value).

Tukirejea kwenye mkataba-erevu wetu wa Counter na kuamua kuweka kumbukumbu kila wakati thamani inapobadilishwa. Kwa vile mkataba huu haukukusudiwa kupelekwa bali kutumika kama msingi wa kuunda mkataba mwingine kwa kuuongeza: unaitwa mkataba dhahania. Katika mfano wetu wa kaunta, ingeonekana hivi:

1pragma solidity 0.5.17;
2
3contract Counter {
4
5 event ValueChanged(uint oldValue, uint256 newValue);
6
7 // Tofauti ya kibinafsi ya aina ya nambari kamili isiyo na alama ili kuweka idadi ya hesabu
8 uint256 private count = 0;
9
10 // Kazi inayo ongeza kaunta yetu
11 function increment() public {
12 count += 1;
13 emit ValueChanged(count - 1, count);
14 }
15
16 // Kichukuzi cha kupata thamani ya hesabu
17 function getCount() public view returns (uint256) {
18 return count;
19 }
20
21}
Onyesha yote

Kumbuka kwamba:

  • Mstari wa 5: tunatangaza tukio letu na kile linachobeba, thamani ya zamani na thamani mpya.

  • Mstari wa 13: Tunapoongeza tofauti yetu ya hesabu, tunatoa tukio.

Tukipeleka mkataba sasa na kuita kazi ya 'increment', tutaona kwamba Remix itaionyesha kiotomatiki ukibofya kwenye muamala mpya ndani ya safu inayoitwa logs.

Picha ya skrini ya Remix

Kumbukumbu ni muhimu sana kwa utatuzi wa mikataba-erevu yako lakini pia ni muhimu ikiwa unaunda programu zinazotumiwa na watu tofauti na kurahisisha kufanya uchanganuzi ili kufuatilia na kuelewa jinsi mkataba-erevu wako unavyotumika. Kumbukumbu zinazotokana na miamala huonyeshwa katika wachunguzi wa tofali maarufu na unaweza pia kwa mfano kuzitumia kuunda hati za offchain kwa ajili ya kusikiliza matukio maalum na kuchukua hatua yanapotokea.

Ukurasa ulihaririwa mwisho: 15 Februari 2026

Umesaidika na mafunzo haya?