583 HENOINA
583 HENOINA

Solidity dia amin'ny Ethereum Inona no atao hoe Tact amin'ny TON - Ahoana ny fananganana fifanarahana marani-tsaina momba ny fifidianana amin'ny TON amin'ny fampiasana Tact

ny Favour Kelvin8m2025/03/23
Read on Terminal Reader

Lava loatra; Mamaky

Ny Open Network (TON) dia rojom-bahoaka, tarihin'ny vondrom-piarahamonina izay manohana ny fampiharana tsy miankina. Ny TON dia manana fiteny efatra samihafa hanoratana fifanarahana marani-tsaina: Tact, Tolk, FunC, ary Fift. Ity torolalana ity dia mifantoka amin'ny fiteny Tact, ary ho hitantsika ny fomba ampiasana azy io amin'ny fananganana fifanarahana fifidianana fototra.
featured image - Solidity dia amin'ny Ethereum Inona no atao hoe Tact amin'ny TON - Ahoana ny fananganana fifanarahana marani-tsaina momba ny fifidianana amin'ny TON amin'ny fampiasana Tact
Favour Kelvin HackerNoon profile picture

Matetika, rehefa manomboka mianatra manoratra fifanarahana marani-tsaina ny olona, ny zavatra voalohany henony dia Solidity sy Ethereum. Izany koa no zavatra reko voalohany. Izany no ifantohan'ny ankamaroan'ny fampianarana, ary noho ny antony tsara. Ny solidity dia nahafahana nanoratra programa izay miaina amin'ny blockchain, ary i Ethereum no lasa toerana nanombohan'ny olona maro.


Saingy tsy ny Solidity irery no fiteny fifanarahana marani-tsaina any. Ary ny Ethereum dia tsy ny blockchain irery ihany no manohana ny fampiharana tsy miankina.


Misy ihany koa ny TON , fanafohezana ny The Open Network . Noforonin'ny Telegram izy io, saingy rojom-piarahamonina entin'ny vondrom-piarahamonina. Izy io dia haingana, maivana ary mitantana zavatra hafa kely amin'ny mety ho zatra amin'ny Ethereum. Tafiditra ao anatin'izany ny fomba fanoratana fifanarahana marani-tsaina. Rehefa nanomboka nandinika ny antontan-taratasin'ny TON aho, dia nahita fiteny efatra samihafa aho hanoratana fifanarahana marani-tsaina: Tact, Tolk, FunC, ary Fift . Tsy hiditra lalina amin’ny efatra eto aho.


Ity torolalana ity dia mifantoka amin'ny fiteny Tact, ary ho hitantsika ny fomba ampiasana azy io mba hananganana fifanarahana ara-pifidianana fototra izay ahafahan'ny mpampiasa mandatsa-bato sy manamarina ny valiny amin'ny rojo.

Nahoana aho no nanapa-kevitra ny hianatra mahay mandanjalanja?

