Create Publication

We are looking for publications that demonstrate building dApps or smart contracts!
See the full list of Gitcoin bounties that are eligible for rewards.

Article Thumbnail

Introducing Algorand Builder

We are happy to present our latest release of Algorand Builder - v0.3. Back in September 2020 we released the first beta (v0.1) of algob – a framework of the Algorand Builder Suite. Since then, we built a high-effective and trustworthy framework for Algorand dapps. Our goal remains to make shipping Algorand applications simple, efficient, and scalable. Think about it as a truffle suite for Algorand.
logo

Below we describe the release notes.

Quick install

Installation from source

git clone https://github.com/scale-it/algorand-builder.git
cd algorand-builder
yarn install
yarn build
cd packages/algob
yarn link

Finally, make sure your yarn global bin directory is in your $PATH.

Installation from NPM

yarn global add @algorand-builder/algob

Make sure your yarn bin directory is in PATH

cd ~
yarn bin

# test if the command works
algob --version

Algob Package renamed

We moved package into @algorand-builder organization. So all imports and install commands require a change from algob to @algorand-builder/algob.

Summary

In v0.1 we presented a functionality to create new projects:

  • bootstraping project using algob init
  • network and accounts management - user is able to define several network configurations (similarly to Truffle)
  • handle deployment scripts (scripts which are checkpointed and should be run only once) and run scripts (auxiliary, not checkpointed scripts, which represent actions which should be run multiple times).
  • ASA declarations (see ASA example)
  • TEAL stateless smart-contract support: compiling and using TEAL in deplyment and run scripts.

Since then we made two releases: v0.2 (end of November) and v0.3 (the current release). Below we provide highlights of combined upgrades.

Improved Config Features

Check out an example algob.config.js to see how this works.

Reworked Smart Contracts Handling

We rewrote Deployer for handling smart-contracts. Instead of having ubiquitous deployASC function we provide loadLogic, getLsig, mkDelegatedLsig and fundLsig for handling stateless smart contracts.

This release also provides support for stateful ASC! With deploySSC (deploying stateful smart contracts) and getSSC (getting smart contract by name) user is able to manage Algorand Smart Contracts in a cleaner way. Head to our examples.

PyTEAL

We integrated PyTEAL support. This comes with an extra algob dependencies for projects using PyTEAL: python3 and pyteal library. There are multiple ways how to use it:
+ install pyteal as a global package (eg using pip3)
+ using python virtual environments
+ using pyenv (RECOMMENDED).

To make it simple and managable (PyTEAL has a required version and making sure our example PyTEAL code works across all setups) we recommend to use pyenv. Please see our pyenv documentation for details.

Example Smart Contract Projects

We added lot of new examples showing the power of the algob Deployer and now convenient it is to use algob over the primitive scripts from Algorand tutorials. In our examples directory you can find example projects to manage and deploy ASA and various smart contract use-cases. It’s worth to mention the dynamic fee and HTLC smart contracts we ported from the Algorand Developer reference documentation. You can find them in the examples/ref-templates. We used PyTEAL instead of TEAL and added bunch of useful comments.

REPL works with PyTEAL and Stateful Smart Contracts

The REPL (algob console) has a support for PyTEAL and full deployer scripting capabilities. We will show it in action in an upcoming tutorial.

General Improvements

  • Improved logging
  • Smart contract caching
  • Improved error handling

What’s next

We are working on a new feature: testing TEAL smart-contracts and algob scripts. We already implemented a TEAL interpreter, which we will release in the first half of January 2020. For having a transaction testability we are working on a light Algorand Runtime (algorand-builer/algorand-js).

Contact us

We are waiting on your feedback, contact us using algorand-builder GitHub Issues.