Smart Contract — Token ERC 20 — Parte 1
Cos’è e quali sono le caratteristiche di un token ERC 20.
Cosa significa ERC?
L‘acronimo ERC si riferisce a Ethereum Request for Comment. Gli ERC sono dei documenti tecnici che definiscono degli standard di programmazione per alcuni tipi di smart contract.
Che cos’è un Token ERC 20?
Se ci interessiamo al mondo delle cripto valute, oggi siamo abituati a trattare e considerare alcuni Token ERC 20 come se fossero delle valute a sé stanti, senza sapere che in realtà dietro di loro si cela uno smart contract pubblicamente visionabile sulla rete Ethereum.
Rispetto ad ETH (la cripto valuta nativa di Ethereum), i Token ERC-20 non sono detenuti direttamente dagli account. I token esistono solo all’interno dello smart contract.
Lo smart contract di un Token ERC 20 specifica le regole per i token (nome, simbolo, divisibilità, ecc…) e possiede una lista dove vengono associati i saldi degli utenti ai loro indirizzi Ethereum.
ERC 20 è uno standard per i token fungibili.
Quali sono le sue applicazioni?
Un Token ERC 20 può avere varie applicazioni, ad esempio:
- Una partecipazione in una società;
- Punti fedeltà;
- Una valuta fiat come l’USD (Dollaro Statunitense);
- La valuta all’interno di un gioco;
- Tanto altro.
Come è strutturato un Token ERC 20?
Lo standard Token ERC 20 di base prevede 9 metodi e 2 eventi.
Metodi
I metodi di un Token ERC 20 possiamo dividerli in sei obbligatori: totalSupply, balanceOf, transfer, transferFrom, approve e allowance e tre opzionali: name, symbol e decimal.
function name() public view returns (string)
function symbol() public view returns (string)
function decimals() public view returns (uint8)
function totalSupply() public view returns (uint256)
function balanceOf(address _owner) public view returns (uint256 balance)
function transfer(address _to, uint256 _value) public returns (bool success)
function transferFrom(address _from, address _to, uint256 _value) public returns (bool success)
function approve(address _spender, uint256 _value) public returns (bool success)
function allowance(address _owner, address _spender) public view returns (uint256 remaining)
Passando in rassegna i sei metodi obbligatori dello standard ERC 20, abbiamo:
- totalSupply: restituisce la fornitura totale dei token contenuti nel contratto;
- balanceOf: richiede un parametro in ingresso, un indirizzo Ethereum. Quando il metodo viene invocato, restituisce il saldo di token di quell’indirizzo;
- transfer: trasferisce token da un utente a un altro e richiede l’indirizzo a cui vuoi inviare i token e l’importo da trasferire. Inoltre, il metodo transfer quando chiamato innesca un evento, nel caso specifico l’evento Transfer (che vedremo dopo in dettaglio);
- transferFrom: è un’alternativa alla funzione transfer, offre un maggiore grado di programmabilità nelle applicazioni decentralizzate;
- approve: è un’altra funzione utile dal punto di vista della programmabilità. Tramite la funzione approve, puoi limitare il numero di token che uno smart contract può prelevare dal tuo saldo;
- allowance: può essere usata in combinazione con approve. Quando dai al contratto il permesso di gestire i tuoi token, potresti usare questa funzione per controllare quanti ne può ancora prelevare.
Eventi
event Transfer(address indexed _from, address indexed _to, uint256 _value)
event Approval(address indexed _owner, address indexed _spender, uint256 _value)
Transfer: si attiva quando i token vengono trasferiti, inclusi i trasferimenti di valore zero.
Approval: si attiva su qualsiasi chiamata riuscita a approve(address _spender, uint256 _value)
Queste informazioni rappresentano la base introduttiva per capire come creare un token ERC20. Nel prossimo articolo partiremo da qui per passare dalla teoria alla pratica. Quindi, a presto!