Ny ecosystem TON dia tena manohana fiteny maro, ny tsirairay amin'izy ireo dia manolotra tranga fampiasana samihafa, ny haavon'ny abstraction ary ny traikefan'ny mpamorona. Ity misy topimaso fohy momba ny tsirairay amin'izy ireo:


  • FunC no fiteny nentim-paharazana hanoratana fifanarahana marani-tsaina TON. Ambany izy io ary manome anao fifehezana tsara ny fomba fiasan'ny fifanarahanao eo ambanin'ny saron-tava. Mahery izy io, saingy midika koa izany fa mila mahatakatra ny fomba fiasan'ny TON Virtual Machine (TVM) ianao, ao anatin'izany ny foto-kevitra toy ny fanodinkodinana stack, ny fandrindrana fahatsiarovana ary ny fanatanterahana ny tanjona. Ny syntax dia somary mitovitovy amin'ny C, izay mety ho tsy mahazatra raha mbola tsy niasa tamin'io fomba fiteny io ianao taloha.
  • Fift dia matetika ampiasaina miaraka amin'ny FunC. Fiteny mifototra amin'ny stack izy io izay matetika ampiasaina amin'ny fifandraisana mivantana amin'ny TVM ary ampiasaina amin'ny fametrahana, fametahana ary fanaovana kajy amin'ny rojo. Tsy ny fiteny atombokao matetika amin'ny fanoratana fifanarahana feno hendry, fa zava-dehibe amin'ny fizotran'ny fampandrosoana ankapobeny amin'ny TON.
  • Tolk dia fanampim-baovao vaovao izay mbola mivoatra. Avy amin'ny zavatra nangoniko, mikendry ny hanatsara ny fitaovana sy ny fampifanarahana amin'ny fiteny avo lenta izy io. Mampanantena izy io, saingy mbola tsy nekena na voarakitra an-tsoratra.
  • Ny Tact dia fiteny avo lenta izay natao manokana hahatonga ny TON smart contract development ho mora idirana sy ho sariaka amin'ny developer. Ny Tact dia manamora ny fahasarotan'ny ambaratonga ambany ary mamela anao hifantoka amin'ny fanoratana ny lojikao amin'ny fomba madio sy mora vakiana. Ny syntax dia manakaiky kokoa ny zavatra hitanao ao amin'ny TypeScript na Solidity, izay manamora kokoa ny fanombohana nefa tsy mila mitsoraka lalina ao anatin'ny TVM.


Ny Tact dia manome lalana haingana kokoa amin'ny fananganana sy fametrahana fifanarahana amin'ny TON blockchain.

Fahatakarana ny fomba fiasan'ny Tact

Alohan'ny hanombohantsika manoratra kaody dia zava-dehibe ny mahatakatra ny fomba firafitry ny fifanarahana smart Tact. Ny fifanarahana Tact mahazatra dia misy singa fototra vitsivitsy:


  • fanakanana contract - Eto ianao no mamaritra ny anaran'ny fifanarahanao ary manambara ny fari-piadidiana rehetra.

  • init block - Izy io no manomboka ny fari-piainan'ny fifanarahana ary mametraka ny fepetra fanombohana ny fifanarahana. Ity sakana ity dia mandeha indray mandeha amin'ny fotoana fametrahana.

  • receive sakana - Toy ny mpihaino hetsika ireo. Mitantana ireo hafatra ho avy izy ireo ary mamaritra ny fihetsiky ny fifanarahanao amin'izy ireo.

  • Fonctions getter ( get fun ) – Fampiasa tsy vakiana fotsiny ireo izay ahafahan'ny mpampiasa na fifanarahana hafa manontany ny toetry ny fifanarahana nefa tsy manova izany.


Ny Tact dia mampiasa fifandraisana mifototra amin'ny hafatra, izany no fomba fiasan'ny fifandraisana rehetra amin'ny TON. Ny fifanarahana tsirairay dia mandray hafatra ary manodina azy amin'ny sakana receive azy manokana. Ity rafitra mifototra amin'ny hafatra ity dia manampy amin'ny fandaminana ny lojikan'ny fifanarahana amin'ny fomba modular sy azo karakaraina.


Andao hampihatra izany amin'ny ohatra tena izy amin'ny fananganana fifanarahana fifidianana tsotra.

Manangana ny fifanekenao amin'ny fifidianana voalohany amin'ny Tact (Mampiasa ny IDE Web TON)

Ato amin'ity fizarana ity dia handeha amin'ny fomba fampiharana rafitra fifidianana fototra amin'ny fampiasana ny Tact isika. Ity fifanarahana fandatsaham-bato ity dia ahafahan'ny mpampiasa mifidy ireo kandidà efa voafaritra mialoha ary manara-maso ny isan'ny vato azon'ny kandidà tsirairay.


Hanao ny zava-drehetra ao anatin'ny TON Web IDE izahay, izay fitaovana ao anaty navigateur ahafahanao manoratra, manangana, ary mitsapa ny fifanarahanao nefa tsy mametraka na inona na inona eo an-toerana.

Dingana 1 - Sokafy ny TON Web IDE

  • Mandehana any amin'ny https://ide.ton.org .
  • Tsindrio Create a new project . Ao amin'ny popup:
    • Ataovy azo antoka fa ao amin'ny Tact ny fiteny.
    • Safidio ny Contract Blank ho modelyo.
    • Lazao anarana toy ny VotingContract ny tetikasanao.
    • Tsindrio + Mamorona .


