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

Releases: EOSIO/eosjs

EOSJS v20.0.0 Release Notes

01 Apr 22:57
Compare
Choose a tag to compare

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.

v20.0.0-beta3 (beta2->beta3)

18 Dec 22:16
be370fb
Compare
Choose a tag to compare

This release contains breaking changes for the SignatureProvider class. The changes for this release include:

  • Removal of default signature provider from index exports (import { JsSignatureProvider } from 'eosjs' -> import JsSignatureProvider from 'eosjs/dist/eosjs-jssig')
    Many eosjs implementations will leverage an alternate signature provider; keeping this out of the default export prevents eosjs-ecc from being bundled automatically, significantly reducing bundle size. This also further dissuades against using the default signature provider in production as this is not a safe practice because it requires users to paste their private key in the context of the webpage

  • Necessary measures to ensure eosjs is compatible with React Native and in the Edge/IE11 browser

  • Return the serialized transaction with the signatures when sign() is called on the signature provider. Signature providers may have valid reasons to modify the transaction, so sign() needs to return the reference to the new transaction.

  • Optional sign parameter to return serialized transaction without signatures when sign() is called on the signature provider. This can be used to create multisig transaction objects.

  • Specify and automate certain aspects of release process

  • Revamp of README and Gitbook documentation (including more usage examples)

v20.0.0-beta2 (beta1->beta2)

22 Oct 17:36
e5ca122
Compare
Choose a tag to compare

This release contains simplifications and refactors to prepare to pull v20 out of beta. This release does contain breaking changes from our previous beta1 release, so refer to this list or the new README documentation if you are having issues upgrading to beta2

