# ripple-binary-codec Release History

## Unreleased

## 2.1.0 (2024-06-03)

### Added
* Support for the Price Oracles amendment (XLS-47).

### Fixed
* Better error handling/error messages for serialization/deserialization errors.

## 2.0.0 (2024-02-01)

### BREAKING CHANGES
* Bump typescript to 5.x
* Remove Node 14 support
* Remove decimal.js and big-integer. Use `BigNumber` from `bignumber.js` instead of `Decimal` and the native `BigInt` instead of `bigInt`.
* Remove `assert` dependency. If you were catching `AssertionError` you need to change to `Error`.
* Remove `create-hash` in favor of `@noble/hashes`
* `Buffer` has been replaced with `UInt8Array` for both params and return values. `Buffer` may continue to work with params since they extend `UInt8Arrays`.

### Non-Breaking Changes
* Update type definitions which causing errors in tests that the code already supported
  * `makeParser` to accept a `Buffer` in addition to `string`
  * `SerializedType` constructor allows not passing in a byte array
  * `Comparable` is now a generic type so that it allows `compareTo` methods to take more that the type itself.
* Eliminates 4 runtime dependencies: `base-x`, `base64-js`, `buffer`, and `ieee754`.

### Changes
* Update type definitions which causing errors in tests that the code already supported
    * `makeParser` to accept a `Buffer` in addition to `string`
    * `SerializedType` constructor allows not passing in a byte array
    * `Comparable` is now a generic type so that it allows `compareTo` methods to take more that the type itself.

## 1.11.0 (2023-11-30)
### Added
- Support for the DID amendment (XLS-40).

## 1.10.0 (2023-09-27)
### Added
- Support for the XChainBridge amendment (XLS-38).

## 1.9.0 (2023-08-24)

### Added
* Add AMM support [XLS-30](https://github.com/XRPLF/XRPL-Standards/discussions/78)
* Updated to include latest updates to `definitions.json`.

### Fixed
* Fix source-maps not finding their designated source

## 1.8.0 (2023-08-07)

### Added
* Added Clawback transaction type

## 1.7.1 (2023-07-18)
### Fixed
* Passing Definitions from `STObject` to `STArray` back to `STObject`, both for signing & decoding (to JSON)

## 1.7.0 (2023-07-12)
### Added
* `NetworkId` field support

## 1.6.0 (2023-06-13)
### Added
- Allow custom type definitions to be used for encoding/decoding transactions at runtime (e.g. for sidechains/new amendments)
- Adds support for npm v9

## 1.5.0 (2023-03-08)
### Changed
- All tests now use the Jest test runner and have been refactored for consistency across all packages

## 1.4.2 (2022-06-27)
- Fixed standard currency codes with lowercase and allowed symbols not decoding into standard codes.

## 1.4.1 (2022-06-02)
- Added a clearer error message for trying to encode an invalid transaction. (Ex. With an incorrect TransactionType)

## 1.4.0 (2022-04-18)
- Updated NFT definitions to match 1.9.0's breaking naming changes

## 1.3.2 (2022-02-02)
- Fixed error being raised when decoding issued currencies in non-standard formats that decode to XRP (#1920)
- Fix ISO when parsing currency code (#1921)
- Internal - build(deps-dev):
  - bump webpack from 5.66.0 to 5.68.0 (#1910)
  - bump webpack-cli from 4.9.1 to 4.9.2 (#1911)
  - bump eslint-plugin-mocha from 9.0.0 to 10.0.3 (#1912)
  - bump @types/node from 16.11.11 to 17.0.14 (#1913)
  - bump @types/mocha from 9.0.0 to 9.1.0 (#1914)
  - bump typescript from 4.5.2 to 4.5.5 (#1918)
  - bump typedoc from 0.22.10 to 0.22.11 (#1916)
  - bump chai from 4.3.4 to 4.3.6 (#1915)

## 1.3.1 (2022-01-28)
- Fix "homepage" field in package.json

## 1.3.0 (2021-12-17)
### Added
- Exported `TRANSACTION_TYPES` value
### Fixed
- Adds missing fields from XLS-20 NFT implementation

## 1.2.3 (2022-2-2)
- Fix issue where ISO is invalid when parsing currency code

## 1.2.2 (2021-12-02)
- Fix issue where unsupported currency codes weren't being correctly processed
- Added a workaround for rippled UNLModify encoding bug (#1830)

## 1.2.1 (2021-12-01)
- Fix issue where npm < 7 could not install the library

## 1.2.0 (2021-11-15)
- Converts ripple-binary-codec into a monorepo with ripple-address-codec,
  ripple-keypairs, and xrpl
- Adds preliminary support for XLS-20 NFT definitions

## 1.1.3 (2021-06-11)
- Fix for case UInt64.from string allowing lowercase hex (#135)
- Fix for `ValidatorToReEnable` field code (#130)

## 1.1.2 (2021-03-10)
- Fix for case UInt64.from string '0' due to changes in rippled 1.7.0

## 1.1.1 (2021-02-12)
- PathSet.toJSON() does not return undefined values
- Add support for X-Addresses in Issued Currency Amounts
- Fix STArray error message

## 1.1.0 (2020-12-03)
- Add support for Tickets (TicketBatch amendment)
- Fix web browser compatibility

## 1.0.2 (2020-09-11)
- Allow currencies to be encoded from any 3 character ASCII code

## 1.0.1 (2020-09-08)
- Filter out fields with undefined values

## 1.0.0 (2020-08-17)

- Migrate to TypeScript
  - Javascript classes used
  - Generics for constructing core types
- Reduced dependencies
  - Dependent on create-hash, decimal.js, ripple-address-codec
- Migrate testing to Jest and added tests
  - Tests for pseudo-transactions
- Added support for NegativeUNL pseudo-transactions

## 0.2.6 (2019-12-31)

- Update dependencies
  - decimal.js, fs-extra, mocha, handlebars, bn.js, babel-eslint, ripple-address-codec

## 0.2.5 (2019-12-14)

- Add support for AccountDelete (#37)

## 0.2.4 (2019-09-04)

- Update ripple-address-codec to 3.0.4

## 0.2.3 (2019-08-29)

- Expand node version compatibility (#32, #33)

## 0.2.2 (2019-07-26)

- Input validation - Amount and Fee should not allow fractional XRP drops ([#31](https://github.com/ripple/ripple-binary-codec/issues/31))
- Fix lint errors
- Update dependencies (including lodash and mocha)
- Require node 10 (.nvmrc)
- Remove assert-diff
- Remove codecov.io as it did not appear to work. The `package.json` script was:
  - `"codecov": "cat ./coverage/coverage.json | ./node_modules/codecov.io/bin/codecov.io.js"`

## 0.2.1

- Add tecKILLED from amendment fix1578 (PR #27 fixes #25)

## 0.2.0

- Add DepositPreauth fields
  - https://developers.ripple.com/depositauth.html

## 0.1.14

- Skip amount validation when deserializing f72c115

## 0.1.13

- Add Check, CheckCreate, CheckCash, CheckCancel

## 0.1.11

- Add ledger header decode function

## 0.1.8

## 0.1.7

## 0.1.6

## 0.1.3
