Introduzione
Questo tutorial ti guiderà attraverso il processo di creazione di un semplice smart contract su Ethereum utilizzando Solidity, il linguaggio di programmazione per la scrittura di smart contract su Ethereum.
Prerequisiti
Per seguire questo tutorial, avrai bisogno di:
- Node.js e NPM installati sul tuo sistema
- Truffle Suite, un ambiente di sviluppo, un framework di test e una pipeline di asset per Ethereum
- Ganache, un simulatore di blockchain personale per Ethereum
Puoi installare Truffle e Ganache con il comando npm:
npm install -g truffle
npm install -g ganache-cli
Creazione del progetto
Iniziamo creando una nuova directory per il nostro progetto e inizializziamo un nuovo progetto Truffle.
mkdir ethereum-contract
cd ethereum-contract
truffle init
Scrivere lo Smart Contract
Creiamo un nuovo file chiamato SimpleStorage.sol
nella directory contracts/
e aggiungiamo il seguente codice:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract SimpleStorage {
uint public data;
function set(uint x) public {
data = x;
}
function get() public view returns (uint) {
return data;
}
}
Questo è un contratto molto semplice che memorizza un numero intero e fornisce due funzioni, set
e get
, per modificare e ottenere il valore.
Creazione del file di migrazione
Per distribuire il contratto sulla blockchain, dovrai creare un file di migrazione. Crea un nuovo file chiamato 2_deploy_contracts.js
nella directory migrations/
e aggiungi il seguente codice:
const SimpleStorage = artifacts.require("SimpleStorage");
module.exports = function (deployer) {
deployer.deploy(SimpleStorage);
};
Testare il contratto
Prima di distribuire il contratto, dovremmo scriverne alcuni test. Crea un nuovo file chiamato simpleStorage.js
nella directory test/
e aggiungi il seguente codice:
const SimpleStorage = artifacts.require('SimpleStorage');
contract('SimpleStorage', () => {
it('should set the value of data variable', async () => {
const simpleStorage = await SimpleStorage.deployed();
await simpleStorage.set(10);
const result = await simpleStorage.get();
assert(result.toNumber() === 10);
});
});
Esegui i test con il comando:
truffle test
Distribuire il contratto
Per ultimo, distribuiamo il contratto sulla nostra blockchain locale utilizzando Ganache. Esegui il comando:
ganache-cli
In un altro terminale, esegui il comando di migrazione:
truffle migrate
Conclusione
Congratulazioni! Hai appena scritto e distribuito il tuo primo smart contract su Ethereum con Solidity.