COZ has released Neo3-boa v1.5.0, an update to the Python compiler for Neo N3 smart contracts that adds Python 3.14 support, introduces local storage interop syscalls, implements new StdLib methods, and enhances developer experience with improved compiler warnings and optimizations.

Python 3.14 support and version changes

Neo3-boa v1.5.0 adds full support for Python 3.14, ensuring compatibility with the latest Python features and improvements. However, this release drops support for Python 3.12, which means developers must use Python 3.13 or 3.14 going forward. This change aligns the compiler with current Python ecosystem standards and enables the team to leverage newer language features.

New features and interop additions

The release introduces several new capabilities for smart contract developers. Local Storage Interop Syscalls have been added, providing enhanced storage management options within contracts. The StdLib interface now includes hex_decode and hex_encode methods, simplifying hexadecimal data handling without requiring custom implementations.

A new CLI flag allows developers to exclude warnings when compiling contracts, offering more control over compiler output in production environments. This complements the enhanced warning system that now alerts developers when using to_bytes, to_int, get_int, or put_int without specifying a data length – a common source of bugs in smart contracts.

Compiler optimizations and fixes

Neo3-boa v1.5.0 delivers various compiler improvements. The compiler now stops generating constant expressions inside classes that are not used, reducing bytecode bloat and improving contract efficiency. The to_bytes and to_int methods have been optimized to reduce the number of opcodes generated based on the arguments provided, resulting in more compact and gas-efficient smart contracts.

The compiler also now properly throws an error when attempting to assign values to native contract hashes, preventing a common programming mistake that could lead to runtime issues.

Tooling and debugging improvements

Developer experience has been enhanced with the inclusion of short commit hashes alongside compiler versions, making it easier to track which exact compiler build was used for a given contract. The update also removes deprecated components – specifically NeoExpress and NeoTestRunner – streamlining the toolset and encouraging migration to the newer boa-test-constructor dependency, which has also been updated in this release.

Dependency updates and examples

The release updates the requests package to version 2.32.4, addressing security and stability concerns in dependencies. The compiler infrastructure continues to evolve with these routine maintenance updates ensuring long-term stability.

Removed features and migration considerations

Developers should note that Python 3.12 support has been removed. Those still using Python 3.12 must upgrade to Python 3.13 or 3.14 before adopting Neo3-boa v1.5.0. Additionally, the removal of NeoExpress and NeoTestRunner means projects relying on these tools should migrate to the supported boa-test-constructor framework for contract testing.

The full changelog and release information can be found at the link below:
https://github.com/CityOfZion/neo3-boa/releases/tag/v1.5.0