Skip to content

Latest commit

 

History

History
118 lines (97 loc) · 6.26 KB

CHANGELOG.md

File metadata and controls

118 lines (97 loc) · 6.26 KB

0.9.1

Added

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

Fixed

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

0.9.0

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)

0.8.0

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).

0.7.0

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.

0.6.2

Fixed

  • Corrected documentation and examples that incorrectly used the Txn.accounts array (#42).
  • Fixed improper base32 validation and allow the use of padding (#34 and #37).

0.6.1

Added

  • An application deployment example, vote_deploy.py.

Fixed

  • Internal modules no longer pollute the global namespace when importing with from pyteal import * (#29).
  • Fixed several documentation typos.

Changed

  • Moved signature and application mode examples into separate folders.

0.6.0

Added

  • TEAL v2 Txn and Gtxn fields
  • TEAL v2 Global fields
  • TxnType enum
  • Pop expression
  • Not expression
  • BitwiseNot expression
  • BitwiseAnd expression
  • BitwiseOr expression
  • BitwiseXor expression
  • Neq (not equal) expression
  • Assert expression
  • AssetHolding expressions
  • AssetParam expressions
  • State manipulation with App expressions
  • Concat expression
  • Substring expression
  • Bytes constructor now accepts UTF-8 strings
  • If expression now allows single branches

Changed

  • Compiling a PyTeal program must now be done with the compileTeal(program, mode) function. The .teal() method no longer exists.
  • The API for group transactions has changed from Gtxn.field(transaction_index) to Gtxn[transaction_index].field().
  • Tmpl syntax has changed from Type(Tmpl("TMPL_NAME")) to Tmpl.Type("TMPL_NAME").