Releases: scale-it/algo-builder
v1.2.0 Release
Highlights
- New
@algo-builder/web
package which provides well known Algo Builder high level functionality to both webapp dapps and algo builder projects. It's compatible withalgosigner
! - Creating a TypeScript project using
algob init --typescript
. - A bit of TEALv4: Pooled transaction fees support in our runtime!
- Added out of the box support for
tealdbg
check our debugging TEAL guide. - Improved multi signatures handling. You can use
algob sign-multisig
to create or append a new signature. See multisign guide for more details. - Added
deployASADef
function to deploy ASA without using/assets/asa.yaml
. - Added
yarn run test:watch
command. NOTE: it will spawn multiple process in the same terminal session. So if you want to stop the all processes the best solution is to kill the terminal session.
API breaking
- Renamed smart contract related functions by changing the
SSC
suffix toApp
. This will affect all code related to deployment or app calls:- OptInSSC -> OptInToASA
- DeleteSSC -> DeleteApp
- DeploySSC -> DeployApp
- SSCDeploymentFlags -> AppDeploymentFlags
- SSCOptionalFlags -> AppOptionalFlags
- Import are changed to scoped imports
- instead of stringToBytes, you can import a
convert
namespace (from@algo-builder/algob
), and then useconvert.stringToBytes
- instead of stringToBytes, you can import a
- Types imports for
ExecParams
,TransactionTypes
,SignType
moved to new package@algo-builder/web
- Deprecate
@algo-builder/types-algosdk
and migrate toalgorand/js-sdk
types. The JS SDK migrated to typescript so we don't need to support any more our SDK TypeScript type definitions.
Dapp templates and solutions
- Added new template
/shop
to demonstrate a react component (payment widget) to make a purchase and triggerAlgoSigner
for signing a transaction.
Examples
- Permissioned Token Added
cease
function and a script to change permissions app_id.
Tutorials:
- We published a Securities and Permissioned Tokens solution (implemeted using
algob
): https://developer.algorand.org/solutions/securities-and-permissioned-tokens/. - Published fifth tutorial in the
@algo-builder
series, on how to usealgob console
to quickly and easily interact with ASA and smart contracts: https://developer.algorand.org/tutorials/algo-builder-tutorial-part-5-algob-console/.
Quality Assurance
- Added github workflows/examples.yaml to execute
/examples
on a private net, on pushing new commit todevelop
/master
branch OR creating a pull request that target these branches.
Infrastructure
- Added new make commands:
setup-reach
- sets up reach executable file in~/.algorand-reach
directoryremove-reach
- halts any dockerized dev nets, kills & removes docker instances and containers, remove reach bash file from~/.algorand-reach
.restart-private-net
: restarts private-net.indexer-docker-up
,indexer-docker-down
: Docker based setup for indexer. Runs in read-only mode, without connecting to local algod node.make setup-postgresql
: Installpostgresql
database on a local linux system and setup a new user & database.make start-indexer
: Add local indexer binary (downloaded in~/.algorand-indexer-download
) and start the indexer by connecting to database and local algod node.make recreate-indexer
: resets the indexer database and runsstart-indexer
.make remove-indexer
: Removes~/.algorand-indexer-download
directory from system.
Bug fixes
- Fixed dependency issues while installing algob using
yarn add @algo-builder/algob
&npm install @algo-builder/algob
. web
:- Added missing
fromAccount?
attribute to theSign
type. - Removed
TxParams
type from runtime package(it is duplicated in runtime)
- Added missing
v1.1.2
v1.1.1
v1.1.0
v1.1.0 2021-06-23
Highlights:
- TEALv3 support
- PyTEAL
Tmpl
expression support: #343 (comment) - improved documentation and guide
- better handling in
executeTransaction
- checkpoint can be market invalid if they are substituted (eg by redeploying same asset).
API breaking
- Move
updateSSC
function todeployer
-
Rename
parseArgs
toparse_params
-
For External support of parameters user should replace TMPL_ prefix in their smart contracts, and only use it when using pyteal.tmpl(..)
-
Rename
appId
toappID
in all places. (previously some of SSC params were takingappId
and other were takingappID
, this was inconsistent)
Improvements
- Replaced dependency
find-up
withfindup-sync
inalgob
. - Added
algopy
in@algo-builder/algob/sample-project
, which enables users to pass template parameters to PyTEAL contracts. Updated docs. - Store checkpoints in nested form for SSC, added tests.
- Added support for sub directories in assets folder, with tests.
- Update runtime to process execParams.deployASA, deploySSC, OptInToASA, OptIntoSSC
- Exported
@algorand-builder/algob
,@algorand-builder/runtime
error types and make it accessible for API documentation. - Added
debugStack
option inruntime.executeTx()
to print stack (upto depth = debugStack) after each opcode execution. - TEALv3 support in
@algo-builder/runtime
. - Transpile TEAL code to substitute the TMPL placeholders
- Mark not valid checkpoints (in case of
DeleteSSC
/DestroyAsset
) usingdeleted
boolean
Bug fixes
@algorand-builder/runtime
* Remove asset holding from account if closeRemainderTo
is specified.
* Asset creator should not be able to close it's holding to another account.
- fixed temporal files handling.
v1.0.2
v1.0.2 2021-05-18
Improvements
- Improved error is display messages for users
- Add
updateApp
method to update stateful smart contracts using execute transaction in runtime
Bug fixes
- Added missing dependency:
find-up
v1.0.1
- Fixed dependency for
@algo-builder/algob
.
v1.0.0
Huge milestone. Algo Builder is going to 1.0!
We have full support for all Algorand transaction types and TEALv2 in our @algo-builder/runtime
. This means that you can efficiently test and integrate your application with Algo Builder!
We are the first one to deliver an enterprise level framework for building Algorand Dapps.
Changelog
New website: https://scale-it.github.io/algo-builder
Breaking
- Removed Algob prefix in deployer (eg. renamed
AlgobDeployer
toDeployer
) - Updated
execParams
structure & typings (input parameters forexecuteTransaction
)- Migration: If
SignType
isLogicSignature
then changefromAccount
tofromAccountAddr
and just pass from address instead of complete account.
- Migration: If
- Changed the way we pass arguments to stateless smart contract - moved assignment from when we load smart contract (using
loadLogic
,mkDelegatedLsig
,fundLsig
) to when we create transaction execution parameters.- Migration: assign stateless args in txParams to
executeTransaction
. Egawait deployer.loadLogic('htlc.py', [arg1]); // remove scTmplParams from here const txnParams: rtypes.AlgoTransferParam = { .. } txnParams.args = [arg1]; // assign here now await executeTransaction(deployer, txnParams);
- Migration: assign stateless args in txParams to
Improvements
- Added more tests for the crowdfunding example project using
@algo-builder/runtime
- Happy paths and Failing paths. - Integrated user documentation with
jekyll
. - Added new function
signLogicSigMultiSig
to sign logic signature by multisig. - Updated ASA deployment (
deployASA
function) to pass custom params and save deployed asset definition in checkpoint. - Support deployment and optIn methods in a transaction group (along with all other methods, using
executeTransaction
). - Renamed
loadBinaryMultiSig
toloadBinaryLsig
(load signed logic signature from file in scripts). - New opt-in functions and updates. Check the deployer API for information about all opt-in functions.
deployer.optIn
are now available both in DEPLOY mode to RUN mode.- Extended
deployer.optIn*
functions to support ASA by ID. Previously we only accepted ASA by name (based on the name inassets/asa.yaml
file). - Added
deployer.optInLsigToSSC
anddeployer.optInLsigToASA
to easily opt-in stateless smart contract (lsig) account to stateful smart contract and ASA.
- Asset related
execParams
(transaction parameters forexecuteTransaction
) support ASA by name and by ID (previously only ASA ID was supported). Example. - cleaned test suite log (when developing Algo Builder itself). Our test suite has 884 tests.
Commands
We added new commands:
algob test
(runs mocha in project root).algob unbox-template <name> <destination>
to quickly unbox a dapp template from scale-it/algo-builder-templates.algob sign-multisig --account <acc> --file <input> --out <out-file>
to append user's signature to signed multisig file using accounts managed byalgob
.algob sign-lsig --account <acc> --file <input> --out <out-file>
to sign logic signature using accounts managed byalgob
.
Examples
- Added new templates:
- Updated
examples/asa
: added new use-case to deploy and control ASA by a smart contract.
Dapp templates.
- We created a new repository with dapp templates. It's a new project line of Algo Builder. Dapp Templates are webapps operating with Algorand blockchain with
algob
support. For the moment we only have React templates. Anyone can contribute with a new template or by improving the pre-existing ones by creating a pull request. - Added
algob unbox-template
command to download a template and setup the project.
Infrastructure
- Added new make commands:
setup-private-net
- creates and starts private network, setups master account and shows network status.recreate-private-net
- stops and removes the private network, and re-setup.
@algorand-builder/runtime:
- fixed bugs
- in group tx flow
- in opcodes: asset_params_get, txn GroupIndex, concat
- closing asset using clawback should be denied