Distribuire il tuo primo contratto intelligente
Immagino che tu sia entusiasta quanto noi di distribuire e interagire con il tuo primo contratto intelligente sulla blockchain di Ethereum.
Non preoccuparti, dato che è il nostro primo contratto intelligente, lo distribuiremo su una rete di test locale in modo che non ti costi nulla distribuirlo e giocarci quanto vuoi.
Scrivere il nostro contratto
Il primo passo è visitare Remix (opens in a new tab) e creare un nuovo file. Nella parte in alto a sinistra dell'interfaccia di Remix, aggiungi un nuovo file e inserisci il nome del file che desideri.
Nel nuovo file, incolleremo il seguente codice.
1// SPDX-License-Identifier: MIT2pragma solidity >=0.5.17;34contract Counter {56 // Variabile pubblica di tipo unsigned int per mantenere il numero di conteggi7 uint256 public count = 0;89 // Funzione che incrementa il nostro contatore10 function increment() public {11 count += 1;12 }1314 // Getter non necessario per ottenere il valore del conteggio15 function getCount() public view returns (uint256) {16 return count;17 }1819}Mostra tuttoSe sei abituato a programmare, puoi facilmente intuire cosa fa questo programma. Ecco una spiegazione riga per riga:
- Riga 4: Definiamo un contratto con il nome
Counter. - Riga 7: Il nostro contratto memorizza un intero senza segno chiamato
countche parte da 0. - Riga 10: La prima funzione modificherà lo stato del contratto e incrementerà (
increment()) la nostra variabilecount. - Riga 15: La seconda funzione è solo un getter per poter leggere il valore della variabile
countall'esterno del contratto intelligente. Nota che, poiché abbiamo definito la nostra variabilecountcome pubblica, questo non è necessario ma viene mostrato come esempio.
Questo è tutto per il nostro primo semplice contratto intelligente. Come forse saprai, assomiglia a una classe dei linguaggi OOP (Programmazione Orientata agli Oggetti) come Java o C++. Ora è il momento di giocare con il nostro contratto.
Distribuire il nostro contratto
Poiché abbiamo scritto il nostro primissimo contratto intelligente, ora lo distribuiremo sulla blockchain per poterci giocare.
Distribuire il contratto intelligente sulla blockchain in realtà consiste solo nell'inviare una transazione contenente il codice del contratto intelligente compilato senza specificare alcun destinatario.
Per prima cosa compileremo il contratto cliccando sull'icona di compilazione sul lato sinistro:
Quindi clicca sul pulsante di compilazione:
Puoi scegliere di selezionare l'opzione "Auto compile" in modo che il contratto venga sempre compilato quando salvi il contenuto nell'editor di testo.
Quindi naviga alla schermata "deploy and run transactions" (distribuisci ed esegui transazioni):
Una volta che sei nella schermata "deploy and run transactions", controlla che appaia il nome del tuo contratto e clicca su Deploy. Come puoi vedere in cima alla pagina, l'ambiente attuale è "JavaScript VM", il che significa che distribuiremo e interagiramo con il nostro contratto intelligente su una blockchain di test locale per poter testare più velocemente e senza alcuna commissione.
Una volta cliccato il pulsante "Deploy", vedrai apparire il tuo contratto in basso. Clicca sulla freccia a sinistra per espanderlo in modo da vedere il contenuto del nostro contratto. Questa è la nostra variabile counter, la nostra funzione increment() e il getter getCounter().
Se clicchi sul pulsante count o getCount, recupererà effettivamente il contenuto della variabile count del contratto e lo visualizzerà. Poiché non abbiamo ancora chiamato la funzione increment, dovrebbe visualizzare 0.
Chiamiamo ora la funzione increment cliccando sul pulsante. Vedrai i log delle transazioni effettuate apparire nella parte inferiore della finestra. Vedrai che i log sono diversi quando premi il pulsante per recuperare i dati invece del pulsante increment. Questo perché la lettura dei dati sulla blockchain non richiede alcuna transazione (scrittura) o commissione. Perché solo la modifica dello stato della blockchain richiede di effettuare una transazione:
Dopo aver premuto il pulsante di incremento che genererà una transazione per chiamare la nostra funzione increment(), se clicchiamo di nuovo sui pulsanti count o getCount leggeremo il nuovo stato aggiornato del nostro contratto intelligente con la variabile count maggiore di 0.
Nel prossimo tutorial, tratteremo come puoi aggiungere eventi ai tuoi contratti intelligenti. La registrazione degli eventi è un modo conveniente per eseguire il debug del tuo contratto intelligente e capire cosa sta succedendo durante la chiamata di una funzione.
Ultimo aggiornamento della pagina: 26 aprile 2024







