Improve translation and readability

This commit is contained in:
Al 2022-07-24 12:24:04 +02:00
parent ae73cdf65d
commit 39e0b12b15

View File

@ -35,7 +35,7 @@ BLOG DI ETHEREUM PER TENERSI AGGIORNATI. TUTTO IL CODICE QUI PRESENTE E' FORNITO
COSÌ COM'È, CON ANNESSI RISCHI SOSTANZIALI DI ERRORI O PATTERN DI PROGRAMMAZIONE COSÌ COM'È, CON ANNESSI RISCHI SOSTANZIALI DI ERRORI O PATTERN DI PROGRAMMAZIONE
DEPRECATI. DEPRECATI.
A differenza di altri tipi di codice, potresti aver bisogno di usare pattern di A differenza di altri linguaggi, potresti aver bisogno di usare pattern di
pausing, deprecation e throttling usage per ridurre il rischio. Questo documento pausing, deprecation e throttling usage per ridurre il rischio. Questo documento
tratta principalmene la sintassi e quindi esclude molti design pattern in voga. tratta principalmene la sintassi e quindi esclude molti design pattern in voga.
@ -97,8 +97,8 @@ Sul tuo Metamask, dovrai cambiare la testnet in `Kovan`.
![Solidity-in-remix](../images/solidity/metamask-kovan.png) ![Solidity-in-remix](../images/solidity/metamask-kovan.png)
Riceverai degli Ethereum di test gratuiti. Per distribuire degli smart contract Riceverai degli Ethereum di test gratuiti. Abbiamo bisogno di Ethereum per
su una testnet abbiamo bisogno di Ethereum. distribuire degli smart contract su una testnet.
Nell'esempio precedente non avevamo usato una testnet, ma avevamo distribuito Nell'esempio precedente non avevamo usato una testnet, ma avevamo distribuito
su un ambiente virtuale fittizio. Quando si lavora su una testnet, possiamo su un ambiente virtuale fittizio. Quando si lavora su una testnet, possiamo
@ -244,7 +244,7 @@ uint8 b;
int64 c; int64 c;
uint248 e; uint248 e;
// Attenzione a non andare in overflow, e a proteggersi dagli attacchi che lo fanno // Attenzione a non andare in overflow e a proteggersi dagli attacchi che lo fanno
// Ad esempio per quanto rigrada l'addizione, conviene fare: // Ad esempio per quanto rigrada l'addizione, conviene fare:
uint256 c = a + b; uint256 c = a + b;
assert(c >= a); // 'assert' testa gli invarianti interni; require viene usato assert(c >= a); // 'assert' testa gli invarianti interni; require viene usato
@ -285,7 +285,7 @@ owner.transfer(SOME_BALANCE); // fallisce e, in tal caso, ripristina
// false se fallisce // false se fallisce
if (owner.send) {} // RICORDA: metti la send in un 'if' dato che gli indirizzi if (owner.send) {} // RICORDA: metti la send in un 'if' dato che gli indirizzi
// usati nei contratti hanno delle funzioni, che vengono eseguite quando viene // usati nei contratti hanno delle funzioni, che vengono eseguite quando viene
// fatta una send, che possono fallire // fatta una send, che possono fallire.
// Inoltre fai attenzione a scalare i saldi PRIMA di provare a fare una send, // Inoltre fai attenzione a scalare i saldi PRIMA di provare a fare una send,
// dato il rischio di chiamate riscorsive che potrebbero prosciugare il contratto // dato il rischio di chiamate riscorsive che potrebbero prosciugare il contratto
@ -387,7 +387,7 @@ delete b;
// reimposta, imposta tutte le variabili della struttura a 0, tranne i mapping // reimposta, imposta tutte le variabili della struttura a 0, tranne i mapping
// Enumerazioni // Enumerazioni
enum State { Created, Locked, Inactive }; // di solito si usano per le macchine di stato enum State { Created, Locked, Inactive }; // di solito si usano per gli automi a stati finiti
State public state; // Dichiara una variabile da un enum State public state; // Dichiara una variabile da un enum
state = State.Created; state = State.Created;
// Le enum possono essere convertite esplicitamente in int // Le enum possono essere convertite esplicitamente in int
@ -414,7 +414,7 @@ uint createdState = uint(State.Created); // 0
// 4. Variabili globali degne di nota // 4. Variabili globali degne di nota
// ** this ** // ** this **
this; // indirizzo del contratto this; // indirizzo del contratto
// di solito si usa per trasferire il aldo rimanente altrove // di solito si usa per trasferire altrove il saldo rimanente
// al termine della vita del contratto // al termine della vita del contratto
this.balance; this.balance;
this.someFunction(); // invoca una funzione esterna tramite chiamata, this.someFunction(); // invoca una funzione esterna tramite chiamata,
@ -490,7 +490,7 @@ function increment(uint x) view returns (uint x) {
// Di solito è una buona idea marcare esplicitamente ogni funzione // Di solito è una buona idea marcare esplicitamente ogni funzione
// Funzioni hoisted - e si può assegnare una funzione ad una variabile // Le funzioni sono hoisted e si può assegnare una funzione ad una variabile
function a() { function a() {
var z = b; var z = b;
b(); b();
@ -603,7 +603,7 @@ for(uint x = 0; x < refundAddressList.length; x++) {
// 2. Questo loop potrebbe essere arbitrariamente lungo (si basa sul numero // 2. Questo loop potrebbe essere arbitrariamente lungo (si basa sul numero
// degli utenti che hanno diritto al rimborso), quindi potrebbe fallire sempre // degli utenti che hanno diritto al rimborso), quindi potrebbe fallire sempre
// se supera il tetto massimo di gas per blocco; // se supera il tetto massimo di gas per blocco;
// Come soluzione, si potrebbe permettere agli utenti di prelevare // Come soluzione, si permette agli utenti di prelevare
// individualmente dal loro subaccount e segnare il rimborso come riscosso // individualmente dal loro subaccount e segnare il rimborso come riscosso
// Ad es. preferire pull payments ai push payment // Ad es. preferire pull payments ai push payment
@ -671,7 +671,7 @@ import "github.com/ethereum/dapp-bin/library/iterable_mapping.sol";
// (di solito il creatore) // (di solito il creatore)
selfdestruct(SOME_ADDRESS); selfdestruct(SOME_ADDRESS);
// rimuove il codice e quanto in memoria dal blocco corrente e tutti i futuri blocchi // rimuove il codice e quanto in memoria dal blocco corrente e da tutti i blocchi futuri
// aiuta ad alleggerire i client, ma le informazioni precedenti continueranno // aiuta ad alleggerire i client, ma le informazioni precedenti continueranno
// a persistere sulla blockchain // a persistere sulla blockchain
@ -692,14 +692,14 @@ function remove() {
// A. Offruscamento // A. Offruscamento
// Tutte le variabili sono pubblicamente visibili sulla blockchain, quindi // Tutte le variabili sono pubblicamente visibili sulla blockchain, quindi
// qualsiasi cosa privata ha bisogno di essere offruscata (es. hash con una // qualsiasi informazione privata ha bisogno di essere offruscata (es. hash con una
// chiave segreta) // chiave segreta)
// Passi: 1. Impegnarsi pagare una certa cifra, 2. Rivelare l'impegno preso // Passi: 1. Impegnarsi pagare una certa cifra, 2. Rivelare l'impegno preso
keccak256("una_puntata_d_asta", "un segreto"); // impegno keccak256("una_puntata_d_asta", "un segreto"); // impegno
// in futuro, l'invocazione della funzione rivelatrice del contratto // in futuro, l'invocazione della funzione rivelatrice del contratto
// mostrerà la puntata ed il segreto che produce lo SHA3 // mostrerà la puntata con il segreto che produce lo SHA3
reveal(100, "ilMioSegreto"); reveal(100, "ilMioSegreto");
// B. Ottimizzazione della memoria (storage) // B. Ottimizzazione della memoria (storage)
@ -717,7 +717,7 @@ reveal(100, "ilMioSegreto");
// o lo stato delle transazioni // o lo stato delle transazioni
// Anche se 'private' non permette agli altri *contratti* di leggere alcune // Anche se 'private' non permette agli altri *contratti* di leggere alcune
// informazioni direttamente, qualsiasi altro attore può leggere i dati // informazioni direttamente, qualsiasi altro attore può leggerle
// sulla blockchain // sulla blockchain
// Tutti i dati, dall'inizio, vegono conservati sulla blockchain e // Tutti i dati, dall'inizio, vegono conservati sulla blockchain e