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

Hi everyone,

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.

Thanks @Alex!
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 :D
  • 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)*