Capitolo 5 di 9

Il token con OpenZeppelin

Obiettivo. Creare un token ERC-20 in poche righe e capire cosa significano i decimali.

ERC-20 è lo standard dei token: un elenco di regole (saldo, trasferimento, autorizzazione a spendere) che permette a wallet e siti di trattare qualunque token allo stesso modo. Scriverlo da zero è un rischio inutile, perciò si usa la versione di OpenZeppelin, una libreria molto usata e controllata da molti esperti.

Analogia. È come un registro di cassa già stampato: tu scegli il nome della moneta e la sigla, la libreria ha già le colonne e i controlli.
import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";

contract FuelToken is ERC20 {
    constructor() ERC20("FuelToken", "FUEL") {}
}

I decimali

Come per i prezzi, la blockchain lavora con numeri interi. Per rappresentare frazioni di token, ERC-20 usa decimals, di solito 18: il saldo scritto nel contratto è il numero di token moltiplicato per 1018. Quindi 1000000000000000000 significa «1 token» e 500000000000000000 significa «mezzo token».

Nel nostro progetto 1 token = 1 litro: avere 0,5 token significa «mezzo litro» sulla carta. Come il centesimo è la parte più piccola dell'euro, qui la parte più piccola è un miliardesimo di miliardesimo di litro.

Questo contratto per ora non crea nessun token: lo farà buy() nel prossimo capitolo.

Prova tu

Calcola a mano: quanti «pezzetti» (unità più piccole) sono 2,5 token? (Risposta: 2.500.000.000.000.000.000, cioè 2,5 × 1018.) Poi scrivi quanti pezzetti corrispondono a un decilitro, cioè 0,1 token.

Cosa hai imparato

Per approfondire