Capitolo 9 di 9

Mettiamo tutto online sulla rete di prova

Obiettivo. Pubblicare i due contratti su Polygon Amoy, verificarli su Polygonscan e controllare che tutto funzioni.

Finora hai lavorato in locale. Pubblicare (deploy) significa mandare il codice compilato alla rete: il contratto riceve un indirizzo e da quel momento è visibile a tutti. Lo si fa con Hardhat, un ambiente di sviluppo per contratti.

Analogia. È come registrare un'attività in Camera di commercio: il progetto resta lo stesso, ma ora ha un numero ufficiale che chiunque può cercare.
// hardhat.config.ts (extract)
networks: {
  amoy: {
    url: "https://polygon-amoy-bor-rpc.publicnode.com",
    chainId: 80002,
    accounts: [process.env.DEPLOYER_PRIVATE_KEY],
  },
},

// scripts/deploy.ts (extract)
const oracle = await ethers.deployContract("FuelPriceOracle", [deployer.address]);
await oracle.waitForDeployment();
const token = await ethers.deployContract("FuelToken", [await oracle.getAddress()]);
await token.waitForDeployment();
await oracle.grantRole(await oracle.UPDATER_ROLE(), UPDATER_ADDRESS);

Lista di controllo

  1. Crea due chiavi di prova: una per pubblicare, una per aggiornare i prezzi. Mai riutilizzare chiavi vere.
  2. Procura POL di prova a entrambe con i faucet del capitolo 3.
  3. Scrivi le variabili nel file .env (che non va mai condiviso né caricato su GitHub): la chiave del deployer, l'indirizzo dell'updater, e una chiave API di Polygonscan per il passo 6.
  4. Pubblica con npx hardhat run scripts/deploy.ts --network amoy e annota i due indirizzi.
  5. Configura il programma del capitolo 7 con l'indirizzo dell'oracolo e la chiave dell'updater, poi eseguilo una volta.
  6. Verifica su Polygonscan (amoy.polygonscan.com): la verifica pubblica il codice sorgente accanto al contratto, così chiunque può leggere ciò che gira davvero.
  7. Controlla: l'oracolo mostra prezzi e data di oggi, isFresh(259200) risponde vero (259.200 secondi sono 3 giorni).
  8. Prova un acquisto con 0,1 POL dalla pagina web e guarda la transazione nell'esploratore.

Se un acquisto fallisce con «prezzo vecchio», l'oracolo non è fresco: lancia di nuovo il programma del capitolo 7.

Un consiglio finale: fai prima un giro completo sulla rete locale di Hardhat (npx hardhat node), dove gli errori costano zero e tutto è veloce.

Cosa abbiamo costruito

Il programma del capitolo 7 è il backend del progetto e la pagina del capitolo 8 il suo frontend. Sono contratti di una rete di prova: i token e le monete non hanno valore.

Codice sorgente. Il codice completo è disponibile su richiesta.

Prova tu

Pubblica solo l'oracolo su Amoy, apri il suo indirizzo su Polygonscan e individua la scheda «Contract». Poi chiama da Remix o dall'esploratore la funzione isFresh: prima del primo aggiornamento deve rispondere falso.

Cosa hai imparato

Per approfondire