Dingana 2 - Manoratra ny fehezan-dalàna momba ny fifanekena

Aorian'ny famoronana ny tetikasanao dia sokafy ny rakitra main.tact . Hahita fanamboarana boilerplate ianao:

 // Import the Deployable trait so the contract can be deployed easily import "@stdlib/deploy"; contract BlankContract with Deployable { init() { } }
  • import "@stdlib/deploy"; ilaina amin'ny fametrahana ny asa ary tsy tokony esorina amin'ny code.
  • BlankContract no anaran'ny toerana misy anao.
  • Ny sakana init() dia mandeha indray mandeha ihany rehefa apetraka ny fifanarahana ary ampiasaina hanombohana ny fari-piadidiana.


Andeha hojerentsika izao ny kaodinay.


Voalohany, hamaritra ny rafitry ny hafatra momba ny fifidianana isika:

 // Import the Deployable trait so the contract can be deployed easily import "@stdlib/deploy"; // Define a message structure for voting message Vote { candidate: Int as uint32; // 1 = Alice, 2 = Bob }

Ity ny hafatra Vote. Rehefa misy olona te hifidy, dia handefa hafatra amin'ny fifanarahana misy laharana izy ireo:

  • 1 ho an'i Alice
  • 2 ho an'i Bob

Mampiasa an'io rafitra io ny Tact mba hikarakarana ny latsa-bato miditra sy hanapahana izay kandidà mahazo ny hevitra.


