Commit Graph

798 Commits

Author SHA1 Message Date
Caleb Kniffen
c143dc3e99 test: run address-codec tests in the browser (#2466)
Update tests to use jasmine compatible functions.

This means changing `test` to `it`, `toStrictEqual` to `toEqual` (which
is still strict), `toThrowError` to `toError`, and updating the param
for toError to pass an `Error` object.

Remove the need to specify --single-run.
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
tequ
83442b18ba Add nftoken_id, nftoken_ids, offer_id to meta fields (#2450)
Add type for metadata for specific transactions(`Payment`, `NFTokenMint`, `NFTokenCreateOffer`, `NFTokenAcceptOffer`, `NFTokenCancelOffer`)

Closes #2316
2024-02-01 13:45:11 -06:00
Caleb Kniffen
1a83997e49 feat: add xrpl-secret-numbers to the monorepo (#2445)
- Add `xrpl-secret-numbers` by @WietseWind  to the mono repo.
- `unpkg` and `jsdelivr` support was simplified by adding fields to package.json.
- Unit tests run in a browser and node.

BREAKING CHANGES:
- `xrpl-secret-numbers` is now `@xrplf/secret-numbers`.
- Changed the bundled file produced changed from  `dist/browerified.js` to `build/xrplf-secret-numbers-latest.js`.
- Bundle variable is `xrplf_secret_numbers` instead of using browserify's loader.
- If using CDN instructions in README will need to update to `https://cdn.jsdelivr.net/npm/@xrplf/secret-numbers`

Making this library part of the monorepo was discussed in #1788.  This solves several problems with the upcoming `xrpl.js@3.0`.

`xrpl-secret-numbers` has a dependency of `ripple-keypairs` and `xrpl` has a depenendecy on `xrpl-secret-numbers`.  This means that any change would require a separate release of `ripple-keypairs`, then a release of `xrpl-secret-numbers`, followed by `xrpl`.  Now they can be released all at once

In 3.0 we eliminated the need for many polyfills like `util`, `assert`, and soon to be `buffer` (after noble libs PR is merged).  `xrpl-secret-numbers` still needs those.  This will also eliminate them and anytime similar changes in the future will be much easier.  This further reduces the bundle size of 3.0 branch by over 10% as well as reducing bundler setup.
2024-02-01 13:45:11 -06:00
Caleb Kniffen
3d86318195 test: update address-codec tests to typescript (#2447)
- Switch files to typescript
- Add missing types in test files
- Change how the codec functions were imported. They now count towards the "% Funcs" calculation, increasing it from 75% to 100%.
- Lint test files
2024-02-01 13:45:11 -06:00
Jackson Mills
9676b218b7 Re-add the walletFromSecretNumbers custom algorithm test (#2437)
Re-add test
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
justinr1234
3b70a3b919 fix: make docs not output confusing information in xrpl client (#2337)
* fix: make docs not output confusing information in xrpl client

---------

Co-authored-by: Jackson Mills <jmills@ripple.com>
Co-authored-by: Caleb Kniffen <ckniffen@ripple.com>
2024-02-01 13:43:55 -06:00
Caleb Kniffen
21c2423bac test: remove extra polyfills only for testing (#2428)
Removes the testing polyfills by using jasmine and not jest in the
browser. We were already using jasmine but where overriding those
methods with jest versions which was not needed.

The previous karma setup also used a single entrypoint which meant that
not all integration tests were running because all files were not
imported in integrations/index.ts.

This also eliminates 79 dev dependencies.
2024-02-01 13:43:55 -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
Jackson Mills
041055082a BREAKING CHANGE(fix): deriveKeypair ignoring a manual algorithm being specified (#2376) 2024-02-01 13:43:55 -06:00
Caleb Kniffen
07afcea97d feat: remove BroadcastClient (#2408)
BREAKING CHANGE: `BroadcastClient` was removed. It was deprecated in 2.2
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
0050b2f75e feat: remove 3 http related polyfills (#2375)
Switch to using fetch for browser and `node-fetch` for node for the faucet calls.  This reduces the webpack bundle by 3.2% or 16.5kb gzipped.

The fundWallet code has been refactored to be much more straight forward due to not having to do such low level operations.

This improves the frontend setup process by no longer requiring several polyfills such as `url`, `stream-http`, and `https-browserify`.
2024-02-01 13:43:55 -06:00
Caleb Kniffen
3b7dd4ea87 feat(deps): make https-proxy-agent optional (#2388)
Bump https-proxy-agent to v7 and a dev dependency. This makes
configuring bundlers easier to configure and removes a direct
dependency of `https-proxy-agent`.

BREAKING CHANGE: Configuring a proxy is done by specifying the
`agent` parameter on the ConnectionOptions config. This can use be
created by libraries such as `https-proxy-agent` or any that
implements `http.Agent`.
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
cfb64c3f88 feat: remove lodash as a dependency (#2378)
This will reduce the bundle size by ~23%(117kb).

Only 4 methods were used `flatten`, `flatMap`, `omitBy`, and `groupBy`.

`omitBy and `groupBy` were recreated while the es2019 implementations of
`flatten` and `flatMap` are used.

`lodash` is still used in the tests which is fine because it makes the
tests cleaner.

Closes #2118
2024-02-01 13:43:52 -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
Caleb Kniffen
f7d0cfb93a release xrpl 2.14.1 (#2631) 2024-02-01 12:58:20 -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
Omar Khan
b2c96714a8 fix AMM ledger object's LPTokenBalance type to IssuedCurrencyAmount (#2621) 2024-01-21 20:50:47 -05:00
Jackson Mills
99dd0eb44c Release xrpl.js 2.11.0 (#2591)
Update HISTORY.md + Run docgen
2023-11-30 15:27:12 -06:00
Jackson Mills
98abafbf12 feat: Add optional CTID field to Tx (#2477)
* Add optional CTID field to Tx

* Update HISTORY.md

* Update TxRequest

* Update comment to remove incorrect statement

---------

Co-authored-by: Caleb Kniffen <ckniffen@ripple.com>
2023-11-30 07:23:12 -08:00
Ildar Gumirov
9a85aaa109 fix: nftoken taxon calculation (#2590)
Fix taxon calculation for NFTokenID

### Context of Change

If NFToken taxon or serial is too big to be handled as number it could be calculated wrong.
2023-11-29 13:27:36 -06:00
Caleb Kniffen
b555f39e40 feat: remove AMM devnet (#2587)
The AMM dev network will be decommissioned on the 12/8
2023-11-28 15:03:41 -06:00
Mayukha Vadari
740210d9a2 fix: add DID ledger object + ledger_entry support (#2576)
* add ledger_entry support for DID

* add DID ledger object

* add empty DID validation
2023-11-17 10:54:32 -05: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
Omar Khan
b47bb39682 test: add AMM integration tests (#2471) 2023-11-03 18:23:27 -04:00
Mayukha Vadari
14f40f1f62 feat: add support for server_definitions RPC (#2535)
Add support for new command added in XRPLF/rippled#4703
2023-10-31 18:57:30 -05:00
Mayukha Vadari
bff4144fbf fix: update door account for bridge snippet (#2551)
update door account
2023-10-26 14:06:39 -04: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
Mayukha Vadari
a11924b8fc chore: fix sidechain networks (#2548)
* fix snippet

* clean up faucet code

* use correct bridge info

* remove unneeded console.log
2023-10-24 19:30:30 -04:00
Mayukha Vadari
c47aa58354 chore: switch to rippleci Docker container (#2534)
* fix docker container

* fix attempt

* use fix for browser tests too

* update contributing

* fix tests

* fix integration tests issues

* use variable for docker image
2023-10-24 14:50:52 -04:00
Mayukha Vadari
e09d84f2a2 fix: switch snippet back to working bridge (#2536)
switch snippet back
2023-10-23 11:01:48 -05:00
Caleb Kniffen
29c5a70ebc release: 2.13.0 and pin typedoc@0.25.0 (#2531)
`typedoc@0.25.1` has breaking changes if you aren not using
`typescript@^5.2`
2023-10-18 11:11:07 -05:00
Caleb Kniffen
8b78147945 fix: copy root README during xrpl publish (#2530)
The `xrpl` package had a less than helpful docs when viewed on the npm
website. The fix is a workaround that copies the root `README` over
to `packages/xrpl/README.md` during the `prepare` lifecycle phase.
2023-10-18 10:38:00 -05:00
Caleb Kniffen
65bf5d40ea fix: tx fields for accounts allowing empty string (#2525)
Fields that were encoded as STAccounts were turning '' into rrrrrrrrrrrrrrrrrrrrrhoLvTp the ACCOUNT_ZERO account. They will now throw a ValidationError.

Invalid addresses on a transaction now throws a ValidationError when submitting a transaction instead of Error('checksum_invalid').

This change updates some error messages for fields a few fields that aren't accounts, DestinationTag or NFTokenID. They will still be of type ValidationError.

Fixes: #2517 and #2475

---------

Co-authored-by: Elliot Lee <github.public@intelliot.com>
2023-10-18 10:25:57 -05:00
Mayukha Vadari
8e929c5a57 chore: remove sidechain-devnet faucet (#2518)
Removes faucet support for the sidechain devnet since the bridge has been moved to Devnet, which already has a faucet.
2023-10-17 12:30:52 -05:00
Mayukha Vadari
032b5b7c5a fix: add type param to ledger & ledger_data (#2503)
- Add missing `type` param
- Clean up typing of `type` param and the response property
`account_objects` of the `account_objects` request
- Create interfaces `HasPreviousTxnID` and `MissingPreviousTxnID`. This
helps clean up type checking with regard to the presence of
`PreviousTxnID` and `MissingPreviousTxnID`

Co-authored-by: Mayukha Vadari <mvadari@ripple.com>
Co-authored-by: Caleb Kniffen <ckniffen@ripple.com>
2023-10-16 09:44:54 -05:00
pdp2121
8b03c995b0 fix: pseudo-transactions for ledger and tx (#2515)
* Add pseudo transactions as types returned by `tx` and `ledger`
* Make` LedgerEntryResponse` generic to allow custom ledger entries
* Update UNLModify to extend BaseTransaction
* Create type `PseudoTransaction`

Co-authored-by: Caleb Kniffen <ckniffen@ripple.com>
2023-10-13 15:58:10 -05:00
Mayukha Vadari
e51526ae8c fix: move a tool and remove a lodash dependency (#2492)
This PR moves createValidateTests.js to xrpl/tools instead of being in the top-level tools folder, and fixes an isString import (changes it from lodash to the in-package version).
2023-10-04 17:30:25 -05:00
Caleb Kniffen
ec72f9ac8e fix: allow flag maps when submitting NFToken txs (#2490)
You can now `NFTokenMint` and `NFTokenCreateOffer` transactions with
`Flags` set to a map like other transactions with flags do.

ex. `{ tfSellNFToken: true }`
2023-10-04 16:37:56 -05: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
Caleb Kniffen
b9ef0de2df fix: rename AMMAccount to Account on AMM (#2487)
The `AMM` ledger object had the wrong property name
2023-09-26 16:02:07 -05: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
Jackson Mills
cad0a2a163 feat: Add ports field to server_info RPC (#2476) 2023-09-15 13:52:38 -07:00
tequ
7679df4551 fix: paychan utils arguments name (#2463) 2023-09-15 13:39:07 -05:00
Mayukha Vadari
556addff64 fix: fix escrow OfferSequence validation (#2474)
* Fix escrow validation

* update .nvmrc

* fix tests

* fix EscrowFinish too

* fix test

* update HISTORY

* fix validation

* fix linter issues

* forgot to save

* change test string
2023-09-14 17:21:18 -04:00