- 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).
- 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).
- 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.
- 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).
- An application deployment example,
vote_deploy.py
.
- Internal modules no longer pollute the global namespace when importing with
from pyteal import *
(#29). - Fixed several documentation typos.
- Moved signature and application mode examples into separate folders.
- TEAL v2
Txn
andGtxn
fields - TEAL v2
Global
fields TxnType
enumPop
expressionNot
expressionBitwiseNot
expressionBitwiseAnd
expressionBitwiseOr
expressionBitwiseXor
expressionNeq
(not equal) expressionAssert
expressionAssetHolding
expressionsAssetParam
expressions- State manipulation with
App
expressions Concat
expressionSubstring
expressionBytes
constructor now accepts UTF-8 stringsIf
expression now allows single branches
- 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)
toGtxn[transaction_index].field()
. Tmpl
syntax has changed fromType(Tmpl("TMPL_NAME"))
toTmpl.Type("TMPL_NAME")
.