Skip to content

Releases: algorand/pyteal

v0.12.1b1

02 May 21:30
9b4e72f
Compare
Choose a tag to compare
v0.12.1b1 Pre-release
Pre-release

Fix character set issue

v0.12.0

02 May 20:19
23789a3
Compare
Choose a tag to compare

Added

  • Introduce a utility for increasing opcode budget referred to as OpUp (#274).
  • Introduce dryrun testing facilities referred to as blackbox testing (#249).

Changed

  • Make various user guide updates/corrections (#291, #295, #301).
  • Install flake8 linter (#273, #283).

v0.11.1

15 Apr 20:13
a8f7bb6
Compare
Choose a tag to compare

Fixed

  • Fix readthedocs build issue introduced in v0.11.0 (#276, #279).

v0.11.0

12 Apr 20:28
495e379
Compare
Choose a tag to compare

Added

  • Introduce optional compiler optimization to remove redundant sequential ScratchSlot store/load invocations (#247). The optimization is disabled by default.
  • Expose DynamicScratchVar to reference arbitrary ScratchVar instances (#198).

Changed

  • Bump minimum supported Python version to v3.10 (#269).
  • Add @Subroutine support for ScratchVar parameters (#198).
  • Make minor doc updates (#248) and (#265).
  • Remove outdated Jupyter notebook demo (#268).
  • Fix docs warning about multiple OptimizeOptions targets (#271).

v0.10.1

07 Mar 23:37
d84c719
Compare
Choose a tag to compare

Fixed

  • Fixed a bug which caused incorrect TEAL code to be produced for mutually recursive subroutines with different argument counts (#234)
  • Minor docs updates (#211, #210, #229)

v0.10.0

24 Feb 19:37
157a0a4
Compare
Choose a tag to compare

Added

  • Support for new TEAL 6 features:
    • Increase maximum TEAL version (#146)
    • New Gitxn expression, inner transaction group creation with InnerTxnBuilder.Next(), inner
      transaction array field setting, and allow using dynamic slot IDs with ImportScratchValue (#149)
    • New BytesSqrt expression (#163)
    • New Global fields opcode_budget, caller_app_id, and caller_app_address (#168)
    • New AccountParam expressions for getting information about accounts (#165)
    • New Divw expression, new transaction fields last_log and state_proof_pk, and dynamic index
      support for InnerTxn array fields (#174)
  • Added a new MethodSignature expression (#153)
  • Added a new Suffix expression and optimized existing Substring and Extract expressions (#126)
  • Added the MultiValue class as an alternative to MaybeValue (#196)

Fixed

  • Various documentation fixes (#140, #142, #191, #202, #207)
  • Clearer error messages when non-PyTeal expressions are present (#151)

Changed

  • WARNING: Due to code generation improvements, programs compiled with this version will likely
    produce different TEAL code than previous versions, but their functionality will be the same. Be
    aware that even small differences in generated TEAL code will change the address associated with
    escrow LogicSig contracts.
  • Optimized constant assembly for small integers (#128)
  • Generated TEAL code for subroutines is more human-readable (#148)
  • Subroutine argument and return type annotations, if present, MUST be Expr (#182)
  • Transaction field documentation now separates fields by transaction type (#204)
  • Added documentation about how to generate the documentation (#205)

v0.9.1

09 Nov 16:04
eb8d8b1
Compare
Choose a tag to compare

Added

  • Documentation for exponent operator (#134)
  • Documentation for using Seq with lists (#135)

Fixed

  • Fixed use of wildcard import in Pylance (#133)

v0.9.0

29 Sep 15:29
0ec41f6
Compare
Choose a tag to compare

Added

  • Support for new TEAL 5 features:
    • AppParam expressions (#107, #123)
    • New nonparticipation transaction field (#106)
    • Inner transactions, zero-element Seq expressions, dynamic transaction array access (#115)
    • Logs, dynamic LogicSig argument indexes, single-element NaryExprs, and creating Bytes from bytes and bytearray (#117)
    • Extract expressions (#118)
    • More efficient implementation of recursive subroutines in TEAL 5+ (#114)
  • Add WideRatio, an expression which exposes mulw and divmodw (#121, #122)

Changed

  • WARNING: Due to code generation improvements, programs compiled with this version will likely produce different TEAL code than previous versions, but their functionality will be the same. Be aware that even small differences in generated TEAL code will change the address associated with escrow LogicSig contracts.
  • Some unnecessary branch conditions have been removed (#120)

v0.8.0

31 Aug 20:34
7362a6b
Compare
Choose a tag to compare

Added

  • Support for new TEAL 4 features:
    • Basic ops (#67)
    • Byteslice arithmetic (#75)
    • Importing scratch slot values from previous app calls (#79, #83)
    • Direct reference support for applications/accounts/assets (#90)
    • While and For loops (#95)
    • Subroutines (#99)
  • New logo (#88, #91)
  • Added the assembleConstants option to compileTeal. When enabled, the compiler will assemble
    int and byte constants in the most efficient way to reduce program size (#57, #61, #66).
  • Added an alternative syntax for constructing If statements (#77, #82).
  • Align Seq with the rest of the API (#96).

Fixed

  • Fixed NaryExpr.__str__ method (#102).

Changed

  • WARNING: Due to code generation changes required to support TEAL 4 loops and subroutines,
    programs compiled with this version will likely produce different TEAL code than previous
    versions, but their functionality will be the same. Be aware that even small differences in
    generated TEAL code will change the address associated with escrow LogicSig contracts.
  • Improved crypto cost docs (#81).
  • Applied code formatter (#100).

v0.7.0

08 Apr 20:38
Compare
Choose a tag to compare

Added

  • Support for new TEAL 3 features:
    • Bit/byte manipulation and new transaction and global fields (#50).
    • Dynamic Gtxn indexes (#53).
    • MinBalance expression (#54).
    • Documentation for new features (#55).
  • Added the ability to specify the TEAL version target when using compileTeal (#45).
  • Added ScratchVar, an interface for storing and loading values from scratch space (#33).
  • Added a warning when scratch slots are loaded before anything has been stored (#47).

Changed

  • Rewrote internal code generation to produce smaller programs and make future optimization easier
    (#26). Programs compiled with this version will likely
    produce different TEAL code than previous versions, but their functionality will be the same.