You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: public/content/translations/it/developers/docs/smart-contracts/anatomy/index.md
+13-13Lines changed: 13 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
---
2
2
title: Anatomia dei contratti intelligenti
3
-
description: "Uno sguardo approfondito all'anatomia di un contratto intelligente: le funzioni, i dati e le variabili."
3
+
description: 'Uno sguardo approfondito all''anatomia di un contratto intelligente: le funzioni, i dati e le variabili.'
4
4
lang: it
5
5
---
6
6
@@ -16,18 +16,18 @@ Tutti i dati del contratto devono essere assegnati a una posizione: `storage` op
16
16
17
17
### Storage {#storage}
18
18
19
-
I dati persistenti sono detti storage (o spazio di archiviazione) e sono rappresentati da variabili di stato. Questi valori sono memorizzati permanentemente nella blockchain. È necessario dichiarare il tipo così che il contratto possa tenere traccia di quanto storage è necessario sulla blockchain quando viene compilato.
19
+
I dati persistenti sono detti storage (o spazio di archiviazione) e sono rappresentati da variabili di stato. Questi valori sono memorizzati permanentemente nella blockchain. È necessario dichiarare il tipo così che il contratto possa tenere traccia di quanto storage è necessario sulla blockchain quando viene compilato.
20
20
21
21
```solidity
22
-
// Esempio in Solidity
22
+
// Esempio in Solidity
23
23
contract SimpleStorage {
24
24
uint storedData; // Variabile di stato
25
25
// ...
26
26
}
27
27
```
28
28
29
29
```python
30
-
# Esempio in Vyper
30
+
# Esempio in Vyper
31
31
storedData: int128
32
32
```
33
33
@@ -52,13 +52,13 @@ Per ulteriori spiegazioni, consulta la documentazione:
I valori che vengono memorizzati solo per la durata di esecuzione di una funzione di contratto sono detti variabili di memoria. Dal momento che non sono memorizzati in modo permanente sulla blockchain, sono molto più economici da usare.
58
58
59
59
Scopri di più su come l'EVM memorizza i dati (Archiviazione, Memoria e lo Stack), nella [documentazione di Solidity](https://solidity.readthedocs.io/en/latest/introduction-to-smart-contracts.html?highlight=memory#storage-memory-and-the-stack).
60
60
61
-
### Variabili d'ambiente {#environment-variables}
61
+
### Variabili ambientali {#environment-variables}
62
62
63
63
Oltre alle variabili che vengono definite nel contratto, sono presenti alcune variabili globali speciali. Vengono utilizzate principalmente per fornire informazioni sulla blockchain o sulla transazione corrente.
64
64
@@ -100,7 +100,7 @@ function update_name(string value) public {
100
100
- È dichiarato `public` e quindi chiunque può accedervi
101
101
- Non è dichiarato `view`, quindi può modificare lo stato del contratto
102
102
103
-
### Funzioni view {#view-functions}
103
+
### Funzioni 'view' {#view-functions}
104
104
105
105
Queste funzioni promettono di non modificare lo stato dei dati del contratto. Tra gli esempi più comuni vi sono le funzioni "getter": puoi usarle ad esempio per ricevere un saldo dell'utente.
106
106
@@ -131,7 +131,7 @@ Ecco cosa è considerato modifica dello stato:
131
131
7. Utilizzo di chiamate di basso livello.
132
132
8. Utilizzo di assembly inline contenente determinati opcode.
133
133
134
-
### Funzioni constructor {#constructor-functions}
134
+
### Funzioni del costruttore {#constructor-functions}
135
135
136
136
Quando il contratto viene distribuito per la prima volta, le funzioni `constructor` sono eseguite solo una volta. Come accade per `constructor` in molti linguaggi di programmazione basati su classi, queste funzioni spesso inizializzano le variabili di stato ai valori specificati.
137
137
@@ -167,7 +167,7 @@ Oltre alle variabili che vengono definite nel contratto, sono presenti alcune fu
167
167
168
168
Queste, consentono ai contratti di inviare ETH agli altri conti.
169
169
170
-
## Scrivere funzioni {#writing-functions}
170
+
## Scrittura delle funzioni {#writing-functions}
171
171
172
172
Una funzione ha bisogno di:
173
173
@@ -201,15 +201,15 @@ contract ExampleDapp {
201
201
202
202
Un contratto completo potrebbe avere questa forma. Qui la funzione `constructor` fornisce un valore iniziale per la variabile `dapp_name`.
203
203
204
-
## Eventi e log {#events-and-logs}
204
+
## Eventi e registri {#events-and-logs}
205
205
206
-
Gli eventi ti consentono di comunicare con il tuo contratto intelligente dal tuo frontend o da altre applicazioni che prevedono un'iscrizione. Quando una transazione è minata, i contratti intelligenti possono emettere eventi e scrivere registri alla blockchain, che il frontend può poi elaborare.
206
+
Gli eventi consentono al tuo contratto intelligente di comunicare con il tuo frontend o con altre applicazioni di iscrizione. Una volta che una transazione viene convalidata e aggiunta a un blocco, i contratti intelligenti possono emettere eventi e registrare informazioni, che possono quindi essere elaborati e utilizzati dal frontend.
207
207
208
-
## Esempi commentati {#annotated-examples}
208
+
## Esempi annotati {#annotated-examples}
209
209
210
210
Questi sono alcuni esempi scritti in Solidity. Se vuoi sperimentare con il codice, puoi interagire con questi esempi in [Remix](http://remix.ethereum.org).
211
211
212
-
### Hello world {#hello-world}
212
+
### Ciao mondo {#hello-world}
213
213
214
214
```solidity
215
215
// Specifica la versione di Solidity, utilizzando il controllo delle versioni semantico.
Copy file name to clipboardExpand all lines: public/content/translations/it/developers/docs/smart-contracts/compiling/index.md
+4Lines changed: 4 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -33,6 +33,10 @@ contract Greeter {
33
33
PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH29 0x100000000000000000000000000000000000000000000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP1 PUSH4 0xCFAE3217 EQ PUSH2 0x46 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x52 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5B PUSH2 0xD6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x9B JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x80 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0xC8 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x48656C6C6F000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP SWAP1 JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 SLT 0xec 0xe 0xf5 0xf8 SLT 0xc7 0x2d STATICCALL ADDRESS SHR 0xdb COINBASE 0xb1 BALANCE 0xe8 0xf8 DUP14 0xda 0xad DUP13 LOG1 0x4c 0xb4 0x26 0xc2 DELEGATECALL PUSH7 0x8994D3E002900
34
34
```
35
35
36
+
Questi sono detti **opcode**, o codici operativi. Gli opcode dell'EVM sono le istruzioni di basso livello eseguibili dalla Macchina Virtuale di Ethereum (EVM). Ogni opcode rappresenta un'operazione specifica, come operazioni aritmetiche, operazioni logiche, manipolazione dei dati, flusso di controllo, ecc.
Copy file name to clipboardExpand all lines: public/content/translations/it/developers/docs/smart-contracts/deploying/index.md
+9-4Lines changed: 9 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -20,16 +20,14 @@ Infine, dovrai compilare il tuo contratto prima di distribuirlo, quindi, assicur
20
20
21
21
### Cosa ti serve {#what-youll-need}
22
22
23
-
-il bytecode del tuo contratto: è generato tramite la [compilazione](/developers/docs/smart-contracts/compiling/)
23
+
-Il bytecode del tuo contratto: è generato tramite la [compilazione](/developers/docs/smart-contracts/compiling/)
24
24
- ETH per gas: imposterai il limite di gas come per altre transazioni, quindi, sappi che la distribuzione del contratto necessita di molto più gasi di un semplice trasferimento di ETH
25
25
- uno script o un plugin di distribuzione.
26
26
- accesso a un [nodo Ethereum](/developers/docs/nodes-and-clients/) tramite esecuzione di un nodo personalizzato, connessione a un nodo pubblico o utilizzando una chiave API con un [servizio di nodi](/developers/docs/nodes-and-clients/nodes-as-a-service/)
27
27
28
28
### Passaggi per distribuire un contratto intelligente {#steps-to-deploy}
29
29
30
-
I passaggi specifici dipenderanno dagli strumenti utilizzati. Per esempio, dai un'occhiata alla [documentazione di Hardhat sulla distribuzione dei tuoi contratti](https://hardhat.org/guides/deploying.html). Questi sono due degli strumenti più popolari per la distribuzione dei contratti intelligenti, che coinvolgono la scrittura di uno script per gestire i passaggi di distribuzione.
31
-
32
-
Una volta distribuito, il contratto avrà un indirizzo Ethereum come gli altri [conti](/developers/docs/accounts/).
30
+
I passaggi specifici richiesti dipenderanno dal quadro di sviluppo in questione. Ad esempio, puoi consultare la [documentazione di Hardhat sulla distribuzione dei tuoi contratti](https://hardhat.org/guides/deploying.html) o la [documentazione di Foundry sulla distribuzione e verifica di un contratto intelligente](https://book.getfoundry.sh/forge/deploying). Una volta distribuito, il tuo contratto avrà un indirizzo di Ethereum, come gli altri [conti](/developers/docs/accounts/), e potrà essere verificato utilizzando gli [strumenti di verifica del codice sorgente](/developers/docs/smart-contracts/verifying/#source-code-verification-tools).
33
31
34
32
## Strumenti correlati {#related-tools}
35
33
@@ -55,6 +53,13 @@ Una volta distribuito, il contratto avrà un indirizzo Ethereum come gli altri [
**Crossmint - _Piattaforma di sviluppo Web3 per imprese per distribuire contratti intelligenti, consentire i pagamenti con carte di credito e tra catene, e utilizzare le API per creare, distribuire, vendere, memorizzare e modificare i NFT._**
57
+
58
+
-[crossmint.com](https://www.crossmint.com)
59
+
-[Documentazione](https://docs.crossmint.com)
60
+
-[Discord](https://discord.com/invite/crossmint)
61
+
-[Blog](https://blog.crossmint.com)
62
+
58
63
## Tutorial correlati {#related-tutorials}
59
64
60
65
-[Deploying your first smart contract](/developers/tutorials/deploying-your-first-smart-contract/): _Un'introduzione alla distribuzione del primo contratto su una rete di prova di Ethereum._
Copy file name to clipboardExpand all lines: public/content/translations/it/developers/docs/smart-contracts/languages/index.md
+5-3Lines changed: 5 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
---
2
2
title: Linguaggi dei contratti intelligenti
3
-
description: "Panoramica e confronto dei due linguaggi principali dei contratti intelligenti: Solidity e Viper."
3
+
description: 'Panoramica e confronto dei due linguaggi principali dei contratti intelligenti: Solidity e Viper.'
4
4
lang: it
5
5
---
6
6
@@ -11,6 +11,8 @@ I due linguaggi più attivi e gestiti sono:
11
11
- Solidity
12
12
- Vyper
13
13
14
+
Remix IDE fornisce un ambiente di sviluppo completo per creare e testare i contratti sia in Solidity che in Vyper. [Prova Remix IDE integrato nel browser](https://remix.ethereum.org) per iniziare a programmare.
15
+
14
16
Gli sviluppatori più esperti potrebbero prendere in considerazione anche Yul, un linguaggio intermedio per la [macchina virtuale Ethereum](/developers/docs/evm/), oppure Yul +, un'estensione di Yul.
15
17
16
18
Se sei curioso e vorresti aiutare a testare nuovi linguaggi ancora in via di sviluppo, puoi sperimentare con Fe, un linguaggio emergente nel campo dei contratti intelligenti, correntemente ai suoi inizi.
@@ -35,7 +37,7 @@ Una conoscenza pregressa dei linguaggi di programmazione, specialmente JavaScrip
35
37
-[Portale del Linguaggio di Solidity](https://soliditylang.org/)
36
38
-[Solidity per Esempio](https://docs.soliditylang.org/en/latest/solidity-by-example.html)
37
39
-[GitHub](https://github.com/ethereum/solidity/)
38
-
-[Solidity Gitter Chatroom](https://gitter.im/ethereum/solidity) collegato a [Solidity Matrix Chatroom](https://matrix.to/#/#ethereum_solidity:gitter.im)
40
+
-[Solidity Gitter Chatroom](https://gitter.im/ethereum/solidity) collegato alla [Chatroom di Solidity Matrix](https://matrix.to/#/#ethereum_solidity:gitter.im)
Copy file name to clipboardExpand all lines: public/content/translations/it/developers/docs/smart-contracts/libraries/index.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -79,7 +79,7 @@ Indipendentemente dal metodo utilizzato, includendo una libreria, tieni sempre d
79
79
80
80
Usare la libreria di un contratto intelligente per il tuo progetto ha diversi benefici. Prima di tutto, fa risparmiare tempo perché fornisce blocchi di programmazione pronti all'uso che puoi includere nel sistema e che non devi programmare autonomamente.
81
81
82
-
Anche la sicurezza è un importante vantaggio. Le librerie dei contratti intelligenti open source, inoltre, sono spesso molto controllate. Dato che molti progetti dipendono da esse, c'è un forte incentivo da parte della community a revisionarle costantemente. È molto più comune trovare errori nel codice di un'applicazione che nelle librerie riutilizzabili dei contratti. Inoltre alcune librerie sono sottoposte a [audit esterni](https://github.com/OpenZeppelin/openzeppelin-contracts/tree/master/audit) per maggior sicurezza.
82
+
Anche la sicurezza è un importante vantaggio. Le librerie dei contratti intelligenti open source, inoltre, sono spesso molto controllate. Dato che molti progetti dipendono da esse, c'è un forte incentivo da parte della community a revisionarle costantemente. È molto più comune trovare errori nel codice di un'applicazione che nelle librerie riutilizzabili dei contratti. Inoltre alcune librerie sono sottoposte a [controlli esterni](https://github.com/OpenZeppelin/openzeppelin-contracts/tree/master/audits) per maggior sicurezza.
83
83
84
84
Tuttavia, l'uso delle librerie dei contratti intelligenti comporta il rischio di includere codice con cui non sei familiare nel tuo progetto. La tentazione di importare un contratto e includerlo direttamente nel progetto è forte, ma se non si sa cosa fa il contratto, si potrebbe inavvertitamente inserire un problema nel sistema a causa di un comportamento imprevisto. Leggi sempre la documentazione del codice che importi e quindi controlla il codice direttamente prima di renderlo parte del tuo progetto.
0 commit comments