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.
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
- User is able to provide KMD and ALGOD credentials using ENV variables → config-credentials
- User is able to load accounts from KMD and ENV → config-accounts-env.
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.