Skip to content
This repository has been archived by the owner on Aug 2, 2022. It is now read-only.

EOSJS v20.0.0 Release Notes

Compare
Choose a tag to compare
@blockone-devops blockone-devops released this 01 Apr 22:57
· 1026 commits to master since this release

This release contains upgrades to the test suite and build process along with a breaking change outlined below.

A blog post providing more information can be found here.

Note: Since this release promotes EOSJS v20.0.0-beta3 to v20.0.0 (stable), using the @latest tag or the ^ will now automatically cause an upgrade from v16.0.x to v20.0.0. Developers using EOSJS v16.0.x are recommended to also review the updated README as v20.0.0 is a complete rewrite.

Highlighted Changes

BREAKING CHANGE: Removal of default exports (#490)

Using default exports causes inconsistencies depending on the module system used and makes refactoring code harder; therefore, they have been removed entirely from the EOSJS code. Developers using the JsSignatureProvider on v20.0.0-beta3, will need to update their syntax as follows:
import JsSignatureProvider from 'eosjs/dist/eosjs-jssig'
to
import { JsSignatureProvider } from 'eosjs/dist/eosjs-jssig'

Reduced bundle size significantly (#504)

Loading node modules from third parties is oftentimes the largest operation in a page load for end users. In order to minimize the loading time required for consumers of EOSJS, we have adjusted our distribution bundling process to exclude some unnecessary files. The EOSJS bundle size had been optimized since the v16.0.x release from 550kb to 130kb in v20.0.0-beta3. This change further reduces the bundle size from 130kb to 50kb.

Export Numeric module functions (#511)

The functions from the Numeric module can be useful for consuming applications; therefore, we decided to export them out as part of our bundle for NPM and for the web build.

Security Updates

Update and lock dependency versions in package.json (#504)

By using the ^ in package.json, the consuming package has control over when EOSJS dependencies update, which could lead to bugs upon updating automatically. To prevent this, we have locked all versions to a specific version, so we can have discretion over when dependencies update. We also updated some dependency versions to remove some security vulnerabilities.

Update and lock versions in EOSJS-ECC dependency (#49)

EOSJS-ECC dependencies have been locked in order to remove low priority security vulnerabilities.

Other Changes

  • (#491)(#496) Integration test suite for the NodeJS environment using Jest
  • (#502) Integration test suite for the web build using Cypress
  • (#495) Imported in B1 linting config for Typescript (with minor modifications)
  • (#514) Support get_table_by_scope RPC call
  • (#464) Support reverse order and show payer option for get_table_rows RPC call
  • (#486) Represent empty name as "" to match RPC v1
  • (#507) Add contribution guidelines with CONTRIBUTING.md
  • (#524) Update LICENSE

Thanks!

Special thanks to the community contributors that submitted patches for this release:

Disclaimer: Block.one makes its contribution on a voluntary basis as a member of the EOSIO community and is not responsible for ensuring the overall performance of the software or any related applications. We make no representation, warranty, guarantee or undertaking in respect of the releases described here, the related GitHub release, the EOSIO software or any related documentation, whether expressed or implied, including but not limited to the warranties or merchantability, fitness for a particular purpose and noninfringement. In no event shall we be liable for any claim, damages or other liability, whether in an action of contract, tort or otherwise, arising from, out of or in connection with the software or documentation or the use or other dealings in the software or documentation. Any test results or performance figures are indicative and will not reflect performance under all conditions. Any reference to any third party or third-party product, resource or service is not an endorsement or recommendation by Block.one. We are not responsible, and disclaim any and all responsibility and liability, for your use of or reliance on any of these resources. Third-party resources may be updated, changed or terminated at any time, so the information here may be out of date or inaccurate.