- Fix array decoding issue, instead of using the array size it was relying on the input size. #729 Thanks to @imerr
- Improve of log processing, as sometimes there are null values returned by Infura when processing logs, this implements a simple retry mechanism when null values are returned, although this adds an small retry overload (single request), it won't be a major issue due to batches of blocks are processed in 100s.
Also improvement as retries are reset, including also extra error handling when calling actions to enable the storage of the progress.
- Allow to create a Contract with passing as a parameter the EthApi service, as it is sometimes only used for encoding / decoding values but not used to send transactions / calls.
- Geth API updates DebugTrace thanks to @frostiq #707
- Fix Convert BigDecimal ToString supporting negative values thanks to @ryanfalzon #701
- Include TransactionManager validation for EIP1559 (simplify Metamask support as not default value is added for GasPrice)
- Function, Events and Errors Tuple / Arrays serialization deserialization from and to Json.
- Simplify and allow deserialisation to complex type from CallAsync, QueryAsync (not to object)
- Custom Revert Error support
- Error abi deserialisation and model thanks to (and the reminder / push on Custom Errors) @chee-chyuan #718
- Generic revert error handling for Calls and Queries (untyped / typed) SmartContractCustomErrorRevertException
- Error / Error types similar to Event/Function with decoding, validation of error, extensions and finding of errors
- Code generation of Error types .Net and JS
- Enable by default Hex values for eth_feeHistory, this supports the standard, if connecting to Geth < 1.10.7 use
EthFeeHistory.UseBlockCountAsNumber = true.
- HdWallet assembly is not signed when using .Net Framework (not core) < 5 as NBitcoin is not signed, causing issues if using lower versions of .Net.
- Adding as a parameter ChainId to QuorumAccount to support EIP_155 signature thanks to: dc6c18a
- Unity 1559: co-routines add the Median History Fee suggestion as another strategy
See usage of strategies in Unity here: https://github.com/Nethereum/Unity3dSimpleSampleNet461/blob/master/Assets/EtherTransferCoroutinesUnityWebRequest.cs#L77-L148
- Refactor out calculations in the Median History strategy to be used in Unity co-routines
- Unity 1559: Legacy mode option in EthTransferUnityRequest
- Unity 1559: TransactionSignedUnityRequest fixes and refactoring
- Fix on the hotfix to allow numbers instead of Hex for Geth 10.6, this caused issues on deserialization null values reflected pending / transactions with nulls.
- The option for
SignRecoverableto use NBitcoin.Secp256k1 instead of BouncyCastle, has been added to the recovery of signatures, this has an increase in performance if needed.
- EtherTransferService includes MaxPriorityFee to send all transfers, regardless if transferring all Ether. Suggestion of Fees to transfer all Ether returns a Fee1559 with matching maxPriority and MaxFee
- Unity includes the option to force Legacy on Ether Transfer.
Note: Unity dlls will follow up in the next release when Geth is moved to 10.7 as patching will not be needed, if these are needed ask in Discord.
Support of Eth_FeeHistory for Geth v1.10.6.
Geth v1.10.6 does not provide yet a Hex value to input the blockcount, so this provides a small patch / workaround.
This is the default format until v1.10.7 is released.
If you are using other node, with hex input you will need to set the value:
Nethereum.RPC.Eth.Transactions.EthFeeHistory.UseBlockCountAsNumber = false;
1559 Fee Suggestion strategies:
You can find all the suggestion strategies here:
Added MedianPriorityFeeHistorySuggestionStrategy based on MyCrypto simple median strategy.
Updated TimePreferenceFeeSuggestionStrategy based on Felfodi Zsolt to include the latest figures.
Big Decimal support for casting / conversion to BigInteger, Double conversion using long instead of BigInteger
Force Unsigned bytes when generating private keys
Other minor issues.
- RLP Signing (simplify signing)
- Transaction1559 signing, recovery
- LegacyTransaction changes across
- OfflineSigner removed from Web3 (specific to Legacy), use LegacyTransaction, LegacyTransactionChainId or Transaction1559
- TransactionFactory changes to recover from RLP or chain transaction
- Generic TransactionVerificationAndRecovery
- AccessList support
- New SignedTypeTransaction and SignedTransaction
- Transaction Managers changes
- New RPC methods and changes
- Fee suggestion strategies, based on Micah design (SimpleSuggestionStrategy) and the port of Felföldi Zsolt example https://github.com/zsfelfoldi/ethereum-docs/blob/master/eip1559/feeHistory_example.js
- New EtherTransferServices and Builders
- FunctionMessages, DeploymentMessages, TransactionInput, Transaction, Untyped Functions, Untyped deployments, extra fields, overloads and extensions
- Blockchain storage new fields and mappers
- External signer changes (only tested with Azure Key Vault, not with Ledger or Trezor)
- Unity port of rpc, signing and fee suggestion strategies
- New Nethereum.Fx, Nethereum.LiteFx, and restructure of projects
Fx includes most all the projects in one single package, whilst lite FX is a small subset excluding signing capability
A new version of Web3 without signing capability to reduce dependencies
- Pantheon is now Besu
- MultiQuery smart contract is a QueryHandler
- Json.Net upgrades and NBitcoin in HDWallet
- NBitcoin.Secp256k1 support for Net5 and NetCore, for performance improvements
Set the global flag EthECKey.SignRecoverable = true to enable it. This is only supported in .NetCore and Net5 Example: https://github.com/Nethereum/Nethereum/blob/5fc9edd176db1300383255478eb438efb4cefebf/utils/Nethereum.Signer.Performance/Program.cs#L46
- Net472 and AOT for Unity
- Unity in Net472 and NET461 uses Json.Net provided by unity
- Net50 upgrade
- Create2 support
- Code generator fixes for overloads, operators and 24bit types
- Code generator remove grpc support
- Uport and DIDs removed
- Event async methods are suffixed with Async
- ConfigureAwait corrections across
- SimpleIpcClient thanks to @clsdubai
- XUnit Test client integration and tests refactorings
- BlockCrawler enabling disabling steps
- Basic authentication support for websockets and unity
- Rsk fixes
Attached are the dlls to use with Unity3d including AOT and the new Fx dls. I
- Upgrade ENS apis to use the new contracts
- New EthTLSService simplifying the registration of ENS names, pricing, commitments and renewals, locating the controller from the ENS registry.
- New ENSService simplifying resolving addresses, text, etc and the creation of subnodes.
General changes / fixes
- Recreate a Raw transaction from RPC response, enabling the validation and recovery of the account signer.
- Websockets removal of buffer size as a signal for end of message
- RPC make static configuration of Maximum of connections to avoid overload in scenarios the client server
- Typo in F# FunctionDTO