# ALEO | Deploy | Smart Contract

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

---

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

### Leo Wallet.

Descărcați portofelul Leo de [**AICI**](https://www.leo.app/).

Creați-vă contul și păstrați cuvintele secrete într-un loc sigur.

În continuare va trebui să salvați într-un fișier View Key-ul și Private Key-ul de la contul nou creat. Pentru asta, în portofelul Leo, dați click pe ⚙.

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

Reveal View Key și Private Key.

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

Pregătiți adresa, view key-ul și private key-ul într-un fișier. O să avem nevoie de acestea mai târziu.

### Aleo Faucet.

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

Trebuie să trimiteți un SMS la nr: **_+18678885688_** cu mesajul:**_Send 50 credits to adresa\_dumneavoastra\_aleo_**

În câteva minute trebuie să primiți un răspuns cu un link ca [acesta](https://vm.aleo.org/api/testnet3/transaction/at19ptrqmrmayzkluvf662tcvhu3wcspd99h760eux4tusmttc9vyqqqjq48p). Salvați într-un fișier link-ul primit.

Deschideți site-ul [**jsonformmater**](https://jsonformatter.curiousconcept.com/#). Inserați link-ul primit și dați click pe **Process**.

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

Mai jos apare conținutul din link într-un format mult mai ușor de urmărit.

Va trebui să salvați în fișier valoarea care începe cu **record…**

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

execution => transitions => outputs => value => **record……….**

În continuare accesați aleo.tools și adăugați la **Record (Ciphertext)** valoarea pe care ați copiat-o anterior mai sus. La View Key introduceți cheia pe care ați copiat-o din portofelul Leo. Dacă ați introdus datele corect, imediat la secțiunea **Record (Plaintext)** se va afișa un **_rezultat_**. Acest **_rezultat_** îl copiați într-un fișier. O să aveți nevoie mai târziu.

PS. Notez aceste date cu **REZULTAT\_XYZ**. Când vom avea nevoie de ele, voi menționa acest nume și veți ști că trebuie să reveniți la acest pas.

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

### Instalăm LEO.

    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
    

👆 Scrieți **1** și tastați **Enter.**

    source "$HOME/.cargo/env"
    

Următoarele două instrucțiuni durează ceva timp.

    sudo apt update && sudo apt upgrade
    

    sudo apt install lldb lld libboost-all-dev libpq-dev libssl-dev pkg-config openssl ocl-icd-opencl-dev curl git jq lz4 unzip ca-certificates gnupg lsb-release -y
    

    sudo apt install build-essential gcc
    

    git clone https://github.com/AleoHQ/leo
    

    cd leo
    

    cargo install --path .
    

👆 Instrucțiunea asta durează minim 30min.

👆 Rezultatul trebuie să fie ca în imaginea de mai jos:

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

    cd
    

### Instalăm SnarkOS.

    git clone https://github.com/AleoHQ/snarkOS.git --depth 1
    

    cd snarkOS
    

Următoarele 2 instrucțiuni durează minim câte 30 minute.

    ./build_ubuntu.sh
    

Instrucțiunea se finalizează cu succes și trebuie să vedeți asta:

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

    cargo install --path .
    

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

Trebuie să vă afișeze asta:

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

### Deploy Aleo.

    cd
    

    mkdir Leo_app && cd Leo_app
    

Dacă încercați să rulați pentru un nou smart contract, trebuie să modificați denumirea folder-ului de mai sus, spre exemplu: Leo\_app1, Leo\_app2, etc…

    WALLETADDRESS="adresa_aleo"
    

👆 În loc de **adresa\_aleo** introduceți adresa dumneavoastră aleo din portofel.

    APPNAME=aleo_aplicatia_"${WALLETADDRESS:4:6}"
    

**!** **Este foarte important să modificați denumirea aplicației** (smart contract-ului) de mai sus dacă doriți să faceți deploy de mai multe ori. Spre exemplu:  
APPNAME=aleo\_aplicatia**1**\_ "${WALLETADDRESS:4:6}" și de fiecare dată nu uitați să modificați denumirea. Numele trebuie să fie unic în întreaga rețea Aleo.

    leo new "${APPNAME}"
    

Răspunsul corect trebuie să arate în felul următor: _Leo_ ✅ _Created an Aleo program..._

    cd "${APPNAME}" && leo run && cd -
    

    PATHTOAPP=$(realpath -q $APPNAME)
    

    cd $PATHTOAPP
    

    PRIVATEKEY="private_key"
    

👆 În loc de **private\_key** introduceți cheia privată pe care ați copiat-o la început din portofelul Leo.

    RECORD="REZULTAT_XYZ"
    

👆 În loc de **REZULTAT\_XYZ** introduceți record-ul salvat în prima parte.

    cd ..
    

    snarkos developer deploy "${APPNAME}.aleo" --private-key "${PRIVATEKEY}" --query "https://vm.aleo.org/api" --path "./${APPNAME}/build/" --broadcast "https://vm.aleo.org/api/testnet3/transaction/broadcast" --fee 5000000 --record "${RECORD}"
    

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

… iar rezultatul cu succes trebuie să arate în felul următor:

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

Dacă aveți eroarea de mai jos, măriți gas fee-ul din instrucțiunea de mai sus.

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

Puteți verifica direct în portofelul Aleo.

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

### Cum faci deploy la mai multe smart contracte?

Trebuie să deschideți portofelul Leo și să dați click pe ultima tranzacție din portofel, după cum vedeți pe imaginea de mai sus. Se va deschide tranzacția în explorer.  
Dați click pe Transition ID. Vedeți mai jos:

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

În josul paginii care s-a deschis veți găsi câmpul **Record data**. Copiați record-ul respectiv. Aveți exemplu mai jos:

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

Mai departe repetați pașii de mai sus, pe care îi vedeți în imaginea de mai jos:

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

După ce ați salvat record-ul nou creat, repetați pașii de la **Deploy Aleo**.

**Spor!** 👋😉👍

---

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