web3j-4.0.0 preview is available, just in time for Devcon 4
Atblk.io we’ve had some exciting times recently; our team has been growing in order to bring to fruition our plans for web3j.
Earlier this month we released web3j 3.6.0 with some critical fixes, and we are now happy to announce the release of 4.0.0-alpha-1 with internal and community contributions.
4.0.x is still undergoing active development but we thought we’d give you a flavour of what is to come with an alpha release. Stay tuned, we don’t intend on keeping it an alpha for too long! Full details on this release can be found below.
The first of two headline features in this release is the upgrade from RxJava 1.0 to RxJava 2.0, a discussion of the main differences between these two versions can be foundhere.
What does this mean for web3j? All of the methods that includedObservablein their names have been renamed to instead useFlowable.
We have also done a cleanup of the lengthy method names that were impacted by this API upgrade.
For example,catchUpToLatestAndSubscribeToNewTransactionsObservablehas been renamed toreplayPastAndFutureTransactionsFlowable. For more information refer to theWeb3jRx interface.
The full change set can be found at #753, thanks to@vpriscan for this valued contribution.
The second headline feature in this release is BIP44 implementation, thanks to@AmiMobilechain; the full change set can be found at#686.
This spec builds upon the scheme described in BIP43 and the algorithm in BIP32 to provide a logical hierarchy for wallets, thus enabling generation of keys in a hierarchical structure from one single seed. There are many benefits to this, such as ease of maintenance and key regeneration. Refer to the BIP44 specificationandBip44WalletUtilssource code for further information.
Various other fixes and improvements
Equally as important are the various fixes and improvements we look to include in each release. Some prominent fixes are:
Prefix message signing according to eth_sign (#650) by @ricmoo
Please accept my apologies if I’ve missed your contribution of the list — pull requests and issues are one of the main mechanisms to get feedback from users on the library, so I appreciate people taking the time to submit them.
For further details of the other changes, please refer to thereleases page.
What do I need to do?
For almost all use cases, if you were using web3j core previously you shouldn’t have any problems dropping in the 4.0 core.
You will need to regenerate your smart contract wrappers to use this release, in addition to migrating across your method calls to use the updated function names as per the RxJava 2.0 section above.
We’ve got some exciting plans for the upcoming 4.x releases, with various community-drivenpull requests, build and process improvements, and blk.io contributions.
For 5.x and beyond we will be looking to streamline our libraries and useJava 9’s Flows.
We are actively developing web3j, watch this space for more exciting news!