# Smart Contract ZkSync

By [Crypto Lemon](https://paragraph.com/@parlamentulcrypto) · 2023-03-16

---

    sudo apt update
    

În timpul instalării, la un moment dat va trebui să tastați **y**.

![](https://storage.googleapis.com/papyrus_images/84fcbb8868c0ce60ccda820aa242cc80eab77f45b3bc6622f3c9a119de899dcb.png)

    sudo apt install -y curl
    

    curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
    

Rezultatul din urma acestei instrucțiuni trebuie să fie ca în imaginea de mai jos:

![](https://storage.googleapis.com/papyrus_images/22458433cb49786099a7bccc1cc509d54cc64fd821e6be14b498387b90da96f3.png)

    sudo apt install -y nodejs
    

![](https://storage.googleapis.com/papyrus_images/cabe98eef41d3e52f4cd852f25acfdb6091bf7de19a437212683f64326bd3833.png)

    mkdir greeter-example
    

    cd greeter-example
    

Click pe **y**.

Adăugați rețeaua de test Zksync în Metamask de [AICI](https://chainlist.org/?search=zkSync+Era+test&testnets=true), în cazul în care nu o aveți deja.

Transferați ceva ETH de test din rețeaua Goerli către ZkSync Era [AICI](https://goerli.portal.zksync.io/transfer). 0.01 ETH e mai mult decât suficient.

Continuăm instrucțiunile pe server.

    npm init --y
    

![](https://storage.googleapis.com/papyrus_images/338a603782e9ee267f45942f4d2961579004e6c9331d354d46141c0c804939d7.png)

    npm install --save-dev hardhat
    

![](https://storage.googleapis.com/papyrus_images/16c55651bbd5177e615a761e9e9d759641e6e504c88f1d27c869fc994f963dfc.png)

    npm install -g npm@9.6.0
    

![](https://storage.googleapis.com/papyrus_images/7a74975611e756c99aa6cbfcb1a93db6646015d9979cf78c1d2fca44c7337072.png)

Selectați **Create a TypeScript project** prin intermediul săgeților de pe tastatură, click pe **Enter** și după tastați **y** de câteva ori.

![](https://storage.googleapis.com/papyrus_images/a5d578524bff9058af2e86ad27d490e78ec9193893dfa33ebc2c5c66db5f4f33.png)

![](https://storage.googleapis.com/papyrus_images/44724c1e48de7c5c44b71e23ff75698db4efdb28c896dbcb5fe82dd138cab8bb.png)

![](https://storage.googleapis.com/papyrus_images/c51574d50e6a23b1acbed525a6c26d3753203e32abd553c1d933f292398017c6.png)

În procesul instrucțiunii de mai sus o să vedeți câteva WARNing-uri. Nu atragem atenția. Continuăm instrucțiunile.

    mkdir greeter
    

    cd greeter
    

    npm init -y
    

    npm add -D typescript ts-node @types/node ethers@^5.7.2 zksync-web3@^0.13.1 @ethersproject/hash @ethersproject/web hardhat @matterlabs/hardhat-zksync-solc @matterlabs/hardhat-zksync-deploy 
    

![](https://storage.googleapis.com/papyrus_images/2784aacc632b53c0cfe7657c400f70aa1379802bab5905b7d9eead2efe1b902c.png)

    vim hardhat.config.ts
    

Se va deschide un fișier. Dați click pe **i** de la tastatură pentru a putea edita fișierul.

Copiați codul de [AICI](https://era.zksync.io/docs/api/hardhat/getting-started.html#configuration) și îl inserați în fișierul de pe server. Click dreapta pe mouse → Paste. După dați click pe tasta **Esc** și scrieți :wq. Tastați **ENTER**.

![](https://storage.googleapis.com/papyrus_images/4f2f9c4e2a293f1a4307e07901cf1a00bb245c0ebfd51e959fccb637463ba001.png)

Continuăm instrucțiunile.

    mkdir contracts
    

    mkdir deploy
    

    vim contracts/Greeter.sol
    

Din nou se va deschide un tab deja pentru fișierul Greeter.sol. La fel ca mai sus, dați click pe **i** și inserați codul pe care îl copiați de [AICI](https://era.zksync.io/docs/api/hardhat/getting-started.html#write-and-deploy-a-contract). După dați click din nou pe tasta **Esc** și scrieți **:wq**. Click pe **Enter.**

    npx hardhat compile
    

![](https://storage.googleapis.com/papyrus_images/5fd022105cd14e8643b697860b9a0c204e5096c64a8dbc1ed657f08875fac2bb.png)

    vim deploy/deploy.ts
    

Din nou se va deschide fereastra de editare. Click pe **i** și inserați codul pe care îl copiați de [AICI, **de la punctul 6**](https://era.zksync.io/docs/api/hardhat/getting-started.html#write-and-deploy-a-contract).

Căutați în codul copiat linia _const wallet = new Wallet("");_ În loc de trebuie să scrieți private key-ul de la adresa dumneavoastră din Metamask.**Exemplu**: _const wallet = new Wallet("436246242485568261575815685633624624");_ Mai apoi dați click pe **Esc,** scrieți **:wq** și tastați **Enter**. PS. Vedeți [AICI](https://support.metamask.io/hc/en-us/articles/360015289632-How-to-export-an-account-s-private-key#:~:text=Click%20on%20the%20account%20button,on%20'Show%20private%20key'.) cum puteți afla private key-ul adresei în Metamask. În continuare mai trebuie să rulăm o singură instrucțiune. npx hardhat deploy-zksync Așteptăm câteva minute, iar ca și rezultat trebuie să primiți textul:Greeter was deployed to xxxxxxxxxx (adresa contractului). Contract greets us with Hi there!! Contract greets us with Hey guys! Accesați [ZkSync Explorer-ul](https://goerli.explorer.zksync.io/) și introduceți adresa dumneavoastră din Metamask. Verificați la _Latest Transactions_ dacă aveți 3 txid-uri ca în imaginea de mai jos: **Felicitări!** Ați rulat un smart contract pe ZkSync Era. Dacă doriți să faceți deploy la smart contract pe o altă adresă de metamask, reveniți la pasul: _vim deploy/deploy.ts_ și modificați private key-ul în fișier.

---

*Originally published on [Crypto Lemon](https://paragraph.com/@parlamentulcrypto/smart-contract-zksync)*
