NeoSPCC has released NeoGo v0.106.0, a milestone update that aligns with Neo v3.7.4. The release introduces a range of new features and bug fixes, with several native contract enhancements consolidated under the upcoming Cockatrice hard fork.

The most significant update among the latest Neo core changes is the ability to update native contracts, safeguarded through the use of hard forks. Changes for the NeoToken and CryptoLib native contracts have arrived alongside the upgrade. The former received the getCommitteeAddress method and CommitteeChanged event, while the latter was improved with a keccak256 hash function and an extension to the verifyWithECDsa method to work for Koblitz- and Keccak256-based transaction witness verification.

Outside of protocol changes, NeoGo continues to mature in terms of stability and developer experience. The software now supports the import of multisignature accounts into wallets without the need for a WIF and password, and the unwrap package received a new type for handling exceptions on RPC invocation results. RPC responses were also updated, with getversion now returning RPC server settings and getnativecontracts providing an update counter field for each item.

As the first new release since January, a plethora of minor bug fixes accumulated over time have been included with the update. A potential re-entrancy bug on Notary deposit withdrawal has been corrected, along with the null response issue in the findstorage RPC when storage items are missing. Issues with the genesis block record and application logs caused by improper processing of the Conflicts transaction attribute have been fixed, and the update ensures more graceful node service shutdowns.

Developers building a NeoGo binary from source will need at least Go 1.20+, and a resync will be necessary for node operators that are upgrading. Config files will also need to be updated; the Cockatrice hard fork is scheduled for block height 3967000 on TestNet and 5450000 on MainNet.

A comprehensive list of changes can be found in the release notes linked below: