EOSJS Version 21.0.0-rc1: Support for WebAuthn, Elliptic Cryptography, and More
EOSJS remains among the most popular open source libraries to connect the front end of applications to EOSIO blockchains. Supporting the widespread adoption of EOSJS, we are excited to announce the latest release candidate, EOSJS 21.0.0-rc1, is now available for community testing. A number of changes and additional features have been introduced with this build, including support for WebAuthn, context free actions, and a switch to the elliptic cryptography library.
As a release candidate, we encourage the EOSIO developer community to test EOSJS 21.0.0-rc1 to help us refine the build as we work towards a stable release.
Security With WebAuthn for EOSIO Applications
The release of EOSJS 21.0.0-rc1 introduces support for WebAuthn on EOSIO blockchains. EOSIO is the first blockchain platform to support WebAuthn. This makes it possible for users to protect any high-risk transactions by using hardware keys for 2FA, such as a YubiKey or TouchID on a Macbook.
Developers who would like to integrate WebAuthn in their EOSIO applications may refer to our WebAuthn Example Application, which will be supported by this release candidate until a stable build of EOSJS 21.0.0 is ready.
Switching to the Elliptic Cryptographic Library
EOSJS 21.0.0-rc1 introduces a changeover from eosjs-ecc to the more robust elliptic cryptographic library. Keys and signatures are stored differently in the elliptic cryptographic library. In order to accommodate this change, we’ve added conversion functions to make the library more convenient for EOSIO developers. Eventually, eosjs-ecc will be deprecated. The conversion functions are a refactoring of existing code, so the switch shouldn’t affect the API.
Context-Free Action Support
A context-free action entails computations that solely rely on transaction data. For instance, context-free actions make it possible to derive the public keys responsible for signing a transaction from transaction data and signature alone, without a dependency on the blockchain state. Similar to signature verification, context-free actions in EOSJS will eventually be able to be processed in parallel, and facilitate generalized signature verification for applications using EOSJS.
Additional Features
In addition to the details above the following changes are also being introduced with EOSJS 21.0.0-rc1:
- Added get_scheduled_transactions to jsonrpc
- Added support for context-free data
- Implemented a fix for tapos check
- Added support for send_transaction JSON RPC
- Trimmed the final slash from endpoint with regex
- Added webhook for metrics collection
- Implemented a minor bugfix for invalid example json in documentation
- Replaced get_block with get_block_header_state
- Bumped mixin-deep from 1.3.1 to 1.3.2
- Introduced API changes for block header fallback
- Updated README.md
Impact On Users
- Once adopted, WebAuthn will enable the use of hardware keys, like a Yubikey, as 2FA devices for blockchain transactions on EOSIO applications.
Impact on Developers
- Reference EOSJS 21.0.0-rc1 to support the WebAuthn Example App and integrate hardware key based 2FA for blockchain transactions in your EOSIO application.
- Achieve greater efficiency through parallel processing with context-free action support.
- Transition with ease between eosjs-ecc and the elliptic library with conversion functions.
- Test and provide feedback on the new features of the EOSJS 21.0.0-rc1 as work continues towards releasing a stable version.
As with previous updates to EOSJS, we will continue to provide additional documentation and explanations of the library’s new features when EOSJS 21.0.0-rc1 is promoted to stable.
Stay Connected
We are committed to offering best open source tools to connect applications to EOSIO blockchains, and developers can help us in that effort by testing and providing insights for this release candidate. If you would like to offer feedback and work more closely with our team to improve EOSIO for developers, you can send our developer relations team an email at [email protected].
. . .
Important Note: All material is provided subject to this important notice and you must familiarize yourself with its terms. The notice contains important information, limitations and restrictions relating to our software, publications, trademarks, third-party resources and forward-looking statements. By accessing any of our material, you accept and agree to the terms of the notice.