github Nethereum/Nethereum 2.0.0-rc6

latest releases: 4.8.0, 4.7.0, 4.6.1...
pre-release6 years ago

2.0.0-rc6

The new version of Nethereum separates the standardised RPC method across clients and the custom functionality provided by the different clients like Geth, Parity or the new Quorum. It also separates core functionality into new separate libraries.

Core libraries have been down ported when possible to net351, to support compatibility with Unity3d.
Note that Unity3d uses a custom Newtonsoft.Json library to support ahead compilation.

Unity3d is specific to RC5 for more info on usage check this blog post: https://medium.com/@juanfranblanco/nethereum-2-0-0-rc5-unity3d-integration-eb7664664813

Attached there is a zip file which includes all the libraries and dependencies to get started.

New libraries

Nethereum.Geth

Netherum.Geth is the extended Web3 library for Geth. including the non-generic RPC API client methods to interact with the Go Ethereum Client (Geth) Admin, Debug, Miner.

Netherum.Parity

Nethereum.Parity provides the extended Web3 library for Parity, providing the non-generic API methods (WIP)

Netherum.Contracts

Nethereum Contracts is the core library to interact via RPC with Smart contracts in Ethereum.

Netherum.Signer

Nethereum signer library to sign and verify messages, RLP and transactions using an Ethereum account

Netherum.RLP

The RLP Encoding and decoding library.

Nethereum.Unity

Custom RPC client, requests and transaction signing for Unity3d

New features

Accounts

There are two types of Accounts that can be used in conjunction with Web3, Account (normal) and ManagedAccount.

The main Account can be created using a private key, EthECKey or Loaded from a json or file using from a KeyStore.

When Web3 is instantiated using the Account, the default SignedTransactionManager will be used when interacting with contracts, meaning that all transactions will be signed offline using the account private key.

var web3 = new Web3Geth(new Account(privateKey));
ManagedAccount

A managed account is an account managed by a third party client (Geth or Parity), this instantiated with the account address and password.

When Web3 is instantiated using the Account, the default ClientPersonalTransactionManager will be used when interacting with contracts, meaning that all transactions will use Personal_SendTransaction using the the password provided.

var web3 = new Web3(new ManagedAccount(account, password),);

Transaction Managers

Each account authentication has a Transaction Manager associated with it to provide either a the default signing or managed signing by the client.

Breaking changes

New namespaces have been created to match the new structure.
If you require controlling the mining process using Geth, you will need to use Nethereum.Geth. Web3Geth
Accounts recovered from private keys will return Account address using the Checksum

Functions and Contract deployment do not use the SignAndSendTransaction passing a password, you will need to use with Web3 a ManagedAccount or a ClientPersonalTransactionManager.

New EthECKey and EthECDSASignature so if you are using ECKey or ECDASignature, these abstract the functionality to avoid libraries dependencies on Elliptic Curve.

New RpcClient library as the EdjCase.RpcClient wrapper to allow simple replacement by other RPC implementations if wanted, so if using low level features the interfaces has changed for interceptors and IClient

New project version for VS2017, portable has been dropped for the libraries and just using Netstandard and net451.

Nugets

As usual, the latest Nugets can be downloaded from Nuget.org

New on RC3

  • Fixes default settings on KeyStore and JsonSerialiasation when storing new private keys to be compatible with the clients
  • Uport registry
  • New code generator for services in C# CLI to complement the javascript / vs-code and future visual studio extensions.

Usage : dotnet Nethereum.Generator.Console.dll gen-service -af contract.abi -bf contract.bin -c ContractName -n Namespace

New on RC4

  • Downport to net35 Nethereum.ABI, Contracts, Hex, JsonRpc.Client, KeyStore, RLP, RPC, Signer, Util. These depend on System.Threading for net35 if using Async calls with a custom RPC provider.
  • Net451 uses the none portable BouncyCastle
  • Fixes on ABI decoding using multiple dynamic numeric
  • Code generator returns Lists

New on RC5

  • Unity3d support (Libraries attached)
  • Fixes on message signing
  • Overloads to include gas cost on deployment and transaction calls

New on RC6

  • General fixes
  • Remove from nuget deployments net35

Don't miss a new Nethereum release

NewReleases is sending notifications on new releases.