- Removes need for bundlers to polyfill the `Buffer` class. `UInt8Array` are used instead which are native to the browser and node.
- Reduces bundle size 7.1kb gzipped and eliminates 4 runtime dependencies: `base-x`, `base64-js`, `buffer`, and `ieee754`.
BREAKING CHANGE: All methods that previously took a `Buffer` now accept a `UInt8Array`.
---------
Co-authored-by: Jackson Mills <jmills@ripple.com>
Switch to using `@noble/hashes`, `@noble/curves`, `@scure/base`,
`@scure/bip32`, and `@scure/bip39`. This replaces `crypto` polyfills
(such as `crypto-browserify`), `create-hash`, `elliptic`, `hash.js`,
`bn.js` (both versions), and their many dependencies. This also means
there are 33 less dependencies downloaded when running a fresh
`npm install` and will make the project much easier to maintain.
This reduces the bundle size by 44% (82kb minified and gzipped) over
the current 3.0 branch as well as reducing the amount of configuration
required to bundle.
Closes#1814, #1817, #2272, and #2306
Co-authored-by: Caleb Kniffen <ckniffen@ripple.com>
This works the same as before for Array inputs, but it should now also
work correctly with a wider range of Iterable or ArrayLike input types.
In particular, this makes it work with typed arrays such as Uint8Array,
which previously produced invalid output due to the hex numerals being
coerced back to the element type before the call to `join('')`.
- Migrate to TypeScript and TSLint
- Vendor ripple-address-codec (move dependency into this project)
- Add support for Travis CI (.travis.yml)
- Use "dist/*" for distribution files
- Bump version to 1.0.0-beta.0
- Add yarn.lock