Today we released the beta3 update to EOSJS v20.0.0. There are breaking changes in the release, so it is important for integrators to have their dependency versions locked. The changes in the release are a further step towards our plan to enable Dapp developers to integrate with one universal api and automatically support any key management and signing solution of their users’ choice.

Feedback is welcome on our continued advancement of developer tools and resources for the EOSIO Developer Community. Feel free to get in contact with our Developer Relations team by emailing developers@block.one with your thoughts on how we can improve software development for the community.

Continue reading below to learn more about EOSJS v20.0.0-beta3.

Highlights in EOSJS v20.0.0-beta3:

Remove dependency on eosjs-ecc (#425)

In this release, we removed the “default” signature provider from the default export. Keeping this out of the default export prevents eosjs-ecc from being bundled automatically, significantly reducing bundle size. We made this change to heighten user security across applications by encouraging the use of signature providers instead of having users paste private keys directly into applications. In the future, we hope that most eosjs implementations will leverage an alternate signature provider to enhance user security.

Support for React Native Apps (#425)

We’ve made necessary updates to ensure eosjs is compatible with React Native Apps and the Edge/IE11 browser.

Support for Signature Providers to Modify Transactions (#418)

As we move to a more secure method of key handling within applications built on EOSIO, signature providers may have valid reasons to modify a transaction (i.e., add actions) prior to returning it to the API transact method for possible broadcast. Prior to this update this was not possible, as signature providers could only return signatures, and transact uses the same serialized transaction that was passed into the signature provider. With this update, the signature provider now returns an object with two keys: signatures and serializedTransaction. The transact function then broadcasts this output.

Improved Handling of Multisig Transactions (#432)

Finally, we have made some updates to provide better support for multisig transactions on EOSIO.

Additional Issues:

More details for this release can be found on GitHub in the Release. Remember, EOSJS V20 is still in beta and will be updated frequently to enhance the security and usability of the library. Remember to lock your dependencies.