Ruka hadi kwenye maudhui makuu

Kusambaza mkataba mahiri wako wa kwanza

mikataba mahiri
Remix
Solidity
kusambaza
Mwanzilishi
jdourlens
3 Aprili 2020
4 dakika za kusoma

Nadhani una msisimko kama sisi wa kusambaza na kuingiliana na mkataba mahiri wako wa kwanza kwenye mnyororo wa vitalu wa Ethereum.

Usiwe na wasiwasi, kwa kuwa ni mkataba mahiri wetu wa kwanza, tutausambaza kwenye mtandao wa majaribio wa ndani ili isikugharimu chochote kuusambaza na kucheza nao kadri utakavyo.

Kuandika mkataba wetu

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

Adding a new file in the Remix interface

Kwenye faili jipya, tutabandika msimbo ufuatao.

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

  • Mstari wa 4: Tunafafanua mkataba wenye jina Counter.
  • Mstari wa 7: Mkataba wetu unahifadhi nambari kamili moja isiyo na saini inayoitwa count inayoanzia 0.
  • Mstari wa 10: Kazi ya kwanza itabadilisha hali ya mkataba na increment() kigezo chetu cha count.
  • Mstari wa 15: Kazi ya pili ni kipataji (getter) tu ili kuweza kusoma thamani ya kigezo cha count nje ya mkataba mahiri. Kumbuka kwamba, kwa kuwa tulifafanua kigezo chetu cha count kama cha umma hii si lazima lakini imeonyeshwa kama mfano.

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

Kusambaza mkataba wetu

Kwa kuwa tumeandika mkataba mahiri wetu wa kwanza kabisa, sasa tutausambaza kwenye mnyororo wa vitalu ili kuweza kucheza nao.

Kusambaza mkataba mahiri kwenye mnyororo wa vitalu kwa kweli ni kutuma tu muamala ulio na msimbo wa mkataba mahiri uliokusanywa bila kubainisha wapokeaji wowote.

Kwanza tutakusanya mkataba kwa kubofya ikoni ya kukusanya (compile) upande wa kushoto:

The compile icon in the Remix toolbar

Kisha bofya kitufe cha kukusanya (compile):

The compile button in the Remix solidity compiler

Unaweza kuchagua chaguo la “Kukusanya kiotomatiki” (Auto compile) ili mkataba uwe unakusanywa kila wakati unapohifadhi maudhui kwenye kihariri cha maandishi.

Kisha nenda kwenye skrini ya "sambaza na uendeshe miamala" (deploy and run transactions):

The deploy icon in the Remix toolbar

Mara tu unapokuwa kwenye skrini ya "sambaza na uendeshe miamala", hakikisha mara mbili kwamba jina la mkataba wako linaonekana na ubofye Sambaza (Deploy). Kama unavyoweza kuona juu ya ukurasa, mazingira ya sasa ni “JavaScript VM” ambayo inamaanisha kwamba tutasambaza na kuingiliana na mkataba mahiri wetu kwenye mnyororo wa vitalu wa majaribio wa ndani ili kuweza kujaribu haraka na bila ada yoyote.

The deploy button in the Remix solidity compiler

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

Ikiwa utabofya kitufe cha count au getCount, kwa kweli itarejesha maudhui ya kigezo cha count cha mkataba na kuionyesha. Kwa kuwa bado hatujaita kazi ya increment, inapaswa kuonyesha 0.

The function button in the Remix solidity compiler

Sasa tuite kazi ya increment kwa kubofya kitufe. Utaona logi za miamala inayofanywa zikionekana chini ya dirisha. Utaona kwamba logi ni tofauti unapobonyeza kitufe ili kurejesha data badala ya kitufe cha increment. Ni kwa sababu kusoma data kwenye mnyororo wa vitalu hakuhitaji miamala yoyote (kuandika) au ada. Kwa sababu kurekebisha tu hali ya mnyororo wa vitalu kunahitaji kufanya muamala:

A log of transactions

Baada ya kubonyeza kitufe cha kuongeza (increment) ambacho kitazalisha muamala wa kuita kazi yetu ya increment() ikiwa tutabofya tena kwenye vitufe vya count au getCount tutasoma hali mpya iliyosasishwa ya mkataba mahiri wetu huku kigezo cha count kikiwa kikubwa kuliko 0.

Newly updated state of the smart contract

Katika mafunzo yajayo, tutaangazia jinsi unavyoweza kuongeza matukio kwenye mikataba mahiri yako. Kuweka logi za matukio ni njia rahisi ya kutatua mkataba mahiri wako na kuelewa kile kinachotokea wakati wa kuita kazi.