Blockchains izmanto žetonus kā galveno vērtību nodošanas līdzekli. Tās var būt ķēdes vietējā maiņas vienība, tās var būt lietotnes maiņas vienība, un tās var pat izmantot kā valūtu spēļu pasaulē. Tokeni atbalsta spēcīgas DeFi aktivitātes arī Sui un citās blokķēdes.

Ethereum žetoniem izmanto ERC-20 standartu. Šie marķieri, kurus izstrādātāji var izveidot dažādiem mērķiem, Ethereum tiek attēloti kā viedie līgumi. Vietnē Sui žetoniem tiek izmantota monētu pakotne. Tāpat kā ERC-20 žetonus, izstrādātāji var veidot monētas uz Sui plašam lietojumu klāstam. Tomēr Sui būtiski atšķirīgais datu modelis nozīmē, ka katrai monētai pieder adrese tīklā.

Izejot cauri procesiem, lai izveidotu ERC-20 marķierus Ethereum un Coins vietnē Sui, redzamas atšķirības starp šiem diviem standartiem. Ethereum izstrādātājus varētu pārsteigt arī Sui monētu pakotnes elastība.

ERC-20 marķiera izvietošana

Šajā piemērā mēs izmantosim Remix IDE, lai parādītu darbības, kas nepieciešamas marķiera izveidei, izmantojot ERC-20 standartu.

1. Sāciet, pārlūkprogrammā atverot tiešsaistes Remix IDE.

2. Atlasiet ERC-20 projekta veidni no OpenZeppelin.

3. Failu pārlūkprogrammas kreisajā rūtī līgumu direktorijā atlasiet Token.sol, lai ielādētu tā atkarības.

4. Pievienojiet a

_kā

funkciju noklusējuma konstruktoram, lai norādītu veidojamo marķieru skaitu. Šis koda paraugs parāda vienu metodi.

līgums MyToken ir ERC-20, ERC-20Permit {     constructor() ERC-20("MyToken", "MTK") ERC-20Permit("MyToken") {_mint(msg.sender, 12);} }

 5. Ātrajā izvēlnē noklikšķiniet uz ikonas Compile.

6. Atveriet spraudni Deploy & Run Transactions, atlasiet Remix VM (Cancun) vidi un noklikšķiniet uz pogas Deploy.

Veicot iepriekš minētās darbības, ERC-20 atkarības tiek kopētas jūsu projektā. Jūsu līgums kopā ar šīm kopētajām atkarībām tiek apkopots EVM baitkodā un tiek izvietots virtuālajā blokķēdē. Jūsu darījums tika iegūts, un līgums, kas atspoguļo jūsu ERC-20 marķierus, tagad ir pieejams Remix virtuālajā blokķēdē.

Kā tiek attēloti ERC-20 marķieri

Lai atrastu savus marķierus, atveriet atkarības līgumus vietnē Remix (mape.deps) un pārejiet uz failu ERC-20.sol. Pirmā rindiņa šajā abstraktajā līgumā ir:

kartēšana(adreses konts => uint256) privātie _bilances;

Šajā kartēšanā tiek glabāti visi atlikumi visiem lietotājiem. Lai iegūtu lietotāja bilanci, varat piezvanīt savam līgumam

atlikumsOf

funkcija ar lietotāja adresi. Tas pieprasīs šo kartēšanu un iegūs vērtību. Parādot savus līdzekļus, jūsu MetaMask maciņš veic vairākus balanceOf() zvanus uz dažādiem līgumiem un parāda rezultātus.

Citiem vārdiem sakot, visas pārsūtīšanas, kaltuves, apdegumus, kā arī DeFi protokolu mijiedarbības galu galā atjaunina vērtības šajā kartējumā.

Monētas izvietošana

Pakalpojumā Sui izvietotie līgumi neatspoguļo jaunus pilnvaras. Drīzāk Sui ietvars izmanto monētu pakotni, lai nodrošinātu šo funkcionalitāti. Lai gan tā ir vienkāršota līdzība, jūs varat uzskatīt vienu paketi kā līgumu. Tas atklāj funkcijas, kas var paņemt objektus un atgriezt citus objektus.

Izpildiet dokumentāciju par Sui instalēšanu, lai iestatītu kodēšanas vidi. Varat arī izmantot iepriekš minēto Remix IDE, lai uz Sui rakstītu Move kodu, instalējot spraudni WELLDONE Code.

Šis Move koda piemērs importē moduli Coin un izmanto to

izveidot_valūtu

funkcija, lai inicializētu monētu.

