@juanfranblanco juanfranblanco released this Oct 25, 2018 · 3 commits to master since this release

Assets 2
  • Changing the return of Event Default topics to include the Log a826542

@juanfranblanco juanfranblanco released this Oct 24, 2018 · 4 commits to master since this release

Assets 2
  • 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.
  • General fixes / improvements.

@juanfranblanco juanfranblanco released this Jul 25, 2018 · 76 commits to master since this release

Assets 5
  • 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)
  • 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 (TODO give credit for the idea of using objects)
  • New Scrypt implementation to improve performance (TODO Give credit)
  • 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.
  • 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.

@juanfranblanco juanfranblanco released this Jun 21, 2018 · 126 commits to master since this release

Assets 2
  • ABI encoding / decoding to support structs (complex types) on solidity v2
  • CQS / DTO changes to simplify access
  • Upgrade to .netcore2.1, adding specific targets
  • Upgrade BouncyCastle, NBitcoin, Newtonsoft.
  • Created a Scrypt to comply with Etherum
  • All new code generators (core, ui (experimental using etoforms for crossplatform), console, autogen ..)
  • Code generator support from .net to javascript
  • Integration of the javascript version in vscode.
  • Code generators support for multiple languages (c#, vb.net, f#)
  • Upgrade Nethereum.Wallet, upgrade mvvm cross and remove custom implementation for menu
  • Add token transfer support, other different views, integrate with reactive ui, and start creating a generic repository layer and transaction layer.
  • Unit testing release.
  • Small fixes.
  • More small samples.

@juanfranblanco juanfranblanco released this Mar 11, 2018 · 285 commits to master since this release

Assets 2
  • SimpleRPCClient compatible with Blazor (Wasm in .Net)
    For more info check https://github.com/Nethereum/Nethereum-Blazor-Wasm-test
  • Make public EstimateAsync methods when using ContractHandlers and ContractTransactionHandlers from CQS
    From 2.3.1 and 2.30
  • EIP155
  • New TransactionChainId which allows the signing and recovery of Transactions using the EIP155 and the chainId.
  • EthECKey and RLPSigner V change to BigInteger to support large numbers for chainIds (SideChains, Plasma)
  • Transaction Factory using V
  • Logging using Commons.Log.Core for RPC / IPC
  • Moving Account to its own Project
  • Refactoring all tests to further decouple the structure from Web3 Tests
  • Other bits and bobs.

@juanfranblanco juanfranblanco released this Mar 6, 2018 · 297 commits to master since this release

Assets 2
Adding accounts to the nuget pack

@juanfranblanco juanfranblanco released this Dec 16, 2017 · 334 commits to master since this release

Assets 2
  • Overflow fix when creating a Managed Account
  • Added conversion support for other int types (byte, sbyte, short, ushort)
  • IAccount part of ITransactionManager
  • ContractHandler part EthApi
  • StandardToken start refactoring to CQS
  • Other fixes

@juanfranblanco juanfranblanco released this Dec 13, 2017 · 342 commits to master since this release

Assets 3

2.2.1 Unity3d Release

  • Replaced current BigInteger Mono (3.5) implementation with a downgraded to .Net351 .NetCore / Mono version.
  • BigNumber, FortmatProvider.BigInteger, FormatProvider.Number, FormatProvider.NumberBuffer from Mono.
  • Other fixes related to Unity.

@juanfranblanco juanfranblanco released this Dec 8, 2017 · 347 commits to master since this release

Assets 2
  • CQS Improvements
  • Replacement of dependency of RPC library to custom
    • This will resolve the issues with conflicting System.Net.Http
    • Improve performance by having a single HttpClient per web3, but that expires every 60 seconds to prevent DNS issues, but still preventing running out of Sockets.
  • Performance tests on Http process around 6000 queries in 1.5 seconds.
  • New in memory nonce service with multithreading support, on POA processes 1000 transactions with no nonces issues (~60 seconds)
  • Parity trace APIs
  • General fixes

@juanfranblanco juanfranblanco released this Oct 23, 2017 · 365 commits to master since this release

Assets 2


The new 2.1.0 release includes:

  • CQS (Command Query Separation) for Contract deployment, Contract transactions and Contract querying calls.
    The separation removes the dependency of the knowledge of the whole contract, all commands and queries use a DTO / Message object that defines the ABI using its attributes

Example usage for Deployment:

//The deployment message class
 public class StandardTokenDeployment:ContractDeploymentMessage
      public static string BYTECODE = "0x6060604052604....etc";

      public StandardTokenDeployment():base(BYTECODE) {}

      public int TotalSupply { get; set; }

 // the deployment  transaction
var deploymentMessage = new StandardTokenDeployment
        TotalSupply = 10000,
        FromAddress = senderAddress,
        Gas = new Hex.HexTypes.HexBigInteger(900000)

var deploymentHandler = web3.Eth.GetContractDeploymentHandler<StandardTokenDeployment>();
var transactionReceipt = await deploymentHandler.SendRequestAndWaitForReceiptAsync(deploymentMessage);

Full example in the unit test:


  • Nethereum.HdWallet

A separate library which uses BIP32 and BIP39 to generate an HD tree of Ethereum compatible addresses from a randomly generated word seeds.

This is compatible with keys generated using the standard (m/44'/60'/0'/0/x) used in BIP44, MetaMask, Jaxx, MyEtherWallet (default), TREZOR App, Exodus
or (m/44'/60'/0'/x) used in Electrum, MyEtherWallet (ledger), Ledger Chrome App, imToken

Example Usage:

 string words = "ripple scissors kick mammal hire column oak again sun offer wealth tomorrow wagon turn fatal";
 string password = "TREZOR";
 var wallet = new Wallet(words, password);
 var account = wallet.GetAccount(0);

A workbook sample is located here: https://github.com/Nethereum/Nethereum.Workbooks/blob/master/nethereum-hdwallet-infura-transfer.workbook

Note: This library is not supported in Portable.

  • General fixes

Note: All the changes do not affect the Unity3d libraries, use the 2.0.0 release files.