github Nethereum/Nethereum 3.0.0

latest releases: 4.8.0, 4.7.0, 4.6.1...
5 years ago

Final release of 3.0.0

  • Further separation of concerns to avoid dependencies
  • New simple handlers to allow for dependency injection, mocking and interceptors
    (TransactionHandlers, DeploymentHandlers, QueryHandlers)
  • Fixes on SolidityV2, dynamic arrays, array structs output
  • Extensions for FunctionMessage, EventAbi, IEventDTO, IFunctionDTO, TransactionInput, TransactionReceipt, ContractDeployment
    To simplify the encoding / decoding of input and outputs, building of transaction input, call input and further decoupling from services and handlers, all these objects have specific extensions.
  • Automatic retrieval of gas price
  • TransactionManager changes
  • EthTransferService to simplify the transferring without conversions
  • Unity3d transaction and query handlers using ContractDeployment and FunctionMessages to further simplify usage.
  • Unity3d EthTransferHandler
  • Unity3d releases for net351 (AOT), net461 and net461 (AOT)
    The net461 combines both capabilities of UnityRequests of async using yield and standard Nethereum Async Tasks.
  • AOT fixes for KeyStore. Thanks to @TorresLabs for the simple workaround idea.
  • New Scrypt implementation to improve performance
    Note: This uses a simplified version of Vinicius Chiele Scrypt https://github.com/viniciuschiele/Scrypt/blob/master/src/Scrypt/ScryptEncoder.cs
  • Address validation of format extensions
  • Changes to the code generator templates
    • Option output to a single file all the different definition objects
    • Csharp and Vb.Net all objects create a base class and partial implementation to allow to "extend" the objects to provide further decoding / encoding, overriding of properties to force decodings / encodings. But also the continuous generation of code without losing custom implementations.
    • Fsharp does not allow partials
    • Csharp Service simplification so there is no need to create a FunctionMessage when there are no input parameters (TODO: VB.net and F#)
  • ENS contract upgrade using the latest services, and support for normalisation of Nodes.
  • StandardToken service usage of QueryRaw and a custom decoder to allow for either bytes32 or string on Name or Symbol
  • ENS Removed support in Portable as it does not support Normalisation.
  • Changes and customisation on the build process to support Json.Net AOT.
  • Upgrade the simple sample of Unity3d.
  • External signers / External Accounts
    • Trezor and Ledger Hardware wallet support (Windows initially) for signing messages and transactions. Thanks to @MelbourneDeveloper and @ThatSlyGuy for all the work on creating the Trezor, Ledger and common Hardware Libraries
  • Azure Key Vault external signer, similar to Trezor and Ledger, you can have an External Account and signer using KeyVault.
  • Upgrade Standard Token to the common "service, message" standard.
  • Strong naming most of the libraries, apart from the HdWallet (depends on NBitcoin), hardware wallets and Unity3d 351.
  • General fixes / improvements.
  • More...

Breaking changes:

FunctionMessages inherit now from FunctionMessage instead of ContractMessage to allow for custom extensions
FunctionOuputDTOs implement IFunctionDTO to allow for custom extensions (decoding output)
EventDTOs implement IEventDTO to allow for custom extensions (create an EventABI which allow to create filter inputs, and decode logs, etc).
Namespace changes of ContractDeploymentMessage from Nethereum.Contracts.CQS to Nethereum.Contracts.

Don't miss a new Nethereum release

NewReleases is sending notifications on new releases.