The new tools accompany some restructuring to COZ’s Python tooling. The Neo2 node and SDK called neo-python was primarily created as an alternate node implementation to the core C# client for interacting with the network, additionally providing convenient modules and implementations that made it useful as an SDK.
However, Mamba is rewritten from scratch with a priority on developer convenience as an SDK. Rather than being created as an encompassing full-stack Python port of the original Neo project, Mamba is designed to be used within applications which can easily build on top of it.
To this end, the Mamba library provides easy access to all the various data structures, methods, and types required to interact with distinct aspects of the Neo3 blockchain. Over time, more components will be added and documented for use in applications that interact with Neo.
Available implementations include special data types, cryptographic modules, network payloads, and a storage package for interfacing with in-memory or LevelDB backends. A tutorial has also been included, demonstrating how to sync the blockchain and show the information on a web page.
While Mamba is intended to cover the needs of application developers, Neo contract development requires a compiler. Boa has been a popular tool since COZ first enabled Python support on Neo, with some version of the compiler being used by all Python smart contracts on the Neo MainNet.
Like Mamba, Boa for Neo3 was rebuilt from the ground up, and enables contracts written in Python to be converted to a format that is ready to deploy and run on the Neo3 blockchain. Additionally, it has been made compatible on launch with the Neo Debugger by NGD Seattle, giving Neo3 developers immediate access to new available features, including time travel debugging.
COZ has released preliminary contract examples and an array of feature tests to provide contract developers with a reference of how to work with the tool. More detailed documentation about available modules can be found here.