Vai al contenuto principale

Registrare i dati dagli smart contract con gli eventi

smart contract
Remix
Solidity
eventi
Intermedio
jdourlens
3 aprile 2020
2 minuti di lettura

In Solidity, gli eventi sono segnali inviati che gli smart contract possono attivare. Le applicazioni decentralizzate (dapp), o qualsiasi cosa connessa all'API JSON-RPC di Ethereum, possono ascoltare questi eventi e agire di conseguenza. Un evento può anche essere indicizzato in modo che la cronologia degli eventi sia ricercabile in seguito.

Eventi

L'evento più comune sulla blockchain di Ethereum al momento della stesura di questo articolo è l'evento Transfer che viene emesso dai token ERC-20 quando qualcuno trasferisce dei token.

event Transfer(address indexed from, address indexed to, uint256 value);

La firma dell'evento è dichiarata all'interno del codice del contratto e può essere emessa con la parola chiave emit. Ad esempio, l'evento transfer registra chi ha inviato il trasferimento (from), a chi (to) e quanti token sono stati trasferiti (value).

Se torniamo al nostro smart contract Counter e decidiamo di registrare ogni volta che il valore viene modificato. Poiché questo contratto non è destinato a essere distribuito ma a fungere da base per costruire un altro contratto estendendolo: è chiamato contratto astratto. Nel caso del nostro esempio del contatore, apparirebbe così:

Nota che:

  • Riga 5: dichiariamo il nostro evento e cosa contiene, il vecchio valore e il nuovo valore.

  • Riga 13: Quando incrementiamo la nostra variabile count, emettiamo l'evento.

Se ora distribuiamo il contratto e chiamiamo la funzione increment, vedremo che Remix lo mostrerà automaticamente se fai clic sulla nuova transazione all'interno di un array chiamato logs.

Remix screenshot

I log sono davvero utili per il debug dei tuoi smart contract, ma sono anche importanti se crei applicazioni usate da diverse persone e semplificano l'esecuzione di analisi per tracciare e capire come viene usato il tuo smart contract. I log generati dalle transazioni vengono visualizzati nei block explorer più popolari e puoi anche, ad esempio, usarli per creare script offchain per ascoltare eventi specifici e intraprendere azioni quando si verificano.

Ultimo aggiornamento della pagina: 3 marzo 2026