Ruka kwenda kwenye maudhui makuu

Kupeleka mkataba-erevu wako wa kwanza

mikataba erevu
Remix
Solidity
upelekaji
Mwanzo
jdourlens
3 Aprili 2020
4 soma ndani ya dakika

Nadhani una msisimko kama sisi kupeleka na kuingiliana na mkataba-erevu wako wa kwanza kwenye mnyororo wa bloku wa Ethereum.

Usijali, kwa kuwa ni mkataba-erevu wetu wa kwanza, tutaupeleka kwenye mtandao wa majaribio wa ndani kwa hivyo haitakugharimu chochote kupeleka na kucheza nao kadri upendavyo.

Kuandika mkataba wetu

Hatua ya kwanza ni kutembelea Remix (opens in a new tab) na kuunda faili mpya. Kwenye sehemu ya juu kushoto ya kiolesura cha Remix ongeza faili mpya na uweke jina la faili unalotaka.

Kuongeza faili mpya katika kiolesura cha Remix

Katika faili mpya, tutabandika msimbo ufuatao.

1// SPDX-License-Identifier: MIT
2pragma solidity >=0.5.17;
3
4contract Counter {
5
6 // Kigezo cha umma cha aina ya nambari kamili isiyo na alama ili kuweka idadi ya hesabu
7 uint256 public count = 0;
8
9 // Kitendakazi kinachoongeza kaunta yetu
10 function increment() public {
11 count += 1;
12 }
13
14 // Kipataji kisicho lazima cha kupata thamani ya hesabu
15 function getCount() public view returns (uint256) {
16 return count;
17 }
18
19}

Ikiwa umezoea programu unaweza kukisia kwa urahisi kile programu hii inafanya. Hapa kuna maelezo mstari kwa mstari:

  • Mstari wa 4: Tunafafanua mkataba wenye jina la Counter.
  • Mstari wa 7: Mkataba wetu unahifadhi nambari kamili moja isiyo na alama inayoitwa count inayoanzia 0.
  • Mstari wa 10: Kitendakazi cha kwanza kitabadilisha hali ya mkataba na kuongeza kigezo chetu cha count.
  • Mstari wa 15: Kitendakazi cha pili ni kipataji tu ili kuweza kusoma thamani ya kigezo cha count nje ya mkataba-erevu. Kumbuka kwamba, kwa vile tulifafanua kigezo chetu cha count kama cha umma hii si lazima lakini inaonyeshwa kama mfano.

Hayo ndiyo yote kwa mkataba-erevu wetu wa kwanza rahisi. Kama unavyoweza kujua, inaonekana kama darasa kutoka kwa lugha za OOP (Upangaji Unaolenga Kitu) kama Java au C++. Sasa ni wakati wa kucheza na mkataba wetu.

Kupeleka mkataba wetu

Kwa vile tumeandika mkataba-erevu wetu wa kwanza kabisa, sasa tutaupeleka kwenye mnyororo wa bloku ili tuweze kucheza nao.

Kupeleka mkataba-erevu kwenye mnyororo wa bloku ni kutuma tu muamala wenye msimbo wa mkataba-erevu ulioandaliwa bila kubainisha wapokeaji wowote.

Kwanza tutaandaa mkataba kwa kubofya aikoni ya kuandaa iliyo upande wa kushoto:

Aikoni ya kuandaa katika upau wa vidhibiti wa Remix

Kisha bofya kwenye kitufe cha kuandaa:

Kitufe cha kuandaa katika kiandaaji cha Remix solidity

Unaweza kuchagua chaguo la “Kuandaa Kiotomatiki” ili mkataba uwe unaandaliwa kila wakati unapohifadhi maudhui kwenye kihariri cha maandishi.

Kisha nenda kwenye skrini ya "peleka na endesha miamala":

Aikoni ya kupeleka katika upau wa vidhibiti wa Remix

Ukishakuwa kwenye skrini ya "peleka na endesha miamala", hakikisha mara mbili kwamba jina la mkataba wako linaonekana na ubofye Peleka. Kama unavyoona juu ya ukurasa, mazingira ya sasa ni “JavaScript VM” hii inamaanisha kuwa tutapeleka na kuingiliana na mkataba-erevu wetu kwenye mnyororo wa bloku wa majaribio wa ndani ili kuweza kupima haraka zaidi na bila ada zozote.

Kitufe cha kupeleka katika kiandaaji cha Remix solidity

Mara tu unapobofya kitufe cha “Peleka”, utaona mkataba wako ukionekana chini. Bofya mshale ulio upande wa kushoto ili kuipanua ili tuone maudhui ya mkataba wetu. Hiki ni kigezo chetu cha counter, kitendakazi chetu cha increment() na kipataji cha getCounter().

Ukibofya kitufe cha count au getCount, kwa kweli kitachukua maudhui ya kigezo cha count cha mkataba na kuyaonyesha. Kwa kuwa bado hatujaita kitendakazi cha increment, inapaswa kuonyesha 0.

Kitufe cha kitendakazi katika kiandaaji cha Remix solidity

Sasa hebu tuite kitendakazi cha increment kwa kubofya kitufe. Utaona kumbukumbu za miamala inayofanywa zikionekana chini ya dirisha. Utaona kuwa kumbukumbu ni tofauti unapobonyeza kitufe cha kuchukua data badala ya kitufe cha increment. Ni kwa sababu kusoma data kwenye mnyororo wa bloku hakuhitaji miamala yoyote (kuandika) au ada. Kwa sababu kurekebisha tu hali ya mnyororo wa bloku ndiko kunahitaji kufanya muamala:

Kumbukumbu ya miamala

Baada ya kubonyeza kitufe cha increment ambacho kitazalisha muamala wa kuita kitendakazi chetu cha increment(), tukibofya tena vitufe vya count au getCount tutasoma hali mpya iliyosasishwa ya mkataba-erevu wetu huku kigezo cha count kikiwa kikubwa kuliko 0.

Hali mpya iliyosasishwa ya mkataba-erevu

Katika mafunzo yajayo, tutaangazia jinsi unavyoweza kuongeza matukio kwenye mikataba-erevu yako. Kurekodi matukio ni njia rahisi ya kutatua mkataba-erevu wako na kuelewa kinachoendelea unapoita kitendakazi.

Ukurasa ulihaririwa mwisho: 3 Machi 2026

Umesaidika na mafunzo haya?