Distribuzione del primo Smart Contract
Sicuramente sarai entusiasta almeno quanto noi di distribuire il tuo primo Smart Contract e interagirvi sulla blockchain Ethereum.
Non preoccuparti, essendo il nostro primo smart contract, lo distribuiremo su una rete locale di prova così che non ti costi nulla distribuirlo e giocarci quanto vuoi.
Scrittura del contratto
Il primo passaggio consiste nel 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 che preferisci.
Nel nuovo file, incolleremo il seguente codice.
1// SPDX-License-Identifier: MIT2pragma solidity >=0.5.17;34contract Counter {56 // Public variable of type unsigned int to keep the number of counts7 uint256 public count = 0;89 // Function that increments our counter10 function increment() public {11 count += 1;12 }1314 // Not necessary getter to get the count value15 function getCount() public view returns (uint256) {16 return count;17 }1819}Mostra tuttoCopia
Se sei familiare con la programmazione, puoi facilmente intuire cosa faccia questo programma. Ecco una spiegazione riga per riga:
- Riga 4: definiamo un contratto con il nome
Counter
. - Riga 7: il nostro contratto memorizza un numero intero senza firma
count
a partire 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 leggere il valore della variabile
count
al di fuori dello Smart Contract. Nota che, dato che abbiamo definito la variabilecount
come pubblica, questo non è necessario. Lo indichiamo come esempio.
Questo è tutto per il nostro primo semplice Smart Contract. Come forse saprai, somiglia un po' un linguaggio di OOP (Programmazione Orientata agli Oggetti), come Java o C++. Ora è il momento di sperimentare con il contratto.
Distribuzione del contratto
Una volta scritto il nostro primo Smart Contract, è il momento di distribuirlo sulla blockchain per potervi interagire.
Distribuire il primo Smart Contract sulla blockchain significa semplicemente inviare una transazione contenente il codice dello Smart Contract compilato senza specificare nessun destinatario.
Dovremo per prima cosa compilare il contratto facendo clic sull'icona di compilazione sul lato sinistro:
Poi facciamo clic 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.
Poi passa alla schermata per la distribuzione e l'esecuzione delle transazioni:
Una volta sulla schermata di distribuzione ed esecuzione, controlla bene che appaia il nome del tuo contratto e fai clic su Deploy. Come puoi vedere in alto nella pagina, l'ambiente corrente è "JavaScript VM", che significa che distribuiremo il nostro Smart Contract e interagiremo con esso su una blockchain di test locale per poter effettuare test in modo più veloce e senza commissioni.
Una volta fatto clic sul pulsante "Deploy", il tuo contratto apparirà nella parte inferiore. Fai clic sulla freccia a sinistra per espanderlo, così da vederne il contenuto. Questa è la nostra variabile counter
, la nostra funzione increment()
e il getter getCounter()
.
Se fai clic sul pulsante count
o getCount
, verrà recuperato e mostrato il contenuto della variabile count
del contratto. Dato che non abbiamo ancora chiamato la funzione increment
, questa dovrebbe indicare 0.
Chiamiamo ora la funzione increment
facendo clic sul pulsante. Appariranno i log delle transazioni 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é leggere dati sulla blockchain non richiede alcuna transazione (scrittura) o commissione. Perché una transazione è richiesta solo quando si modifica lo stato della blockchain:
Dopo aver scelto il pulsante increment che genererà una transazione per chiamare la funzione increment()
, se facciamo clic di nuovo sui pulsanti count o getCount, leggiamo lo stato aggiornato del nostro Smart Contract con la variabile count maggiore di 0.
Nel prossimo tutorial spiegheremo come aggiungere eventi agli Smart Contract. Avere un log degli eventi è un modo comodo per eseguire il debug di uno Smart Contract e per capire cosa succede quando si chiama una funzione.
Ultima modifica: @lukassim(opens in a new tab), 26 aprile 2024