I’m glad to announce the release of the version 0.2 of factom.js! This is an important step forward and if you are using factom.js I strongly recommend you to upgrade. That version contains most of the foundational features, with more mature interfaces, more resilient code, better testing, etc. Before that it was really a “pre alpha” version...
There are breaking changes compared to 0.1.x. I haven’t kept a detailed changelog of those because the lib was really in draft mode, but from now on I’ll strive to provide it. Please have a look at the README for documentation, but if you have any problem you can reach our to me via PM. I also expect the interfaces to be more stable in the future. Here’s a high level changelog:
* More robust API calls: replaced factomdjs and factom-walletdjs by custom implementation with retry strategy. Possitibilty to customize retry strategy.
* Usage of `factomdApi` and `walletdApi` now mimics the raw API interfaces.
* Introduced the concept of 'BlockContext' for Entries and Transactions.
* Added methods for manipulating addresses and cryptographic keys. Lead to removal of dependency on factomjs-util (thanks for the initial work Steven!)
* Removal of dependencies lead to a much slimmer build!
* Fixed browserify build, now generates a minified version of the distribution file.
* Significantly increase code coverage (+ added code coverage tool).
* Various optimizations and bug fixes
I published a new version 0.3 of factom.js today. The bump of version is primarily justified by the work I did to optimize dependencies and makes the lib "browser ready" with some lighter bundles. Which is going to be handy for MyFactomWallet and the on-chain voting grant (which I'm part of, how convenient). There are other changes/small features added/fixes, and since version 0.2 I committed to keep up to date an exhaustive changelog, which I did: https://github.com/PaulBernier/factomjs/blob/master/changelog.md At this occasion I also removed the "warning" message in the readme stating that it was in alpha stage as I think the code and interfaces are pretty stable now.
As always feel free to reach out to me if you have any question or open an issue on Github.
There are a few tiny breaking changes which I really expect to not affect anyone using the lib on a reasonable basis.
entryBlockContext method of the Entry builder renamed blockContext. - I don't expect anyone should be using that in the first place (mostly used internally)
Check that transaction amounts are JS safe integers. - If you were doing transactions involving more than 90 millions FCT (2^53/10^8) it will be rejected now
Entry and chain builders now do deep copies when duplicating entry/chain, so if you were relying on side effects (bad, very bad) you could be in trouble
In 0.2.5 there was this change that could impact some people though: *addressToKey doesn't accept public Factoid addresses anymore. Created explicit addressToRcd function to handle public Factoid addresses. (breaking change)*