Skip to content

v1.0.0

Compare
Choose a tag to compare
@robert-zaremba robert-zaremba released this 14 May 10:44
· 607 commits to master since this release

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