cadenza is a browser based pyteal editor & compiler, built for algorand's 2022 Q1 internal hackathon.
it can currently deploy stateful apps as well, but there is no UI feature to interact with them (yet!).
live demo here: but it is probably better to run it locally and consider it as a UI to your sandbox for now.
Make sure you have sandbox running.
- clone this repo
cd src/server
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
- Start the server with
python app.py
orflask run --host=0.0.0.0
Now you should see the editor at http://localhost:5000
.
- you can use the editor to input your own pyteal code.
- there is some default boilerplate code available for you, and you can find more useful utils at the pyteal-utils repo.
- pyteal written in cadenza must have the
router
object as the entry point for stateful apps, and the approval and clear state program will automatically be generated from this. - the compiler always compiles to the latest pyteal version available.
- compile button tries to compile the pyteal and upon success, returns the base64 encoding of the program.
- deploy button tries to compile and deploy the program on a private network on sandbox (on dev mode, so consensus and block finality is immediate!), and upon success, returns the application creation response.
- double clicking the console will clear all the logs.
- frontend: mostly vanilla javascript with the ace editor integration
- backend: python & flask, with help from pyteal, py-algorand-sdk, and sandbox
there aren't that many tests right now, but you can run them by booting up a default sandbox instance and running:
python -m pytest
use at your own risk!
report them to me on github or open up an issue in the repo 🎶.
pr's are always welcomed 🎼