Changes include:

  • Inclusion of optional AbiProvider in Api constructor (allows passing of local abi's as opposed to retrieving them from the chain)
  • Moved tests and setup for tests into their own directory
  • Remove default export in index.js to enable tree shaking in the future
    import eosjs from 'eosjs' -> import * as eosjs from 'eosjs' or specify exactly which named imports you need
  • Pulled interfaces into their own files and exported them separately
    not possible before -> import { ApiInterfaces, RpcInterfaces } from 'eosjs'
  • Simplify JsonRpc class
    import { Rpc } from 'eosjs' -> import { JsonRpc } from 'eosjs'
    new Rpc.JsonRpc() -> new JsonRpc()
  • clarify danger of bringing keys into webpage context by prepending signature provider export with Js
    import { SignatureProvider } from 'eosjs' -> import { JsSignatureProvider } from 'eosjs'
    new SignatureProvider() -> new JsSignatureProvider()
  • Export RpcError
  • Changed BinaryAbi interface account_name field to camel case
  • Updated README.md with new syntax and additional information
  • set alwaysStrict flag in TSC
  • Overall code cleanup

v16.0.8

15 Sep 21:06
Compare
Choose a tag to compare

Script integrity hashes. see usage.

sha512-ZNj2roAUohp5a75xghMPchptWns6y6Gxj6x6C56f2CSVPcmUNzHWUIpbXHeXPj0rD3yRSDXeF22Brs11F8ESSw== lib/eos.js
sha512-zhPSKFEBlDVvUzjl9aBS66cI8tDYoLetynuKvIekHT8NZZ12oxwcZ//M/eT/2Rb/pR/cjFvLD8104Cy//sdEnA== lib/eos.min.js
sha512-VKOxq8R14PpPh4nbLvD8DtxxTv1UmZp7pb3+P8IOQ36m3PBJpm6cd8pI8WRI6d9/aozwADKb3HSFQ7A8s+OhSA== lib/eos.min.js.map

v16.0.7

11 Sep 16:32
Compare
Choose a tag to compare

Script integrity hashes. see usage.

sha512-cBHEVnypCM7GrkDkIOufWlLSnuP4DZ5VJY483iXVI79RtETkfav+n5lRbEoYpPDmdnAbvzH8XK+iDZdI9SzCYA== lib/eos.js
sha512-PN1FGjtx9uGyhFbWFlCiM6CUsnVl68Mw//cPNhYRApYJvjcvPUzPsaoWW/zBhnR2V/r62CMTRDQf9X/nfx7oSg== lib/eos.min.js
sha512-gK4w1toMYX+VDt+DcHu9voY1CVF/lEV6lMakFvUHAi3ue9SgWmoAzx/Ngklaway5DPPJpWwfTZMvPgX0sCnoXg== lib/eos.min.js.map

v16.0.6

22 Aug 14:41
Compare
Choose a tag to compare

Script integrity hashes. see usage.

sha512-1+9QoHM15or8AQMLftEEACcwATU38fqGn1q8NiZ6ybA6fFGWSrdx7ppR859TEwYQAASIUpi7fd8UzQZfqLA6pQ== lib/eos.js
sha512-IS9vyI+sMK7MYNJgHj9G8Li21QYs59sRW/Nyzi+dKUh6bF6OfpOnvzSCTiegWftY1ozOmmyacCH2QIJpZgbuKw== lib/eos.min.js
sha512-g905cUn6OWkdrFTNXd87/ZvTpOHKM0/sOhcGsnS+BFQZ0pp2+KnO6SWg/HdgB/tDvOEm6zSY8p8+/H99cteGPQ== lib/eos.min.js.map

v16.0.3

18 Aug 16:29
Compare
Choose a tag to compare

Script integrity hashes. see usage.

sha512-IROKp40AWkXmwbin81GOCaYvLeQ/x9PUlf+knUmUNGCCeJtElb/sRQ2W1H12AwohAUV3iFzubCuFxsq9fJVuIg== lib/eos.js
sha512-Lb1HeEaUSTxg0Y1KqlKOKeZCRi8XrEat+my3sWdg1lNE81sUZNWogpfC9GSIwPvON1Bqj5nQk2PyTE56lBR8ag== lib/eos.min.js
sha512-MZTqzlynbFpY5Nl/6/MOEAHgX5PtSvHWketq0sgm5OqHxZCein2sYwZOfCv4wrX0Mx2mAzC6nIOsVixcxW4Dnw== lib/eos.min.js.map

v16.0.2

14 Aug 01:58
Compare
Choose a tag to compare

Script integrity hashes. see usage.

sha512-dUt7/CwVCjHz4t894Gk9enCCTkQhaYWVmoQmXfVY6cVSjrG63I2X0yjmySlcLJ00YrHgeBBGGA5h8LOKoPIsOA== lib/eos.js
sha512-22gPq/bBKtvD6mdthugNUuGmYEdKkVnnhvSnl4k62eNPmKoFEmNbmxLIU4Hz/5EsmCX2jsYIwkaiz507wT+fBw== lib/eos.min.js
sha512-JZ6rFW/z2srIZxN+h/lSM/m1k+BEXWLS5Wt1c1RRr9CHxRXWT3ff5l0+zhedOk2kL2ZZNMFqmU4+Q1HPfZ5X3w== lib/eos.min.js.map

v16.0.1

14 Aug 01:54
Compare
Choose a tag to compare
16.0.1

v16.0.0

23 Jul 21:29
Compare
Choose a tag to compare

Script integrity hashes. see usage.

sha512-WVarvM+kg5FyfhRnQH8ZjSswAaUctdOxvsXCXWWwfpV7/vb3Phy5KB3rjKwV8h3+9evInAsyLnxvDsdD+Fd6BA== lib/eos.js
sha512-vNyLnOEb7uFmEtVbLnyZQ9/k4zckM2Vu3jJOKq6XfWEVZG0yKcjDExVN4EQ7e3F+rePWRncMolI2xFi/3qo62A== lib/eos.min.js
sha512-ZhiO8AyYgrZOyDo3y40LVg1YkjqjUr9hYO+te8IYHU1gfAmyZxfut9CQj73+mEgC9u7GV2Gttr3cxTh7QH0rkw== lib/eos.min.js.map