Skip to content

v2.0.0 Release

Compare
Choose a tag to compare
@robert-zaremba robert-zaremba released this 30 Sep 16:22
· 442 commits to master since this release

Hightlights

  • Updates our examples / templates. Especially head out to the DAO and permissioned token examples which allows you easily to run a DAO and security token respectively.
  • TEALv4 support in our testing framework and runtime
  • executeTranasction function rework. Now it supports the SDK Transaction object. Check our updated Execute Transaction Guide.

Improvements

  • Added shared space between contracts
  • Added tealv4 opcodes (gload and gloads)
  • Added Tealv4 opcodes (callsub and retsub)
  • Added loop support in runtime
  • TEALv4 support in @algo-builder/runtime:
    • Added shared space between contracts (opcodes gload and gloads)
    • Dynamic Opcode Cost Evaluation
    • Transaction Array changes
      a) array length assertions for tx.ForeignAssets, tx.Accounts, tx.ForeignApps,
      b) User can pass id/offset for app/asset in for array references. For tx.Accounts you can pass address directly in teal code.
    • Byteslice arithmetic ops (b+, b-, b*, b/, b%, b<, b>, b<=, b>=, b==, b!=, b\, b&, b^, b~, bzero).
    • Additional mathematical opcodes: divmodw, exp, expw, shl, shr, sqrt
    • More Versatile Global and Local Storage (combination of upto 128 bytes allowed between key-value).
    • Asset URL change (max size increased till 96 bytes).
    • gaid, gaids opcodes (knowable creatable id)
  • Updated all examples & tests to use TEALv4 (#pragma version 4)
  • Added support for querying indexer in an algob script (accessable via deployer.indexerClient). You can pass indexerCfg in your network's config in algob.config.js. Added docs.
  • Add function to store checkpoint for contract logic signature (mkContractLsig).
  • Add support for algosdk.Transaction object in executeTranasction
  • Add signTransactions functions: It signs transaction object(s) and returns raw signed transaction.

Bug Fixes

  • Fixed yarn add @algo-builder/web (was failing because of missing dependency zod in packages/web).
  • Fix metadatahash type
  • Fix init project-name bug(algob init <project-name> command was not working properly)
  • Fix zod package was missing from runtime(but zod was being used in runtime)
  • Added support for passing http token as an object as well. User can now use { "X-Algo-API-Token": <token> } notation for passing token in algob.config.js.

Testing framework bug fixes

  • Fix random address for logic sig, creating two times an lsig account from the same TEAL code should return the same address.

API Breaking

  • Migrate from LogicSig to LogicSigAccount(Note: Loading lsig from file uses LogicSig, because goal stores it in LogicSig type format)
  • Rename CallNoOpSSC to CallApp.
  • Rename optInAcountToASA to optInAccountToASA (typo)
  • Rename readLocalStateSSC to readAppLocalState, readGlobalStateSSC to readAppGlobalState.

Dependencies

  • Upgraded pyTEAL version 0.9.0 in pipfile.
  • Upgraded indexer binary version to 2.6.1 in /infrastructure/Makefile.

Examples

  • Added new template DAO, with flow tests. Read the specification here.