Commit Graph

234 Commits

Author SHA1 Message Date
Omar Khan
92849e57ce release 3.1.0 (#2703)
* update HISTORYs

* update HISTORY for isomorphic

* update package.json
2024-06-03 16:33:06 -04:00
Omar Khan
23adb4924b feat: add Price Oracles support (#2688) 2024-05-23 12:10:00 -04:00
Mayukha Vadari
9b3bb9c14b fix: throw error if hexToBytes or hexToString is provided a string that is not in hex (#2657)
* better error handling

* fix browser tests

* add shared variable

* re-add test case
2024-05-08 13:02:34 -04:00
Mayukha Vadari
212686baae fix: better error handling for the binary codec (#2693)
* better error handling

* respond to comments

* remove --watch
2024-05-08 12:20:43 -04:00
Caleb Kniffen
a09084289b release: xrpl.js 3.0 (#2633)
- @xrplf/isomorphic@1.0.0
 - ripple-address-codec@5.0.0
 - ripple-binary-codec@2.0.0
 - ripple-keypairs@2.0.0
 - @xrplf/secret-numbers@1.0.0
 - xrpl@3.0.0
2024-02-01 15:48:48 -06:00
Caleb Kniffen
63c71a162d release: xrpl@3.0.0-beta.1 and friends (#2592)
Release beta versions of all the packages and fix history file version numbers for first beta.
2024-02-01 13:54:11 -06:00
Caleb Kniffen
38b385969b feat: remove Buffer support and bundle polyfill (#2526)
- 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>
2024-02-01 13:53:41 -06:00
Caleb Kniffen
e2433101cb test: run binary-codec tests in the browser (#2566)
- Convert tests to typescript
- Update type definitions causing errors in tests
  - `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. Example: `Uint64.compareTo`
can accept `number`
- Update tests to use jasmine compatible functions
  - Switching from `test` to `it`.
  - Updated test checking if coretypes all implement SerializedType
  - Import fixtures directly instead of using `loadFixture` utility
- Remove importing of `buffer/` explicitly.  It was throwing off type
checking in tests.  Buffer is going away in a future PR anyway.
- Fixed `npm run clean` not clearing `.tsbuildinfo` files for keypairs
- Remove unused account-tx-transactions.db. It was likely used in the
past to test historical ledgers.
2024-02-01 13:53:40 -06:00
Caleb Kniffen
134924c395 feat: remove assert library as a testing dep (#2563)
Right now we have 5 testing library dependencies. This eliminates
`assert`. `jest`, `jasmine`, `chai` and `karma` are the remaining ones.
2024-02-01 13:53:40 -06:00
Caleb Kniffen
83b9780b5b refactor: remove import * where able (#2550)
refactor: remove `import *` where able to

BREAKING CHANGE: Moved all methods that were on `Utils` in
`@xrplf/secret-numbers` are now individually exported. This affects:
- Utils.randomEntropy,
- Utils.randomSecret
- Utils.entropyToSecret
- Utils.secretToEntropy
- Utils.calculateChecksum
- Utils.checkChecksum
- Utils.parseSecretString
2024-02-01 13:53:40 -06:00
Caleb Kniffen
c5fc25efc2 release: 3.0.0-beta.0 (#2533) 2024-02-01 13:53:39 -06:00
Nicholas Dudfield
217b111ef2 feat: use @noble and @scure libraries for cryptography (#2273)
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>
2024-02-01 13:50:19 -06:00
Caleb Kniffen
5607320ce2 cleanup: remove dupe tests, update lock and docs (#2505)
- Remove tests from `ripple-keypairs` that exclusively tested
`rippled-address-codec`. The tests in `codec.test.ts` and
`xrp-codec.test.ts` are all present and accounted for in
`packages/ripple-address-codec/test/xrp-codec.test.ts`.
- Update `package-lock.json` after the rebase with main
- Remove references to `decimal.js` in the documentation
* add missing entry for `bignumber.js` to `ripple-binary-codec`

This will clean up the diff for #2273
2024-02-01 13:45:11 -06:00
Caleb Kniffen
83870acbfb fix: remove need to --force builds + cleanup (#2468)
This is done by properly deleting all build files.

Package-lock was due to it not reflecting the license of
@xrplf/secret-numbers.  This was fixed by running `npm i`.
2024-02-01 13:45:11 -06:00
Caleb Kniffen
cddb048588 feat: remove util polyfill and fix HISTORY.md (#2432)
- Remove `util` from bundle by switching `inspect` to `JSON.stringify`
- Update `HISTORY.md` with latest 3.0 changes
2024-02-01 13:45:09 -06:00
Jackson Mills
a0e53ac9e1 fix: Fix invariant assertion in binary-codec (#2429)
* Fix assertion

* Add a test
2024-02-01 13:43:55 -06:00
Caleb Kniffen
328987a0a3 feat(deps): remove assert-browserify (#2389)
Use if statements and manually error throwing to save 20kb gzipped.

BREAKING CHANGE: If you were catching AssertionError you need to change to Error.
2024-02-01 13:43:55 -06:00
Caleb Kniffen
8caf2e45bb feat: remove decimal.js and big-integer (#2379)
Reduces the bundle size by 8% (41kb)

BigInteger is now well supported so the library is no longer needed.

BigNumber was already being used by xrpl and they had almost identical
interfaces as they are both based on Java.
2024-02-01 13:43:55 -06:00
Caleb Kniffen
30bbc3f837 feat: remove node 14 support (#2386) 2024-02-01 13:41:52 -06:00
Caleb Kniffen
9f8502d522 feat: bump typescript to 5.x (#2387) 2024-02-01 13:41:51 -06:00
Jackson Mills
e7e5a3a506 Add a CONTRIBUTING.md to ripple-binary-codec (#2617)
Add binary-codec-contributing doc
2024-01-23 15:44:44 -08:00
Jackson Mills
99dd0eb44c Release xrpl.js 2.11.0 (#2591)
Update HISTORY.md + Run docgen
2023-11-30 15:27:12 -06:00
Mayukha Vadari
c8f25a6347 feat: add support for XLS-40d + add script to auto-generate models from rippled code (#2491)
Add support for XLS-40 and adds a script to automatically
generate transaction models from rippled source code.

### Context of Change

https://github.com/XRPLF/XRPL-Standards/pull/136
https://github.com/XRPLF/rippled/pull/4636
2023-11-15 16:19:50 -06:00
Mayukha Vadari
68beac73d1 test: add integration tests for sidechain transactions (#2301)
* add XChainCreateBridge integration test

* add XChainCreateClaimID integration test

* add XChainCommit integration test

* add XChainAccountCreateCommit integration test

* simplify tests

* add XChainModifyBridge integration test

* add XChainAddAccountCreateAttestation integration test

* add XChainAddClaimAttestation integration test

* improve SignerListSet integration test

* rename variable to match

* add XChainClaim integration test

* clean up

* add IOU attestation test

* fix integration tests issues

* minor refactors

* fix bug

* [WIP] switch to one bridge for all integration tests

* clean up

* fix tests

* fix + clean up tests
2023-10-25 10:08:58 -04:00
Jackson Mills
60b600faea docs: update keywords for all packages (#2502)
Update keywords for all packages to make the easier to find
2023-10-04 16:19:51 -05:00
Omar Khan
62cea624f8 2.12 release (#2488)
* update HISTORY

* docgen

* update HISTORY again

* update package.json files
2023-09-27 11:50:21 -04:00
Mayukha Vadari
91e7369f1b feat: add support for current sidechain design (#2039)
* Update definitions.json

* add new st types

* add tests

* add XChainClaim tx

* add XChainCommit tx

* add XChainCreateBridge tx

* add XChainCreateClaimID tx

* update definitions.json

* rename Bridge -> XChainBridge in binary codec, fix tests

* rename Bridge -> XChainBridge in models

* add codec support for XChainAddAttestation

* add XChainAddAttestation model

* undo debugging change

* fix linting issues

* update definitions.json for new rippled code, add new tests/update old tests

* add/update models

* update history

* update binary-codec

* add XChainModifyBridge model

* update RPCs

* update to latest rippled

* more fixes

* fix definitions.json

* fix spacing

* update definitions.json to avoid conflict with amm

* update definitions.json to resolve amm conflicts

* audit code

* more updates

* update rpcs

* switch to beta version

* add destination tag to XChainClaim

* rename IssuedCurrency -> Issue to match rippled

* update Issue form

* fix account object filters

* fix issue from typing

* fix LedgerEntry types

* fix attestation destination type

* Update definitions.json

* rename XChainAddAttestation -> XChainAddAttestationBatch

* add XChainAddClaimAttestation

* add XChainAddAccountCreateAttestation

* remove XChainAddAttestationBatch

* update definitions

* fix attestation txns

* fix attestation object

* add validate for new txs

* add Bridge ledger object

* add XChainOwnedClaimID ledger object

* add XChainOwnedCreateAccountClaimID ledger object

* update account_objects

* update models to latest rippled

* fix minor issues

* fix bridge ledger_entry

* add XChainModifyBridge flag

* Update definitions.json

* add rbc tests for the new txs

* update validateXChainModifyBridge

* add validate methods to other xchain txs

* fix isXChainBridge

* fix isIssue typing

* fix model types

* update changelog

* switch prepare to prepublishOnly

* add docs

* fix AccountObjectsType filter

* export common types

* fix account_objects filter

* update LedgerEntry

* add sidechain faucet info

* add snippet

* improve snippet

* fix spacing issues

* update ledger_entry

* remove AMMDelete tests for now

* Update definitions.json

* fix unit tests

* convert createValidate script to JS
* remove unneeded linter ignores

* respond to comments

* more snippet fixes

* make validate functions more readable

* add getXChainClaimID method to parse metadata

* re-add linter rules

* clean up common

* fix getXChainClaimID test

* return undefined for failed tx

* test: add model tests for new sidechain transactions (#2059)

* add XChainAddAttestation tests, fix model

* add XChainClaim model tests

* add XChainCommit model tests, fix typo

* add XChainCreateBridge model tests

* add XChainCreateClaimID model tests

* add XChainModifyBridge tests

* update to most recent version of code

* remove XChainAddAttestationBatch tests

* add more validation tests

* switch createValidateTests to JS
2023-09-26 10:01:21 -04:00
Caleb Kniffen
8e5aa9df99 doc: update HISTORY.md with source-map fix (#2467)
This was missed when I did #2435 which led to `ripple-address-codec` and
`ripple-keypairs` not being released.
2023-09-06 17:26:59 -05:00
Omar Khan
37fbc03584 2.11 release (#2442)
* update HISTORY

* update docgen

* update package versions
2023-08-24 13:44:29 -04:00
Jackson Mills
49447a9beb ci: Add a script to generate changes to ci-config (#2431)
* Add basic lookup for amendments
2023-08-18 15:24:48 -07:00
Omar Khan
5581474627 feat: add AMM support (#2071)
* update definitions.json

* add AMMInstanceCreate

* renamed LPTokens to LPToken in definitions.json

* update HISTORY.md

* add amm_info RPC command

* add AMMDeposit

* use null check for missing fields

* add AMMWithdraw

* add AMMVote

* fix lint error

* add max trading fee check to AMMVote

* refactor MAX_TRADING_FEE to be in one place

* add AMMBid

* add AuthAccount interface to AMMBid

* refactor tests

* add AMMID to AMMInfoResponse

* update amm_info docstrings

* fix EPrice type to be Amount

* update EPrice validation error message and add missing tests

* update definitions to fix AMM in LEDGER_ENTRY_TYPES

* add missing test case Asset1In and Asset2In valid

* add missing test case Asset1Out and Asset2Out valid

* add negative FeeVal check

* update HISTORY.md to specify XLS-30

* update wording on AMMDeposit & AMMWithdraw validation errors

* add negative TradingFee check

* fix ammInfo response

* add AMMID as optional param in ammInfo response

* fix EPrice validation checks in AMMDeposit & AMMWithdraw

* add VoteSlots as optional param in AMMInfoResponse

* update VoteEntry interface

* fix deposit and withdraw tests

* fix AMMBid ValidationError

* update definitions.json with different AuthAccounts number

* Change amm_info asset parameters to Currency type

* API name changes with updated definitions.json

* rename amm_info param asset1 -> asset

* fix typo

* change AMM_MAX_TRADING_FEE to 1%

* Use Asset/Asset2 instead of AMMID for Deposit/Withdraw/Bid/Vote

* add Deposit/Withdraw flags

* rename FeeVal -> TradingFee in VoteEntry

* rename MinBidPrice -> BidMin and MaxBidPrice -> BidMax

* update definitions to change Asset & Asset2 nth values to 3 & 4

* update definitions

* add Issue type and tests for Asset/Asset2

* remove AMMID from amm_info and use Issue type

* update amm_info fields

* fix lint errors

* update unit tests

* add AMM codec-fixtures

* update Issue type

* add one asset and withdraw all tests

* refactor amm_info response fields to match AMMDevnet

* update definitions.json with refactored error codes

* update ammInfo.ts response model

* remove invalid fields from ammInfo.ts response model

* update time_interval description

* rename test model names and fix lint errors

* add Owner Reserve Fee for AMMCreate transaction

* add missing asset_frozen field

* replace Issue with IssuedCurrency

* refactor: convert flags to number

* update asset pair to use Currency type

* refactor isIssue to isCurrency

* add AMM ledger entry object, lsfAMM flag, amm fields to LedgerEntryRequest

* update definitions.json

* WIP defintions

* update codec-fixtures

* fix definitions test

* update DiscountedFee definition

* update definitions

* update codec-fixtures

* update definitions

* update unit tests

* update amm_info response

* sort imports/exports

* update jsdoc

* update amm_info jsdoc

* update jsdoc

* convert caution to all caps

* add validation for AuthAccounts

* refactor and export interfaces

* use Currency type

* update definitions

* add AMMDelete

* rename Issue to Currency in error message

* mark asset frozen as optional fields

* refactor isAuthAccounts

* add AMMDelete jsdoc

* rename to validateAuthAccounts

* fix typo

* fix typo in unit test

---------

Co-authored-by: Caleb Kniffen <ckniffen@ripple.com>
2023-08-17 22:42:32 -04:00
Caleb Kniffen
2192e11267 fix: source-maps find their designated source (#2435)
fix: source-maps find their designate source

We weren't including the `src` folder in the files published too npm.
This caused errors such as the following seen in the sandbox and by
users on discord.

```
WARNING in ./node_modules/xrpl/dist/npm/utils/xrpConversion.js
Module Warning (from ./node_modules/source-map-loader/dist/cjs.js):
Failed to parse source map from '/sandbox/node_modules/xrpl/src/utils/xrpConversion.ts' file: Error: ENOENT: no such file or directory, open '/sandbox/node_modules/xrpl/src/utils/xrpConversion.ts'
```
2023-08-15 10:37:05 -05:00
Caleb Kniffen
352abae003 chore: remove extra files for git, nyc, and mocha (#2422)
- Remove `.gitignore` from individual packages.
- Remove `nyc.config.js` and `.nycrc` since `nyc` is no longer in use
- Remove `.mocharc` and `localIntegrationRunner.html` since `mocha` is
no longer in use.
2023-08-15 10:19:15 -05:00
Jackson Mills
002ec77218 release: Update package.json files (#2425)
Update package.json files
2023-08-07 14:50:14 -07:00
Jackson Mills
c4097935a9 release: Update HISTORY.md (#2424)
* Update HISTORY.md

* Run docgen
2023-08-07 14:31:24 -07:00
Shawn Xie
63ea6e8c9b feat: add Clawback amendment support (#2353)
* Add Clawback transaction
* Account flag lsfAllowTrustLineClawback
* Support bitwise flag checking of 64 bit flags
2023-07-19 14:39:48 -05:00
pdp2121
5ec6729c61 release 2.9.1 (#2391) 2023-07-18 15:29:32 -05:00
Wietse Wind
d47a277e25 Fix #2361 - Custom definitions in STArray»STObject (#2362)
Custom binary codec fixes xrpl.js#2361 - missed param def
2023-07-14 09:45:31 -05:00
Caleb Kniffen
c523a7c80b release: xrpl@2.9.0 and ripple-binary-codec@1.7.0 (#2380) 2023-07-12 16:52:06 -05:00
Denis Angell
5b0989df51 feature NetworkID (#2216)
Added network id to the base transaction
Added network id to the server_info response
Added network id to the binary codec
Added network id to client and modify on client.connect()
Added network id to autofill when rippled_version is 1.11.0 or later or network is hooks testnet

Co-authored-by: Phu Pham <ppham@ripple.com>
Co-authored-by: pdp2121 <71317875+pdp2121@users.noreply.github.com>
Co-authored-by: Jackson Mills <aim4math@gmail.com>
Co-authored-by: Mayukha Vadari <mvadari@gmail.com>
2023-06-14 15:15:18 -04:00
Jackson Mills
3791c6292c 2.8.0 release (#2343) 2023-06-13 14:15:08 -07:00
Mayukha Vadari
82c5b3598a feat: support npm v9 (#2318)
* add support for npm v9

* Update package-lock.json

* Update nodejs.yml

* update changelogs

* update PR template
2023-05-25 16:01:42 -04:00
dependabot[bot]
7a89f8c63e build(deps): bump buffer from 5.6.0 to 6.0.3 (#2249) 2023-04-21 21:11:28 +00:00
Mayukha Vadari
be2aa32542 fix: don't run ripple-binary-codec tests on install (#2260)
fix rbc scripts
2023-04-06 13:03:23 -04:00
Jackson Mills
0c6ea2afe2 feat: modifiable definitions.json values at runtime via encode/decode parameter (#2127) 2023-03-16 10:35:50 -07:00
Jackson Mills
b3d3bc2f99 Release xrpl.js 2.7.0 (#2240) 2023-03-08 15:05:00 -08:00
Jackson Mills
bef2f79fee Update linter peer dependencies (#2168) 2023-02-07 15:00:55 -08:00
justinr1234
5fe480ece4 feat: Jest Test Runner (#2170) 2023-02-03 17:03:07 -06:00
pdp2121
c74ffddf59 fix: unset hash128 fields using AccountSet (#2156) 2023-02-01 12:27:02 -05:00
Caleb Kniffen
9df848fcc6 fix(build): Allow m1 macs to build binary-codec (#2109)
Switch from `run-script-os` to `copyfiles`. Using `copyfiles` is a more
ideal way to copy files in an os agnostic way.

Fixes #2092.
2022-10-12 12:35:33 -05:00