NeoSPCC has released NeoGo v0.104.0, an update that brings a suite of new features and improvements while ensuring compatibility with Neo v3.6.2.

v0.104.0 introduces changes in the interoperability layer and native contract functionality. Notably, it adds the System.Runtime.CurrentSigners interop, enabling easy retrieval of transaction signers. The StrLen method in the StdLib native contract now allows users to determine the length of a string. Additionally, the update includes a user-friendly canceltx CLI command, assisting users in canceling pending transactions.

Under the hood, the update imposes stricter constraints at the VM-level, new customization options in the RPC server config, and a number of usability improvements. These include more detailed error messages when attempting to access a non-existent wallet specified in the node configuration file.

Several bugs were fixed this time around. The release standardizes RPC error messages in accordance with a new NEP, and introduces limitations on the maximum number and depth of signers and witnesses per RPC request. Unknown fields in the node configuration file are now explicitly forbidden, and hardfork-dependent code is now enabled exactly from the block height specified in the configuration. Additionally, a state difference on the testnet, caused by JSON serialization issues in a contract manifest’s extra field, has been resolved.

Node operators are required to resynchronize their nodes to achieve the correct state. Further, configuration files should be reviewed to ensure the NativeActivations setting has been removed, as this logic has now been tied to the hard fork setting.

For more details on the improvements, users can access the complete release notes below:
https://github.com/nspcc-dev/neo-go/releases/tag/v0.104.0