DEV Community

EgorMajj
EgorMajj

Posted on

2 1

Aleo Testnet - Deploy a Smart Contract

Step 1: Create a new Aleo wallet in seconds:

• Already have a wallet? Skip this step ✅
• Visit https://aleo.tools/ and click "Generate" to create a secure wallet. Save the output 🔒

Finally, use your keys to add variables to your server with these commands

Image description

Step 2: Get tokens for your wallet

Simply text +1-867-888-5688 with the format below and receive 50 credits instantly.

Send: "50 credits to aleo1jjjnu3xk05h239ak5w2x5ejfh6del0whpe7pgya0pu00cp4pn5yq40ykus"

Step 3: Grab packages and start a slick tmux session.

sudo apt update && \
sudo apt install make clang pkg-config libssl-dev build-essential gcc xz-utils git curl vim tmux ntp jq llvm ufw -y && \
tmux new -s deploy
Enter fullscreen mode Exit fullscreen mode

Building a binary requires creating a tmux session, which may take some time. But don't worry - if your ssh connection is lost, you won't have to rebuild everything. Just reconnect to your existing tmux session and pick up where you left off.

Step 4: Add your wallet and private key as a variable.

echo Enter your Private Key: && read PK && \
echo Enter your View Key: && read VK && \
echo Enter your Address: && read ADDRESS
Enter fullscreen mode Exit fullscreen mode

Step 5: Make sure the data is correct. If not, you can do step 4 again.

echo Private Key: $PK && \
echo View Key: $VK && \
echo Address: $ADDRESS
Enter fullscreen mode Exit fullscreen mode

Once you get a message from the bot confirming your wallet has been replenished, head to https://faucet.aleo.org/ and double-check the transaction went through.

Use the Transaction ID as the answer when using the following command.

echo Enter your Transaction ID: && read TI
Enter fullscreen mode Exit fullscreen mode
CIPHERTEXT=$(curl -s https://vm.aleo.org/api/testnet3/transaction/$TI | jq -r '.execution.transitions[0].outputs[0].value')
Enter fullscreen mode Exit fullscreen mode

Step 6: Install required software

cd $HOME
git clone https://github.com/AleoHQ/snarkOS.git --depth 1
cd snarkOS
bash ./build_ubuntu.sh
source $HOME/.bashrc
source $HOME/.cargo/env
Enter fullscreen mode Exit fullscreen mode
cd $HOME
git clone https://github.com/AleoHQ/leo.git
cd leo
cargo install --path .
Enter fullscreen mode Exit fullscreen mode

Step 7: Deploy a contract

NAME=helloworld_"${ADDRESS:4:6}"
mkdir $HOME/leo_deploy
cd $HOME/leo_deploy
leo new $NAME
Enter fullscreen mode Exit fullscreen mode
RECORD=$(snarkos developer decrypt --ciphertext $CIPHERTEXT --view-key $VK)
Enter fullscreen mode Exit fullscreen mode
snarkos developer deploy "$NAME.aleo" \
--private-key "$PK" \
--query "https://vm.aleo.org/api" \
--path "$HOME/leo_deploy/$NAME/build/" \
--broadcast "https://vm.aleo.org/api/testnet3/transaction/broadcast" \
--fee 4000000 \
--record "$RECORD"
Enter fullscreen mode Exit fullscreen mode

After executing the command, you should see a similar result.

root@DS-A-1:~/Leo_deploy# snarkos developer deploy "$NAME.aleo" --private-key "$PK" --query "https://vm.aleo.org/api" --path "$HOME/Leo_deploy/SNAME/build/" --broadcast "https://vm.aleo.org/api/testn
et3/transaction/broadcast" --fee 4000000 --record "$RECORD"
Creating deployment transaction for 'helloworld_1m3y73.aleo'...
Created deployment transaction for 'helloworld_1m3y73.aleo'
Successfully deployed helloworld_1m3y73.aleo' to https: //vm.aleo.org/api/testnet3/transaction/broadcast.

Use the resulting transaction hash to find your contract in Explorer: https://explorer.hamp.app/
If your contract shows up in Explorer, you can go to the next step.

Step 8: Execute a contract

Use the transaction hash as the answer for the following command.

echo Enter your Deploy hash: && read DH
Enter fullscreen mode Exit fullscreen mode
CIPHERTEXT=$(curl -s https://vm.aleo.org/api/testnet3/transaction/$DH | jq -r '.fee.transition.outputs[].value')
Enter fullscreen mode Exit fullscreen mode
RECORD=$(snarkos developer decrypt --ciphertext $CIPHERTEXT --view-key $VK)
Enter fullscreen mode Exit fullscreen mode
snarkos developer execute "$NAME.aleo" "hello" "1u32" "2u32" \
--private-key $PK \
--query "https://vm.aleo.org/api" \
--broadcast "https://vm.aleo.org/api/testnet3/transaction/broadcast" \
--fee 1000000 \
--record "$RECORD"
Enter fullscreen mode Exit fullscreen mode

After execution, you should see the following output

root@DS-A-1:~/leo_deploy# snarkos developer execute "$NAME.aleo" "hello" "1u32" "2u32" --private-key $PK --query "https://vm.aleo.org/api" --broadcast "https://vm.aleo.org/api/testnet3/transaction/br
oadcast"
--fee 1000000 --record "$RECORD"
w Creating execution transaction for 'helloworld_1m3y73.aleo'
© Created execution transaction for 'helloworld_1m3y73.aleo/hello'
© Successfully broadcast execution 'helloworld_1m3y73.aleo/hello' to the https://vm.aleo.org/api/testnet3/transaction/broadcast.

Use the resulting transaction hash to find your contract in Explorer: https://explorer.hamp.app/

Congratulations you have deployed the contract to Aleo!

Heroku

Simplify your DevOps and maximize your time.

Since 2007, Heroku has been the go-to platform for developers as it monitors uptime, performance, and infrastructure concerns, allowing you to focus on writing code.

Learn More

Top comments (1)

Collapse
 
apexdev profile image
Ashish

Great

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

👋 Kindness is contagious

Immerse yourself in a wealth of knowledge with this piece, supported by the inclusive DEV Community—every developer, no matter where they are in their journey, is invited to contribute to our collective wisdom.

A simple “thank you” goes a long way—express your gratitude below in the comments!

Gathering insights enriches our journey on DEV and fortifies our community ties. Did you find this article valuable? Taking a moment to thank the author can have a significant impact.

Okay