Have you ever tried to perform a VoteOperation and a TransferOperation for different Accounts? SteemJ v0.3.2 can now handle this use case and other great improvements.
Previous 0.3.x releases: v0.3.1 v0.3.0
SteemJ v0.3.2 has been released
Hello Steemians!
I am proud to share a new SteemJ release with you. This release contains changes I’ve postponed for a while, because they required some bigger, internal adjustments. In the last two weeks I decided to finally work on those issues. Everything worked better than expected so that I can now announce that SteemJ is able to handle private keys of multiple accounts.
If you ask yourself why this is needed, here is a small example. Before SteemJ v0.3.2 it was not possible to perform a VoteOperation with the account fooa and a TransformOperation with the account foob in the same Transaction.
Source - medium.com
As I mentioned in the beginning there was a price to pay – The first thing is that I had to change nearly every class to handle the keys of different users correctly. This can cause some side effects and new bugs, while I still hope that the existing tests helped me to eliminate them all. The second change effects you, the user, because you now have to store your keys in another way.
Handle Private Keys Before SteemJ 0.3.2
myConfig.setPrivateKey(PrivateKeyType.POSTING, "5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3");
myConfig.setPrivateKey(PrivateKeyType.ACTIVE, "5KQasdf7ASD8weASdW37FSSsadfAImkwASd732QzDeyXtP79zk");
Handle Private Keys After SteemJ 0.3.2
List<ImmutablePair<PrivateKeyType, String>> privateKeys = new ArrayList<>();
privateKeys.add(new ImmutablePair<>(PrivateKeyType.POSTING, "5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3"));
privateKeys.add(new ImmutablePair<>(PrivateKeyType.ACTIVE, "6KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3"));
privateKeys.add(new ImmutablePair<>(PrivateKeyType.OWNER, "7KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3"));
myConfig.getPrivateKeyStorage().addAccount(new AccountName("dez1337"), privateKeys);
privateKeys = new ArrayList<>();
privateKeys.add(new ImmutablePair<>(PrivateKeyType.POSTING, "5ABwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3"));
privateKeys.add(new ImmutablePair<>(PrivateKeyType.ACTIVE, "6ABwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3"));
privateKeys.add(new ImmutablePair<>(PrivateKeyType.OWNER, "7ABwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3"));
myConfig.getPrivateKeyStorage().addAccount(new AccountName("steemj"), privateKeys);
Code Quality
As always, here is a report about the current code quality of SteemJ.
This release adds some additional tests once again and we finally reached a code coverage of 60%.
Change Log
Below you can find all changes made in this release.
Functional Updates
- The following issues have been fixed:
- #51 Parsing Error for PowOperation.
- #52 AccountName allowed uppercase letters.
- #50 Change default Charset to UTF-8.
- #56 Handle private keys of different users.
- Partially fix #55 CustomOperation do not work.
- CustomJsonOperation has been fixed so it is finally possible to follow/unfollow other accounts and to reblog posts with SteemJ.
- CustomOperation pending
- CustomBinaryOperation pending
Code Quality Improvements
- Additional integration tests have been added.
Documentation
- Additional JavaDoc has been added to several methods and fields
- The SteemJConfig – Wiki article has been finalized.
- The Example Application has been updated.
Future Plans
This section is used to share the thoughts about upcoming versions with you. Due to the bigger changes in this release I expect a third bugfix release (0.3.3). After that release the plans are to create a version 0.4.0 which comes with a TransactioBuilder that should increase the usability a lot by providing simple methods to:
- Post
- Comment
- Vote
- Unvote
- Downvote
- Follow
- Unfollow
- Reblog
- ...
General information
What is SteemJ?
SteemJ is a project that allows you to communicate with a Steem node using Java. So far, the project supports most of the API calls and is also able to broadcast most of the common operation types. Further information can be found on GitHub.
How to add it to your project?
SteemJ binaries are pushed into the maven central repository and can be integrated with a bunch of build management tools like Maven. The Wiki provides a lot of examples for the most common build tools. If you do not use a build management tool you can download the binaries as described here.
Contribute
The project became quite big and there is still a lot to do. If you want to support the project simply clone the git repository and submit a pull request. I would really appreciate it =).
git clone https://github.com/marvin-we/steem-java-api-wrapper.git
Get in touch!
Most of my projects are pretty time consuming and I always try to provide some useful stuff to the community. What keeps me going for that is your feedback and your support. For that reason I would love to get some Feedback from you <3. Just contact me here on Steemit or ping me on GitHub.
Thanks for reading and best regards,
@dez1337