We will use builder/core package as a base. The idea is to copy it and remove all necessary things, mostly related to Ethereum. We want to reuse the CLI part of it and REPL integration and plug-in architecture.
Each feature will be a new plugin:
assets and smart-contracts management
How it will work?
We will have a single binary: algob which will be a CLI for different tasks / functionality. Depending on the task, it will either use Algorand goal tool directly or use Algorand API through SDK or REST.
Here we describe how the Algorand builder is used by user.
User starts by creating a new project with algob init. This will create the following:
/assets/*.teal — smart contracts written directly in TEAL
We will also support smart-contracts written in higher level language:
/assets/*.py — smart contracts written directly in Python
The code will be compiled to a bytecode(for Python / Scheme, it will first get compiled to TEAL) and the bytecode with metadata will be stored in /artifacts/contracts/(per network - as in truffle)
assets/asa.yaml — this will contain an ASA(Algorand Standard Assets) description in a YAML format which will handle the ASA creation.
// asa.yaml or multiple with: asa[_a-z]*.yaml
# User may get "signature validation failed" from node if shorter hash is used.