Manaraka izany, hametraka ny fifanarahanay izahay ary hampiditra fari-piadidiam-panjakana roa hanara-maso ny vaton'ny kandidà tsirairay:

 ... contract VotingContract with Deployable { // State variables to track votes votesAlice: Int as uint32; votesBob: Int as uint32;

Tao anatin'ny fifanarahana dia namaritra fari-pahaizana roa izahay:

  • votesAlice : mitahiry ny isan'ny vato azon'i Alice.
  • votesBob : mitahiry ny isan'ny vato azon'i Bob.


Hanomboka amin'ny aotra ireo fanisam-bato ireo ao anatin'ny bloc init mba hametrahana ny fiandohan'ny fifanarahana rehefa apetraka voalohany.

 init() { self.votesAlice = 0; self.votesBob = 0; }

Ny sakana init dia mandeha indray mandeha ihany , rehefa apetraka ny fifanarahana ary mametraka ny isan'ny vato ho aotra.


Tonga izao ny lojika. Rehefa misy latsa-bato alefa dia tiantsika ny hanamarinan'ny fifanarahana hoe iza no latsa-bato ary hampitombo ny isan'ny vato marina.

 // Handle vote messages receive(msg: Vote) { if (msg.candidate == 1) { self.votesAlice += 1; } else if (msg.candidate == 2) { self.votesBob += 1; } }

Ka rehefa misy vato azo:

  • Raha 1 ny msg.candidate dia ampiana +1 ny votesAlice
  • Raha 2 ny msg.candidate dia ampiana +1 ny votesBob


Farany, hamorona fonction getter izahay mba ahafahan'ny olona manontany ny fanisam-bato ho an'ny kandidà tsirairay nefa tsy manova ny toetry ny fifanarahana.

 // Getter for Alice's votes get fun getVotesForAlice(): Int { return self.votesAlice; } // Getter for Bob's votes get fun getVotesForBob(): Int { return self.votesBob; } }

Ireo fonction getter roa ireo dia aoka hojerentsika ny isan'ny vato azon'ny kandidà tsirairay nefa tsy misy fanovana na inona na inona ao amin'ny fifanarahana. Hetsika vakiana fotsiny io.


Ity ambany ity ny fehezan-dalàna momba ny fifanaraham-pifidianana feno:

 import "@stdlib/deploy"; // Define a message structure for voting message Vote { candidate: Int as uint32; // 1 = Alice, 2 = Bob } contract VotingContract with Deployable { // State variables to track votes votesAlice: Int as uint32; votesBob: Int as uint32; init() { self.votesAlice = 0; self.votesBob = 0; } // Handle vote messages receive(msg: Vote) { if (msg.candidate == 1) { self.votesAlice += 1; } else if (msg.candidate == 2) { self.votesBob += 1; } } // Getter for Alice's votes get fun getVotesForAlice(): Int { return self.votesAlice; } // Getter for Bob's votes get fun getVotesForBob(): Int { return self.votesBob; } }

Dingana 4 - Manangana sy mametraka ny fifanarahana

  • Ao amin'ny sisiny havia, tsindrio ny Build & Deploy

  • Eo ambanin'ny Tontolo iainana , ataovy azo antoka fa voafantina ny Sandbox .
  • Ataovy azo antoka fa voafantina ny main.tact ary tsindrio ny Build . Izany dia hanangona ny fifanarahanao ary hanamarina raha misy hadisoana na olana amin'ny fehezan-dalànao.
  • Manaraka, ataovy azo antoka fa voafantina ao amin'ny dropdown ny VotingContract satria io no tena fifanarahanao, fa tsy ny toerana misy anao. Raha tsy hitanao dia tsindrio Ctrl + S mba hitahiry ny rakitrao mba ho hitan'ny IDE ny fifanarahana nohavaozina.
  • Avy eo tsindrio ReDeploy . Raha mandeha tsara ny zava-drehetra, dia hahita hafatra fanamafisana ianao ao amin'ny diary mampiseho fa nahomby ny fifanarahanao tamin'ny Sandbox.

Dingana 5 - Mifandraisa amin'ny fifanarahana

Rehefa voapetraka dia midira midina dia hahita fizarana roa ianao:

  • Getters: getVotesForAlice , getVotesForBob
  • Mpandray: Vote

Raha handatsa-bato: Ao amin'ny fizarana Vote , ampidiro 1 ao amin'ny saha fampidirana candidate ary tsindrio Alefaso. Vao nifidy an'i Alice ianao! Azonao atao ny mamerina izany mba handatsa-bato bebe kokoa.


Raha hijery ny fanisam-bato : Kitiho ny Antso eo ambanin'ny getVotesForAlice ary jereo ny tontolon'ny logs hahitanao ny isan'ny vato

  • Ataovy toy izany koa ho an'i Bob amin'ny alàlan'ny fandefasana 2 ao amin'ny sahan'ny candidate , dia jereo getVotesForBob

Nandritra ny andrana nataoko dia nifidy an'i Alice in-9 aho ary in-6 i Bob, ary tena nasehon'ny fiasan'ny getter izany.

💭 Hevitra farany: Tohizo ny fanorenana, tohizo ny fikarohana

🙌 Arahabaina raha mamaky hatramin'ny farany ianao!


Ankehitriny rehefa hitanao ny fomba fiasan'ny fifanarahana fifidianana tsotra ao amin'ny Tact, dia nanao ny dingana voalohany ianao tamin'ny fampivoarana fifanarahana hendry momba ny TON. Ity fifanarahana ity dia mety ho fototra, fa ny rafitra sy ny foto-kevitra dia mihatra amin'ny lojika sarotra kokoa ihany koa.


Raha te-hanandrana hatrany ianao dia andramo hanitarana ity fifanarahana ity na hikaroka môdely efa namboarina hafa avy amin'ny https://tact-by-example.org/all . Ny TON Web IDE dia manamora ihany koa ny manandrana tranga fampiasana samihafa ary miaraka amin'ny môdely koa izy io mba hanampiana anao hanorina sy hianatra haingana kokoa.


Koa mandehana, manitsy, andramo, manangana zavatra tsara kokoa.

L O A D I N G
. . . comments & more!

About Author

Favour Kelvin HackerNoon profile picture
Favour Kelvin@fakela
Technical Writer - I write content that answers the readers' queries

HANG TAGS

ITY ARTICLE ITY NO NARESAKA TAMIN'NY...

Trending Topics

blockchaincryptocurrencyhackernoon-top-storyprogrammingsoftware-developmenttechnologystartuphackernoon-booksBitcoinbooks