This release requires a protocol upgrade.
This release contains a consensus protocol upgrade, which implements the following spec: https://github.com/algorandfoundation/specs/tree/bc36005dbd776e6d1eaf0c560619bb183215645c
This release features the 1.0 version of AVM, extending Algorand's smart contract capabilities for even greater composability. Highlights in this release include:
- Application transactions: the ability for smart contracts to execute transactions on directly on chain.
- App cost pooling: larger contract size, by combining the budgets across an application group.
- Increased account smart contract limit to 50
- More smart contract opcodes to improve composability (inner transaction references, verify ECDSA, log, and others)
- Debugging for itxn programs and include a bugfix for dryrun crashes.
- Add GroupID as an accessible global field in AVM (#2838)
- Add opcodes for dynamically indexing into Txn array fields (#2847)
- Implement verify ECDSA secp256k1 opcodes (#2852)
- Introduce itxn to get inner transaction results (#2883)
- Smart contracts can issue transactions (#2661)
- loads and stores opcodes that take scratch slot from stack (#2853)
- Better naming for extract opcodes (#2891)
- Check if tx_field can be set with tables instead of switch (#2849)
- Dry run should return opcode cost used (#2746)
- Ensure that AssetCreator is not used before proto.LogicSigVersion=5 and unify field handling (#2784)
- Expose nonparticipation txn field in teal (#2823)
- Increase max app opt ins to 50 (#2750)
- Make config.MaxLogCalls dependent on some consensus param (#2732)
- Use math.bits intrinsics to simplify addw/mulw opcodes (#2839)
- Fix ParseHostOrURL and enable expect tests (#2772)