Skip to content

Releases: scale-it/algo-builder

v1.2.0 Release

09 Aug 11:08
Compare
Choose a tag to compare

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 with algosigner!
  • 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 to App. 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 use convert.stringToBytes
  • Types imports for ExecParams, TransactionTypes, SignType moved to new package @algo-builder/web
  • Deprecate @algo-builder/types-algosdk and migrate to algorand/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 trigger AlgoSigner for signing a transaction.

Examples

Tutorials:

Quality Assurance

  • Added github workflows/examples.yaml to execute /examples on a private net, on pushing new commit to develop/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 directory
    • remove-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: Install postgresql 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 runs start-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 the Sign type.
    • Removed TxParams type from runtime package(it is duplicated in runtime)

v1.1.2

16 Jul 08:23
Compare
Choose a tag to compare

Small bugfix release

@algorand-builder/runtime

  • #409 Added missing fromAccount attribute to SignWithLsig type.

v1.1.1

12 Jul 09:16
Compare
Choose a tag to compare

v1.1.1 2021-07-12

Improvements

  • updated algob test command to run mocha in typescript project as well.
  • updating documentation

Bug fixes

@algorand-builder/runtime
* fixed bug when trying to optIn to asset using asset transfer transaction with amount 0n.

v1.1.0

23 Jun 08:57
Compare
Choose a tag to compare

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 to deployer
  • Rename parseArgs to parse_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 to appID in all places. (previously some of SSC params were taking appId and other were taking appID, this was inconsistent)

Improvements

  • Replaced dependency find-up with findup-sync in algob.
  • 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 in runtime.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) using deleted 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

18 May 15:40
Compare
Choose a tag to compare

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

16 May 18:00
Compare
Choose a tag to compare
  • Fixed dependency for @algo-builder/algob.

v1.0.0

14 May 10:44
Compare
Choose a tag to compare

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 to Deployer)
  • Updated execParams structure & typings (input parameters for executeTransaction)
    • Migration: If SignType is LogicSignature then change fromAccount to fromAccountAddr and just pass from address instead of complete account.
  • 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. Eg
      await deployer.loadLogic('htlc.py', [arg1]); // remove scTmplParams from here
      const txnParams: rtypes.AlgoTransferParam = { .. }
      txnParams.args = [arg1]; // assign here now
      await executeTransaction(deployer, txnParams);

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 to loadBinaryLsig (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 in assets/asa.yaml file).
    • Added deployer.optInLsigToSSC and deployer.optInLsigToASA to easily opt-in stateless smart contract (lsig) account to stateful smart contract and ASA.
  • Asset related execParams (transaction parameters for executeTransaction) 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 by algob.
  • algob sign-lsig --account <acc> --file <input> --out <out-file> to sign logic signature using accounts managed by algob.

Examples

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.
    • /default template (with ASA transfer functionality)
    • /htlc template - dapp implementing hash time locked contract.
  • 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