izmantot sui::monētu::{Pats, TreasuryCap}; publiskajai struktūrai MY_COIN ir samazinājies {} fun init(liecinieks: MY_COIN, ctx: &mut TxContext) {         let (kase, metadati) = monēta::create_currency(liecinieks, 6, b"MY_COIN", b", b"", opcija ::nav(), ctx);         transfer::public_freeze_object(metadata);         transfer::public_transfer(kase, ctx.sender())     }

Kad tu zvani

izveidot_valūtu()

, Sui atgriež TreasuryCap<T> un CoinMetadata<T> objektus jūsu valūtai, kur T ir jūsu valūtas veids (iepriekšējā piemērā MY_COIN). 

Jūsu maka adresē faktiski ir šie priekšmeti. Tie pastāv tikai jūsu makā, nevis nekur citur, atšķirībā no ERC-20 metodes, kas izmanto kartējumus, lai izsekotu īpašumtiesības.

TreasuryCap

, kas ir saīsinājums no "kases iespējas", ir atslēga, kas nepieciešama jaunu monētu piegādei. TreasuryCap var pārsūtīt uz citu uzticamas trešās puses adresi vai arī to var iznīcināt. TreasuryCap iznīcināšana ir līdzīga atteikšanās no īpašumtiesībām ERC-20 līgumā. 

Kā tiek attēloti monētu objekti

Lai mintu jaunu piedvjumu,

TreasuryCap

turētājs izsauc Monētu kaltuves funkciju. Funkcija veido vai izveido objektu Coin<T>, kas apzīmē funkcijas kalšanas apjomu. Tas atrodas jūsu makā (pieņemot, ka jūsu adrese ir norādīta kā adresāts), tiešā nozīmē. Ja TreasuryCap turētājs vēlreiz izsauc mint(), process izveido citu Coin<T> objektu un pārskaita šo monētu arī uz jūsu maku. Jums var būt vairāki monētu objekti par vienu un to pašu valūtu, un jūsu kopējais šīs valūtas atlikums ir šo monētu summa.

ERC-20 pret monētu funkcijas

Lai gan Ethereum un Sui piedāvā līdzīgas darbības, piemēram, pārsūtīšanu un tērēšanu, attiecībā uz žetoniem katras blokķēdes pamatstruktūras rada pamatā esošās atšķirības šo darbību darbībā.

Kalšana un dedzināšana

Autorizēts lietotājs var izveidot jaunus marķierus vietnē Ethereum, zvanot uz

funkcija šī marķiera līgumā. Tas atjaunina _bilances kartēšanu un palielina kopējo piedāvājumu. Jebkurš lietotājs var izsaukt ierakstīšanas funkciju, taču viņam ir atļauts ierakstīt tikai savu bilanci. 

Līdzīgi, izmantojot Sui, pilnvarots lietotājs var piezvanīt uz

funkcija kalt jaunas monētas, kā aprakstīts iepriekš. Atšķirība ir tāda, ka jūsu Sui atlikums netiek attēlots kartēšanā koplietotā stāvoklī, bet ir viens no jūsu maka objektiem. Šajā ziņā ERC-20 ir kā bankomāta karte, kas ļauj digitāli manipulēt ar skaidru naudu bankas kasē, un Sui ir kā fizisks maks, kurā jūsu atlikums ir raksturīgs jūsu rīcībā esošajai skaidrai naudai.

Sui atbalsta viena veida monētu sadalīšanu un apvienošanu. Tātad, ja jums ir vairāki monētu objekti, kas pārstāv jūsu valūtu, varat tos apvienot vienā objektā. Varat arī paņemt vienu monētas objektu un sadalīt to vairākos viena veida monētu objektos. 

Notiek nodošana

Pārsūtot marķierus uz Ethereum, jūs zvanāt uz

nodošana

marķiera līguma funkcija. Šī funkcija pārbauda, ​​vai jums ir pārskaitāmais atlikums, pēc tam atskaita jūsu atlikumu un palielina pārsūtīšanas adreses atlikumu, rīkojoties līdzīgi kā fiziskai virsgrāmatai.

Izmantojot Sui, jums burtiski pieder monētu objekti, jūs vienkārši nosūtāt monētu objektu uz citu adresi. Nav centrālās atrašanās vietas, kas būtu jāinformē par darījumu, lai nodrošinātu, ka atlikumi tiek atjaunināti. Īpašuma objekta nosūtīšana no viena maka uz citu neietekmē pārējo blokķēdes daļu. 

Objekta nosūtīšanu šādā veidā sauc par viena īpašnieka darījumu, un tai nav nepieciešama blokķēdes vienprātība. Tādējādi Sui paralēli veic viena īpašnieka darījumus, ļoti ātri sasniedzot galīgumu. Vienprātība ir nepieciešama tikai koplietotiem objektiem pakalpojumā Sui.

Tēriņi

Ethereum lietotāji ir iepazinušies ar Apstiprināšanas koncepciju. Ikreiz, kad mijiedarbojaties ar jebkuru DeFi protokolu, vispirms ir jāapstiprina šis protokols, lai iztērētu marķierus jūsu vārdā. Piemēram, veicot apmaiņu ar Uniswap, apstiprinātais maršrutētājs izsauc pārsūtīšanas funkciju marķiera līgumā. Pēc tam marķiera līgums apstiprina, ka zvanītājs ir īpašnieks vai apstiprināta adrese.

Sui nav šīs konstrukcijas. Ja jums pieder objekts, jūs esat vienīgā puse, kas var to nodot. Cita vienība nevar izņemt šo objektu no jūsu maka. Tā vietā Sui protokoli izmanto monētu objektus kā ievadi. Piemēram, lai izsauktu mijmaiņas funkciju decentralizētā biržā, jums ir jānodod savs Coin objekts mijmaiņas funkcijai, piešķirot īpašuma tiesības uz objektu protokolam. Tagad, kad protokolam pieder šis monētas objekts, tas var to apmainīt pret citu jūsu vēlamā veida monētu objektu un pārsūtīt uz jūsu maku.

Sui izpratne

Izstrādātāji, kuriem ir pieredze Ethereum un citās blokķēdēs, kuri ir ieinteresēti veidot Sui, atradīs daudzas līdzīgas paradigmas. Piemēram, marķieri kalpo daudziem tiem pašiem praktiskiem mērķiem. Tomēr izstrādātāji, kuri netērēs laiku, lai uzzinātu iepriekš aprakstītās pamatā esošās atšķirības, tiks paklupti.

Arī izstrādātāji, kuriem ir pieredze tradicionālajās objektorientētās programmēšanas vidēs, Sui atradīs līdzīgas struktūras. Ir intuitīvi uzskatīt objektu kā lietu, ko varat glabāt makā vai manipulēt, izmantojot kodu. 

Ja vēlaties uzzināt vairāk par tokenu izveidi vietnē Sui, skatiet dokumentāciju.