Releases: algorand/pyteal
Releases · algorand/pyteal
v0.12.1b1
v0.12.0
v0.11.1
v0.11.0
v0.10.1
v0.10.0
Added
- Support for new TEAL 6 features:
- Increase maximum TEAL version (#146)
- New
Gitxn
expression, inner transaction group creation withInnerTxnBuilder.Next()
, inner
transaction array field setting, and allow using dynamic slot IDs withImportScratchValue
(#149) - New
BytesSqrt
expression (#163) - New
Global
fieldsopcode_budget
,caller_app_id
, andcaller_app_address
(#168) - New
AccountParam
expressions for getting information about accounts (#165) - New
Divw
expression, new transaction fieldslast_log
andstate_proof_pk
, and dynamic index
support forInnerTxn
array fields (#174)
- Added a new
MethodSignature
expression (#153) - Added a new
Suffix
expression and optimized existingSubstring
andExtract
expressions (#126) - Added the
MultiValue
class as an alternative toMaybeValue
(#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
v0.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
NaryExpr
s, and creatingBytes
frombytes
andbytearray
(#117) - Extract expressions (#118)
- More efficient implementation of recursive subroutines in TEAL 5+ (#114)
- Add
WideRatio
, an expression which exposesmulw
anddivmodw
(#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
Added
- Support for new TEAL 4 features:
- New logo (#88, #91)
- Added the
assembleConstants
option tocompileTeal
. 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
Added
- Support for new TEAL 3 features:
- 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.