diff --git a/.ci-config/getNewAmendments.js b/.ci-config/getNewAmendments.js new file mode 100644 index 0000000000..ca4690c53b --- /dev/null +++ b/.ci-config/getNewAmendments.js @@ -0,0 +1,56 @@ +const xrpl = require("xrpl"); +const fs = require("fs"); +const path = require("path"); + +const filePath = path.resolve(__dirname, "./rippled.cfg"); +const existingConfig = fs.readFileSync(filePath, "utf-8"); + +const networkToEmulate = "wss://s.devnet.rippletest.net:51233/"; + +const amendmentsToIgnore = [ + "86E83A7D2ECE3AD5FA87AB2195AE015C950469ABF0B72EAACED318F74886AE90", // CryptoConditionsSuite is obsolete +]; + +async function main() { + const client = new xrpl.Client(networkToEmulate); + await client.connect(); + + // Looks up what amendments have been enabled via their hash + const request = { + command: "ledger_entry", + index: "7DB0788C020F02780A673DC74757F23823FA3014C1866E72CC4CD8B226CD6EF4", + ledger_index: "validated", + }; + const response = await client.request(request); + + const amendments = response.result.node.Amendments; + + const newAmendments = []; + amendments.forEach((amendment) => { + if ( + !existingConfig.includes(amendment) && + !amendmentsToIgnore.includes(amendment) + ) { + newAmendments.push(amendment); + } + }); + + if (newAmendments.length > 0) { + console.log( + "New Amendment Hashes - Look up their names on https://xrpl.org/known-amendments.html" + ); + newAmendments.forEach((amendment) => { + console.log(amendment); + }); + } else { + console.log( + `No new amendments to add! +Looking at network: ${networkToEmulate}. +Path to config: ${filePath}` + ); + } + + await client.disconnect(); +} + +main().catch((error) => console.log(error)); diff --git a/.ci-config/rippled.cfg b/.ci-config/rippled.cfg new file mode 100644 index 0000000000..291f87b730 --- /dev/null +++ b/.ci-config/rippled.cfg @@ -0,0 +1,180 @@ +[server] +port_rpc_admin_local +port_ws_public +port_ws_admin_local + +# port_peer +# port_ws_admin_local +# ssl_key = /etc/ssl/private/server.key +# ssl_cert = /etc/ssl/certs/server.crt + +# IPs must be 0.0.0.0 instead of 127.0.0.1 to be accessed outside the docker container + +[port_rpc_admin_local] +port = 5005 +ip = 0.0.0.0 +admin = 0.0.0.0 +protocol = http + +[port_ws_public] +port = 80 +ip = 0.0.0.0 +protocol = ws + +# [port_peer] +# port = 51235 +# ip = 0.0.0.0 +# protocol = peer + +[port_ws_admin_local] +port = 6006 +ip = 0.0.0.0 +admin = 0.0.0.0 +protocol = ws + +[node_size] +small + +# tiny +# small +# medium +# large +# huge + +[node_db] +type=NuDB +path=/var/lib/rippled/db/nudb +advisory_delete=0 + +# How many ledgers do we want to keep (history)? +# Integer value that defines the number of ledgers +# between online deletion events +online_delete=256 + +[ledger_history] +# How many ledgers do we want to keep (history)? +# Integer value (ledger count) +# or (if you have lots of TB SSD storage): 'full' +256 + +[database_path] +/var/lib/rippled/db + +[debug_logfile] +/var/log/rippled/debug.log + +[sntp_servers] +time.windows.com +time.apple.com +time.nist.gov +pool.ntp.org + +[ips] +r.ripple.com 51235 + +[validators_file] +validators.txt + +[rpc_startup] +{ "command": "log_level", "severity": "info" } + +# severity (order: lots of information .. only errors) +# debug +# info +# warn +# error +# fatal + +[ssl_verify] +1 + +# The [features] stanza does not currently work for standalone mode: https://github.com/XRPLF/xrpl-dev-portal/issues/1762#issuecomment-1441252450 + + +# In order to enable an amendment which by default would vote "No", you must include its amendment id and name here. +# To add amendments specifically from the latest releases of rippled: +# 1. Go to https://xrpl.org/known-amendments.html +# 2. Find the first amendment in the latest releases of rippled which are not already in the list below +# 3. Click on each amendment to get their Amendment ID and name to add to this list manually. +# You will likely update the list with all amendments from a new release of rippled all at once. + +# To get the list of amendments on a network (e.g. devnet) follow the steps in xrpl.js's CONTRIBUTING.md for "Updating the Docker container". +# https://github.com/XRPLF/xrpl.js/blob/main/CONTRIBUTING.md +# (Running the script `getNewAmendments.js` should help you identify any new amendments that should be added.) +# +# Note: The version of rippled you use this config with must have an implementation for the amendments you attempt to enable or it will crash. +# If you need the version of rippled to be more up to date, you may need to make a comment on this repo: https://github.com/WietseWind/docker-rippled + +[features] +# Devnet amendments as of June 28th, 2023 +NegativeUNL +fixRemoveNFTokenAutoTrustLine +NonFungibleTokensV1 +CheckCashMakesTrustLine +fixRmSmallIncreasedQOffers +fixSTAmountCanonicalize +FlowSortStrands +TicketBatch +fix1201 +fixQualityUpperBound +FlowCross +EnforceInvariants +fix1523 +HardenedValidations +DepositPreauth +MultiSignReserve +fix1623 +FeeEscalation +PayChan +fix1513 +RequireFullyCanonicalSig +fix1543 +TickSize +fix1781 +fixCheckThreading +fix1515 +CryptoConditions +fix1528 +fixPayChanRecipientOwnerDir +SortedDirectories +fix1578 +fix1571 +fixAmendmentMajorityCalc +fixTakerDryOfferRemoval +fixMasterKeyAsRegularKey +Flow +Escrow +TrustSetAuth +DeletableAccounts +DepositAuth +fix1368 +fix1512 +fix1373 +MultiSign +Checks +NonFungibleTokensV1_1 +# 1.10.0 Amendments +DisallowIncoming +fixNonFungibleTokensV1_2 +fixTrustLinesToSelf +fixUniversalNumber +ImmediateOfferKilled +XRPFees +# 1.11.0 Amendments +ExpandedSignerList +# 1.12.0 Amendments +AMM +Clawback +fixReducedOffersV1 +fixNFTokenRemint +# 2.0.0 Amendments +XChainBridge +DID +# 2.2.0-b3 Amendments +fixNFTokenReserve +fixInnerObjTemplate +fixAMMOverflowOffer +PriceOracle +fixEmptyDID +fixXChainRewardRounding +fixPreviousTxnID diff --git a/.github/dependabot.yml b/.github/dependabot.yml index de688c442f..0c33596aec 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -3,6 +3,6 @@ updates: - package-ecosystem: npm directory: "/" schedule: - interval: monthly + interval: weekly time: "15:00" open-pull-requests-limit: 10 diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 5b65656fa5..9de63cc949 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -31,12 +31,10 @@ Please check relevant options, delete irrelevant ones. - [ ] Documentation Updates - [ ] Release -## Before / After +### Did you update HISTORY.md? - +- [ ] Yes +- [ ] No, this change does not impact library users ## Test Plan @@ -47,4 +45,4 @@ Please describe the tests that you ran to verify your changes and provide instru \ No newline at end of file +--> diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 83db958b4f..68dadab9c6 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -35,7 +35,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v2 + uses: actions/checkout@v3 # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL diff --git a/.github/workflows/nodejs.yml b/.github/workflows/nodejs.yml index 97bbc6bc3e..176acc8cb8 100644 --- a/.github/workflows/nodejs.yml +++ b/.github/workflows/nodejs.yml @@ -3,6 +3,9 @@ name: Node.js CI +env: + RIPPLED_DOCKER_IMAGE: rippleci/rippled:2.2.0-b3 + on: push: branches: [main, 1.x] @@ -16,7 +19,7 @@ jobs: strategy: matrix: - node-version: [14.x] + node-version: [18.x] steps: - uses: actions/checkout@v3 @@ -25,9 +28,9 @@ jobs: with: node-version: ${{ matrix.node-version }} - - name: Setup npm version 7 + - name: Setup npm version 9 run: | - npm i -g npm@7 --registry=https://registry.npmjs.org + npm i -g npm@9 --registry=https://registry.npmjs.org - name: Cache node modules id: cache-nodemodules @@ -57,7 +60,7 @@ jobs: strategy: matrix: - node-version: [14.x, 16.x, 18.x] + node-version: [18.x, 20.x] steps: - uses: actions/checkout@v3 @@ -66,9 +69,9 @@ jobs: with: node-version: ${{ matrix.node-version }} - - name: Setup npm version 7 + - name: Setup npm version 9 run: | - npm i -g npm@7 --registry=https://registry.npmjs.org + npm i -g npm@9 --registry=https://registry.npmjs.org - name: Cache node modules id: cache-nodemodules @@ -98,25 +101,23 @@ jobs: strategy: matrix: - node-version: [14.x, 16.x, 18.x] - - services: - rippled: - image: natenichols/rippled-standalone:latest - ports: - - 6006:6006 - options: --health-cmd="wget localhost:6006 || exit 1" --health-interval=5s --health-retries=10 --health-timeout=2s + node-version: [18.x, 20.x] steps: - uses: actions/checkout@v3 + + - name: Run docker in background + run: | + docker run --detach --rm --name rippled-service -p 6006:6006 --volume "${{ github.workspace }}/.ci-config/":"/opt/ripple/etc/" --health-cmd="wget localhost:6006 || exit 1" --health-interval=5s --health-retries=10 --health-timeout=2s --env GITHUB_ACTIONS=true --env CI=true ${{ env.RIPPLED_DOCKER_IMAGE }} /opt/ripple/bin/rippled -a --conf /opt/ripple/etc/rippled.cfg + - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v3 with: node-version: ${{ matrix.node-version }} - - name: Setup npm version 7 + - name: Setup npm version 9 run: | - npm i -g npm@7 --registry=https://registry.npmjs.org + npm i -g npm@9 --registry=https://registry.npmjs.org - name: Cache node modules id: cache-nodemodules @@ -138,10 +139,13 @@ jobs: run: npm ci - run: npm run build - - run: npm run test:integration - env: - HOST: localhost - PORT: ${{ job.services.rippled.ports['6006'] }} + + - name: Run integration test + run: npm run test:integration + + - name: Stop docker container + if: always() + run: docker stop rippled-service browser: runs-on: ubuntu-latest @@ -149,14 +153,59 @@ jobs: strategy: matrix: - node-version: [14.x] # This just needs to be compatible w/ puppeteer + node-version: [18.x] + + steps: + - uses: actions/checkout@v3 + + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v3 + with: + node-version: ${{ matrix.node-version }} + + - name: Run docker in background + run: | + docker run --detach --rm --name rippled-service -p 6006:6006 --volume "${{ github.workspace }}/.ci-config/":"/opt/ripple/etc/" --health-cmd="wget localhost:6006 || exit 1" --health-interval=5s --health-retries=10 --health-timeout=2s --env GITHUB_ACTIONS=true --env CI=true ${{ env.RIPPLED_DOCKER_IMAGE }} /opt/ripple/bin/rippled -a --conf /opt/ripple/etc/rippled.cfg + + - name: Setup npm version 9 + run: | + npm i -g npm@9 --registry=https://registry.npmjs.org + + - name: Cache node modules + id: cache-nodemodules + uses: actions/cache@v3 + env: + cache-name: cache-node-modules + with: + # caching node_modules + path: | + node_modules + */*/node_modules + key: ${{ runner.os }}-deps-${{ matrix.node-version }}-${{ hashFiles('**/package-lock.json') }} + restore-keys: | + ${{ runner.os }}-deps-${{ matrix.node-version }}- + ${{ runner.os }}-deps- + + - name: Install Dependencies + if: steps.cache-nodemodules.outputs.cache-hit != 'true' + run: npm ci + + - run: npm run build + + - name: Run integration test + run: npm run test:browser - services: - rippled: - image: natenichols/rippled-standalone:latest - ports: - - 6006:6006 - options: --health-cmd="wget localhost:6006 || exit 1" --health-interval=5s --health-retries=10 --health-timeout=2s + - name: Stop docker container + if: always() + run: docker stop rippled-service + + snippets: + runs-on: ubuntu-latest + timeout-minutes: 10 + + strategy: + matrix: + node-version: [18.x, 20.x] steps: - uses: actions/checkout@v3 @@ -165,9 +214,9 @@ jobs: with: node-version: ${{ matrix.node-version }} - - name: Setup npm version 7 + - name: Setup npm version 9 run: | - npm i -g npm@7 --registry=https://registry.npmjs.org + npm i -g npm@9 --registry=https://registry.npmjs.org - name: Cache node modules id: cache-nodemodules @@ -189,4 +238,5 @@ jobs: run: npm ci - run: npm run build - - run: npm run test:browser + - name: Run Snippets + run: (for i in packages/xrpl/snippets/src/*.ts; do echo "Running $i" && npx ts-node $i || exit 1; done) diff --git a/.gitignore b/.gitignore index 5aff5e5866..6c49c1088b 100644 --- a/.gitignore +++ b/.gitignore @@ -22,6 +22,7 @@ npm-shrinkwrap.json # Ignore object files. *.o build/ +coverage/ tags bin/rippled Debug/*.* @@ -39,8 +40,6 @@ db/*.db db/*.db-* # Ignore customized configs -rippled.cfg -validators.txt test/config.js # Ignore coverage files diff --git a/.nvmrc b/.nvmrc index 958b5a36e1..3f430af82b 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -v14 +v18 diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000000..dd449725e1 --- /dev/null +++ b/.prettierignore @@ -0,0 +1 @@ +*.md diff --git a/.vscode/settings.json b/.vscode/settings.json index c59f1fb6a6..ef2c734c23 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,11 +1,21 @@ { "editor.tabSize": 2, "cSpell.words": [ - "Multisigned", - "Setf", + "altnet", + "Autofills", + "Clawback", "hostid", + "keypair", + "keypairs", + "multisign", + "multisigned", + "multisigning", "preauthorization", - "secp256k1" + "rippletest", + "secp256k1", + "Setf", + "Sidechains", + "xchain" ], "[javascript]": { "editor.defaultFormatter": "esbenp.prettier-vscode", diff --git a/APPLICATIONS.md b/APPLICATIONS.md index 7c7c113d68..8d7f17375a 100644 --- a/APPLICATIONS.md +++ b/APPLICATIONS.md @@ -58,6 +58,10 @@ Warning: Use at your own risk. XRP Ledger explorer, API, metrics, and analytics using a graph database that is synchronized live with the XRPL. +- **[XRPLWin](https://xrplwin.com)** + + XRP Ledger and Xahau explorer, Hooks explorer, metrics, and analytics using a XWA backend that is synchronized live with the XRPL and Xahau. + ## Data monitoring - **[zerptracker](https://zerptracker.com)** @@ -74,6 +78,10 @@ Warning: Use at your own risk. ## Wallets and wallet tools +- **[GemWallet](https://gemwallet.app/)** + + Users can use the GemWallet (non-custodial) web extension to interact with the XRPL from their browser. The documentation is available at [https://gemwallet.app/](https://gemwallet.app/docs/user-guide/introduction). + - **[XUMM](https://xumm.app/)** Users can use the xumm application to track their accounts, balances and transactions. The true power of xumm is the platform available for developers. @@ -109,7 +117,7 @@ Warning: Use at your own risk. - **[XRP Account Mnemonic Recovery](https://github.com/WietseWind/xrp-mnemonic-recovery)** (uses `ripple-keypairs`) Recover a 24 word mnemonic if one word is wrong or one word is missing. - + - **[Trustline](https://trustline.co)** A decentralized stablecoin wallet that runs on the XRP Ledger. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 451544de36..38b08ab0fc 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -12,7 +12,7 @@ ### Requirements -We use Node v14 for development - that is the version that our linters require. +We use Node v18 for development - that is the version that our linters require. You must also use `npm` v7. You can check your `npm` version with: ```bash @@ -47,7 +47,7 @@ npm run lint ## Running Tests -For integration and browser tests, we use a `rippled` node in standalone mode to test xrpl.js code against. To set this up, you can either run `rippled` locally, or set up the Docker container `natenichols/rippled-standalone:latest` for this purpose. The latter will require you to [install Docker](https://docs.docker.com/get-docker/). +For integration and browser tests, we use a `rippled` node in standalone mode to test xrpl.js code against. To set this up, you can either configure and run `rippled` locally, or set up the Docker container `rippleci/rippled` by [following these instructions](#integration-tests). The latter will require you to [install Docker](https://docs.docker.com/get-docker/). ### Unit Tests @@ -59,14 +59,24 @@ npm test ### Integration Tests +From the top-level xrpl.js folder (one level above `packages`), run the following commands: + ```bash npm install # sets up the rippled standalone Docker container - you can skip this step if you already have it set up -docker run -p 6006:6006 -it natenichols/rippled-standalone:latest +docker run -p 6006:6006 --interactive -t --volume $PWD/.ci-config:/opt/ripple/etc/ --platform linux/amd64 rippleci/rippled:2.0.0-b4 /opt/ripple/bin/rippled -a --conf /opt/ripple/etc/rippled.cfg npm run build npm run test:integration ``` +Breaking down the command: +* `docker run -p 6006:6006` starts a Docker container with an open port for admin WebSocket requests. +* `--interactive` allows you to interact with the container. +* `-t` starts a terminal in the container for you to send commands to. +* `--volume $PWD/.ci-config:/config/` identifies the `rippled.cfg` and `validators.txt` to import. It must be an absolute path, so we use `$PWD` instead of `./`. +* `rippleci/rippled` is an image that is regularly updated with the latest `rippled` releases +* `/opt/ripple/bin/rippled -a --conf /opt/ripple/etc/rippled.cfg` starts `rippled` in standalone mode + ### Browser Tests There are two ways to run browser tests. @@ -75,10 +85,12 @@ One is in the browser - run `npm run build:browserTests` and open `test/localInt The other is in the command line (this is what we use for CI) - +This should be run from the `xrpl.js` top level folder (one above the `packages` folder). + ```bash npm run build # sets up the rippled standalone Docker container - you can skip this step if you already have it set up -docker run -p 6006:6006 -it natenichols/rippled-standalone:latest +docker run -p 6006:6006 --interactive -t --volume $PWD/.ci-config:/opt/ripple/etc/ --platform linux/amd64 rippleci/rippled:2.2.0-b3 /opt/ripple/bin/rippled -a --conf /opt/ripple/etc/rippled.cfg npm run test:browser ``` @@ -92,6 +104,8 @@ The 4 packages currently here are: 2. ripple-binary-codec - A library for serializing and deserializing transactions for the ledger. 3. ripple-keypairs - A library for generating and using cryptographic keypairs. 4. ripple-address-codec - A library for encoding and decoding XRP Ledger addresses and seeds. +5. isomorphic - A collection of isomorphic implementations of crypto and utility functions. +6. secret-numbers - Generate XRPL Accounts with a number-based secret: 8 chunks of 6 digits. Each package has it's own README which dives deeper into what it's main purpose is, and the core functionality it offers. They also run tests independently as they were originally in separate repositories. @@ -169,6 +183,33 @@ npm install abbrev -w ripple-keypairs npm uninstall abbrev -w xrpl ``` +## Updating the Docker container for CI + +In order to test the library, we need to enable the latest amendments in the docker container. +This requires updating the `/.ci-config/rippled.cfg` file with the hashes and names of new amendments. + +In order to update the list, follow these steps from the top level of the library: +1. Run `node ./.ci-config/getNewAmendments.js` +2. If there are any new amendment hashes, add a comment to the end of `/.ci-config/rippled.cfg` with the date + - `Ex. "# Added August 9th, 2023"` +3. For each hash printed out by the script, add the hash and name to the config file. + - Ex. `B2A4DB846F0891BF2C76AB2F2ACC8F5B4EC64437135C6E56F3F859DE5FFD5856 ExpandedSignerList` + - You can look up the name by searching for the hash on https://xrpl.org/known-amendments.html +4. Push your changes + +Note: The same updated config can be used to update xrpl-py's CI as well. + +## Updating `definitions.json` + +This should almost always be done using the [`xrpl-codec-gen`](https://github.com/RichardAH/xrpl-codec-gen) script - if the output needs manual intervention afterwards, consider updating the script instead. + +1. Clone / pull the latest changes from [rippled](https://github.com/XRPLF/rippled) - Specifically the `develop` branch is usually the right one. +2. Clone / pull the latest changes from [`xrpl-codec-gen`](https://github.com/RichardAH/xrpl-codec-gen) +3. From the `xrpl-codec-gen` tool, follow the steps in the `README.md` to generate a new `definitions.json` file. +4. Replace the `definitions.json` file in the `ripple-binary-codec` with the newly generated file. +5. Verify that the changes make sense by inspection before submitting, as there may be updates required for the `xrpl-codec-gen` tool depending on the latest amendments we're updating to match. + + ## Release process + checklist ## PR process @@ -192,9 +233,10 @@ npm uninstall abbrev -w xrpl 1. Run `npm run docgen` if the docs were modified in this release to update them (skip this step for a beta). 1. Run `npm run build` to triple check the build still works -1. Run `npx lerna version --no-git-tag-version` - This creates a draft PR and bumps the versions of the packages. +1. Run `npx lerna version --no-git-tag-version` - This bumps the package versions. - For each changed package, pick what the new version should be. Lerna will bump the versions, commit version bumps to `main`, and create a new git tag for each published package. + - If you do NOT want to update the package number, choose "Custom Version" and set the version to be the same as the existing version. Lerna will not publish any changes in this case. - If publishing a beta, make sure that the versions are all of the form `a.b.c-beta.d`, where `a`, `b`, and `c` are identical to the last normal release except for one, which has been incremented by 1. 1. Run `npm i` to update the package-lock with the updated versions. @@ -203,15 +245,13 @@ npm uninstall abbrev -w xrpl 1. Actually publish the packages with one of the following: - Stable release: Run `npx lerna publish from-package --yes` - - Beta release: Run `npx lerna publish from-package --dist-tag beta --yes` + - Beta release: Run `npx lerna publish from-package --dist-tag beta --yes` Notice this allows developers to install the package with `npm add xrpl@beta` 1. If requested, enter your [npmjs.com](https://npmjs.com) OTP (one-time password) to complete publication. -1. If not a beta release: Create a new branch (`git checkout -b `) to capture the updated packages from the release. Merge those changes into `main`. NOW YOU HAVE PUBLISHED! But you're not done; we have to notify people! -1. Pull the most recent changes to `main` locally. 1. Run `git tag -m `, where `` is the new package and version (e.g. `xrpl@2.1.1`), for each version released. 1. Run `git push --follow-tags`, to push the tags to Github. 1. On GitHub, click the "Releases" link on the right-hand side of the page. @@ -222,26 +262,12 @@ npm uninstall abbrev -w xrpl 1. Click "Choose a tag", and choose a tag that you just created. 1. Edit the name of the release to match the tag (IE \@\) and edit the description as you see fit. -1. Lastly, send an email to [xrpl-announce](https://groups.google.com/g/xrpl-announce). - -# ripple-lib 1.x releases - -- [ ] Publish the release to npm. - - - [ ] If you are publishing a 1.x release to the `xrpl` package, use: - - npm publish --tag ripple-lib - - This prevents the release from taking the `latest` tag. - -For ripple-lib: - - - Have one of the ripple-lib package maintainers push to `ripple-lib` (npm package name). You can contact [@intelliot](https://github.com/intelliot) to request the npm publish. -- For ripple-lib releases, cross-publish the package to `xrpl` with `--tag ripple-lib` - - [Here's why](https://blog.greenkeeper.io/one-simple-trick-for-javascript-package-maintainers-to-avoid-breaking-their-user-s-software-and-to-6edf06dc5617). +1. Send an email to [xrpl-announce](https://groups.google.com/g/xrpl-announce). +1. Lastly, send a similar message to the XRPL Discord in the [`javascript` channel](https://discord.com/channels/886050993802985492/886053111179915295). The message should include: + 1. The version changes for xrpl libraries + 1. A link to the more detailed changes + 1. Highlights of important changes -- https://www.npmjs.com/package/ripple-lib -- https://www.npmjs.com/package/xrpl ## Mailing Lists diff --git a/MIGRATION.md b/MIGRATION.md new file mode 100644 index 0000000000..ec57916fb3 --- /dev/null +++ b/MIGRATION.md @@ -0,0 +1,295 @@ +# Migration Guide + +In xrpl.js 3.0, we've made significant improvements that result in a 60% reduction in bundle size for browser applications. We've also eliminated the need for polyfills with minimal disruption to existing code. This was achieved by replacing node-specific dependencies with ones that are compatible with browsers. + +The two main changes you'll notice are: +* A breaking change to `Wallet` object creation, to use a more performant algorithm by default. See [here](#8-wallet-functions-default-to-ed25519-instead-of-secp256k1-signing-algorithm) for details. +* Replacing `Buffer` with `Uint8Array` across the board. This was done since browsers don't support `Buffer`. Fortunately, this transition is relatively straightforward, as `Buffer` is a subclass of `Uint8Array`, meaning in many circumstances `Buffer` can be directly replaced by `Uint8Array`. The primary difference is that `Buffer` has additional helper functions. We've listed the affected client library functions below in the `Uint8Array` section for your reference. + +This migration guide also applies to: +- `ripple-address-codec` 4.3.1 -> 5.0.0 +- `ripple-binary-codec` 1.11.0 -> 2.0.0 +- `ripple-keypairs` 1.3.1 -> 2.0.0 +- `xrpl-secret-numbers` 0.3.4 -> `@xrplf/secret-numbers` 1.0.0 + +# Why update to 3.0? + +At a high level: + +1. 60% filesize reduction +2. Simplified setup by removing polyfills +3. Increased reliability through more browser testing + + + +## 1. 60% size reduction + +Through simplifying 3rd party dependencies, we were able to reduce the size of xrpl.js by 60%. + +A major contributor to the project's large bundle size was the use of polyfills, which replicated Node-specific features in the browser. To address this, we transitioned to using 3rd party packages that inherently supported both Node and browser environments. + +Another simple fix was removing `lodash` by using es6 array methods and porting over simple helper utilities. + +Another substantial reduction came from simplifying five large number libraries xrpl.js depended on down to just one. Previously, we relied on `decimal.js`, `big-integer`, `bignumber.js`, and two versions of `bn.js` due to elliptic's transitive dependency tree. + +We were able to streamline this by adopting `@noble` to replace `elliptic`, resulting in the use of just one version of `bn.js`. Within our library we also switched to using `bignumber.js` consistently across the board. + +## 2. No more polyfills required (simplified install) + +Polyfills made it hard to setup xrpl.js in the browser as they required custom bundler configs. By using dependencies and browser-native features, xrpl.js can now work just by installing from `npm` in most cases other than react-native. + +For the cryptography libraries, we switched from using `elliptic`, `create-hash`, and other crypto polyfills to using the `@noble` suite of packages. For situations where node-specific crypto functions performed better, we created `@xrplf/isomorphic` to dynamically choose which implementation to use depending on the runtime environment. + + + +We eliminated the polyfills for `http`, `https`, and `url` by using the native `fetch` in the browser. + +The easiest to replace were `assert` (which was replaced by simple conditions & exceptions) and `utils` (which used `JSON.stringify` instead of `inspect`). + +Lastly, the `buffer` polyfill turned out to be the trickiest to remove, resulting in the largest number of breaking changes. Since the `Buffer` object is not native to the browser all apis were migrated to the superclass of `Buffer` → `Uint8Array`s. For a detailed write up of why we and many libraries are choosing to make this transition, check out this [blog post](https://sindresorhus.com/blog/goodbye-nodejs-buffer) by Sindre Sorhus. + +List of all replaced polyfills that can potentially be removed from your webpack.config.js / vite.config.js / other bundling config files as they are no longer needed in xrpl.js. **Note that you may still need these for other libraries you depend on / code you have written.** + - `assert` + - `buffer` + - `crypto` + - `events` + - `http` + - `https` + - `os` + - `stream` + - `url` + - `ws` + +## 3. Increased Reliability Through More Browser Testing + +With xrpl.js 3.0, we improved our test coverage in the browser. Specifically, we added browser unit testing to all packages in the monorepo other than the `xrpl` package. Note that the `xrpl` package has browser coverage through our integration tests. + +To implement this enhancement, we included a karma configuration in every project utilizing webpack to bundle each library. This allowed us to execute tests in Chrome. We are actively working towards extending this support to include running unit tests for the xrpl package in Chrome as an integral part of our continuous integration (CI) process in the near future. + +# Breaking Changes Detailed Migration Guide + +Here’s a high-level overview of the breaking changes. + + + +1. The largest change is that all instances of `Buffer` have been replaced by `Uint8Array` **[Link](#1-buffer-to-uint8array)** +2. All “large number” types have been consolidated to either `bigint` or `BigNumber` **[Link](#2-large-number-handling)** +3. Polyfill configuration changes **[Link](#3-polyfill-configuration-changes)** +4. `dropsToXRP` and `Client.getXrpBalance` now return a `number` instead of a `string` (`xrpToDrops` is UNCHANGED) **[Link](#4-dropstoxrp-and-clientgetxrpbalance-now-return-a-number-instead-of-a-string)** +5. `xrpl-secret-numbers` has been moved into the mono-repo as `@xrplf/secret-numbers` **[Link](#5-xrpl-secret-numbers-has-been-moved-into-the-mono-repo-as-xrplfsecret-numbers)** +6. Support for Node 14 has been dropped **[Link](#6-support-for-node-14-has-been-dropped)** +7. Configuring proxies with the Client **[Link](#7-configuring-proxies-with-the-client)** +8. Bug fix: Setting an explicit `algorithm` when generating a wallet works now **[Link](#8-bug-fix-setting-an-explicit-algorithm-when-generating-a-wallet-works-now)** +9. `AssertionError` → `Error` **[Link](#9-assertionerror-→-error)** +10. Pre-bundle browser builds **[Link](#10-pre-bundle-browser-builds)** +11. We’ve updated the `Transaction` type to include pseudotransactions **[Link](#11-transaction-type)** +12. `authorizeChannel` was moved **[Link](#12-authorizechannel-was-moved)** +13. Removed the deprecated `BroadcastClient` **[Link](#13-weve-removed-the-deprecated-broadcastclient)** + +Without further ado, here’s the detailed changes and how to migrate: + +### 1. `Buffer` to `Uint8Array` + +In most cases, `Uint8Array` can act as a drop-in replacement for `Buffer` data since `Buffer` is a subclass of `Uint8Array`. The main differences are that `Uint8Array` has fewer helper methods, and slightly different syntax for converting from other data types. This difference primarily affects methods whose return type is changed. (For functions whose parameters were changed to `Uint8Array`, `Buffer` should still be a valid parameter as it’s a subclass of `Uint8Array`) + +Please see this [blog post](https://sindresorhus.com/blog/goodbye-nodejs-buffer) for detailed examples of how to migrate `Buffer` to `Unit8Array`. + +Below is a list of every method affected.  + +**`ripple-address-codec`** + +- `decodeAccountID` +- `encodeAccountID` +- `decodeAccountPublic` +- `encodeAccountPublic` +- `decodeNodePublic` +- `encodeNodePublic` +- `encodeSeed` +- `decodeXAddress` +- `encodeXAddress` + +**`ripple-binary-codec`** + +- `SerializedType` constructor and `toBytes` . Its sub-classes: + - `AccountID` + - `Amount` + - `Blob` + - `Currency` + - `Hash` + - `Hash128` + - `Hash160` + - `Hash256` + - `Issue` + - `PathSet` + - `STArray` + - `STObject` + - `UInt` + - `UInt8` + - `UInt16` + - `UInt32` + - `UInt64` + - `Vector256` + - `XChainBridge` +- `ShaMapNode.hashPrefix` +- `BinarySerializer.put` +- `BytesList.put` and `BytesList.toBytes` +- `BinaryParser.read` +- `BinaryParser.readVariableLength` +- `Quality.encode` and `Quality.decode` +- `Sha512Half.put` and `Sha512Half.finish256` +- `transactionID` +- `sha512Half` +- Entries of `HashPrefix` +- Type `FieldInstance.header` +- `Bytes.bytes` +- `signingClaimData` +- `serializeObject` +- `makeParser` + +**`secret-numbers`** + +- `entropyToSecret` +- `randomEntropy` +- `Account` constructor + +**`xrpl`** + +- `rfc1751MnemonicToKey` + +### 2. Large Number Handling + +`bn.js`, `decimal.js` and `big-integer` were removed as dependencies. They usages were replaced with `BigNumber` from `big-number.js` (was already a dependency) and the native javascript object `BigInt`. + +- `UInt64.valueOf` returns `bigint` instead of `BigInteger` +- `SerializeType.from` can take a `bigint` instead `BigInteger` +- `ledgerHash` had its param object change so that `total_coins` in a `bigint` instead `BigInteger` +- `Quality.decode` returns a `BigNumber` instead of a `Decimal` +- `Amount.assertIouIsValid` take a `BigNumber` instead `Decimal` +- `Amount.verifyNoDecimal` takes a `BigNumber` instead `Decimal` + +### 3. Polyfill configuration changes + +For `vite` and `create-react-app` you can remove all xrpl.js polyfills/configurations. This also includes the custom mappings for `ws` to `WsWrapper` and the exclusion of `https-proxy-agent`. You should also be able to remove polyfills for other bundlers / frameworks, but we have only extensively tested `vite` and `create-react-app` configurations. + +**React Native** + +Please follow the updated guide at UNIQUE_SETUPS.md (Many polyfills are no longer required, but not all are eliminated for this environment). + +### 4. `dropsToXRP` and `Client.getXrpBalance` now return a `number` instead of a `string` (`xrpToDrops` is UNCHANGED) + +This should make it easier to work with the numbers. Because the max size of XRP is 100 billion, we can use a `number` instead of a larger type like `bigint` (which is normally needed when working with issued tokens on the XRPL). + +Please note that `xrpToDrops`, which was commonly used to set the amount of XRP that is in a transaction is UNCHANGED as an `Amount` type in a `Transaction` needs a `string` input. + +### 5. `xrpl-secret-numbers` has been moved into the mono-repo as `@xrplf/secret-numbers` + +This move allows us to continue maintaining this package going forward as well as giving us more control over the dependencies to avoid needing polyfills. + +If you were using `xrpl-secret-numbers` directly, please update your imports to the new package (`@xrplf/secret-numbers`) to receive updates going forward. + +Besides making changes to this package to update from `Buffer` → `Uint8Array` you will need to update all places where you use functions on the `Util` object. These methods are now at the root of the library. These methods include: + +- `Utils.randomEntropy` → `randomEntropy` +- `Utils.randomSecret` → `randomSecret` +- `Utils.entropyToSecret` → `entropyToSecret` +- `Utils.secretToEntropy` → `secretToEntropy` +- `Utils.calculateChecksum` → `calculateChecksum` +- `Utils.checkChecksum` → `checkChecksum` +- `Utils.parseSecretString` → `parseSecretString` + +### 6. Support for Node 14 has been dropped + +Node 14 has stopped receiving security updates since April 2023, and so we’ve decided to no longer support it going forward. Please update to one of the supported versions of Node as listed in xrpl.js’s `README.md`. + +### 7. Configuring proxies with the Client + +The way to configure proxies for `Client` has changed. It is now done by specifying the `agent` parameter on the `ConnectionOptions` config. + +You can generate an `agent` with libraries such as `https-proxy-agent` or any that implements `http.Agent`. + +This was done to remove a hard dependency on `https-proxy-agent` when running in the browser and to support `https-proxy-agent@7` which changed several option names. Proxy support was never supported in the browser, and merely burdened xrpl bundles with unused dependencies. + +**Before** + +`{ + proxy: `ws://127.0.0.1:${port}`, + authorization: 'authorization', + trustedCertificates: ['path/to/pem'], +}` + +**After** + + `{ + agent: new HttpsProxyAgent(`ws://127.0.0.1:${port}`, { + ca: ['path/to/pem'], + }), + authorization: 'authorization' + }` + +### 8. `Wallet` functions default to `ed25519` instead of `secp256k1` signing algorithm + +In previous releases of this library, `Wallet.generate()` and `Wallet.fromSeed` were ignoring the `algorithm` parameter. Instead, the algorithm was assumed from the seed provided; if it started with `sEd`, it would use `ed25519`, and otherwise it would use `secp256k1`. However, seeds do not actually have algorithms; a seed starting with `s...` can still use the `ed25519` algorithm. + +With 3.0, we updated the default signing algorithm used by the `Wallet` object to always be `ed25519` in order to default to the higher-performance algorithm. This is a breaking change to all functions used to generate a Wallet, so if you have a pre-existing XRPL account that you're using to generate a specific Wallet using older versions of xrpl.js, you may need to specify that you are using `secp256k1` as the algorithm to decode your private key / seed / etc to get the same behavior as before. See below for specifically how to update your code. + +If you are creating new accounts each time (ex. via `Client.fundWallet` or `Wallet.generate`), you do not need to specify the signing algorithm. + +**Before** +``` +Wallet.fromSeed('s...') +Wallet.fromEntropy(entropy) +deriveKeyPair(seed="s...") +``` + +**After** +``` +Wallet.fromSeed(seed='s...',algorithm: 'ecdsa-secp256k1') +Wallet.fromEntropy(entropy, opts={algorithm: 'ecdsa-secp256k1'}) +deriveKeypair(seed='s...', opts={ algorithm: 'ecdsa-secp256k1' }) (ripple-keypairs) +``` + +### 9. `AssertionError` → `Error` + +In order to get rid of the `assert` polyfill, we’ve replaced `AssertionError`s with `Error` exceptions. We’ve also updated the error messages to be more descriptive. If you were catching those specific errors, you will have to update your catch statements. + +This impacts most of `ripple-keypairs` functions but only if you already had issues with incompatible values. + +### 10. Pre-bundle browser builds + +If you use the pre bundled version of the library you will need to make the following changes: + +- Change any references to `dist/browerified.js` to `build/xrplf-secret-numbers-latest.js`. +- Access any methods as properties of `xrplf_secret_numbers` instead of using browserify's loader. + +### 11. Transaction` type + +`Transaction` has been updated to include `PseudoTransaction`s. To get the equivalent of the old `Transaction` type which only included transactions users could submit, please use `SubmittableTransaction`. + +This effectively changes the signature of the following methods: + +- `Client.autofill` +- `Client.submit` +- `Client.submitAndWait` +- `Client.prepareTransaction` +- `getSignedTx` +- `isAccountDelete` + +### 12. `authorizeChannel` was moved + +We’ve moved `authorizeChannel` from `wallet/signer` to `wallet/authorizeChannel` to solve a circular dependency issue. You may have to update your import path as a result. + +### 13. We’ve removed the deprecated `BroadcastClient` + +This feature was never fully implemented, and was marked as deprecated for several years. With 3.0 we’ve fully removed any code relating to it. + +# Wrap up + +Thanks for taking the time to read & migrate to xrpl.js 3.0. Hopefully this helps speed up browser applications, simplifies setup, and provides a better development experience. + +If you run into any problems, please [create an issue](https://github.com/XRPLF/xrpl.js/issues) on our GitHub repo. diff --git a/README.md b/README.md index 794f863ca1..602fad07ad 100644 --- a/README.md +++ b/README.md @@ -19,13 +19,13 @@ See the full reference documentation for all classes, methods, and utilities. 4. Subscribing to changes in the ledger ([Ex. ledger, transactions, & more...](https://xrpl.org/subscribe.html)) 5. Parsing ledger data into more convenient formats ([`xrpToDrops`](https://js.xrpl.org/functions/xrpToDrops.html) and [`rippleTimeToISOTime`](https://js.xrpl.org/functions/rippleTimeToISOTime.html)) -All of which works in Node.js (tested for v14+) & web browsers (tested for Chrome). +All of which works in Node.js (tested for v18+) & web browsers (tested for Chrome). # Quickstart ### Requirements -+ **[Node.js v14](https://nodejs.org/)** is recommended. We also support v16 and v18. Other versions may work but are not frequently tested. ++ **[Node.js v18](https://nodejs.org/)** is recommended. We also support v20. Other versions may work but are not frequently tested. ### Installing xrpl.js @@ -56,7 +56,7 @@ async function main() { }); console.log(response); - client.disconnect(); + await client.disconnect(); } main(); ``` @@ -74,10 +74,11 @@ It goes through: If you're using xrpl.js with React or Deno, you'll need to do a couple extra steps to set it up: -- [Using xrpl.js with `create-react-app`](./UNIQUE_SETUPS.md#using-xrpljs-with-create-react-app) -- [Using xrpl.js with `React Native`](./UNIQUE_SETUPS.md#using-xrpljs-with-react-native) -- [Using xrpl.js with `Vite React`](./UNIQUE_SETUPS.md#using-xrpljs-with-vite-react) -- [Using xrpl.js with `Deno`](./UNIQUE_SETUPS.md#using-xrpljs-with-deno) +- [Using xrpl.js with a CDN](https://github.com/XRPLF/xrpl.js/blob/main/UNIQUE_SETUPS.md#using-xrpljs-from-a-cdn) +- [Using xrpl.js with `create-react-app`](https://github.com/XRPLF/xrpl.js/blob/main/UNIQUE_SETUPS.md#using-xrpljs-with-create-react-app) +- [Using xrpl.js with `React Native`](https://github.com/XRPLF/xrpl.js/blob/main/UNIQUE_SETUPS.md#using-xrpljs-with-react-native) +- [Using xrpl.js with `Vite React`](https://github.com/XRPLF/xrpl.js/blob/main/UNIQUE_SETUPS.md#using-xrpljs-with-vite-react) +- [Using xrpl.js with `Deno`](https://github.com/XRPLF/xrpl.js/blob/main/UNIQUE_SETUPS.md#using-xrpljs-with-deno) ## Documentation diff --git a/UNIQUE_SETUPS.md b/UNIQUE_SETUPS.md index acc971f78b..c64ecd8250 100644 --- a/UNIQUE_SETUPS.md +++ b/UNIQUE_SETUPS.md @@ -1,191 +1,70 @@ # Unique Setup Steps for Xrpl.js -For when you need to do more than just install `xrpl.js` for it to work (especially for React projects in the browser). +Starting in 3.0 xrpl and all the packages in this repo no longer require custom configurations (ex. polyfills) to run. -### Using xrpl.js with `create-react-app` +### Using xrpl.js from a CDN -To use `xrpl.js` with React, you need to install shims for core NodeJS modules. Starting with version 5, Webpack stopped including shims by default, so you must modify your Webpack configuration to add the shims you need. Either you can eject your config and modify it, or you can use a library such as `react-app-rewired`. The example below uses `react-app-rewired`. +You can avoid setting up your build system to handle `xrpl.js` by using a cdn version that is prebuilt for the browser. -1. Install shims (you can use `yarn` as well): +- unpkg `` +- jsdelivr `` - ```shell - npm install --save-dev \ - assert \ - buffer \ - crypto-browserify \ - https-browserify \ - os-browserify \ - process \ - stream-browserify \ - stream-http \ - url - ``` +Ensure that the full path is provided so the browser can find the sourcemaps. + +### Using xrpl.js with `create-react-app` -2. Modify your webpack configuration - - 1. Install `react-app-rewired` - - ```shell - npm install --save-dev react-app-rewired - ``` - - 2. At the project root, add a file named `config-overrides.js` with the following content: - - ```javascript - const webpack = require("webpack"); - - module.exports = function override(config) { - const fallback = config.resolve.fallback || {}; - Object.assign(fallback, { - assert: require.resolve("assert"), - crypto: require.resolve("crypto-browserify"), - http: require.resolve("stream-http"), - https: require.resolve("https-browserify"), - os: require.resolve("os-browserify"), - stream: require.resolve("stream-browserify"), - url: require.resolve("url"), - ws: require.resolve("xrpl/dist/npm/client/WSWrapper"), - }); - config.resolve.fallback = fallback; - config.plugins = (config.plugins || []).concat([ - new webpack.ProvidePlugin({ - process: "process/browser", - Buffer: ["buffer", "Buffer"], - }), - ]); - - // This is deprecated in webpack 5 but alias false does not seem to work - config.module.rules.push({ - test: /node_modules[\\\/]https-proxy-agent[\\\/]/, - use: "null-loader", - }); - return config; - }; - ``` - - 3. Update package.json scripts section with - - ``` - "start": "react-app-rewired start", - "build": "react-app-rewired build", - "test": "react-app-rewired test", - ``` +Starting in 3.0 xrpl and its related packages no longer require custom configurations (ex. polyfills) to run. This online template uses these steps to run xrpl.js with React in the browser: https://codesandbox.io/s/xrpl-intro-pxgdjr?file=/src/App.js ### Using xrpl.js with React Native -If you want to use `xrpl.js` with React Native you will need to install shims for core NodeJS modules. To help with this you can use a module like [rn-nodeify](https://github.com/tradle/rn-nodeify). +If you want to use `xrpl.js` with React Native you will need to install polyfills for core NodeJS modules. 1. Install dependencies (you can use `yarn` as well): ```shell - npm install react-native-crypto - npm install xrpl - # install peer deps - npm install react-native-randombytes - # install latest rn-nodeify - npm install rn-nodeify@latest --dev + npm install xrpl \ + fast-text-encoding \ + react-native-get-random-values ``` -2. After that, run the following command: +2. After that, run the following commands: ```shell - # install node core shims and recursively hack package.json files - # in ./node_modules to add/update the "browser"/"react-native" field with relevant mappings - ./node_modules/.bin/rn-nodeify --hack --install + # compile `react-native-get-random-values` pods see https://www.npmjs.com/package/react-native-get-random-values#installation + npx pod-install ``` + +3. Create `polyfills.js` and add -3. Enable `crypto`: - - `rn-nodeify` will create a `shim.js` file in the project root directory. - Open it and uncomment the line that requires the crypto module: - - ```javascript - // If using the crypto shim, uncomment the following line to ensure - // crypto is loaded first, so it can populate global.crypto - require("crypto"); - ``` +```javascript +// Required for TextEncoder/TextDecoder +import 'fast-text-encoding' +// Required for `crypto.getRandomValues` +import 'react-native-get-random-values' +``` -4. Import `shim` in your project (it must be the first line): +4. Import `polyfills` in index file your project (it must be the first line): ```javascript -import './shim' +import './polyfills' ... ``` ### Using xrpl.js with Vite React -Similar to above, to get xrpl.js to work with Vite you need to set up a couple aliases in the vite.config.ts file. - -1. If it's a fresh project you can use `npm create vite@latest` then choose the React and TypeScript options. - -2. Copy these settings into your `vite.config.ts` file. - -``` -import { defineConfig } from 'vite' -import react from '@vitejs/plugin-react' -import { NodeGlobalsPolyfillPlugin } from "@esbuild-plugins/node-globals-polyfill"; -import polyfillNode from 'rollup-plugin-polyfill-node' - -// https://vitejs.dev/config/ -export default defineConfig({ - plugins: [react()], - define: { - 'process.env': {} - }, - optimizeDeps: { - esbuildOptions: { - - define: { - global: 'globalThis', - }, - plugins: [ - NodeGlobalsPolyfillPlugin({ - process: true, - buffer: true, - }), - ], - }, -}, -build: { - rollupOptions: { - plugins: [ - polyfillNode(), - ] - } -}, -resolve: { - alias: { - events: 'events', - crypto: 'crypto-browserify', - stream: 'stream-browserify', - http: 'stream-http', - https: 'https-browserify', - ws: 'xrpl/dist/npm/client/WSWrapper', - }, -}}) -``` - -3. Install the config dependencies and xrpl (e.g. using this command) - -``` -npm install --save-dev @esbuild-plugins/node-globals-polyfill \ - rollup-plugin-polyfill-node \ - && npm install - events \ - crypto-browserify \ - stream-browserify \ - stream-http \ - https-browserify \ - xrpl -``` +Starting in 3.0 xrpl and all the packages in this repo no longer require custom configurations (ex. polyfills) to run. ### Using xrpl.js with Deno Until official support for [Deno](https://deno.land) is added, you can use the following work-around to use `xrpl.js` with Deno: +> [!NOTE] +> The following is currently broken due to https://github.com/denoland/deno/issues/20516. +> Once that is fixed there could be other issues as well. + ```javascript import xrpl from 'https://dev.jspm.io/npm:xrpl'; diff --git a/docs/assets/highlight.css b/docs/assets/highlight.css index 1210595818..7a0264a1cf 100644 --- a/docs/assets/highlight.css +++ b/docs/assets/highlight.css @@ -13,14 +13,16 @@ --dark-hl-5: #CE9178; --light-hl-6: #AF00DB; --dark-hl-6: #C586C0; - --light-hl-7: #267F99; - --dark-hl-7: #4EC9B0; - --light-hl-8: #008000; - --dark-hl-8: #6A9955; - --light-hl-9: #098658; - --dark-hl-9: #B5CEA8; - --light-hl-10: #CD3131; - --dark-hl-10: #F44747; + --light-hl-7: #098658; + --dark-hl-7: #B5CEA8; + --light-hl-8: #000000FF; + --dark-hl-8: #D4D4D4; + --light-hl-9: #008000; + --dark-hl-9: #6A9955; + --light-hl-10: #267F99; + --dark-hl-10: #4EC9B0; + --light-hl-11: #CD3131; + --dark-hl-11: #F44747; --light-code-background: #FFFFFF; --dark-code-background: #1E1E1E; } @@ -37,6 +39,7 @@ --hl-8: var(--light-hl-8); --hl-9: var(--light-hl-9); --hl-10: var(--light-hl-10); + --hl-11: var(--light-hl-11); --code-background: var(--light-code-background); } } @@ -52,6 +55,7 @@ --hl-8: var(--dark-hl-8); --hl-9: var(--dark-hl-9); --hl-10: var(--dark-hl-10); + --hl-11: var(--dark-hl-11); --code-background: var(--dark-code-background); } } @@ -67,6 +71,7 @@ --hl-8: var(--light-hl-8); --hl-9: var(--light-hl-9); --hl-10: var(--light-hl-10); + --hl-11: var(--light-hl-11); --code-background: var(--light-code-background); } @@ -82,6 +87,7 @@ --hl-8: var(--dark-hl-8); --hl-9: var(--dark-hl-9); --hl-10: var(--dark-hl-10); + --hl-11: var(--dark-hl-11); --code-background: var(--dark-code-background); } @@ -96,4 +102,5 @@ .hl-8 { color: var(--hl-8); } .hl-9 { color: var(--hl-9); } .hl-10 { color: var(--hl-10); } +.hl-11 { color: var(--hl-11); } pre, code { background: var(--code-background); } diff --git a/docs/assets/main.js b/docs/assets/main.js index d55df0323e..3cee05e61b 100644 --- a/docs/assets/main.js +++ b/docs/assets/main.js @@ -1,7 +1,7 @@ "use strict"; -"use strict";(()=>{var Qe=Object.create;var ae=Object.defineProperty;var Pe=Object.getOwnPropertyDescriptor;var Ce=Object.getOwnPropertyNames;var Oe=Object.getPrototypeOf,Re=Object.prototype.hasOwnProperty;var _e=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var Me=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Ce(e))!Re.call(t,i)&&i!==n&&ae(t,i,{get:()=>e[i],enumerable:!(r=Pe(e,i))||r.enumerable});return t};var De=(t,e,n)=>(n=t!=null?Qe(Oe(t)):{},Me(e||!t||!t.__esModule?ae(n,"default",{value:t,enumerable:!0}):n,t));var de=_e((ce,he)=>{(function(){var t=function(e){var n=new t.Builder;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),n.searchPipeline.add(t.stemmer),e.call(n,n),n.build()};t.version="2.3.9";t.utils={},t.utils.warn=function(e){return function(n){e.console&&console.warn&&console.warn(n)}}(this),t.utils.asString=function(e){return e==null?"":e.toString()},t.utils.clone=function(e){if(e==null)return e;for(var n=Object.create(null),r=Object.keys(e),i=0;i0){var h=t.utils.clone(n)||{};h.position=[a,l],h.index=s.length,s.push(new t.Token(r.slice(a,o),h))}a=o+1}}return s},t.tokenizer.separator=/[\s\-]+/;t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions=Object.create(null),t.Pipeline.registerFunction=function(e,n){n in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn(`Function is not registered with pipeline. This may cause problems when serialising the index. -`,e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(r){var i=t.Pipeline.registeredFunctions[r];if(i)n.add(i);else throw new Error("Cannot load unregistered function: "+r)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(n){t.Pipeline.warnIfFunctionNotRegistered(n),this._stack.push(n)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");r=r+1,this._stack.splice(r,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");this._stack.splice(r,0,n)},t.Pipeline.prototype.remove=function(e){var n=this._stack.indexOf(e);n!=-1&&this._stack.splice(n,1)},t.Pipeline.prototype.run=function(e){for(var n=this._stack.length,r=0;r1&&(oe&&(r=s),o!=e);)i=r-n,s=n+Math.floor(i/2),o=this.elements[s*2];if(o==e||o>e)return s*2;if(ou?h+=2:a==u&&(n+=r[l+1]*i[h+1],l+=2,h+=2);return n},t.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},t.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),n=1,r=0;n0){var o=s.str.charAt(0),a;o in s.node.edges?a=s.node.edges[o]:(a=new t.TokenSet,s.node.edges[o]=a),s.str.length==1&&(a.final=!0),i.push({node:a,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(s.editsRemaining!=0){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new t.TokenSet;s.node.edges["*"]=u}if(s.str.length==0&&(u.final=!0),i.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&i.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),s.str.length==1&&(s.node.final=!0),s.str.length>=1){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new t.TokenSet;s.node.edges["*"]=l}s.str.length==1&&(l.final=!0),i.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var h=s.str.charAt(0),m=s.str.charAt(1),v;m in s.node.edges?v=s.node.edges[m]:(v=new t.TokenSet,s.node.edges[m]=v),s.str.length==1&&(v.final=!0),i.push({node:v,editsRemaining:s.editsRemaining-1,str:h+s.str.slice(2)})}}}return r},t.TokenSet.fromString=function(e){for(var n=new t.TokenSet,r=n,i=0,s=e.length;i=e;n--){var r=this.uncheckedNodes[n],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r.char]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}};t.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},t.Index.prototype.search=function(e){return this.query(function(n){var r=new t.QueryParser(e,n);r.parse()})},t.Index.prototype.query=function(e){for(var n=new t.Query(this.fields),r=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),u=0;u1?this._b=1:this._b=e},t.Builder.prototype.k1=function(e){this._k1=e},t.Builder.prototype.add=function(e,n){var r=e[this._ref],i=Object.keys(this._fields);this._documents[r]=n||{},this.documentCount+=1;for(var s=0;s=this.length)return t.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},t.QueryLexer.prototype.width=function(){return this.pos-this.start},t.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},t.QueryLexer.prototype.backup=function(){this.pos-=1},t.QueryLexer.prototype.acceptDigitRun=function(){var e,n;do e=this.next(),n=e.charCodeAt(0);while(n>47&&n<58);e!=t.QueryLexer.EOS&&this.backup()},t.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(t.QueryLexer.TERM)),e.ignore(),e.more())return t.QueryLexer.lexText},t.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.EDIT_DISTANCE),t.QueryLexer.lexText},t.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.BOOST),t.QueryLexer.lexText},t.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(t.QueryLexer.TERM)},t.QueryLexer.termSeparator=t.tokenizer.separator,t.QueryLexer.lexText=function(e){for(;;){var n=e.next();if(n==t.QueryLexer.EOS)return t.QueryLexer.lexEOS;if(n.charCodeAt(0)==92){e.escapeCharacter();continue}if(n==":")return t.QueryLexer.lexField;if(n=="~")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexEditDistance;if(n=="^")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexBoost;if(n=="+"&&e.width()===1||n=="-"&&e.width()===1)return e.emit(t.QueryLexer.PRESENCE),t.QueryLexer.lexText;if(n.match(t.QueryLexer.termSeparator))return t.QueryLexer.lexTerm}},t.QueryParser=function(e,n){this.lexer=new t.QueryLexer(e),this.query=n,this.currentClause={},this.lexemeIdx=0},t.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=t.QueryParser.parseClause;e;)e=e(this);return this.query},t.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},t.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},t.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},t.QueryParser.parseClause=function(e){var n=e.peekLexeme();if(n!=null)switch(n.type){case t.QueryLexer.PRESENCE:return t.QueryParser.parsePresence;case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expected either a field or a term, found "+n.type;throw n.str.length>=1&&(r+=" with value '"+n.str+"'"),new t.QueryParseError(r,n.start,n.end)}},t.QueryParser.parsePresence=function(e){var n=e.consumeLexeme();if(n!=null){switch(n.str){case"-":e.currentClause.presence=t.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=t.Query.presence.REQUIRED;break;default:var r="unrecognised presence operator'"+n.str+"'";throw new t.QueryParseError(r,n.start,n.end)}var i=e.peekLexeme();if(i==null){var r="expecting term or field, found nothing";throw new t.QueryParseError(r,n.start,n.end)}switch(i.type){case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expecting term or field, found '"+i.type+"'";throw new t.QueryParseError(r,i.start,i.end)}}},t.QueryParser.parseField=function(e){var n=e.consumeLexeme();if(n!=null){if(e.query.allFields.indexOf(n.str)==-1){var r=e.query.allFields.map(function(o){return"'"+o+"'"}).join(", "),i="unrecognised field '"+n.str+"', possible fields: "+r;throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.fields=[n.str];var s=e.peekLexeme();if(s==null){var i="expecting term, found nothing";throw new t.QueryParseError(i,n.start,n.end)}switch(s.type){case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var i="expecting term, found '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseTerm=function(e){var n=e.consumeLexeme();if(n!=null){e.currentClause.term=n.str.toLowerCase(),n.str.indexOf("*")!=-1&&(e.currentClause.usePipeline=!1);var r=e.peekLexeme();if(r==null){e.nextClause();return}switch(r.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+r.type+"'";throw new t.QueryParseError(i,r.start,r.end)}}},t.QueryParser.parseEditDistance=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="edit distance must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.editDistance=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseBoost=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="boost must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.boost=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},function(e,n){typeof define=="function"&&define.amd?define(n):typeof ce=="object"?he.exports=n():e.lunr=n()}(this,function(){return t})})()});var le=[];function B(t,e){le.push({selector:e,constructor:t})}var Y=class{constructor(){this.alwaysVisibleMember=null;this.createComponents(document.body),this.ensureFocusedElementVisible(),window.addEventListener("hashchange",()=>this.ensureFocusedElementVisible())}createComponents(e){le.forEach(n=>{e.querySelectorAll(n.selector).forEach(r=>{r.dataset.hasInstance||(new n.constructor({el:r,app:this}),r.dataset.hasInstance=String(!0))})})}filterChanged(){this.ensureFocusedElementVisible()}ensureFocusedElementVisible(){this.alwaysVisibleMember&&(this.alwaysVisibleMember.classList.remove("always-visible"),this.alwaysVisibleMember.firstElementChild.remove(),this.alwaysVisibleMember=null);let e=document.getElementById(location.hash.substring(1));if(!e)return;let n=e.parentElement;for(;n.tagName!=="SECTION";)n=n.parentElement;if(n.offsetParent==null){this.alwaysVisibleMember=n,n.classList.add("always-visible");let r=document.createElement("p");r.classList.add("warning"),r.textContent="This member is normally hidden due to your filter settings.",n.prepend(r)}}};var I=class{constructor(e){this.el=e.el,this.app=e.app}};var J=class{constructor(){this.listeners={}}addEventListener(e,n){e in this.listeners||(this.listeners[e]=[]),this.listeners[e].push(n)}removeEventListener(e,n){if(!(e in this.listeners))return;let r=this.listeners[e];for(let i=0,s=r.length;i{let n=Date.now();return(...r)=>{n+e-Date.now()<0&&(t(...r),n=Date.now())}};var re=class extends J{constructor(){super();this.scrollTop=0;this.lastY=0;this.width=0;this.height=0;this.showToolbar=!0;this.toolbar=document.querySelector(".tsd-page-toolbar"),this.navigation=document.querySelector(".col-menu"),window.addEventListener("scroll",ne(()=>this.onScroll(),10)),window.addEventListener("resize",ne(()=>this.onResize(),10)),this.searchInput=document.querySelector("#tsd-search input"),this.searchInput&&this.searchInput.addEventListener("focus",()=>{this.hideShowToolbar()}),this.onResize(),this.onScroll()}triggerResize(){let n=new CustomEvent("resize",{detail:{width:this.width,height:this.height}});this.dispatchEvent(n)}onResize(){this.width=window.innerWidth||0,this.height=window.innerHeight||0;let n=new CustomEvent("resize",{detail:{width:this.width,height:this.height}});this.dispatchEvent(n)}onScroll(){this.scrollTop=window.scrollY||0;let n=new CustomEvent("scroll",{detail:{scrollTop:this.scrollTop}});this.dispatchEvent(n),this.hideShowToolbar()}hideShowToolbar(){let n=this.showToolbar;this.showToolbar=this.lastY>=this.scrollTop||this.scrollTop<=0||!!this.searchInput&&this.searchInput===document.activeElement,n!==this.showToolbar&&(this.toolbar.classList.toggle("tsd-page-toolbar--hide"),this.navigation?.classList.toggle("col-menu--hide")),this.lastY=this.scrollTop}},R=re;R.instance=new re;var X=class extends I{constructor(n){super(n);this.anchors=[];this.index=-1;R.instance.addEventListener("resize",()=>this.onResize()),R.instance.addEventListener("scroll",r=>this.onScroll(r)),this.createAnchors()}createAnchors(){let n=window.location.href;n.indexOf("#")!=-1&&(n=n.substring(0,n.indexOf("#"))),this.el.querySelectorAll("a").forEach(r=>{let i=r.href;if(i.indexOf("#")==-1||i.substring(0,n.length)!=n)return;let s=i.substring(i.indexOf("#")+1),o=document.querySelector("a.tsd-anchor[name="+s+"]"),a=r.parentNode;!o||!a||this.anchors.push({link:a,anchor:o,position:0})}),this.onResize()}onResize(){let n;for(let i=0,s=this.anchors.length;ii.position-s.position);let r=new CustomEvent("scroll",{detail:{scrollTop:R.instance.scrollTop}});this.onScroll(r)}onScroll(n){let r=n.detail.scrollTop+5,i=this.anchors,s=i.length-1,o=this.index;for(;o>-1&&i[o].position>r;)o-=1;for(;o-1&&this.anchors[this.index].link.classList.remove("focus"),this.index=o,this.index>-1&&this.anchors[this.index].link.classList.add("focus"))}};var ue=(t,e=100)=>{let n;return()=>{clearTimeout(n),n=setTimeout(()=>t(),e)}};var me=De(de());function ve(){let t=document.getElementById("tsd-search");if(!t)return;let e=document.getElementById("search-script");t.classList.add("loading"),e&&(e.addEventListener("error",()=>{t.classList.remove("loading"),t.classList.add("failure")}),e.addEventListener("load",()=>{t.classList.remove("loading"),t.classList.add("ready")}),window.searchData&&t.classList.remove("loading"));let n=document.querySelector("#tsd-search input"),r=document.querySelector("#tsd-search .results");if(!n||!r)throw new Error("The input field or the result list wrapper was not found");let i=!1;r.addEventListener("mousedown",()=>i=!0),r.addEventListener("mouseup",()=>{i=!1,t.classList.remove("has-focus")}),n.addEventListener("focus",()=>t.classList.add("has-focus")),n.addEventListener("blur",()=>{i||(i=!1,t.classList.remove("has-focus"))});let s={base:t.dataset.base+"/"};Fe(t,r,n,s)}function Fe(t,e,n,r){n.addEventListener("input",ue(()=>{He(t,e,n,r)},200));let i=!1;n.addEventListener("keydown",s=>{i=!0,s.key=="Enter"?Ve(e,n):s.key=="Escape"?n.blur():s.key=="ArrowUp"?pe(e,-1):s.key==="ArrowDown"?pe(e,1):i=!1}),n.addEventListener("keypress",s=>{i&&s.preventDefault()}),document.body.addEventListener("keydown",s=>{s.altKey||s.ctrlKey||s.metaKey||!n.matches(":focus")&&s.key==="/"&&(n.focus(),s.preventDefault())})}function Ae(t,e){t.index||window.searchData&&(e.classList.remove("loading"),e.classList.add("ready"),t.data=window.searchData,t.index=me.Index.load(window.searchData.index))}function He(t,e,n,r){if(Ae(r,t),!r.index||!r.data)return;e.textContent="";let i=n.value.trim(),s=i?r.index.search(`*${i}*`):[];for(let o=0;oa.score-o.score);for(let o=0,a=Math.min(10,s.length);o${fe(u.parent,i)}.${l}`);let h=document.createElement("li");h.classList.value=u.classes??"";let m=document.createElement("a");m.href=r.base+u.url,m.innerHTML=l,h.append(m),e.appendChild(h)}}function pe(t,e){let n=t.querySelector(".current");if(!n)n=t.querySelector(e==1?"li:first-child":"li:last-child"),n&&n.classList.add("current");else{let r=n;if(e===1)do r=r.nextElementSibling??void 0;while(r instanceof HTMLElement&&r.offsetParent==null);else do r=r.previousElementSibling??void 0;while(r instanceof HTMLElement&&r.offsetParent==null);r&&(n.classList.remove("current"),r.classList.add("current"))}}function Ve(t,e){let n=t.querySelector(".current");if(n||(n=t.querySelector("li:first-child")),n){let r=n.querySelector("a");r&&(window.location.href=r.href),e.blur()}}function fe(t,e){if(e==="")return t;let n=t.toLocaleLowerCase(),r=e.toLocaleLowerCase(),i=[],s=0,o=n.indexOf(r);for(;o!=-1;)i.push(ie(t.substring(s,o)),`${ie(t.substring(o,o+r.length))}`),s=o+r.length,o=n.indexOf(r,s);return i.push(ie(t.substring(s))),i.join("")}var Ne={"&":"&","<":"<",">":">","'":"'",'"':"""};function ie(t){return t.replace(/[&<>"'"]/g,e=>Ne[e])}var F="mousedown",ye="mousemove",j="mouseup",Z={x:0,y:0},ge=!1,se=!1,Be=!1,A=!1,xe=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);document.documentElement.classList.add(xe?"is-mobile":"not-mobile");xe&&"ontouchstart"in document.documentElement&&(Be=!0,F="touchstart",ye="touchmove",j="touchend");document.addEventListener(F,t=>{se=!0,A=!1;let e=F=="touchstart"?t.targetTouches[0]:t;Z.y=e.pageY||0,Z.x=e.pageX||0});document.addEventListener(ye,t=>{if(se&&!A){let e=F=="touchstart"?t.targetTouches[0]:t,n=Z.x-(e.pageX||0),r=Z.y-(e.pageY||0);A=Math.sqrt(n*n+r*r)>10}});document.addEventListener(j,()=>{se=!1});document.addEventListener("click",t=>{ge&&(t.preventDefault(),t.stopImmediatePropagation(),ge=!1)});var K=class extends I{constructor(n){super(n);this.className=this.el.dataset.toggle||"",this.el.addEventListener(j,r=>this.onPointerUp(r)),this.el.addEventListener("click",r=>r.preventDefault()),document.addEventListener(F,r=>this.onDocumentPointerDown(r)),document.addEventListener(j,r=>this.onDocumentPointerUp(r))}setActive(n){if(this.active==n)return;this.active=n,document.documentElement.classList.toggle("has-"+this.className,n),this.el.classList.toggle("active",n);let r=(this.active?"to-has-":"from-has-")+this.className;document.documentElement.classList.add(r),setTimeout(()=>document.documentElement.classList.remove(r),500)}onPointerUp(n){A||(this.setActive(!0),n.preventDefault())}onDocumentPointerDown(n){if(this.active){if(n.target.closest(".col-menu, .tsd-filter-group"))return;this.setActive(!1)}}onDocumentPointerUp(n){if(!A&&this.active&&n.target.closest(".col-menu")){let r=n.target.closest("a");if(r){let i=window.location.href;i.indexOf("#")!=-1&&(i=i.substring(0,i.indexOf("#"))),r.href.substring(0,i.length)==i&&setTimeout(()=>this.setActive(!1),250)}}}};var oe;try{oe=localStorage}catch{oe={getItem(){return null},setItem(){}}}var Q=oe;var Le=document.head.appendChild(document.createElement("style"));Le.dataset.for="filters";var ee=class extends I{constructor(n){super(n);this.key=`filter-${this.el.name}`,this.value=this.el.checked,this.el.addEventListener("change",()=>{this.setLocalStorage(this.el.checked)}),this.setLocalStorage(this.fromLocalStorage()),Le.innerHTML+=`html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; } -`}fromLocalStorage(){let n=Q.getItem(this.key);return n?n==="true":this.el.checked}setLocalStorage(n){Q.setItem(this.key,n.toString()),this.value=n,this.handleValueChange()}handleValueChange(){this.el.checked=this.value,document.documentElement.classList.toggle(this.key,this.value),this.app.filterChanged(),document.querySelectorAll(".tsd-index-section").forEach(n=>{n.style.display="block";let r=Array.from(n.querySelectorAll(".tsd-index-link")).every(i=>i.offsetParent==null);n.style.display=r?"none":"block"})}};var te=class extends I{constructor(n){super(n);this.calculateHeights(),this.summary=this.el.querySelector(".tsd-accordion-summary"),this.icon=this.summary.querySelector("svg"),this.key=`tsd-accordion-${this.summary.textContent.replace(/\s+/g,"-").toLowerCase()}`,this.setLocalStorage(this.fromLocalStorage(),!0),this.summary.addEventListener("click",r=>this.toggleVisibility(r)),this.icon.style.transform=this.getIconRotation()}getIconRotation(n=this.el.open){return`rotate(${n?0:-90}deg)`}calculateHeights(){let n=this.el.open,{position:r,left:i}=this.el.style;this.el.style.position="fixed",this.el.style.left="-9999px",this.el.open=!0,this.expandedHeight=this.el.offsetHeight+"px",this.el.open=!1,this.collapsedHeight=this.el.offsetHeight+"px",this.el.open=n,this.el.style.height=n?this.expandedHeight:this.collapsedHeight,this.el.style.position=r,this.el.style.left=i}toggleVisibility(n){n.preventDefault(),this.el.style.overflow="hidden",this.el.open?this.collapse():this.expand()}expand(n=!0){this.el.open=!0,this.animate(this.collapsedHeight,this.expandedHeight,{opening:!0,duration:n?300:0})}collapse(n=!0){this.animate(this.expandedHeight,this.collapsedHeight,{opening:!1,duration:n?300:0})}animate(n,r,{opening:i,duration:s=300}){if(this.animation)return;let o={duration:s,easing:"ease"};this.animation=this.el.animate({height:[n,r]},o),this.icon.animate({transform:[this.icon.style.transform||this.getIconRotation(!i),this.getIconRotation(i)]},o).addEventListener("finish",()=>{this.icon.style.transform=this.getIconRotation(i)}),this.animation.addEventListener("finish",()=>this.animationEnd(i))}animationEnd(n){this.el.open=n,this.animation=void 0,this.el.style.height="auto",this.el.style.overflow="visible",this.setLocalStorage(n)}fromLocalStorage(){let n=Q.getItem(this.key);return n?n==="true":this.el.open}setLocalStorage(n,r=!1){this.fromLocalStorage()===n&&!r||(Q.setItem(this.key,n.toString()),this.el.open=n,this.handleValueChange(r))}handleValueChange(n=!1){this.fromLocalStorage()===this.el.open&&!n||(this.fromLocalStorage()?this.expand(!1):this.collapse(!1))}};function be(t){let e=Q.getItem("tsd-theme")||"os";t.value=e,Ee(e),t.addEventListener("change",()=>{Q.setItem("tsd-theme",t.value),Ee(t.value)})}function Ee(t){document.documentElement.dataset.theme=t}ve();B(X,".menu-highlight");B(K,"a[data-toggle]");B(te,".tsd-index-accordion");B(ee,".tsd-filter-item input[type=checkbox]");var we=document.getElementById("theme");we&&be(we);var je=new Y;Object.defineProperty(window,"app",{value:je});})(); +"use strict";(()=>{var Se=Object.create;var re=Object.defineProperty;var we=Object.getOwnPropertyDescriptor;var Te=Object.getOwnPropertyNames;var ke=Object.getPrototypeOf,Qe=Object.prototype.hasOwnProperty;var Pe=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var Ie=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Te(e))!Qe.call(t,i)&&i!==r&&re(t,i,{get:()=>e[i],enumerable:!(n=we(e,i))||n.enumerable});return t};var Ce=(t,e,r)=>(r=t!=null?Se(ke(t)):{},Ie(e||!t||!t.__esModule?re(r,"default",{value:t,enumerable:!0}):r,t));var ae=Pe((se,oe)=>{(function(){var t=function(e){var r=new t.Builder;return r.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),r.searchPipeline.add(t.stemmer),e.call(r,r),r.build()};t.version="2.3.9";t.utils={},t.utils.warn=function(e){return function(r){e.console&&console.warn&&console.warn(r)}}(this),t.utils.asString=function(e){return e==null?"":e.toString()},t.utils.clone=function(e){if(e==null)return e;for(var r=Object.create(null),n=Object.keys(e),i=0;i0){var d=t.utils.clone(r)||{};d.position=[a,u],d.index=s.length,s.push(new t.Token(n.slice(a,o),d))}a=o+1}}return s},t.tokenizer.separator=/[\s\-]+/;t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions=Object.create(null),t.Pipeline.registerFunction=function(e,r){r in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+r),e.label=r,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var r=e.label&&e.label in this.registeredFunctions;r||t.utils.warn(`Function is not registered with pipeline. This may cause problems when serialising the index. +`,e)},t.Pipeline.load=function(e){var r=new t.Pipeline;return e.forEach(function(n){var i=t.Pipeline.registeredFunctions[n];if(i)r.add(i);else throw new Error("Cannot load unregistered function: "+n)}),r},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(r){t.Pipeline.warnIfFunctionNotRegistered(r),this._stack.push(r)},this)},t.Pipeline.prototype.after=function(e,r){t.Pipeline.warnIfFunctionNotRegistered(r);var n=this._stack.indexOf(e);if(n==-1)throw new Error("Cannot find existingFn");n=n+1,this._stack.splice(n,0,r)},t.Pipeline.prototype.before=function(e,r){t.Pipeline.warnIfFunctionNotRegistered(r);var n=this._stack.indexOf(e);if(n==-1)throw new Error("Cannot find existingFn");this._stack.splice(n,0,r)},t.Pipeline.prototype.remove=function(e){var r=this._stack.indexOf(e);r!=-1&&this._stack.splice(r,1)},t.Pipeline.prototype.run=function(e){for(var r=this._stack.length,n=0;n1&&(oe&&(n=s),o!=e);)i=n-r,s=r+Math.floor(i/2),o=this.elements[s*2];if(o==e||o>e)return s*2;if(ol?d+=2:a==l&&(r+=n[u+1]*i[d+1],u+=2,d+=2);return r},t.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},t.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),r=1,n=0;r0){var o=s.str.charAt(0),a;o in s.node.edges?a=s.node.edges[o]:(a=new t.TokenSet,s.node.edges[o]=a),s.str.length==1&&(a.final=!0),i.push({node:a,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(s.editsRemaining!=0){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new t.TokenSet;s.node.edges["*"]=l}if(s.str.length==0&&(l.final=!0),i.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&i.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),s.str.length==1&&(s.node.final=!0),s.str.length>=1){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new t.TokenSet;s.node.edges["*"]=u}s.str.length==1&&(u.final=!0),i.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var d=s.str.charAt(0),m=s.str.charAt(1),y;m in s.node.edges?y=s.node.edges[m]:(y=new t.TokenSet,s.node.edges[m]=y),s.str.length==1&&(y.final=!0),i.push({node:y,editsRemaining:s.editsRemaining-1,str:d+s.str.slice(2)})}}}return n},t.TokenSet.fromString=function(e){for(var r=new t.TokenSet,n=r,i=0,s=e.length;i=e;r--){var n=this.uncheckedNodes[r],i=n.child.toString();i in this.minimizedNodes?n.parent.edges[n.char]=this.minimizedNodes[i]:(n.child._str=i,this.minimizedNodes[i]=n.child),this.uncheckedNodes.pop()}};t.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},t.Index.prototype.search=function(e){return this.query(function(r){var n=new t.QueryParser(e,r);n.parse()})},t.Index.prototype.query=function(e){for(var r=new t.Query(this.fields),n=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),l=0;l1?this._b=1:this._b=e},t.Builder.prototype.k1=function(e){this._k1=e},t.Builder.prototype.add=function(e,r){var n=e[this._ref],i=Object.keys(this._fields);this._documents[n]=r||{},this.documentCount+=1;for(var s=0;s=this.length)return t.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},t.QueryLexer.prototype.width=function(){return this.pos-this.start},t.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},t.QueryLexer.prototype.backup=function(){this.pos-=1},t.QueryLexer.prototype.acceptDigitRun=function(){var e,r;do e=this.next(),r=e.charCodeAt(0);while(r>47&&r<58);e!=t.QueryLexer.EOS&&this.backup()},t.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(t.QueryLexer.TERM)),e.ignore(),e.more())return t.QueryLexer.lexText},t.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.EDIT_DISTANCE),t.QueryLexer.lexText},t.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.BOOST),t.QueryLexer.lexText},t.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(t.QueryLexer.TERM)},t.QueryLexer.termSeparator=t.tokenizer.separator,t.QueryLexer.lexText=function(e){for(;;){var r=e.next();if(r==t.QueryLexer.EOS)return t.QueryLexer.lexEOS;if(r.charCodeAt(0)==92){e.escapeCharacter();continue}if(r==":")return t.QueryLexer.lexField;if(r=="~")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexEditDistance;if(r=="^")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexBoost;if(r=="+"&&e.width()===1||r=="-"&&e.width()===1)return e.emit(t.QueryLexer.PRESENCE),t.QueryLexer.lexText;if(r.match(t.QueryLexer.termSeparator))return t.QueryLexer.lexTerm}},t.QueryParser=function(e,r){this.lexer=new t.QueryLexer(e),this.query=r,this.currentClause={},this.lexemeIdx=0},t.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=t.QueryParser.parseClause;e;)e=e(this);return this.query},t.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},t.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},t.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},t.QueryParser.parseClause=function(e){var r=e.peekLexeme();if(r!=null)switch(r.type){case t.QueryLexer.PRESENCE:return t.QueryParser.parsePresence;case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var n="expected either a field or a term, found "+r.type;throw r.str.length>=1&&(n+=" with value '"+r.str+"'"),new t.QueryParseError(n,r.start,r.end)}},t.QueryParser.parsePresence=function(e){var r=e.consumeLexeme();if(r!=null){switch(r.str){case"-":e.currentClause.presence=t.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=t.Query.presence.REQUIRED;break;default:var n="unrecognised presence operator'"+r.str+"'";throw new t.QueryParseError(n,r.start,r.end)}var i=e.peekLexeme();if(i==null){var n="expecting term or field, found nothing";throw new t.QueryParseError(n,r.start,r.end)}switch(i.type){case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var n="expecting term or field, found '"+i.type+"'";throw new t.QueryParseError(n,i.start,i.end)}}},t.QueryParser.parseField=function(e){var r=e.consumeLexeme();if(r!=null){if(e.query.allFields.indexOf(r.str)==-1){var n=e.query.allFields.map(function(o){return"'"+o+"'"}).join(", "),i="unrecognised field '"+r.str+"', possible fields: "+n;throw new t.QueryParseError(i,r.start,r.end)}e.currentClause.fields=[r.str];var s=e.peekLexeme();if(s==null){var i="expecting term, found nothing";throw new t.QueryParseError(i,r.start,r.end)}switch(s.type){case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var i="expecting term, found '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseTerm=function(e){var r=e.consumeLexeme();if(r!=null){e.currentClause.term=r.str.toLowerCase(),r.str.indexOf("*")!=-1&&(e.currentClause.usePipeline=!1);var n=e.peekLexeme();if(n==null){e.nextClause();return}switch(n.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+n.type+"'";throw new t.QueryParseError(i,n.start,n.end)}}},t.QueryParser.parseEditDistance=function(e){var r=e.consumeLexeme();if(r!=null){var n=parseInt(r.str,10);if(isNaN(n)){var i="edit distance must be numeric";throw new t.QueryParseError(i,r.start,r.end)}e.currentClause.editDistance=n;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseBoost=function(e){var r=e.consumeLexeme();if(r!=null){var n=parseInt(r.str,10);if(isNaN(n)){var i="boost must be numeric";throw new t.QueryParseError(i,r.start,r.end)}e.currentClause.boost=n;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},function(e,r){typeof define=="function"&&define.amd?define(r):typeof se=="object"?oe.exports=r():e.lunr=r()}(this,function(){return t})})()});var ne=[];function G(t,e){ne.push({selector:e,constructor:t})}var U=class{constructor(){this.alwaysVisibleMember=null;this.createComponents(document.body),this.ensureActivePageVisible(),this.ensureFocusedElementVisible(),this.listenForCodeCopies(),window.addEventListener("hashchange",()=>this.ensureFocusedElementVisible())}createComponents(e){ne.forEach(r=>{e.querySelectorAll(r.selector).forEach(n=>{n.dataset.hasInstance||(new r.constructor({el:n,app:this}),n.dataset.hasInstance=String(!0))})})}filterChanged(){this.ensureFocusedElementVisible()}ensureActivePageVisible(){let e=document.querySelector(".tsd-navigation .current"),r=e?.parentElement;for(;r&&!r.classList.contains(".tsd-navigation");)r instanceof HTMLDetailsElement&&(r.open=!0),r=r.parentElement;if(e){let n=e.getBoundingClientRect().top-document.documentElement.clientHeight/4;document.querySelector(".site-menu").scrollTop=n}}ensureFocusedElementVisible(){if(this.alwaysVisibleMember&&(this.alwaysVisibleMember.classList.remove("always-visible"),this.alwaysVisibleMember.firstElementChild.remove(),this.alwaysVisibleMember=null),!location.hash)return;let e=document.getElementById(location.hash.substring(1));if(!e)return;let r=e.parentElement;for(;r&&r.tagName!=="SECTION";)r=r.parentElement;if(r&&r.offsetParent==null){this.alwaysVisibleMember=r,r.classList.add("always-visible");let n=document.createElement("p");n.classList.add("warning"),n.textContent="This member is normally hidden due to your filter settings.",r.prepend(n)}}listenForCodeCopies(){document.querySelectorAll("pre > button").forEach(e=>{let r;e.addEventListener("click",()=>{e.previousElementSibling instanceof HTMLElement&&navigator.clipboard.writeText(e.previousElementSibling.innerText.trim()),e.textContent="Copied!",e.classList.add("visible"),clearTimeout(r),r=setTimeout(()=>{e.classList.remove("visible"),r=setTimeout(()=>{e.textContent="Copy"},100)},1e3)})})}};var ie=(t,e=100)=>{let r;return()=>{clearTimeout(r),r=setTimeout(()=>t(),e)}};var ce=Ce(ae());function de(){let t=document.getElementById("tsd-search");if(!t)return;let e=document.getElementById("tsd-search-script");t.classList.add("loading"),e&&(e.addEventListener("error",()=>{t.classList.remove("loading"),t.classList.add("failure")}),e.addEventListener("load",()=>{t.classList.remove("loading"),t.classList.add("ready")}),window.searchData&&t.classList.remove("loading"));let r=document.querySelector("#tsd-search input"),n=document.querySelector("#tsd-search .results");if(!r||!n)throw new Error("The input field or the result list wrapper was not found");let i=!1;n.addEventListener("mousedown",()=>i=!0),n.addEventListener("mouseup",()=>{i=!1,t.classList.remove("has-focus")}),r.addEventListener("focus",()=>t.classList.add("has-focus")),r.addEventListener("blur",()=>{i||(i=!1,t.classList.remove("has-focus"))});let s={base:t.dataset.base+"/"};Oe(t,n,r,s)}function Oe(t,e,r,n){r.addEventListener("input",ie(()=>{Re(t,e,r,n)},200));let i=!1;r.addEventListener("keydown",s=>{i=!0,s.key=="Enter"?Fe(e,r):s.key=="Escape"?r.blur():s.key=="ArrowUp"?ue(e,-1):s.key==="ArrowDown"?ue(e,1):i=!1}),r.addEventListener("keypress",s=>{i&&s.preventDefault()}),document.body.addEventListener("keydown",s=>{s.altKey||s.ctrlKey||s.metaKey||!r.matches(":focus")&&s.key==="/"&&(r.focus(),s.preventDefault())})}function _e(t,e){t.index||window.searchData&&(e.classList.remove("loading"),e.classList.add("ready"),t.data=window.searchData,t.index=ce.Index.load(window.searchData.index))}function Re(t,e,r,n){if(_e(n,t),!n.index||!n.data)return;e.textContent="";let i=r.value.trim(),s=i?n.index.search(`*${i}*`):[];for(let o=0;oa.score-o.score);for(let o=0,a=Math.min(10,s.length);o${le(l.parent,i)}.${u}`);let d=document.createElement("li");d.classList.value=l.classes??"";let m=document.createElement("a");m.href=n.base+l.url,m.innerHTML=u,d.append(m),e.appendChild(d)}}function ue(t,e){let r=t.querySelector(".current");if(!r)r=t.querySelector(e==1?"li:first-child":"li:last-child"),r&&r.classList.add("current");else{let n=r;if(e===1)do n=n.nextElementSibling??void 0;while(n instanceof HTMLElement&&n.offsetParent==null);else do n=n.previousElementSibling??void 0;while(n instanceof HTMLElement&&n.offsetParent==null);n&&(r.classList.remove("current"),n.classList.add("current"))}}function Fe(t,e){let r=t.querySelector(".current");if(r||(r=t.querySelector("li:first-child")),r){let n=r.querySelector("a");n&&(window.location.href=n.href),e.blur()}}function le(t,e){if(e==="")return t;let r=t.toLocaleLowerCase(),n=e.toLocaleLowerCase(),i=[],s=0,o=r.indexOf(n);for(;o!=-1;)i.push(K(t.substring(s,o)),`${K(t.substring(o,o+n.length))}`),s=o+n.length,o=r.indexOf(n,s);return i.push(K(t.substring(s))),i.join("")}var Me={"&":"&","<":"<",">":">","'":"'",'"':"""};function K(t){return t.replace(/[&<>"'"]/g,e=>Me[e])}var P=class{constructor(e){this.el=e.el,this.app=e.app}};var M="mousedown",fe="mousemove",N="mouseup",J={x:0,y:0},he=!1,ee=!1,De=!1,D=!1,pe=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);document.documentElement.classList.add(pe?"is-mobile":"not-mobile");pe&&"ontouchstart"in document.documentElement&&(De=!0,M="touchstart",fe="touchmove",N="touchend");document.addEventListener(M,t=>{ee=!0,D=!1;let e=M=="touchstart"?t.targetTouches[0]:t;J.y=e.pageY||0,J.x=e.pageX||0});document.addEventListener(fe,t=>{if(ee&&!D){let e=M=="touchstart"?t.targetTouches[0]:t,r=J.x-(e.pageX||0),n=J.y-(e.pageY||0);D=Math.sqrt(r*r+n*n)>10}});document.addEventListener(N,()=>{ee=!1});document.addEventListener("click",t=>{he&&(t.preventDefault(),t.stopImmediatePropagation(),he=!1)});var X=class extends P{constructor(r){super(r);this.className=this.el.dataset.toggle||"",this.el.addEventListener(N,n=>this.onPointerUp(n)),this.el.addEventListener("click",n=>n.preventDefault()),document.addEventListener(M,n=>this.onDocumentPointerDown(n)),document.addEventListener(N,n=>this.onDocumentPointerUp(n))}setActive(r){if(this.active==r)return;this.active=r,document.documentElement.classList.toggle("has-"+this.className,r),this.el.classList.toggle("active",r);let n=(this.active?"to-has-":"from-has-")+this.className;document.documentElement.classList.add(n),setTimeout(()=>document.documentElement.classList.remove(n),500)}onPointerUp(r){D||(this.setActive(!0),r.preventDefault())}onDocumentPointerDown(r){if(this.active){if(r.target.closest(".col-sidebar, .tsd-filter-group"))return;this.setActive(!1)}}onDocumentPointerUp(r){if(!D&&this.active&&r.target.closest(".col-sidebar")){let n=r.target.closest("a");if(n){let i=window.location.href;i.indexOf("#")!=-1&&(i=i.substring(0,i.indexOf("#"))),n.href.substring(0,i.length)==i&&setTimeout(()=>this.setActive(!1),250)}}}};var te;try{te=localStorage}catch{te={getItem(){return null},setItem(){}}}var Q=te;var me=document.head.appendChild(document.createElement("style"));me.dataset.for="filters";var Y=class extends P{constructor(r){super(r);this.key=`filter-${this.el.name}`,this.value=this.el.checked,this.el.addEventListener("change",()=>{this.setLocalStorage(this.el.checked)}),this.setLocalStorage(this.fromLocalStorage()),me.innerHTML+=`html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; } +`}fromLocalStorage(){let r=Q.getItem(this.key);return r?r==="true":this.el.checked}setLocalStorage(r){Q.setItem(this.key,r.toString()),this.value=r,this.handleValueChange()}handleValueChange(){this.el.checked=this.value,document.documentElement.classList.toggle(this.key,this.value),this.app.filterChanged(),document.querySelectorAll(".tsd-index-section").forEach(r=>{r.style.display="block";let n=Array.from(r.querySelectorAll(".tsd-index-link")).every(i=>i.offsetParent==null);r.style.display=n?"none":"block"})}};var Z=class extends P{constructor(r){super(r);this.summary=this.el.querySelector(".tsd-accordion-summary"),this.icon=this.summary.querySelector("svg"),this.key=`tsd-accordion-${this.summary.dataset.key??this.summary.textContent.trim().replace(/\s+/g,"-").toLowerCase()}`;let n=Q.getItem(this.key);this.el.open=n?n==="true":this.el.open,this.el.addEventListener("toggle",()=>this.update()),this.update()}update(){this.icon.style.transform=`rotate(${this.el.open?0:-90}deg)`,Q.setItem(this.key,this.el.open.toString())}};function ve(t){let e=Q.getItem("tsd-theme")||"os";t.value=e,ye(e),t.addEventListener("change",()=>{Q.setItem("tsd-theme",t.value),ye(t.value)})}function ye(t){document.documentElement.dataset.theme=t}de();G(X,"a[data-toggle]");G(Z,".tsd-index-accordion");G(Y,".tsd-filter-item input[type=checkbox]");var ge=document.getElementById("tsd-theme");ge&&ve(ge);var Ae=new U;Object.defineProperty(window,"app",{value:Ae});document.querySelectorAll("summary a").forEach(t=>{t.addEventListener("click",()=>{location.assign(t.href)})});})(); /*! Bundled license information: lunr/lunr.js: diff --git a/docs/assets/search.js b/docs/assets/search.js index 17f5350573..c7bc0a735c 100644 --- a/docs/assets/search.js +++ b/docs/assets/search.js @@ -1 +1 @@ -window.searchData = JSON.parse("{\"kinds\":{\"4\":\"Namespace\",\"8\":\"Enumeration\",\"16\":\"Enumeration Member\",\"32\":\"Variable\",\"64\":\"Function\",\"128\":\"Class\",\"256\":\"Interface\",\"512\":\"Constructor\",\"1024\":\"Property\",\"2048\":\"Method\",\"65536\":\"Type literal\",\"262144\":\"Accessor\",\"4194304\":\"Type alias\"},\"rows\":[{\"kind\":128,\"name\":\"BroadcastClient\",\"url\":\"classes/BroadcastClient.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/BroadcastClient.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"BroadcastClient\"},{\"kind\":1024,\"name\":\"clients\",\"url\":\"classes/BroadcastClient.html#clients\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"BroadcastClient\"},{\"kind\":2048,\"name\":\"getMethodNames\",\"url\":\"classes/BroadcastClient.html#getMethodNames\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"BroadcastClient\"},{\"kind\":1024,\"name\":\"connection\",\"url\":\"classes/BroadcastClient.html#connection\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"BroadcastClient\"},{\"kind\":1024,\"name\":\"feeCushion\",\"url\":\"classes/BroadcastClient.html#feeCushion\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"BroadcastClient\"},{\"kind\":1024,\"name\":\"maxFeeXRP\",\"url\":\"classes/BroadcastClient.html#maxFeeXRP\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"BroadcastClient\"},{\"kind\":262144,\"name\":\"url\",\"url\":\"classes/BroadcastClient.html#url\",\"classes\":\"tsd-kind-accessor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"BroadcastClient\"},{\"kind\":2048,\"name\":\"request\",\"url\":\"classes/BroadcastClient.html#request\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"BroadcastClient\"},{\"kind\":2048,\"name\":\"requestNextPage\",\"url\":\"classes/BroadcastClient.html#requestNextPage\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"BroadcastClient\"},{\"kind\":2048,\"name\":\"on\",\"url\":\"classes/BroadcastClient.html#on\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"BroadcastClient\"},{\"kind\":2048,\"name\":\"requestAll\",\"url\":\"classes/BroadcastClient.html#requestAll\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"BroadcastClient\"},{\"kind\":2048,\"name\":\"connect\",\"url\":\"classes/BroadcastClient.html#connect\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"BroadcastClient\"},{\"kind\":2048,\"name\":\"disconnect\",\"url\":\"classes/BroadcastClient.html#disconnect\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"BroadcastClient\"},{\"kind\":2048,\"name\":\"isConnected\",\"url\":\"classes/BroadcastClient.html#isConnected\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"BroadcastClient\"},{\"kind\":1024,\"name\":\"autofill\",\"url\":\"classes/BroadcastClient.html#autofill\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"BroadcastClient\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/BroadcastClient.html#autofill.__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"BroadcastClient.autofill\"},{\"kind\":1024,\"name\":\"submit\",\"url\":\"classes/BroadcastClient.html#submit\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"BroadcastClient\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/BroadcastClient.html#submit.__type-14\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"BroadcastClient.submit\"},{\"kind\":1024,\"name\":\"submitAndWait\",\"url\":\"classes/BroadcastClient.html#submitAndWait\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"BroadcastClient\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/BroadcastClient.html#submitAndWait.__type-16\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"BroadcastClient.submitAndWait\"},{\"kind\":1024,\"name\":\"prepareTransaction\",\"url\":\"classes/BroadcastClient.html#prepareTransaction\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"BroadcastClient\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/BroadcastClient.html#prepareTransaction.__type-12\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"BroadcastClient.prepareTransaction\"},{\"kind\":1024,\"name\":\"getXrpBalance\",\"url\":\"classes/BroadcastClient.html#getXrpBalance\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"BroadcastClient\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/BroadcastClient.html#getXrpBalance.__type-10\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"BroadcastClient.getXrpBalance\"},{\"kind\":1024,\"name\":\"getBalances\",\"url\":\"classes/BroadcastClient.html#getBalances\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"BroadcastClient\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/BroadcastClient.html#getBalances.__type-4\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"BroadcastClient.getBalances\"},{\"kind\":1024,\"name\":\"getOrderbook\",\"url\":\"classes/BroadcastClient.html#getOrderbook\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"BroadcastClient\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/BroadcastClient.html#getOrderbook.__type-8\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"BroadcastClient.getOrderbook\"},{\"kind\":1024,\"name\":\"getLedgerIndex\",\"url\":\"classes/BroadcastClient.html#getLedgerIndex\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"BroadcastClient\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/BroadcastClient.html#getLedgerIndex.__type-6\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"BroadcastClient.getLedgerIndex\"},{\"kind\":1024,\"name\":\"fundWallet\",\"url\":\"classes/BroadcastClient.html#fundWallet\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"BroadcastClient\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/BroadcastClient.html#fundWallet.__type-2\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"BroadcastClient.fundWallet\"},{\"kind\":128,\"name\":\"Client\",\"url\":\"classes/Client.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/Client.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"Client\"},{\"kind\":1024,\"name\":\"connection\",\"url\":\"classes/Client.html#connection\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"Client\"},{\"kind\":1024,\"name\":\"feeCushion\",\"url\":\"classes/Client.html#feeCushion\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"Client\"},{\"kind\":1024,\"name\":\"maxFeeXRP\",\"url\":\"classes/Client.html#maxFeeXRP\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"Client\"},{\"kind\":262144,\"name\":\"url\",\"url\":\"classes/Client.html#url\",\"classes\":\"tsd-kind-accessor tsd-parent-kind-class\",\"parent\":\"Client\"},{\"kind\":2048,\"name\":\"request\",\"url\":\"classes/Client.html#request\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"Client\"},{\"kind\":2048,\"name\":\"requestNextPage\",\"url\":\"classes/Client.html#requestNextPage\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"Client\"},{\"kind\":2048,\"name\":\"on\",\"url\":\"classes/Client.html#on\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"Client\"},{\"kind\":2048,\"name\":\"requestAll\",\"url\":\"classes/Client.html#requestAll\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"Client\"},{\"kind\":2048,\"name\":\"connect\",\"url\":\"classes/Client.html#connect\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"Client\"},{\"kind\":2048,\"name\":\"disconnect\",\"url\":\"classes/Client.html#disconnect\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"Client\"},{\"kind\":2048,\"name\":\"isConnected\",\"url\":\"classes/Client.html#isConnected\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"Client\"},{\"kind\":1024,\"name\":\"autofill\",\"url\":\"classes/Client.html#autofill\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"Client\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/Client.html#autofill.__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"Client.autofill\"},{\"kind\":1024,\"name\":\"submit\",\"url\":\"classes/Client.html#submit\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"Client\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/Client.html#submit.__type-14\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"Client.submit\"},{\"kind\":1024,\"name\":\"submitAndWait\",\"url\":\"classes/Client.html#submitAndWait\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"Client\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/Client.html#submitAndWait.__type-16\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"Client.submitAndWait\"},{\"kind\":1024,\"name\":\"prepareTransaction\",\"url\":\"classes/Client.html#prepareTransaction\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"Client\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/Client.html#prepareTransaction.__type-12\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"Client.prepareTransaction\"},{\"kind\":1024,\"name\":\"getXrpBalance\",\"url\":\"classes/Client.html#getXrpBalance\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"Client\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/Client.html#getXrpBalance.__type-10\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"Client.getXrpBalance\"},{\"kind\":1024,\"name\":\"getBalances\",\"url\":\"classes/Client.html#getBalances\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"Client\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/Client.html#getBalances.__type-4\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"Client.getBalances\"},{\"kind\":1024,\"name\":\"getOrderbook\",\"url\":\"classes/Client.html#getOrderbook\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"Client\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/Client.html#getOrderbook.__type-8\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"Client.getOrderbook\"},{\"kind\":1024,\"name\":\"getLedgerIndex\",\"url\":\"classes/Client.html#getLedgerIndex\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"Client\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/Client.html#getLedgerIndex.__type-6\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"Client.getLedgerIndex\"},{\"kind\":1024,\"name\":\"fundWallet\",\"url\":\"classes/Client.html#fundWallet\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"Client\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/Client.html#fundWallet.__type-2\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"Client.fundWallet\"},{\"kind\":256,\"name\":\"ClientOptions\",\"url\":\"interfaces/ClientOptions.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"feeCushion\",\"url\":\"interfaces/ClientOptions.html#feeCushion\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ClientOptions\"},{\"kind\":1024,\"name\":\"maxFeeXRP\",\"url\":\"interfaces/ClientOptions.html#maxFeeXRP\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ClientOptions\"},{\"kind\":1024,\"name\":\"proxy\",\"url\":\"interfaces/ClientOptions.html#proxy\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ClientOptions\"},{\"kind\":1024,\"name\":\"timeout\",\"url\":\"interfaces/ClientOptions.html#timeout\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ClientOptions\"},{\"kind\":1024,\"name\":\"trace\",\"url\":\"interfaces/ClientOptions.html#trace\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"ClientOptions\"},{\"kind\":1024,\"name\":\"proxyAuthorization\",\"url\":\"interfaces/ClientOptions.html#proxyAuthorization\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"ClientOptions\"},{\"kind\":1024,\"name\":\"authorization\",\"url\":\"interfaces/ClientOptions.html#authorization\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"ClientOptions\"},{\"kind\":1024,\"name\":\"trustedCertificates\",\"url\":\"interfaces/ClientOptions.html#trustedCertificates\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"ClientOptions\"},{\"kind\":1024,\"name\":\"key\",\"url\":\"interfaces/ClientOptions.html#key\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"ClientOptions\"},{\"kind\":1024,\"name\":\"passphrase\",\"url\":\"interfaces/ClientOptions.html#passphrase\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"ClientOptions\"},{\"kind\":1024,\"name\":\"certificate\",\"url\":\"interfaces/ClientOptions.html#certificate\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"ClientOptions\"},{\"kind\":1024,\"name\":\"connectionTimeout\",\"url\":\"interfaces/ClientOptions.html#connectionTimeout\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"ClientOptions\"},{\"kind\":1024,\"name\":\"headers\",\"url\":\"interfaces/ClientOptions.html#headers\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"ClientOptions\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/ClientOptions.html#headers.__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"ClientOptions.headers\"},{\"kind\":128,\"name\":\"Wallet\",\"url\":\"classes/Wallet.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":2048,\"name\":\"generate\",\"url\":\"classes/Wallet.html#generate\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"Wallet\"},{\"kind\":2048,\"name\":\"fromSeed\",\"url\":\"classes/Wallet.html#fromSeed\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"Wallet\"},{\"kind\":1024,\"name\":\"fromSecret\",\"url\":\"classes/Wallet.html#fromSecret\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"Wallet\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/Wallet.html#fromSecret.__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"Wallet.fromSecret\"},{\"kind\":2048,\"name\":\"fromEntropy\",\"url\":\"classes/Wallet.html#fromEntropy\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"Wallet\"},{\"kind\":2048,\"name\":\"fromMnemonic\",\"url\":\"classes/Wallet.html#fromMnemonic\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"Wallet\"},{\"kind\":2048,\"name\":\"fromRFC1751Mnemonic\",\"url\":\"classes/Wallet.html#fromRFC1751Mnemonic\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"Wallet\"},{\"kind\":2048,\"name\":\"deriveWallet\",\"url\":\"classes/Wallet.html#deriveWallet\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"Wallet\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/Wallet.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"Wallet\"},{\"kind\":1024,\"name\":\"publicKey\",\"url\":\"classes/Wallet.html#publicKey\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"Wallet\"},{\"kind\":1024,\"name\":\"privateKey\",\"url\":\"classes/Wallet.html#privateKey\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"Wallet\"},{\"kind\":1024,\"name\":\"classicAddress\",\"url\":\"classes/Wallet.html#classicAddress\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"Wallet\"},{\"kind\":1024,\"name\":\"seed\",\"url\":\"classes/Wallet.html#seed\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"Wallet\"},{\"kind\":262144,\"name\":\"address\",\"url\":\"classes/Wallet.html#address\",\"classes\":\"tsd-kind-accessor tsd-parent-kind-class\",\"parent\":\"Wallet\"},{\"kind\":2048,\"name\":\"sign\",\"url\":\"classes/Wallet.html#sign\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"Wallet\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/Wallet.html#sign.sign-1.__type-2\",\"classes\":\"tsd-kind-type-literal\",\"parent\":\"Wallet.sign.sign\"},{\"kind\":1024,\"name\":\"tx_blob\",\"url\":\"classes/Wallet.html#sign.sign-1.__type-2.tx_blob\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"Wallet.sign.sign.__type\"},{\"kind\":1024,\"name\":\"hash\",\"url\":\"classes/Wallet.html#sign.sign-1.__type-2.hash\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"Wallet.sign.sign.__type\"},{\"kind\":2048,\"name\":\"verifyTransaction\",\"url\":\"classes/Wallet.html#verifyTransaction\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"Wallet\"},{\"kind\":2048,\"name\":\"getXAddress\",\"url\":\"classes/Wallet.html#getXAddress\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"Wallet\"},{\"kind\":2048,\"name\":\"checkTxSerialization\",\"url\":\"classes/Wallet.html#checkTxSerialization\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"Wallet\"},{\"kind\":64,\"name\":\"keyToRFC1751Mnemonic\",\"url\":\"functions/keyToRFC1751Mnemonic.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"rfc1751MnemonicToKey\",\"url\":\"functions/rfc1751MnemonicToKey.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":4,\"name\":\"LedgerEntry\",\"url\":\"modules/LedgerEntry.html\",\"classes\":\"tsd-kind-namespace\"},{\"kind\":256,\"name\":\"AccountRoot\",\"url\":\"interfaces/LedgerEntry.AccountRoot.html\",\"classes\":\"tsd-kind-interface tsd-parent-kind-namespace\",\"parent\":\"LedgerEntry\"},{\"kind\":1024,\"name\":\"LedgerEntryType\",\"url\":\"interfaces/LedgerEntry.AccountRoot.html#LedgerEntryType\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.AccountRoot\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/LedgerEntry.AccountRoot.html#Account\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.AccountRoot\"},{\"kind\":1024,\"name\":\"Balance\",\"url\":\"interfaces/LedgerEntry.AccountRoot.html#Balance\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.AccountRoot\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/LedgerEntry.AccountRoot.html#Flags\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.AccountRoot\"},{\"kind\":1024,\"name\":\"OwnerCount\",\"url\":\"interfaces/LedgerEntry.AccountRoot.html#OwnerCount\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.AccountRoot\"},{\"kind\":1024,\"name\":\"PreviousTxnID\",\"url\":\"interfaces/LedgerEntry.AccountRoot.html#PreviousTxnID\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.AccountRoot\"},{\"kind\":1024,\"name\":\"PreviousTxnLgrSeq\",\"url\":\"interfaces/LedgerEntry.AccountRoot.html#PreviousTxnLgrSeq\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.AccountRoot\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/LedgerEntry.AccountRoot.html#Sequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.AccountRoot\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/LedgerEntry.AccountRoot.html#AccountTxnID\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.AccountRoot\"},{\"kind\":1024,\"name\":\"Domain\",\"url\":\"interfaces/LedgerEntry.AccountRoot.html#Domain\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.AccountRoot\"},{\"kind\":1024,\"name\":\"EmailHash\",\"url\":\"interfaces/LedgerEntry.AccountRoot.html#EmailHash\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.AccountRoot\"},{\"kind\":1024,\"name\":\"MessageKey\",\"url\":\"interfaces/LedgerEntry.AccountRoot.html#MessageKey\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.AccountRoot\"},{\"kind\":1024,\"name\":\"RegularKey\",\"url\":\"interfaces/LedgerEntry.AccountRoot.html#RegularKey\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.AccountRoot\"},{\"kind\":1024,\"name\":\"TicketCount\",\"url\":\"interfaces/LedgerEntry.AccountRoot.html#TicketCount\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.AccountRoot\"},{\"kind\":1024,\"name\":\"TickSize\",\"url\":\"interfaces/LedgerEntry.AccountRoot.html#TickSize\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.AccountRoot\"},{\"kind\":1024,\"name\":\"TransferRate\",\"url\":\"interfaces/LedgerEntry.AccountRoot.html#TransferRate\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.AccountRoot\"},{\"kind\":1024,\"name\":\"index\",\"url\":\"interfaces/LedgerEntry.AccountRoot.html#index\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"LedgerEntry.AccountRoot\"},{\"kind\":8,\"name\":\"AccountRootFlags\",\"url\":\"enums/LedgerEntry.AccountRootFlags.html\",\"classes\":\"tsd-kind-enum tsd-parent-kind-namespace\",\"parent\":\"LedgerEntry\"},{\"kind\":16,\"name\":\"lsfPasswordSpent\",\"url\":\"enums/LedgerEntry.AccountRootFlags.html#lsfPasswordSpent\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"LedgerEntry.AccountRootFlags\"},{\"kind\":16,\"name\":\"lsfRequireDestTag\",\"url\":\"enums/LedgerEntry.AccountRootFlags.html#lsfRequireDestTag\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"LedgerEntry.AccountRootFlags\"},{\"kind\":16,\"name\":\"lsfRequireAuth\",\"url\":\"enums/LedgerEntry.AccountRootFlags.html#lsfRequireAuth\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"LedgerEntry.AccountRootFlags\"},{\"kind\":16,\"name\":\"lsfDisallowXRP\",\"url\":\"enums/LedgerEntry.AccountRootFlags.html#lsfDisallowXRP\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"LedgerEntry.AccountRootFlags\"},{\"kind\":16,\"name\":\"lsfDisableMaster\",\"url\":\"enums/LedgerEntry.AccountRootFlags.html#lsfDisableMaster\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"LedgerEntry.AccountRootFlags\"},{\"kind\":16,\"name\":\"lsfNoFreeze\",\"url\":\"enums/LedgerEntry.AccountRootFlags.html#lsfNoFreeze\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"LedgerEntry.AccountRootFlags\"},{\"kind\":16,\"name\":\"lsfGlobalFreeze\",\"url\":\"enums/LedgerEntry.AccountRootFlags.html#lsfGlobalFreeze\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"LedgerEntry.AccountRootFlags\"},{\"kind\":16,\"name\":\"lsfDefaultRipple\",\"url\":\"enums/LedgerEntry.AccountRootFlags.html#lsfDefaultRipple\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"LedgerEntry.AccountRootFlags\"},{\"kind\":16,\"name\":\"lsfDepositAuth\",\"url\":\"enums/LedgerEntry.AccountRootFlags.html#lsfDepositAuth\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"LedgerEntry.AccountRootFlags\"},{\"kind\":16,\"name\":\"lsfDisallowIncomingNFTokenOffer\",\"url\":\"enums/LedgerEntry.AccountRootFlags.html#lsfDisallowIncomingNFTokenOffer\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"LedgerEntry.AccountRootFlags\"},{\"kind\":16,\"name\":\"lsfDisallowIncomingCheck\",\"url\":\"enums/LedgerEntry.AccountRootFlags.html#lsfDisallowIncomingCheck\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"LedgerEntry.AccountRootFlags\"},{\"kind\":16,\"name\":\"lsfDisallowIncomingPayChan\",\"url\":\"enums/LedgerEntry.AccountRootFlags.html#lsfDisallowIncomingPayChan\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"LedgerEntry.AccountRootFlags\"},{\"kind\":16,\"name\":\"lsfDisallowIncomingTrustline\",\"url\":\"enums/LedgerEntry.AccountRootFlags.html#lsfDisallowIncomingTrustline\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"LedgerEntry.AccountRootFlags\"},{\"kind\":256,\"name\":\"AccountRootFlagsInterface\",\"url\":\"interfaces/LedgerEntry.AccountRootFlagsInterface.html\",\"classes\":\"tsd-kind-interface tsd-parent-kind-namespace\",\"parent\":\"LedgerEntry\"},{\"kind\":1024,\"name\":\"lsfPasswordSpent\",\"url\":\"interfaces/LedgerEntry.AccountRootFlagsInterface.html#lsfPasswordSpent\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.AccountRootFlagsInterface\"},{\"kind\":1024,\"name\":\"lsfRequireDestTag\",\"url\":\"interfaces/LedgerEntry.AccountRootFlagsInterface.html#lsfRequireDestTag\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.AccountRootFlagsInterface\"},{\"kind\":1024,\"name\":\"lsfRequireAuth\",\"url\":\"interfaces/LedgerEntry.AccountRootFlagsInterface.html#lsfRequireAuth\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.AccountRootFlagsInterface\"},{\"kind\":1024,\"name\":\"lsfDisallowXRP\",\"url\":\"interfaces/LedgerEntry.AccountRootFlagsInterface.html#lsfDisallowXRP\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.AccountRootFlagsInterface\"},{\"kind\":1024,\"name\":\"lsfDisableMaster\",\"url\":\"interfaces/LedgerEntry.AccountRootFlagsInterface.html#lsfDisableMaster\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.AccountRootFlagsInterface\"},{\"kind\":1024,\"name\":\"lsfNoFreeze\",\"url\":\"interfaces/LedgerEntry.AccountRootFlagsInterface.html#lsfNoFreeze\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.AccountRootFlagsInterface\"},{\"kind\":1024,\"name\":\"lsfGlobalFreeze\",\"url\":\"interfaces/LedgerEntry.AccountRootFlagsInterface.html#lsfGlobalFreeze\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.AccountRootFlagsInterface\"},{\"kind\":1024,\"name\":\"lsfDefaultRipple\",\"url\":\"interfaces/LedgerEntry.AccountRootFlagsInterface.html#lsfDefaultRipple\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.AccountRootFlagsInterface\"},{\"kind\":1024,\"name\":\"lsfDepositAuth\",\"url\":\"interfaces/LedgerEntry.AccountRootFlagsInterface.html#lsfDepositAuth\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.AccountRootFlagsInterface\"},{\"kind\":1024,\"name\":\"lsfDisallowIncomingNFTokenOffer\",\"url\":\"interfaces/LedgerEntry.AccountRootFlagsInterface.html#lsfDisallowIncomingNFTokenOffer\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.AccountRootFlagsInterface\"},{\"kind\":1024,\"name\":\"lsfDisallowIncomingCheck\",\"url\":\"interfaces/LedgerEntry.AccountRootFlagsInterface.html#lsfDisallowIncomingCheck\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.AccountRootFlagsInterface\"},{\"kind\":1024,\"name\":\"lsfDisallowIncomingPayChan\",\"url\":\"interfaces/LedgerEntry.AccountRootFlagsInterface.html#lsfDisallowIncomingPayChan\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.AccountRootFlagsInterface\"},{\"kind\":1024,\"name\":\"lsfDisallowIncomingTrustline\",\"url\":\"interfaces/LedgerEntry.AccountRootFlagsInterface.html#lsfDisallowIncomingTrustline\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.AccountRootFlagsInterface\"},{\"kind\":256,\"name\":\"Amendments\",\"url\":\"interfaces/LedgerEntry.Amendments.html\",\"classes\":\"tsd-kind-interface tsd-parent-kind-namespace\",\"parent\":\"LedgerEntry\"},{\"kind\":1024,\"name\":\"LedgerEntryType\",\"url\":\"interfaces/LedgerEntry.Amendments.html#LedgerEntryType\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.Amendments\"},{\"kind\":1024,\"name\":\"Amendments\",\"url\":\"interfaces/LedgerEntry.Amendments.html#Amendments\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.Amendments\"},{\"kind\":1024,\"name\":\"Majorities\",\"url\":\"interfaces/LedgerEntry.Amendments.html#Majorities\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.Amendments\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/LedgerEntry.Amendments.html#Flags\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.Amendments\"},{\"kind\":1024,\"name\":\"index\",\"url\":\"interfaces/LedgerEntry.Amendments.html#index\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"LedgerEntry.Amendments\"},{\"kind\":256,\"name\":\"Check\",\"url\":\"interfaces/LedgerEntry.Check.html\",\"classes\":\"tsd-kind-interface tsd-parent-kind-namespace\",\"parent\":\"LedgerEntry\"},{\"kind\":1024,\"name\":\"LedgerEntryType\",\"url\":\"interfaces/LedgerEntry.Check.html#LedgerEntryType\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.Check\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/LedgerEntry.Check.html#Account\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.Check\"},{\"kind\":1024,\"name\":\"Destination\",\"url\":\"interfaces/LedgerEntry.Check.html#Destination\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.Check\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/LedgerEntry.Check.html#Flags\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.Check\"},{\"kind\":1024,\"name\":\"OwnerNode\",\"url\":\"interfaces/LedgerEntry.Check.html#OwnerNode\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.Check\"},{\"kind\":1024,\"name\":\"PreviousTxnID\",\"url\":\"interfaces/LedgerEntry.Check.html#PreviousTxnID\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.Check\"},{\"kind\":1024,\"name\":\"PreviousTxnLgrSeq\",\"url\":\"interfaces/LedgerEntry.Check.html#PreviousTxnLgrSeq\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.Check\"},{\"kind\":1024,\"name\":\"SendMax\",\"url\":\"interfaces/LedgerEntry.Check.html#SendMax\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.Check\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/LedgerEntry.Check.html#Sequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.Check\"},{\"kind\":1024,\"name\":\"DestinationNode\",\"url\":\"interfaces/LedgerEntry.Check.html#DestinationNode\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.Check\"},{\"kind\":1024,\"name\":\"DestinationTag\",\"url\":\"interfaces/LedgerEntry.Check.html#DestinationTag\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.Check\"},{\"kind\":1024,\"name\":\"Expiration\",\"url\":\"interfaces/LedgerEntry.Check.html#Expiration\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.Check\"},{\"kind\":1024,\"name\":\"InvoiceID\",\"url\":\"interfaces/LedgerEntry.Check.html#InvoiceID\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.Check\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/LedgerEntry.Check.html#SourceTag\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.Check\"},{\"kind\":1024,\"name\":\"index\",\"url\":\"interfaces/LedgerEntry.Check.html#index\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"LedgerEntry.Check\"},{\"kind\":256,\"name\":\"DepositPreauth\",\"url\":\"interfaces/LedgerEntry.DepositPreauth.html\",\"classes\":\"tsd-kind-interface tsd-parent-kind-namespace\",\"parent\":\"LedgerEntry\"},{\"kind\":1024,\"name\":\"LedgerEntryType\",\"url\":\"interfaces/LedgerEntry.DepositPreauth.html#LedgerEntryType\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.DepositPreauth\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/LedgerEntry.DepositPreauth.html#Account\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.DepositPreauth\"},{\"kind\":1024,\"name\":\"Authorize\",\"url\":\"interfaces/LedgerEntry.DepositPreauth.html#Authorize\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.DepositPreauth\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/LedgerEntry.DepositPreauth.html#Flags\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.DepositPreauth\"},{\"kind\":1024,\"name\":\"OwnerNode\",\"url\":\"interfaces/LedgerEntry.DepositPreauth.html#OwnerNode\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.DepositPreauth\"},{\"kind\":1024,\"name\":\"PreviousTxnID\",\"url\":\"interfaces/LedgerEntry.DepositPreauth.html#PreviousTxnID\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.DepositPreauth\"},{\"kind\":1024,\"name\":\"PreviousTxnLgrSeq\",\"url\":\"interfaces/LedgerEntry.DepositPreauth.html#PreviousTxnLgrSeq\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.DepositPreauth\"},{\"kind\":1024,\"name\":\"index\",\"url\":\"interfaces/LedgerEntry.DepositPreauth.html#index\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"LedgerEntry.DepositPreauth\"},{\"kind\":256,\"name\":\"DirectoryNode\",\"url\":\"interfaces/LedgerEntry.DirectoryNode.html\",\"classes\":\"tsd-kind-interface tsd-parent-kind-namespace\",\"parent\":\"LedgerEntry\"},{\"kind\":1024,\"name\":\"LedgerEntryType\",\"url\":\"interfaces/LedgerEntry.DirectoryNode.html#LedgerEntryType\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.DirectoryNode\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/LedgerEntry.DirectoryNode.html#Flags\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.DirectoryNode\"},{\"kind\":1024,\"name\":\"RootIndex\",\"url\":\"interfaces/LedgerEntry.DirectoryNode.html#RootIndex\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.DirectoryNode\"},{\"kind\":1024,\"name\":\"Indexes\",\"url\":\"interfaces/LedgerEntry.DirectoryNode.html#Indexes\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.DirectoryNode\"},{\"kind\":1024,\"name\":\"IndexNext\",\"url\":\"interfaces/LedgerEntry.DirectoryNode.html#IndexNext\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.DirectoryNode\"},{\"kind\":1024,\"name\":\"IndexPrevious\",\"url\":\"interfaces/LedgerEntry.DirectoryNode.html#IndexPrevious\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.DirectoryNode\"},{\"kind\":1024,\"name\":\"Owner\",\"url\":\"interfaces/LedgerEntry.DirectoryNode.html#Owner\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.DirectoryNode\"},{\"kind\":1024,\"name\":\"TakerPaysCurrency\",\"url\":\"interfaces/LedgerEntry.DirectoryNode.html#TakerPaysCurrency\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.DirectoryNode\"},{\"kind\":1024,\"name\":\"TakerPaysIssuer\",\"url\":\"interfaces/LedgerEntry.DirectoryNode.html#TakerPaysIssuer\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.DirectoryNode\"},{\"kind\":1024,\"name\":\"TakerGetsCurrency\",\"url\":\"interfaces/LedgerEntry.DirectoryNode.html#TakerGetsCurrency\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.DirectoryNode\"},{\"kind\":1024,\"name\":\"TakerGetsIssuer\",\"url\":\"interfaces/LedgerEntry.DirectoryNode.html#TakerGetsIssuer\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.DirectoryNode\"},{\"kind\":1024,\"name\":\"index\",\"url\":\"interfaces/LedgerEntry.DirectoryNode.html#index\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"LedgerEntry.DirectoryNode\"},{\"kind\":256,\"name\":\"Escrow\",\"url\":\"interfaces/LedgerEntry.Escrow.html\",\"classes\":\"tsd-kind-interface tsd-parent-kind-namespace\",\"parent\":\"LedgerEntry\"},{\"kind\":1024,\"name\":\"LedgerEntryType\",\"url\":\"interfaces/LedgerEntry.Escrow.html#LedgerEntryType\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.Escrow\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/LedgerEntry.Escrow.html#Account\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.Escrow\"},{\"kind\":1024,\"name\":\"Destination\",\"url\":\"interfaces/LedgerEntry.Escrow.html#Destination\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.Escrow\"},{\"kind\":1024,\"name\":\"Amount\",\"url\":\"interfaces/LedgerEntry.Escrow.html#Amount\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.Escrow\"},{\"kind\":1024,\"name\":\"Condition\",\"url\":\"interfaces/LedgerEntry.Escrow.html#Condition\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.Escrow\"},{\"kind\":1024,\"name\":\"CancelAfter\",\"url\":\"interfaces/LedgerEntry.Escrow.html#CancelAfter\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.Escrow\"},{\"kind\":1024,\"name\":\"FinishAfter\",\"url\":\"interfaces/LedgerEntry.Escrow.html#FinishAfter\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.Escrow\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/LedgerEntry.Escrow.html#Flags\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.Escrow\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/LedgerEntry.Escrow.html#SourceTag\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.Escrow\"},{\"kind\":1024,\"name\":\"DestinationTag\",\"url\":\"interfaces/LedgerEntry.Escrow.html#DestinationTag\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.Escrow\"},{\"kind\":1024,\"name\":\"OwnerNode\",\"url\":\"interfaces/LedgerEntry.Escrow.html#OwnerNode\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.Escrow\"},{\"kind\":1024,\"name\":\"DestinationNode\",\"url\":\"interfaces/LedgerEntry.Escrow.html#DestinationNode\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.Escrow\"},{\"kind\":1024,\"name\":\"PreviousTxnID\",\"url\":\"interfaces/LedgerEntry.Escrow.html#PreviousTxnID\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.Escrow\"},{\"kind\":1024,\"name\":\"PreviousTxnLgrSeq\",\"url\":\"interfaces/LedgerEntry.Escrow.html#PreviousTxnLgrSeq\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.Escrow\"},{\"kind\":1024,\"name\":\"index\",\"url\":\"interfaces/LedgerEntry.Escrow.html#index\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"LedgerEntry.Escrow\"},{\"kind\":256,\"name\":\"FeeSettings\",\"url\":\"interfaces/LedgerEntry.FeeSettings.html\",\"classes\":\"tsd-kind-interface tsd-parent-kind-namespace\",\"parent\":\"LedgerEntry\"},{\"kind\":1024,\"name\":\"LedgerEntryType\",\"url\":\"interfaces/LedgerEntry.FeeSettings.html#LedgerEntryType\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.FeeSettings\"},{\"kind\":1024,\"name\":\"BaseFee\",\"url\":\"interfaces/LedgerEntry.FeeSettings.html#BaseFee\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.FeeSettings\"},{\"kind\":1024,\"name\":\"ReferenceFeeUnits\",\"url\":\"interfaces/LedgerEntry.FeeSettings.html#ReferenceFeeUnits\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.FeeSettings\"},{\"kind\":1024,\"name\":\"ReserveBase\",\"url\":\"interfaces/LedgerEntry.FeeSettings.html#ReserveBase\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.FeeSettings\"},{\"kind\":1024,\"name\":\"ReserveIncrement\",\"url\":\"interfaces/LedgerEntry.FeeSettings.html#ReserveIncrement\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.FeeSettings\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/LedgerEntry.FeeSettings.html#Flags\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.FeeSettings\"},{\"kind\":1024,\"name\":\"index\",\"url\":\"interfaces/LedgerEntry.FeeSettings.html#index\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"LedgerEntry.FeeSettings\"},{\"kind\":256,\"name\":\"Ledger\",\"url\":\"interfaces/LedgerEntry.Ledger.html\",\"classes\":\"tsd-kind-interface tsd-parent-kind-namespace\",\"parent\":\"LedgerEntry\"},{\"kind\":1024,\"name\":\"account_hash\",\"url\":\"interfaces/LedgerEntry.Ledger.html#account_hash\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.Ledger\"},{\"kind\":1024,\"name\":\"accountState\",\"url\":\"interfaces/LedgerEntry.Ledger.html#accountState\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.Ledger\"},{\"kind\":1024,\"name\":\"close_flags\",\"url\":\"interfaces/LedgerEntry.Ledger.html#close_flags\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.Ledger\"},{\"kind\":1024,\"name\":\"close_time\",\"url\":\"interfaces/LedgerEntry.Ledger.html#close_time\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.Ledger\"},{\"kind\":1024,\"name\":\"close_time_human\",\"url\":\"interfaces/LedgerEntry.Ledger.html#close_time_human\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.Ledger\"},{\"kind\":1024,\"name\":\"close_time_resolution\",\"url\":\"interfaces/LedgerEntry.Ledger.html#close_time_resolution\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.Ledger\"},{\"kind\":1024,\"name\":\"closed\",\"url\":\"interfaces/LedgerEntry.Ledger.html#closed\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.Ledger\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/LedgerEntry.Ledger.html#ledger_hash\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.Ledger\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/LedgerEntry.Ledger.html#ledger_index\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.Ledger\"},{\"kind\":1024,\"name\":\"parent_close_time\",\"url\":\"interfaces/LedgerEntry.Ledger.html#parent_close_time\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.Ledger\"},{\"kind\":1024,\"name\":\"parent_hash\",\"url\":\"interfaces/LedgerEntry.Ledger.html#parent_hash\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.Ledger\"},{\"kind\":1024,\"name\":\"total_coins\",\"url\":\"interfaces/LedgerEntry.Ledger.html#total_coins\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.Ledger\"},{\"kind\":1024,\"name\":\"transaction_hash\",\"url\":\"interfaces/LedgerEntry.Ledger.html#transaction_hash\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.Ledger\"},{\"kind\":1024,\"name\":\"transactions\",\"url\":\"interfaces/LedgerEntry.Ledger.html#transactions\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.Ledger\"},{\"kind\":4194304,\"name\":\"LedgerEntry\",\"url\":\"types/LedgerEntry.LedgerEntry.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-namespace\",\"parent\":\"LedgerEntry\"},{\"kind\":256,\"name\":\"LedgerHashes\",\"url\":\"interfaces/LedgerEntry.LedgerHashes.html\",\"classes\":\"tsd-kind-interface tsd-parent-kind-namespace\",\"parent\":\"LedgerEntry\"},{\"kind\":1024,\"name\":\"LedgerEntryType\",\"url\":\"interfaces/LedgerEntry.LedgerHashes.html#LedgerEntryType\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.LedgerHashes\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/LedgerEntry.LedgerHashes.html#LastLedgerSequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.LedgerHashes\"},{\"kind\":1024,\"name\":\"Hashes\",\"url\":\"interfaces/LedgerEntry.LedgerHashes.html#Hashes\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.LedgerHashes\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/LedgerEntry.LedgerHashes.html#Flags\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.LedgerHashes\"},{\"kind\":1024,\"name\":\"index\",\"url\":\"interfaces/LedgerEntry.LedgerHashes.html#index\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"LedgerEntry.LedgerHashes\"},{\"kind\":256,\"name\":\"NegativeUNL\",\"url\":\"interfaces/LedgerEntry.NegativeUNL.html\",\"classes\":\"tsd-kind-interface tsd-parent-kind-namespace\",\"parent\":\"LedgerEntry\"},{\"kind\":1024,\"name\":\"LedgerEntryType\",\"url\":\"interfaces/LedgerEntry.NegativeUNL.html#LedgerEntryType\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.NegativeUNL\"},{\"kind\":1024,\"name\":\"DisabledValidators\",\"url\":\"interfaces/LedgerEntry.NegativeUNL.html#DisabledValidators\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.NegativeUNL\"},{\"kind\":1024,\"name\":\"ValidatorToDisable\",\"url\":\"interfaces/LedgerEntry.NegativeUNL.html#ValidatorToDisable\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.NegativeUNL\"},{\"kind\":1024,\"name\":\"ValidatorToReEnable\",\"url\":\"interfaces/LedgerEntry.NegativeUNL.html#ValidatorToReEnable\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.NegativeUNL\"},{\"kind\":1024,\"name\":\"index\",\"url\":\"interfaces/LedgerEntry.NegativeUNL.html#index\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"LedgerEntry.NegativeUNL\"},{\"kind\":256,\"name\":\"Offer\",\"url\":\"interfaces/LedgerEntry.Offer.html\",\"classes\":\"tsd-kind-interface tsd-parent-kind-namespace\",\"parent\":\"LedgerEntry\"},{\"kind\":1024,\"name\":\"LedgerEntryType\",\"url\":\"interfaces/LedgerEntry.Offer.html#LedgerEntryType\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.Offer\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/LedgerEntry.Offer.html#Flags\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.Offer\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/LedgerEntry.Offer.html#Account\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.Offer\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/LedgerEntry.Offer.html#Sequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.Offer\"},{\"kind\":1024,\"name\":\"TakerPays\",\"url\":\"interfaces/LedgerEntry.Offer.html#TakerPays\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.Offer\"},{\"kind\":1024,\"name\":\"TakerGets\",\"url\":\"interfaces/LedgerEntry.Offer.html#TakerGets\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.Offer\"},{\"kind\":1024,\"name\":\"BookDirectory\",\"url\":\"interfaces/LedgerEntry.Offer.html#BookDirectory\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.Offer\"},{\"kind\":1024,\"name\":\"BookNode\",\"url\":\"interfaces/LedgerEntry.Offer.html#BookNode\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.Offer\"},{\"kind\":1024,\"name\":\"OwnerNode\",\"url\":\"interfaces/LedgerEntry.Offer.html#OwnerNode\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.Offer\"},{\"kind\":1024,\"name\":\"PreviousTxnID\",\"url\":\"interfaces/LedgerEntry.Offer.html#PreviousTxnID\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.Offer\"},{\"kind\":1024,\"name\":\"PreviousTxnLgrSeq\",\"url\":\"interfaces/LedgerEntry.Offer.html#PreviousTxnLgrSeq\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.Offer\"},{\"kind\":1024,\"name\":\"Expiration\",\"url\":\"interfaces/LedgerEntry.Offer.html#Expiration\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.Offer\"},{\"kind\":1024,\"name\":\"index\",\"url\":\"interfaces/LedgerEntry.Offer.html#index\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"LedgerEntry.Offer\"},{\"kind\":8,\"name\":\"OfferFlags\",\"url\":\"enums/LedgerEntry.OfferFlags.html\",\"classes\":\"tsd-kind-enum tsd-parent-kind-namespace\",\"parent\":\"LedgerEntry\"},{\"kind\":16,\"name\":\"lsfPassive\",\"url\":\"enums/LedgerEntry.OfferFlags.html#lsfPassive\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"LedgerEntry.OfferFlags\"},{\"kind\":16,\"name\":\"lsfSell\",\"url\":\"enums/LedgerEntry.OfferFlags.html#lsfSell\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"LedgerEntry.OfferFlags\"},{\"kind\":256,\"name\":\"PayChannel\",\"url\":\"interfaces/LedgerEntry.PayChannel.html\",\"classes\":\"tsd-kind-interface tsd-parent-kind-namespace\",\"parent\":\"LedgerEntry\"},{\"kind\":1024,\"name\":\"LedgerEntryType\",\"url\":\"interfaces/LedgerEntry.PayChannel.html#LedgerEntryType\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.PayChannel\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/LedgerEntry.PayChannel.html#Account\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.PayChannel\"},{\"kind\":1024,\"name\":\"Destination\",\"url\":\"interfaces/LedgerEntry.PayChannel.html#Destination\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.PayChannel\"},{\"kind\":1024,\"name\":\"Amount\",\"url\":\"interfaces/LedgerEntry.PayChannel.html#Amount\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.PayChannel\"},{\"kind\":1024,\"name\":\"Balance\",\"url\":\"interfaces/LedgerEntry.PayChannel.html#Balance\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.PayChannel\"},{\"kind\":1024,\"name\":\"PublicKey\",\"url\":\"interfaces/LedgerEntry.PayChannel.html#PublicKey\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.PayChannel\"},{\"kind\":1024,\"name\":\"SettleDelay\",\"url\":\"interfaces/LedgerEntry.PayChannel.html#SettleDelay\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.PayChannel\"},{\"kind\":1024,\"name\":\"OwnerNode\",\"url\":\"interfaces/LedgerEntry.PayChannel.html#OwnerNode\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.PayChannel\"},{\"kind\":1024,\"name\":\"PreviousTxnID\",\"url\":\"interfaces/LedgerEntry.PayChannel.html#PreviousTxnID\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.PayChannel\"},{\"kind\":1024,\"name\":\"PreviousTxnLgrSeq\",\"url\":\"interfaces/LedgerEntry.PayChannel.html#PreviousTxnLgrSeq\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.PayChannel\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/LedgerEntry.PayChannel.html#Flags\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.PayChannel\"},{\"kind\":1024,\"name\":\"Expiration\",\"url\":\"interfaces/LedgerEntry.PayChannel.html#Expiration\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.PayChannel\"},{\"kind\":1024,\"name\":\"CancelAfter\",\"url\":\"interfaces/LedgerEntry.PayChannel.html#CancelAfter\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.PayChannel\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/LedgerEntry.PayChannel.html#SourceTag\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.PayChannel\"},{\"kind\":1024,\"name\":\"DestinationTag\",\"url\":\"interfaces/LedgerEntry.PayChannel.html#DestinationTag\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.PayChannel\"},{\"kind\":1024,\"name\":\"DestinationNode\",\"url\":\"interfaces/LedgerEntry.PayChannel.html#DestinationNode\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.PayChannel\"},{\"kind\":1024,\"name\":\"index\",\"url\":\"interfaces/LedgerEntry.PayChannel.html#index\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"LedgerEntry.PayChannel\"},{\"kind\":256,\"name\":\"RippleState\",\"url\":\"interfaces/LedgerEntry.RippleState.html\",\"classes\":\"tsd-kind-interface tsd-parent-kind-namespace\",\"parent\":\"LedgerEntry\"},{\"kind\":1024,\"name\":\"LedgerEntryType\",\"url\":\"interfaces/LedgerEntry.RippleState.html#LedgerEntryType\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.RippleState\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/LedgerEntry.RippleState.html#Flags\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.RippleState\"},{\"kind\":1024,\"name\":\"Balance\",\"url\":\"interfaces/LedgerEntry.RippleState.html#Balance\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.RippleState\"},{\"kind\":1024,\"name\":\"LowLimit\",\"url\":\"interfaces/LedgerEntry.RippleState.html#LowLimit\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.RippleState\"},{\"kind\":1024,\"name\":\"HighLimit\",\"url\":\"interfaces/LedgerEntry.RippleState.html#HighLimit\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.RippleState\"},{\"kind\":1024,\"name\":\"PreviousTxnID\",\"url\":\"interfaces/LedgerEntry.RippleState.html#PreviousTxnID\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.RippleState\"},{\"kind\":1024,\"name\":\"PreviousTxnLgrSeq\",\"url\":\"interfaces/LedgerEntry.RippleState.html#PreviousTxnLgrSeq\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.RippleState\"},{\"kind\":1024,\"name\":\"LowNode\",\"url\":\"interfaces/LedgerEntry.RippleState.html#LowNode\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.RippleState\"},{\"kind\":1024,\"name\":\"HighNode\",\"url\":\"interfaces/LedgerEntry.RippleState.html#HighNode\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.RippleState\"},{\"kind\":1024,\"name\":\"LowQualityIn\",\"url\":\"interfaces/LedgerEntry.RippleState.html#LowQualityIn\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.RippleState\"},{\"kind\":1024,\"name\":\"LowQualityOut\",\"url\":\"interfaces/LedgerEntry.RippleState.html#LowQualityOut\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.RippleState\"},{\"kind\":1024,\"name\":\"HighQualityIn\",\"url\":\"interfaces/LedgerEntry.RippleState.html#HighQualityIn\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.RippleState\"},{\"kind\":1024,\"name\":\"HighQualityOut\",\"url\":\"interfaces/LedgerEntry.RippleState.html#HighQualityOut\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.RippleState\"},{\"kind\":1024,\"name\":\"index\",\"url\":\"interfaces/LedgerEntry.RippleState.html#index\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"LedgerEntry.RippleState\"},{\"kind\":8,\"name\":\"RippleStateFlags\",\"url\":\"enums/LedgerEntry.RippleStateFlags.html\",\"classes\":\"tsd-kind-enum tsd-parent-kind-namespace\",\"parent\":\"LedgerEntry\"},{\"kind\":16,\"name\":\"lsfLowReserve\",\"url\":\"enums/LedgerEntry.RippleStateFlags.html#lsfLowReserve\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"LedgerEntry.RippleStateFlags\"},{\"kind\":16,\"name\":\"lsfHighReserve\",\"url\":\"enums/LedgerEntry.RippleStateFlags.html#lsfHighReserve\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"LedgerEntry.RippleStateFlags\"},{\"kind\":16,\"name\":\"lsfLowAuth\",\"url\":\"enums/LedgerEntry.RippleStateFlags.html#lsfLowAuth\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"LedgerEntry.RippleStateFlags\"},{\"kind\":16,\"name\":\"lsfHighAuth\",\"url\":\"enums/LedgerEntry.RippleStateFlags.html#lsfHighAuth\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"LedgerEntry.RippleStateFlags\"},{\"kind\":16,\"name\":\"lsfLowNoRipple\",\"url\":\"enums/LedgerEntry.RippleStateFlags.html#lsfLowNoRipple\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"LedgerEntry.RippleStateFlags\"},{\"kind\":16,\"name\":\"lsfHighNoRipple\",\"url\":\"enums/LedgerEntry.RippleStateFlags.html#lsfHighNoRipple\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"LedgerEntry.RippleStateFlags\"},{\"kind\":16,\"name\":\"lsfLowFreeze\",\"url\":\"enums/LedgerEntry.RippleStateFlags.html#lsfLowFreeze\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"LedgerEntry.RippleStateFlags\"},{\"kind\":16,\"name\":\"lsfHighFreeze\",\"url\":\"enums/LedgerEntry.RippleStateFlags.html#lsfHighFreeze\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"LedgerEntry.RippleStateFlags\"},{\"kind\":256,\"name\":\"SignerList\",\"url\":\"interfaces/LedgerEntry.SignerList.html\",\"classes\":\"tsd-kind-interface tsd-parent-kind-namespace\",\"parent\":\"LedgerEntry\"},{\"kind\":1024,\"name\":\"LedgerEntryType\",\"url\":\"interfaces/LedgerEntry.SignerList.html#LedgerEntryType\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.SignerList\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/LedgerEntry.SignerList.html#Flags\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.SignerList\"},{\"kind\":1024,\"name\":\"PreviousTxnID\",\"url\":\"interfaces/LedgerEntry.SignerList.html#PreviousTxnID\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.SignerList\"},{\"kind\":1024,\"name\":\"PreviousTxnLgrSeq\",\"url\":\"interfaces/LedgerEntry.SignerList.html#PreviousTxnLgrSeq\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.SignerList\"},{\"kind\":1024,\"name\":\"OwnerNode\",\"url\":\"interfaces/LedgerEntry.SignerList.html#OwnerNode\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.SignerList\"},{\"kind\":1024,\"name\":\"SignerEntries\",\"url\":\"interfaces/LedgerEntry.SignerList.html#SignerEntries\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.SignerList\"},{\"kind\":1024,\"name\":\"SignerListID\",\"url\":\"interfaces/LedgerEntry.SignerList.html#SignerListID\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.SignerList\"},{\"kind\":1024,\"name\":\"SignerQuorum\",\"url\":\"interfaces/LedgerEntry.SignerList.html#SignerQuorum\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.SignerList\"},{\"kind\":1024,\"name\":\"index\",\"url\":\"interfaces/LedgerEntry.SignerList.html#index\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"LedgerEntry.SignerList\"},{\"kind\":8,\"name\":\"SignerListFlags\",\"url\":\"enums/LedgerEntry.SignerListFlags.html\",\"classes\":\"tsd-kind-enum tsd-parent-kind-namespace\",\"parent\":\"LedgerEntry\"},{\"kind\":16,\"name\":\"lsfOneOwnerCount\",\"url\":\"enums/LedgerEntry.SignerListFlags.html#lsfOneOwnerCount\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"LedgerEntry.SignerListFlags\"},{\"kind\":256,\"name\":\"Ticket\",\"url\":\"interfaces/LedgerEntry.Ticket.html\",\"classes\":\"tsd-kind-interface tsd-parent-kind-namespace\",\"parent\":\"LedgerEntry\"},{\"kind\":1024,\"name\":\"LedgerEntryType\",\"url\":\"interfaces/LedgerEntry.Ticket.html#LedgerEntryType\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.Ticket\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/LedgerEntry.Ticket.html#Account\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.Ticket\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/LedgerEntry.Ticket.html#Flags\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.Ticket\"},{\"kind\":1024,\"name\":\"OwnerNode\",\"url\":\"interfaces/LedgerEntry.Ticket.html#OwnerNode\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.Ticket\"},{\"kind\":1024,\"name\":\"PreviousTxnID\",\"url\":\"interfaces/LedgerEntry.Ticket.html#PreviousTxnID\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.Ticket\"},{\"kind\":1024,\"name\":\"PreviousTxnLgrSeq\",\"url\":\"interfaces/LedgerEntry.Ticket.html#PreviousTxnLgrSeq\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.Ticket\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/LedgerEntry.Ticket.html#TicketSequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntry.Ticket\"},{\"kind\":1024,\"name\":\"index\",\"url\":\"interfaces/LedgerEntry.Ticket.html#index\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"LedgerEntry.Ticket\"},{\"kind\":64,\"name\":\"setTransactionFlagsToNumber\",\"url\":\"functions/setTransactionFlagsToNumber.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"parseAccountRootFlags\",\"url\":\"functions/parseAccountRootFlags.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":4194304,\"name\":\"Request\",\"url\":\"types/Request.html\",\"classes\":\"tsd-kind-type-alias\"},{\"kind\":4194304,\"name\":\"Response\",\"url\":\"types/Response.html\",\"classes\":\"tsd-kind-type-alias\"},{\"kind\":256,\"name\":\"AccountChannelsRequest\",\"url\":\"interfaces/AccountChannelsRequest.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/AccountChannelsRequest.html#command\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountChannelsRequest\"},{\"kind\":1024,\"name\":\"account\",\"url\":\"interfaces/AccountChannelsRequest.html#account\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountChannelsRequest\"},{\"kind\":1024,\"name\":\"destination_account\",\"url\":\"interfaces/AccountChannelsRequest.html#destination_account\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountChannelsRequest\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/AccountChannelsRequest.html#ledger_hash\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountChannelsRequest\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/AccountChannelsRequest.html#ledger_index\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountChannelsRequest\"},{\"kind\":1024,\"name\":\"limit\",\"url\":\"interfaces/AccountChannelsRequest.html#limit\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountChannelsRequest\"},{\"kind\":1024,\"name\":\"marker\",\"url\":\"interfaces/AccountChannelsRequest.html#marker\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountChannelsRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/AccountChannelsRequest.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountChannelsRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/AccountChannelsRequest.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountChannelsRequest\"},{\"kind\":256,\"name\":\"AccountChannelsResponse\",\"url\":\"interfaces/AccountChannelsResponse.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/AccountChannelsResponse.html#result\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountChannelsResponse\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/AccountChannelsResponse.html#result.__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"AccountChannelsResponse.result\"},{\"kind\":1024,\"name\":\"account\",\"url\":\"interfaces/AccountChannelsResponse.html#result.__type.account\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"AccountChannelsResponse.result.__type\"},{\"kind\":1024,\"name\":\"channels\",\"url\":\"interfaces/AccountChannelsResponse.html#result.__type.channels\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"AccountChannelsResponse.result.__type\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/AccountChannelsResponse.html#result.__type.ledger_hash\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"AccountChannelsResponse.result.__type\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/AccountChannelsResponse.html#result.__type.ledger_index\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"AccountChannelsResponse.result.__type\"},{\"kind\":1024,\"name\":\"validated\",\"url\":\"interfaces/AccountChannelsResponse.html#result.__type.validated\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"AccountChannelsResponse.result.__type\"},{\"kind\":1024,\"name\":\"limit\",\"url\":\"interfaces/AccountChannelsResponse.html#result.__type.limit\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"AccountChannelsResponse.result.__type\"},{\"kind\":1024,\"name\":\"marker\",\"url\":\"interfaces/AccountChannelsResponse.html#result.__type.marker\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"AccountChannelsResponse.result.__type\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/AccountChannelsResponse.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountChannelsResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/AccountChannelsResponse.html#status\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountChannelsResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/AccountChannelsResponse.html#type\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountChannelsResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/AccountChannelsResponse.html#warning\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountChannelsResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/AccountChannelsResponse.html#warnings\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountChannelsResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/AccountChannelsResponse.html#forwarded\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountChannelsResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/AccountChannelsResponse.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountChannelsResponse\"},{\"kind\":256,\"name\":\"AccountCurrenciesRequest\",\"url\":\"interfaces/AccountCurrenciesRequest.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/AccountCurrenciesRequest.html#command\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountCurrenciesRequest\"},{\"kind\":1024,\"name\":\"account\",\"url\":\"interfaces/AccountCurrenciesRequest.html#account\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountCurrenciesRequest\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/AccountCurrenciesRequest.html#ledger_hash\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountCurrenciesRequest\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/AccountCurrenciesRequest.html#ledger_index\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountCurrenciesRequest\"},{\"kind\":1024,\"name\":\"strict\",\"url\":\"interfaces/AccountCurrenciesRequest.html#strict\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountCurrenciesRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/AccountCurrenciesRequest.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountCurrenciesRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/AccountCurrenciesRequest.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountCurrenciesRequest\"},{\"kind\":256,\"name\":\"AccountCurrenciesResponse\",\"url\":\"interfaces/AccountCurrenciesResponse.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/AccountCurrenciesResponse.html#result\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountCurrenciesResponse\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/AccountCurrenciesResponse.html#result.__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"AccountCurrenciesResponse.result\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/AccountCurrenciesResponse.html#result.__type.ledger_hash\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"AccountCurrenciesResponse.result.__type\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/AccountCurrenciesResponse.html#result.__type.ledger_index\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"AccountCurrenciesResponse.result.__type\"},{\"kind\":1024,\"name\":\"receive_currencies\",\"url\":\"interfaces/AccountCurrenciesResponse.html#result.__type.receive_currencies\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"AccountCurrenciesResponse.result.__type\"},{\"kind\":1024,\"name\":\"send_currencies\",\"url\":\"interfaces/AccountCurrenciesResponse.html#result.__type.send_currencies\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"AccountCurrenciesResponse.result.__type\"},{\"kind\":1024,\"name\":\"validated\",\"url\":\"interfaces/AccountCurrenciesResponse.html#result.__type.validated\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"AccountCurrenciesResponse.result.__type\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/AccountCurrenciesResponse.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountCurrenciesResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/AccountCurrenciesResponse.html#status\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountCurrenciesResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/AccountCurrenciesResponse.html#type\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountCurrenciesResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/AccountCurrenciesResponse.html#warning\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountCurrenciesResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/AccountCurrenciesResponse.html#warnings\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountCurrenciesResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/AccountCurrenciesResponse.html#forwarded\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountCurrenciesResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/AccountCurrenciesResponse.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountCurrenciesResponse\"},{\"kind\":256,\"name\":\"AccountInfoRequest\",\"url\":\"interfaces/AccountInfoRequest.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/AccountInfoRequest.html#command\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountInfoRequest\"},{\"kind\":1024,\"name\":\"account\",\"url\":\"interfaces/AccountInfoRequest.html#account\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountInfoRequest\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/AccountInfoRequest.html#ledger_hash\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountInfoRequest\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/AccountInfoRequest.html#ledger_index\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountInfoRequest\"},{\"kind\":1024,\"name\":\"queue\",\"url\":\"interfaces/AccountInfoRequest.html#queue\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountInfoRequest\"},{\"kind\":1024,\"name\":\"signer_lists\",\"url\":\"interfaces/AccountInfoRequest.html#signer_lists\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountInfoRequest\"},{\"kind\":1024,\"name\":\"strict\",\"url\":\"interfaces/AccountInfoRequest.html#strict\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountInfoRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/AccountInfoRequest.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountInfoRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/AccountInfoRequest.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountInfoRequest\"},{\"kind\":256,\"name\":\"AccountInfoResponse\",\"url\":\"interfaces/AccountInfoResponse.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/AccountInfoResponse.html#result\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountInfoResponse\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/AccountInfoResponse.html#result.__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"AccountInfoResponse.result\"},{\"kind\":1024,\"name\":\"account_data\",\"url\":\"interfaces/AccountInfoResponse.html#result.__type.account_data\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"AccountInfoResponse.result.__type\"},{\"kind\":1024,\"name\":\"signer_lists\",\"url\":\"interfaces/AccountInfoResponse.html#result.__type.signer_lists\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"AccountInfoResponse.result.__type\"},{\"kind\":1024,\"name\":\"ledger_current_index\",\"url\":\"interfaces/AccountInfoResponse.html#result.__type.ledger_current_index\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"AccountInfoResponse.result.__type\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/AccountInfoResponse.html#result.__type.ledger_index\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"AccountInfoResponse.result.__type\"},{\"kind\":1024,\"name\":\"queue_data\",\"url\":\"interfaces/AccountInfoResponse.html#result.__type.queue_data\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"AccountInfoResponse.result.__type\"},{\"kind\":1024,\"name\":\"validated\",\"url\":\"interfaces/AccountInfoResponse.html#result.__type.validated\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"AccountInfoResponse.result.__type\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/AccountInfoResponse.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountInfoResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/AccountInfoResponse.html#status\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountInfoResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/AccountInfoResponse.html#type\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountInfoResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/AccountInfoResponse.html#warning\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountInfoResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/AccountInfoResponse.html#warnings\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountInfoResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/AccountInfoResponse.html#forwarded\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountInfoResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/AccountInfoResponse.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountInfoResponse\"},{\"kind\":256,\"name\":\"AccountLinesRequest\",\"url\":\"interfaces/AccountLinesRequest.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/AccountLinesRequest.html#command\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountLinesRequest\"},{\"kind\":1024,\"name\":\"account\",\"url\":\"interfaces/AccountLinesRequest.html#account\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountLinesRequest\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/AccountLinesRequest.html#ledger_hash\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountLinesRequest\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/AccountLinesRequest.html#ledger_index\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountLinesRequest\"},{\"kind\":1024,\"name\":\"peer\",\"url\":\"interfaces/AccountLinesRequest.html#peer\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountLinesRequest\"},{\"kind\":1024,\"name\":\"limit\",\"url\":\"interfaces/AccountLinesRequest.html#limit\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountLinesRequest\"},{\"kind\":1024,\"name\":\"marker\",\"url\":\"interfaces/AccountLinesRequest.html#marker\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountLinesRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/AccountLinesRequest.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountLinesRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/AccountLinesRequest.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountLinesRequest\"},{\"kind\":256,\"name\":\"AccountLinesResponse\",\"url\":\"interfaces/AccountLinesResponse.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/AccountLinesResponse.html#result\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountLinesResponse\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/AccountLinesResponse.html#result.__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"AccountLinesResponse.result\"},{\"kind\":1024,\"name\":\"account\",\"url\":\"interfaces/AccountLinesResponse.html#result.__type.account\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"AccountLinesResponse.result.__type\"},{\"kind\":1024,\"name\":\"lines\",\"url\":\"interfaces/AccountLinesResponse.html#result.__type.lines\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"AccountLinesResponse.result.__type\"},{\"kind\":1024,\"name\":\"ledger_current_index\",\"url\":\"interfaces/AccountLinesResponse.html#result.__type.ledger_current_index\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"AccountLinesResponse.result.__type\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/AccountLinesResponse.html#result.__type.ledger_index\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"AccountLinesResponse.result.__type\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/AccountLinesResponse.html#result.__type.ledger_hash\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"AccountLinesResponse.result.__type\"},{\"kind\":1024,\"name\":\"marker\",\"url\":\"interfaces/AccountLinesResponse.html#result.__type.marker\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"AccountLinesResponse.result.__type\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/AccountLinesResponse.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountLinesResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/AccountLinesResponse.html#status\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountLinesResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/AccountLinesResponse.html#type\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountLinesResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/AccountLinesResponse.html#warning\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountLinesResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/AccountLinesResponse.html#warnings\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountLinesResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/AccountLinesResponse.html#forwarded\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountLinesResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/AccountLinesResponse.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountLinesResponse\"},{\"kind\":256,\"name\":\"AccountNFTsRequest\",\"url\":\"interfaces/AccountNFTsRequest.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/AccountNFTsRequest.html#command\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountNFTsRequest\"},{\"kind\":1024,\"name\":\"account\",\"url\":\"interfaces/AccountNFTsRequest.html#account\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountNFTsRequest\"},{\"kind\":1024,\"name\":\"limit\",\"url\":\"interfaces/AccountNFTsRequest.html#limit\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountNFTsRequest\"},{\"kind\":1024,\"name\":\"marker\",\"url\":\"interfaces/AccountNFTsRequest.html#marker\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountNFTsRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/AccountNFTsRequest.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountNFTsRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/AccountNFTsRequest.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountNFTsRequest\"},{\"kind\":256,\"name\":\"AccountNFTsResponse\",\"url\":\"interfaces/AccountNFTsResponse.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/AccountNFTsResponse.html#result\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountNFTsResponse\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/AccountNFTsResponse.html#result.__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"AccountNFTsResponse.result\"},{\"kind\":1024,\"name\":\"account\",\"url\":\"interfaces/AccountNFTsResponse.html#result.__type.account\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"AccountNFTsResponse.result.__type\"},{\"kind\":1024,\"name\":\"account_nfts\",\"url\":\"interfaces/AccountNFTsResponse.html#result.__type.account_nfts\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"AccountNFTsResponse.result.__type\"},{\"kind\":1024,\"name\":\"ledger_current_index\",\"url\":\"interfaces/AccountNFTsResponse.html#result.__type.ledger_current_index\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"AccountNFTsResponse.result.__type\"},{\"kind\":1024,\"name\":\"validated\",\"url\":\"interfaces/AccountNFTsResponse.html#result.__type.validated\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"AccountNFTsResponse.result.__type\"},{\"kind\":1024,\"name\":\"marker\",\"url\":\"interfaces/AccountNFTsResponse.html#result.__type.marker\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"AccountNFTsResponse.result.__type\"},{\"kind\":1024,\"name\":\"limit\",\"url\":\"interfaces/AccountNFTsResponse.html#result.__type.limit\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"AccountNFTsResponse.result.__type\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/AccountNFTsResponse.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountNFTsResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/AccountNFTsResponse.html#status\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountNFTsResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/AccountNFTsResponse.html#type\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountNFTsResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/AccountNFTsResponse.html#warning\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountNFTsResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/AccountNFTsResponse.html#warnings\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountNFTsResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/AccountNFTsResponse.html#forwarded\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountNFTsResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/AccountNFTsResponse.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountNFTsResponse\"},{\"kind\":256,\"name\":\"AccountObjectsRequest\",\"url\":\"interfaces/AccountObjectsRequest.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/AccountObjectsRequest.html#command\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountObjectsRequest\"},{\"kind\":1024,\"name\":\"account\",\"url\":\"interfaces/AccountObjectsRequest.html#account\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountObjectsRequest\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/AccountObjectsRequest.html#type\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountObjectsRequest\"},{\"kind\":1024,\"name\":\"deletion_blockers_only\",\"url\":\"interfaces/AccountObjectsRequest.html#deletion_blockers_only\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountObjectsRequest\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/AccountObjectsRequest.html#ledger_hash\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountObjectsRequest\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/AccountObjectsRequest.html#ledger_index\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountObjectsRequest\"},{\"kind\":1024,\"name\":\"limit\",\"url\":\"interfaces/AccountObjectsRequest.html#limit\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountObjectsRequest\"},{\"kind\":1024,\"name\":\"marker\",\"url\":\"interfaces/AccountObjectsRequest.html#marker\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountObjectsRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/AccountObjectsRequest.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountObjectsRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/AccountObjectsRequest.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountObjectsRequest\"},{\"kind\":256,\"name\":\"AccountObjectsResponse\",\"url\":\"interfaces/AccountObjectsResponse.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/AccountObjectsResponse.html#result\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountObjectsResponse\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/AccountObjectsResponse.html#result.__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"AccountObjectsResponse.result\"},{\"kind\":1024,\"name\":\"account\",\"url\":\"interfaces/AccountObjectsResponse.html#result.__type.account\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"AccountObjectsResponse.result.__type\"},{\"kind\":1024,\"name\":\"account_objects\",\"url\":\"interfaces/AccountObjectsResponse.html#result.__type.account_objects\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"AccountObjectsResponse.result.__type\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/AccountObjectsResponse.html#result.__type.ledger_hash\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"AccountObjectsResponse.result.__type\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/AccountObjectsResponse.html#result.__type.ledger_index\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"AccountObjectsResponse.result.__type\"},{\"kind\":1024,\"name\":\"ledger_current_index\",\"url\":\"interfaces/AccountObjectsResponse.html#result.__type.ledger_current_index\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"AccountObjectsResponse.result.__type\"},{\"kind\":1024,\"name\":\"limit\",\"url\":\"interfaces/AccountObjectsResponse.html#result.__type.limit\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"AccountObjectsResponse.result.__type\"},{\"kind\":1024,\"name\":\"marker\",\"url\":\"interfaces/AccountObjectsResponse.html#result.__type.marker\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"AccountObjectsResponse.result.__type\"},{\"kind\":1024,\"name\":\"validated\",\"url\":\"interfaces/AccountObjectsResponse.html#result.__type.validated\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"AccountObjectsResponse.result.__type\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/AccountObjectsResponse.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountObjectsResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/AccountObjectsResponse.html#status\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountObjectsResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/AccountObjectsResponse.html#type\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountObjectsResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/AccountObjectsResponse.html#warning\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountObjectsResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/AccountObjectsResponse.html#warnings\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountObjectsResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/AccountObjectsResponse.html#forwarded\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountObjectsResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/AccountObjectsResponse.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountObjectsResponse\"},{\"kind\":256,\"name\":\"AccountOffer\",\"url\":\"interfaces/AccountOffer.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"flags\",\"url\":\"interfaces/AccountOffer.html#flags\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountOffer\"},{\"kind\":1024,\"name\":\"seq\",\"url\":\"interfaces/AccountOffer.html#seq\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountOffer\"},{\"kind\":1024,\"name\":\"taker_gets\",\"url\":\"interfaces/AccountOffer.html#taker_gets\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountOffer\"},{\"kind\":1024,\"name\":\"taker_pays\",\"url\":\"interfaces/AccountOffer.html#taker_pays\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountOffer\"},{\"kind\":1024,\"name\":\"quality\",\"url\":\"interfaces/AccountOffer.html#quality\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountOffer\"},{\"kind\":1024,\"name\":\"expiration\",\"url\":\"interfaces/AccountOffer.html#expiration\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountOffer\"},{\"kind\":256,\"name\":\"AccountOffersRequest\",\"url\":\"interfaces/AccountOffersRequest.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/AccountOffersRequest.html#command\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountOffersRequest\"},{\"kind\":1024,\"name\":\"account\",\"url\":\"interfaces/AccountOffersRequest.html#account\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountOffersRequest\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/AccountOffersRequest.html#ledger_hash\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountOffersRequest\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/AccountOffersRequest.html#ledger_index\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountOffersRequest\"},{\"kind\":1024,\"name\":\"limit\",\"url\":\"interfaces/AccountOffersRequest.html#limit\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountOffersRequest\"},{\"kind\":1024,\"name\":\"marker\",\"url\":\"interfaces/AccountOffersRequest.html#marker\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountOffersRequest\"},{\"kind\":1024,\"name\":\"strict\",\"url\":\"interfaces/AccountOffersRequest.html#strict\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountOffersRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/AccountOffersRequest.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountOffersRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/AccountOffersRequest.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountOffersRequest\"},{\"kind\":256,\"name\":\"AccountOffersResponse\",\"url\":\"interfaces/AccountOffersResponse.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/AccountOffersResponse.html#result\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountOffersResponse\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/AccountOffersResponse.html#result.__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"AccountOffersResponse.result\"},{\"kind\":1024,\"name\":\"account\",\"url\":\"interfaces/AccountOffersResponse.html#result.__type.account\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"AccountOffersResponse.result.__type\"},{\"kind\":1024,\"name\":\"offers\",\"url\":\"interfaces/AccountOffersResponse.html#result.__type.offers\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"AccountOffersResponse.result.__type\"},{\"kind\":1024,\"name\":\"ledger_current_index\",\"url\":\"interfaces/AccountOffersResponse.html#result.__type.ledger_current_index\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"AccountOffersResponse.result.__type\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/AccountOffersResponse.html#result.__type.ledger_index\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"AccountOffersResponse.result.__type\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/AccountOffersResponse.html#result.__type.ledger_hash\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"AccountOffersResponse.result.__type\"},{\"kind\":1024,\"name\":\"marker\",\"url\":\"interfaces/AccountOffersResponse.html#result.__type.marker\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"AccountOffersResponse.result.__type\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/AccountOffersResponse.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountOffersResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/AccountOffersResponse.html#status\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountOffersResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/AccountOffersResponse.html#type\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountOffersResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/AccountOffersResponse.html#warning\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountOffersResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/AccountOffersResponse.html#warnings\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountOffersResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/AccountOffersResponse.html#forwarded\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountOffersResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/AccountOffersResponse.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountOffersResponse\"},{\"kind\":256,\"name\":\"AccountTxRequest\",\"url\":\"interfaces/AccountTxRequest.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/AccountTxRequest.html#command\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountTxRequest\"},{\"kind\":1024,\"name\":\"account\",\"url\":\"interfaces/AccountTxRequest.html#account\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountTxRequest\"},{\"kind\":1024,\"name\":\"ledger_index_min\",\"url\":\"interfaces/AccountTxRequest.html#ledger_index_min\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountTxRequest\"},{\"kind\":1024,\"name\":\"ledger_index_max\",\"url\":\"interfaces/AccountTxRequest.html#ledger_index_max\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountTxRequest\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/AccountTxRequest.html#ledger_hash\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountTxRequest\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/AccountTxRequest.html#ledger_index\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountTxRequest\"},{\"kind\":1024,\"name\":\"binary\",\"url\":\"interfaces/AccountTxRequest.html#binary\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountTxRequest\"},{\"kind\":1024,\"name\":\"forward\",\"url\":\"interfaces/AccountTxRequest.html#forward\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountTxRequest\"},{\"kind\":1024,\"name\":\"limit\",\"url\":\"interfaces/AccountTxRequest.html#limit\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountTxRequest\"},{\"kind\":1024,\"name\":\"marker\",\"url\":\"interfaces/AccountTxRequest.html#marker\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountTxRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/AccountTxRequest.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountTxRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/AccountTxRequest.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountTxRequest\"},{\"kind\":256,\"name\":\"AccountTxResponse\",\"url\":\"interfaces/AccountTxResponse.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/AccountTxResponse.html#result\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountTxResponse\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/AccountTxResponse.html#result.__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"AccountTxResponse.result\"},{\"kind\":1024,\"name\":\"account\",\"url\":\"interfaces/AccountTxResponse.html#result.__type.account\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"AccountTxResponse.result.__type\"},{\"kind\":1024,\"name\":\"ledger_index_min\",\"url\":\"interfaces/AccountTxResponse.html#result.__type.ledger_index_min\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"AccountTxResponse.result.__type\"},{\"kind\":1024,\"name\":\"ledger_index_max\",\"url\":\"interfaces/AccountTxResponse.html#result.__type.ledger_index_max\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"AccountTxResponse.result.__type\"},{\"kind\":1024,\"name\":\"limit\",\"url\":\"interfaces/AccountTxResponse.html#result.__type.limit\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"AccountTxResponse.result.__type\"},{\"kind\":1024,\"name\":\"marker\",\"url\":\"interfaces/AccountTxResponse.html#result.__type.marker\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"AccountTxResponse.result.__type\"},{\"kind\":1024,\"name\":\"transactions\",\"url\":\"interfaces/AccountTxResponse.html#result.__type.transactions\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"AccountTxResponse.result.__type\"},{\"kind\":1024,\"name\":\"validated\",\"url\":\"interfaces/AccountTxResponse.html#result.__type.validated\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"AccountTxResponse.result.__type\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/AccountTxResponse.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountTxResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/AccountTxResponse.html#status\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountTxResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/AccountTxResponse.html#type\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountTxResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/AccountTxResponse.html#warning\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountTxResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/AccountTxResponse.html#warnings\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountTxResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/AccountTxResponse.html#forwarded\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountTxResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/AccountTxResponse.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountTxResponse\"},{\"kind\":256,\"name\":\"GatewayBalancesRequest\",\"url\":\"interfaces/GatewayBalancesRequest.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/GatewayBalancesRequest.html#command\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"GatewayBalancesRequest\"},{\"kind\":1024,\"name\":\"account\",\"url\":\"interfaces/GatewayBalancesRequest.html#account\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"GatewayBalancesRequest\"},{\"kind\":1024,\"name\":\"strict\",\"url\":\"interfaces/GatewayBalancesRequest.html#strict\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"GatewayBalancesRequest\"},{\"kind\":1024,\"name\":\"hotwallet\",\"url\":\"interfaces/GatewayBalancesRequest.html#hotwallet\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"GatewayBalancesRequest\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/GatewayBalancesRequest.html#ledger_hash\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"GatewayBalancesRequest\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/GatewayBalancesRequest.html#ledger_index\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"GatewayBalancesRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/GatewayBalancesRequest.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"GatewayBalancesRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/GatewayBalancesRequest.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"GatewayBalancesRequest\"},{\"kind\":256,\"name\":\"GatewayBalancesResponse\",\"url\":\"interfaces/GatewayBalancesResponse.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/GatewayBalancesResponse.html#result\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"GatewayBalancesResponse\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/GatewayBalancesResponse.html#result.__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"GatewayBalancesResponse.result\"},{\"kind\":1024,\"name\":\"account\",\"url\":\"interfaces/GatewayBalancesResponse.html#result.__type.account\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"GatewayBalancesResponse.result.__type\"},{\"kind\":1024,\"name\":\"obligations\",\"url\":\"interfaces/GatewayBalancesResponse.html#result.__type.obligations\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"GatewayBalancesResponse.result.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/GatewayBalancesResponse.html#result.__type.obligations.__type-3\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"GatewayBalancesResponse.result.__type.obligations\"},{\"kind\":1024,\"name\":\"balances\",\"url\":\"interfaces/GatewayBalancesResponse.html#result.__type.balances\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"GatewayBalancesResponse.result.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/GatewayBalancesResponse.html#result.__type.balances.__type-2\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"GatewayBalancesResponse.result.__type.balances\"},{\"kind\":1024,\"name\":\"assets\",\"url\":\"interfaces/GatewayBalancesResponse.html#result.__type.assets\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"GatewayBalancesResponse.result.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/GatewayBalancesResponse.html#result.__type.assets.__type-1\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"GatewayBalancesResponse.result.__type.assets\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/GatewayBalancesResponse.html#result.__type.ledger_hash\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"GatewayBalancesResponse.result.__type\"},{\"kind\":1024,\"name\":\"ledger_current_index\",\"url\":\"interfaces/GatewayBalancesResponse.html#result.__type.ledger_current_index\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"GatewayBalancesResponse.result.__type\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/GatewayBalancesResponse.html#result.__type.ledger_index\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"GatewayBalancesResponse.result.__type\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/GatewayBalancesResponse.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"GatewayBalancesResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/GatewayBalancesResponse.html#status\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"GatewayBalancesResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/GatewayBalancesResponse.html#type\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"GatewayBalancesResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/GatewayBalancesResponse.html#warning\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"GatewayBalancesResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/GatewayBalancesResponse.html#warnings\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"GatewayBalancesResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/GatewayBalancesResponse.html#forwarded\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"GatewayBalancesResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/GatewayBalancesResponse.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"GatewayBalancesResponse\"},{\"kind\":256,\"name\":\"NoRippleCheckRequest\",\"url\":\"interfaces/NoRippleCheckRequest.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/NoRippleCheckRequest.html#command\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"NoRippleCheckRequest\"},{\"kind\":1024,\"name\":\"account\",\"url\":\"interfaces/NoRippleCheckRequest.html#account\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"NoRippleCheckRequest\"},{\"kind\":1024,\"name\":\"role\",\"url\":\"interfaces/NoRippleCheckRequest.html#role\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"NoRippleCheckRequest\"},{\"kind\":1024,\"name\":\"transactions\",\"url\":\"interfaces/NoRippleCheckRequest.html#transactions\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"NoRippleCheckRequest\"},{\"kind\":1024,\"name\":\"limit\",\"url\":\"interfaces/NoRippleCheckRequest.html#limit\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"NoRippleCheckRequest\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/NoRippleCheckRequest.html#ledger_hash\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"NoRippleCheckRequest\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/NoRippleCheckRequest.html#ledger_index\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"NoRippleCheckRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/NoRippleCheckRequest.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NoRippleCheckRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/NoRippleCheckRequest.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NoRippleCheckRequest\"},{\"kind\":256,\"name\":\"NoRippleCheckResponse\",\"url\":\"interfaces/NoRippleCheckResponse.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/NoRippleCheckResponse.html#result\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"NoRippleCheckResponse\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/NoRippleCheckResponse.html#result.__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"NoRippleCheckResponse.result\"},{\"kind\":1024,\"name\":\"ledger_current_index\",\"url\":\"interfaces/NoRippleCheckResponse.html#result.__type.ledger_current_index\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"NoRippleCheckResponse.result.__type\"},{\"kind\":1024,\"name\":\"problems\",\"url\":\"interfaces/NoRippleCheckResponse.html#result.__type.problems\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"NoRippleCheckResponse.result.__type\"},{\"kind\":1024,\"name\":\"transactions\",\"url\":\"interfaces/NoRippleCheckResponse.html#result.__type.transactions\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"NoRippleCheckResponse.result.__type\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/NoRippleCheckResponse.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NoRippleCheckResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/NoRippleCheckResponse.html#status\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NoRippleCheckResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/NoRippleCheckResponse.html#type\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NoRippleCheckResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/NoRippleCheckResponse.html#warning\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NoRippleCheckResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/NoRippleCheckResponse.html#warnings\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NoRippleCheckResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/NoRippleCheckResponse.html#forwarded\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NoRippleCheckResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/NoRippleCheckResponse.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NoRippleCheckResponse\"},{\"kind\":256,\"name\":\"LedgerRequest\",\"url\":\"interfaces/LedgerRequest.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/LedgerRequest.html#command\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerRequest\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/LedgerRequest.html#ledger_hash\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerRequest\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/LedgerRequest.html#ledger_index\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerRequest\"},{\"kind\":1024,\"name\":\"full\",\"url\":\"interfaces/LedgerRequest.html#full\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerRequest\"},{\"kind\":1024,\"name\":\"accounts\",\"url\":\"interfaces/LedgerRequest.html#accounts\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerRequest\"},{\"kind\":1024,\"name\":\"transactions\",\"url\":\"interfaces/LedgerRequest.html#transactions\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerRequest\"},{\"kind\":1024,\"name\":\"expand\",\"url\":\"interfaces/LedgerRequest.html#expand\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerRequest\"},{\"kind\":1024,\"name\":\"owner_funds\",\"url\":\"interfaces/LedgerRequest.html#owner_funds\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerRequest\"},{\"kind\":1024,\"name\":\"binary\",\"url\":\"interfaces/LedgerRequest.html#binary\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerRequest\"},{\"kind\":1024,\"name\":\"queue\",\"url\":\"interfaces/LedgerRequest.html#queue\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/LedgerRequest.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"LedgerRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/LedgerRequest.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"LedgerRequest\"},{\"kind\":256,\"name\":\"LedgerResponse\",\"url\":\"interfaces/LedgerResponse.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/LedgerResponse.html#result\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerResponse\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/LedgerResponse.html#result.__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"LedgerResponse.result\"},{\"kind\":1024,\"name\":\"ledger\",\"url\":\"interfaces/LedgerResponse.html#result.__type.ledger\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"LedgerResponse.result.__type\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/LedgerResponse.html#result.__type.ledger_hash\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"LedgerResponse.result.__type\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/LedgerResponse.html#result.__type.ledger_index\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"LedgerResponse.result.__type\"},{\"kind\":1024,\"name\":\"queue_data\",\"url\":\"interfaces/LedgerResponse.html#result.__type.queue_data\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"LedgerResponse.result.__type\"},{\"kind\":1024,\"name\":\"validated\",\"url\":\"interfaces/LedgerResponse.html#result.__type.validated\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"LedgerResponse.result.__type\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/LedgerResponse.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"LedgerResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/LedgerResponse.html#status\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"LedgerResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/LedgerResponse.html#type\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"LedgerResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/LedgerResponse.html#warning\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"LedgerResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/LedgerResponse.html#warnings\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"LedgerResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/LedgerResponse.html#forwarded\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"LedgerResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/LedgerResponse.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"LedgerResponse\"},{\"kind\":256,\"name\":\"LedgerClosedRequest\",\"url\":\"interfaces/LedgerClosedRequest.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/LedgerClosedRequest.html#command\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerClosedRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/LedgerClosedRequest.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"LedgerClosedRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/LedgerClosedRequest.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"LedgerClosedRequest\"},{\"kind\":256,\"name\":\"LedgerClosedResponse\",\"url\":\"interfaces/LedgerClosedResponse.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/LedgerClosedResponse.html#result\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerClosedResponse\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/LedgerClosedResponse.html#result.__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"LedgerClosedResponse.result\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/LedgerClosedResponse.html#result.__type.ledger_hash\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"LedgerClosedResponse.result.__type\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/LedgerClosedResponse.html#result.__type.ledger_index\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"LedgerClosedResponse.result.__type\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/LedgerClosedResponse.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"LedgerClosedResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/LedgerClosedResponse.html#status\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"LedgerClosedResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/LedgerClosedResponse.html#type\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"LedgerClosedResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/LedgerClosedResponse.html#warning\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"LedgerClosedResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/LedgerClosedResponse.html#warnings\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"LedgerClosedResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/LedgerClosedResponse.html#forwarded\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"LedgerClosedResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/LedgerClosedResponse.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"LedgerClosedResponse\"},{\"kind\":256,\"name\":\"LedgerCurrentRequest\",\"url\":\"interfaces/LedgerCurrentRequest.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/LedgerCurrentRequest.html#command\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerCurrentRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/LedgerCurrentRequest.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"LedgerCurrentRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/LedgerCurrentRequest.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"LedgerCurrentRequest\"},{\"kind\":256,\"name\":\"LedgerCurrentResponse\",\"url\":\"interfaces/LedgerCurrentResponse.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/LedgerCurrentResponse.html#result\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerCurrentResponse\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/LedgerCurrentResponse.html#result.__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"LedgerCurrentResponse.result\"},{\"kind\":1024,\"name\":\"ledger_current_index\",\"url\":\"interfaces/LedgerCurrentResponse.html#result.__type.ledger_current_index\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"LedgerCurrentResponse.result.__type\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/LedgerCurrentResponse.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"LedgerCurrentResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/LedgerCurrentResponse.html#status\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"LedgerCurrentResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/LedgerCurrentResponse.html#type\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"LedgerCurrentResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/LedgerCurrentResponse.html#warning\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"LedgerCurrentResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/LedgerCurrentResponse.html#warnings\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"LedgerCurrentResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/LedgerCurrentResponse.html#forwarded\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"LedgerCurrentResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/LedgerCurrentResponse.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"LedgerCurrentResponse\"},{\"kind\":256,\"name\":\"LedgerDataRequest\",\"url\":\"interfaces/LedgerDataRequest.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/LedgerDataRequest.html#command\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerDataRequest\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/LedgerDataRequest.html#ledger_hash\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerDataRequest\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/LedgerDataRequest.html#ledger_index\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerDataRequest\"},{\"kind\":1024,\"name\":\"binary\",\"url\":\"interfaces/LedgerDataRequest.html#binary\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerDataRequest\"},{\"kind\":1024,\"name\":\"limit\",\"url\":\"interfaces/LedgerDataRequest.html#limit\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerDataRequest\"},{\"kind\":1024,\"name\":\"marker\",\"url\":\"interfaces/LedgerDataRequest.html#marker\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerDataRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/LedgerDataRequest.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"LedgerDataRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/LedgerDataRequest.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"LedgerDataRequest\"},{\"kind\":256,\"name\":\"LedgerDataResponse\",\"url\":\"interfaces/LedgerDataResponse.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/LedgerDataResponse.html#result\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerDataResponse\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/LedgerDataResponse.html#result.__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"LedgerDataResponse.result\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/LedgerDataResponse.html#result.__type.ledger_index\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"LedgerDataResponse.result.__type\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/LedgerDataResponse.html#result.__type.ledger_hash\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"LedgerDataResponse.result.__type\"},{\"kind\":1024,\"name\":\"state\",\"url\":\"interfaces/LedgerDataResponse.html#result.__type.state\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"LedgerDataResponse.result.__type\"},{\"kind\":1024,\"name\":\"marker\",\"url\":\"interfaces/LedgerDataResponse.html#result.__type.marker\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"LedgerDataResponse.result.__type\"},{\"kind\":1024,\"name\":\"validated\",\"url\":\"interfaces/LedgerDataResponse.html#result.__type.validated\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"LedgerDataResponse.result.__type\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/LedgerDataResponse.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"LedgerDataResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/LedgerDataResponse.html#status\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"LedgerDataResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/LedgerDataResponse.html#type\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"LedgerDataResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/LedgerDataResponse.html#warning\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"LedgerDataResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/LedgerDataResponse.html#warnings\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"LedgerDataResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/LedgerDataResponse.html#forwarded\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"LedgerDataResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/LedgerDataResponse.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"LedgerDataResponse\"},{\"kind\":256,\"name\":\"LedgerEntryRequest\",\"url\":\"interfaces/LedgerEntryRequest.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/LedgerEntryRequest.html#command\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntryRequest\"},{\"kind\":1024,\"name\":\"binary\",\"url\":\"interfaces/LedgerEntryRequest.html#binary\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntryRequest\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/LedgerEntryRequest.html#ledger_hash\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntryRequest\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/LedgerEntryRequest.html#ledger_index\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntryRequest\"},{\"kind\":1024,\"name\":\"index\",\"url\":\"interfaces/LedgerEntryRequest.html#index\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntryRequest\"},{\"kind\":1024,\"name\":\"account_root\",\"url\":\"interfaces/LedgerEntryRequest.html#account_root\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntryRequest\"},{\"kind\":1024,\"name\":\"check\",\"url\":\"interfaces/LedgerEntryRequest.html#check\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntryRequest\"},{\"kind\":1024,\"name\":\"deposit_preauth\",\"url\":\"interfaces/LedgerEntryRequest.html#deposit_preauth\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntryRequest\"},{\"kind\":1024,\"name\":\"directory\",\"url\":\"interfaces/LedgerEntryRequest.html#directory\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntryRequest\"},{\"kind\":1024,\"name\":\"escrow\",\"url\":\"interfaces/LedgerEntryRequest.html#escrow\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntryRequest\"},{\"kind\":1024,\"name\":\"offer\",\"url\":\"interfaces/LedgerEntryRequest.html#offer\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntryRequest\"},{\"kind\":1024,\"name\":\"payment_channel\",\"url\":\"interfaces/LedgerEntryRequest.html#payment_channel\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntryRequest\"},{\"kind\":1024,\"name\":\"ripple_state\",\"url\":\"interfaces/LedgerEntryRequest.html#ripple_state\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntryRequest\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/LedgerEntryRequest.html#ripple_state.__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"LedgerEntryRequest.ripple_state\"},{\"kind\":1024,\"name\":\"accounts\",\"url\":\"interfaces/LedgerEntryRequest.html#ripple_state.__type.accounts\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"LedgerEntryRequest.ripple_state.__type\"},{\"kind\":1024,\"name\":\"currency\",\"url\":\"interfaces/LedgerEntryRequest.html#ripple_state.__type.currency\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"LedgerEntryRequest.ripple_state.__type\"},{\"kind\":1024,\"name\":\"ticket\",\"url\":\"interfaces/LedgerEntryRequest.html#ticket\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntryRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/LedgerEntryRequest.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"LedgerEntryRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/LedgerEntryRequest.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"LedgerEntryRequest\"},{\"kind\":256,\"name\":\"LedgerEntryResponse\",\"url\":\"interfaces/LedgerEntryResponse.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/LedgerEntryResponse.html#result\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerEntryResponse\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/LedgerEntryResponse.html#result.__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"LedgerEntryResponse.result\"},{\"kind\":1024,\"name\":\"index\",\"url\":\"interfaces/LedgerEntryResponse.html#result.__type.index\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"LedgerEntryResponse.result.__type\"},{\"kind\":1024,\"name\":\"ledger_current_index\",\"url\":\"interfaces/LedgerEntryResponse.html#result.__type.ledger_current_index\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"LedgerEntryResponse.result.__type\"},{\"kind\":1024,\"name\":\"node\",\"url\":\"interfaces/LedgerEntryResponse.html#result.__type.node\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"LedgerEntryResponse.result.__type\"},{\"kind\":1024,\"name\":\"node_binary\",\"url\":\"interfaces/LedgerEntryResponse.html#result.__type.node_binary\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"LedgerEntryResponse.result.__type\"},{\"kind\":1024,\"name\":\"validated\",\"url\":\"interfaces/LedgerEntryResponse.html#result.__type.validated\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"LedgerEntryResponse.result.__type\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/LedgerEntryResponse.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"LedgerEntryResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/LedgerEntryResponse.html#status\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"LedgerEntryResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/LedgerEntryResponse.html#type\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"LedgerEntryResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/LedgerEntryResponse.html#warning\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"LedgerEntryResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/LedgerEntryResponse.html#warnings\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"LedgerEntryResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/LedgerEntryResponse.html#forwarded\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"LedgerEntryResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/LedgerEntryResponse.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"LedgerEntryResponse\"},{\"kind\":256,\"name\":\"SubmitRequest\",\"url\":\"interfaces/SubmitRequest.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/SubmitRequest.html#command\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"SubmitRequest\"},{\"kind\":1024,\"name\":\"tx_blob\",\"url\":\"interfaces/SubmitRequest.html#tx_blob\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"SubmitRequest\"},{\"kind\":1024,\"name\":\"fail_hard\",\"url\":\"interfaces/SubmitRequest.html#fail_hard\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"SubmitRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/SubmitRequest.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"SubmitRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/SubmitRequest.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"SubmitRequest\"},{\"kind\":256,\"name\":\"SubmitResponse\",\"url\":\"interfaces/SubmitResponse.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/SubmitResponse.html#result\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"SubmitResponse\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/SubmitResponse.html#result.__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"SubmitResponse.result\"},{\"kind\":1024,\"name\":\"engine_result\",\"url\":\"interfaces/SubmitResponse.html#result.__type.engine_result\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"SubmitResponse.result.__type\"},{\"kind\":1024,\"name\":\"engine_result_code\",\"url\":\"interfaces/SubmitResponse.html#result.__type.engine_result_code\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"SubmitResponse.result.__type\"},{\"kind\":1024,\"name\":\"engine_result_message\",\"url\":\"interfaces/SubmitResponse.html#result.__type.engine_result_message\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"SubmitResponse.result.__type\"},{\"kind\":1024,\"name\":\"tx_blob\",\"url\":\"interfaces/SubmitResponse.html#result.__type.tx_blob\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"SubmitResponse.result.__type\"},{\"kind\":1024,\"name\":\"tx_json\",\"url\":\"interfaces/SubmitResponse.html#result.__type.tx_json\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"SubmitResponse.result.__type\"},{\"kind\":1024,\"name\":\"accepted\",\"url\":\"interfaces/SubmitResponse.html#result.__type.accepted\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"SubmitResponse.result.__type\"},{\"kind\":1024,\"name\":\"account_sequence_available\",\"url\":\"interfaces/SubmitResponse.html#result.__type.account_sequence_available\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"SubmitResponse.result.__type\"},{\"kind\":1024,\"name\":\"account_sequence_next\",\"url\":\"interfaces/SubmitResponse.html#result.__type.account_sequence_next\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"SubmitResponse.result.__type\"},{\"kind\":1024,\"name\":\"applied\",\"url\":\"interfaces/SubmitResponse.html#result.__type.applied\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"SubmitResponse.result.__type\"},{\"kind\":1024,\"name\":\"broadcast\",\"url\":\"interfaces/SubmitResponse.html#result.__type.broadcast\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"SubmitResponse.result.__type\"},{\"kind\":1024,\"name\":\"kept\",\"url\":\"interfaces/SubmitResponse.html#result.__type.kept\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"SubmitResponse.result.__type\"},{\"kind\":1024,\"name\":\"queued\",\"url\":\"interfaces/SubmitResponse.html#result.__type.queued\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"SubmitResponse.result.__type\"},{\"kind\":1024,\"name\":\"open_ledger_cost\",\"url\":\"interfaces/SubmitResponse.html#result.__type.open_ledger_cost\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"SubmitResponse.result.__type\"},{\"kind\":1024,\"name\":\"validated_ledger_index\",\"url\":\"interfaces/SubmitResponse.html#result.__type.validated_ledger_index\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"SubmitResponse.result.__type\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/SubmitResponse.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"SubmitResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/SubmitResponse.html#status\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"SubmitResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/SubmitResponse.html#type\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"SubmitResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/SubmitResponse.html#warning\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"SubmitResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/SubmitResponse.html#warnings\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"SubmitResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/SubmitResponse.html#forwarded\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"SubmitResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/SubmitResponse.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"SubmitResponse\"},{\"kind\":256,\"name\":\"SubmitMultisignedRequest\",\"url\":\"interfaces/SubmitMultisignedRequest.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/SubmitMultisignedRequest.html#command\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"SubmitMultisignedRequest\"},{\"kind\":1024,\"name\":\"tx_json\",\"url\":\"interfaces/SubmitMultisignedRequest.html#tx_json\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"SubmitMultisignedRequest\"},{\"kind\":1024,\"name\":\"fail_hard\",\"url\":\"interfaces/SubmitMultisignedRequest.html#fail_hard\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"SubmitMultisignedRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/SubmitMultisignedRequest.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"SubmitMultisignedRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/SubmitMultisignedRequest.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"SubmitMultisignedRequest\"},{\"kind\":256,\"name\":\"SubmitMultisignedResponse\",\"url\":\"interfaces/SubmitMultisignedResponse.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/SubmitMultisignedResponse.html#result\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"SubmitMultisignedResponse\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/SubmitMultisignedResponse.html#result.__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"SubmitMultisignedResponse.result\"},{\"kind\":1024,\"name\":\"engine_result\",\"url\":\"interfaces/SubmitMultisignedResponse.html#result.__type.engine_result\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"SubmitMultisignedResponse.result.__type\"},{\"kind\":1024,\"name\":\"engine_result_code\",\"url\":\"interfaces/SubmitMultisignedResponse.html#result.__type.engine_result_code\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"SubmitMultisignedResponse.result.__type\"},{\"kind\":1024,\"name\":\"engine_result_message\",\"url\":\"interfaces/SubmitMultisignedResponse.html#result.__type.engine_result_message\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"SubmitMultisignedResponse.result.__type\"},{\"kind\":1024,\"name\":\"tx_blob\",\"url\":\"interfaces/SubmitMultisignedResponse.html#result.__type.tx_blob\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"SubmitMultisignedResponse.result.__type\"},{\"kind\":1024,\"name\":\"tx_json\",\"url\":\"interfaces/SubmitMultisignedResponse.html#result.__type.tx_json\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"SubmitMultisignedResponse.result.__type\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/SubmitMultisignedResponse.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"SubmitMultisignedResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/SubmitMultisignedResponse.html#status\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"SubmitMultisignedResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/SubmitMultisignedResponse.html#type\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"SubmitMultisignedResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/SubmitMultisignedResponse.html#warning\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"SubmitMultisignedResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/SubmitMultisignedResponse.html#warnings\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"SubmitMultisignedResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/SubmitMultisignedResponse.html#forwarded\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"SubmitMultisignedResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/SubmitMultisignedResponse.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"SubmitMultisignedResponse\"},{\"kind\":256,\"name\":\"TransactionEntryRequest\",\"url\":\"interfaces/TransactionEntryRequest.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/TransactionEntryRequest.html#command\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"TransactionEntryRequest\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/TransactionEntryRequest.html#ledger_hash\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"TransactionEntryRequest\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/TransactionEntryRequest.html#ledger_index\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"TransactionEntryRequest\"},{\"kind\":1024,\"name\":\"tx_hash\",\"url\":\"interfaces/TransactionEntryRequest.html#tx_hash\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"TransactionEntryRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/TransactionEntryRequest.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"TransactionEntryRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/TransactionEntryRequest.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"TransactionEntryRequest\"},{\"kind\":256,\"name\":\"TransactionEntryResponse\",\"url\":\"interfaces/TransactionEntryResponse.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/TransactionEntryResponse.html#result\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"TransactionEntryResponse\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/TransactionEntryResponse.html#result.__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"TransactionEntryResponse.result\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/TransactionEntryResponse.html#result.__type.ledger_hash\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"TransactionEntryResponse.result.__type\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/TransactionEntryResponse.html#result.__type.ledger_index\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"TransactionEntryResponse.result.__type\"},{\"kind\":1024,\"name\":\"metadata\",\"url\":\"interfaces/TransactionEntryResponse.html#result.__type.metadata\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"TransactionEntryResponse.result.__type\"},{\"kind\":1024,\"name\":\"tx_json\",\"url\":\"interfaces/TransactionEntryResponse.html#result.__type.tx_json\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"TransactionEntryResponse.result.__type\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/TransactionEntryResponse.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"TransactionEntryResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/TransactionEntryResponse.html#status\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"TransactionEntryResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/TransactionEntryResponse.html#type\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"TransactionEntryResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/TransactionEntryResponse.html#warning\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"TransactionEntryResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/TransactionEntryResponse.html#warnings\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"TransactionEntryResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/TransactionEntryResponse.html#forwarded\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"TransactionEntryResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/TransactionEntryResponse.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"TransactionEntryResponse\"},{\"kind\":256,\"name\":\"TxRequest\",\"url\":\"interfaces/TxRequest.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/TxRequest.html#command\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"TxRequest\"},{\"kind\":1024,\"name\":\"transaction\",\"url\":\"interfaces/TxRequest.html#transaction\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"TxRequest\"},{\"kind\":1024,\"name\":\"binary\",\"url\":\"interfaces/TxRequest.html#binary\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"TxRequest\"},{\"kind\":1024,\"name\":\"min_ledger\",\"url\":\"interfaces/TxRequest.html#min_ledger\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"TxRequest\"},{\"kind\":1024,\"name\":\"max_ledger\",\"url\":\"interfaces/TxRequest.html#max_ledger\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"TxRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/TxRequest.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"TxRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/TxRequest.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"TxRequest\"},{\"kind\":256,\"name\":\"TxResponse\",\"url\":\"interfaces/TxResponse.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/TxResponse.html#result\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"TxResponse\"},{\"kind\":1024,\"name\":\"searched_all\",\"url\":\"interfaces/TxResponse.html#searched_all\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"TxResponse\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/TxResponse.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"TxResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/TxResponse.html#status\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"TxResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/TxResponse.html#type\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"TxResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/TxResponse.html#warning\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"TxResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/TxResponse.html#warnings\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"TxResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/TxResponse.html#forwarded\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"TxResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/TxResponse.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"TxResponse\"},{\"kind\":256,\"name\":\"BookOffersRequest\",\"url\":\"interfaces/BookOffersRequest.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/BookOffersRequest.html#command\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"BookOffersRequest\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/BookOffersRequest.html#ledger_hash\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"BookOffersRequest\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/BookOffersRequest.html#ledger_index\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"BookOffersRequest\"},{\"kind\":1024,\"name\":\"limit\",\"url\":\"interfaces/BookOffersRequest.html#limit\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"BookOffersRequest\"},{\"kind\":1024,\"name\":\"taker\",\"url\":\"interfaces/BookOffersRequest.html#taker\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"BookOffersRequest\"},{\"kind\":1024,\"name\":\"taker_gets\",\"url\":\"interfaces/BookOffersRequest.html#taker_gets\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"BookOffersRequest\"},{\"kind\":1024,\"name\":\"taker_pays\",\"url\":\"interfaces/BookOffersRequest.html#taker_pays\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"BookOffersRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/BookOffersRequest.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"BookOffersRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/BookOffersRequest.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"BookOffersRequest\"},{\"kind\":256,\"name\":\"BookOffer\",\"url\":\"interfaces/BookOffer.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"owner_funds\",\"url\":\"interfaces/BookOffer.html#owner_funds\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"BookOffer\"},{\"kind\":1024,\"name\":\"taker_gets_funded\",\"url\":\"interfaces/BookOffer.html#taker_gets_funded\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"BookOffer\"},{\"kind\":1024,\"name\":\"taker_pays_funded\",\"url\":\"interfaces/BookOffer.html#taker_pays_funded\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"BookOffer\"},{\"kind\":1024,\"name\":\"quality\",\"url\":\"interfaces/BookOffer.html#quality\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"BookOffer\"},{\"kind\":1024,\"name\":\"LedgerEntryType\",\"url\":\"interfaces/BookOffer.html#LedgerEntryType\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"BookOffer\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/BookOffer.html#Flags\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"BookOffer\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/BookOffer.html#Account\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"BookOffer\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/BookOffer.html#Sequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"BookOffer\"},{\"kind\":1024,\"name\":\"TakerPays\",\"url\":\"interfaces/BookOffer.html#TakerPays\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"BookOffer\"},{\"kind\":1024,\"name\":\"TakerGets\",\"url\":\"interfaces/BookOffer.html#TakerGets\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"BookOffer\"},{\"kind\":1024,\"name\":\"BookDirectory\",\"url\":\"interfaces/BookOffer.html#BookDirectory\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"BookOffer\"},{\"kind\":1024,\"name\":\"BookNode\",\"url\":\"interfaces/BookOffer.html#BookNode\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"BookOffer\"},{\"kind\":1024,\"name\":\"OwnerNode\",\"url\":\"interfaces/BookOffer.html#OwnerNode\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"BookOffer\"},{\"kind\":1024,\"name\":\"PreviousTxnID\",\"url\":\"interfaces/BookOffer.html#PreviousTxnID\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"BookOffer\"},{\"kind\":1024,\"name\":\"PreviousTxnLgrSeq\",\"url\":\"interfaces/BookOffer.html#PreviousTxnLgrSeq\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"BookOffer\"},{\"kind\":1024,\"name\":\"Expiration\",\"url\":\"interfaces/BookOffer.html#Expiration\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"BookOffer\"},{\"kind\":1024,\"name\":\"index\",\"url\":\"interfaces/BookOffer.html#index\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"BookOffer\"},{\"kind\":256,\"name\":\"BookOffersResponse\",\"url\":\"interfaces/BookOffersResponse.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/BookOffersResponse.html#result\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"BookOffersResponse\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/BookOffersResponse.html#result.__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"BookOffersResponse.result\"},{\"kind\":1024,\"name\":\"ledger_current_index\",\"url\":\"interfaces/BookOffersResponse.html#result.__type.ledger_current_index\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"BookOffersResponse.result.__type\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/BookOffersResponse.html#result.__type.ledger_index\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"BookOffersResponse.result.__type\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/BookOffersResponse.html#result.__type.ledger_hash\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"BookOffersResponse.result.__type\"},{\"kind\":1024,\"name\":\"offers\",\"url\":\"interfaces/BookOffersResponse.html#result.__type.offers\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"BookOffersResponse.result.__type\"},{\"kind\":1024,\"name\":\"validated\",\"url\":\"interfaces/BookOffersResponse.html#result.__type.validated\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"BookOffersResponse.result.__type\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/BookOffersResponse.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"BookOffersResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/BookOffersResponse.html#status\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"BookOffersResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/BookOffersResponse.html#type\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"BookOffersResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/BookOffersResponse.html#warning\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"BookOffersResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/BookOffersResponse.html#warnings\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"BookOffersResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/BookOffersResponse.html#forwarded\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"BookOffersResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/BookOffersResponse.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"BookOffersResponse\"},{\"kind\":256,\"name\":\"DepositAuthorizedRequest\",\"url\":\"interfaces/DepositAuthorizedRequest.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/DepositAuthorizedRequest.html#command\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"DepositAuthorizedRequest\"},{\"kind\":1024,\"name\":\"source_account\",\"url\":\"interfaces/DepositAuthorizedRequest.html#source_account\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"DepositAuthorizedRequest\"},{\"kind\":1024,\"name\":\"destination_account\",\"url\":\"interfaces/DepositAuthorizedRequest.html#destination_account\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"DepositAuthorizedRequest\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/DepositAuthorizedRequest.html#ledger_hash\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"DepositAuthorizedRequest\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/DepositAuthorizedRequest.html#ledger_index\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"DepositAuthorizedRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/DepositAuthorizedRequest.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"DepositAuthorizedRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/DepositAuthorizedRequest.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"DepositAuthorizedRequest\"},{\"kind\":256,\"name\":\"DepositAuthorizedResponse\",\"url\":\"interfaces/DepositAuthorizedResponse.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/DepositAuthorizedResponse.html#result\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"DepositAuthorizedResponse\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/DepositAuthorizedResponse.html#result.__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"DepositAuthorizedResponse.result\"},{\"kind\":1024,\"name\":\"deposit_authorized\",\"url\":\"interfaces/DepositAuthorizedResponse.html#result.__type.deposit_authorized\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"DepositAuthorizedResponse.result.__type\"},{\"kind\":1024,\"name\":\"destination_account\",\"url\":\"interfaces/DepositAuthorizedResponse.html#result.__type.destination_account\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"DepositAuthorizedResponse.result.__type\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/DepositAuthorizedResponse.html#result.__type.ledger_hash\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"DepositAuthorizedResponse.result.__type\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/DepositAuthorizedResponse.html#result.__type.ledger_index\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"DepositAuthorizedResponse.result.__type\"},{\"kind\":1024,\"name\":\"ledger_current_index\",\"url\":\"interfaces/DepositAuthorizedResponse.html#result.__type.ledger_current_index\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"DepositAuthorizedResponse.result.__type\"},{\"kind\":1024,\"name\":\"source_account\",\"url\":\"interfaces/DepositAuthorizedResponse.html#result.__type.source_account\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"DepositAuthorizedResponse.result.__type\"},{\"kind\":1024,\"name\":\"validated\",\"url\":\"interfaces/DepositAuthorizedResponse.html#result.__type.validated\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"DepositAuthorizedResponse.result.__type\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/DepositAuthorizedResponse.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"DepositAuthorizedResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/DepositAuthorizedResponse.html#status\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"DepositAuthorizedResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/DepositAuthorizedResponse.html#type\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"DepositAuthorizedResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/DepositAuthorizedResponse.html#warning\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"DepositAuthorizedResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/DepositAuthorizedResponse.html#warnings\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"DepositAuthorizedResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/DepositAuthorizedResponse.html#forwarded\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"DepositAuthorizedResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/DepositAuthorizedResponse.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"DepositAuthorizedResponse\"},{\"kind\":4194304,\"name\":\"PathFindRequest\",\"url\":\"types/PathFindRequest.html\",\"classes\":\"tsd-kind-type-alias\"},{\"kind\":256,\"name\":\"PathFindCreateRequest\",\"url\":\"interfaces/PathFindCreateRequest.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"subcommand\",\"url\":\"interfaces/PathFindCreateRequest.html#subcommand\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"PathFindCreateRequest\"},{\"kind\":1024,\"name\":\"source_account\",\"url\":\"interfaces/PathFindCreateRequest.html#source_account\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"PathFindCreateRequest\"},{\"kind\":1024,\"name\":\"destination_account\",\"url\":\"interfaces/PathFindCreateRequest.html#destination_account\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"PathFindCreateRequest\"},{\"kind\":1024,\"name\":\"destination_amount\",\"url\":\"interfaces/PathFindCreateRequest.html#destination_amount\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"PathFindCreateRequest\"},{\"kind\":1024,\"name\":\"send_max\",\"url\":\"interfaces/PathFindCreateRequest.html#send_max\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"PathFindCreateRequest\"},{\"kind\":1024,\"name\":\"paths\",\"url\":\"interfaces/PathFindCreateRequest.html#paths\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"PathFindCreateRequest\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/PathFindCreateRequest.html#command\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"PathFindCreateRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/PathFindCreateRequest.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"PathFindCreateRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/PathFindCreateRequest.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"PathFindCreateRequest\"},{\"kind\":256,\"name\":\"PathFindCloseRequest\",\"url\":\"interfaces/PathFindCloseRequest.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"subcommand\",\"url\":\"interfaces/PathFindCloseRequest.html#subcommand\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"PathFindCloseRequest\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/PathFindCloseRequest.html#command\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"PathFindCloseRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/PathFindCloseRequest.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"PathFindCloseRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/PathFindCloseRequest.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"PathFindCloseRequest\"},{\"kind\":256,\"name\":\"PathFindStatusRequest\",\"url\":\"interfaces/PathFindStatusRequest.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"subcommand\",\"url\":\"interfaces/PathFindStatusRequest.html#subcommand\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"PathFindStatusRequest\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/PathFindStatusRequest.html#command\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"PathFindStatusRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/PathFindStatusRequest.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"PathFindStatusRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/PathFindStatusRequest.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"PathFindStatusRequest\"},{\"kind\":256,\"name\":\"PathFindResponse\",\"url\":\"interfaces/PathFindResponse.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/PathFindResponse.html#result\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"PathFindResponse\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/PathFindResponse.html#result.__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"PathFindResponse.result\"},{\"kind\":1024,\"name\":\"alternatives\",\"url\":\"interfaces/PathFindResponse.html#result.__type.alternatives\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"PathFindResponse.result.__type\"},{\"kind\":1024,\"name\":\"destination_account\",\"url\":\"interfaces/PathFindResponse.html#result.__type.destination_account\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"PathFindResponse.result.__type\"},{\"kind\":1024,\"name\":\"destination_amount\",\"url\":\"interfaces/PathFindResponse.html#result.__type.destination_amount\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"PathFindResponse.result.__type\"},{\"kind\":1024,\"name\":\"source_account\",\"url\":\"interfaces/PathFindResponse.html#result.__type.source_account\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"PathFindResponse.result.__type\"},{\"kind\":1024,\"name\":\"full_reply\",\"url\":\"interfaces/PathFindResponse.html#result.__type.full_reply\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"PathFindResponse.result.__type\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/PathFindResponse.html#result.__type.id-1\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"PathFindResponse.result.__type\"},{\"kind\":1024,\"name\":\"closed\",\"url\":\"interfaces/PathFindResponse.html#result.__type.closed\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"PathFindResponse.result.__type\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/PathFindResponse.html#result.__type.status\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"PathFindResponse.result.__type\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/PathFindResponse.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"PathFindResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/PathFindResponse.html#status-1\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"PathFindResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/PathFindResponse.html#type\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"PathFindResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/PathFindResponse.html#warning\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"PathFindResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/PathFindResponse.html#warnings\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"PathFindResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/PathFindResponse.html#forwarded\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"PathFindResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/PathFindResponse.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"PathFindResponse\"},{\"kind\":256,\"name\":\"RipplePathFindRequest\",\"url\":\"interfaces/RipplePathFindRequest.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/RipplePathFindRequest.html#command\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"RipplePathFindRequest\"},{\"kind\":1024,\"name\":\"source_account\",\"url\":\"interfaces/RipplePathFindRequest.html#source_account\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"RipplePathFindRequest\"},{\"kind\":1024,\"name\":\"destination_account\",\"url\":\"interfaces/RipplePathFindRequest.html#destination_account\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"RipplePathFindRequest\"},{\"kind\":1024,\"name\":\"destination_amount\",\"url\":\"interfaces/RipplePathFindRequest.html#destination_amount\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"RipplePathFindRequest\"},{\"kind\":1024,\"name\":\"send_max\",\"url\":\"interfaces/RipplePathFindRequest.html#send_max\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"RipplePathFindRequest\"},{\"kind\":1024,\"name\":\"source_currencies\",\"url\":\"interfaces/RipplePathFindRequest.html#source_currencies\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"RipplePathFindRequest\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/RipplePathFindRequest.html#ledger_hash\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"RipplePathFindRequest\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/RipplePathFindRequest.html#ledger_index\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"RipplePathFindRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/RipplePathFindRequest.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"RipplePathFindRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/RipplePathFindRequest.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"RipplePathFindRequest\"},{\"kind\":256,\"name\":\"RipplePathFindResponse\",\"url\":\"interfaces/RipplePathFindResponse.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/RipplePathFindResponse.html#result\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"RipplePathFindResponse\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/RipplePathFindResponse.html#result.__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"RipplePathFindResponse.result\"},{\"kind\":1024,\"name\":\"alternatives\",\"url\":\"interfaces/RipplePathFindResponse.html#result.__type.alternatives\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"RipplePathFindResponse.result.__type\"},{\"kind\":1024,\"name\":\"destination_account\",\"url\":\"interfaces/RipplePathFindResponse.html#result.__type.destination_account\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"RipplePathFindResponse.result.__type\"},{\"kind\":1024,\"name\":\"destination_currencies\",\"url\":\"interfaces/RipplePathFindResponse.html#result.__type.destination_currencies\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"RipplePathFindResponse.result.__type\"},{\"kind\":1024,\"name\":\"destination_amount\",\"url\":\"interfaces/RipplePathFindResponse.html#result.__type.destination_amount\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"RipplePathFindResponse.result.__type\"},{\"kind\":1024,\"name\":\"full_reply\",\"url\":\"interfaces/RipplePathFindResponse.html#result.__type.full_reply\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"RipplePathFindResponse.result.__type\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/RipplePathFindResponse.html#result.__type.id-1\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"RipplePathFindResponse.result.__type\"},{\"kind\":1024,\"name\":\"ledger_current_index\",\"url\":\"interfaces/RipplePathFindResponse.html#result.__type.ledger_current_index\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"RipplePathFindResponse.result.__type\"},{\"kind\":1024,\"name\":\"source_account\",\"url\":\"interfaces/RipplePathFindResponse.html#result.__type.source_account\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"RipplePathFindResponse.result.__type\"},{\"kind\":1024,\"name\":\"validated\",\"url\":\"interfaces/RipplePathFindResponse.html#result.__type.validated\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"RipplePathFindResponse.result.__type\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/RipplePathFindResponse.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"RipplePathFindResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/RipplePathFindResponse.html#status\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"RipplePathFindResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/RipplePathFindResponse.html#type\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"RipplePathFindResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/RipplePathFindResponse.html#warning\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"RipplePathFindResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/RipplePathFindResponse.html#warnings\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"RipplePathFindResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/RipplePathFindResponse.html#forwarded\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"RipplePathFindResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/RipplePathFindResponse.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"RipplePathFindResponse\"},{\"kind\":256,\"name\":\"ChannelVerifyRequest\",\"url\":\"interfaces/ChannelVerifyRequest.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/ChannelVerifyRequest.html#command\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ChannelVerifyRequest\"},{\"kind\":1024,\"name\":\"amount\",\"url\":\"interfaces/ChannelVerifyRequest.html#amount\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ChannelVerifyRequest\"},{\"kind\":1024,\"name\":\"channel_id\",\"url\":\"interfaces/ChannelVerifyRequest.html#channel_id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ChannelVerifyRequest\"},{\"kind\":1024,\"name\":\"public_key\",\"url\":\"interfaces/ChannelVerifyRequest.html#public_key\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ChannelVerifyRequest\"},{\"kind\":1024,\"name\":\"signature\",\"url\":\"interfaces/ChannelVerifyRequest.html#signature\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ChannelVerifyRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/ChannelVerifyRequest.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"ChannelVerifyRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/ChannelVerifyRequest.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"ChannelVerifyRequest\"},{\"kind\":256,\"name\":\"ChannelVerifyResponse\",\"url\":\"interfaces/ChannelVerifyResponse.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/ChannelVerifyResponse.html#result\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ChannelVerifyResponse\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/ChannelVerifyResponse.html#result.__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"ChannelVerifyResponse.result\"},{\"kind\":1024,\"name\":\"signature_verified\",\"url\":\"interfaces/ChannelVerifyResponse.html#result.__type.signature_verified\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ChannelVerifyResponse.result.__type\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/ChannelVerifyResponse.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"ChannelVerifyResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/ChannelVerifyResponse.html#status\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"ChannelVerifyResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/ChannelVerifyResponse.html#type\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"ChannelVerifyResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/ChannelVerifyResponse.html#warning\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"ChannelVerifyResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/ChannelVerifyResponse.html#warnings\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"ChannelVerifyResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/ChannelVerifyResponse.html#forwarded\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"ChannelVerifyResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/ChannelVerifyResponse.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"ChannelVerifyResponse\"},{\"kind\":256,\"name\":\"SubscribeRequest\",\"url\":\"interfaces/SubscribeRequest.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/SubscribeRequest.html#command\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"SubscribeRequest\"},{\"kind\":1024,\"name\":\"streams\",\"url\":\"interfaces/SubscribeRequest.html#streams\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"SubscribeRequest\"},{\"kind\":1024,\"name\":\"accounts\",\"url\":\"interfaces/SubscribeRequest.html#accounts\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"SubscribeRequest\"},{\"kind\":1024,\"name\":\"accounts_proposed\",\"url\":\"interfaces/SubscribeRequest.html#accounts_proposed\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"SubscribeRequest\"},{\"kind\":1024,\"name\":\"books\",\"url\":\"interfaces/SubscribeRequest.html#books\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"SubscribeRequest\"},{\"kind\":1024,\"name\":\"url\",\"url\":\"interfaces/SubscribeRequest.html#url\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"SubscribeRequest\"},{\"kind\":1024,\"name\":\"url_username\",\"url\":\"interfaces/SubscribeRequest.html#url_username\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"SubscribeRequest\"},{\"kind\":1024,\"name\":\"url_password\",\"url\":\"interfaces/SubscribeRequest.html#url_password\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"SubscribeRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/SubscribeRequest.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"SubscribeRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/SubscribeRequest.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"SubscribeRequest\"},{\"kind\":256,\"name\":\"SubscribeResponse\",\"url\":\"interfaces/SubscribeResponse.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/SubscribeResponse.html#result\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"SubscribeResponse\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/SubscribeResponse.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"SubscribeResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/SubscribeResponse.html#status\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"SubscribeResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/SubscribeResponse.html#type\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"SubscribeResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/SubscribeResponse.html#warning\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"SubscribeResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/SubscribeResponse.html#warnings\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"SubscribeResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/SubscribeResponse.html#forwarded\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"SubscribeResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/SubscribeResponse.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"SubscribeResponse\"},{\"kind\":4194304,\"name\":\"Stream\",\"url\":\"types/Stream.html\",\"classes\":\"tsd-kind-type-alias\"},{\"kind\":256,\"name\":\"LedgerStream\",\"url\":\"interfaces/LedgerStream.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/LedgerStream.html#type\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerStream\"},{\"kind\":1024,\"name\":\"fee_base\",\"url\":\"interfaces/LedgerStream.html#fee_base\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerStream\"},{\"kind\":1024,\"name\":\"fee_ref\",\"url\":\"interfaces/LedgerStream.html#fee_ref\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerStream\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/LedgerStream.html#ledger_hash\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerStream\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/LedgerStream.html#ledger_index\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerStream\"},{\"kind\":1024,\"name\":\"ledger_time\",\"url\":\"interfaces/LedgerStream.html#ledger_time\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerStream\"},{\"kind\":1024,\"name\":\"reserve_base\",\"url\":\"interfaces/LedgerStream.html#reserve_base\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerStream\"},{\"kind\":1024,\"name\":\"reserve_inc\",\"url\":\"interfaces/LedgerStream.html#reserve_inc\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerStream\"},{\"kind\":1024,\"name\":\"txn_count\",\"url\":\"interfaces/LedgerStream.html#txn_count\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerStream\"},{\"kind\":1024,\"name\":\"validated_ledgers\",\"url\":\"interfaces/LedgerStream.html#validated_ledgers\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LedgerStream\"},{\"kind\":256,\"name\":\"ValidationStream\",\"url\":\"interfaces/ValidationStream.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/ValidationStream.html#type\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ValidationStream\"},{\"kind\":1024,\"name\":\"amendments\",\"url\":\"interfaces/ValidationStream.html#amendments\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ValidationStream\"},{\"kind\":1024,\"name\":\"base_fee\",\"url\":\"interfaces/ValidationStream.html#base_fee\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ValidationStream\"},{\"kind\":1024,\"name\":\"cookie\",\"url\":\"interfaces/ValidationStream.html#cookie\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ValidationStream\"},{\"kind\":1024,\"name\":\"data\",\"url\":\"interfaces/ValidationStream.html#data\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ValidationStream\"},{\"kind\":1024,\"name\":\"flags\",\"url\":\"interfaces/ValidationStream.html#flags\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ValidationStream\"},{\"kind\":1024,\"name\":\"full\",\"url\":\"interfaces/ValidationStream.html#full\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ValidationStream\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/ValidationStream.html#ledger_hash\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ValidationStream\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/ValidationStream.html#ledger_index\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ValidationStream\"},{\"kind\":1024,\"name\":\"load_fee\",\"url\":\"interfaces/ValidationStream.html#load_fee\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ValidationStream\"},{\"kind\":1024,\"name\":\"master_key\",\"url\":\"interfaces/ValidationStream.html#master_key\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ValidationStream\"},{\"kind\":1024,\"name\":\"reserve_base\",\"url\":\"interfaces/ValidationStream.html#reserve_base\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ValidationStream\"},{\"kind\":1024,\"name\":\"reserve_inc\",\"url\":\"interfaces/ValidationStream.html#reserve_inc\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ValidationStream\"},{\"kind\":1024,\"name\":\"signature\",\"url\":\"interfaces/ValidationStream.html#signature\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ValidationStream\"},{\"kind\":1024,\"name\":\"signing_time\",\"url\":\"interfaces/ValidationStream.html#signing_time\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ValidationStream\"},{\"kind\":1024,\"name\":\"validation_public_key\",\"url\":\"interfaces/ValidationStream.html#validation_public_key\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ValidationStream\"},{\"kind\":256,\"name\":\"TransactionStream\",\"url\":\"interfaces/TransactionStream.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/TransactionStream.html#status\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"TransactionStream\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/TransactionStream.html#type\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"TransactionStream\"},{\"kind\":1024,\"name\":\"engine_result\",\"url\":\"interfaces/TransactionStream.html#engine_result\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"TransactionStream\"},{\"kind\":1024,\"name\":\"engine_result_code\",\"url\":\"interfaces/TransactionStream.html#engine_result_code\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"TransactionStream\"},{\"kind\":1024,\"name\":\"engine_result_message\",\"url\":\"interfaces/TransactionStream.html#engine_result_message\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"TransactionStream\"},{\"kind\":1024,\"name\":\"ledger_current_index\",\"url\":\"interfaces/TransactionStream.html#ledger_current_index\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"TransactionStream\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/TransactionStream.html#ledger_hash\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"TransactionStream\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/TransactionStream.html#ledger_index\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"TransactionStream\"},{\"kind\":1024,\"name\":\"meta\",\"url\":\"interfaces/TransactionStream.html#meta\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"TransactionStream\"},{\"kind\":1024,\"name\":\"transaction\",\"url\":\"interfaces/TransactionStream.html#transaction\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"TransactionStream\"},{\"kind\":1024,\"name\":\"validated\",\"url\":\"interfaces/TransactionStream.html#validated\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"TransactionStream\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/TransactionStream.html#warnings\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"TransactionStream\"},{\"kind\":256,\"name\":\"PathFindStream\",\"url\":\"interfaces/PathFindStream.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/PathFindStream.html#type\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"PathFindStream\"},{\"kind\":1024,\"name\":\"source_account\",\"url\":\"interfaces/PathFindStream.html#source_account\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"PathFindStream\"},{\"kind\":1024,\"name\":\"destination_account\",\"url\":\"interfaces/PathFindStream.html#destination_account\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"PathFindStream\"},{\"kind\":1024,\"name\":\"destination_amount\",\"url\":\"interfaces/PathFindStream.html#destination_amount\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"PathFindStream\"},{\"kind\":1024,\"name\":\"full_reply\",\"url\":\"interfaces/PathFindStream.html#full_reply\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"PathFindStream\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/PathFindStream.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"PathFindStream\"},{\"kind\":1024,\"name\":\"send_max\",\"url\":\"interfaces/PathFindStream.html#send_max\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"PathFindStream\"},{\"kind\":1024,\"name\":\"alternatives\",\"url\":\"interfaces/PathFindStream.html#alternatives\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"PathFindStream\"},{\"kind\":256,\"name\":\"PeerStatusStream\",\"url\":\"interfaces/PeerStatusStream.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/PeerStatusStream.html#type\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"PeerStatusStream\"},{\"kind\":1024,\"name\":\"action\",\"url\":\"interfaces/PeerStatusStream.html#action\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"PeerStatusStream\"},{\"kind\":1024,\"name\":\"date\",\"url\":\"interfaces/PeerStatusStream.html#date\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"PeerStatusStream\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/PeerStatusStream.html#ledger_hash\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"PeerStatusStream\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/PeerStatusStream.html#ledger_index\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"PeerStatusStream\"},{\"kind\":1024,\"name\":\"ledger_index_max\",\"url\":\"interfaces/PeerStatusStream.html#ledger_index_max\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"PeerStatusStream\"},{\"kind\":1024,\"name\":\"ledger_index_min\",\"url\":\"interfaces/PeerStatusStream.html#ledger_index_min\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"PeerStatusStream\"},{\"kind\":256,\"name\":\"OrderBookStream\",\"url\":\"interfaces/OrderBookStream.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/OrderBookStream.html#status\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"OrderBookStream\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/OrderBookStream.html#type\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"OrderBookStream\"},{\"kind\":1024,\"name\":\"engine_result\",\"url\":\"interfaces/OrderBookStream.html#engine_result\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"OrderBookStream\"},{\"kind\":1024,\"name\":\"engine_result_code\",\"url\":\"interfaces/OrderBookStream.html#engine_result_code\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"OrderBookStream\"},{\"kind\":1024,\"name\":\"engine_result_message\",\"url\":\"interfaces/OrderBookStream.html#engine_result_message\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"OrderBookStream\"},{\"kind\":1024,\"name\":\"ledger_current_index\",\"url\":\"interfaces/OrderBookStream.html#ledger_current_index\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"OrderBookStream\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/OrderBookStream.html#ledger_hash\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"OrderBookStream\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/OrderBookStream.html#ledger_index\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"OrderBookStream\"},{\"kind\":1024,\"name\":\"meta\",\"url\":\"interfaces/OrderBookStream.html#meta\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"OrderBookStream\"},{\"kind\":1024,\"name\":\"transaction\",\"url\":\"interfaces/OrderBookStream.html#transaction\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"OrderBookStream\"},{\"kind\":1024,\"name\":\"validated\",\"url\":\"interfaces/OrderBookStream.html#validated\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"OrderBookStream\"},{\"kind\":256,\"name\":\"ConsensusStream\",\"url\":\"interfaces/ConsensusStream.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/ConsensusStream.html#type\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ConsensusStream\"},{\"kind\":1024,\"name\":\"consensus\",\"url\":\"interfaces/ConsensusStream.html#consensus\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ConsensusStream\"},{\"kind\":256,\"name\":\"UnsubscribeRequest\",\"url\":\"interfaces/UnsubscribeRequest.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/UnsubscribeRequest.html#command\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"UnsubscribeRequest\"},{\"kind\":1024,\"name\":\"streams\",\"url\":\"interfaces/UnsubscribeRequest.html#streams\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"UnsubscribeRequest\"},{\"kind\":1024,\"name\":\"accounts\",\"url\":\"interfaces/UnsubscribeRequest.html#accounts\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"UnsubscribeRequest\"},{\"kind\":1024,\"name\":\"accounts_proposed\",\"url\":\"interfaces/UnsubscribeRequest.html#accounts_proposed\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"UnsubscribeRequest\"},{\"kind\":1024,\"name\":\"books\",\"url\":\"interfaces/UnsubscribeRequest.html#books\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"UnsubscribeRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/UnsubscribeRequest.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"UnsubscribeRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/UnsubscribeRequest.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"UnsubscribeRequest\"},{\"kind\":256,\"name\":\"UnsubscribeResponse\",\"url\":\"interfaces/UnsubscribeResponse.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/UnsubscribeResponse.html#result\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"UnsubscribeResponse\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/UnsubscribeResponse.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"UnsubscribeResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/UnsubscribeResponse.html#status\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"UnsubscribeResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/UnsubscribeResponse.html#type\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"UnsubscribeResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/UnsubscribeResponse.html#warning\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"UnsubscribeResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/UnsubscribeResponse.html#warnings\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"UnsubscribeResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/UnsubscribeResponse.html#forwarded\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"UnsubscribeResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/UnsubscribeResponse.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"UnsubscribeResponse\"},{\"kind\":256,\"name\":\"FeeRequest\",\"url\":\"interfaces/FeeRequest.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/FeeRequest.html#command\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"FeeRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/FeeRequest.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"FeeRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/FeeRequest.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"FeeRequest\"},{\"kind\":256,\"name\":\"FeeResponse\",\"url\":\"interfaces/FeeResponse.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/FeeResponse.html#result\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"FeeResponse\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/FeeResponse.html#result.__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"FeeResponse.result\"},{\"kind\":1024,\"name\":\"current_ledger_size\",\"url\":\"interfaces/FeeResponse.html#result.__type.current_ledger_size\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"FeeResponse.result.__type\"},{\"kind\":1024,\"name\":\"current_queue_size\",\"url\":\"interfaces/FeeResponse.html#result.__type.current_queue_size\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"FeeResponse.result.__type\"},{\"kind\":1024,\"name\":\"drops\",\"url\":\"interfaces/FeeResponse.html#result.__type.drops\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"FeeResponse.result.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/FeeResponse.html#result.__type.drops.__type-1\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"FeeResponse.result.__type.drops\"},{\"kind\":1024,\"name\":\"base_fee\",\"url\":\"interfaces/FeeResponse.html#result.__type.drops.__type-1.base_fee\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"FeeResponse.result.__type.drops.__type\"},{\"kind\":1024,\"name\":\"median_fee\",\"url\":\"interfaces/FeeResponse.html#result.__type.drops.__type-1.median_fee\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"FeeResponse.result.__type.drops.__type\"},{\"kind\":1024,\"name\":\"minimum_fee\",\"url\":\"interfaces/FeeResponse.html#result.__type.drops.__type-1.minimum_fee\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"FeeResponse.result.__type.drops.__type\"},{\"kind\":1024,\"name\":\"open_ledger_fee\",\"url\":\"interfaces/FeeResponse.html#result.__type.drops.__type-1.open_ledger_fee\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"FeeResponse.result.__type.drops.__type\"},{\"kind\":1024,\"name\":\"expected_ledger_size\",\"url\":\"interfaces/FeeResponse.html#result.__type.expected_ledger_size\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"FeeResponse.result.__type\"},{\"kind\":1024,\"name\":\"ledger_current_index\",\"url\":\"interfaces/FeeResponse.html#result.__type.ledger_current_index\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"FeeResponse.result.__type\"},{\"kind\":1024,\"name\":\"levels\",\"url\":\"interfaces/FeeResponse.html#result.__type.levels\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"FeeResponse.result.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/FeeResponse.html#result.__type.levels.__type-2\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"FeeResponse.result.__type.levels\"},{\"kind\":1024,\"name\":\"median_level\",\"url\":\"interfaces/FeeResponse.html#result.__type.levels.__type-2.median_level\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"FeeResponse.result.__type.levels.__type\"},{\"kind\":1024,\"name\":\"minimum_level\",\"url\":\"interfaces/FeeResponse.html#result.__type.levels.__type-2.minimum_level\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"FeeResponse.result.__type.levels.__type\"},{\"kind\":1024,\"name\":\"open_ledger_level\",\"url\":\"interfaces/FeeResponse.html#result.__type.levels.__type-2.open_ledger_level\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"FeeResponse.result.__type.levels.__type\"},{\"kind\":1024,\"name\":\"reference_level\",\"url\":\"interfaces/FeeResponse.html#result.__type.levels.__type-2.reference_level\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"FeeResponse.result.__type.levels.__type\"},{\"kind\":1024,\"name\":\"max_queue_size\",\"url\":\"interfaces/FeeResponse.html#result.__type.max_queue_size\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"FeeResponse.result.__type\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/FeeResponse.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"FeeResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/FeeResponse.html#status\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"FeeResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/FeeResponse.html#type\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"FeeResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/FeeResponse.html#warning\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"FeeResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/FeeResponse.html#warnings\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"FeeResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/FeeResponse.html#forwarded\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"FeeResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/FeeResponse.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"FeeResponse\"},{\"kind\":256,\"name\":\"ManifestRequest\",\"url\":\"interfaces/ManifestRequest.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/ManifestRequest.html#command\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ManifestRequest\"},{\"kind\":1024,\"name\":\"public_key\",\"url\":\"interfaces/ManifestRequest.html#public_key\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ManifestRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/ManifestRequest.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"ManifestRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/ManifestRequest.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"ManifestRequest\"},{\"kind\":256,\"name\":\"ManifestResponse\",\"url\":\"interfaces/ManifestResponse.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/ManifestResponse.html#result\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ManifestResponse\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/ManifestResponse.html#result.__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"ManifestResponse.result\"},{\"kind\":1024,\"name\":\"details\",\"url\":\"interfaces/ManifestResponse.html#result.__type.details\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ManifestResponse.result.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/ManifestResponse.html#result.__type.details.__type-1\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"ManifestResponse.result.__type.details\"},{\"kind\":1024,\"name\":\"domain\",\"url\":\"interfaces/ManifestResponse.html#result.__type.details.__type-1.domain\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ManifestResponse.result.__type.details.__type\"},{\"kind\":1024,\"name\":\"ephemeral_key\",\"url\":\"interfaces/ManifestResponse.html#result.__type.details.__type-1.ephemeral_key\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ManifestResponse.result.__type.details.__type\"},{\"kind\":1024,\"name\":\"master_key\",\"url\":\"interfaces/ManifestResponse.html#result.__type.details.__type-1.master_key\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ManifestResponse.result.__type.details.__type\"},{\"kind\":1024,\"name\":\"seq\",\"url\":\"interfaces/ManifestResponse.html#result.__type.details.__type-1.seq\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ManifestResponse.result.__type.details.__type\"},{\"kind\":1024,\"name\":\"manifest\",\"url\":\"interfaces/ManifestResponse.html#result.__type.manifest\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ManifestResponse.result.__type\"},{\"kind\":1024,\"name\":\"requested\",\"url\":\"interfaces/ManifestResponse.html#result.__type.requested\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ManifestResponse.result.__type\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/ManifestResponse.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"ManifestResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/ManifestResponse.html#status\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"ManifestResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/ManifestResponse.html#type\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"ManifestResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/ManifestResponse.html#warning\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"ManifestResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/ManifestResponse.html#warnings\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"ManifestResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/ManifestResponse.html#forwarded\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"ManifestResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/ManifestResponse.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"ManifestResponse\"},{\"kind\":256,\"name\":\"ServerInfoRequest\",\"url\":\"interfaces/ServerInfoRequest.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/ServerInfoRequest.html#command\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ServerInfoRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/ServerInfoRequest.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"ServerInfoRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/ServerInfoRequest.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"ServerInfoRequest\"},{\"kind\":256,\"name\":\"ServerInfoResponse\",\"url\":\"interfaces/ServerInfoResponse.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/ServerInfoResponse.html#result\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ServerInfoResponse\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"ServerInfoResponse.result\"},{\"kind\":1024,\"name\":\"info\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerInfoResponse.result.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"ServerInfoResponse.result.__type.info\"},{\"kind\":1024,\"name\":\"amendment_blocked\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.amendment_blocked\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerInfoResponse.result.__type.info.__type\"},{\"kind\":1024,\"name\":\"build_version\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.build_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerInfoResponse.result.__type.info.__type\"},{\"kind\":1024,\"name\":\"closed_ledger\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.closed_ledger\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerInfoResponse.result.__type.info.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.closed_ledger.__type-2\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"ServerInfoResponse.result.__type.info.__type.closed_ledger\"},{\"kind\":1024,\"name\":\"age\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.closed_ledger.__type-2.age\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerInfoResponse.result.__type.info.__type.closed_ledger.__type\"},{\"kind\":1024,\"name\":\"base_fee_xrp\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.closed_ledger.__type-2.base_fee_xrp\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerInfoResponse.result.__type.info.__type.closed_ledger.__type\"},{\"kind\":1024,\"name\":\"hash\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.closed_ledger.__type-2.hash\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerInfoResponse.result.__type.info.__type.closed_ledger.__type\"},{\"kind\":1024,\"name\":\"reserve_base_xrp\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.closed_ledger.__type-2.reserve_base_xrp\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerInfoResponse.result.__type.info.__type.closed_ledger.__type\"},{\"kind\":1024,\"name\":\"reserve_inc_xrp\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.closed_ledger.__type-2.reserve_inc_xrp\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerInfoResponse.result.__type.info.__type.closed_ledger.__type\"},{\"kind\":1024,\"name\":\"seq\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.closed_ledger.__type-2.seq\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerInfoResponse.result.__type.info.__type.closed_ledger.__type\"},{\"kind\":1024,\"name\":\"complete_ledgers\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.complete_ledgers\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerInfoResponse.result.__type.info.__type\"},{\"kind\":1024,\"name\":\"hostid\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.hostid\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerInfoResponse.result.__type.info.__type\"},{\"kind\":1024,\"name\":\"io_latency_ms\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.io_latency_ms\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerInfoResponse.result.__type.info.__type\"},{\"kind\":1024,\"name\":\"jq_trans_overflow\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.jq_trans_overflow\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerInfoResponse.result.__type.info.__type\"},{\"kind\":1024,\"name\":\"last_close\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.last_close\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerInfoResponse.result.__type.info.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.last_close.__type-3\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"ServerInfoResponse.result.__type.info.__type.last_close\"},{\"kind\":1024,\"name\":\"converge_time_s\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.last_close.__type-3.converge_time_s\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerInfoResponse.result.__type.info.__type.last_close.__type\"},{\"kind\":1024,\"name\":\"proposers\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.last_close.__type-3.proposers\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerInfoResponse.result.__type.info.__type.last_close.__type\"},{\"kind\":1024,\"name\":\"load\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.load\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerInfoResponse.result.__type.info.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.load.__type-4\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"ServerInfoResponse.result.__type.info.__type.load\"},{\"kind\":1024,\"name\":\"job_types\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.load.__type-4.job_types\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerInfoResponse.result.__type.info.__type.load.__type\"},{\"kind\":1024,\"name\":\"threads\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.load.__type-4.threads\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerInfoResponse.result.__type.info.__type.load.__type\"},{\"kind\":1024,\"name\":\"load_factor\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.load_factor\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerInfoResponse.result.__type.info.__type\"},{\"kind\":1024,\"name\":\"load_factor_local\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.load_factor_local\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerInfoResponse.result.__type.info.__type\"},{\"kind\":1024,\"name\":\"load_factor_net\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.load_factor_net\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerInfoResponse.result.__type.info.__type\"},{\"kind\":1024,\"name\":\"load_factor_cluster\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.load_factor_cluster\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerInfoResponse.result.__type.info.__type\"},{\"kind\":1024,\"name\":\"load_factor_fee_escalation\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.load_factor_fee_escalation\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerInfoResponse.result.__type.info.__type\"},{\"kind\":1024,\"name\":\"load_factor_fee_queue\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.load_factor_fee_queue\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerInfoResponse.result.__type.info.__type\"},{\"kind\":1024,\"name\":\"load_factor_server\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.load_factor_server\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerInfoResponse.result.__type.info.__type\"},{\"kind\":1024,\"name\":\"peer_disconnects\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.peer_disconnects\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerInfoResponse.result.__type.info.__type\"},{\"kind\":1024,\"name\":\"peer_disconnects_resources\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.peer_disconnects_resources\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerInfoResponse.result.__type.info.__type\"},{\"kind\":1024,\"name\":\"network_ledger\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.network_ledger\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerInfoResponse.result.__type.info.__type\"},{\"kind\":1024,\"name\":\"peers\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.peers\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerInfoResponse.result.__type.info.__type\"},{\"kind\":1024,\"name\":\"pubkey_node\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.pubkey_node\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerInfoResponse.result.__type.info.__type\"},{\"kind\":1024,\"name\":\"pubkey_validator\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.pubkey_validator\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerInfoResponse.result.__type.info.__type\"},{\"kind\":1024,\"name\":\"server_state\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.server_state\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerInfoResponse.result.__type.info.__type\"},{\"kind\":1024,\"name\":\"server_state_duration_us\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.server_state_duration_us\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerInfoResponse.result.__type.info.__type\"},{\"kind\":1024,\"name\":\"state_accounting\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.state_accounting\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerInfoResponse.result.__type.info.__type\"},{\"kind\":1024,\"name\":\"time\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.time\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerInfoResponse.result.__type.info.__type\"},{\"kind\":1024,\"name\":\"uptime\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.uptime\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerInfoResponse.result.__type.info.__type\"},{\"kind\":1024,\"name\":\"validated_ledger\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.validated_ledger\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerInfoResponse.result.__type.info.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.validated_ledger.__type-5\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"ServerInfoResponse.result.__type.info.__type.validated_ledger\"},{\"kind\":1024,\"name\":\"age\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.validated_ledger.__type-5.age-1\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerInfoResponse.result.__type.info.__type.validated_ledger.__type\"},{\"kind\":1024,\"name\":\"base_fee_xrp\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.validated_ledger.__type-5.base_fee_xrp-1\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerInfoResponse.result.__type.info.__type.validated_ledger.__type\"},{\"kind\":1024,\"name\":\"hash\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.validated_ledger.__type-5.hash-1\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerInfoResponse.result.__type.info.__type.validated_ledger.__type\"},{\"kind\":1024,\"name\":\"reserve_base_xrp\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.validated_ledger.__type-5.reserve_base_xrp-1\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerInfoResponse.result.__type.info.__type.validated_ledger.__type\"},{\"kind\":1024,\"name\":\"reserve_inc_xrp\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.validated_ledger.__type-5.reserve_inc_xrp-1\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerInfoResponse.result.__type.info.__type.validated_ledger.__type\"},{\"kind\":1024,\"name\":\"seq\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.validated_ledger.__type-5.seq-1\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerInfoResponse.result.__type.info.__type.validated_ledger.__type\"},{\"kind\":1024,\"name\":\"validation_quorum\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.validation_quorum\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerInfoResponse.result.__type.info.__type\"},{\"kind\":1024,\"name\":\"validator_list_expires\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.validator_list_expires\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerInfoResponse.result.__type.info.__type\"},{\"kind\":1024,\"name\":\"validator_list\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.validator_list\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerInfoResponse.result.__type.info.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.validator_list.__type-6\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"ServerInfoResponse.result.__type.info.__type.validator_list\"},{\"kind\":1024,\"name\":\"count\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.validator_list.__type-6.count\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerInfoResponse.result.__type.info.__type.validator_list.__type\"},{\"kind\":1024,\"name\":\"expiration\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.validator_list.__type-6.expiration\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerInfoResponse.result.__type.info.__type.validator_list.__type\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.validator_list.__type-6.status\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerInfoResponse.result.__type.info.__type.validator_list.__type\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/ServerInfoResponse.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"ServerInfoResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/ServerInfoResponse.html#status-1\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"ServerInfoResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/ServerInfoResponse.html#type\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"ServerInfoResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/ServerInfoResponse.html#warning\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"ServerInfoResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/ServerInfoResponse.html#warnings\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"ServerInfoResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/ServerInfoResponse.html#forwarded\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"ServerInfoResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/ServerInfoResponse.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"ServerInfoResponse\"},{\"kind\":256,\"name\":\"ServerStateRequest\",\"url\":\"interfaces/ServerStateRequest.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/ServerStateRequest.html#command\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ServerStateRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/ServerStateRequest.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"ServerStateRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/ServerStateRequest.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"ServerStateRequest\"},{\"kind\":256,\"name\":\"ServerStateResponse\",\"url\":\"interfaces/ServerStateResponse.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/ServerStateResponse.html#result\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ServerStateResponse\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/ServerStateResponse.html#result.__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"ServerStateResponse.result\"},{\"kind\":1024,\"name\":\"state\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerStateResponse.result.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"ServerStateResponse.result.__type.state\"},{\"kind\":1024,\"name\":\"amendment_blocked\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.amendment_blocked\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerStateResponse.result.__type.state.__type\"},{\"kind\":1024,\"name\":\"build_version\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.build_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerStateResponse.result.__type.state.__type\"},{\"kind\":1024,\"name\":\"complete_ledgers\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.complete_ledgers\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerStateResponse.result.__type.state.__type\"},{\"kind\":1024,\"name\":\"closed_ledger\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.closed_ledger\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerStateResponse.result.__type.state.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.closed_ledger.__type-2\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"ServerStateResponse.result.__type.state.__type.closed_ledger\"},{\"kind\":1024,\"name\":\"age\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.closed_ledger.__type-2.age\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerStateResponse.result.__type.state.__type.closed_ledger.__type\"},{\"kind\":1024,\"name\":\"base_fee\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.closed_ledger.__type-2.base_fee\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerStateResponse.result.__type.state.__type.closed_ledger.__type\"},{\"kind\":1024,\"name\":\"hash\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.closed_ledger.__type-2.hash\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerStateResponse.result.__type.state.__type.closed_ledger.__type\"},{\"kind\":1024,\"name\":\"reserve_base\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.closed_ledger.__type-2.reserve_base\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerStateResponse.result.__type.state.__type.closed_ledger.__type\"},{\"kind\":1024,\"name\":\"reserve_inc\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.closed_ledger.__type-2.reserve_inc\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerStateResponse.result.__type.state.__type.closed_ledger.__type\"},{\"kind\":1024,\"name\":\"seq\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.closed_ledger.__type-2.seq\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerStateResponse.result.__type.state.__type.closed_ledger.__type\"},{\"kind\":1024,\"name\":\"io_latency_ms\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.io_latency_ms\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerStateResponse.result.__type.state.__type\"},{\"kind\":1024,\"name\":\"jq_trans_overflow\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.jq_trans_overflow\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerStateResponse.result.__type.state.__type\"},{\"kind\":1024,\"name\":\"last_close\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.last_close\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerStateResponse.result.__type.state.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.last_close.__type-3\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"ServerStateResponse.result.__type.state.__type.last_close\"},{\"kind\":1024,\"name\":\"converge_time\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.last_close.__type-3.converge_time\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerStateResponse.result.__type.state.__type.last_close.__type\"},{\"kind\":1024,\"name\":\"proposers\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.last_close.__type-3.proposers\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerStateResponse.result.__type.state.__type.last_close.__type\"},{\"kind\":1024,\"name\":\"load\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.load\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerStateResponse.result.__type.state.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.load.__type-4\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"ServerStateResponse.result.__type.state.__type.load\"},{\"kind\":1024,\"name\":\"job_types\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.load.__type-4.job_types\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerStateResponse.result.__type.state.__type.load.__type\"},{\"kind\":1024,\"name\":\"threads\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.load.__type-4.threads\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerStateResponse.result.__type.state.__type.load.__type\"},{\"kind\":1024,\"name\":\"load_base\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.load_base\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerStateResponse.result.__type.state.__type\"},{\"kind\":1024,\"name\":\"load_factor\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.load_factor\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerStateResponse.result.__type.state.__type\"},{\"kind\":1024,\"name\":\"load_factor_fee_escalation\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.load_factor_fee_escalation\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerStateResponse.result.__type.state.__type\"},{\"kind\":1024,\"name\":\"load_factor_fee_queue\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.load_factor_fee_queue\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerStateResponse.result.__type.state.__type\"},{\"kind\":1024,\"name\":\"load_factor_fee_reference\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.load_factor_fee_reference\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerStateResponse.result.__type.state.__type\"},{\"kind\":1024,\"name\":\"load_factor_server\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.load_factor_server\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerStateResponse.result.__type.state.__type\"},{\"kind\":1024,\"name\":\"peer_disconnects\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.peer_disconnects\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerStateResponse.result.__type.state.__type\"},{\"kind\":1024,\"name\":\"peer_disconnects_resources\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.peer_disconnects_resources\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerStateResponse.result.__type.state.__type\"},{\"kind\":1024,\"name\":\"peers\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.peers\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerStateResponse.result.__type.state.__type\"},{\"kind\":1024,\"name\":\"pubkey_node\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.pubkey_node\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerStateResponse.result.__type.state.__type\"},{\"kind\":1024,\"name\":\"pubkey_validator\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.pubkey_validator\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerStateResponse.result.__type.state.__type\"},{\"kind\":1024,\"name\":\"server_state\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.server_state\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerStateResponse.result.__type.state.__type\"},{\"kind\":1024,\"name\":\"server_state_duration_us\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.server_state_duration_us\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerStateResponse.result.__type.state.__type\"},{\"kind\":1024,\"name\":\"state_accounting\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.state_accounting\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerStateResponse.result.__type.state.__type\"},{\"kind\":1024,\"name\":\"time\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.time\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerStateResponse.result.__type.state.__type\"},{\"kind\":1024,\"name\":\"uptime\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.uptime\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerStateResponse.result.__type.state.__type\"},{\"kind\":1024,\"name\":\"validated_ledger\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.validated_ledger\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerStateResponse.result.__type.state.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.validated_ledger.__type-5\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"ServerStateResponse.result.__type.state.__type.validated_ledger\"},{\"kind\":1024,\"name\":\"age\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.validated_ledger.__type-5.age-1\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerStateResponse.result.__type.state.__type.validated_ledger.__type\"},{\"kind\":1024,\"name\":\"base_fee\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.validated_ledger.__type-5.base_fee-1\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerStateResponse.result.__type.state.__type.validated_ledger.__type\"},{\"kind\":1024,\"name\":\"close_time\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.validated_ledger.__type-5.close_time\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerStateResponse.result.__type.state.__type.validated_ledger.__type\"},{\"kind\":1024,\"name\":\"hash\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.validated_ledger.__type-5.hash-1\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerStateResponse.result.__type.state.__type.validated_ledger.__type\"},{\"kind\":1024,\"name\":\"reserve_base\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.validated_ledger.__type-5.reserve_base-1\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerStateResponse.result.__type.state.__type.validated_ledger.__type\"},{\"kind\":1024,\"name\":\"reserve_inc\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.validated_ledger.__type-5.reserve_inc-1\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerStateResponse.result.__type.state.__type.validated_ledger.__type\"},{\"kind\":1024,\"name\":\"seq\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.validated_ledger.__type-5.seq-1\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerStateResponse.result.__type.state.__type.validated_ledger.__type\"},{\"kind\":1024,\"name\":\"validation_quorum\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.validation_quorum\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerStateResponse.result.__type.state.__type\"},{\"kind\":1024,\"name\":\"validator_list_expires\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.validator_list_expires\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ServerStateResponse.result.__type.state.__type\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/ServerStateResponse.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"ServerStateResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/ServerStateResponse.html#status\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"ServerStateResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/ServerStateResponse.html#type\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"ServerStateResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/ServerStateResponse.html#warning\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"ServerStateResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/ServerStateResponse.html#warnings\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"ServerStateResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/ServerStateResponse.html#forwarded\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"ServerStateResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/ServerStateResponse.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"ServerStateResponse\"},{\"kind\":256,\"name\":\"PingRequest\",\"url\":\"interfaces/PingRequest.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/PingRequest.html#command\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"PingRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/PingRequest.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"PingRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/PingRequest.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"PingRequest\"},{\"kind\":256,\"name\":\"PingResponse\",\"url\":\"interfaces/PingResponse.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/PingResponse.html#result\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"PingResponse\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/PingResponse.html#result.__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"PingResponse.result\"},{\"kind\":1024,\"name\":\"role\",\"url\":\"interfaces/PingResponse.html#result.__type.role\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"PingResponse.result.__type\"},{\"kind\":1024,\"name\":\"unlimited\",\"url\":\"interfaces/PingResponse.html#result.__type.unlimited\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"PingResponse.result.__type\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/PingResponse.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"PingResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/PingResponse.html#status\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"PingResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/PingResponse.html#type\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"PingResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/PingResponse.html#warning\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"PingResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/PingResponse.html#warnings\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"PingResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/PingResponse.html#forwarded\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"PingResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/PingResponse.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"PingResponse\"},{\"kind\":256,\"name\":\"RandomRequest\",\"url\":\"interfaces/RandomRequest.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/RandomRequest.html#command\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"RandomRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/RandomRequest.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"RandomRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/RandomRequest.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"RandomRequest\"},{\"kind\":256,\"name\":\"RandomResponse\",\"url\":\"interfaces/RandomResponse.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/RandomResponse.html#result\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"RandomResponse\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/RandomResponse.html#result.__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"RandomResponse.result\"},{\"kind\":1024,\"name\":\"random\",\"url\":\"interfaces/RandomResponse.html#result.__type.random\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"RandomResponse.result.__type\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/RandomResponse.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"RandomResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/RandomResponse.html#status\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"RandomResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/RandomResponse.html#type\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"RandomResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/RandomResponse.html#warning\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"RandomResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/RandomResponse.html#warnings\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"RandomResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/RandomResponse.html#forwarded\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"RandomResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/RandomResponse.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"RandomResponse\"},{\"kind\":256,\"name\":\"ErrorResponse\",\"url\":\"interfaces/ErrorResponse.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/ErrorResponse.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ErrorResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/ErrorResponse.html#status\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ErrorResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/ErrorResponse.html#type\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ErrorResponse\"},{\"kind\":1024,\"name\":\"error\",\"url\":\"interfaces/ErrorResponse.html#error\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ErrorResponse\"},{\"kind\":1024,\"name\":\"error_code\",\"url\":\"interfaces/ErrorResponse.html#error_code\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ErrorResponse\"},{\"kind\":1024,\"name\":\"error_message\",\"url\":\"interfaces/ErrorResponse.html#error_message\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ErrorResponse\"},{\"kind\":1024,\"name\":\"request\",\"url\":\"interfaces/ErrorResponse.html#request\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ErrorResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/ErrorResponse.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ErrorResponse\"},{\"kind\":256,\"name\":\"NFTBuyOffersRequest\",\"url\":\"interfaces/NFTBuyOffersRequest.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/NFTBuyOffersRequest.html#command\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"NFTBuyOffersRequest\"},{\"kind\":1024,\"name\":\"nft_id\",\"url\":\"interfaces/NFTBuyOffersRequest.html#nft_id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"NFTBuyOffersRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/NFTBuyOffersRequest.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTBuyOffersRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/NFTBuyOffersRequest.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTBuyOffersRequest\"},{\"kind\":256,\"name\":\"NFTBuyOffersResponse\",\"url\":\"interfaces/NFTBuyOffersResponse.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/NFTBuyOffersResponse.html#result\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"NFTBuyOffersResponse\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/NFTBuyOffersResponse.html#result.__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"NFTBuyOffersResponse.result\"},{\"kind\":1024,\"name\":\"offers\",\"url\":\"interfaces/NFTBuyOffersResponse.html#result.__type.offers\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"NFTBuyOffersResponse.result.__type\"},{\"kind\":1024,\"name\":\"nft_id\",\"url\":\"interfaces/NFTBuyOffersResponse.html#result.__type.nft_id\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"NFTBuyOffersResponse.result.__type\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/NFTBuyOffersResponse.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTBuyOffersResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/NFTBuyOffersResponse.html#status\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTBuyOffersResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/NFTBuyOffersResponse.html#type\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTBuyOffersResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/NFTBuyOffersResponse.html#warning\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTBuyOffersResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/NFTBuyOffersResponse.html#warnings\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTBuyOffersResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/NFTBuyOffersResponse.html#forwarded\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTBuyOffersResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/NFTBuyOffersResponse.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTBuyOffersResponse\"},{\"kind\":256,\"name\":\"NFTSellOffersRequest\",\"url\":\"interfaces/NFTSellOffersRequest.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/NFTSellOffersRequest.html#command\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"NFTSellOffersRequest\"},{\"kind\":1024,\"name\":\"nft_id\",\"url\":\"interfaces/NFTSellOffersRequest.html#nft_id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"NFTSellOffersRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/NFTSellOffersRequest.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTSellOffersRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/NFTSellOffersRequest.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTSellOffersRequest\"},{\"kind\":256,\"name\":\"NFTSellOffersResponse\",\"url\":\"interfaces/NFTSellOffersResponse.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/NFTSellOffersResponse.html#result\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"NFTSellOffersResponse\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/NFTSellOffersResponse.html#result.__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"NFTSellOffersResponse.result\"},{\"kind\":1024,\"name\":\"offers\",\"url\":\"interfaces/NFTSellOffersResponse.html#result.__type.offers\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"NFTSellOffersResponse.result.__type\"},{\"kind\":1024,\"name\":\"nft_id\",\"url\":\"interfaces/NFTSellOffersResponse.html#result.__type.nft_id\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"NFTSellOffersResponse.result.__type\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/NFTSellOffersResponse.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTSellOffersResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/NFTSellOffersResponse.html#status\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTSellOffersResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/NFTSellOffersResponse.html#type\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTSellOffersResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/NFTSellOffersResponse.html#warning\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTSellOffersResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/NFTSellOffersResponse.html#warnings\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTSellOffersResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/NFTSellOffersResponse.html#forwarded\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTSellOffersResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/NFTSellOffersResponse.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTSellOffersResponse\"},{\"kind\":256,\"name\":\"FederatorInfoRequest\",\"url\":\"interfaces/FederatorInfoRequest.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/FederatorInfoRequest.html#command\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"FederatorInfoRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/FederatorInfoRequest.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"FederatorInfoRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/FederatorInfoRequest.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"FederatorInfoRequest\"},{\"kind\":256,\"name\":\"FederatorInfoResponse\",\"url\":\"interfaces/FederatorInfoResponse.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/FederatorInfoResponse.html#result\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"FederatorInfoResponse\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/FederatorInfoResponse.html#result.__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"FederatorInfoResponse.result\"},{\"kind\":1024,\"name\":\"info\",\"url\":\"interfaces/FederatorInfoResponse.html#result.__type.info\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"FederatorInfoResponse.result.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/FederatorInfoResponse.html#result.__type.info.__type-1\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"FederatorInfoResponse.result.__type.info\"},{\"kind\":1024,\"name\":\"mainchain\",\"url\":\"interfaces/FederatorInfoResponse.html#result.__type.info.__type-1.mainchain\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"FederatorInfoResponse.result.__type.info.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/FederatorInfoResponse.html#result.__type.info.__type-1.mainchain.__type-2\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"FederatorInfoResponse.result.__type.info.__type.mainchain\"},{\"kind\":1024,\"name\":\"door_status\",\"url\":\"interfaces/FederatorInfoResponse.html#result.__type.info.__type-1.mainchain.__type-2.door_status\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"FederatorInfoResponse.result.__type.info.__type.mainchain.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/FederatorInfoResponse.html#result.__type.info.__type-1.mainchain.__type-2.door_status.__type-3\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"FederatorInfoResponse.result.__type.info.__type.mainchain.__type.door_status\"},{\"kind\":1024,\"name\":\"initialized\",\"url\":\"interfaces/FederatorInfoResponse.html#result.__type.info.__type-1.mainchain.__type-2.door_status.__type-3.initialized\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"FederatorInfoResponse.result.__type.info.__type.mainchain.__type.door_status.__type\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/FederatorInfoResponse.html#result.__type.info.__type-1.mainchain.__type-2.door_status.__type-3.status\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"FederatorInfoResponse.result.__type.info.__type.mainchain.__type.door_status.__type\"},{\"kind\":1024,\"name\":\"last_transaction_sent_seq\",\"url\":\"interfaces/FederatorInfoResponse.html#result.__type.info.__type-1.mainchain.__type-2.last_transaction_sent_seq\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"FederatorInfoResponse.result.__type.info.__type.mainchain.__type\"},{\"kind\":1024,\"name\":\"listener_info\",\"url\":\"interfaces/FederatorInfoResponse.html#result.__type.info.__type-1.mainchain.__type-2.listener_info\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"FederatorInfoResponse.result.__type.info.__type.mainchain.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/FederatorInfoResponse.html#result.__type.info.__type-1.mainchain.__type-2.listener_info.__type-4\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"FederatorInfoResponse.result.__type.info.__type.mainchain.__type.listener_info\"},{\"kind\":1024,\"name\":\"state\",\"url\":\"interfaces/FederatorInfoResponse.html#result.__type.info.__type-1.mainchain.__type-2.listener_info.__type-4.state\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"FederatorInfoResponse.result.__type.info.__type.mainchain.__type.listener_info.__type\"},{\"kind\":1024,\"name\":\"pending_transactions\",\"url\":\"interfaces/FederatorInfoResponse.html#result.__type.info.__type-1.mainchain.__type-2.pending_transactions\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"FederatorInfoResponse.result.__type.info.__type.mainchain.__type\"},{\"kind\":1024,\"name\":\"sequence\",\"url\":\"interfaces/FederatorInfoResponse.html#result.__type.info.__type-1.mainchain.__type-2.sequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"FederatorInfoResponse.result.__type.info.__type.mainchain.__type\"},{\"kind\":1024,\"name\":\"tickets\",\"url\":\"interfaces/FederatorInfoResponse.html#result.__type.info.__type-1.mainchain.__type-2.tickets\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"FederatorInfoResponse.result.__type.info.__type.mainchain.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/FederatorInfoResponse.html#result.__type.info.__type-1.mainchain.__type-2.tickets.__type-5\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"FederatorInfoResponse.result.__type.info.__type.mainchain.__type.tickets\"},{\"kind\":1024,\"name\":\"initialized\",\"url\":\"interfaces/FederatorInfoResponse.html#result.__type.info.__type-1.mainchain.__type-2.tickets.__type-5.initialized-1\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"FederatorInfoResponse.result.__type.info.__type.mainchain.__type.tickets.__type\"},{\"kind\":1024,\"name\":\"tickets\",\"url\":\"interfaces/FederatorInfoResponse.html#result.__type.info.__type-1.mainchain.__type-2.tickets.__type-5.tickets-1\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"FederatorInfoResponse.result.__type.info.__type.mainchain.__type.tickets.__type\"},{\"kind\":1024,\"name\":\"public_key\",\"url\":\"interfaces/FederatorInfoResponse.html#result.__type.info.__type-1.public_key\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"FederatorInfoResponse.result.__type.info.__type\"},{\"kind\":1024,\"name\":\"sidechain\",\"url\":\"interfaces/FederatorInfoResponse.html#result.__type.info.__type-1.sidechain\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"FederatorInfoResponse.result.__type.info.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/FederatorInfoResponse.html#result.__type.info.__type-1.sidechain.__type-6\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"FederatorInfoResponse.result.__type.info.__type.sidechain\"},{\"kind\":1024,\"name\":\"door_status\",\"url\":\"interfaces/FederatorInfoResponse.html#result.__type.info.__type-1.sidechain.__type-6.door_status-1\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"FederatorInfoResponse.result.__type.info.__type.sidechain.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/FederatorInfoResponse.html#result.__type.info.__type-1.sidechain.__type-6.door_status-1.__type-7\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"FederatorInfoResponse.result.__type.info.__type.sidechain.__type.door_status\"},{\"kind\":1024,\"name\":\"initialized\",\"url\":\"interfaces/FederatorInfoResponse.html#result.__type.info.__type-1.sidechain.__type-6.door_status-1.__type-7.initialized-2\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"FederatorInfoResponse.result.__type.info.__type.sidechain.__type.door_status.__type\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/FederatorInfoResponse.html#result.__type.info.__type-1.sidechain.__type-6.door_status-1.__type-7.status-1\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"FederatorInfoResponse.result.__type.info.__type.sidechain.__type.door_status.__type\"},{\"kind\":1024,\"name\":\"last_transaction_sent_seq\",\"url\":\"interfaces/FederatorInfoResponse.html#result.__type.info.__type-1.sidechain.__type-6.last_transaction_sent_seq-1\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"FederatorInfoResponse.result.__type.info.__type.sidechain.__type\"},{\"kind\":1024,\"name\":\"listener_info\",\"url\":\"interfaces/FederatorInfoResponse.html#result.__type.info.__type-1.sidechain.__type-6.listener_info-1\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"FederatorInfoResponse.result.__type.info.__type.sidechain.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/FederatorInfoResponse.html#result.__type.info.__type-1.sidechain.__type-6.listener_info-1.__type-8\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"FederatorInfoResponse.result.__type.info.__type.sidechain.__type.listener_info\"},{\"kind\":1024,\"name\":\"state\",\"url\":\"interfaces/FederatorInfoResponse.html#result.__type.info.__type-1.sidechain.__type-6.listener_info-1.__type-8.state-1\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"FederatorInfoResponse.result.__type.info.__type.sidechain.__type.listener_info.__type\"},{\"kind\":1024,\"name\":\"pending_transactions\",\"url\":\"interfaces/FederatorInfoResponse.html#result.__type.info.__type-1.sidechain.__type-6.pending_transactions-1\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"FederatorInfoResponse.result.__type.info.__type.sidechain.__type\"},{\"kind\":1024,\"name\":\"sequence\",\"url\":\"interfaces/FederatorInfoResponse.html#result.__type.info.__type-1.sidechain.__type-6.sequence-1\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"FederatorInfoResponse.result.__type.info.__type.sidechain.__type\"},{\"kind\":1024,\"name\":\"tickets\",\"url\":\"interfaces/FederatorInfoResponse.html#result.__type.info.__type-1.sidechain.__type-6.tickets-2\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"FederatorInfoResponse.result.__type.info.__type.sidechain.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/FederatorInfoResponse.html#result.__type.info.__type-1.sidechain.__type-6.tickets-2.__type-9\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"FederatorInfoResponse.result.__type.info.__type.sidechain.__type.tickets\"},{\"kind\":1024,\"name\":\"initialized\",\"url\":\"interfaces/FederatorInfoResponse.html#result.__type.info.__type-1.sidechain.__type-6.tickets-2.__type-9.initialized-3\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"FederatorInfoResponse.result.__type.info.__type.sidechain.__type.tickets.__type\"},{\"kind\":1024,\"name\":\"tickets\",\"url\":\"interfaces/FederatorInfoResponse.html#result.__type.info.__type-1.sidechain.__type-6.tickets-2.__type-9.tickets-3\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"FederatorInfoResponse.result.__type.info.__type.sidechain.__type.tickets.__type\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/FederatorInfoResponse.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"FederatorInfoResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/FederatorInfoResponse.html#status-2\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"FederatorInfoResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/FederatorInfoResponse.html#type\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"FederatorInfoResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/FederatorInfoResponse.html#warning\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"FederatorInfoResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/FederatorInfoResponse.html#warnings\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"FederatorInfoResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/FederatorInfoResponse.html#forwarded\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"FederatorInfoResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/FederatorInfoResponse.html#api_version\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"FederatorInfoResponse\"},{\"kind\":64,\"name\":\"validate\",\"url\":\"functions/validate.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":256,\"name\":\"TransactionAndMetadata\",\"url\":\"interfaces/TransactionAndMetadata.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"transaction\",\"url\":\"interfaces/TransactionAndMetadata.html#transaction\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"TransactionAndMetadata\"},{\"kind\":1024,\"name\":\"metadata\",\"url\":\"interfaces/TransactionAndMetadata.html#metadata\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"TransactionAndMetadata\"},{\"kind\":4194304,\"name\":\"Transaction\",\"url\":\"types/Transaction.html\",\"classes\":\"tsd-kind-type-alias\"},{\"kind\":256,\"name\":\"TransactionMetadata\",\"url\":\"interfaces/TransactionMetadata.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"AffectedNodes\",\"url\":\"interfaces/TransactionMetadata.html#AffectedNodes\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"TransactionMetadata\"},{\"kind\":1024,\"name\":\"DeliveredAmount\",\"url\":\"interfaces/TransactionMetadata.html#DeliveredAmount\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"TransactionMetadata\"},{\"kind\":1024,\"name\":\"delivered_amount\",\"url\":\"interfaces/TransactionMetadata.html#delivered_amount\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"TransactionMetadata\"},{\"kind\":1024,\"name\":\"TransactionIndex\",\"url\":\"interfaces/TransactionMetadata.html#TransactionIndex\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"TransactionMetadata\"},{\"kind\":1024,\"name\":\"TransactionResult\",\"url\":\"interfaces/TransactionMetadata.html#TransactionResult\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"TransactionMetadata\"},{\"kind\":8,\"name\":\"AccountSetAsfFlags\",\"url\":\"enums/AccountSetAsfFlags.html\",\"classes\":\"tsd-kind-enum\"},{\"kind\":16,\"name\":\"asfRequireDest\",\"url\":\"enums/AccountSetAsfFlags.html#asfRequireDest\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"AccountSetAsfFlags\"},{\"kind\":16,\"name\":\"asfRequireAuth\",\"url\":\"enums/AccountSetAsfFlags.html#asfRequireAuth\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"AccountSetAsfFlags\"},{\"kind\":16,\"name\":\"asfDisallowXRP\",\"url\":\"enums/AccountSetAsfFlags.html#asfDisallowXRP\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"AccountSetAsfFlags\"},{\"kind\":16,\"name\":\"asfDisableMaster\",\"url\":\"enums/AccountSetAsfFlags.html#asfDisableMaster\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"AccountSetAsfFlags\"},{\"kind\":16,\"name\":\"asfAccountTxnID\",\"url\":\"enums/AccountSetAsfFlags.html#asfAccountTxnID\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"AccountSetAsfFlags\"},{\"kind\":16,\"name\":\"asfNoFreeze\",\"url\":\"enums/AccountSetAsfFlags.html#asfNoFreeze\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"AccountSetAsfFlags\"},{\"kind\":16,\"name\":\"asfGlobalFreeze\",\"url\":\"enums/AccountSetAsfFlags.html#asfGlobalFreeze\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"AccountSetAsfFlags\"},{\"kind\":16,\"name\":\"asfDefaultRipple\",\"url\":\"enums/AccountSetAsfFlags.html#asfDefaultRipple\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"AccountSetAsfFlags\"},{\"kind\":16,\"name\":\"asfDepositAuth\",\"url\":\"enums/AccountSetAsfFlags.html#asfDepositAuth\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"AccountSetAsfFlags\"},{\"kind\":16,\"name\":\"asfAuthorizedNFTokenMinter\",\"url\":\"enums/AccountSetAsfFlags.html#asfAuthorizedNFTokenMinter\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"AccountSetAsfFlags\"},{\"kind\":16,\"name\":\"asfDisallowIncomingNFTokenOffer\",\"url\":\"enums/AccountSetAsfFlags.html#asfDisallowIncomingNFTokenOffer\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"AccountSetAsfFlags\"},{\"kind\":16,\"name\":\"asfDisallowIncomingCheck\",\"url\":\"enums/AccountSetAsfFlags.html#asfDisallowIncomingCheck\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"AccountSetAsfFlags\"},{\"kind\":16,\"name\":\"asfDisallowIncomingPayChan\",\"url\":\"enums/AccountSetAsfFlags.html#asfDisallowIncomingPayChan\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"AccountSetAsfFlags\"},{\"kind\":16,\"name\":\"asfDisallowIncomingTrustline\",\"url\":\"enums/AccountSetAsfFlags.html#asfDisallowIncomingTrustline\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"AccountSetAsfFlags\"},{\"kind\":8,\"name\":\"AccountSetTfFlags\",\"url\":\"enums/AccountSetTfFlags.html\",\"classes\":\"tsd-kind-enum\"},{\"kind\":16,\"name\":\"tfRequireDestTag\",\"url\":\"enums/AccountSetTfFlags.html#tfRequireDestTag\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"AccountSetTfFlags\"},{\"kind\":16,\"name\":\"tfOptionalDestTag\",\"url\":\"enums/AccountSetTfFlags.html#tfOptionalDestTag\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"AccountSetTfFlags\"},{\"kind\":16,\"name\":\"tfRequireAuth\",\"url\":\"enums/AccountSetTfFlags.html#tfRequireAuth\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"AccountSetTfFlags\"},{\"kind\":16,\"name\":\"tfOptionalAuth\",\"url\":\"enums/AccountSetTfFlags.html#tfOptionalAuth\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"AccountSetTfFlags\"},{\"kind\":16,\"name\":\"tfDisallowXRP\",\"url\":\"enums/AccountSetTfFlags.html#tfDisallowXRP\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"AccountSetTfFlags\"},{\"kind\":16,\"name\":\"tfAllowXRP\",\"url\":\"enums/AccountSetTfFlags.html#tfAllowXRP\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"AccountSetTfFlags\"},{\"kind\":256,\"name\":\"AccountSetFlagsInterface\",\"url\":\"interfaces/AccountSetFlagsInterface.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"tfRequireDestTag\",\"url\":\"interfaces/AccountSetFlagsInterface.html#tfRequireDestTag\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountSetFlagsInterface\"},{\"kind\":1024,\"name\":\"tfOptionalDestTag\",\"url\":\"interfaces/AccountSetFlagsInterface.html#tfOptionalDestTag\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountSetFlagsInterface\"},{\"kind\":1024,\"name\":\"tfRequireAuth\",\"url\":\"interfaces/AccountSetFlagsInterface.html#tfRequireAuth\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountSetFlagsInterface\"},{\"kind\":1024,\"name\":\"tfOptionalAuth\",\"url\":\"interfaces/AccountSetFlagsInterface.html#tfOptionalAuth\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountSetFlagsInterface\"},{\"kind\":1024,\"name\":\"tfDisallowXRP\",\"url\":\"interfaces/AccountSetFlagsInterface.html#tfDisallowXRP\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountSetFlagsInterface\"},{\"kind\":1024,\"name\":\"tfAllowXRP\",\"url\":\"interfaces/AccountSetFlagsInterface.html#tfAllowXRP\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountSetFlagsInterface\"},{\"kind\":256,\"name\":\"AccountSet\",\"url\":\"interfaces/AccountSet.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"TransactionType\",\"url\":\"interfaces/AccountSet.html#TransactionType\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountSet\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/AccountSet.html#Flags\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountSet\"},{\"kind\":1024,\"name\":\"ClearFlag\",\"url\":\"interfaces/AccountSet.html#ClearFlag\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountSet\"},{\"kind\":1024,\"name\":\"Domain\",\"url\":\"interfaces/AccountSet.html#Domain\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountSet\"},{\"kind\":1024,\"name\":\"EmailHash\",\"url\":\"interfaces/AccountSet.html#EmailHash\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountSet\"},{\"kind\":1024,\"name\":\"MessageKey\",\"url\":\"interfaces/AccountSet.html#MessageKey\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountSet\"},{\"kind\":1024,\"name\":\"SetFlag\",\"url\":\"interfaces/AccountSet.html#SetFlag\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountSet\"},{\"kind\":1024,\"name\":\"TransferRate\",\"url\":\"interfaces/AccountSet.html#TransferRate\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountSet\"},{\"kind\":1024,\"name\":\"TickSize\",\"url\":\"interfaces/AccountSet.html#TickSize\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountSet\"},{\"kind\":1024,\"name\":\"NFTokenMinter\",\"url\":\"interfaces/AccountSet.html#NFTokenMinter\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountSet\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/AccountSet.html#Account\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountSet\"},{\"kind\":1024,\"name\":\"Fee\",\"url\":\"interfaces/AccountSet.html#Fee\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountSet\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/AccountSet.html#Sequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountSet\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/AccountSet.html#AccountTxnID\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountSet\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/AccountSet.html#LastLedgerSequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountSet\"},{\"kind\":1024,\"name\":\"Memos\",\"url\":\"interfaces/AccountSet.html#Memos\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountSet\"},{\"kind\":1024,\"name\":\"Signers\",\"url\":\"interfaces/AccountSet.html#Signers\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountSet\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/AccountSet.html#SourceTag\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountSet\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/AccountSet.html#SigningPubKey\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountSet\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/AccountSet.html#TicketSequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountSet\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/AccountSet.html#TxnSignature\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountSet\"},{\"kind\":256,\"name\":\"AccountDelete\",\"url\":\"interfaces/AccountDelete.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"TransactionType\",\"url\":\"interfaces/AccountDelete.html#TransactionType\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountDelete\"},{\"kind\":1024,\"name\":\"Destination\",\"url\":\"interfaces/AccountDelete.html#Destination\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountDelete\"},{\"kind\":1024,\"name\":\"DestinationTag\",\"url\":\"interfaces/AccountDelete.html#DestinationTag\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountDelete\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/AccountDelete.html#Account\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountDelete\"},{\"kind\":1024,\"name\":\"Fee\",\"url\":\"interfaces/AccountDelete.html#Fee\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountDelete\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/AccountDelete.html#Sequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountDelete\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/AccountDelete.html#AccountTxnID\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountDelete\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/AccountDelete.html#Flags\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountDelete\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/AccountDelete.html#LastLedgerSequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountDelete\"},{\"kind\":1024,\"name\":\"Memos\",\"url\":\"interfaces/AccountDelete.html#Memos\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountDelete\"},{\"kind\":1024,\"name\":\"Signers\",\"url\":\"interfaces/AccountDelete.html#Signers\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountDelete\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/AccountDelete.html#SourceTag\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountDelete\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/AccountDelete.html#SigningPubKey\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountDelete\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/AccountDelete.html#TicketSequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountDelete\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/AccountDelete.html#TxnSignature\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AccountDelete\"},{\"kind\":256,\"name\":\"CheckCancel\",\"url\":\"interfaces/CheckCancel.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"TransactionType\",\"url\":\"interfaces/CheckCancel.html#TransactionType\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"CheckCancel\"},{\"kind\":1024,\"name\":\"CheckID\",\"url\":\"interfaces/CheckCancel.html#CheckID\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"CheckCancel\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/CheckCancel.html#Account\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"CheckCancel\"},{\"kind\":1024,\"name\":\"Fee\",\"url\":\"interfaces/CheckCancel.html#Fee\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"CheckCancel\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/CheckCancel.html#Sequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"CheckCancel\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/CheckCancel.html#AccountTxnID\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"CheckCancel\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/CheckCancel.html#Flags\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"CheckCancel\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/CheckCancel.html#LastLedgerSequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"CheckCancel\"},{\"kind\":1024,\"name\":\"Memos\",\"url\":\"interfaces/CheckCancel.html#Memos\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"CheckCancel\"},{\"kind\":1024,\"name\":\"Signers\",\"url\":\"interfaces/CheckCancel.html#Signers\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"CheckCancel\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/CheckCancel.html#SourceTag\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"CheckCancel\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/CheckCancel.html#SigningPubKey\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"CheckCancel\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/CheckCancel.html#TicketSequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"CheckCancel\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/CheckCancel.html#TxnSignature\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"CheckCancel\"},{\"kind\":256,\"name\":\"CheckCash\",\"url\":\"interfaces/CheckCash.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"TransactionType\",\"url\":\"interfaces/CheckCash.html#TransactionType\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"CheckCash\"},{\"kind\":1024,\"name\":\"CheckID\",\"url\":\"interfaces/CheckCash.html#CheckID\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"CheckCash\"},{\"kind\":1024,\"name\":\"Amount\",\"url\":\"interfaces/CheckCash.html#Amount\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"CheckCash\"},{\"kind\":1024,\"name\":\"DeliverMin\",\"url\":\"interfaces/CheckCash.html#DeliverMin\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"CheckCash\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/CheckCash.html#Account\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"CheckCash\"},{\"kind\":1024,\"name\":\"Fee\",\"url\":\"interfaces/CheckCash.html#Fee\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"CheckCash\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/CheckCash.html#Sequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"CheckCash\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/CheckCash.html#AccountTxnID\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"CheckCash\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/CheckCash.html#Flags\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"CheckCash\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/CheckCash.html#LastLedgerSequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"CheckCash\"},{\"kind\":1024,\"name\":\"Memos\",\"url\":\"interfaces/CheckCash.html#Memos\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"CheckCash\"},{\"kind\":1024,\"name\":\"Signers\",\"url\":\"interfaces/CheckCash.html#Signers\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"CheckCash\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/CheckCash.html#SourceTag\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"CheckCash\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/CheckCash.html#SigningPubKey\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"CheckCash\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/CheckCash.html#TicketSequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"CheckCash\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/CheckCash.html#TxnSignature\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"CheckCash\"},{\"kind\":256,\"name\":\"CheckCreate\",\"url\":\"interfaces/CheckCreate.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"TransactionType\",\"url\":\"interfaces/CheckCreate.html#TransactionType\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"CheckCreate\"},{\"kind\":1024,\"name\":\"Destination\",\"url\":\"interfaces/CheckCreate.html#Destination\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"CheckCreate\"},{\"kind\":1024,\"name\":\"SendMax\",\"url\":\"interfaces/CheckCreate.html#SendMax\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"CheckCreate\"},{\"kind\":1024,\"name\":\"DestinationTag\",\"url\":\"interfaces/CheckCreate.html#DestinationTag\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"CheckCreate\"},{\"kind\":1024,\"name\":\"Expiration\",\"url\":\"interfaces/CheckCreate.html#Expiration\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"CheckCreate\"},{\"kind\":1024,\"name\":\"InvoiceID\",\"url\":\"interfaces/CheckCreate.html#InvoiceID\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"CheckCreate\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/CheckCreate.html#Account\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"CheckCreate\"},{\"kind\":1024,\"name\":\"Fee\",\"url\":\"interfaces/CheckCreate.html#Fee\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"CheckCreate\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/CheckCreate.html#Sequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"CheckCreate\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/CheckCreate.html#AccountTxnID\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"CheckCreate\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/CheckCreate.html#Flags\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"CheckCreate\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/CheckCreate.html#LastLedgerSequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"CheckCreate\"},{\"kind\":1024,\"name\":\"Memos\",\"url\":\"interfaces/CheckCreate.html#Memos\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"CheckCreate\"},{\"kind\":1024,\"name\":\"Signers\",\"url\":\"interfaces/CheckCreate.html#Signers\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"CheckCreate\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/CheckCreate.html#SourceTag\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"CheckCreate\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/CheckCreate.html#SigningPubKey\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"CheckCreate\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/CheckCreate.html#TicketSequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"CheckCreate\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/CheckCreate.html#TxnSignature\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"CheckCreate\"},{\"kind\":256,\"name\":\"DepositPreauth\",\"url\":\"interfaces/DepositPreauth.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"TransactionType\",\"url\":\"interfaces/DepositPreauth.html#TransactionType\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"DepositPreauth\"},{\"kind\":1024,\"name\":\"Authorize\",\"url\":\"interfaces/DepositPreauth.html#Authorize\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"DepositPreauth\"},{\"kind\":1024,\"name\":\"Unauthorize\",\"url\":\"interfaces/DepositPreauth.html#Unauthorize\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"DepositPreauth\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/DepositPreauth.html#Account\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"DepositPreauth\"},{\"kind\":1024,\"name\":\"Fee\",\"url\":\"interfaces/DepositPreauth.html#Fee\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"DepositPreauth\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/DepositPreauth.html#Sequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"DepositPreauth\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/DepositPreauth.html#AccountTxnID\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"DepositPreauth\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/DepositPreauth.html#Flags\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"DepositPreauth\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/DepositPreauth.html#LastLedgerSequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"DepositPreauth\"},{\"kind\":1024,\"name\":\"Memos\",\"url\":\"interfaces/DepositPreauth.html#Memos\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"DepositPreauth\"},{\"kind\":1024,\"name\":\"Signers\",\"url\":\"interfaces/DepositPreauth.html#Signers\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"DepositPreauth\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/DepositPreauth.html#SourceTag\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"DepositPreauth\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/DepositPreauth.html#SigningPubKey\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"DepositPreauth\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/DepositPreauth.html#TicketSequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"DepositPreauth\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/DepositPreauth.html#TxnSignature\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"DepositPreauth\"},{\"kind\":256,\"name\":\"EscrowCancel\",\"url\":\"interfaces/EscrowCancel.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"TransactionType\",\"url\":\"interfaces/EscrowCancel.html#TransactionType\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"EscrowCancel\"},{\"kind\":1024,\"name\":\"Owner\",\"url\":\"interfaces/EscrowCancel.html#Owner\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"EscrowCancel\"},{\"kind\":1024,\"name\":\"OfferSequence\",\"url\":\"interfaces/EscrowCancel.html#OfferSequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"EscrowCancel\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/EscrowCancel.html#Account\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"EscrowCancel\"},{\"kind\":1024,\"name\":\"Fee\",\"url\":\"interfaces/EscrowCancel.html#Fee\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"EscrowCancel\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/EscrowCancel.html#Sequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"EscrowCancel\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/EscrowCancel.html#AccountTxnID\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"EscrowCancel\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/EscrowCancel.html#Flags\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"EscrowCancel\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/EscrowCancel.html#LastLedgerSequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"EscrowCancel\"},{\"kind\":1024,\"name\":\"Memos\",\"url\":\"interfaces/EscrowCancel.html#Memos\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"EscrowCancel\"},{\"kind\":1024,\"name\":\"Signers\",\"url\":\"interfaces/EscrowCancel.html#Signers\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"EscrowCancel\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/EscrowCancel.html#SourceTag\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"EscrowCancel\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/EscrowCancel.html#SigningPubKey\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"EscrowCancel\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/EscrowCancel.html#TicketSequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"EscrowCancel\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/EscrowCancel.html#TxnSignature\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"EscrowCancel\"},{\"kind\":256,\"name\":\"EscrowCreate\",\"url\":\"interfaces/EscrowCreate.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"TransactionType\",\"url\":\"interfaces/EscrowCreate.html#TransactionType\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"EscrowCreate\"},{\"kind\":1024,\"name\":\"Amount\",\"url\":\"interfaces/EscrowCreate.html#Amount\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"EscrowCreate\"},{\"kind\":1024,\"name\":\"Destination\",\"url\":\"interfaces/EscrowCreate.html#Destination\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"EscrowCreate\"},{\"kind\":1024,\"name\":\"CancelAfter\",\"url\":\"interfaces/EscrowCreate.html#CancelAfter\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"EscrowCreate\"},{\"kind\":1024,\"name\":\"FinishAfter\",\"url\":\"interfaces/EscrowCreate.html#FinishAfter\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"EscrowCreate\"},{\"kind\":1024,\"name\":\"Condition\",\"url\":\"interfaces/EscrowCreate.html#Condition\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"EscrowCreate\"},{\"kind\":1024,\"name\":\"DestinationTag\",\"url\":\"interfaces/EscrowCreate.html#DestinationTag\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"EscrowCreate\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/EscrowCreate.html#Account\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"EscrowCreate\"},{\"kind\":1024,\"name\":\"Fee\",\"url\":\"interfaces/EscrowCreate.html#Fee\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"EscrowCreate\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/EscrowCreate.html#Sequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"EscrowCreate\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/EscrowCreate.html#AccountTxnID\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"EscrowCreate\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/EscrowCreate.html#Flags\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"EscrowCreate\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/EscrowCreate.html#LastLedgerSequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"EscrowCreate\"},{\"kind\":1024,\"name\":\"Memos\",\"url\":\"interfaces/EscrowCreate.html#Memos\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"EscrowCreate\"},{\"kind\":1024,\"name\":\"Signers\",\"url\":\"interfaces/EscrowCreate.html#Signers\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"EscrowCreate\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/EscrowCreate.html#SourceTag\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"EscrowCreate\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/EscrowCreate.html#SigningPubKey\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"EscrowCreate\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/EscrowCreate.html#TicketSequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"EscrowCreate\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/EscrowCreate.html#TxnSignature\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"EscrowCreate\"},{\"kind\":256,\"name\":\"EscrowFinish\",\"url\":\"interfaces/EscrowFinish.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"TransactionType\",\"url\":\"interfaces/EscrowFinish.html#TransactionType\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"EscrowFinish\"},{\"kind\":1024,\"name\":\"Owner\",\"url\":\"interfaces/EscrowFinish.html#Owner\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"EscrowFinish\"},{\"kind\":1024,\"name\":\"OfferSequence\",\"url\":\"interfaces/EscrowFinish.html#OfferSequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"EscrowFinish\"},{\"kind\":1024,\"name\":\"Condition\",\"url\":\"interfaces/EscrowFinish.html#Condition\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"EscrowFinish\"},{\"kind\":1024,\"name\":\"Fulfillment\",\"url\":\"interfaces/EscrowFinish.html#Fulfillment\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"EscrowFinish\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/EscrowFinish.html#Account\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"EscrowFinish\"},{\"kind\":1024,\"name\":\"Fee\",\"url\":\"interfaces/EscrowFinish.html#Fee\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"EscrowFinish\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/EscrowFinish.html#Sequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"EscrowFinish\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/EscrowFinish.html#AccountTxnID\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"EscrowFinish\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/EscrowFinish.html#Flags\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"EscrowFinish\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/EscrowFinish.html#LastLedgerSequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"EscrowFinish\"},{\"kind\":1024,\"name\":\"Memos\",\"url\":\"interfaces/EscrowFinish.html#Memos\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"EscrowFinish\"},{\"kind\":1024,\"name\":\"Signers\",\"url\":\"interfaces/EscrowFinish.html#Signers\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"EscrowFinish\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/EscrowFinish.html#SourceTag\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"EscrowFinish\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/EscrowFinish.html#SigningPubKey\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"EscrowFinish\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/EscrowFinish.html#TicketSequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"EscrowFinish\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/EscrowFinish.html#TxnSignature\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"EscrowFinish\"},{\"kind\":256,\"name\":\"NFTokenAcceptOffer\",\"url\":\"interfaces/NFTokenAcceptOffer.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"TransactionType\",\"url\":\"interfaces/NFTokenAcceptOffer.html#TransactionType\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"NFTokenAcceptOffer\"},{\"kind\":1024,\"name\":\"NFTokenSellOffer\",\"url\":\"interfaces/NFTokenAcceptOffer.html#NFTokenSellOffer\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"NFTokenAcceptOffer\"},{\"kind\":1024,\"name\":\"NFTokenBuyOffer\",\"url\":\"interfaces/NFTokenAcceptOffer.html#NFTokenBuyOffer\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"NFTokenAcceptOffer\"},{\"kind\":1024,\"name\":\"NFTokenBrokerFee\",\"url\":\"interfaces/NFTokenAcceptOffer.html#NFTokenBrokerFee\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"NFTokenAcceptOffer\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/NFTokenAcceptOffer.html#Account\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTokenAcceptOffer\"},{\"kind\":1024,\"name\":\"Fee\",\"url\":\"interfaces/NFTokenAcceptOffer.html#Fee\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTokenAcceptOffer\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/NFTokenAcceptOffer.html#Sequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTokenAcceptOffer\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/NFTokenAcceptOffer.html#AccountTxnID\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTokenAcceptOffer\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/NFTokenAcceptOffer.html#Flags\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTokenAcceptOffer\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/NFTokenAcceptOffer.html#LastLedgerSequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTokenAcceptOffer\"},{\"kind\":1024,\"name\":\"Memos\",\"url\":\"interfaces/NFTokenAcceptOffer.html#Memos\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTokenAcceptOffer\"},{\"kind\":1024,\"name\":\"Signers\",\"url\":\"interfaces/NFTokenAcceptOffer.html#Signers\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTokenAcceptOffer\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/NFTokenAcceptOffer.html#SourceTag\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTokenAcceptOffer\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/NFTokenAcceptOffer.html#SigningPubKey\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTokenAcceptOffer\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/NFTokenAcceptOffer.html#TicketSequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTokenAcceptOffer\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/NFTokenAcceptOffer.html#TxnSignature\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTokenAcceptOffer\"},{\"kind\":256,\"name\":\"NFTokenBurn\",\"url\":\"interfaces/NFTokenBurn.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"TransactionType\",\"url\":\"interfaces/NFTokenBurn.html#TransactionType\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"NFTokenBurn\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/NFTokenBurn.html#Account\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"NFTokenBurn\"},{\"kind\":1024,\"name\":\"NFTokenID\",\"url\":\"interfaces/NFTokenBurn.html#NFTokenID\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"NFTokenBurn\"},{\"kind\":1024,\"name\":\"Owner\",\"url\":\"interfaces/NFTokenBurn.html#Owner\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"NFTokenBurn\"},{\"kind\":1024,\"name\":\"Fee\",\"url\":\"interfaces/NFTokenBurn.html#Fee\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTokenBurn\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/NFTokenBurn.html#Sequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTokenBurn\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/NFTokenBurn.html#AccountTxnID\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTokenBurn\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/NFTokenBurn.html#Flags\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTokenBurn\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/NFTokenBurn.html#LastLedgerSequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTokenBurn\"},{\"kind\":1024,\"name\":\"Memos\",\"url\":\"interfaces/NFTokenBurn.html#Memos\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTokenBurn\"},{\"kind\":1024,\"name\":\"Signers\",\"url\":\"interfaces/NFTokenBurn.html#Signers\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTokenBurn\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/NFTokenBurn.html#SourceTag\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTokenBurn\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/NFTokenBurn.html#SigningPubKey\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTokenBurn\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/NFTokenBurn.html#TicketSequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTokenBurn\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/NFTokenBurn.html#TxnSignature\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTokenBurn\"},{\"kind\":256,\"name\":\"NFTokenCancelOffer\",\"url\":\"interfaces/NFTokenCancelOffer.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"TransactionType\",\"url\":\"interfaces/NFTokenCancelOffer.html#TransactionType\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"NFTokenCancelOffer\"},{\"kind\":1024,\"name\":\"NFTokenOffers\",\"url\":\"interfaces/NFTokenCancelOffer.html#NFTokenOffers\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"NFTokenCancelOffer\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/NFTokenCancelOffer.html#Account\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTokenCancelOffer\"},{\"kind\":1024,\"name\":\"Fee\",\"url\":\"interfaces/NFTokenCancelOffer.html#Fee\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTokenCancelOffer\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/NFTokenCancelOffer.html#Sequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTokenCancelOffer\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/NFTokenCancelOffer.html#AccountTxnID\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTokenCancelOffer\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/NFTokenCancelOffer.html#Flags\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTokenCancelOffer\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/NFTokenCancelOffer.html#LastLedgerSequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTokenCancelOffer\"},{\"kind\":1024,\"name\":\"Memos\",\"url\":\"interfaces/NFTokenCancelOffer.html#Memos\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTokenCancelOffer\"},{\"kind\":1024,\"name\":\"Signers\",\"url\":\"interfaces/NFTokenCancelOffer.html#Signers\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTokenCancelOffer\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/NFTokenCancelOffer.html#SourceTag\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTokenCancelOffer\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/NFTokenCancelOffer.html#SigningPubKey\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTokenCancelOffer\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/NFTokenCancelOffer.html#TicketSequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTokenCancelOffer\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/NFTokenCancelOffer.html#TxnSignature\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTokenCancelOffer\"},{\"kind\":256,\"name\":\"NFTokenCreateOffer\",\"url\":\"interfaces/NFTokenCreateOffer.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"TransactionType\",\"url\":\"interfaces/NFTokenCreateOffer.html#TransactionType\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"NFTokenCreateOffer\"},{\"kind\":1024,\"name\":\"NFTokenID\",\"url\":\"interfaces/NFTokenCreateOffer.html#NFTokenID\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"NFTokenCreateOffer\"},{\"kind\":1024,\"name\":\"Amount\",\"url\":\"interfaces/NFTokenCreateOffer.html#Amount\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"NFTokenCreateOffer\"},{\"kind\":1024,\"name\":\"Owner\",\"url\":\"interfaces/NFTokenCreateOffer.html#Owner\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"NFTokenCreateOffer\"},{\"kind\":1024,\"name\":\"Expiration\",\"url\":\"interfaces/NFTokenCreateOffer.html#Expiration\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"NFTokenCreateOffer\"},{\"kind\":1024,\"name\":\"Destination\",\"url\":\"interfaces/NFTokenCreateOffer.html#Destination\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"NFTokenCreateOffer\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/NFTokenCreateOffer.html#Flags\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"NFTokenCreateOffer\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/NFTokenCreateOffer.html#Account\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTokenCreateOffer\"},{\"kind\":1024,\"name\":\"Fee\",\"url\":\"interfaces/NFTokenCreateOffer.html#Fee\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTokenCreateOffer\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/NFTokenCreateOffer.html#Sequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTokenCreateOffer\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/NFTokenCreateOffer.html#AccountTxnID\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTokenCreateOffer\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/NFTokenCreateOffer.html#LastLedgerSequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTokenCreateOffer\"},{\"kind\":1024,\"name\":\"Memos\",\"url\":\"interfaces/NFTokenCreateOffer.html#Memos\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTokenCreateOffer\"},{\"kind\":1024,\"name\":\"Signers\",\"url\":\"interfaces/NFTokenCreateOffer.html#Signers\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTokenCreateOffer\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/NFTokenCreateOffer.html#SourceTag\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTokenCreateOffer\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/NFTokenCreateOffer.html#SigningPubKey\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTokenCreateOffer\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/NFTokenCreateOffer.html#TicketSequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTokenCreateOffer\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/NFTokenCreateOffer.html#TxnSignature\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTokenCreateOffer\"},{\"kind\":8,\"name\":\"NFTokenCreateOfferFlags\",\"url\":\"enums/NFTokenCreateOfferFlags.html\",\"classes\":\"tsd-kind-enum\"},{\"kind\":16,\"name\":\"tfSellNFToken\",\"url\":\"enums/NFTokenCreateOfferFlags.html#tfSellNFToken\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"NFTokenCreateOfferFlags\"},{\"kind\":256,\"name\":\"NFTokenCreateOfferFlagsInterface\",\"url\":\"interfaces/NFTokenCreateOfferFlagsInterface.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"tfSellNFToken\",\"url\":\"interfaces/NFTokenCreateOfferFlagsInterface.html#tfSellNFToken\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"NFTokenCreateOfferFlagsInterface\"},{\"kind\":256,\"name\":\"NFTokenMint\",\"url\":\"interfaces/NFTokenMint.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"TransactionType\",\"url\":\"interfaces/NFTokenMint.html#TransactionType\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"NFTokenMint\"},{\"kind\":1024,\"name\":\"NFTokenTaxon\",\"url\":\"interfaces/NFTokenMint.html#NFTokenTaxon\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"NFTokenMint\"},{\"kind\":1024,\"name\":\"Issuer\",\"url\":\"interfaces/NFTokenMint.html#Issuer\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"NFTokenMint\"},{\"kind\":1024,\"name\":\"TransferFee\",\"url\":\"interfaces/NFTokenMint.html#TransferFee\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"NFTokenMint\"},{\"kind\":1024,\"name\":\"URI\",\"url\":\"interfaces/NFTokenMint.html#URI\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"NFTokenMint\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/NFTokenMint.html#Flags\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"NFTokenMint\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/NFTokenMint.html#Account\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTokenMint\"},{\"kind\":1024,\"name\":\"Fee\",\"url\":\"interfaces/NFTokenMint.html#Fee\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTokenMint\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/NFTokenMint.html#Sequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTokenMint\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/NFTokenMint.html#AccountTxnID\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTokenMint\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/NFTokenMint.html#LastLedgerSequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTokenMint\"},{\"kind\":1024,\"name\":\"Memos\",\"url\":\"interfaces/NFTokenMint.html#Memos\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTokenMint\"},{\"kind\":1024,\"name\":\"Signers\",\"url\":\"interfaces/NFTokenMint.html#Signers\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTokenMint\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/NFTokenMint.html#SourceTag\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTokenMint\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/NFTokenMint.html#SigningPubKey\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTokenMint\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/NFTokenMint.html#TicketSequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTokenMint\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/NFTokenMint.html#TxnSignature\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"NFTokenMint\"},{\"kind\":8,\"name\":\"NFTokenMintFlags\",\"url\":\"enums/NFTokenMintFlags.html\",\"classes\":\"tsd-kind-enum\"},{\"kind\":16,\"name\":\"tfBurnable\",\"url\":\"enums/NFTokenMintFlags.html#tfBurnable\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"NFTokenMintFlags\"},{\"kind\":16,\"name\":\"tfOnlyXRP\",\"url\":\"enums/NFTokenMintFlags.html#tfOnlyXRP\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"NFTokenMintFlags\"},{\"kind\":16,\"name\":\"tfTrustLine\",\"url\":\"enums/NFTokenMintFlags.html#tfTrustLine\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"NFTokenMintFlags\"},{\"kind\":16,\"name\":\"tfTransferable\",\"url\":\"enums/NFTokenMintFlags.html#tfTransferable\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"NFTokenMintFlags\"},{\"kind\":256,\"name\":\"NFTokenMintFlagsInterface\",\"url\":\"interfaces/NFTokenMintFlagsInterface.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"tfBurnable\",\"url\":\"interfaces/NFTokenMintFlagsInterface.html#tfBurnable\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"NFTokenMintFlagsInterface\"},{\"kind\":1024,\"name\":\"tfOnlyXRP\",\"url\":\"interfaces/NFTokenMintFlagsInterface.html#tfOnlyXRP\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"NFTokenMintFlagsInterface\"},{\"kind\":1024,\"name\":\"tfTrustLine\",\"url\":\"interfaces/NFTokenMintFlagsInterface.html#tfTrustLine\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"NFTokenMintFlagsInterface\"},{\"kind\":1024,\"name\":\"tfTransferable\",\"url\":\"interfaces/NFTokenMintFlagsInterface.html#tfTransferable\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"NFTokenMintFlagsInterface\"},{\"kind\":256,\"name\":\"OfferCancel\",\"url\":\"interfaces/OfferCancel.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"TransactionType\",\"url\":\"interfaces/OfferCancel.html#TransactionType\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"OfferCancel\"},{\"kind\":1024,\"name\":\"OfferSequence\",\"url\":\"interfaces/OfferCancel.html#OfferSequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"OfferCancel\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/OfferCancel.html#Account\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"OfferCancel\"},{\"kind\":1024,\"name\":\"Fee\",\"url\":\"interfaces/OfferCancel.html#Fee\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"OfferCancel\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/OfferCancel.html#Sequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"OfferCancel\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/OfferCancel.html#AccountTxnID\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"OfferCancel\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/OfferCancel.html#Flags\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"OfferCancel\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/OfferCancel.html#LastLedgerSequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"OfferCancel\"},{\"kind\":1024,\"name\":\"Memos\",\"url\":\"interfaces/OfferCancel.html#Memos\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"OfferCancel\"},{\"kind\":1024,\"name\":\"Signers\",\"url\":\"interfaces/OfferCancel.html#Signers\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"OfferCancel\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/OfferCancel.html#SourceTag\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"OfferCancel\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/OfferCancel.html#SigningPubKey\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"OfferCancel\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/OfferCancel.html#TicketSequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"OfferCancel\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/OfferCancel.html#TxnSignature\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"OfferCancel\"},{\"kind\":8,\"name\":\"OfferCreateFlags\",\"url\":\"enums/OfferCreateFlags.html\",\"classes\":\"tsd-kind-enum\"},{\"kind\":16,\"name\":\"tfPassive\",\"url\":\"enums/OfferCreateFlags.html#tfPassive\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"OfferCreateFlags\"},{\"kind\":16,\"name\":\"tfImmediateOrCancel\",\"url\":\"enums/OfferCreateFlags.html#tfImmediateOrCancel\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"OfferCreateFlags\"},{\"kind\":16,\"name\":\"tfFillOrKill\",\"url\":\"enums/OfferCreateFlags.html#tfFillOrKill\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"OfferCreateFlags\"},{\"kind\":16,\"name\":\"tfSell\",\"url\":\"enums/OfferCreateFlags.html#tfSell\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"OfferCreateFlags\"},{\"kind\":256,\"name\":\"OfferCreateFlagsInterface\",\"url\":\"interfaces/OfferCreateFlagsInterface.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"tfPassive\",\"url\":\"interfaces/OfferCreateFlagsInterface.html#tfPassive\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"OfferCreateFlagsInterface\"},{\"kind\":1024,\"name\":\"tfImmediateOrCancel\",\"url\":\"interfaces/OfferCreateFlagsInterface.html#tfImmediateOrCancel\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"OfferCreateFlagsInterface\"},{\"kind\":1024,\"name\":\"tfFillOrKill\",\"url\":\"interfaces/OfferCreateFlagsInterface.html#tfFillOrKill\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"OfferCreateFlagsInterface\"},{\"kind\":1024,\"name\":\"tfSell\",\"url\":\"interfaces/OfferCreateFlagsInterface.html#tfSell\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"OfferCreateFlagsInterface\"},{\"kind\":256,\"name\":\"OfferCreate\",\"url\":\"interfaces/OfferCreate.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"TransactionType\",\"url\":\"interfaces/OfferCreate.html#TransactionType\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"OfferCreate\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/OfferCreate.html#Flags\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"OfferCreate\"},{\"kind\":1024,\"name\":\"Expiration\",\"url\":\"interfaces/OfferCreate.html#Expiration\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"OfferCreate\"},{\"kind\":1024,\"name\":\"OfferSequence\",\"url\":\"interfaces/OfferCreate.html#OfferSequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"OfferCreate\"},{\"kind\":1024,\"name\":\"TakerGets\",\"url\":\"interfaces/OfferCreate.html#TakerGets\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"OfferCreate\"},{\"kind\":1024,\"name\":\"TakerPays\",\"url\":\"interfaces/OfferCreate.html#TakerPays\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"OfferCreate\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/OfferCreate.html#Account\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"OfferCreate\"},{\"kind\":1024,\"name\":\"Fee\",\"url\":\"interfaces/OfferCreate.html#Fee\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"OfferCreate\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/OfferCreate.html#Sequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"OfferCreate\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/OfferCreate.html#AccountTxnID\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"OfferCreate\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/OfferCreate.html#LastLedgerSequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"OfferCreate\"},{\"kind\":1024,\"name\":\"Memos\",\"url\":\"interfaces/OfferCreate.html#Memos\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"OfferCreate\"},{\"kind\":1024,\"name\":\"Signers\",\"url\":\"interfaces/OfferCreate.html#Signers\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"OfferCreate\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/OfferCreate.html#SourceTag\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"OfferCreate\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/OfferCreate.html#SigningPubKey\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"OfferCreate\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/OfferCreate.html#TicketSequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"OfferCreate\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/OfferCreate.html#TxnSignature\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"OfferCreate\"},{\"kind\":8,\"name\":\"PaymentFlags\",\"url\":\"enums/PaymentFlags.html\",\"classes\":\"tsd-kind-enum\"},{\"kind\":16,\"name\":\"tfNoDirectRipple\",\"url\":\"enums/PaymentFlags.html#tfNoDirectRipple\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"PaymentFlags\"},{\"kind\":16,\"name\":\"tfPartialPayment\",\"url\":\"enums/PaymentFlags.html#tfPartialPayment\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"PaymentFlags\"},{\"kind\":16,\"name\":\"tfLimitQuality\",\"url\":\"enums/PaymentFlags.html#tfLimitQuality\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"PaymentFlags\"},{\"kind\":256,\"name\":\"PaymentFlagsInterface\",\"url\":\"interfaces/PaymentFlagsInterface.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"tfNoDirectRipple\",\"url\":\"interfaces/PaymentFlagsInterface.html#tfNoDirectRipple\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"PaymentFlagsInterface\"},{\"kind\":1024,\"name\":\"tfPartialPayment\",\"url\":\"interfaces/PaymentFlagsInterface.html#tfPartialPayment\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"PaymentFlagsInterface\"},{\"kind\":1024,\"name\":\"tfLimitQuality\",\"url\":\"interfaces/PaymentFlagsInterface.html#tfLimitQuality\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"PaymentFlagsInterface\"},{\"kind\":256,\"name\":\"Payment\",\"url\":\"interfaces/Payment.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"TransactionType\",\"url\":\"interfaces/Payment.html#TransactionType\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"Payment\"},{\"kind\":1024,\"name\":\"Amount\",\"url\":\"interfaces/Payment.html#Amount\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"Payment\"},{\"kind\":1024,\"name\":\"Destination\",\"url\":\"interfaces/Payment.html#Destination\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"Payment\"},{\"kind\":1024,\"name\":\"DestinationTag\",\"url\":\"interfaces/Payment.html#DestinationTag\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"Payment\"},{\"kind\":1024,\"name\":\"InvoiceID\",\"url\":\"interfaces/Payment.html#InvoiceID\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"Payment\"},{\"kind\":1024,\"name\":\"Paths\",\"url\":\"interfaces/Payment.html#Paths\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"Payment\"},{\"kind\":1024,\"name\":\"SendMax\",\"url\":\"interfaces/Payment.html#SendMax\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"Payment\"},{\"kind\":1024,\"name\":\"DeliverMin\",\"url\":\"interfaces/Payment.html#DeliverMin\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"Payment\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/Payment.html#Flags\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"Payment\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/Payment.html#Account\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"Payment\"},{\"kind\":1024,\"name\":\"Fee\",\"url\":\"interfaces/Payment.html#Fee\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"Payment\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/Payment.html#Sequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"Payment\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/Payment.html#AccountTxnID\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"Payment\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/Payment.html#LastLedgerSequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"Payment\"},{\"kind\":1024,\"name\":\"Memos\",\"url\":\"interfaces/Payment.html#Memos\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"Payment\"},{\"kind\":1024,\"name\":\"Signers\",\"url\":\"interfaces/Payment.html#Signers\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"Payment\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/Payment.html#SourceTag\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"Payment\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/Payment.html#SigningPubKey\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"Payment\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/Payment.html#TicketSequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"Payment\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/Payment.html#TxnSignature\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"Payment\"},{\"kind\":8,\"name\":\"PaymentChannelClaimFlags\",\"url\":\"enums/PaymentChannelClaimFlags.html\",\"classes\":\"tsd-kind-enum\"},{\"kind\":16,\"name\":\"tfRenew\",\"url\":\"enums/PaymentChannelClaimFlags.html#tfRenew\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"PaymentChannelClaimFlags\"},{\"kind\":16,\"name\":\"tfClose\",\"url\":\"enums/PaymentChannelClaimFlags.html#tfClose\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"PaymentChannelClaimFlags\"},{\"kind\":256,\"name\":\"PaymentChannelClaimFlagsInterface\",\"url\":\"interfaces/PaymentChannelClaimFlagsInterface.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"tfRenew\",\"url\":\"interfaces/PaymentChannelClaimFlagsInterface.html#tfRenew\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"PaymentChannelClaimFlagsInterface\"},{\"kind\":1024,\"name\":\"tfClose\",\"url\":\"interfaces/PaymentChannelClaimFlagsInterface.html#tfClose\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"PaymentChannelClaimFlagsInterface\"},{\"kind\":256,\"name\":\"PaymentChannelClaim\",\"url\":\"interfaces/PaymentChannelClaim.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"TransactionType\",\"url\":\"interfaces/PaymentChannelClaim.html#TransactionType\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"PaymentChannelClaim\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/PaymentChannelClaim.html#Flags\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"PaymentChannelClaim\"},{\"kind\":1024,\"name\":\"Channel\",\"url\":\"interfaces/PaymentChannelClaim.html#Channel\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"PaymentChannelClaim\"},{\"kind\":1024,\"name\":\"Balance\",\"url\":\"interfaces/PaymentChannelClaim.html#Balance\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"PaymentChannelClaim\"},{\"kind\":1024,\"name\":\"Amount\",\"url\":\"interfaces/PaymentChannelClaim.html#Amount\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"PaymentChannelClaim\"},{\"kind\":1024,\"name\":\"Signature\",\"url\":\"interfaces/PaymentChannelClaim.html#Signature\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"PaymentChannelClaim\"},{\"kind\":1024,\"name\":\"PublicKey\",\"url\":\"interfaces/PaymentChannelClaim.html#PublicKey\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"PaymentChannelClaim\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/PaymentChannelClaim.html#Account\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"PaymentChannelClaim\"},{\"kind\":1024,\"name\":\"Fee\",\"url\":\"interfaces/PaymentChannelClaim.html#Fee\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"PaymentChannelClaim\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/PaymentChannelClaim.html#Sequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"PaymentChannelClaim\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/PaymentChannelClaim.html#AccountTxnID\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"PaymentChannelClaim\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/PaymentChannelClaim.html#LastLedgerSequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"PaymentChannelClaim\"},{\"kind\":1024,\"name\":\"Memos\",\"url\":\"interfaces/PaymentChannelClaim.html#Memos\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"PaymentChannelClaim\"},{\"kind\":1024,\"name\":\"Signers\",\"url\":\"interfaces/PaymentChannelClaim.html#Signers\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"PaymentChannelClaim\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/PaymentChannelClaim.html#SourceTag\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"PaymentChannelClaim\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/PaymentChannelClaim.html#SigningPubKey\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"PaymentChannelClaim\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/PaymentChannelClaim.html#TicketSequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"PaymentChannelClaim\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/PaymentChannelClaim.html#TxnSignature\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"PaymentChannelClaim\"},{\"kind\":256,\"name\":\"PaymentChannelCreate\",\"url\":\"interfaces/PaymentChannelCreate.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"TransactionType\",\"url\":\"interfaces/PaymentChannelCreate.html#TransactionType\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"PaymentChannelCreate\"},{\"kind\":1024,\"name\":\"Amount\",\"url\":\"interfaces/PaymentChannelCreate.html#Amount\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"PaymentChannelCreate\"},{\"kind\":1024,\"name\":\"Destination\",\"url\":\"interfaces/PaymentChannelCreate.html#Destination\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"PaymentChannelCreate\"},{\"kind\":1024,\"name\":\"SettleDelay\",\"url\":\"interfaces/PaymentChannelCreate.html#SettleDelay\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"PaymentChannelCreate\"},{\"kind\":1024,\"name\":\"PublicKey\",\"url\":\"interfaces/PaymentChannelCreate.html#PublicKey\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"PaymentChannelCreate\"},{\"kind\":1024,\"name\":\"CancelAfter\",\"url\":\"interfaces/PaymentChannelCreate.html#CancelAfter\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"PaymentChannelCreate\"},{\"kind\":1024,\"name\":\"DestinationTag\",\"url\":\"interfaces/PaymentChannelCreate.html#DestinationTag\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"PaymentChannelCreate\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/PaymentChannelCreate.html#Account\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"PaymentChannelCreate\"},{\"kind\":1024,\"name\":\"Fee\",\"url\":\"interfaces/PaymentChannelCreate.html#Fee\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"PaymentChannelCreate\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/PaymentChannelCreate.html#Sequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"PaymentChannelCreate\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/PaymentChannelCreate.html#AccountTxnID\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"PaymentChannelCreate\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/PaymentChannelCreate.html#Flags\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"PaymentChannelCreate\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/PaymentChannelCreate.html#LastLedgerSequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"PaymentChannelCreate\"},{\"kind\":1024,\"name\":\"Memos\",\"url\":\"interfaces/PaymentChannelCreate.html#Memos\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"PaymentChannelCreate\"},{\"kind\":1024,\"name\":\"Signers\",\"url\":\"interfaces/PaymentChannelCreate.html#Signers\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"PaymentChannelCreate\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/PaymentChannelCreate.html#SourceTag\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"PaymentChannelCreate\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/PaymentChannelCreate.html#SigningPubKey\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"PaymentChannelCreate\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/PaymentChannelCreate.html#TicketSequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"PaymentChannelCreate\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/PaymentChannelCreate.html#TxnSignature\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"PaymentChannelCreate\"},{\"kind\":256,\"name\":\"PaymentChannelFund\",\"url\":\"interfaces/PaymentChannelFund.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"TransactionType\",\"url\":\"interfaces/PaymentChannelFund.html#TransactionType\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"PaymentChannelFund\"},{\"kind\":1024,\"name\":\"Channel\",\"url\":\"interfaces/PaymentChannelFund.html#Channel\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"PaymentChannelFund\"},{\"kind\":1024,\"name\":\"Amount\",\"url\":\"interfaces/PaymentChannelFund.html#Amount\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"PaymentChannelFund\"},{\"kind\":1024,\"name\":\"Expiration\",\"url\":\"interfaces/PaymentChannelFund.html#Expiration\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"PaymentChannelFund\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/PaymentChannelFund.html#Account\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"PaymentChannelFund\"},{\"kind\":1024,\"name\":\"Fee\",\"url\":\"interfaces/PaymentChannelFund.html#Fee\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"PaymentChannelFund\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/PaymentChannelFund.html#Sequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"PaymentChannelFund\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/PaymentChannelFund.html#AccountTxnID\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"PaymentChannelFund\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/PaymentChannelFund.html#Flags\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"PaymentChannelFund\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/PaymentChannelFund.html#LastLedgerSequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"PaymentChannelFund\"},{\"kind\":1024,\"name\":\"Memos\",\"url\":\"interfaces/PaymentChannelFund.html#Memos\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"PaymentChannelFund\"},{\"kind\":1024,\"name\":\"Signers\",\"url\":\"interfaces/PaymentChannelFund.html#Signers\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"PaymentChannelFund\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/PaymentChannelFund.html#SourceTag\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"PaymentChannelFund\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/PaymentChannelFund.html#SigningPubKey\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"PaymentChannelFund\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/PaymentChannelFund.html#TicketSequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"PaymentChannelFund\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/PaymentChannelFund.html#TxnSignature\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"PaymentChannelFund\"},{\"kind\":256,\"name\":\"SetRegularKey\",\"url\":\"interfaces/SetRegularKey.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"TransactionType\",\"url\":\"interfaces/SetRegularKey.html#TransactionType\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"SetRegularKey\"},{\"kind\":1024,\"name\":\"RegularKey\",\"url\":\"interfaces/SetRegularKey.html#RegularKey\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"SetRegularKey\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/SetRegularKey.html#Account\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"SetRegularKey\"},{\"kind\":1024,\"name\":\"Fee\",\"url\":\"interfaces/SetRegularKey.html#Fee\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"SetRegularKey\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/SetRegularKey.html#Sequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"SetRegularKey\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/SetRegularKey.html#AccountTxnID\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"SetRegularKey\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/SetRegularKey.html#Flags\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"SetRegularKey\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/SetRegularKey.html#LastLedgerSequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"SetRegularKey\"},{\"kind\":1024,\"name\":\"Memos\",\"url\":\"interfaces/SetRegularKey.html#Memos\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"SetRegularKey\"},{\"kind\":1024,\"name\":\"Signers\",\"url\":\"interfaces/SetRegularKey.html#Signers\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"SetRegularKey\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/SetRegularKey.html#SourceTag\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"SetRegularKey\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/SetRegularKey.html#SigningPubKey\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"SetRegularKey\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/SetRegularKey.html#TicketSequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"SetRegularKey\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/SetRegularKey.html#TxnSignature\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"SetRegularKey\"},{\"kind\":256,\"name\":\"SignerListSet\",\"url\":\"interfaces/SignerListSet.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"TransactionType\",\"url\":\"interfaces/SignerListSet.html#TransactionType\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"SignerListSet\"},{\"kind\":1024,\"name\":\"SignerQuorum\",\"url\":\"interfaces/SignerListSet.html#SignerQuorum\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"SignerListSet\"},{\"kind\":1024,\"name\":\"SignerEntries\",\"url\":\"interfaces/SignerListSet.html#SignerEntries\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"SignerListSet\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/SignerListSet.html#Account\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"SignerListSet\"},{\"kind\":1024,\"name\":\"Fee\",\"url\":\"interfaces/SignerListSet.html#Fee\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"SignerListSet\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/SignerListSet.html#Sequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"SignerListSet\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/SignerListSet.html#AccountTxnID\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"SignerListSet\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/SignerListSet.html#Flags\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"SignerListSet\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/SignerListSet.html#LastLedgerSequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"SignerListSet\"},{\"kind\":1024,\"name\":\"Memos\",\"url\":\"interfaces/SignerListSet.html#Memos\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"SignerListSet\"},{\"kind\":1024,\"name\":\"Signers\",\"url\":\"interfaces/SignerListSet.html#Signers\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"SignerListSet\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/SignerListSet.html#SourceTag\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"SignerListSet\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/SignerListSet.html#SigningPubKey\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"SignerListSet\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/SignerListSet.html#TicketSequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"SignerListSet\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/SignerListSet.html#TxnSignature\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"SignerListSet\"},{\"kind\":256,\"name\":\"TicketCreate\",\"url\":\"interfaces/TicketCreate.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"TransactionType\",\"url\":\"interfaces/TicketCreate.html#TransactionType\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"TicketCreate\"},{\"kind\":1024,\"name\":\"TicketCount\",\"url\":\"interfaces/TicketCreate.html#TicketCount\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"TicketCreate\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/TicketCreate.html#Account\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"TicketCreate\"},{\"kind\":1024,\"name\":\"Fee\",\"url\":\"interfaces/TicketCreate.html#Fee\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"TicketCreate\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/TicketCreate.html#Sequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"TicketCreate\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/TicketCreate.html#AccountTxnID\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"TicketCreate\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/TicketCreate.html#Flags\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"TicketCreate\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/TicketCreate.html#LastLedgerSequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"TicketCreate\"},{\"kind\":1024,\"name\":\"Memos\",\"url\":\"interfaces/TicketCreate.html#Memos\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"TicketCreate\"},{\"kind\":1024,\"name\":\"Signers\",\"url\":\"interfaces/TicketCreate.html#Signers\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"TicketCreate\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/TicketCreate.html#SourceTag\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"TicketCreate\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/TicketCreate.html#SigningPubKey\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"TicketCreate\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/TicketCreate.html#TicketSequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"TicketCreate\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/TicketCreate.html#TxnSignature\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"TicketCreate\"},{\"kind\":256,\"name\":\"TrustSetFlagsInterface\",\"url\":\"interfaces/TrustSetFlagsInterface.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"tfSetfAuth\",\"url\":\"interfaces/TrustSetFlagsInterface.html#tfSetfAuth\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"TrustSetFlagsInterface\"},{\"kind\":1024,\"name\":\"tfSetNoRipple\",\"url\":\"interfaces/TrustSetFlagsInterface.html#tfSetNoRipple\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"TrustSetFlagsInterface\"},{\"kind\":1024,\"name\":\"tfClearNoRipple\",\"url\":\"interfaces/TrustSetFlagsInterface.html#tfClearNoRipple\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"TrustSetFlagsInterface\"},{\"kind\":1024,\"name\":\"tfSetFreeze\",\"url\":\"interfaces/TrustSetFlagsInterface.html#tfSetFreeze\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"TrustSetFlagsInterface\"},{\"kind\":1024,\"name\":\"tfClearFreeze\",\"url\":\"interfaces/TrustSetFlagsInterface.html#tfClearFreeze\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"TrustSetFlagsInterface\"},{\"kind\":8,\"name\":\"TrustSetFlags\",\"url\":\"enums/TrustSetFlags.html\",\"classes\":\"tsd-kind-enum\"},{\"kind\":16,\"name\":\"tfSetfAuth\",\"url\":\"enums/TrustSetFlags.html#tfSetfAuth\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"TrustSetFlags\"},{\"kind\":16,\"name\":\"tfSetNoRipple\",\"url\":\"enums/TrustSetFlags.html#tfSetNoRipple\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"TrustSetFlags\"},{\"kind\":16,\"name\":\"tfClearNoRipple\",\"url\":\"enums/TrustSetFlags.html#tfClearNoRipple\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"TrustSetFlags\"},{\"kind\":16,\"name\":\"tfSetFreeze\",\"url\":\"enums/TrustSetFlags.html#tfSetFreeze\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"TrustSetFlags\"},{\"kind\":16,\"name\":\"tfClearFreeze\",\"url\":\"enums/TrustSetFlags.html#tfClearFreeze\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"TrustSetFlags\"},{\"kind\":256,\"name\":\"TrustSet\",\"url\":\"interfaces/TrustSet.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"TransactionType\",\"url\":\"interfaces/TrustSet.html#TransactionType\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"TrustSet\"},{\"kind\":1024,\"name\":\"LimitAmount\",\"url\":\"interfaces/TrustSet.html#LimitAmount\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"TrustSet\"},{\"kind\":1024,\"name\":\"QualityIn\",\"url\":\"interfaces/TrustSet.html#QualityIn\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"TrustSet\"},{\"kind\":1024,\"name\":\"QualityOut\",\"url\":\"interfaces/TrustSet.html#QualityOut\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"TrustSet\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/TrustSet.html#Flags\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"TrustSet\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/TrustSet.html#Account\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"TrustSet\"},{\"kind\":1024,\"name\":\"Fee\",\"url\":\"interfaces/TrustSet.html#Fee\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"TrustSet\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/TrustSet.html#Sequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"TrustSet\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/TrustSet.html#AccountTxnID\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"TrustSet\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/TrustSet.html#LastLedgerSequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"TrustSet\"},{\"kind\":1024,\"name\":\"Memos\",\"url\":\"interfaces/TrustSet.html#Memos\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"TrustSet\"},{\"kind\":1024,\"name\":\"Signers\",\"url\":\"interfaces/TrustSet.html#Signers\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"TrustSet\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/TrustSet.html#SourceTag\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"TrustSet\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/TrustSet.html#SigningPubKey\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"TrustSet\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/TrustSet.html#TicketSequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"TrustSet\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/TrustSet.html#TxnSignature\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"TrustSet\"},{\"kind\":64,\"name\":\"getBalanceChanges\",\"url\":\"functions/getBalanceChanges.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"dropsToXrp\",\"url\":\"functions/dropsToXrp.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"xrpToDrops\",\"url\":\"functions/xrpToDrops.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"hasNextPage\",\"url\":\"functions/hasNextPage.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"rippleTimeToISOTime\",\"url\":\"functions/rippleTimeToISOTime.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"isoTimeToRippleTime\",\"url\":\"functions/isoTimeToRippleTime.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"rippleTimeToUnixTime\",\"url\":\"functions/rippleTimeToUnixTime.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"unixTimeToRippleTime\",\"url\":\"functions/unixTimeToRippleTime.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"percentToQuality\",\"url\":\"functions/percentToQuality.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"decimalToQuality\",\"url\":\"functions/decimalToQuality.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"percentToTransferRate\",\"url\":\"functions/percentToTransferRate.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"decimalToTransferRate\",\"url\":\"functions/decimalToTransferRate.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"transferRateToDecimal\",\"url\":\"functions/transferRateToDecimal.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"qualityToDecimal\",\"url\":\"functions/qualityToDecimal.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"isValidSecret\",\"url\":\"functions/isValidSecret.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"isValidAddress\",\"url\":\"functions/isValidAddress.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":32,\"name\":\"hashes\",\"url\":\"variables/hashes.html\",\"classes\":\"tsd-kind-variable\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/hashes.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-variable\",\"parent\":\"hashes\"},{\"kind\":1024,\"name\":\"hashSignedTx\",\"url\":\"variables/hashes.html#__type.hashSignedTx\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"hashes.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/hashes.html#__type.hashSignedTx.__type-13\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"hashes.__type.hashSignedTx\"},{\"kind\":1024,\"name\":\"hashTx\",\"url\":\"variables/hashes.html#__type.hashTx\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"hashes.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/hashes.html#__type.hashTx.__type-21\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"hashes.__type.hashTx\"},{\"kind\":1024,\"name\":\"hashAccountRoot\",\"url\":\"variables/hashes.html#__type.hashAccountRoot\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"hashes.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/hashes.html#__type.hashAccountRoot.__type-1\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"hashes.__type.hashAccountRoot\"},{\"kind\":1024,\"name\":\"hashSignerListId\",\"url\":\"variables/hashes.html#__type.hashSignerListId\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"hashes.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/hashes.html#__type.hashSignerListId.__type-15\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"hashes.__type.hashSignerListId\"},{\"kind\":1024,\"name\":\"hashOfferId\",\"url\":\"variables/hashes.html#__type.hashOfferId\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"hashes.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/hashes.html#__type.hashOfferId.__type-9\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"hashes.__type.hashOfferId\"},{\"kind\":1024,\"name\":\"hashTrustline\",\"url\":\"variables/hashes.html#__type.hashTrustline\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"hashes.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/hashes.html#__type.hashTrustline.__type-19\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"hashes.__type.hashTrustline\"},{\"kind\":1024,\"name\":\"hashTxTree\",\"url\":\"variables/hashes.html#__type.hashTxTree\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"hashes.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/hashes.html#__type.hashTxTree.__type-23\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"hashes.__type.hashTxTree\"},{\"kind\":1024,\"name\":\"hashStateTree\",\"url\":\"variables/hashes.html#__type.hashStateTree\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"hashes.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/hashes.html#__type.hashStateTree.__type-17\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"hashes.__type.hashStateTree\"},{\"kind\":1024,\"name\":\"hashLedger\",\"url\":\"variables/hashes.html#__type.hashLedger\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"hashes.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/hashes.html#__type.hashLedger.__type-5\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"hashes.__type.hashLedger\"},{\"kind\":1024,\"name\":\"hashLedgerHeader\",\"url\":\"variables/hashes.html#__type.hashLedgerHeader\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"hashes.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/hashes.html#__type.hashLedgerHeader.__type-7\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"hashes.__type.hashLedgerHeader\"},{\"kind\":1024,\"name\":\"hashEscrow\",\"url\":\"variables/hashes.html#__type.hashEscrow\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"hashes.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/hashes.html#__type.hashEscrow.__type-3\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"hashes.__type.hashEscrow\"},{\"kind\":1024,\"name\":\"hashPaymentChannel\",\"url\":\"variables/hashes.html#__type.hashPaymentChannel\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"hashes.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/hashes.html#__type.hashPaymentChannel.__type-11\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"hashes.__type.hashPaymentChannel\"},{\"kind\":64,\"name\":\"deriveXAddress\",\"url\":\"functions/deriveXAddress.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"signPaymentChannelClaim\",\"url\":\"functions/signPaymentChannelClaim.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"verifyPaymentChannelClaim\",\"url\":\"functions/verifyPaymentChannelClaim.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"convertStringToHex\",\"url\":\"functions/convertStringToHex.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"convertHexToString\",\"url\":\"functions/convertHexToString.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"encode\",\"url\":\"functions/encode.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"decode\",\"url\":\"functions/decode.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"encodeForMultiSigning\",\"url\":\"functions/encodeForMultiSigning.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"encodeForSigning\",\"url\":\"functions/encodeForSigning.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"encodeForSigningClaim\",\"url\":\"functions/encodeForSigningClaim.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"getNFTokenID\",\"url\":\"functions/getNFTokenID.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"createCrossChainPayment\",\"url\":\"functions/createCrossChainPayment.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"parseNFTokenID\",\"url\":\"functions/parseNFTokenID.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"functions/parseNFTokenID.html#parseNFTokenID.__type\",\"classes\":\"tsd-kind-type-literal\",\"parent\":\"parseNFTokenID.parseNFTokenID\"},{\"kind\":1024,\"name\":\"NFTokenID\",\"url\":\"functions/parseNFTokenID.html#parseNFTokenID.__type.NFTokenID\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"parseNFTokenID.parseNFTokenID.__type\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"functions/parseNFTokenID.html#parseNFTokenID.__type.Flags\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"parseNFTokenID.parseNFTokenID.__type\"},{\"kind\":1024,\"name\":\"TransferFee\",\"url\":\"functions/parseNFTokenID.html#parseNFTokenID.__type.TransferFee\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"parseNFTokenID.parseNFTokenID.__type\"},{\"kind\":1024,\"name\":\"Issuer\",\"url\":\"functions/parseNFTokenID.html#parseNFTokenID.__type.Issuer\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"parseNFTokenID.parseNFTokenID.__type\"},{\"kind\":1024,\"name\":\"Taxon\",\"url\":\"functions/parseNFTokenID.html#parseNFTokenID.__type.Taxon\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"parseNFTokenID.parseNFTokenID.__type\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"functions/parseNFTokenID.html#parseNFTokenID.__type.Sequence\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"parseNFTokenID.parseNFTokenID.__type\"},{\"kind\":128,\"name\":\"XrplError\",\"url\":\"classes/XrplError.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/XrplError.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"XrplError\"},{\"kind\":1024,\"name\":\"name\",\"url\":\"classes/XrplError.html#name\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"XrplError\"},{\"kind\":1024,\"name\":\"message\",\"url\":\"classes/XrplError.html#message\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"XrplError\"},{\"kind\":1024,\"name\":\"data\",\"url\":\"classes/XrplError.html#data\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"XrplError\"},{\"kind\":2048,\"name\":\"toString\",\"url\":\"classes/XrplError.html#toString\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"XrplError\"},{\"kind\":2048,\"name\":\"inspect\",\"url\":\"classes/XrplError.html#inspect\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"XrplError\"},{\"kind\":128,\"name\":\"UnexpectedError\",\"url\":\"classes/UnexpectedError.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/UnexpectedError.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"UnexpectedError\"},{\"kind\":1024,\"name\":\"name\",\"url\":\"classes/UnexpectedError.html#name\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"UnexpectedError\"},{\"kind\":1024,\"name\":\"message\",\"url\":\"classes/UnexpectedError.html#message\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"UnexpectedError\"},{\"kind\":1024,\"name\":\"data\",\"url\":\"classes/UnexpectedError.html#data\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"UnexpectedError\"},{\"kind\":2048,\"name\":\"toString\",\"url\":\"classes/UnexpectedError.html#toString\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"UnexpectedError\"},{\"kind\":2048,\"name\":\"inspect\",\"url\":\"classes/UnexpectedError.html#inspect\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"UnexpectedError\"},{\"kind\":128,\"name\":\"ConnectionError\",\"url\":\"classes/ConnectionError.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/ConnectionError.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ConnectionError\"},{\"kind\":1024,\"name\":\"name\",\"url\":\"classes/ConnectionError.html#name\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ConnectionError\"},{\"kind\":1024,\"name\":\"message\",\"url\":\"classes/ConnectionError.html#message\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ConnectionError\"},{\"kind\":1024,\"name\":\"data\",\"url\":\"classes/ConnectionError.html#data\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ConnectionError\"},{\"kind\":2048,\"name\":\"toString\",\"url\":\"classes/ConnectionError.html#toString\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ConnectionError\"},{\"kind\":2048,\"name\":\"inspect\",\"url\":\"classes/ConnectionError.html#inspect\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ConnectionError\"},{\"kind\":128,\"name\":\"RippledError\",\"url\":\"classes/RippledError.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/RippledError.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"RippledError\"},{\"kind\":1024,\"name\":\"name\",\"url\":\"classes/RippledError.html#name\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"RippledError\"},{\"kind\":1024,\"name\":\"message\",\"url\":\"classes/RippledError.html#message\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"RippledError\"},{\"kind\":1024,\"name\":\"data\",\"url\":\"classes/RippledError.html#data\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"RippledError\"},{\"kind\":2048,\"name\":\"toString\",\"url\":\"classes/RippledError.html#toString\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"RippledError\"},{\"kind\":2048,\"name\":\"inspect\",\"url\":\"classes/RippledError.html#inspect\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"RippledError\"},{\"kind\":128,\"name\":\"NotConnectedError\",\"url\":\"classes/NotConnectedError.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/NotConnectedError.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"NotConnectedError\"},{\"kind\":1024,\"name\":\"name\",\"url\":\"classes/NotConnectedError.html#name\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"NotConnectedError\"},{\"kind\":1024,\"name\":\"message\",\"url\":\"classes/NotConnectedError.html#message\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"NotConnectedError\"},{\"kind\":1024,\"name\":\"data\",\"url\":\"classes/NotConnectedError.html#data\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"NotConnectedError\"},{\"kind\":2048,\"name\":\"toString\",\"url\":\"classes/NotConnectedError.html#toString\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"NotConnectedError\"},{\"kind\":2048,\"name\":\"inspect\",\"url\":\"classes/NotConnectedError.html#inspect\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"NotConnectedError\"},{\"kind\":128,\"name\":\"DisconnectedError\",\"url\":\"classes/DisconnectedError.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/DisconnectedError.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"DisconnectedError\"},{\"kind\":1024,\"name\":\"name\",\"url\":\"classes/DisconnectedError.html#name\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"DisconnectedError\"},{\"kind\":1024,\"name\":\"message\",\"url\":\"classes/DisconnectedError.html#message\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"DisconnectedError\"},{\"kind\":1024,\"name\":\"data\",\"url\":\"classes/DisconnectedError.html#data\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"DisconnectedError\"},{\"kind\":2048,\"name\":\"toString\",\"url\":\"classes/DisconnectedError.html#toString\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"DisconnectedError\"},{\"kind\":2048,\"name\":\"inspect\",\"url\":\"classes/DisconnectedError.html#inspect\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"DisconnectedError\"},{\"kind\":128,\"name\":\"RippledNotInitializedError\",\"url\":\"classes/RippledNotInitializedError.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/RippledNotInitializedError.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"RippledNotInitializedError\"},{\"kind\":1024,\"name\":\"name\",\"url\":\"classes/RippledNotInitializedError.html#name\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"RippledNotInitializedError\"},{\"kind\":1024,\"name\":\"message\",\"url\":\"classes/RippledNotInitializedError.html#message\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"RippledNotInitializedError\"},{\"kind\":1024,\"name\":\"data\",\"url\":\"classes/RippledNotInitializedError.html#data\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"RippledNotInitializedError\"},{\"kind\":2048,\"name\":\"toString\",\"url\":\"classes/RippledNotInitializedError.html#toString\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"RippledNotInitializedError\"},{\"kind\":2048,\"name\":\"inspect\",\"url\":\"classes/RippledNotInitializedError.html#inspect\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"RippledNotInitializedError\"},{\"kind\":128,\"name\":\"TimeoutError\",\"url\":\"classes/TimeoutError.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/TimeoutError.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"TimeoutError\"},{\"kind\":1024,\"name\":\"name\",\"url\":\"classes/TimeoutError.html#name\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"TimeoutError\"},{\"kind\":1024,\"name\":\"message\",\"url\":\"classes/TimeoutError.html#message\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"TimeoutError\"},{\"kind\":1024,\"name\":\"data\",\"url\":\"classes/TimeoutError.html#data\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"TimeoutError\"},{\"kind\":2048,\"name\":\"toString\",\"url\":\"classes/TimeoutError.html#toString\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"TimeoutError\"},{\"kind\":2048,\"name\":\"inspect\",\"url\":\"classes/TimeoutError.html#inspect\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"TimeoutError\"},{\"kind\":128,\"name\":\"ResponseFormatError\",\"url\":\"classes/ResponseFormatError.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/ResponseFormatError.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ResponseFormatError\"},{\"kind\":1024,\"name\":\"name\",\"url\":\"classes/ResponseFormatError.html#name\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ResponseFormatError\"},{\"kind\":1024,\"name\":\"message\",\"url\":\"classes/ResponseFormatError.html#message\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ResponseFormatError\"},{\"kind\":1024,\"name\":\"data\",\"url\":\"classes/ResponseFormatError.html#data\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ResponseFormatError\"},{\"kind\":2048,\"name\":\"toString\",\"url\":\"classes/ResponseFormatError.html#toString\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ResponseFormatError\"},{\"kind\":2048,\"name\":\"inspect\",\"url\":\"classes/ResponseFormatError.html#inspect\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ResponseFormatError\"},{\"kind\":128,\"name\":\"ValidationError\",\"url\":\"classes/ValidationError.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/ValidationError.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ValidationError\"},{\"kind\":1024,\"name\":\"name\",\"url\":\"classes/ValidationError.html#name\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ValidationError\"},{\"kind\":1024,\"name\":\"message\",\"url\":\"classes/ValidationError.html#message\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ValidationError\"},{\"kind\":1024,\"name\":\"data\",\"url\":\"classes/ValidationError.html#data\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ValidationError\"},{\"kind\":2048,\"name\":\"toString\",\"url\":\"classes/ValidationError.html#toString\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ValidationError\"},{\"kind\":2048,\"name\":\"inspect\",\"url\":\"classes/ValidationError.html#inspect\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ValidationError\"},{\"kind\":128,\"name\":\"NotFoundError\",\"url\":\"classes/NotFoundError.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/NotFoundError.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"NotFoundError\"},{\"kind\":1024,\"name\":\"name\",\"url\":\"classes/NotFoundError.html#name\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"NotFoundError\"},{\"kind\":1024,\"name\":\"message\",\"url\":\"classes/NotFoundError.html#message\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"NotFoundError\"},{\"kind\":1024,\"name\":\"data\",\"url\":\"classes/NotFoundError.html#data\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"NotFoundError\"},{\"kind\":2048,\"name\":\"toString\",\"url\":\"classes/NotFoundError.html#toString\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"NotFoundError\"},{\"kind\":2048,\"name\":\"inspect\",\"url\":\"classes/NotFoundError.html#inspect\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"NotFoundError\"},{\"kind\":128,\"name\":\"XRPLFaucetError\",\"url\":\"classes/XRPLFaucetError.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/XRPLFaucetError.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"XRPLFaucetError\"},{\"kind\":1024,\"name\":\"name\",\"url\":\"classes/XRPLFaucetError.html#name\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"XRPLFaucetError\"},{\"kind\":1024,\"name\":\"message\",\"url\":\"classes/XRPLFaucetError.html#message\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"XRPLFaucetError\"},{\"kind\":1024,\"name\":\"data\",\"url\":\"classes/XRPLFaucetError.html#data\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"XRPLFaucetError\"},{\"kind\":2048,\"name\":\"toString\",\"url\":\"classes/XRPLFaucetError.html#toString\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"XRPLFaucetError\"},{\"kind\":2048,\"name\":\"inspect\",\"url\":\"classes/XRPLFaucetError.html#inspect\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"XRPLFaucetError\"},{\"kind\":64,\"name\":\"authorizeChannel\",\"url\":\"functions/authorizeChannel.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"verifySignature\",\"url\":\"functions/verifySignature.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"multisign\",\"url\":\"functions/multisign.html\",\"classes\":\"tsd-kind-function\"}],\"index\":{\"version\":\"2.3.9\",\"fields\":[\"name\",\"comment\"],\"fieldVectors\":[[\"name/0\",[0,72.167]],[\"comment/0\",[]],[\"name/1\",[1,48.813]],[\"comment/1\",[]],[\"name/2\",[2,72.167]],[\"comment/2\",[]],[\"name/3\",[3,72.167]],[\"comment/3\",[]],[\"name/4\",[4,67.059]],[\"comment/4\",[]],[\"name/5\",[5,63.694]],[\"comment/5\",[]],[\"name/6\",[6,63.694]],[\"comment/6\",[]],[\"name/7\",[7,63.694]],[\"comment/7\",[]],[\"name/8\",[8,61.181]],[\"comment/8\",[]],[\"name/9\",[9,67.059]],[\"comment/9\",[]],[\"name/10\",[10,67.059]],[\"comment/10\",[]],[\"name/11\",[11,67.059]],[\"comment/11\",[]],[\"name/12\",[12,67.059]],[\"comment/12\",[]],[\"name/13\",[13,67.059]],[\"comment/13\",[]],[\"name/14\",[14,67.059]],[\"comment/14\",[]],[\"name/15\",[15,67.059]],[\"comment/15\",[]],[\"name/16\",[16,30.736]],[\"comment/16\",[]],[\"name/17\",[17,67.059]],[\"comment/17\",[]],[\"name/18\",[16,30.736]],[\"comment/18\",[]],[\"name/19\",[18,67.059]],[\"comment/19\",[]],[\"name/20\",[16,30.736]],[\"comment/20\",[]],[\"name/21\",[19,67.059]],[\"comment/21\",[]],[\"name/22\",[16,30.736]],[\"comment/22\",[]],[\"name/23\",[20,67.059]],[\"comment/23\",[]],[\"name/24\",[16,30.736]],[\"comment/24\",[]],[\"name/25\",[21,67.059]],[\"comment/25\",[]],[\"name/26\",[16,30.736]],[\"comment/26\",[]],[\"name/27\",[22,67.059]],[\"comment/27\",[]],[\"name/28\",[16,30.736]],[\"comment/28\",[]],[\"name/29\",[23,67.059]],[\"comment/29\",[]],[\"name/30\",[16,30.736]],[\"comment/30\",[]],[\"name/31\",[24,67.059]],[\"comment/31\",[]],[\"name/32\",[16,30.736]],[\"comment/32\",[]],[\"name/33\",[25,72.167]],[\"comment/33\",[]],[\"name/34\",[1,48.813]],[\"comment/34\",[]],[\"name/35\",[4,67.059]],[\"comment/35\",[]],[\"name/36\",[5,63.694]],[\"comment/36\",[]],[\"name/37\",[6,63.694]],[\"comment/37\",[]],[\"name/38\",[7,63.694]],[\"comment/38\",[]],[\"name/39\",[8,61.181]],[\"comment/39\",[]],[\"name/40\",[9,67.059]],[\"comment/40\",[]],[\"name/41\",[10,67.059]],[\"comment/41\",[]],[\"name/42\",[11,67.059]],[\"comment/42\",[]],[\"name/43\",[12,67.059]],[\"comment/43\",[]],[\"name/44\",[13,67.059]],[\"comment/44\",[]],[\"name/45\",[14,67.059]],[\"comment/45\",[]],[\"name/46\",[15,67.059]],[\"comment/46\",[]],[\"name/47\",[16,30.736]],[\"comment/47\",[]],[\"name/48\",[17,67.059]],[\"comment/48\",[]],[\"name/49\",[16,30.736]],[\"comment/49\",[]],[\"name/50\",[18,67.059]],[\"comment/50\",[]],[\"name/51\",[16,30.736]],[\"comment/51\",[]],[\"name/52\",[19,67.059]],[\"comment/52\",[]],[\"name/53\",[16,30.736]],[\"comment/53\",[]],[\"name/54\",[20,67.059]],[\"comment/54\",[]],[\"name/55\",[16,30.736]],[\"comment/55\",[]],[\"name/56\",[21,67.059]],[\"comment/56\",[]],[\"name/57\",[16,30.736]],[\"comment/57\",[]],[\"name/58\",[22,67.059]],[\"comment/58\",[]],[\"name/59\",[16,30.736]],[\"comment/59\",[]],[\"name/60\",[23,67.059]],[\"comment/60\",[]],[\"name/61\",[16,30.736]],[\"comment/61\",[]],[\"name/62\",[24,67.059]],[\"comment/62\",[]],[\"name/63\",[16,30.736]],[\"comment/63\",[]],[\"name/64\",[26,72.167]],[\"comment/64\",[]],[\"name/65\",[5,63.694]],[\"comment/65\",[]],[\"name/66\",[6,63.694]],[\"comment/66\",[]],[\"name/67\",[27,72.167]],[\"comment/67\",[]],[\"name/68\",[28,72.167]],[\"comment/68\",[]],[\"name/69\",[29,72.167]],[\"comment/69\",[]],[\"name/70\",[30,72.167]],[\"comment/70\",[]],[\"name/71\",[31,72.167]],[\"comment/71\",[]],[\"name/72\",[32,72.167]],[\"comment/72\",[]],[\"name/73\",[33,72.167]],[\"comment/73\",[]],[\"name/74\",[34,72.167]],[\"comment/74\",[]],[\"name/75\",[35,72.167]],[\"comment/75\",[]],[\"name/76\",[36,72.167]],[\"comment/76\",[]],[\"name/77\",[37,72.167]],[\"comment/77\",[]],[\"name/78\",[16,30.736]],[\"comment/78\",[]],[\"name/79\",[38,72.167]],[\"comment/79\",[]],[\"name/80\",[39,72.167]],[\"comment/80\",[]],[\"name/81\",[40,72.167]],[\"comment/81\",[]],[\"name/82\",[41,72.167]],[\"comment/82\",[]],[\"name/83\",[16,30.736]],[\"comment/83\",[]],[\"name/84\",[42,72.167]],[\"comment/84\",[]],[\"name/85\",[43,72.167]],[\"comment/85\",[]],[\"name/86\",[44,72.167]],[\"comment/86\",[]],[\"name/87\",[45,72.167]],[\"comment/87\",[]],[\"name/88\",[1,48.813]],[\"comment/88\",[]],[\"name/89\",[46,61.181]],[\"comment/89\",[]],[\"name/90\",[47,72.167]],[\"comment/90\",[]],[\"name/91\",[48,72.167]],[\"comment/91\",[]],[\"name/92\",[49,72.167]],[\"comment/92\",[]],[\"name/93\",[50,72.167]],[\"comment/93\",[]],[\"name/94\",[51,72.167]],[\"comment/94\",[]],[\"name/95\",[16,30.736]],[\"comment/95\",[]],[\"name/96\",[52,61.181]],[\"comment/96\",[]],[\"name/97\",[53,59.174]],[\"comment/97\",[]],[\"name/98\",[54,72.167]],[\"comment/98\",[]],[\"name/99\",[55,72.167]],[\"comment/99\",[]],[\"name/100\",[56,72.167]],[\"comment/100\",[]],[\"name/101\",[57,72.167]],[\"comment/101\",[]],[\"name/102\",[58,72.167]],[\"comment/102\",[]],[\"name/103\",[59,67.059]],[\"comment/103\",[]],[\"name/104\",[60,72.167]],[\"comment/104\",[]],[\"name/105\",[61,48.813]],[\"comment/105\",[]],[\"name/106\",[62,37.202]],[\"comment/106\",[]],[\"name/107\",[63,61.181]],[\"comment/107\",[]],[\"name/108\",[64,38.965]],[\"comment/108\",[]],[\"name/109\",[65,72.167]],[\"comment/109\",[]],[\"name/110\",[66,52.708]],[\"comment/110\",[]],[\"name/111\",[67,52.708]],[\"comment/111\",[]],[\"name/112\",[68,41.722]],[\"comment/112\",[]],[\"name/113\",[69,43.835]],[\"comment/113\",[]],[\"name/114\",[70,63.694]],[\"comment/114\",[]],[\"name/115\",[71,67.059]],[\"comment/115\",[]],[\"name/116\",[72,67.059]],[\"comment/116\",[]],[\"name/117\",[73,67.059]],[\"comment/117\",[]],[\"name/118\",[74,67.059]],[\"comment/118\",[]],[\"name/119\",[75,67.059]],[\"comment/119\",[]],[\"name/120\",[76,67.059]],[\"comment/120\",[]],[\"name/121\",[77,47.6]],[\"comment/121\",[]],[\"name/122\",[78,72.167]],[\"comment/122\",[]],[\"name/123\",[79,67.059]],[\"comment/123\",[]],[\"name/124\",[80,67.059]],[\"comment/124\",[]],[\"name/125\",[81,67.059]],[\"comment/125\",[]],[\"name/126\",[82,67.059]],[\"comment/126\",[]],[\"name/127\",[83,67.059]],[\"comment/127\",[]],[\"name/128\",[84,67.059]],[\"comment/128\",[]],[\"name/129\",[85,67.059]],[\"comment/129\",[]],[\"name/130\",[86,67.059]],[\"comment/130\",[]],[\"name/131\",[87,67.059]],[\"comment/131\",[]],[\"name/132\",[88,67.059]],[\"comment/132\",[]],[\"name/133\",[89,67.059]],[\"comment/133\",[]],[\"name/134\",[90,67.059]],[\"comment/134\",[]],[\"name/135\",[91,67.059]],[\"comment/135\",[]],[\"name/136\",[92,72.167]],[\"comment/136\",[]],[\"name/137\",[79,67.059]],[\"comment/137\",[]],[\"name/138\",[80,67.059]],[\"comment/138\",[]],[\"name/139\",[81,67.059]],[\"comment/139\",[]],[\"name/140\",[82,67.059]],[\"comment/140\",[]],[\"name/141\",[83,67.059]],[\"comment/141\",[]],[\"name/142\",[84,67.059]],[\"comment/142\",[]],[\"name/143\",[85,67.059]],[\"comment/143\",[]],[\"name/144\",[86,67.059]],[\"comment/144\",[]],[\"name/145\",[87,67.059]],[\"comment/145\",[]],[\"name/146\",[88,67.059]],[\"comment/146\",[]],[\"name/147\",[89,67.059]],[\"comment/147\",[]],[\"name/148\",[90,67.059]],[\"comment/148\",[]],[\"name/149\",[91,67.059]],[\"comment/149\",[]],[\"name/150\",[93,63.694]],[\"comment/150\",[]],[\"name/151\",[61,48.813]],[\"comment/151\",[]],[\"name/152\",[93,63.694]],[\"comment/152\",[]],[\"name/153\",[94,72.167]],[\"comment/153\",[]],[\"name/154\",[64,38.965]],[\"comment/154\",[]],[\"name/155\",[77,47.6]],[\"comment/155\",[]],[\"name/156\",[95,67.059]],[\"comment/156\",[]],[\"name/157\",[61,48.813]],[\"comment/157\",[]],[\"name/158\",[62,37.202]],[\"comment/158\",[]],[\"name/159\",[96,53.709]],[\"comment/159\",[]],[\"name/160\",[64,38.965]],[\"comment/160\",[]],[\"name/161\",[97,54.821]],[\"comment/161\",[]],[\"name/162\",[66,52.708]],[\"comment/162\",[]],[\"name/163\",[67,52.708]],[\"comment/163\",[]],[\"name/164\",[98,63.694]],[\"comment/164\",[]],[\"name/165\",[68,41.722]],[\"comment/165\",[]],[\"name/166\",[99,63.694]],[\"comment/166\",[]],[\"name/167\",[100,54.821]],[\"comment/167\",[]],[\"name/168\",[101,52.708]],[\"comment/168\",[]],[\"name/169\",[102,63.694]],[\"comment/169\",[]],[\"name/170\",[103,43.08]],[\"comment/170\",[]],[\"name/171\",[77,47.6]],[\"comment/171\",[]],[\"name/172\",[104,67.059]],[\"comment/172\",[]],[\"name/173\",[61,48.813]],[\"comment/173\",[]],[\"name/174\",[62,37.202]],[\"comment/174\",[]],[\"name/175\",[105,67.059]],[\"comment/175\",[]],[\"name/176\",[64,38.965]],[\"comment/176\",[]],[\"name/177\",[97,54.821]],[\"comment/177\",[]],[\"name/178\",[66,52.708]],[\"comment/178\",[]],[\"name/179\",[67,52.708]],[\"comment/179\",[]],[\"name/180\",[77,47.6]],[\"comment/180\",[]],[\"name/181\",[106,72.167]],[\"comment/181\",[]],[\"name/182\",[61,48.813]],[\"comment/182\",[]],[\"name/183\",[64,38.965]],[\"comment/183\",[]],[\"name/184\",[107,72.167]],[\"comment/184\",[]],[\"name/185\",[108,72.167]],[\"comment/185\",[]],[\"name/186\",[109,72.167]],[\"comment/186\",[]],[\"name/187\",[110,72.167]],[\"comment/187\",[]],[\"name/188\",[111,59.174]],[\"comment/188\",[]],[\"name/189\",[112,72.167]],[\"comment/189\",[]],[\"name/190\",[113,72.167]],[\"comment/190\",[]],[\"name/191\",[114,72.167]],[\"comment/191\",[]],[\"name/192\",[115,72.167]],[\"comment/192\",[]],[\"name/193\",[77,47.6]],[\"comment/193\",[]],[\"name/194\",[116,67.059]],[\"comment/194\",[]],[\"name/195\",[61,48.813]],[\"comment/195\",[]],[\"name/196\",[62,37.202]],[\"comment/196\",[]],[\"name/197\",[96,53.709]],[\"comment/197\",[]],[\"name/198\",[117,52.708]],[\"comment/198\",[]],[\"name/199\",[118,63.694]],[\"comment/199\",[]],[\"name/200\",[119,61.181]],[\"comment/200\",[]],[\"name/201\",[120,67.059]],[\"comment/201\",[]],[\"name/202\",[64,38.965]],[\"comment/202\",[]],[\"name/203\",[103,43.08]],[\"comment/203\",[]],[\"name/204\",[100,54.821]],[\"comment/204\",[]],[\"name/205\",[97,54.821]],[\"comment/205\",[]],[\"name/206\",[99,63.694]],[\"comment/206\",[]],[\"name/207\",[66,52.708]],[\"comment/207\",[]],[\"name/208\",[67,52.708]],[\"comment/208\",[]],[\"name/209\",[77,47.6]],[\"comment/209\",[]],[\"name/210\",[121,72.167]],[\"comment/210\",[]],[\"name/211\",[61,48.813]],[\"comment/211\",[]],[\"name/212\",[122,72.167]],[\"comment/212\",[]],[\"name/213\",[123,72.167]],[\"comment/213\",[]],[\"name/214\",[124,72.167]],[\"comment/214\",[]],[\"name/215\",[125,72.167]],[\"comment/215\",[]],[\"name/216\",[64,38.965]],[\"comment/216\",[]],[\"name/217\",[77,47.6]],[\"comment/217\",[]],[\"name/218\",[126,67.059]],[\"comment/218\",[]],[\"name/219\",[127,72.167]],[\"comment/219\",[]],[\"name/220\",[128,72.167]],[\"comment/220\",[]],[\"name/221\",[129,72.167]],[\"comment/221\",[]],[\"name/222\",[130,67.059]],[\"comment/222\",[]],[\"name/223\",[131,72.167]],[\"comment/223\",[]],[\"name/224\",[132,72.167]],[\"comment/224\",[]],[\"name/225\",[133,67.059]],[\"comment/225\",[]],[\"name/226\",[134,40.812]],[\"comment/226\",[]],[\"name/227\",[135,40.526]],[\"comment/227\",[]],[\"name/228\",[136,72.167]],[\"comment/228\",[]],[\"name/229\",[137,72.167]],[\"comment/229\",[]],[\"name/230\",[138,72.167]],[\"comment/230\",[]],[\"name/231\",[139,72.167]],[\"comment/231\",[]],[\"name/232\",[140,59.174]],[\"comment/232\",[]],[\"name/233\",[59,67.059]],[\"comment/233\",[]],[\"name/234\",[141,72.167]],[\"comment/234\",[]],[\"name/235\",[61,48.813]],[\"comment/235\",[]],[\"name/236\",[142,43.835]],[\"comment/236\",[]],[\"name/237\",[143,67.059]],[\"comment/237\",[]],[\"name/238\",[64,38.965]],[\"comment/238\",[]],[\"name/239\",[77,47.6]],[\"comment/239\",[]],[\"name/240\",[144,72.167]],[\"comment/240\",[]],[\"name/241\",[61,48.813]],[\"comment/241\",[]],[\"name/242\",[145,72.167]],[\"comment/242\",[]],[\"name/243\",[146,72.167]],[\"comment/243\",[]],[\"name/244\",[147,72.167]],[\"comment/244\",[]],[\"name/245\",[77,47.6]],[\"comment/245\",[]],[\"name/246\",[148,67.059]],[\"comment/246\",[]],[\"name/247\",[61,48.813]],[\"comment/247\",[]],[\"name/248\",[64,38.965]],[\"comment/248\",[]],[\"name/249\",[62,37.202]],[\"comment/249\",[]],[\"name/250\",[68,41.722]],[\"comment/250\",[]],[\"name/251\",[149,63.694]],[\"comment/251\",[]],[\"name/252\",[150,63.694]],[\"comment/252\",[]],[\"name/253\",[151,67.059]],[\"comment/253\",[]],[\"name/254\",[152,67.059]],[\"comment/254\",[]],[\"name/255\",[97,54.821]],[\"comment/255\",[]],[\"name/256\",[66,52.708]],[\"comment/256\",[]],[\"name/257\",[67,52.708]],[\"comment/257\",[]],[\"name/258\",[101,52.708]],[\"comment/258\",[]],[\"name/259\",[77,47.6]],[\"comment/259\",[]],[\"name/260\",[153,72.167]],[\"comment/260\",[]],[\"name/261\",[154,72.167]],[\"comment/261\",[]],[\"name/262\",[155,72.167]],[\"comment/262\",[]],[\"name/263\",[156,72.167]],[\"comment/263\",[]],[\"name/264\",[61,48.813]],[\"comment/264\",[]],[\"name/265\",[62,37.202]],[\"comment/265\",[]],[\"name/266\",[96,53.709]],[\"comment/266\",[]],[\"name/267\",[117,52.708]],[\"comment/267\",[]],[\"name/268\",[63,61.181]],[\"comment/268\",[]],[\"name/269\",[46,61.181]],[\"comment/269\",[]],[\"name/270\",[157,67.059]],[\"comment/270\",[]],[\"name/271\",[97,54.821]],[\"comment/271\",[]],[\"name/272\",[66,52.708]],[\"comment/272\",[]],[\"name/273\",[67,52.708]],[\"comment/273\",[]],[\"name/274\",[64,38.965]],[\"comment/274\",[]],[\"name/275\",[101,52.708]],[\"comment/275\",[]],[\"name/276\",[119,61.181]],[\"comment/276\",[]],[\"name/277\",[103,43.08]],[\"comment/277\",[]],[\"name/278\",[100,54.821]],[\"comment/278\",[]],[\"name/279\",[99,63.694]],[\"comment/279\",[]],[\"name/280\",[77,47.6]],[\"comment/280\",[]],[\"name/281\",[158,72.167]],[\"comment/281\",[]],[\"name/282\",[61,48.813]],[\"comment/282\",[]],[\"name/283\",[64,38.965]],[\"comment/283\",[]],[\"name/284\",[63,61.181]],[\"comment/284\",[]],[\"name/285\",[159,72.167]],[\"comment/285\",[]],[\"name/286\",[160,72.167]],[\"comment/286\",[]],[\"name/287\",[66,52.708]],[\"comment/287\",[]],[\"name/288\",[67,52.708]],[\"comment/288\",[]],[\"name/289\",[161,72.167]],[\"comment/289\",[]],[\"name/290\",[162,72.167]],[\"comment/290\",[]],[\"name/291\",[163,72.167]],[\"comment/291\",[]],[\"name/292\",[164,72.167]],[\"comment/292\",[]],[\"name/293\",[165,72.167]],[\"comment/293\",[]],[\"name/294\",[166,72.167]],[\"comment/294\",[]],[\"name/295\",[77,47.6]],[\"comment/295\",[]],[\"name/296\",[167,72.167]],[\"comment/296\",[]],[\"name/297\",[168,72.167]],[\"comment/297\",[]],[\"name/298\",[169,72.167]],[\"comment/298\",[]],[\"name/299\",[170,72.167]],[\"comment/299\",[]],[\"name/300\",[171,72.167]],[\"comment/300\",[]],[\"name/301\",[172,72.167]],[\"comment/301\",[]],[\"name/302\",[173,72.167]],[\"comment/302\",[]],[\"name/303\",[174,72.167]],[\"comment/303\",[]],[\"name/304\",[175,72.167]],[\"comment/304\",[]],[\"name/305\",[176,72.167]],[\"comment/305\",[]],[\"name/306\",[61,48.813]],[\"comment/306\",[]],[\"name/307\",[64,38.965]],[\"comment/307\",[]],[\"name/308\",[66,52.708]],[\"comment/308\",[]],[\"name/309\",[67,52.708]],[\"comment/309\",[]],[\"name/310\",[97,54.821]],[\"comment/310\",[]],[\"name/311\",[177,67.059]],[\"comment/311\",[]],[\"name/312\",[178,72.167]],[\"comment/312\",[]],[\"name/313\",[179,67.059]],[\"comment/313\",[]],[\"name/314\",[77,47.6]],[\"comment/314\",[]],[\"name/315\",[180,72.167]],[\"comment/315\",[]],[\"name/316\",[181,72.167]],[\"comment/316\",[]],[\"name/317\",[182,67.059]],[\"comment/317\",[]],[\"name/318\",[61,48.813]],[\"comment/318\",[]],[\"name/319\",[62,37.202]],[\"comment/319\",[]],[\"name/320\",[64,38.965]],[\"comment/320\",[]],[\"name/321\",[97,54.821]],[\"comment/321\",[]],[\"name/322\",[66,52.708]],[\"comment/322\",[]],[\"name/323\",[67,52.708]],[\"comment/323\",[]],[\"name/324\",[183,43.835]],[\"comment/324\",[]],[\"name/325\",[77,47.6]],[\"comment/325\",[]],[\"name/326\",[184,72.167]],[\"comment/326\",[]],[\"name/327\",[185,72.167]],[\"comment/327\",[]],[\"name/328\",[8,61.181]],[\"comment/328\",[]],[\"name/329\",[186,72.167]],[\"comment/329\",[]],[\"name/330\",[187,72.167]],[\"comment/330\",[]],[\"name/331\",[188,39.978]],[\"comment/331\",[]],[\"name/332\",[62,37.202]],[\"comment/332\",[]],[\"name/333\",[189,54.821]],[\"comment/333\",[]],[\"name/334\",[134,40.812]],[\"comment/334\",[]],[\"name/335\",[135,40.526]],[\"comment/335\",[]],[\"name/336\",[190,50.195]],[\"comment/336\",[]],[\"name/337\",[191,49.48]],[\"comment/337\",[]],[\"name/338\",[192,32.849]],[\"comment/338\",[]],[\"name/339\",[193,33.249]],[\"comment/339\",[]],[\"name/340\",[194,72.167]],[\"comment/340\",[]],[\"name/341\",[195,40.526]],[\"comment/341\",[]],[\"name/342\",[16,30.736]],[\"comment/342\",[]],[\"name/343\",[62,37.202]],[\"comment/343\",[]],[\"name/344\",[196,72.167]],[\"comment/344\",[]],[\"name/345\",[134,40.812]],[\"comment/345\",[]],[\"name/346\",[135,40.526]],[\"comment/346\",[]],[\"name/347\",[197,49.48]],[\"comment/347\",[]],[\"name/348\",[190,50.195]],[\"comment/348\",[]],[\"name/349\",[191,49.48]],[\"comment/349\",[]],[\"name/350\",[192,32.849]],[\"comment/350\",[]],[\"name/351\",[198,38.727]],[\"comment/351\",[]],[\"name/352\",[199,38.267]],[\"comment/352\",[]],[\"name/353\",[200,40.526]],[\"comment/353\",[]],[\"name/354\",[201,40.249]],[\"comment/354\",[]],[\"name/355\",[202,40.526]],[\"comment/355\",[]],[\"name/356\",[193,33.249]],[\"comment/356\",[]],[\"name/357\",[203,72.167]],[\"comment/357\",[]],[\"name/358\",[188,39.978]],[\"comment/358\",[]],[\"name/359\",[62,37.202]],[\"comment/359\",[]],[\"name/360\",[134,40.812]],[\"comment/360\",[]],[\"name/361\",[135,40.526]],[\"comment/361\",[]],[\"name/362\",[204,61.181]],[\"comment/362\",[]],[\"name/363\",[192,32.849]],[\"comment/363\",[]],[\"name/364\",[193,33.249]],[\"comment/364\",[]],[\"name/365\",[205,72.167]],[\"comment/365\",[]],[\"name/366\",[195,40.526]],[\"comment/366\",[]],[\"name/367\",[16,30.736]],[\"comment/367\",[]],[\"name/368\",[134,40.812]],[\"comment/368\",[]],[\"name/369\",[135,40.526]],[\"comment/369\",[]],[\"name/370\",[206,72.167]],[\"comment/370\",[]],[\"name/371\",[207,72.167]],[\"comment/371\",[]],[\"name/372\",[197,49.48]],[\"comment/372\",[]],[\"name/373\",[192,32.849]],[\"comment/373\",[]],[\"name/374\",[198,38.727]],[\"comment/374\",[]],[\"name/375\",[199,38.267]],[\"comment/375\",[]],[\"name/376\",[200,40.526]],[\"comment/376\",[]],[\"name/377\",[201,40.249]],[\"comment/377\",[]],[\"name/378\",[202,40.526]],[\"comment/378\",[]],[\"name/379\",[193,33.249]],[\"comment/379\",[]],[\"name/380\",[208,72.167]],[\"comment/380\",[]],[\"name/381\",[188,39.978]],[\"comment/381\",[]],[\"name/382\",[62,37.202]],[\"comment/382\",[]],[\"name/383\",[134,40.812]],[\"comment/383\",[]],[\"name/384\",[135,40.526]],[\"comment/384\",[]],[\"name/385\",[209,67.059]],[\"comment/385\",[]],[\"name/386\",[210,67.059]],[\"comment/386\",[]],[\"name/387\",[204,61.181]],[\"comment/387\",[]],[\"name/388\",[192,32.849]],[\"comment/388\",[]],[\"name/389\",[193,33.249]],[\"comment/389\",[]],[\"name/390\",[211,72.167]],[\"comment/390\",[]],[\"name/391\",[195,40.526]],[\"comment/391\",[]],[\"name/392\",[16,30.736]],[\"comment/392\",[]],[\"name/393\",[212,72.167]],[\"comment/393\",[]],[\"name/394\",[210,67.059]],[\"comment/394\",[]],[\"name/395\",[213,48.813]],[\"comment/395\",[]],[\"name/396\",[135,40.526]],[\"comment/396\",[]],[\"name/397\",[214,67.059]],[\"comment/397\",[]],[\"name/398\",[197,49.48]],[\"comment/398\",[]],[\"name/399\",[192,32.849]],[\"comment/399\",[]],[\"name/400\",[198,38.727]],[\"comment/400\",[]],[\"name/401\",[199,38.267]],[\"comment/401\",[]],[\"name/402\",[200,40.526]],[\"comment/402\",[]],[\"name/403\",[201,40.249]],[\"comment/403\",[]],[\"name/404\",[202,40.526]],[\"comment/404\",[]],[\"name/405\",[193,33.249]],[\"comment/405\",[]],[\"name/406\",[215,72.167]],[\"comment/406\",[]],[\"name/407\",[188,39.978]],[\"comment/407\",[]],[\"name/408\",[62,37.202]],[\"comment/408\",[]],[\"name/409\",[134,40.812]],[\"comment/409\",[]],[\"name/410\",[135,40.526]],[\"comment/410\",[]],[\"name/411\",[216,72.167]],[\"comment/411\",[]],[\"name/412\",[190,50.195]],[\"comment/412\",[]],[\"name/413\",[191,49.48]],[\"comment/413\",[]],[\"name/414\",[192,32.849]],[\"comment/414\",[]],[\"name/415\",[193,33.249]],[\"comment/415\",[]],[\"name/416\",[217,72.167]],[\"comment/416\",[]],[\"name/417\",[195,40.526]],[\"comment/417\",[]],[\"name/418\",[16,30.736]],[\"comment/418\",[]],[\"name/419\",[62,37.202]],[\"comment/419\",[]],[\"name/420\",[218,72.167]],[\"comment/420\",[]],[\"name/421\",[213,48.813]],[\"comment/421\",[]],[\"name/422\",[135,40.526]],[\"comment/422\",[]],[\"name/423\",[134,40.812]],[\"comment/423\",[]],[\"name/424\",[191,49.48]],[\"comment/424\",[]],[\"name/425\",[192,32.849]],[\"comment/425\",[]],[\"name/426\",[198,38.727]],[\"comment/426\",[]],[\"name/427\",[199,38.267]],[\"comment/427\",[]],[\"name/428\",[200,40.526]],[\"comment/428\",[]],[\"name/429\",[201,40.249]],[\"comment/429\",[]],[\"name/430\",[202,40.526]],[\"comment/430\",[]],[\"name/431\",[193,33.249]],[\"comment/431\",[]],[\"name/432\",[219,72.167]],[\"comment/432\",[]],[\"name/433\",[188,39.978]],[\"comment/433\",[]],[\"name/434\",[62,37.202]],[\"comment/434\",[]],[\"name/435\",[190,50.195]],[\"comment/435\",[]],[\"name/436\",[191,49.48]],[\"comment/436\",[]],[\"name/437\",[192,32.849]],[\"comment/437\",[]],[\"name/438\",[193,33.249]],[\"comment/438\",[]],[\"name/439\",[220,72.167]],[\"comment/439\",[]],[\"name/440\",[195,40.526]],[\"comment/440\",[]],[\"name/441\",[16,30.736]],[\"comment/441\",[]],[\"name/442\",[62,37.202]],[\"comment/442\",[]],[\"name/443\",[221,72.167]],[\"comment/443\",[]],[\"name/444\",[213,48.813]],[\"comment/444\",[]],[\"name/445\",[197,49.48]],[\"comment/445\",[]],[\"name/446\",[191,49.48]],[\"comment/446\",[]],[\"name/447\",[190,50.195]],[\"comment/447\",[]],[\"name/448\",[192,32.849]],[\"comment/448\",[]],[\"name/449\",[198,38.727]],[\"comment/449\",[]],[\"name/450\",[199,38.267]],[\"comment/450\",[]],[\"name/451\",[200,40.526]],[\"comment/451\",[]],[\"name/452\",[201,40.249]],[\"comment/452\",[]],[\"name/453\",[202,40.526]],[\"comment/453\",[]],[\"name/454\",[193,33.249]],[\"comment/454\",[]],[\"name/455\",[222,72.167]],[\"comment/455\",[]],[\"name/456\",[188,39.978]],[\"comment/456\",[]],[\"name/457\",[62,37.202]],[\"comment/457\",[]],[\"name/458\",[199,38.267]],[\"comment/458\",[]],[\"name/459\",[223,72.167]],[\"comment/459\",[]],[\"name/460\",[134,40.812]],[\"comment/460\",[]],[\"name/461\",[135,40.526]],[\"comment/461\",[]],[\"name/462\",[190,50.195]],[\"comment/462\",[]],[\"name/463\",[191,49.48]],[\"comment/463\",[]],[\"name/464\",[192,32.849]],[\"comment/464\",[]],[\"name/465\",[193,33.249]],[\"comment/465\",[]],[\"name/466\",[224,72.167]],[\"comment/466\",[]],[\"name/467\",[195,40.526]],[\"comment/467\",[]],[\"name/468\",[16,30.736]],[\"comment/468\",[]],[\"name/469\",[62,37.202]],[\"comment/469\",[]],[\"name/470\",[225,72.167]],[\"comment/470\",[]],[\"name/471\",[134,40.812]],[\"comment/471\",[]],[\"name/472\",[135,40.526]],[\"comment/472\",[]],[\"name/473\",[213,48.813]],[\"comment/473\",[]],[\"name/474\",[190,50.195]],[\"comment/474\",[]],[\"name/475\",[191,49.48]],[\"comment/475\",[]],[\"name/476\",[197,49.48]],[\"comment/476\",[]],[\"name/477\",[192,32.849]],[\"comment/477\",[]],[\"name/478\",[198,38.727]],[\"comment/478\",[]],[\"name/479\",[199,38.267]],[\"comment/479\",[]],[\"name/480\",[200,40.526]],[\"comment/480\",[]],[\"name/481\",[201,40.249]],[\"comment/481\",[]],[\"name/482\",[202,40.526]],[\"comment/482\",[]],[\"name/483\",[193,33.249]],[\"comment/483\",[]],[\"name/484\",[226,72.167]],[\"comment/484\",[]],[\"name/485\",[64,38.965]],[\"comment/485\",[]],[\"name/486\",[227,57.504]],[\"comment/486\",[]],[\"name/487\",[228,67.059]],[\"comment/487\",[]],[\"name/488\",[229,67.059]],[\"comment/488\",[]],[\"name/489\",[230,67.059]],[\"comment/489\",[]],[\"name/490\",[101,52.708]],[\"comment/490\",[]],[\"name/491\",[231,72.167]],[\"comment/491\",[]],[\"name/492\",[188,39.978]],[\"comment/492\",[]],[\"name/493\",[62,37.202]],[\"comment/493\",[]],[\"name/494\",[134,40.812]],[\"comment/494\",[]],[\"name/495\",[135,40.526]],[\"comment/495\",[]],[\"name/496\",[190,50.195]],[\"comment/496\",[]],[\"name/497\",[191,49.48]],[\"comment/497\",[]],[\"name/498\",[204,61.181]],[\"comment/498\",[]],[\"name/499\",[192,32.849]],[\"comment/499\",[]],[\"name/500\",[193,33.249]],[\"comment/500\",[]],[\"name/501\",[232,72.167]],[\"comment/501\",[]],[\"name/502\",[195,40.526]],[\"comment/502\",[]],[\"name/503\",[16,30.736]],[\"comment/503\",[]],[\"name/504\",[62,37.202]],[\"comment/504\",[]],[\"name/505\",[233,61.181]],[\"comment/505\",[]],[\"name/506\",[213,48.813]],[\"comment/506\",[]],[\"name/507\",[135,40.526]],[\"comment/507\",[]],[\"name/508\",[134,40.812]],[\"comment/508\",[]],[\"name/509\",[191,49.48]],[\"comment/509\",[]],[\"name/510\",[192,32.849]],[\"comment/510\",[]],[\"name/511\",[198,38.727]],[\"comment/511\",[]],[\"name/512\",[199,38.267]],[\"comment/512\",[]],[\"name/513\",[200,40.526]],[\"comment/513\",[]],[\"name/514\",[201,40.249]],[\"comment/514\",[]],[\"name/515\",[202,40.526]],[\"comment/515\",[]],[\"name/516\",[193,33.249]],[\"comment/516\",[]],[\"name/517\",[234,72.167]],[\"comment/517\",[]],[\"name/518\",[188,39.978]],[\"comment/518\",[]],[\"name/519\",[62,37.202]],[\"comment/519\",[]],[\"name/520\",[235,63.694]],[\"comment/520\",[]],[\"name/521\",[236,63.694]],[\"comment/521\",[]],[\"name/522\",[134,40.812]],[\"comment/522\",[]],[\"name/523\",[135,40.526]],[\"comment/523\",[]],[\"name/524\",[237,59.174]],[\"comment/524\",[]],[\"name/525\",[238,72.167]],[\"comment/525\",[]],[\"name/526\",[190,50.195]],[\"comment/526\",[]],[\"name/527\",[191,49.48]],[\"comment/527\",[]],[\"name/528\",[192,32.849]],[\"comment/528\",[]],[\"name/529\",[193,33.249]],[\"comment/529\",[]],[\"name/530\",[239,72.167]],[\"comment/530\",[]],[\"name/531\",[195,40.526]],[\"comment/531\",[]],[\"name/532\",[16,30.736]],[\"comment/532\",[]],[\"name/533\",[62,37.202]],[\"comment/533\",[]],[\"name/534\",[235,63.694]],[\"comment/534\",[]],[\"name/535\",[236,63.694]],[\"comment/535\",[]],[\"name/536\",[190,50.195]],[\"comment/536\",[]],[\"name/537\",[191,49.48]],[\"comment/537\",[]],[\"name/538\",[140,59.174]],[\"comment/538\",[]],[\"name/539\",[197,49.48]],[\"comment/539\",[]],[\"name/540\",[192,32.849]],[\"comment/540\",[]],[\"name/541\",[198,38.727]],[\"comment/541\",[]],[\"name/542\",[199,38.267]],[\"comment/542\",[]],[\"name/543\",[200,40.526]],[\"comment/543\",[]],[\"name/544\",[201,40.249]],[\"comment/544\",[]],[\"name/545\",[202,40.526]],[\"comment/545\",[]],[\"name/546\",[193,33.249]],[\"comment/546\",[]],[\"name/547\",[240,72.167]],[\"comment/547\",[]],[\"name/548\",[188,39.978]],[\"comment/548\",[]],[\"name/549\",[62,37.202]],[\"comment/549\",[]],[\"name/550\",[204,61.181]],[\"comment/550\",[]],[\"name/551\",[241,72.167]],[\"comment/551\",[]],[\"name/552\",[134,40.812]],[\"comment/552\",[]],[\"name/553\",[135,40.526]],[\"comment/553\",[]],[\"name/554\",[192,32.849]],[\"comment/554\",[]],[\"name/555\",[193,33.249]],[\"comment/555\",[]],[\"name/556\",[242,72.167]],[\"comment/556\",[]],[\"name/557\",[195,40.526]],[\"comment/557\",[]],[\"name/558\",[16,30.736]],[\"comment/558\",[]],[\"name/559\",[62,37.202]],[\"comment/559\",[]],[\"name/560\",[243,72.167]],[\"comment/560\",[]],[\"name/561\",[16,30.736]],[\"comment/561\",[]],[\"name/562\",[244,72.167]],[\"comment/562\",[]],[\"name/563\",[16,30.736]],[\"comment/563\",[]],[\"name/564\",[245,72.167]],[\"comment/564\",[]],[\"name/565\",[16,30.736]],[\"comment/565\",[]],[\"name/566\",[134,40.812]],[\"comment/566\",[]],[\"name/567\",[213,48.813]],[\"comment/567\",[]],[\"name/568\",[135,40.526]],[\"comment/568\",[]],[\"name/569\",[192,32.849]],[\"comment/569\",[]],[\"name/570\",[198,38.727]],[\"comment/570\",[]],[\"name/571\",[199,38.267]],[\"comment/571\",[]],[\"name/572\",[200,40.526]],[\"comment/572\",[]],[\"name/573\",[201,40.249]],[\"comment/573\",[]],[\"name/574\",[202,40.526]],[\"comment/574\",[]],[\"name/575\",[193,33.249]],[\"comment/575\",[]],[\"name/576\",[246,72.167]],[\"comment/576\",[]],[\"name/577\",[188,39.978]],[\"comment/577\",[]],[\"name/578\",[62,37.202]],[\"comment/578\",[]],[\"name/579\",[247,67.059]],[\"comment/579\",[]],[\"name/580\",[140,59.174]],[\"comment/580\",[]],[\"name/581\",[190,50.195]],[\"comment/581\",[]],[\"name/582\",[134,40.812]],[\"comment/582\",[]],[\"name/583\",[135,40.526]],[\"comment/583\",[]],[\"name/584\",[192,32.849]],[\"comment/584\",[]],[\"name/585\",[193,33.249]],[\"comment/585\",[]],[\"name/586\",[248,72.167]],[\"comment/586\",[]],[\"name/587\",[195,40.526]],[\"comment/587\",[]],[\"name/588\",[16,30.736]],[\"comment/588\",[]],[\"name/589\",[213,48.813]],[\"comment/589\",[]],[\"name/590\",[249,72.167]],[\"comment/590\",[]],[\"name/591\",[140,59.174]],[\"comment/591\",[]],[\"name/592\",[192,32.849]],[\"comment/592\",[]],[\"name/593\",[198,38.727]],[\"comment/593\",[]],[\"name/594\",[199,38.267]],[\"comment/594\",[]],[\"name/595\",[200,40.526]],[\"comment/595\",[]],[\"name/596\",[201,40.249]],[\"comment/596\",[]],[\"name/597\",[202,40.526]],[\"comment/597\",[]],[\"name/598\",[193,33.249]],[\"comment/598\",[]],[\"name/599\",[250,72.167]],[\"comment/599\",[]],[\"name/600\",[188,39.978]],[\"comment/600\",[]],[\"name/601\",[134,40.812]],[\"comment/601\",[]],[\"name/602\",[135,40.526]],[\"comment/602\",[]],[\"name/603\",[251,67.059]],[\"comment/603\",[]],[\"name/604\",[252,61.181]],[\"comment/604\",[]],[\"name/605\",[140,59.174]],[\"comment/605\",[]],[\"name/606\",[253,72.167]],[\"comment/606\",[]],[\"name/607\",[254,67.059]],[\"comment/607\",[]],[\"name/608\",[237,59.174]],[\"comment/608\",[]],[\"name/609\",[209,67.059]],[\"comment/609\",[]],[\"name/610\",[192,32.849]],[\"comment/610\",[]],[\"name/611\",[193,33.249]],[\"comment/611\",[]],[\"name/612\",[255,72.167]],[\"comment/612\",[]],[\"name/613\",[195,40.526]],[\"comment/613\",[]],[\"name/614\",[16,30.736]],[\"comment/614\",[]],[\"name/615\",[126,67.059]],[\"comment/615\",[]],[\"name/616\",[134,40.812]],[\"comment/616\",[]],[\"name/617\",[135,40.526]],[\"comment/617\",[]],[\"name/618\",[214,67.059]],[\"comment/618\",[]],[\"name/619\",[197,49.48]],[\"comment/619\",[]],[\"name/620\",[192,32.849]],[\"comment/620\",[]],[\"name/621\",[198,38.727]],[\"comment/621\",[]],[\"name/622\",[199,38.267]],[\"comment/622\",[]],[\"name/623\",[200,40.526]],[\"comment/623\",[]],[\"name/624\",[201,40.249]],[\"comment/624\",[]],[\"name/625\",[202,40.526]],[\"comment/625\",[]],[\"name/626\",[193,33.249]],[\"comment/626\",[]],[\"name/627\",[256,72.167]],[\"comment/627\",[]],[\"name/628\",[188,39.978]],[\"comment/628\",[]],[\"name/629\",[192,32.849]],[\"comment/629\",[]],[\"name/630\",[193,33.249]],[\"comment/630\",[]],[\"name/631\",[257,72.167]],[\"comment/631\",[]],[\"name/632\",[195,40.526]],[\"comment/632\",[]],[\"name/633\",[16,30.736]],[\"comment/633\",[]],[\"name/634\",[134,40.812]],[\"comment/634\",[]],[\"name/635\",[135,40.526]],[\"comment/635\",[]],[\"name/636\",[192,32.849]],[\"comment/636\",[]],[\"name/637\",[198,38.727]],[\"comment/637\",[]],[\"name/638\",[199,38.267]],[\"comment/638\",[]],[\"name/639\",[200,40.526]],[\"comment/639\",[]],[\"name/640\",[201,40.249]],[\"comment/640\",[]],[\"name/641\",[202,40.526]],[\"comment/641\",[]],[\"name/642\",[193,33.249]],[\"comment/642\",[]],[\"name/643\",[258,72.167]],[\"comment/643\",[]],[\"name/644\",[188,39.978]],[\"comment/644\",[]],[\"name/645\",[192,32.849]],[\"comment/645\",[]],[\"name/646\",[193,33.249]],[\"comment/646\",[]],[\"name/647\",[259,72.167]],[\"comment/647\",[]],[\"name/648\",[195,40.526]],[\"comment/648\",[]],[\"name/649\",[16,30.736]],[\"comment/649\",[]],[\"name/650\",[213,48.813]],[\"comment/650\",[]],[\"name/651\",[192,32.849]],[\"comment/651\",[]],[\"name/652\",[198,38.727]],[\"comment/652\",[]],[\"name/653\",[199,38.267]],[\"comment/653\",[]],[\"name/654\",[200,40.526]],[\"comment/654\",[]],[\"name/655\",[201,40.249]],[\"comment/655\",[]],[\"name/656\",[202,40.526]],[\"comment/656\",[]],[\"name/657\",[193,33.249]],[\"comment/657\",[]],[\"name/658\",[260,72.167]],[\"comment/658\",[]],[\"name/659\",[188,39.978]],[\"comment/659\",[]],[\"name/660\",[134,40.812]],[\"comment/660\",[]],[\"name/661\",[135,40.526]],[\"comment/661\",[]],[\"name/662\",[237,59.174]],[\"comment/662\",[]],[\"name/663\",[190,50.195]],[\"comment/663\",[]],[\"name/664\",[191,49.48]],[\"comment/664\",[]],[\"name/665\",[192,32.849]],[\"comment/665\",[]],[\"name/666\",[193,33.249]],[\"comment/666\",[]],[\"name/667\",[261,72.167]],[\"comment/667\",[]],[\"name/668\",[195,40.526]],[\"comment/668\",[]],[\"name/669\",[16,30.736]],[\"comment/669\",[]],[\"name/670\",[135,40.526]],[\"comment/670\",[]],[\"name/671\",[134,40.812]],[\"comment/671\",[]],[\"name/672\",[262,61.181]],[\"comment/672\",[]],[\"name/673\",[191,49.48]],[\"comment/673\",[]],[\"name/674\",[197,49.48]],[\"comment/674\",[]],[\"name/675\",[192,32.849]],[\"comment/675\",[]],[\"name/676\",[198,38.727]],[\"comment/676\",[]],[\"name/677\",[199,38.267]],[\"comment/677\",[]],[\"name/678\",[200,40.526]],[\"comment/678\",[]],[\"name/679\",[201,40.249]],[\"comment/679\",[]],[\"name/680\",[202,40.526]],[\"comment/680\",[]],[\"name/681\",[193,33.249]],[\"comment/681\",[]],[\"name/682\",[263,72.167]],[\"comment/682\",[]],[\"name/683\",[188,39.978]],[\"comment/683\",[]],[\"name/684\",[237,59.174]],[\"comment/684\",[]],[\"name/685\",[134,40.812]],[\"comment/685\",[]],[\"name/686\",[135,40.526]],[\"comment/686\",[]],[\"name/687\",[77,47.6]],[\"comment/687\",[]],[\"name/688\",[264,72.167]],[\"comment/688\",[]],[\"name/689\",[95,67.059]],[\"comment/689\",[]],[\"name/690\",[265,72.167]],[\"comment/690\",[]],[\"name/691\",[266,72.167]],[\"comment/691\",[]],[\"name/692\",[116,67.059]],[\"comment/692\",[]],[\"name/693\",[148,67.059]],[\"comment/693\",[]],[\"name/694\",[267,72.167]],[\"comment/694\",[]],[\"name/695\",[268,72.167]],[\"comment/695\",[]],[\"name/696\",[16,30.736]],[\"comment/696\",[]],[\"name/697\",[252,61.181]],[\"comment/697\",[]],[\"name/698\",[269,72.167]],[\"comment/698\",[]],[\"name/699\",[182,67.059]],[\"comment/699\",[]],[\"name/700\",[192,32.849]],[\"comment/700\",[]],[\"name/701\",[193,33.249]],[\"comment/701\",[]],[\"name/702\",[270,72.167]],[\"comment/702\",[]],[\"name/703\",[195,40.526]],[\"comment/703\",[]],[\"name/704\",[16,30.736]],[\"comment/704\",[]],[\"name/705\",[77,47.6]],[\"comment/705\",[]],[\"name/706\",[213,48.813]],[\"comment/706\",[]],[\"name/707\",[271,72.167]],[\"comment/707\",[]],[\"name/708\",[272,72.167]],[\"comment/708\",[]],[\"name/709\",[197,49.48]],[\"comment/709\",[]],[\"name/710\",[192,32.849]],[\"comment/710\",[]],[\"name/711\",[198,38.727]],[\"comment/711\",[]],[\"name/712\",[199,38.267]],[\"comment/712\",[]],[\"name/713\",[200,40.526]],[\"comment/713\",[]],[\"name/714\",[201,40.249]],[\"comment/714\",[]],[\"name/715\",[202,40.526]],[\"comment/715\",[]],[\"name/716\",[193,33.249]],[\"comment/716\",[]],[\"name/717\",[273,72.167]],[\"comment/717\",[]],[\"name/718\",[188,39.978]],[\"comment/718\",[]],[\"name/719\",[52,61.181]],[\"comment/719\",[]],[\"name/720\",[274,67.059]],[\"comment/720\",[]],[\"name/721\",[192,32.849]],[\"comment/721\",[]],[\"name/722\",[193,33.249]],[\"comment/722\",[]],[\"name/723\",[275,72.167]],[\"comment/723\",[]],[\"name/724\",[195,40.526]],[\"comment/724\",[]],[\"name/725\",[16,30.736]],[\"comment/725\",[]],[\"name/726\",[276,61.181]],[\"comment/726\",[]],[\"name/727\",[277,61.181]],[\"comment/727\",[]],[\"name/728\",[278,61.181]],[\"comment/728\",[]],[\"name/729\",[52,61.181]],[\"comment/729\",[]],[\"name/730\",[279,61.181]],[\"comment/730\",[]],[\"name/731\",[280,72.167]],[\"comment/731\",[]],[\"name/732\",[281,72.167]],[\"comment/732\",[]],[\"name/733\",[282,72.167]],[\"comment/733\",[]],[\"name/734\",[283,72.167]],[\"comment/734\",[]],[\"name/735\",[284,72.167]],[\"comment/735\",[]],[\"name/736\",[285,72.167]],[\"comment/736\",[]],[\"name/737\",[286,72.167]],[\"comment/737\",[]],[\"name/738\",[287,72.167]],[\"comment/738\",[]],[\"name/739\",[288,72.167]],[\"comment/739\",[]],[\"name/740\",[192,32.849]],[\"comment/740\",[]],[\"name/741\",[198,38.727]],[\"comment/741\",[]],[\"name/742\",[199,38.267]],[\"comment/742\",[]],[\"name/743\",[200,40.526]],[\"comment/743\",[]],[\"name/744\",[201,40.249]],[\"comment/744\",[]],[\"name/745\",[202,40.526]],[\"comment/745\",[]],[\"name/746\",[193,33.249]],[\"comment/746\",[]],[\"name/747\",[289,72.167]],[\"comment/747\",[]],[\"name/748\",[188,39.978]],[\"comment/748\",[]],[\"name/749\",[279,61.181]],[\"comment/749\",[]],[\"name/750\",[274,67.059]],[\"comment/750\",[]],[\"name/751\",[192,32.849]],[\"comment/751\",[]],[\"name/752\",[193,33.249]],[\"comment/752\",[]],[\"name/753\",[290,72.167]],[\"comment/753\",[]],[\"name/754\",[195,40.526]],[\"comment/754\",[]],[\"name/755\",[16,30.736]],[\"comment/755\",[]],[\"name/756\",[276,61.181]],[\"comment/756\",[]],[\"name/757\",[277,61.181]],[\"comment/757\",[]],[\"name/758\",[278,61.181]],[\"comment/758\",[]],[\"name/759\",[52,61.181]],[\"comment/759\",[]],[\"name/760\",[279,61.181]],[\"comment/760\",[]],[\"name/761\",[192,32.849]],[\"comment/761\",[]],[\"name/762\",[198,38.727]],[\"comment/762\",[]],[\"name/763\",[199,38.267]],[\"comment/763\",[]],[\"name/764\",[200,40.526]],[\"comment/764\",[]],[\"name/765\",[201,40.249]],[\"comment/765\",[]],[\"name/766\",[202,40.526]],[\"comment/766\",[]],[\"name/767\",[193,33.249]],[\"comment/767\",[]],[\"name/768\",[291,72.167]],[\"comment/768\",[]],[\"name/769\",[188,39.978]],[\"comment/769\",[]],[\"name/770\",[134,40.812]],[\"comment/770\",[]],[\"name/771\",[135,40.526]],[\"comment/771\",[]],[\"name/772\",[292,72.167]],[\"comment/772\",[]],[\"name/773\",[192,32.849]],[\"comment/773\",[]],[\"name/774\",[193,33.249]],[\"comment/774\",[]],[\"name/775\",[293,72.167]],[\"comment/775\",[]],[\"name/776\",[195,40.526]],[\"comment/776\",[]],[\"name/777\",[16,30.736]],[\"comment/777\",[]],[\"name/778\",[134,40.812]],[\"comment/778\",[]],[\"name/779\",[135,40.526]],[\"comment/779\",[]],[\"name/780\",[294,67.059]],[\"comment/780\",[]],[\"name/781\",[279,61.181]],[\"comment/781\",[]],[\"name/782\",[192,32.849]],[\"comment/782\",[]],[\"name/783\",[198,38.727]],[\"comment/783\",[]],[\"name/784\",[199,38.267]],[\"comment/784\",[]],[\"name/785\",[200,40.526]],[\"comment/785\",[]],[\"name/786\",[201,40.249]],[\"comment/786\",[]],[\"name/787\",[202,40.526]],[\"comment/787\",[]],[\"name/788\",[193,33.249]],[\"comment/788\",[]],[\"name/789\",[295,72.167]],[\"comment/789\",[]],[\"name/790\",[188,39.978]],[\"comment/790\",[]],[\"name/791\",[296,59.174]],[\"comment/791\",[]],[\"name/792\",[237,59.174]],[\"comment/792\",[]],[\"name/793\",[297,72.167]],[\"comment/793\",[]],[\"name/794\",[298,72.167]],[\"comment/794\",[]],[\"name/795\",[192,32.849]],[\"comment/795\",[]],[\"name/796\",[193,33.249]],[\"comment/796\",[]],[\"name/797\",[299,72.167]],[\"comment/797\",[]],[\"name/798\",[195,40.526]],[\"comment/798\",[]],[\"name/799\",[300,72.167]],[\"comment/799\",[]],[\"name/800\",[192,32.849]],[\"comment/800\",[]],[\"name/801\",[198,38.727]],[\"comment/801\",[]],[\"name/802\",[199,38.267]],[\"comment/802\",[]],[\"name/803\",[200,40.526]],[\"comment/803\",[]],[\"name/804\",[201,40.249]],[\"comment/804\",[]],[\"name/805\",[202,40.526]],[\"comment/805\",[]],[\"name/806\",[193,33.249]],[\"comment/806\",[]],[\"name/807\",[301,72.167]],[\"comment/807\",[]],[\"name/808\",[188,39.978]],[\"comment/808\",[]],[\"name/809\",[134,40.812]],[\"comment/809\",[]],[\"name/810\",[135,40.526]],[\"comment/810\",[]],[\"name/811\",[190,50.195]],[\"comment/811\",[]],[\"name/812\",[302,72.167]],[\"comment/812\",[]],[\"name/813\",[228,67.059]],[\"comment/813\",[]],[\"name/814\",[229,67.059]],[\"comment/814\",[]],[\"name/815\",[192,32.849]],[\"comment/815\",[]],[\"name/816\",[193,33.249]],[\"comment/816\",[]],[\"name/817\",[303,72.167]],[\"comment/817\",[]],[\"name/818\",[254,67.059]],[\"comment/818\",[]],[\"name/819\",[304,72.167]],[\"comment/819\",[]],[\"name/820\",[305,72.167]],[\"comment/820\",[]],[\"name/821\",[230,67.059]],[\"comment/821\",[]],[\"name/822\",[61,48.813]],[\"comment/822\",[]],[\"name/823\",[64,38.965]],[\"comment/823\",[]],[\"name/824\",[62,37.202]],[\"comment/824\",[]],[\"name/825\",[68,41.722]],[\"comment/825\",[]],[\"name/826\",[149,63.694]],[\"comment/826\",[]],[\"name/827\",[150,63.694]],[\"comment/827\",[]],[\"name/828\",[151,67.059]],[\"comment/828\",[]],[\"name/829\",[152,67.059]],[\"comment/829\",[]],[\"name/830\",[97,54.821]],[\"comment/830\",[]],[\"name/831\",[66,52.708]],[\"comment/831\",[]],[\"name/832\",[67,52.708]],[\"comment/832\",[]],[\"name/833\",[101,52.708]],[\"comment/833\",[]],[\"name/834\",[77,47.6]],[\"comment/834\",[]],[\"name/835\",[306,72.167]],[\"comment/835\",[]],[\"name/836\",[195,40.526]],[\"comment/836\",[]],[\"name/837\",[16,30.736]],[\"comment/837\",[]],[\"name/838\",[213,48.813]],[\"comment/838\",[]],[\"name/839\",[135,40.526]],[\"comment/839\",[]],[\"name/840\",[134,40.812]],[\"comment/840\",[]],[\"name/841\",[233,61.181]],[\"comment/841\",[]],[\"name/842\",[197,49.48]],[\"comment/842\",[]],[\"name/843\",[192,32.849]],[\"comment/843\",[]],[\"name/844\",[198,38.727]],[\"comment/844\",[]],[\"name/845\",[199,38.267]],[\"comment/845\",[]],[\"name/846\",[200,40.526]],[\"comment/846\",[]],[\"name/847\",[201,40.249]],[\"comment/847\",[]],[\"name/848\",[202,40.526]],[\"comment/848\",[]],[\"name/849\",[193,33.249]],[\"comment/849\",[]],[\"name/850\",[307,72.167]],[\"comment/850\",[]],[\"name/851\",[188,39.978]],[\"comment/851\",[]],[\"name/852\",[308,56.073]],[\"comment/852\",[]],[\"name/853\",[189,54.821]],[\"comment/853\",[]],[\"name/854\",[134,40.812]],[\"comment/854\",[]],[\"name/855\",[135,40.526]],[\"comment/855\",[]],[\"name/856\",[192,32.849]],[\"comment/856\",[]],[\"name/857\",[193,33.249]],[\"comment/857\",[]],[\"name/858\",[309,72.167]],[\"comment/858\",[]],[\"name/859\",[195,40.526]],[\"comment/859\",[]],[\"name/860\",[16,30.736]],[\"comment/860\",[]],[\"name/861\",[310,72.167]],[\"comment/861\",[]],[\"name/862\",[189,54.821]],[\"comment/862\",[]],[\"name/863\",[134,40.812]],[\"comment/863\",[]],[\"name/864\",[135,40.526]],[\"comment/864\",[]],[\"name/865\",[213,48.813]],[\"comment/865\",[]],[\"name/866\",[308,56.073]],[\"comment/866\",[]],[\"name/867\",[197,49.48]],[\"comment/867\",[]],[\"name/868\",[192,32.849]],[\"comment/868\",[]],[\"name/869\",[198,38.727]],[\"comment/869\",[]],[\"name/870\",[199,38.267]],[\"comment/870\",[]],[\"name/871\",[200,40.526]],[\"comment/871\",[]],[\"name/872\",[201,40.249]],[\"comment/872\",[]],[\"name/873\",[202,40.526]],[\"comment/873\",[]],[\"name/874\",[193,33.249]],[\"comment/874\",[]],[\"name/875\",[311,72.167]],[\"comment/875\",[]],[\"name/876\",[312,72.167]],[\"comment/876\",[]],[\"name/877\",[313,63.694]],[\"comment/877\",[]],[\"name/878\",[308,56.073]],[\"comment/878\",[]],[\"name/879\",[189,54.821]],[\"comment/879\",[]],[\"name/880\",[314,59.174]],[\"comment/880\",[]],[\"name/881\",[315,63.694]],[\"comment/881\",[]],[\"name/882\",[316,67.059]],[\"comment/882\",[]],[\"name/883\",[188,39.978]],[\"comment/883\",[]],[\"name/884\",[192,32.849]],[\"comment/884\",[]],[\"name/885\",[193,33.249]],[\"comment/885\",[]],[\"name/886\",[317,72.167]],[\"comment/886\",[]],[\"name/887\",[313,63.694]],[\"comment/887\",[]],[\"name/888\",[188,39.978]],[\"comment/888\",[]],[\"name/889\",[192,32.849]],[\"comment/889\",[]],[\"name/890\",[193,33.249]],[\"comment/890\",[]],[\"name/891\",[318,72.167]],[\"comment/891\",[]],[\"name/892\",[313,63.694]],[\"comment/892\",[]],[\"name/893\",[188,39.978]],[\"comment/893\",[]],[\"name/894\",[192,32.849]],[\"comment/894\",[]],[\"name/895\",[193,33.249]],[\"comment/895\",[]],[\"name/896\",[319,72.167]],[\"comment/896\",[]],[\"name/897\",[195,40.526]],[\"comment/897\",[]],[\"name/898\",[16,30.736]],[\"comment/898\",[]],[\"name/899\",[320,63.694]],[\"comment/899\",[]],[\"name/900\",[189,54.821]],[\"comment/900\",[]],[\"name/901\",[314,59.174]],[\"comment/901\",[]],[\"name/902\",[308,56.073]],[\"comment/902\",[]],[\"name/903\",[321,63.694]],[\"comment/903\",[]],[\"name/904\",[192,32.849]],[\"comment/904\",[]],[\"name/905\",[133,67.059]],[\"comment/905\",[]],[\"name/906\",[198,38.727]],[\"comment/906\",[]],[\"name/907\",[192,32.849]],[\"comment/907\",[]],[\"name/908\",[198,38.727]],[\"comment/908\",[]],[\"name/909\",[199,38.267]],[\"comment/909\",[]],[\"name/910\",[200,40.526]],[\"comment/910\",[]],[\"name/911\",[201,40.249]],[\"comment/911\",[]],[\"name/912\",[202,40.526]],[\"comment/912\",[]],[\"name/913\",[193,33.249]],[\"comment/913\",[]],[\"name/914\",[322,72.167]],[\"comment/914\",[]],[\"name/915\",[188,39.978]],[\"comment/915\",[]],[\"name/916\",[308,56.073]],[\"comment/916\",[]],[\"name/917\",[189,54.821]],[\"comment/917\",[]],[\"name/918\",[314,59.174]],[\"comment/918\",[]],[\"name/919\",[315,63.694]],[\"comment/919\",[]],[\"name/920\",[323,72.167]],[\"comment/920\",[]],[\"name/921\",[134,40.812]],[\"comment/921\",[]],[\"name/922\",[135,40.526]],[\"comment/922\",[]],[\"name/923\",[192,32.849]],[\"comment/923\",[]],[\"name/924\",[193,33.249]],[\"comment/924\",[]],[\"name/925\",[324,72.167]],[\"comment/925\",[]],[\"name/926\",[195,40.526]],[\"comment/926\",[]],[\"name/927\",[16,30.736]],[\"comment/927\",[]],[\"name/928\",[320,63.694]],[\"comment/928\",[]],[\"name/929\",[189,54.821]],[\"comment/929\",[]],[\"name/930\",[325,72.167]],[\"comment/930\",[]],[\"name/931\",[314,59.174]],[\"comment/931\",[]],[\"name/932\",[321,63.694]],[\"comment/932\",[]],[\"name/933\",[192,32.849]],[\"comment/933\",[]],[\"name/934\",[213,48.813]],[\"comment/934\",[]],[\"name/935\",[308,56.073]],[\"comment/935\",[]],[\"name/936\",[197,49.48]],[\"comment/936\",[]],[\"name/937\",[192,32.849]],[\"comment/937\",[]],[\"name/938\",[198,38.727]],[\"comment/938\",[]],[\"name/939\",[199,38.267]],[\"comment/939\",[]],[\"name/940\",[200,40.526]],[\"comment/940\",[]],[\"name/941\",[201,40.249]],[\"comment/941\",[]],[\"name/942\",[202,40.526]],[\"comment/942\",[]],[\"name/943\",[193,33.249]],[\"comment/943\",[]],[\"name/944\",[326,72.167]],[\"comment/944\",[]],[\"name/945\",[188,39.978]],[\"comment/945\",[]],[\"name/946\",[117,52.708]],[\"comment/946\",[]],[\"name/947\",[327,72.167]],[\"comment/947\",[]],[\"name/948\",[328,63.694]],[\"comment/948\",[]],[\"name/949\",[329,63.694]],[\"comment/949\",[]],[\"name/950\",[192,32.849]],[\"comment/950\",[]],[\"name/951\",[193,33.249]],[\"comment/951\",[]],[\"name/952\",[330,72.167]],[\"comment/952\",[]],[\"name/953\",[195,40.526]],[\"comment/953\",[]],[\"name/954\",[16,30.736]],[\"comment/954\",[]],[\"name/955\",[331,72.167]],[\"comment/955\",[]],[\"name/956\",[192,32.849]],[\"comment/956\",[]],[\"name/957\",[198,38.727]],[\"comment/957\",[]],[\"name/958\",[199,38.267]],[\"comment/958\",[]],[\"name/959\",[200,40.526]],[\"comment/959\",[]],[\"name/960\",[201,40.249]],[\"comment/960\",[]],[\"name/961\",[202,40.526]],[\"comment/961\",[]],[\"name/962\",[193,33.249]],[\"comment/962\",[]],[\"name/963\",[332,72.167]],[\"comment/963\",[]],[\"name/964\",[188,39.978]],[\"comment/964\",[]],[\"name/965\",[333,67.059]],[\"comment/965\",[]],[\"name/966\",[252,61.181]],[\"comment/966\",[]],[\"name/967\",[334,67.059]],[\"comment/967\",[]],[\"name/968\",[335,67.059]],[\"comment/968\",[]],[\"name/969\",[7,63.694]],[\"comment/969\",[]],[\"name/970\",[336,72.167]],[\"comment/970\",[]],[\"name/971\",[337,72.167]],[\"comment/971\",[]],[\"name/972\",[192,32.849]],[\"comment/972\",[]],[\"name/973\",[193,33.249]],[\"comment/973\",[]],[\"name/974\",[338,72.167]],[\"comment/974\",[]],[\"name/975\",[195,40.526]],[\"comment/975\",[]],[\"name/976\",[192,32.849]],[\"comment/976\",[]],[\"name/977\",[198,38.727]],[\"comment/977\",[]],[\"name/978\",[199,38.267]],[\"comment/978\",[]],[\"name/979\",[200,40.526]],[\"comment/979\",[]],[\"name/980\",[201,40.249]],[\"comment/980\",[]],[\"name/981\",[202,40.526]],[\"comment/981\",[]],[\"name/982\",[193,33.249]],[\"comment/982\",[]],[\"name/983\",[339,72.167]],[\"comment/983\",[]],[\"name/984\",[340,72.167]],[\"comment/984\",[]],[\"name/985\",[199,38.267]],[\"comment/985\",[]],[\"name/986\",[341,72.167]],[\"comment/986\",[]],[\"name/987\",[342,72.167]],[\"comment/987\",[]],[\"name/988\",[134,40.812]],[\"comment/988\",[]],[\"name/989\",[135,40.526]],[\"comment/989\",[]],[\"name/990\",[343,72.167]],[\"comment/990\",[]],[\"name/991\",[344,61.181]],[\"comment/991\",[]],[\"name/992\",[345,61.181]],[\"comment/992\",[]],[\"name/993\",[346,72.167]],[\"comment/993\",[]],[\"name/994\",[347,72.167]],[\"comment/994\",[]],[\"name/995\",[348,72.167]],[\"comment/995\",[]],[\"name/996\",[199,38.267]],[\"comment/996\",[]],[\"name/997\",[93,63.694]],[\"comment/997\",[]],[\"name/998\",[349,61.181]],[\"comment/998\",[]],[\"name/999\",[350,72.167]],[\"comment/999\",[]],[\"name/1000\",[351,50.195]],[\"comment/1000\",[]],[\"name/1001\",[64,38.965]],[\"comment/1001\",[]],[\"name/1002\",[251,67.059]],[\"comment/1002\",[]],[\"name/1003\",[134,40.812]],[\"comment/1003\",[]],[\"name/1004\",[135,40.526]],[\"comment/1004\",[]],[\"name/1005\",[352,72.167]],[\"comment/1005\",[]],[\"name/1006\",[353,67.059]],[\"comment/1006\",[]],[\"name/1007\",[344,61.181]],[\"comment/1007\",[]],[\"name/1008\",[345,61.181]],[\"comment/1008\",[]],[\"name/1009\",[329,63.694]],[\"comment/1009\",[]],[\"name/1010\",[354,72.167]],[\"comment/1010\",[]],[\"name/1011\",[355,72.167]],[\"comment/1011\",[]],[\"name/1012\",[356,72.167]],[\"comment/1012\",[]],[\"name/1013\",[198,38.727]],[\"comment/1013\",[]],[\"name/1014\",[199,38.267]],[\"comment/1014\",[]],[\"name/1015\",[276,61.181]],[\"comment/1015\",[]],[\"name/1016\",[277,61.181]],[\"comment/1016\",[]],[\"name/1017\",[278,61.181]],[\"comment/1017\",[]],[\"name/1018\",[213,48.813]],[\"comment/1018\",[]],[\"name/1019\",[134,40.812]],[\"comment/1019\",[]],[\"name/1020\",[135,40.526]],[\"comment/1020\",[]],[\"name/1021\",[357,67.059]],[\"comment/1021\",[]],[\"name/1022\",[296,59.174]],[\"comment/1022\",[]],[\"name/1023\",[197,49.48]],[\"comment/1023\",[]],[\"name/1024\",[201,40.249]],[\"comment/1024\",[]],[\"name/1025\",[358,72.167]],[\"comment/1025\",[]],[\"name/1026\",[199,38.267]],[\"comment/1026\",[]],[\"name/1027\",[308,56.073]],[\"comment/1027\",[]],[\"name/1028\",[189,54.821]],[\"comment/1028\",[]],[\"name/1029\",[314,59.174]],[\"comment/1029\",[]],[\"name/1030\",[321,63.694]],[\"comment/1030\",[]],[\"name/1031\",[192,32.849]],[\"comment/1031\",[]],[\"name/1032\",[315,63.694]],[\"comment/1032\",[]],[\"name/1033\",[320,63.694]],[\"comment/1033\",[]],[\"name/1034\",[359,72.167]],[\"comment/1034\",[]],[\"name/1035\",[199,38.267]],[\"comment/1035\",[]],[\"name/1036\",[360,72.167]],[\"comment/1036\",[]],[\"name/1037\",[361,72.167]],[\"comment/1037\",[]],[\"name/1038\",[134,40.812]],[\"comment/1038\",[]],[\"name/1039\",[135,40.526]],[\"comment/1039\",[]],[\"name/1040\",[236,63.694]],[\"comment/1040\",[]],[\"name/1041\",[235,63.694]],[\"comment/1041\",[]],[\"name/1042\",[362,72.167]],[\"comment/1042\",[]],[\"name/1043\",[198,38.727]],[\"comment/1043\",[]],[\"name/1044\",[199,38.267]],[\"comment/1044\",[]],[\"name/1045\",[276,61.181]],[\"comment/1045\",[]],[\"name/1046\",[277,61.181]],[\"comment/1046\",[]],[\"name/1047\",[278,61.181]],[\"comment/1047\",[]],[\"name/1048\",[213,48.813]],[\"comment/1048\",[]],[\"name/1049\",[134,40.812]],[\"comment/1049\",[]],[\"name/1050\",[135,40.526]],[\"comment/1050\",[]],[\"name/1051\",[357,67.059]],[\"comment/1051\",[]],[\"name/1052\",[296,59.174]],[\"comment/1052\",[]],[\"name/1053\",[197,49.48]],[\"comment/1053\",[]],[\"name/1054\",[363,72.167]],[\"comment/1054\",[]],[\"name/1055\",[199,38.267]],[\"comment/1055\",[]],[\"name/1056\",[364,72.167]],[\"comment/1056\",[]],[\"name/1057\",[365,72.167]],[\"comment/1057\",[]],[\"name/1058\",[188,39.978]],[\"comment/1058\",[]],[\"name/1059\",[333,67.059]],[\"comment/1059\",[]],[\"name/1060\",[252,61.181]],[\"comment/1060\",[]],[\"name/1061\",[334,67.059]],[\"comment/1061\",[]],[\"name/1062\",[335,67.059]],[\"comment/1062\",[]],[\"name/1063\",[192,32.849]],[\"comment/1063\",[]],[\"name/1064\",[193,33.249]],[\"comment/1064\",[]],[\"name/1065\",[366,72.167]],[\"comment/1065\",[]],[\"name/1066\",[195,40.526]],[\"comment/1066\",[]],[\"name/1067\",[192,32.849]],[\"comment/1067\",[]],[\"name/1068\",[198,38.727]],[\"comment/1068\",[]],[\"name/1069\",[199,38.267]],[\"comment/1069\",[]],[\"name/1070\",[200,40.526]],[\"comment/1070\",[]],[\"name/1071\",[201,40.249]],[\"comment/1071\",[]],[\"name/1072\",[202,40.526]],[\"comment/1072\",[]],[\"name/1073\",[193,33.249]],[\"comment/1073\",[]],[\"name/1074\",[367,72.167]],[\"comment/1074\",[]],[\"name/1075\",[188,39.978]],[\"comment/1075\",[]],[\"name/1076\",[192,32.849]],[\"comment/1076\",[]],[\"name/1077\",[193,33.249]],[\"comment/1077\",[]],[\"name/1078\",[368,72.167]],[\"comment/1078\",[]],[\"name/1079\",[195,40.526]],[\"comment/1079\",[]],[\"name/1080\",[16,30.736]],[\"comment/1080\",[]],[\"name/1081\",[369,72.167]],[\"comment/1081\",[]],[\"name/1082\",[370,72.167]],[\"comment/1082\",[]],[\"name/1083\",[371,72.167]],[\"comment/1083\",[]],[\"name/1084\",[16,30.736]],[\"comment/1084\",[]],[\"name/1085\",[349,61.181]],[\"comment/1085\",[]],[\"name/1086\",[372,72.167]],[\"comment/1086\",[]],[\"name/1087\",[373,72.167]],[\"comment/1087\",[]],[\"name/1088\",[374,72.167]],[\"comment/1088\",[]],[\"name/1089\",[375,72.167]],[\"comment/1089\",[]],[\"name/1090\",[213,48.813]],[\"comment/1090\",[]],[\"name/1091\",[376,72.167]],[\"comment/1091\",[]],[\"name/1092\",[16,30.736]],[\"comment/1092\",[]],[\"name/1093\",[377,72.167]],[\"comment/1093\",[]],[\"name/1094\",[378,72.167]],[\"comment/1094\",[]],[\"name/1095\",[379,72.167]],[\"comment/1095\",[]],[\"name/1096\",[380,72.167]],[\"comment/1096\",[]],[\"name/1097\",[381,72.167]],[\"comment/1097\",[]],[\"name/1098\",[192,32.849]],[\"comment/1098\",[]],[\"name/1099\",[198,38.727]],[\"comment/1099\",[]],[\"name/1100\",[199,38.267]],[\"comment/1100\",[]],[\"name/1101\",[200,40.526]],[\"comment/1101\",[]],[\"name/1102\",[201,40.249]],[\"comment/1102\",[]],[\"name/1103\",[202,40.526]],[\"comment/1103\",[]],[\"name/1104\",[193,33.249]],[\"comment/1104\",[]],[\"name/1105\",[382,72.167]],[\"comment/1105\",[]],[\"name/1106\",[188,39.978]],[\"comment/1106\",[]],[\"name/1107\",[328,63.694]],[\"comment/1107\",[]],[\"name/1108\",[192,32.849]],[\"comment/1108\",[]],[\"name/1109\",[193,33.249]],[\"comment/1109\",[]],[\"name/1110\",[383,72.167]],[\"comment/1110\",[]],[\"name/1111\",[195,40.526]],[\"comment/1111\",[]],[\"name/1112\",[16,30.736]],[\"comment/1112\",[]],[\"name/1113\",[384,72.167]],[\"comment/1113\",[]],[\"name/1114\",[16,30.736]],[\"comment/1114\",[]],[\"name/1115\",[70,63.694]],[\"comment/1115\",[]],[\"name/1116\",[385,72.167]],[\"comment/1116\",[]],[\"name/1117\",[353,67.059]],[\"comment/1117\",[]],[\"name/1118\",[227,57.504]],[\"comment/1118\",[]],[\"name/1119\",[386,72.167]],[\"comment/1119\",[]],[\"name/1120\",[387,72.167]],[\"comment/1120\",[]],[\"name/1121\",[192,32.849]],[\"comment/1121\",[]],[\"name/1122\",[198,38.727]],[\"comment/1122\",[]],[\"name/1123\",[199,38.267]],[\"comment/1123\",[]],[\"name/1124\",[200,40.526]],[\"comment/1124\",[]],[\"name/1125\",[201,40.249]],[\"comment/1125\",[]],[\"name/1126\",[202,40.526]],[\"comment/1126\",[]],[\"name/1127\",[193,33.249]],[\"comment/1127\",[]],[\"name/1128\",[388,72.167]],[\"comment/1128\",[]],[\"name/1129\",[188,39.978]],[\"comment/1129\",[]],[\"name/1130\",[192,32.849]],[\"comment/1130\",[]],[\"name/1131\",[193,33.249]],[\"comment/1131\",[]],[\"name/1132\",[389,72.167]],[\"comment/1132\",[]],[\"name/1133\",[195,40.526]],[\"comment/1133\",[]],[\"name/1134\",[16,30.736]],[\"comment/1134\",[]],[\"name/1135\",[390,67.059]],[\"comment/1135\",[]],[\"name/1136\",[16,30.736]],[\"comment/1136\",[]],[\"name/1137\",[391,67.059]],[\"comment/1137\",[]],[\"name/1138\",[392,67.059]],[\"comment/1138\",[]],[\"name/1139\",[393,67.059]],[\"comment/1139\",[]],[\"name/1140\",[16,30.736]],[\"comment/1140\",[]],[\"name/1141\",[394,61.181]],[\"comment/1141\",[]],[\"name/1142\",[395,67.059]],[\"comment/1142\",[]],[\"name/1143\",[53,59.174]],[\"comment/1143\",[]],[\"name/1144\",[396,67.059]],[\"comment/1144\",[]],[\"name/1145\",[397,67.059]],[\"comment/1145\",[]],[\"name/1146\",[227,57.504]],[\"comment/1146\",[]],[\"name/1147\",[398,67.059]],[\"comment/1147\",[]],[\"name/1148\",[399,72.167]],[\"comment/1148\",[]],[\"name/1149\",[400,67.059]],[\"comment/1149\",[]],[\"name/1150\",[401,67.059]],[\"comment/1150\",[]],[\"name/1151\",[402,67.059]],[\"comment/1151\",[]],[\"name/1152\",[16,30.736]],[\"comment/1152\",[]],[\"name/1153\",[403,72.167]],[\"comment/1153\",[]],[\"name/1154\",[404,67.059]],[\"comment/1154\",[]],[\"name/1155\",[405,67.059]],[\"comment/1155\",[]],[\"name/1156\",[16,30.736]],[\"comment/1156\",[]],[\"name/1157\",[406,67.059]],[\"comment/1157\",[]],[\"name/1158\",[407,67.059]],[\"comment/1158\",[]],[\"name/1159\",[408,67.059]],[\"comment/1159\",[]],[\"name/1160\",[409,72.167]],[\"comment/1160\",[]],[\"name/1161\",[410,72.167]],[\"comment/1161\",[]],[\"name/1162\",[411,72.167]],[\"comment/1162\",[]],[\"name/1163\",[412,67.059]],[\"comment/1163\",[]],[\"name/1164\",[413,67.059]],[\"comment/1164\",[]],[\"name/1165\",[414,67.059]],[\"comment/1165\",[]],[\"name/1166\",[415,67.059]],[\"comment/1166\",[]],[\"name/1167\",[416,67.059]],[\"comment/1167\",[]],[\"name/1168\",[417,72.167]],[\"comment/1168\",[]],[\"name/1169\",[418,67.059]],[\"comment/1169\",[]],[\"name/1170\",[419,67.059]],[\"comment/1170\",[]],[\"name/1171\",[420,67.059]],[\"comment/1171\",[]],[\"name/1172\",[421,67.059]],[\"comment/1172\",[]],[\"name/1173\",[422,67.059]],[\"comment/1173\",[]],[\"name/1174\",[423,67.059]],[\"comment/1174\",[]],[\"name/1175\",[424,67.059]],[\"comment/1175\",[]],[\"name/1176\",[425,67.059]],[\"comment/1176\",[]],[\"name/1177\",[426,67.059]],[\"comment/1177\",[]],[\"name/1178\",[16,30.736]],[\"comment/1178\",[]],[\"name/1179\",[394,61.181]],[\"comment/1179\",[]],[\"name/1180\",[395,67.059]],[\"comment/1180\",[]],[\"name/1181\",[53,59.174]],[\"comment/1181\",[]],[\"name/1182\",[396,67.059]],[\"comment/1182\",[]],[\"name/1183\",[397,67.059]],[\"comment/1183\",[]],[\"name/1184\",[227,57.504]],[\"comment/1184\",[]],[\"name/1185\",[427,67.059]],[\"comment/1185\",[]],[\"name/1186\",[428,67.059]],[\"comment/1186\",[]],[\"name/1187\",[429,72.167]],[\"comment/1187\",[]],[\"name/1188\",[16,30.736]],[\"comment/1188\",[]],[\"name/1189\",[430,72.167]],[\"comment/1189\",[]],[\"name/1190\",[101,52.708]],[\"comment/1190\",[]],[\"name/1191\",[198,38.727]],[\"comment/1191\",[]],[\"name/1192\",[192,32.849]],[\"comment/1192\",[]],[\"name/1193\",[198,38.727]],[\"comment/1193\",[]],[\"name/1194\",[199,38.267]],[\"comment/1194\",[]],[\"name/1195\",[200,40.526]],[\"comment/1195\",[]],[\"name/1196\",[201,40.249]],[\"comment/1196\",[]],[\"name/1197\",[202,40.526]],[\"comment/1197\",[]],[\"name/1198\",[193,33.249]],[\"comment/1198\",[]],[\"name/1199\",[431,72.167]],[\"comment/1199\",[]],[\"name/1200\",[188,39.978]],[\"comment/1200\",[]],[\"name/1201\",[192,32.849]],[\"comment/1201\",[]],[\"name/1202\",[193,33.249]],[\"comment/1202\",[]],[\"name/1203\",[432,72.167]],[\"comment/1203\",[]],[\"name/1204\",[195,40.526]],[\"comment/1204\",[]],[\"name/1205\",[16,30.736]],[\"comment/1205\",[]],[\"name/1206\",[262,61.181]],[\"comment/1206\",[]],[\"name/1207\",[16,30.736]],[\"comment/1207\",[]],[\"name/1208\",[391,67.059]],[\"comment/1208\",[]],[\"name/1209\",[392,67.059]],[\"comment/1209\",[]],[\"name/1210\",[398,67.059]],[\"comment/1210\",[]],[\"name/1211\",[393,67.059]],[\"comment/1211\",[]],[\"name/1212\",[16,30.736]],[\"comment/1212\",[]],[\"name/1213\",[394,61.181]],[\"comment/1213\",[]],[\"name/1214\",[349,61.181]],[\"comment/1214\",[]],[\"name/1215\",[53,59.174]],[\"comment/1215\",[]],[\"name/1216\",[344,61.181]],[\"comment/1216\",[]],[\"name/1217\",[345,61.181]],[\"comment/1217\",[]],[\"name/1218\",[227,57.504]],[\"comment/1218\",[]],[\"name/1219\",[400,67.059]],[\"comment/1219\",[]],[\"name/1220\",[401,67.059]],[\"comment/1220\",[]],[\"name/1221\",[402,67.059]],[\"comment/1221\",[]],[\"name/1222\",[16,30.736]],[\"comment/1222\",[]],[\"name/1223\",[433,72.167]],[\"comment/1223\",[]],[\"name/1224\",[404,67.059]],[\"comment/1224\",[]],[\"name/1225\",[405,67.059]],[\"comment/1225\",[]],[\"name/1226\",[16,30.736]],[\"comment/1226\",[]],[\"name/1227\",[406,67.059]],[\"comment/1227\",[]],[\"name/1228\",[407,67.059]],[\"comment/1228\",[]],[\"name/1229\",[434,72.167]],[\"comment/1229\",[]],[\"name/1230\",[408,67.059]],[\"comment/1230\",[]],[\"name/1231\",[412,67.059]],[\"comment/1231\",[]],[\"name/1232\",[413,67.059]],[\"comment/1232\",[]],[\"name/1233\",[435,72.167]],[\"comment/1233\",[]],[\"name/1234\",[414,67.059]],[\"comment/1234\",[]],[\"name/1235\",[415,67.059]],[\"comment/1235\",[]],[\"name/1236\",[416,67.059]],[\"comment/1236\",[]],[\"name/1237\",[418,67.059]],[\"comment/1237\",[]],[\"name/1238\",[419,67.059]],[\"comment/1238\",[]],[\"name/1239\",[420,67.059]],[\"comment/1239\",[]],[\"name/1240\",[421,67.059]],[\"comment/1240\",[]],[\"name/1241\",[422,67.059]],[\"comment/1241\",[]],[\"name/1242\",[423,67.059]],[\"comment/1242\",[]],[\"name/1243\",[424,67.059]],[\"comment/1243\",[]],[\"name/1244\",[425,67.059]],[\"comment/1244\",[]],[\"name/1245\",[426,67.059]],[\"comment/1245\",[]],[\"name/1246\",[16,30.736]],[\"comment/1246\",[]],[\"name/1247\",[394,61.181]],[\"comment/1247\",[]],[\"name/1248\",[349,61.181]],[\"comment/1248\",[]],[\"name/1249\",[130,67.059]],[\"comment/1249\",[]],[\"name/1250\",[53,59.174]],[\"comment/1250\",[]],[\"name/1251\",[344,61.181]],[\"comment/1251\",[]],[\"name/1252\",[345,61.181]],[\"comment/1252\",[]],[\"name/1253\",[227,57.504]],[\"comment/1253\",[]],[\"name/1254\",[427,67.059]],[\"comment/1254\",[]],[\"name/1255\",[428,67.059]],[\"comment/1255\",[]],[\"name/1256\",[192,32.849]],[\"comment/1256\",[]],[\"name/1257\",[198,38.727]],[\"comment/1257\",[]],[\"name/1258\",[199,38.267]],[\"comment/1258\",[]],[\"name/1259\",[200,40.526]],[\"comment/1259\",[]],[\"name/1260\",[201,40.249]],[\"comment/1260\",[]],[\"name/1261\",[202,40.526]],[\"comment/1261\",[]],[\"name/1262\",[193,33.249]],[\"comment/1262\",[]],[\"name/1263\",[436,72.167]],[\"comment/1263\",[]],[\"name/1264\",[188,39.978]],[\"comment/1264\",[]],[\"name/1265\",[192,32.849]],[\"comment/1265\",[]],[\"name/1266\",[193,33.249]],[\"comment/1266\",[]],[\"name/1267\",[437,72.167]],[\"comment/1267\",[]],[\"name/1268\",[195,40.526]],[\"comment/1268\",[]],[\"name/1269\",[16,30.736]],[\"comment/1269\",[]],[\"name/1270\",[247,67.059]],[\"comment/1270\",[]],[\"name/1271\",[438,72.167]],[\"comment/1271\",[]],[\"name/1272\",[192,32.849]],[\"comment/1272\",[]],[\"name/1273\",[198,38.727]],[\"comment/1273\",[]],[\"name/1274\",[199,38.267]],[\"comment/1274\",[]],[\"name/1275\",[200,40.526]],[\"comment/1275\",[]],[\"name/1276\",[201,40.249]],[\"comment/1276\",[]],[\"name/1277\",[202,40.526]],[\"comment/1277\",[]],[\"name/1278\",[193,33.249]],[\"comment/1278\",[]],[\"name/1279\",[439,72.167]],[\"comment/1279\",[]],[\"name/1280\",[188,39.978]],[\"comment/1280\",[]],[\"name/1281\",[192,32.849]],[\"comment/1281\",[]],[\"name/1282\",[193,33.249]],[\"comment/1282\",[]],[\"name/1283\",[440,72.167]],[\"comment/1283\",[]],[\"name/1284\",[195,40.526]],[\"comment/1284\",[]],[\"name/1285\",[16,30.736]],[\"comment/1285\",[]],[\"name/1286\",[441,72.167]],[\"comment/1286\",[]],[\"name/1287\",[192,32.849]],[\"comment/1287\",[]],[\"name/1288\",[198,38.727]],[\"comment/1288\",[]],[\"name/1289\",[199,38.267]],[\"comment/1289\",[]],[\"name/1290\",[200,40.526]],[\"comment/1290\",[]],[\"name/1291\",[201,40.249]],[\"comment/1291\",[]],[\"name/1292\",[202,40.526]],[\"comment/1292\",[]],[\"name/1293\",[193,33.249]],[\"comment/1293\",[]],[\"name/1294\",[442,72.167]],[\"comment/1294\",[]],[\"name/1295\",[192,32.849]],[\"comment/1295\",[]],[\"name/1296\",[198,38.727]],[\"comment/1296\",[]],[\"name/1297\",[199,38.267]],[\"comment/1297\",[]],[\"name/1298\",[443,72.167]],[\"comment/1298\",[]],[\"name/1299\",[444,72.167]],[\"comment/1299\",[]],[\"name/1300\",[445,72.167]],[\"comment/1300\",[]],[\"name/1301\",[8,61.181]],[\"comment/1301\",[]],[\"name/1302\",[193,33.249]],[\"comment/1302\",[]],[\"name/1303\",[446,72.167]],[\"comment/1303\",[]],[\"name/1304\",[188,39.978]],[\"comment/1304\",[]],[\"name/1305\",[447,61.181]],[\"comment/1305\",[]],[\"name/1306\",[192,32.849]],[\"comment/1306\",[]],[\"name/1307\",[193,33.249]],[\"comment/1307\",[]],[\"name/1308\",[448,72.167]],[\"comment/1308\",[]],[\"name/1309\",[195,40.526]],[\"comment/1309\",[]],[\"name/1310\",[16,30.736]],[\"comment/1310\",[]],[\"name/1311\",[233,61.181]],[\"comment/1311\",[]],[\"name/1312\",[447,61.181]],[\"comment/1312\",[]],[\"name/1313\",[192,32.849]],[\"comment/1313\",[]],[\"name/1314\",[198,38.727]],[\"comment/1314\",[]],[\"name/1315\",[199,38.267]],[\"comment/1315\",[]],[\"name/1316\",[200,40.526]],[\"comment/1316\",[]],[\"name/1317\",[201,40.249]],[\"comment/1317\",[]],[\"name/1318\",[202,40.526]],[\"comment/1318\",[]],[\"name/1319\",[193,33.249]],[\"comment/1319\",[]],[\"name/1320\",[449,72.167]],[\"comment/1320\",[]],[\"name/1321\",[188,39.978]],[\"comment/1321\",[]],[\"name/1322\",[447,61.181]],[\"comment/1322\",[]],[\"name/1323\",[192,32.849]],[\"comment/1323\",[]],[\"name/1324\",[193,33.249]],[\"comment/1324\",[]],[\"name/1325\",[450,72.167]],[\"comment/1325\",[]],[\"name/1326\",[195,40.526]],[\"comment/1326\",[]],[\"name/1327\",[16,30.736]],[\"comment/1327\",[]],[\"name/1328\",[233,61.181]],[\"comment/1328\",[]],[\"name/1329\",[447,61.181]],[\"comment/1329\",[]],[\"name/1330\",[192,32.849]],[\"comment/1330\",[]],[\"name/1331\",[198,38.727]],[\"comment/1331\",[]],[\"name/1332\",[199,38.267]],[\"comment/1332\",[]],[\"name/1333\",[200,40.526]],[\"comment/1333\",[]],[\"name/1334\",[201,40.249]],[\"comment/1334\",[]],[\"name/1335\",[202,40.526]],[\"comment/1335\",[]],[\"name/1336\",[193,33.249]],[\"comment/1336\",[]],[\"name/1337\",[451,72.167]],[\"comment/1337\",[]],[\"name/1338\",[188,39.978]],[\"comment/1338\",[]],[\"name/1339\",[192,32.849]],[\"comment/1339\",[]],[\"name/1340\",[193,33.249]],[\"comment/1340\",[]],[\"name/1341\",[452,72.167]],[\"comment/1341\",[]],[\"name/1342\",[195,40.526]],[\"comment/1342\",[]],[\"name/1343\",[16,30.736]],[\"comment/1343\",[]],[\"name/1344\",[390,67.059]],[\"comment/1344\",[]],[\"name/1345\",[16,30.736]],[\"comment/1345\",[]],[\"name/1346\",[453,72.167]],[\"comment/1346\",[]],[\"name/1347\",[16,30.736]],[\"comment/1347\",[]],[\"name/1348\",[454,67.059]],[\"comment/1348\",[]],[\"name/1349\",[16,30.736]],[\"comment/1349\",[]],[\"name/1350\",[455,61.181]],[\"comment/1350\",[]],[\"name/1351\",[198,38.727]],[\"comment/1351\",[]],[\"name/1352\",[456,67.059]],[\"comment/1352\",[]],[\"name/1353\",[457,67.059]],[\"comment/1353\",[]],[\"name/1354\",[16,30.736]],[\"comment/1354\",[]],[\"name/1355\",[262,61.181]],[\"comment/1355\",[]],[\"name/1356\",[458,67.059]],[\"comment/1356\",[]],[\"name/1357\",[68,41.722]],[\"comment/1357\",[]],[\"name/1358\",[459,61.181]],[\"comment/1358\",[]],[\"name/1359\",[16,30.736]],[\"comment/1359\",[]],[\"name/1360\",[455,61.181]],[\"comment/1360\",[]],[\"name/1361\",[459,61.181]],[\"comment/1361\",[]],[\"name/1362\",[328,63.694]],[\"comment/1362\",[]],[\"name/1363\",[460,72.167]],[\"comment/1363\",[]],[\"name/1364\",[16,30.736]],[\"comment/1364\",[]],[\"name/1365\",[454,67.059]],[\"comment/1365\",[]],[\"name/1366\",[16,30.736]],[\"comment/1366\",[]],[\"name/1367\",[455,61.181]],[\"comment/1367\",[]],[\"name/1368\",[198,38.727]],[\"comment/1368\",[]],[\"name/1369\",[456,67.059]],[\"comment/1369\",[]],[\"name/1370\",[457,67.059]],[\"comment/1370\",[]],[\"name/1371\",[16,30.736]],[\"comment/1371\",[]],[\"name/1372\",[262,61.181]],[\"comment/1372\",[]],[\"name/1373\",[458,67.059]],[\"comment/1373\",[]],[\"name/1374\",[68,41.722]],[\"comment/1374\",[]],[\"name/1375\",[459,61.181]],[\"comment/1375\",[]],[\"name/1376\",[16,30.736]],[\"comment/1376\",[]],[\"name/1377\",[455,61.181]],[\"comment/1377\",[]],[\"name/1378\",[459,61.181]],[\"comment/1378\",[]],[\"name/1379\",[192,32.849]],[\"comment/1379\",[]],[\"name/1380\",[198,38.727]],[\"comment/1380\",[]],[\"name/1381\",[199,38.267]],[\"comment/1381\",[]],[\"name/1382\",[200,40.526]],[\"comment/1382\",[]],[\"name/1383\",[201,40.249]],[\"comment/1383\",[]],[\"name/1384\",[202,40.526]],[\"comment/1384\",[]],[\"name/1385\",[193,33.249]],[\"comment/1385\",[]],[\"name/1386\",[461,72.167]],[\"comment/1386\",[]],[\"name/1387\",[462,72.167]],[\"comment/1387\",[]],[\"name/1388\",[296,59.174]],[\"comment/1388\",[]],[\"name/1389\",[294,67.059]],[\"comment/1389\",[]],[\"name/1390\",[296,59.174]],[\"comment/1390\",[]],[\"name/1391\",[463,72.167]],[\"comment/1391\",[]],[\"name/1392\",[464,72.167]],[\"comment/1392\",[]],[\"name/1393\",[465,72.167]],[\"comment/1393\",[]],[\"name/1394\",[466,72.167]],[\"comment/1394\",[]],[\"name/1395\",[467,72.167]],[\"comment/1395\",[]],[\"name/1396\",[468,72.167]],[\"comment/1396\",[]],[\"name/1397\",[469,72.167]],[\"comment/1397\",[]],[\"name/1398\",[470,72.167]],[\"comment/1398\",[]],[\"name/1399\",[471,72.167]],[\"comment/1399\",[]],[\"name/1400\",[472,72.167]],[\"comment/1400\",[]],[\"name/1401\",[473,72.167]],[\"comment/1401\",[]],[\"name/1402\",[474,72.167]],[\"comment/1402\",[]],[\"name/1403\",[475,72.167]],[\"comment/1403\",[]],[\"name/1404\",[476,72.167]],[\"comment/1404\",[]],[\"name/1405\",[477,72.167]],[\"comment/1405\",[]],[\"name/1406\",[478,72.167]],[\"comment/1406\",[]],[\"name/1407\",[479,72.167]],[\"comment/1407\",[]],[\"name/1408\",[480,72.167]],[\"comment/1408\",[]],[\"name/1409\",[481,72.167]],[\"comment/1409\",[]],[\"name/1410\",[482,72.167]],[\"comment/1410\",[]],[\"name/1411\",[483,72.167]],[\"comment/1411\",[]],[\"name/1412\",[484,72.167]],[\"comment/1412\",[]],[\"name/1413\",[485,67.059]],[\"comment/1413\",[]],[\"name/1414\",[486,67.059]],[\"comment/1414\",[]],[\"name/1415\",[487,67.059]],[\"comment/1415\",[]],[\"name/1416\",[488,67.059]],[\"comment/1416\",[]],[\"name/1417\",[489,67.059]],[\"comment/1417\",[]],[\"name/1418\",[490,67.059]],[\"comment/1418\",[]],[\"name/1419\",[491,72.167]],[\"comment/1419\",[]],[\"name/1420\",[485,67.059]],[\"comment/1420\",[]],[\"name/1421\",[486,67.059]],[\"comment/1421\",[]],[\"name/1422\",[487,67.059]],[\"comment/1422\",[]],[\"name/1423\",[488,67.059]],[\"comment/1423\",[]],[\"name/1424\",[489,67.059]],[\"comment/1424\",[]],[\"name/1425\",[490,67.059]],[\"comment/1425\",[]],[\"name/1426\",[492,72.167]],[\"comment/1426\",[]],[\"name/1427\",[493,44.235]],[\"comment/1427\",[]],[\"name/1428\",[64,38.965]],[\"comment/1428\",[]],[\"name/1429\",[494,72.167]],[\"comment/1429\",[]],[\"name/1430\",[70,63.694]],[\"comment/1430\",[]],[\"name/1431\",[71,67.059]],[\"comment/1431\",[]],[\"name/1432\",[72,67.059]],[\"comment/1432\",[]],[\"name/1433\",[495,72.167]],[\"comment/1433\",[]],[\"name/1434\",[76,67.059]],[\"comment/1434\",[]],[\"name/1435\",[75,67.059]],[\"comment/1435\",[]],[\"name/1436\",[496,72.167]],[\"comment/1436\",[]],[\"name/1437\",[62,37.202]],[\"comment/1437\",[]],[\"name/1438\",[497,44.235]],[\"comment/1438\",[]],[\"name/1439\",[68,41.722]],[\"comment/1439\",[]],[\"name/1440\",[69,43.835]],[\"comment/1440\",[]],[\"name/1441\",[142,43.835]],[\"comment/1441\",[]],[\"name/1442\",[498,44.235]],[\"comment/1442\",[]],[\"name/1443\",[499,44.235]],[\"comment/1443\",[]],[\"name/1444\",[103,43.08]],[\"comment/1444\",[]],[\"name/1445\",[500,44.235]],[\"comment/1445\",[]],[\"name/1446\",[183,43.835]],[\"comment/1446\",[]],[\"name/1447\",[501,44.235]],[\"comment/1447\",[]],[\"name/1448\",[502,72.167]],[\"comment/1448\",[]],[\"name/1449\",[493,44.235]],[\"comment/1449\",[]],[\"name/1450\",[96,53.709]],[\"comment/1450\",[]],[\"name/1451\",[100,54.821]],[\"comment/1451\",[]],[\"name/1452\",[62,37.202]],[\"comment/1452\",[]],[\"name/1453\",[497,44.235]],[\"comment/1453\",[]],[\"name/1454\",[68,41.722]],[\"comment/1454\",[]],[\"name/1455\",[69,43.835]],[\"comment/1455\",[]],[\"name/1456\",[64,38.965]],[\"comment/1456\",[]],[\"name/1457\",[142,43.835]],[\"comment/1457\",[]],[\"name/1458\",[498,44.235]],[\"comment/1458\",[]],[\"name/1459\",[499,44.235]],[\"comment/1459\",[]],[\"name/1460\",[103,43.08]],[\"comment/1460\",[]],[\"name/1461\",[500,44.235]],[\"comment/1461\",[]],[\"name/1462\",[183,43.835]],[\"comment/1462\",[]],[\"name/1463\",[501,44.235]],[\"comment/1463\",[]],[\"name/1464\",[503,72.167]],[\"comment/1464\",[]],[\"name/1465\",[493,44.235]],[\"comment/1465\",[]],[\"name/1466\",[504,67.059]],[\"comment/1466\",[]],[\"name/1467\",[62,37.202]],[\"comment/1467\",[]],[\"name/1468\",[497,44.235]],[\"comment/1468\",[]],[\"name/1469\",[68,41.722]],[\"comment/1469\",[]],[\"name/1470\",[69,43.835]],[\"comment/1470\",[]],[\"name/1471\",[64,38.965]],[\"comment/1471\",[]],[\"name/1472\",[142,43.835]],[\"comment/1472\",[]],[\"name/1473\",[498,44.235]],[\"comment/1473\",[]],[\"name/1474\",[499,44.235]],[\"comment/1474\",[]],[\"name/1475\",[103,43.08]],[\"comment/1475\",[]],[\"name/1476\",[500,44.235]],[\"comment/1476\",[]],[\"name/1477\",[183,43.835]],[\"comment/1477\",[]],[\"name/1478\",[501,44.235]],[\"comment/1478\",[]],[\"name/1479\",[505,72.167]],[\"comment/1479\",[]],[\"name/1480\",[493,44.235]],[\"comment/1480\",[]],[\"name/1481\",[504,67.059]],[\"comment/1481\",[]],[\"name/1482\",[117,52.708]],[\"comment/1482\",[]],[\"name/1483\",[506,67.059]],[\"comment/1483\",[]],[\"name/1484\",[62,37.202]],[\"comment/1484\",[]],[\"name/1485\",[497,44.235]],[\"comment/1485\",[]],[\"name/1486\",[68,41.722]],[\"comment/1486\",[]],[\"name/1487\",[69,43.835]],[\"comment/1487\",[]],[\"name/1488\",[64,38.965]],[\"comment/1488\",[]],[\"name/1489\",[142,43.835]],[\"comment/1489\",[]],[\"name/1490\",[498,44.235]],[\"comment/1490\",[]],[\"name/1491\",[499,44.235]],[\"comment/1491\",[]],[\"name/1492\",[103,43.08]],[\"comment/1492\",[]],[\"name/1493\",[500,44.235]],[\"comment/1493\",[]],[\"name/1494\",[183,43.835]],[\"comment/1494\",[]],[\"name/1495\",[501,44.235]],[\"comment/1495\",[]],[\"name/1496\",[507,72.167]],[\"comment/1496\",[]],[\"name/1497\",[493,44.235]],[\"comment/1497\",[]],[\"name/1498\",[96,53.709]],[\"comment/1498\",[]],[\"name/1499\",[98,63.694]],[\"comment/1499\",[]],[\"name/1500\",[100,54.821]],[\"comment/1500\",[]],[\"name/1501\",[101,52.708]],[\"comment/1501\",[]],[\"name/1502\",[102,63.694]],[\"comment/1502\",[]],[\"name/1503\",[62,37.202]],[\"comment/1503\",[]],[\"name/1504\",[497,44.235]],[\"comment/1504\",[]],[\"name/1505\",[68,41.722]],[\"comment/1505\",[]],[\"name/1506\",[69,43.835]],[\"comment/1506\",[]],[\"name/1507\",[64,38.965]],[\"comment/1507\",[]],[\"name/1508\",[142,43.835]],[\"comment/1508\",[]],[\"name/1509\",[498,44.235]],[\"comment/1509\",[]],[\"name/1510\",[499,44.235]],[\"comment/1510\",[]],[\"name/1511\",[103,43.08]],[\"comment/1511\",[]],[\"name/1512\",[500,44.235]],[\"comment/1512\",[]],[\"name/1513\",[183,43.835]],[\"comment/1513\",[]],[\"name/1514\",[501,44.235]],[\"comment/1514\",[]],[\"name/1515\",[104,67.059]],[\"comment/1515\",[]],[\"name/1516\",[493,44.235]],[\"comment/1516\",[]],[\"name/1517\",[105,67.059]],[\"comment/1517\",[]],[\"name/1518\",[508,72.167]],[\"comment/1518\",[]],[\"name/1519\",[62,37.202]],[\"comment/1519\",[]],[\"name/1520\",[497,44.235]],[\"comment/1520\",[]],[\"name/1521\",[68,41.722]],[\"comment/1521\",[]],[\"name/1522\",[69,43.835]],[\"comment/1522\",[]],[\"name/1523\",[64,38.965]],[\"comment/1523\",[]],[\"name/1524\",[142,43.835]],[\"comment/1524\",[]],[\"name/1525\",[498,44.235]],[\"comment/1525\",[]],[\"name/1526\",[499,44.235]],[\"comment/1526\",[]],[\"name/1527\",[103,43.08]],[\"comment/1527\",[]],[\"name/1528\",[500,44.235]],[\"comment/1528\",[]],[\"name/1529\",[183,43.835]],[\"comment/1529\",[]],[\"name/1530\",[501,44.235]],[\"comment/1530\",[]],[\"name/1531\",[509,72.167]],[\"comment/1531\",[]],[\"name/1532\",[493,44.235]],[\"comment/1532\",[]],[\"name/1533\",[111,59.174]],[\"comment/1533\",[]],[\"name/1534\",[510,61.181]],[\"comment/1534\",[]],[\"name/1535\",[62,37.202]],[\"comment/1535\",[]],[\"name/1536\",[497,44.235]],[\"comment/1536\",[]],[\"name/1537\",[68,41.722]],[\"comment/1537\",[]],[\"name/1538\",[69,43.835]],[\"comment/1538\",[]],[\"name/1539\",[64,38.965]],[\"comment/1539\",[]],[\"name/1540\",[142,43.835]],[\"comment/1540\",[]],[\"name/1541\",[498,44.235]],[\"comment/1541\",[]],[\"name/1542\",[499,44.235]],[\"comment/1542\",[]],[\"name/1543\",[103,43.08]],[\"comment/1543\",[]],[\"name/1544\",[500,44.235]],[\"comment/1544\",[]],[\"name/1545\",[183,43.835]],[\"comment/1545\",[]],[\"name/1546\",[501,44.235]],[\"comment/1546\",[]],[\"name/1547\",[511,72.167]],[\"comment/1547\",[]],[\"name/1548\",[493,44.235]],[\"comment/1548\",[]],[\"name/1549\",[117,52.708]],[\"comment/1549\",[]],[\"name/1550\",[96,53.709]],[\"comment/1550\",[]],[\"name/1551\",[119,61.181]],[\"comment/1551\",[]],[\"name/1552\",[120,67.059]],[\"comment/1552\",[]],[\"name/1553\",[118,63.694]],[\"comment/1553\",[]],[\"name/1554\",[100,54.821]],[\"comment/1554\",[]],[\"name/1555\",[62,37.202]],[\"comment/1555\",[]],[\"name/1556\",[497,44.235]],[\"comment/1556\",[]],[\"name/1557\",[68,41.722]],[\"comment/1557\",[]],[\"name/1558\",[69,43.835]],[\"comment/1558\",[]],[\"name/1559\",[64,38.965]],[\"comment/1559\",[]],[\"name/1560\",[142,43.835]],[\"comment/1560\",[]],[\"name/1561\",[498,44.235]],[\"comment/1561\",[]],[\"name/1562\",[499,44.235]],[\"comment/1562\",[]],[\"name/1563\",[103,43.08]],[\"comment/1563\",[]],[\"name/1564\",[500,44.235]],[\"comment/1564\",[]],[\"name/1565\",[183,43.835]],[\"comment/1565\",[]],[\"name/1566\",[501,44.235]],[\"comment/1566\",[]],[\"name/1567\",[512,72.167]],[\"comment/1567\",[]],[\"name/1568\",[493,44.235]],[\"comment/1568\",[]],[\"name/1569\",[111,59.174]],[\"comment/1569\",[]],[\"name/1570\",[510,61.181]],[\"comment/1570\",[]],[\"name/1571\",[118,63.694]],[\"comment/1571\",[]],[\"name/1572\",[513,72.167]],[\"comment/1572\",[]],[\"name/1573\",[62,37.202]],[\"comment/1573\",[]],[\"name/1574\",[497,44.235]],[\"comment/1574\",[]],[\"name/1575\",[68,41.722]],[\"comment/1575\",[]],[\"name/1576\",[69,43.835]],[\"comment/1576\",[]],[\"name/1577\",[64,38.965]],[\"comment/1577\",[]],[\"name/1578\",[142,43.835]],[\"comment/1578\",[]],[\"name/1579\",[498,44.235]],[\"comment/1579\",[]],[\"name/1580\",[499,44.235]],[\"comment/1580\",[]],[\"name/1581\",[103,43.08]],[\"comment/1581\",[]],[\"name/1582\",[500,44.235]],[\"comment/1582\",[]],[\"name/1583\",[183,43.835]],[\"comment/1583\",[]],[\"name/1584\",[501,44.235]],[\"comment/1584\",[]],[\"name/1585\",[514,72.167]],[\"comment/1585\",[]],[\"name/1586\",[493,44.235]],[\"comment/1586\",[]],[\"name/1587\",[515,72.167]],[\"comment/1587\",[]],[\"name/1588\",[516,72.167]],[\"comment/1588\",[]],[\"name/1589\",[517,72.167]],[\"comment/1589\",[]],[\"name/1590\",[62,37.202]],[\"comment/1590\",[]],[\"name/1591\",[497,44.235]],[\"comment/1591\",[]],[\"name/1592\",[68,41.722]],[\"comment/1592\",[]],[\"name/1593\",[69,43.835]],[\"comment/1593\",[]],[\"name/1594\",[64,38.965]],[\"comment/1594\",[]],[\"name/1595\",[142,43.835]],[\"comment/1595\",[]],[\"name/1596\",[498,44.235]],[\"comment/1596\",[]],[\"name/1597\",[499,44.235]],[\"comment/1597\",[]],[\"name/1598\",[103,43.08]],[\"comment/1598\",[]],[\"name/1599\",[500,44.235]],[\"comment/1599\",[]],[\"name/1600\",[183,43.835]],[\"comment/1600\",[]],[\"name/1601\",[501,44.235]],[\"comment/1601\",[]],[\"name/1602\",[518,72.167]],[\"comment/1602\",[]],[\"name/1603\",[493,44.235]],[\"comment/1603\",[]],[\"name/1604\",[62,37.202]],[\"comment/1604\",[]],[\"name/1605\",[519,63.694]],[\"comment/1605\",[]],[\"name/1606\",[111,59.174]],[\"comment/1606\",[]],[\"name/1607\",[497,44.235]],[\"comment/1607\",[]],[\"name/1608\",[68,41.722]],[\"comment/1608\",[]],[\"name/1609\",[69,43.835]],[\"comment/1609\",[]],[\"name/1610\",[64,38.965]],[\"comment/1610\",[]],[\"name/1611\",[142,43.835]],[\"comment/1611\",[]],[\"name/1612\",[498,44.235]],[\"comment/1612\",[]],[\"name/1613\",[499,44.235]],[\"comment/1613\",[]],[\"name/1614\",[103,43.08]],[\"comment/1614\",[]],[\"name/1615\",[500,44.235]],[\"comment/1615\",[]],[\"name/1616\",[183,43.835]],[\"comment/1616\",[]],[\"name/1617\",[501,44.235]],[\"comment/1617\",[]],[\"name/1618\",[520,72.167]],[\"comment/1618\",[]],[\"name/1619\",[493,44.235]],[\"comment/1619\",[]],[\"name/1620\",[521,72.167]],[\"comment/1620\",[]],[\"name/1621\",[62,37.202]],[\"comment/1621\",[]],[\"name/1622\",[497,44.235]],[\"comment/1622\",[]],[\"name/1623\",[68,41.722]],[\"comment/1623\",[]],[\"name/1624\",[69,43.835]],[\"comment/1624\",[]],[\"name/1625\",[64,38.965]],[\"comment/1625\",[]],[\"name/1626\",[142,43.835]],[\"comment/1626\",[]],[\"name/1627\",[498,44.235]],[\"comment/1627\",[]],[\"name/1628\",[499,44.235]],[\"comment/1628\",[]],[\"name/1629\",[103,43.08]],[\"comment/1629\",[]],[\"name/1630\",[500,44.235]],[\"comment/1630\",[]],[\"name/1631\",[183,43.835]],[\"comment/1631\",[]],[\"name/1632\",[501,44.235]],[\"comment/1632\",[]],[\"name/1633\",[522,72.167]],[\"comment/1633\",[]],[\"name/1634\",[493,44.235]],[\"comment/1634\",[]],[\"name/1635\",[519,63.694]],[\"comment/1635\",[]],[\"name/1636\",[117,52.708]],[\"comment/1636\",[]],[\"name/1637\",[111,59.174]],[\"comment/1637\",[]],[\"name/1638\",[101,52.708]],[\"comment/1638\",[]],[\"name/1639\",[96,53.709]],[\"comment/1639\",[]],[\"name/1640\",[64,38.965]],[\"comment/1640\",[]],[\"name/1641\",[62,37.202]],[\"comment/1641\",[]],[\"name/1642\",[497,44.235]],[\"comment/1642\",[]],[\"name/1643\",[68,41.722]],[\"comment/1643\",[]],[\"name/1644\",[69,43.835]],[\"comment/1644\",[]],[\"name/1645\",[142,43.835]],[\"comment/1645\",[]],[\"name/1646\",[498,44.235]],[\"comment/1646\",[]],[\"name/1647\",[499,44.235]],[\"comment/1647\",[]],[\"name/1648\",[103,43.08]],[\"comment/1648\",[]],[\"name/1649\",[500,44.235]],[\"comment/1649\",[]],[\"name/1650\",[183,43.835]],[\"comment/1650\",[]],[\"name/1651\",[501,44.235]],[\"comment/1651\",[]],[\"name/1652\",[523,72.167]],[\"comment/1652\",[]],[\"name/1653\",[524,67.059]],[\"comment/1653\",[]],[\"name/1654\",[525,72.167]],[\"comment/1654\",[]],[\"name/1655\",[524,67.059]],[\"comment/1655\",[]],[\"name/1656\",[526,72.167]],[\"comment/1656\",[]],[\"name/1657\",[493,44.235]],[\"comment/1657\",[]],[\"name/1658\",[527,72.167]],[\"comment/1658\",[]],[\"name/1659\",[528,67.059]],[\"comment/1659\",[]],[\"name/1660\",[529,67.059]],[\"comment/1660\",[]],[\"name/1661\",[530,72.167]],[\"comment/1661\",[]],[\"name/1662\",[64,38.965]],[\"comment/1662\",[]],[\"name/1663\",[62,37.202]],[\"comment/1663\",[]],[\"name/1664\",[497,44.235]],[\"comment/1664\",[]],[\"name/1665\",[68,41.722]],[\"comment/1665\",[]],[\"name/1666\",[69,43.835]],[\"comment/1666\",[]],[\"name/1667\",[142,43.835]],[\"comment/1667\",[]],[\"name/1668\",[498,44.235]],[\"comment/1668\",[]],[\"name/1669\",[499,44.235]],[\"comment/1669\",[]],[\"name/1670\",[103,43.08]],[\"comment/1670\",[]],[\"name/1671\",[500,44.235]],[\"comment/1671\",[]],[\"name/1672\",[183,43.835]],[\"comment/1672\",[]],[\"name/1673\",[501,44.235]],[\"comment/1673\",[]],[\"name/1674\",[531,72.167]],[\"comment/1674\",[]],[\"name/1675\",[532,67.059]],[\"comment/1675\",[]],[\"name/1676\",[533,67.059]],[\"comment/1676\",[]],[\"name/1677\",[534,67.059]],[\"comment/1677\",[]],[\"name/1678\",[535,67.059]],[\"comment/1678\",[]],[\"name/1679\",[536,72.167]],[\"comment/1679\",[]],[\"name/1680\",[532,67.059]],[\"comment/1680\",[]],[\"name/1681\",[533,67.059]],[\"comment/1681\",[]],[\"name/1682\",[534,67.059]],[\"comment/1682\",[]],[\"name/1683\",[535,67.059]],[\"comment/1683\",[]],[\"name/1684\",[537,72.167]],[\"comment/1684\",[]],[\"name/1685\",[493,44.235]],[\"comment/1685\",[]],[\"name/1686\",[510,61.181]],[\"comment/1686\",[]],[\"name/1687\",[62,37.202]],[\"comment/1687\",[]],[\"name/1688\",[497,44.235]],[\"comment/1688\",[]],[\"name/1689\",[68,41.722]],[\"comment/1689\",[]],[\"name/1690\",[69,43.835]],[\"comment/1690\",[]],[\"name/1691\",[64,38.965]],[\"comment/1691\",[]],[\"name/1692\",[142,43.835]],[\"comment/1692\",[]],[\"name/1693\",[498,44.235]],[\"comment/1693\",[]],[\"name/1694\",[499,44.235]],[\"comment/1694\",[]],[\"name/1695\",[103,43.08]],[\"comment/1695\",[]],[\"name/1696\",[500,44.235]],[\"comment/1696\",[]],[\"name/1697\",[183,43.835]],[\"comment/1697\",[]],[\"name/1698\",[501,44.235]],[\"comment/1698\",[]],[\"name/1699\",[538,72.167]],[\"comment/1699\",[]],[\"name/1700\",[539,67.059]],[\"comment/1700\",[]],[\"name/1701\",[540,67.059]],[\"comment/1701\",[]],[\"name/1702\",[541,67.059]],[\"comment/1702\",[]],[\"name/1703\",[542,67.059]],[\"comment/1703\",[]],[\"name/1704\",[543,72.167]],[\"comment/1704\",[]],[\"name/1705\",[539,67.059]],[\"comment/1705\",[]],[\"name/1706\",[540,67.059]],[\"comment/1706\",[]],[\"name/1707\",[541,67.059]],[\"comment/1707\",[]],[\"name/1708\",[542,67.059]],[\"comment/1708\",[]],[\"name/1709\",[544,72.167]],[\"comment/1709\",[]],[\"name/1710\",[493,44.235]],[\"comment/1710\",[]],[\"name/1711\",[64,38.965]],[\"comment/1711\",[]],[\"name/1712\",[101,52.708]],[\"comment/1712\",[]],[\"name/1713\",[510,61.181]],[\"comment/1713\",[]],[\"name/1714\",[150,63.694]],[\"comment/1714\",[]],[\"name/1715\",[149,63.694]],[\"comment/1715\",[]],[\"name/1716\",[62,37.202]],[\"comment/1716\",[]],[\"name/1717\",[497,44.235]],[\"comment/1717\",[]],[\"name/1718\",[68,41.722]],[\"comment/1718\",[]],[\"name/1719\",[69,43.835]],[\"comment/1719\",[]],[\"name/1720\",[142,43.835]],[\"comment/1720\",[]],[\"name/1721\",[498,44.235]],[\"comment/1721\",[]],[\"name/1722\",[499,44.235]],[\"comment/1722\",[]],[\"name/1723\",[103,43.08]],[\"comment/1723\",[]],[\"name/1724\",[500,44.235]],[\"comment/1724\",[]],[\"name/1725\",[183,43.835]],[\"comment/1725\",[]],[\"name/1726\",[501,44.235]],[\"comment/1726\",[]],[\"name/1727\",[545,72.167]],[\"comment/1727\",[]],[\"name/1728\",[546,67.059]],[\"comment/1728\",[]],[\"name/1729\",[547,67.059]],[\"comment/1729\",[]],[\"name/1730\",[548,67.059]],[\"comment/1730\",[]],[\"name/1731\",[549,72.167]],[\"comment/1731\",[]],[\"name/1732\",[546,67.059]],[\"comment/1732\",[]],[\"name/1733\",[547,67.059]],[\"comment/1733\",[]],[\"name/1734\",[548,67.059]],[\"comment/1734\",[]],[\"name/1735\",[550,72.167]],[\"comment/1735\",[]],[\"name/1736\",[493,44.235]],[\"comment/1736\",[]],[\"name/1737\",[117,52.708]],[\"comment/1737\",[]],[\"name/1738\",[96,53.709]],[\"comment/1738\",[]],[\"name/1739\",[100,54.821]],[\"comment/1739\",[]],[\"name/1740\",[102,63.694]],[\"comment/1740\",[]],[\"name/1741\",[316,67.059]],[\"comment/1741\",[]],[\"name/1742\",[98,63.694]],[\"comment/1742\",[]],[\"name/1743\",[506,67.059]],[\"comment/1743\",[]],[\"name/1744\",[64,38.965]],[\"comment/1744\",[]],[\"name/1745\",[62,37.202]],[\"comment/1745\",[]],[\"name/1746\",[497,44.235]],[\"comment/1746\",[]],[\"name/1747\",[68,41.722]],[\"comment/1747\",[]],[\"name/1748\",[69,43.835]],[\"comment/1748\",[]],[\"name/1749\",[142,43.835]],[\"comment/1749\",[]],[\"name/1750\",[498,44.235]],[\"comment/1750\",[]],[\"name/1751\",[499,44.235]],[\"comment/1751\",[]],[\"name/1752\",[103,43.08]],[\"comment/1752\",[]],[\"name/1753\",[500,44.235]],[\"comment/1753\",[]],[\"name/1754\",[183,43.835]],[\"comment/1754\",[]],[\"name/1755\",[501,44.235]],[\"comment/1755\",[]],[\"name/1756\",[551,72.167]],[\"comment/1756\",[]],[\"name/1757\",[552,67.059]],[\"comment/1757\",[]],[\"name/1758\",[553,67.059]],[\"comment/1758\",[]],[\"name/1759\",[554,72.167]],[\"comment/1759\",[]],[\"name/1760\",[552,67.059]],[\"comment/1760\",[]],[\"name/1761\",[553,67.059]],[\"comment/1761\",[]],[\"name/1762\",[555,72.167]],[\"comment/1762\",[]],[\"name/1763\",[493,44.235]],[\"comment/1763\",[]],[\"name/1764\",[64,38.965]],[\"comment/1764\",[]],[\"name/1765\",[556,67.059]],[\"comment/1765\",[]],[\"name/1766\",[63,61.181]],[\"comment/1766\",[]],[\"name/1767\",[117,52.708]],[\"comment/1767\",[]],[\"name/1768\",[329,63.694]],[\"comment/1768\",[]],[\"name/1769\",[46,61.181]],[\"comment/1769\",[]],[\"name/1770\",[62,37.202]],[\"comment/1770\",[]],[\"name/1771\",[497,44.235]],[\"comment/1771\",[]],[\"name/1772\",[68,41.722]],[\"comment/1772\",[]],[\"name/1773\",[69,43.835]],[\"comment/1773\",[]],[\"name/1774\",[142,43.835]],[\"comment/1774\",[]],[\"name/1775\",[498,44.235]],[\"comment/1775\",[]],[\"name/1776\",[499,44.235]],[\"comment/1776\",[]],[\"name/1777\",[103,43.08]],[\"comment/1777\",[]],[\"name/1778\",[500,44.235]],[\"comment/1778\",[]],[\"name/1779\",[183,43.835]],[\"comment/1779\",[]],[\"name/1780\",[501,44.235]],[\"comment/1780\",[]],[\"name/1781\",[557,72.167]],[\"comment/1781\",[]],[\"name/1782\",[493,44.235]],[\"comment/1782\",[]],[\"name/1783\",[117,52.708]],[\"comment/1783\",[]],[\"name/1784\",[96,53.709]],[\"comment/1784\",[]],[\"name/1785\",[157,67.059]],[\"comment/1785\",[]],[\"name/1786\",[46,61.181]],[\"comment/1786\",[]],[\"name/1787\",[119,61.181]],[\"comment/1787\",[]],[\"name/1788\",[100,54.821]],[\"comment/1788\",[]],[\"name/1789\",[62,37.202]],[\"comment/1789\",[]],[\"name/1790\",[497,44.235]],[\"comment/1790\",[]],[\"name/1791\",[68,41.722]],[\"comment/1791\",[]],[\"name/1792\",[69,43.835]],[\"comment/1792\",[]],[\"name/1793\",[64,38.965]],[\"comment/1793\",[]],[\"name/1794\",[142,43.835]],[\"comment/1794\",[]],[\"name/1795\",[498,44.235]],[\"comment/1795\",[]],[\"name/1796\",[499,44.235]],[\"comment/1796\",[]],[\"name/1797\",[103,43.08]],[\"comment/1797\",[]],[\"name/1798\",[500,44.235]],[\"comment/1798\",[]],[\"name/1799\",[183,43.835]],[\"comment/1799\",[]],[\"name/1800\",[501,44.235]],[\"comment/1800\",[]],[\"name/1801\",[558,72.167]],[\"comment/1801\",[]],[\"name/1802\",[493,44.235]],[\"comment/1802\",[]],[\"name/1803\",[556,67.059]],[\"comment/1803\",[]],[\"name/1804\",[117,52.708]],[\"comment/1804\",[]],[\"name/1805\",[101,52.708]],[\"comment/1805\",[]],[\"name/1806\",[62,37.202]],[\"comment/1806\",[]],[\"name/1807\",[497,44.235]],[\"comment/1807\",[]],[\"name/1808\",[68,41.722]],[\"comment/1808\",[]],[\"name/1809\",[69,43.835]],[\"comment/1809\",[]],[\"name/1810\",[64,38.965]],[\"comment/1810\",[]],[\"name/1811\",[142,43.835]],[\"comment/1811\",[]],[\"name/1812\",[498,44.235]],[\"comment/1812\",[]],[\"name/1813\",[499,44.235]],[\"comment/1813\",[]],[\"name/1814\",[103,43.08]],[\"comment/1814\",[]],[\"name/1815\",[500,44.235]],[\"comment/1815\",[]],[\"name/1816\",[183,43.835]],[\"comment/1816\",[]],[\"name/1817\",[501,44.235]],[\"comment/1817\",[]],[\"name/1818\",[559,72.167]],[\"comment/1818\",[]],[\"name/1819\",[493,44.235]],[\"comment/1819\",[]],[\"name/1820\",[73,67.059]],[\"comment/1820\",[]],[\"name/1821\",[62,37.202]],[\"comment/1821\",[]],[\"name/1822\",[497,44.235]],[\"comment/1822\",[]],[\"name/1823\",[68,41.722]],[\"comment/1823\",[]],[\"name/1824\",[69,43.835]],[\"comment/1824\",[]],[\"name/1825\",[64,38.965]],[\"comment/1825\",[]],[\"name/1826\",[142,43.835]],[\"comment/1826\",[]],[\"name/1827\",[498,44.235]],[\"comment/1827\",[]],[\"name/1828\",[499,44.235]],[\"comment/1828\",[]],[\"name/1829\",[103,43.08]],[\"comment/1829\",[]],[\"name/1830\",[500,44.235]],[\"comment/1830\",[]],[\"name/1831\",[183,43.835]],[\"comment/1831\",[]],[\"name/1832\",[501,44.235]],[\"comment/1832\",[]],[\"name/1833\",[560,72.167]],[\"comment/1833\",[]],[\"name/1834\",[493,44.235]],[\"comment/1834\",[]],[\"name/1835\",[179,67.059]],[\"comment/1835\",[]],[\"name/1836\",[177,67.059]],[\"comment/1836\",[]],[\"name/1837\",[62,37.202]],[\"comment/1837\",[]],[\"name/1838\",[497,44.235]],[\"comment/1838\",[]],[\"name/1839\",[68,41.722]],[\"comment/1839\",[]],[\"name/1840\",[69,43.835]],[\"comment/1840\",[]],[\"name/1841\",[64,38.965]],[\"comment/1841\",[]],[\"name/1842\",[142,43.835]],[\"comment/1842\",[]],[\"name/1843\",[498,44.235]],[\"comment/1843\",[]],[\"name/1844\",[499,44.235]],[\"comment/1844\",[]],[\"name/1845\",[103,43.08]],[\"comment/1845\",[]],[\"name/1846\",[500,44.235]],[\"comment/1846\",[]],[\"name/1847\",[183,43.835]],[\"comment/1847\",[]],[\"name/1848\",[501,44.235]],[\"comment/1848\",[]],[\"name/1849\",[561,72.167]],[\"comment/1849\",[]],[\"name/1850\",[493,44.235]],[\"comment/1850\",[]],[\"name/1851\",[74,67.059]],[\"comment/1851\",[]],[\"name/1852\",[62,37.202]],[\"comment/1852\",[]],[\"name/1853\",[497,44.235]],[\"comment/1853\",[]],[\"name/1854\",[68,41.722]],[\"comment/1854\",[]],[\"name/1855\",[69,43.835]],[\"comment/1855\",[]],[\"name/1856\",[64,38.965]],[\"comment/1856\",[]],[\"name/1857\",[142,43.835]],[\"comment/1857\",[]],[\"name/1858\",[498,44.235]],[\"comment/1858\",[]],[\"name/1859\",[499,44.235]],[\"comment/1859\",[]],[\"name/1860\",[103,43.08]],[\"comment/1860\",[]],[\"name/1861\",[500,44.235]],[\"comment/1861\",[]],[\"name/1862\",[183,43.835]],[\"comment/1862\",[]],[\"name/1863\",[501,44.235]],[\"comment/1863\",[]],[\"name/1864\",[562,72.167]],[\"comment/1864\",[]],[\"name/1865\",[563,67.059]],[\"comment/1865\",[]],[\"name/1866\",[564,67.059]],[\"comment/1866\",[]],[\"name/1867\",[565,67.059]],[\"comment/1867\",[]],[\"name/1868\",[566,67.059]],[\"comment/1868\",[]],[\"name/1869\",[567,67.059]],[\"comment/1869\",[]],[\"name/1870\",[568,72.167]],[\"comment/1870\",[]],[\"name/1871\",[563,67.059]],[\"comment/1871\",[]],[\"name/1872\",[564,67.059]],[\"comment/1872\",[]],[\"name/1873\",[565,67.059]],[\"comment/1873\",[]],[\"name/1874\",[566,67.059]],[\"comment/1874\",[]],[\"name/1875\",[567,67.059]],[\"comment/1875\",[]],[\"name/1876\",[569,72.167]],[\"comment/1876\",[]],[\"name/1877\",[493,44.235]],[\"comment/1877\",[]],[\"name/1878\",[570,72.167]],[\"comment/1878\",[]],[\"name/1879\",[571,72.167]],[\"comment/1879\",[]],[\"name/1880\",[572,72.167]],[\"comment/1880\",[]],[\"name/1881\",[64,38.965]],[\"comment/1881\",[]],[\"name/1882\",[62,37.202]],[\"comment/1882\",[]],[\"name/1883\",[497,44.235]],[\"comment/1883\",[]],[\"name/1884\",[68,41.722]],[\"comment/1884\",[]],[\"name/1885\",[69,43.835]],[\"comment/1885\",[]],[\"name/1886\",[142,43.835]],[\"comment/1886\",[]],[\"name/1887\",[498,44.235]],[\"comment/1887\",[]],[\"name/1888\",[499,44.235]],[\"comment/1888\",[]],[\"name/1889\",[103,43.08]],[\"comment/1889\",[]],[\"name/1890\",[500,44.235]],[\"comment/1890\",[]],[\"name/1891\",[183,43.835]],[\"comment/1891\",[]],[\"name/1892\",[501,44.235]],[\"comment/1892\",[]],[\"name/1893\",[573,72.167]],[\"comment/1893\",[]],[\"name/1894\",[574,72.167]],[\"comment/1894\",[]],[\"name/1895\",[575,72.167]],[\"comment/1895\",[]],[\"name/1896\",[576,72.167]],[\"comment/1896\",[]],[\"name/1897\",[577,72.167]],[\"comment/1897\",[]],[\"name/1898\",[578,72.167]],[\"comment/1898\",[]],[\"name/1899\",[579,72.167]],[\"comment/1899\",[]],[\"name/1900\",[580,72.167]],[\"comment/1900\",[]],[\"name/1901\",[581,72.167]],[\"comment/1901\",[]],[\"name/1902\",[582,72.167]],[\"comment/1902\",[]],[\"name/1903\",[583,72.167]],[\"comment/1903\",[]],[\"name/1904\",[584,72.167]],[\"comment/1904\",[]],[\"name/1905\",[585,72.167]],[\"comment/1905\",[]],[\"name/1906\",[586,72.167]],[\"comment/1906\",[]],[\"name/1907\",[587,72.167]],[\"comment/1907\",[]],[\"name/1908\",[588,72.167]],[\"comment/1908\",[]],[\"name/1909\",[143,67.059]],[\"comment/1909\",[]],[\"name/1910\",[16,30.736]],[\"comment/1910\",[]],[\"name/1911\",[589,72.167]],[\"comment/1911\",[]],[\"name/1912\",[16,30.736]],[\"comment/1912\",[]],[\"name/1913\",[590,72.167]],[\"comment/1913\",[]],[\"name/1914\",[16,30.736]],[\"comment/1914\",[]],[\"name/1915\",[591,72.167]],[\"comment/1915\",[]],[\"name/1916\",[16,30.736]],[\"comment/1916\",[]],[\"name/1917\",[592,72.167]],[\"comment/1917\",[]],[\"name/1918\",[16,30.736]],[\"comment/1918\",[]],[\"name/1919\",[593,72.167]],[\"comment/1919\",[]],[\"name/1920\",[16,30.736]],[\"comment/1920\",[]],[\"name/1921\",[594,72.167]],[\"comment/1921\",[]],[\"name/1922\",[16,30.736]],[\"comment/1922\",[]],[\"name/1923\",[595,72.167]],[\"comment/1923\",[]],[\"name/1924\",[16,30.736]],[\"comment/1924\",[]],[\"name/1925\",[596,72.167]],[\"comment/1925\",[]],[\"name/1926\",[16,30.736]],[\"comment/1926\",[]],[\"name/1927\",[597,72.167]],[\"comment/1927\",[]],[\"name/1928\",[16,30.736]],[\"comment/1928\",[]],[\"name/1929\",[598,72.167]],[\"comment/1929\",[]],[\"name/1930\",[16,30.736]],[\"comment/1930\",[]],[\"name/1931\",[599,72.167]],[\"comment/1931\",[]],[\"name/1932\",[16,30.736]],[\"comment/1932\",[]],[\"name/1933\",[600,72.167]],[\"comment/1933\",[]],[\"name/1934\",[16,30.736]],[\"comment/1934\",[]],[\"name/1935\",[601,72.167]],[\"comment/1935\",[]],[\"name/1936\",[602,72.167]],[\"comment/1936\",[]],[\"name/1937\",[603,72.167]],[\"comment/1937\",[]],[\"name/1938\",[604,72.167]],[\"comment/1938\",[]],[\"name/1939\",[605,72.167]],[\"comment/1939\",[]],[\"name/1940\",[606,72.167]],[\"comment/1940\",[]],[\"name/1941\",[607,72.167]],[\"comment/1941\",[]],[\"name/1942\",[608,72.167]],[\"comment/1942\",[]],[\"name/1943\",[609,72.167]],[\"comment/1943\",[]],[\"name/1944\",[610,72.167]],[\"comment/1944\",[]],[\"name/1945\",[611,72.167]],[\"comment/1945\",[]],[\"name/1946\",[612,72.167]],[\"comment/1946\",[]],[\"name/1947\",[613,72.167]],[\"comment/1947\",[]],[\"name/1948\",[16,30.736]],[\"comment/1948\",[]],[\"name/1949\",[519,63.694]],[\"comment/1949\",[]],[\"name/1950\",[64,38.965]],[\"comment/1950\",[]],[\"name/1951\",[529,67.059]],[\"comment/1951\",[]],[\"name/1952\",[528,67.059]],[\"comment/1952\",[]],[\"name/1953\",[614,72.167]],[\"comment/1953\",[]],[\"name/1954\",[68,41.722]],[\"comment/1954\",[]],[\"name/1955\",[615,72.167]],[\"comment/1955\",[]],[\"name/1956\",[1,48.813]],[\"comment/1956\",[]],[\"name/1957\",[616,50.964]],[\"comment/1957\",[]],[\"name/1958\",[617,50.964]],[\"comment/1958\",[]],[\"name/1959\",[351,50.195]],[\"comment/1959\",[]],[\"name/1960\",[618,50.964]],[\"comment/1960\",[]],[\"name/1961\",[619,50.964]],[\"comment/1961\",[]],[\"name/1962\",[620,72.167]],[\"comment/1962\",[]],[\"name/1963\",[1,48.813]],[\"comment/1963\",[]],[\"name/1964\",[616,50.964]],[\"comment/1964\",[]],[\"name/1965\",[617,50.964]],[\"comment/1965\",[]],[\"name/1966\",[351,50.195]],[\"comment/1966\",[]],[\"name/1967\",[618,50.964]],[\"comment/1967\",[]],[\"name/1968\",[619,50.964]],[\"comment/1968\",[]],[\"name/1969\",[621,72.167]],[\"comment/1969\",[]],[\"name/1970\",[1,48.813]],[\"comment/1970\",[]],[\"name/1971\",[616,50.964]],[\"comment/1971\",[]],[\"name/1972\",[617,50.964]],[\"comment/1972\",[]],[\"name/1973\",[351,50.195]],[\"comment/1973\",[]],[\"name/1974\",[618,50.964]],[\"comment/1974\",[]],[\"name/1975\",[619,50.964]],[\"comment/1975\",[]],[\"name/1976\",[622,72.167]],[\"comment/1976\",[]],[\"name/1977\",[1,48.813]],[\"comment/1977\",[]],[\"name/1978\",[616,50.964]],[\"comment/1978\",[]],[\"name/1979\",[617,50.964]],[\"comment/1979\",[]],[\"name/1980\",[351,50.195]],[\"comment/1980\",[]],[\"name/1981\",[618,50.964]],[\"comment/1981\",[]],[\"name/1982\",[619,50.964]],[\"comment/1982\",[]],[\"name/1983\",[623,72.167]],[\"comment/1983\",[]],[\"name/1984\",[1,48.813]],[\"comment/1984\",[]],[\"name/1985\",[616,50.964]],[\"comment/1985\",[]],[\"name/1986\",[617,50.964]],[\"comment/1986\",[]],[\"name/1987\",[351,50.195]],[\"comment/1987\",[]],[\"name/1988\",[618,50.964]],[\"comment/1988\",[]],[\"name/1989\",[619,50.964]],[\"comment/1989\",[]],[\"name/1990\",[624,72.167]],[\"comment/1990\",[]],[\"name/1991\",[1,48.813]],[\"comment/1991\",[]],[\"name/1992\",[616,50.964]],[\"comment/1992\",[]],[\"name/1993\",[617,50.964]],[\"comment/1993\",[]],[\"name/1994\",[351,50.195]],[\"comment/1994\",[]],[\"name/1995\",[618,50.964]],[\"comment/1995\",[]],[\"name/1996\",[619,50.964]],[\"comment/1996\",[]],[\"name/1997\",[625,72.167]],[\"comment/1997\",[]],[\"name/1998\",[1,48.813]],[\"comment/1998\",[]],[\"name/1999\",[616,50.964]],[\"comment/1999\",[]],[\"name/2000\",[617,50.964]],[\"comment/2000\",[]],[\"name/2001\",[351,50.195]],[\"comment/2001\",[]],[\"name/2002\",[618,50.964]],[\"comment/2002\",[]],[\"name/2003\",[619,50.964]],[\"comment/2003\",[]],[\"name/2004\",[626,72.167]],[\"comment/2004\",[]],[\"name/2005\",[1,48.813]],[\"comment/2005\",[]],[\"name/2006\",[616,50.964]],[\"comment/2006\",[]],[\"name/2007\",[617,50.964]],[\"comment/2007\",[]],[\"name/2008\",[351,50.195]],[\"comment/2008\",[]],[\"name/2009\",[618,50.964]],[\"comment/2009\",[]],[\"name/2010\",[619,50.964]],[\"comment/2010\",[]],[\"name/2011\",[627,72.167]],[\"comment/2011\",[]],[\"name/2012\",[1,48.813]],[\"comment/2012\",[]],[\"name/2013\",[616,50.964]],[\"comment/2013\",[]],[\"name/2014\",[617,50.964]],[\"comment/2014\",[]],[\"name/2015\",[351,50.195]],[\"comment/2015\",[]],[\"name/2016\",[618,50.964]],[\"comment/2016\",[]],[\"name/2017\",[619,50.964]],[\"comment/2017\",[]],[\"name/2018\",[628,72.167]],[\"comment/2018\",[]],[\"name/2019\",[1,48.813]],[\"comment/2019\",[]],[\"name/2020\",[616,50.964]],[\"comment/2020\",[]],[\"name/2021\",[617,50.964]],[\"comment/2021\",[]],[\"name/2022\",[351,50.195]],[\"comment/2022\",[]],[\"name/2023\",[618,50.964]],[\"comment/2023\",[]],[\"name/2024\",[619,50.964]],[\"comment/2024\",[]],[\"name/2025\",[629,72.167]],[\"comment/2025\",[]],[\"name/2026\",[1,48.813]],[\"comment/2026\",[]],[\"name/2027\",[616,50.964]],[\"comment/2027\",[]],[\"name/2028\",[617,50.964]],[\"comment/2028\",[]],[\"name/2029\",[351,50.195]],[\"comment/2029\",[]],[\"name/2030\",[618,50.964]],[\"comment/2030\",[]],[\"name/2031\",[619,50.964]],[\"comment/2031\",[]],[\"name/2032\",[630,72.167]],[\"comment/2032\",[]],[\"name/2033\",[1,48.813]],[\"comment/2033\",[]],[\"name/2034\",[616,50.964]],[\"comment/2034\",[]],[\"name/2035\",[617,50.964]],[\"comment/2035\",[]],[\"name/2036\",[351,50.195]],[\"comment/2036\",[]],[\"name/2037\",[618,50.964]],[\"comment/2037\",[]],[\"name/2038\",[619,50.964]],[\"comment/2038\",[]],[\"name/2039\",[631,72.167]],[\"comment/2039\",[]],[\"name/2040\",[632,72.167]],[\"comment/2040\",[]],[\"name/2041\",[633,72.167]],[\"comment/2041\",[]]],\"invertedIndex\":[[\"__type\",{\"_index\":16,\"name\":{\"16\":{},\"18\":{},\"20\":{},\"22\":{},\"24\":{},\"26\":{},\"28\":{},\"30\":{},\"32\":{},\"47\":{},\"49\":{},\"51\":{},\"53\":{},\"55\":{},\"57\":{},\"59\":{},\"61\":{},\"63\":{},\"78\":{},\"83\":{},\"95\":{},\"342\":{},\"367\":{},\"392\":{},\"418\":{},\"441\":{},\"468\":{},\"503\":{},\"532\":{},\"558\":{},\"561\":{},\"563\":{},\"565\":{},\"588\":{},\"614\":{},\"633\":{},\"649\":{},\"669\":{},\"696\":{},\"704\":{},\"725\":{},\"755\":{},\"777\":{},\"837\":{},\"860\":{},\"898\":{},\"927\":{},\"954\":{},\"1080\":{},\"1084\":{},\"1092\":{},\"1112\":{},\"1114\":{},\"1134\":{},\"1136\":{},\"1140\":{},\"1152\":{},\"1156\":{},\"1178\":{},\"1188\":{},\"1205\":{},\"1207\":{},\"1212\":{},\"1222\":{},\"1226\":{},\"1246\":{},\"1269\":{},\"1285\":{},\"1310\":{},\"1327\":{},\"1343\":{},\"1345\":{},\"1347\":{},\"1349\":{},\"1354\":{},\"1359\":{},\"1364\":{},\"1366\":{},\"1371\":{},\"1376\":{},\"1910\":{},\"1912\":{},\"1914\":{},\"1916\":{},\"1918\":{},\"1920\":{},\"1922\":{},\"1924\":{},\"1926\":{},\"1928\":{},\"1930\":{},\"1932\":{},\"1934\":{},\"1948\":{}},\"comment\":{}}],[\"accepted\",{\"_index\":280,\"name\":{\"731\":{}},\"comment\":{}}],[\"account\",{\"_index\":62,\"name\":{\"106\":{},\"158\":{},\"174\":{},\"196\":{},\"249\":{},\"265\":{},\"319\":{},\"332\":{},\"343\":{},\"359\":{},\"382\":{},\"408\":{},\"419\":{},\"434\":{},\"442\":{},\"457\":{},\"469\":{},\"493\":{},\"504\":{},\"519\":{},\"533\":{},\"549\":{},\"559\":{},\"578\":{},\"824\":{},\"1437\":{},\"1452\":{},\"1467\":{},\"1484\":{},\"1503\":{},\"1519\":{},\"1535\":{},\"1555\":{},\"1573\":{},\"1590\":{},\"1604\":{},\"1621\":{},\"1641\":{},\"1663\":{},\"1687\":{},\"1716\":{},\"1745\":{},\"1770\":{},\"1789\":{},\"1806\":{},\"1821\":{},\"1837\":{},\"1852\":{},\"1882\":{}},\"comment\":{}}],[\"account_data\",{\"_index\":212,\"name\":{\"393\":{}},\"comment\":{}}],[\"account_hash\",{\"_index\":127,\"name\":{\"219\":{}},\"comment\":{}}],[\"account_nfts\",{\"_index\":221,\"name\":{\"443\":{}},\"comment\":{}}],[\"account_objects\",{\"_index\":225,\"name\":{\"470\":{}},\"comment\":{}}],[\"account_root\",{\"_index\":264,\"name\":{\"688\":{}},\"comment\":{}}],[\"account_sequence_available\",{\"_index\":281,\"name\":{\"732\":{}},\"comment\":{}}],[\"account_sequence_next\",{\"_index\":282,\"name\":{\"733\":{}},\"comment\":{}}],[\"accountchannelsrequest\",{\"_index\":187,\"name\":{\"330\":{}},\"comment\":{}}],[\"accountchannelsresponse\",{\"_index\":194,\"name\":{\"340\":{}},\"comment\":{}}],[\"accountcurrenciesrequest\",{\"_index\":203,\"name\":{\"357\":{}},\"comment\":{}}],[\"accountcurrenciesresponse\",{\"_index\":205,\"name\":{\"365\":{}},\"comment\":{}}],[\"accountdelete\",{\"_index\":502,\"name\":{\"1448\":{}},\"comment\":{}}],[\"accountinforequest\",{\"_index\":208,\"name\":{\"380\":{}},\"comment\":{}}],[\"accountinforesponse\",{\"_index\":211,\"name\":{\"390\":{}},\"comment\":{}}],[\"accountlinesrequest\",{\"_index\":215,\"name\":{\"406\":{}},\"comment\":{}}],[\"accountlinesresponse\",{\"_index\":217,\"name\":{\"416\":{}},\"comment\":{}}],[\"accountnftsrequest\",{\"_index\":219,\"name\":{\"432\":{}},\"comment\":{}}],[\"accountnftsresponse\",{\"_index\":220,\"name\":{\"439\":{}},\"comment\":{}}],[\"accountobjectsrequest\",{\"_index\":222,\"name\":{\"455\":{}},\"comment\":{}}],[\"accountobjectsresponse\",{\"_index\":224,\"name\":{\"466\":{}},\"comment\":{}}],[\"accountoffer\",{\"_index\":226,\"name\":{\"484\":{}},\"comment\":{}}],[\"accountoffersrequest\",{\"_index\":231,\"name\":{\"491\":{}},\"comment\":{}}],[\"accountoffersresponse\",{\"_index\":232,\"name\":{\"501\":{}},\"comment\":{}}],[\"accountroot\",{\"_index\":60,\"name\":{\"104\":{}},\"comment\":{}}],[\"accountrootflags\",{\"_index\":78,\"name\":{\"122\":{}},\"comment\":{}}],[\"accountrootflagsinterface\",{\"_index\":92,\"name\":{\"136\":{}},\"comment\":{}}],[\"accounts\",{\"_index\":252,\"name\":{\"604\":{},\"697\":{},\"966\":{},\"1060\":{}},\"comment\":{}}],[\"accounts_proposed\",{\"_index\":334,\"name\":{\"967\":{},\"1061\":{}},\"comment\":{}}],[\"accountset\",{\"_index\":492,\"name\":{\"1426\":{}},\"comment\":{}}],[\"accountsetasfflags\",{\"_index\":469,\"name\":{\"1397\":{}},\"comment\":{}}],[\"accountsetflagsinterface\",{\"_index\":491,\"name\":{\"1419\":{}},\"comment\":{}}],[\"accountsettfflags\",{\"_index\":484,\"name\":{\"1412\":{}},\"comment\":{}}],[\"accountstate\",{\"_index\":128,\"name\":{\"220\":{}},\"comment\":{}}],[\"accounttxnid\",{\"_index\":69,\"name\":{\"113\":{},\"1440\":{},\"1455\":{},\"1470\":{},\"1487\":{},\"1506\":{},\"1522\":{},\"1538\":{},\"1558\":{},\"1576\":{},\"1593\":{},\"1609\":{},\"1624\":{},\"1644\":{},\"1666\":{},\"1690\":{},\"1719\":{},\"1748\":{},\"1773\":{},\"1792\":{},\"1809\":{},\"1824\":{},\"1840\":{},\"1855\":{},\"1885\":{}},\"comment\":{}}],[\"accounttxrequest\",{\"_index\":234,\"name\":{\"517\":{}},\"comment\":{}}],[\"accounttxresponse\",{\"_index\":239,\"name\":{\"530\":{}},\"comment\":{}}],[\"action\",{\"_index\":360,\"name\":{\"1036\":{}},\"comment\":{}}],[\"address\",{\"_index\":50,\"name\":{\"93\":{}},\"comment\":{}}],[\"affectednodes\",{\"_index\":464,\"name\":{\"1392\":{}},\"comment\":{}}],[\"age\",{\"_index\":394,\"name\":{\"1141\":{},\"1179\":{},\"1213\":{},\"1247\":{}},\"comment\":{}}],[\"alternatives\",{\"_index\":320,\"name\":{\"899\":{},\"928\":{},\"1033\":{}},\"comment\":{}}],[\"amendment_blocked\",{\"_index\":391,\"name\":{\"1137\":{},\"1208\":{}},\"comment\":{}}],[\"amendments\",{\"_index\":93,\"name\":{\"150\":{},\"152\":{},\"997\":{}},\"comment\":{}}],[\"amount\",{\"_index\":117,\"name\":{\"198\":{},\"267\":{},\"946\":{},\"1482\":{},\"1549\":{},\"1636\":{},\"1737\":{},\"1767\":{},\"1783\":{},\"1804\":{}},\"comment\":{}}],[\"api_version\",{\"_index\":193,\"name\":{\"339\":{},\"356\":{},\"364\":{},\"379\":{},\"389\":{},\"405\":{},\"415\":{},\"431\":{},\"438\":{},\"454\":{},\"465\":{},\"483\":{},\"500\":{},\"516\":{},\"529\":{},\"546\":{},\"555\":{},\"575\":{},\"585\":{},\"598\":{},\"611\":{},\"626\":{},\"630\":{},\"642\":{},\"646\":{},\"657\":{},\"666\":{},\"681\":{},\"701\":{},\"716\":{},\"722\":{},\"746\":{},\"752\":{},\"767\":{},\"774\":{},\"788\":{},\"796\":{},\"806\":{},\"816\":{},\"849\":{},\"857\":{},\"874\":{},\"885\":{},\"890\":{},\"895\":{},\"913\":{},\"924\":{},\"943\":{},\"951\":{},\"962\":{},\"973\":{},\"982\":{},\"1064\":{},\"1073\":{},\"1077\":{},\"1104\":{},\"1109\":{},\"1127\":{},\"1131\":{},\"1198\":{},\"1202\":{},\"1262\":{},\"1266\":{},\"1278\":{},\"1282\":{},\"1293\":{},\"1302\":{},\"1307\":{},\"1319\":{},\"1324\":{},\"1336\":{},\"1340\":{},\"1385\":{}},\"comment\":{}}],[\"applied\",{\"_index\":283,\"name\":{\"734\":{}},\"comment\":{}}],[\"asfaccounttxnid\",{\"_index\":474,\"name\":{\"1402\":{}},\"comment\":{}}],[\"asfauthorizednftokenminter\",{\"_index\":479,\"name\":{\"1407\":{}},\"comment\":{}}],[\"asfdefaultripple\",{\"_index\":477,\"name\":{\"1405\":{}},\"comment\":{}}],[\"asfdepositauth\",{\"_index\":478,\"name\":{\"1406\":{}},\"comment\":{}}],[\"asfdisablemaster\",{\"_index\":473,\"name\":{\"1401\":{}},\"comment\":{}}],[\"asfdisallowincomingcheck\",{\"_index\":481,\"name\":{\"1409\":{}},\"comment\":{}}],[\"asfdisallowincomingnftokenoffer\",{\"_index\":480,\"name\":{\"1408\":{}},\"comment\":{}}],[\"asfdisallowincomingpaychan\",{\"_index\":482,\"name\":{\"1410\":{}},\"comment\":{}}],[\"asfdisallowincomingtrustline\",{\"_index\":483,\"name\":{\"1411\":{}},\"comment\":{}}],[\"asfdisallowxrp\",{\"_index\":472,\"name\":{\"1400\":{}},\"comment\":{}}],[\"asfglobalfreeze\",{\"_index\":476,\"name\":{\"1404\":{}},\"comment\":{}}],[\"asfnofreeze\",{\"_index\":475,\"name\":{\"1403\":{}},\"comment\":{}}],[\"asfrequireauth\",{\"_index\":471,\"name\":{\"1399\":{}},\"comment\":{}}],[\"asfrequiredest\",{\"_index\":470,\"name\":{\"1398\":{}},\"comment\":{}}],[\"assets\",{\"_index\":245,\"name\":{\"564\":{}},\"comment\":{}}],[\"authorization\",{\"_index\":31,\"name\":{\"71\":{}},\"comment\":{}}],[\"authorize\",{\"_index\":105,\"name\":{\"175\":{},\"1517\":{}},\"comment\":{}}],[\"authorizechannel\",{\"_index\":631,\"name\":{\"2039\":{}},\"comment\":{}}],[\"autofill\",{\"_index\":15,\"name\":{\"15\":{},\"46\":{}},\"comment\":{}}],[\"balance\",{\"_index\":63,\"name\":{\"107\":{},\"268\":{},\"284\":{},\"1766\":{}},\"comment\":{}}],[\"balances\",{\"_index\":244,\"name\":{\"562\":{}},\"comment\":{}}],[\"base_fee\",{\"_index\":349,\"name\":{\"998\":{},\"1085\":{},\"1214\":{},\"1248\":{}},\"comment\":{}}],[\"base_fee_xrp\",{\"_index\":395,\"name\":{\"1142\":{},\"1180\":{}},\"comment\":{}}],[\"basefee\",{\"_index\":122,\"name\":{\"212\":{}},\"comment\":{}}],[\"binary\",{\"_index\":237,\"name\":{\"524\":{},\"608\":{},\"662\":{},\"684\":{},\"792\":{}},\"comment\":{}}],[\"bookdirectory\",{\"_index\":151,\"name\":{\"253\":{},\"828\":{}},\"comment\":{}}],[\"booknode\",{\"_index\":152,\"name\":{\"254\":{},\"829\":{}},\"comment\":{}}],[\"bookoffer\",{\"_index\":303,\"name\":{\"817\":{}},\"comment\":{}}],[\"bookoffersrequest\",{\"_index\":301,\"name\":{\"807\":{}},\"comment\":{}}],[\"bookoffersresponse\",{\"_index\":306,\"name\":{\"835\":{}},\"comment\":{}}],[\"books\",{\"_index\":335,\"name\":{\"968\":{},\"1062\":{}},\"comment\":{}}],[\"broadcast\",{\"_index\":284,\"name\":{\"735\":{}},\"comment\":{}}],[\"broadcastclient\",{\"_index\":0,\"name\":{\"0\":{}},\"comment\":{}}],[\"build_version\",{\"_index\":392,\"name\":{\"1138\":{},\"1209\":{}},\"comment\":{}}],[\"cancelafter\",{\"_index\":119,\"name\":{\"200\":{},\"276\":{},\"1551\":{},\"1787\":{}},\"comment\":{}}],[\"certificate\",{\"_index\":35,\"name\":{\"75\":{}},\"comment\":{}}],[\"channel\",{\"_index\":556,\"name\":{\"1765\":{},\"1803\":{}},\"comment\":{}}],[\"channel_id\",{\"_index\":327,\"name\":{\"947\":{}},\"comment\":{}}],[\"channels\",{\"_index\":196,\"name\":{\"344\":{}},\"comment\":{}}],[\"channelverifyrequest\",{\"_index\":326,\"name\":{\"944\":{}},\"comment\":{}}],[\"channelverifyresponse\",{\"_index\":330,\"name\":{\"952\":{}},\"comment\":{}}],[\"check\",{\"_index\":95,\"name\":{\"156\":{},\"689\":{}},\"comment\":{}}],[\"checkcancel\",{\"_index\":503,\"name\":{\"1464\":{}},\"comment\":{}}],[\"checkcash\",{\"_index\":505,\"name\":{\"1479\":{}},\"comment\":{}}],[\"checkcreate\",{\"_index\":507,\"name\":{\"1496\":{}},\"comment\":{}}],[\"checkid\",{\"_index\":504,\"name\":{\"1466\":{},\"1481\":{}},\"comment\":{}}],[\"checktxserialization\",{\"_index\":56,\"name\":{\"100\":{}},\"comment\":{}}],[\"classicaddress\",{\"_index\":48,\"name\":{\"91\":{}},\"comment\":{}}],[\"clearflag\",{\"_index\":494,\"name\":{\"1429\":{}},\"comment\":{}}],[\"client\",{\"_index\":25,\"name\":{\"33\":{}},\"comment\":{}}],[\"clientoptions\",{\"_index\":26,\"name\":{\"64\":{}},\"comment\":{}}],[\"clients\",{\"_index\":2,\"name\":{\"2\":{}},\"comment\":{}}],[\"close_flags\",{\"_index\":129,\"name\":{\"221\":{}},\"comment\":{}}],[\"close_time\",{\"_index\":130,\"name\":{\"222\":{},\"1249\":{}},\"comment\":{}}],[\"close_time_human\",{\"_index\":131,\"name\":{\"223\":{}},\"comment\":{}}],[\"close_time_resolution\",{\"_index\":132,\"name\":{\"224\":{}},\"comment\":{}}],[\"closed\",{\"_index\":133,\"name\":{\"225\":{},\"905\":{}},\"comment\":{}}],[\"closed_ledger\",{\"_index\":393,\"name\":{\"1139\":{},\"1211\":{}},\"comment\":{}}],[\"command\",{\"_index\":188,\"name\":{\"331\":{},\"358\":{},\"381\":{},\"407\":{},\"433\":{},\"456\":{},\"492\":{},\"518\":{},\"548\":{},\"577\":{},\"600\":{},\"628\":{},\"644\":{},\"659\":{},\"683\":{},\"718\":{},\"748\":{},\"769\":{},\"790\":{},\"808\":{},\"851\":{},\"883\":{},\"888\":{},\"893\":{},\"915\":{},\"945\":{},\"964\":{},\"1058\":{},\"1075\":{},\"1106\":{},\"1129\":{},\"1200\":{},\"1264\":{},\"1280\":{},\"1304\":{},\"1321\":{},\"1338\":{}},\"comment\":{}}],[\"complete_ledgers\",{\"_index\":398,\"name\":{\"1147\":{},\"1210\":{}},\"comment\":{}}],[\"condition\",{\"_index\":118,\"name\":{\"199\":{},\"1553\":{},\"1571\":{}},\"comment\":{}}],[\"connect\",{\"_index\":12,\"name\":{\"12\":{},\"43\":{}},\"comment\":{}}],[\"connection\",{\"_index\":4,\"name\":{\"4\":{},\"35\":{}},\"comment\":{}}],[\"connectionerror\",{\"_index\":621,\"name\":{\"1969\":{}},\"comment\":{}}],[\"connectiontimeout\",{\"_index\":36,\"name\":{\"76\":{}},\"comment\":{}}],[\"consensus\",{\"_index\":364,\"name\":{\"1056\":{}},\"comment\":{}}],[\"consensusstream\",{\"_index\":363,\"name\":{\"1054\":{}},\"comment\":{}}],[\"constructor\",{\"_index\":1,\"name\":{\"1\":{},\"34\":{},\"88\":{},\"1956\":{},\"1963\":{},\"1970\":{},\"1977\":{},\"1984\":{},\"1991\":{},\"1998\":{},\"2005\":{},\"2012\":{},\"2019\":{},\"2026\":{},\"2033\":{}},\"comment\":{}}],[\"converge_time\",{\"_index\":433,\"name\":{\"1223\":{}},\"comment\":{}}],[\"converge_time_s\",{\"_index\":403,\"name\":{\"1153\":{}},\"comment\":{}}],[\"converthextostring\",{\"_index\":605,\"name\":{\"1939\":{}},\"comment\":{}}],[\"convertstringtohex\",{\"_index\":604,\"name\":{\"1938\":{}},\"comment\":{}}],[\"cookie\",{\"_index\":350,\"name\":{\"999\":{}},\"comment\":{}}],[\"count\",{\"_index\":430,\"name\":{\"1189\":{}},\"comment\":{}}],[\"createcrosschainpayment\",{\"_index\":612,\"name\":{\"1946\":{}},\"comment\":{}}],[\"currency\",{\"_index\":269,\"name\":{\"698\":{}},\"comment\":{}}],[\"current_ledger_size\",{\"_index\":369,\"name\":{\"1081\":{}},\"comment\":{}}],[\"current_queue_size\",{\"_index\":370,\"name\":{\"1082\":{}},\"comment\":{}}],[\"data\",{\"_index\":351,\"name\":{\"1000\":{},\"1959\":{},\"1966\":{},\"1973\":{},\"1980\":{},\"1987\":{},\"1994\":{},\"2001\":{},\"2008\":{},\"2015\":{},\"2022\":{},\"2029\":{},\"2036\":{}},\"comment\":{}}],[\"date\",{\"_index\":361,\"name\":{\"1037\":{}},\"comment\":{}}],[\"decimaltoquality\",{\"_index\":582,\"name\":{\"1902\":{}},\"comment\":{}}],[\"decimaltotransferrate\",{\"_index\":584,\"name\":{\"1904\":{}},\"comment\":{}}],[\"decode\",{\"_index\":607,\"name\":{\"1941\":{}},\"comment\":{}}],[\"deletion_blockers_only\",{\"_index\":223,\"name\":{\"459\":{}},\"comment\":{}}],[\"delivered_amount\",{\"_index\":466,\"name\":{\"1394\":{}},\"comment\":{}}],[\"deliveredamount\",{\"_index\":465,\"name\":{\"1393\":{}},\"comment\":{}}],[\"delivermin\",{\"_index\":506,\"name\":{\"1483\":{},\"1743\":{}},\"comment\":{}}],[\"deposit_authorized\",{\"_index\":310,\"name\":{\"861\":{}},\"comment\":{}}],[\"deposit_preauth\",{\"_index\":265,\"name\":{\"690\":{}},\"comment\":{}}],[\"depositauthorizedrequest\",{\"_index\":307,\"name\":{\"850\":{}},\"comment\":{}}],[\"depositauthorizedresponse\",{\"_index\":309,\"name\":{\"858\":{}},\"comment\":{}}],[\"depositpreauth\",{\"_index\":104,\"name\":{\"172\":{},\"1515\":{}},\"comment\":{}}],[\"derivewallet\",{\"_index\":45,\"name\":{\"87\":{}},\"comment\":{}}],[\"derivexaddress\",{\"_index\":601,\"name\":{\"1935\":{}},\"comment\":{}}],[\"destination\",{\"_index\":96,\"name\":{\"159\":{},\"197\":{},\"266\":{},\"1450\":{},\"1498\":{},\"1550\":{},\"1639\":{},\"1738\":{},\"1784\":{}},\"comment\":{}}],[\"destination_account\",{\"_index\":189,\"name\":{\"333\":{},\"853\":{},\"862\":{},\"879\":{},\"900\":{},\"917\":{},\"929\":{},\"1028\":{}},\"comment\":{}}],[\"destination_amount\",{\"_index\":314,\"name\":{\"880\":{},\"901\":{},\"918\":{},\"931\":{},\"1029\":{}},\"comment\":{}}],[\"destination_currencies\",{\"_index\":325,\"name\":{\"930\":{}},\"comment\":{}}],[\"destinationnode\",{\"_index\":99,\"name\":{\"166\":{},\"206\":{},\"279\":{}},\"comment\":{}}],[\"destinationtag\",{\"_index\":100,\"name\":{\"167\":{},\"204\":{},\"278\":{},\"1451\":{},\"1500\":{},\"1554\":{},\"1739\":{},\"1788\":{}},\"comment\":{}}],[\"details\",{\"_index\":384,\"name\":{\"1113\":{}},\"comment\":{}}],[\"directory\",{\"_index\":266,\"name\":{\"691\":{}},\"comment\":{}}],[\"directorynode\",{\"_index\":106,\"name\":{\"181\":{}},\"comment\":{}}],[\"disabledvalidators\",{\"_index\":145,\"name\":{\"242\":{}},\"comment\":{}}],[\"disconnect\",{\"_index\":13,\"name\":{\"13\":{},\"44\":{}},\"comment\":{}}],[\"disconnectederror\",{\"_index\":624,\"name\":{\"1990\":{}},\"comment\":{}}],[\"domain\",{\"_index\":70,\"name\":{\"114\":{},\"1115\":{},\"1430\":{}},\"comment\":{}}],[\"door_status\",{\"_index\":454,\"name\":{\"1348\":{},\"1365\":{}},\"comment\":{}}],[\"drops\",{\"_index\":371,\"name\":{\"1083\":{}},\"comment\":{}}],[\"dropstoxrp\",{\"_index\":574,\"name\":{\"1894\":{}},\"comment\":{}}],[\"emailhash\",{\"_index\":71,\"name\":{\"115\":{},\"1431\":{}},\"comment\":{}}],[\"encode\",{\"_index\":606,\"name\":{\"1940\":{}},\"comment\":{}}],[\"encodeformultisigning\",{\"_index\":608,\"name\":{\"1942\":{}},\"comment\":{}}],[\"encodeforsigning\",{\"_index\":609,\"name\":{\"1943\":{}},\"comment\":{}}],[\"encodeforsigningclaim\",{\"_index\":610,\"name\":{\"1944\":{}},\"comment\":{}}],[\"engine_result\",{\"_index\":276,\"name\":{\"726\":{},\"756\":{},\"1015\":{},\"1045\":{}},\"comment\":{}}],[\"engine_result_code\",{\"_index\":277,\"name\":{\"727\":{},\"757\":{},\"1016\":{},\"1046\":{}},\"comment\":{}}],[\"engine_result_message\",{\"_index\":278,\"name\":{\"728\":{},\"758\":{},\"1017\":{},\"1047\":{}},\"comment\":{}}],[\"ephemeral_key\",{\"_index\":385,\"name\":{\"1116\":{}},\"comment\":{}}],[\"error\",{\"_index\":443,\"name\":{\"1298\":{}},\"comment\":{}}],[\"error_code\",{\"_index\":444,\"name\":{\"1299\":{}},\"comment\":{}}],[\"error_message\",{\"_index\":445,\"name\":{\"1300\":{}},\"comment\":{}}],[\"errorresponse\",{\"_index\":442,\"name\":{\"1294\":{}},\"comment\":{}}],[\"escrow\",{\"_index\":116,\"name\":{\"194\":{},\"692\":{}},\"comment\":{}}],[\"escrowcancel\",{\"_index\":509,\"name\":{\"1531\":{}},\"comment\":{}}],[\"escrowcreate\",{\"_index\":511,\"name\":{\"1547\":{}},\"comment\":{}}],[\"escrowfinish\",{\"_index\":512,\"name\":{\"1567\":{}},\"comment\":{}}],[\"expand\",{\"_index\":253,\"name\":{\"606\":{}},\"comment\":{}}],[\"expected_ledger_size\",{\"_index\":375,\"name\":{\"1089\":{}},\"comment\":{}}],[\"expiration\",{\"_index\":101,\"name\":{\"168\":{},\"258\":{},\"275\":{},\"490\":{},\"833\":{},\"1190\":{},\"1501\":{},\"1638\":{},\"1712\":{},\"1805\":{}},\"comment\":{}}],[\"fail_hard\",{\"_index\":274,\"name\":{\"720\":{},\"750\":{}},\"comment\":{}}],[\"federatorinforequest\",{\"_index\":451,\"name\":{\"1337\":{}},\"comment\":{}}],[\"federatorinforesponse\",{\"_index\":452,\"name\":{\"1341\":{}},\"comment\":{}}],[\"fee\",{\"_index\":497,\"name\":{\"1438\":{},\"1453\":{},\"1468\":{},\"1485\":{},\"1504\":{},\"1520\":{},\"1536\":{},\"1556\":{},\"1574\":{},\"1591\":{},\"1607\":{},\"1622\":{},\"1642\":{},\"1664\":{},\"1688\":{},\"1717\":{},\"1746\":{},\"1771\":{},\"1790\":{},\"1807\":{},\"1822\":{},\"1838\":{},\"1853\":{},\"1883\":{}},\"comment\":{}}],[\"fee_base\",{\"_index\":341,\"name\":{\"986\":{}},\"comment\":{}}],[\"fee_ref\",{\"_index\":342,\"name\":{\"987\":{}},\"comment\":{}}],[\"feecushion\",{\"_index\":5,\"name\":{\"5\":{},\"36\":{},\"65\":{}},\"comment\":{}}],[\"feerequest\",{\"_index\":367,\"name\":{\"1074\":{}},\"comment\":{}}],[\"feeresponse\",{\"_index\":368,\"name\":{\"1078\":{}},\"comment\":{}}],[\"feesettings\",{\"_index\":121,\"name\":{\"210\":{}},\"comment\":{}}],[\"finishafter\",{\"_index\":120,\"name\":{\"201\":{},\"1552\":{}},\"comment\":{}}],[\"flags\",{\"_index\":64,\"name\":{\"108\":{},\"154\":{},\"160\":{},\"176\":{},\"183\":{},\"202\":{},\"216\":{},\"238\":{},\"248\":{},\"274\":{},\"283\":{},\"307\":{},\"320\":{},\"485\":{},\"823\":{},\"1001\":{},\"1428\":{},\"1456\":{},\"1471\":{},\"1488\":{},\"1507\":{},\"1523\":{},\"1539\":{},\"1559\":{},\"1577\":{},\"1594\":{},\"1610\":{},\"1625\":{},\"1640\":{},\"1662\":{},\"1691\":{},\"1711\":{},\"1744\":{},\"1764\":{},\"1793\":{},\"1810\":{},\"1825\":{},\"1841\":{},\"1856\":{},\"1881\":{},\"1950\":{}},\"comment\":{}}],[\"forward\",{\"_index\":238,\"name\":{\"525\":{}},\"comment\":{}}],[\"forwarded\",{\"_index\":202,\"name\":{\"355\":{},\"378\":{},\"404\":{},\"430\":{},\"453\":{},\"482\":{},\"515\":{},\"545\":{},\"574\":{},\"597\":{},\"625\":{},\"641\":{},\"656\":{},\"680\":{},\"715\":{},\"745\":{},\"766\":{},\"787\":{},\"805\":{},\"848\":{},\"873\":{},\"912\":{},\"942\":{},\"961\":{},\"981\":{},\"1072\":{},\"1103\":{},\"1126\":{},\"1197\":{},\"1261\":{},\"1277\":{},\"1292\":{},\"1318\":{},\"1335\":{},\"1384\":{}},\"comment\":{}}],[\"fromentropy\",{\"_index\":42,\"name\":{\"84\":{}},\"comment\":{}}],[\"frommnemonic\",{\"_index\":43,\"name\":{\"85\":{}},\"comment\":{}}],[\"fromrfc1751mnemonic\",{\"_index\":44,\"name\":{\"86\":{}},\"comment\":{}}],[\"fromsecret\",{\"_index\":41,\"name\":{\"82\":{}},\"comment\":{}}],[\"fromseed\",{\"_index\":40,\"name\":{\"81\":{}},\"comment\":{}}],[\"fulfillment\",{\"_index\":513,\"name\":{\"1572\":{}},\"comment\":{}}],[\"full\",{\"_index\":251,\"name\":{\"603\":{},\"1002\":{}},\"comment\":{}}],[\"full_reply\",{\"_index\":321,\"name\":{\"903\":{},\"932\":{},\"1030\":{}},\"comment\":{}}],[\"fundwallet\",{\"_index\":24,\"name\":{\"31\":{},\"62\":{}},\"comment\":{}}],[\"gatewaybalancesrequest\",{\"_index\":240,\"name\":{\"547\":{}},\"comment\":{}}],[\"gatewaybalancesresponse\",{\"_index\":242,\"name\":{\"556\":{}},\"comment\":{}}],[\"generate\",{\"_index\":39,\"name\":{\"80\":{}},\"comment\":{}}],[\"getbalancechanges\",{\"_index\":573,\"name\":{\"1893\":{}},\"comment\":{}}],[\"getbalances\",{\"_index\":21,\"name\":{\"25\":{},\"56\":{}},\"comment\":{}}],[\"getledgerindex\",{\"_index\":23,\"name\":{\"29\":{},\"60\":{}},\"comment\":{}}],[\"getmethodnames\",{\"_index\":3,\"name\":{\"3\":{}},\"comment\":{}}],[\"getnftokenid\",{\"_index\":611,\"name\":{\"1945\":{}},\"comment\":{}}],[\"getorderbook\",{\"_index\":22,\"name\":{\"27\":{},\"58\":{}},\"comment\":{}}],[\"getxaddress\",{\"_index\":55,\"name\":{\"99\":{}},\"comment\":{}}],[\"getxrpbalance\",{\"_index\":20,\"name\":{\"23\":{},\"54\":{}},\"comment\":{}}],[\"hash\",{\"_index\":53,\"name\":{\"97\":{},\"1143\":{},\"1181\":{},\"1215\":{},\"1250\":{}},\"comment\":{}}],[\"hashaccountroot\",{\"_index\":591,\"name\":{\"1915\":{}},\"comment\":{}}],[\"hashes\",{\"_index\":143,\"name\":{\"237\":{},\"1909\":{}},\"comment\":{}}],[\"hashescrow\",{\"_index\":599,\"name\":{\"1931\":{}},\"comment\":{}}],[\"hashledger\",{\"_index\":597,\"name\":{\"1927\":{}},\"comment\":{}}],[\"hashledgerheader\",{\"_index\":598,\"name\":{\"1929\":{}},\"comment\":{}}],[\"hashofferid\",{\"_index\":593,\"name\":{\"1919\":{}},\"comment\":{}}],[\"hashpaymentchannel\",{\"_index\":600,\"name\":{\"1933\":{}},\"comment\":{}}],[\"hashsignedtx\",{\"_index\":589,\"name\":{\"1911\":{}},\"comment\":{}}],[\"hashsignerlistid\",{\"_index\":592,\"name\":{\"1917\":{}},\"comment\":{}}],[\"hashstatetree\",{\"_index\":596,\"name\":{\"1925\":{}},\"comment\":{}}],[\"hashtrustline\",{\"_index\":594,\"name\":{\"1921\":{}},\"comment\":{}}],[\"hashtx\",{\"_index\":590,\"name\":{\"1913\":{}},\"comment\":{}}],[\"hashtxtree\",{\"_index\":595,\"name\":{\"1923\":{}},\"comment\":{}}],[\"hasnextpage\",{\"_index\":576,\"name\":{\"1896\":{}},\"comment\":{}}],[\"headers\",{\"_index\":37,\"name\":{\"77\":{}},\"comment\":{}}],[\"highlimit\",{\"_index\":160,\"name\":{\"286\":{}},\"comment\":{}}],[\"highnode\",{\"_index\":162,\"name\":{\"290\":{}},\"comment\":{}}],[\"highqualityin\",{\"_index\":165,\"name\":{\"293\":{}},\"comment\":{}}],[\"highqualityout\",{\"_index\":166,\"name\":{\"294\":{}},\"comment\":{}}],[\"hostid\",{\"_index\":399,\"name\":{\"1148\":{}},\"comment\":{}}],[\"hotwallet\",{\"_index\":241,\"name\":{\"551\":{}},\"comment\":{}}],[\"id\",{\"_index\":192,\"name\":{\"338\":{},\"350\":{},\"363\":{},\"373\":{},\"388\":{},\"399\":{},\"414\":{},\"425\":{},\"437\":{},\"448\":{},\"464\":{},\"477\":{},\"499\":{},\"510\":{},\"528\":{},\"540\":{},\"554\":{},\"569\":{},\"584\":{},\"592\":{},\"610\":{},\"620\":{},\"629\":{},\"636\":{},\"645\":{},\"651\":{},\"665\":{},\"675\":{},\"700\":{},\"710\":{},\"721\":{},\"740\":{},\"751\":{},\"761\":{},\"773\":{},\"782\":{},\"795\":{},\"800\":{},\"815\":{},\"843\":{},\"856\":{},\"868\":{},\"884\":{},\"889\":{},\"894\":{},\"904\":{},\"907\":{},\"923\":{},\"933\":{},\"937\":{},\"950\":{},\"956\":{},\"972\":{},\"976\":{},\"1031\":{},\"1063\":{},\"1067\":{},\"1076\":{},\"1098\":{},\"1108\":{},\"1121\":{},\"1130\":{},\"1192\":{},\"1201\":{},\"1256\":{},\"1265\":{},\"1272\":{},\"1281\":{},\"1287\":{},\"1295\":{},\"1306\":{},\"1313\":{},\"1323\":{},\"1330\":{},\"1339\":{},\"1379\":{}},\"comment\":{}}],[\"index\",{\"_index\":77,\"name\":{\"121\":{},\"155\":{},\"171\":{},\"180\":{},\"193\":{},\"209\":{},\"217\":{},\"239\":{},\"245\":{},\"259\":{},\"280\":{},\"295\":{},\"314\":{},\"325\":{},\"687\":{},\"705\":{},\"834\":{}},\"comment\":{}}],[\"indexes\",{\"_index\":108,\"name\":{\"185\":{}},\"comment\":{}}],[\"indexnext\",{\"_index\":109,\"name\":{\"186\":{}},\"comment\":{}}],[\"indexprevious\",{\"_index\":110,\"name\":{\"187\":{}},\"comment\":{}}],[\"info\",{\"_index\":390,\"name\":{\"1135\":{},\"1344\":{}},\"comment\":{}}],[\"initialized\",{\"_index\":455,\"name\":{\"1350\":{},\"1360\":{},\"1367\":{},\"1377\":{}},\"comment\":{}}],[\"inspect\",{\"_index\":619,\"name\":{\"1961\":{},\"1968\":{},\"1975\":{},\"1982\":{},\"1989\":{},\"1996\":{},\"2003\":{},\"2010\":{},\"2017\":{},\"2024\":{},\"2031\":{},\"2038\":{}},\"comment\":{}}],[\"invoiceid\",{\"_index\":102,\"name\":{\"169\":{},\"1502\":{},\"1740\":{}},\"comment\":{}}],[\"io_latency_ms\",{\"_index\":400,\"name\":{\"1149\":{},\"1219\":{}},\"comment\":{}}],[\"isconnected\",{\"_index\":14,\"name\":{\"14\":{},\"45\":{}},\"comment\":{}}],[\"isotimetorippletime\",{\"_index\":578,\"name\":{\"1898\":{}},\"comment\":{}}],[\"issuer\",{\"_index\":528,\"name\":{\"1659\":{},\"1952\":{}},\"comment\":{}}],[\"isvalidaddress\",{\"_index\":588,\"name\":{\"1908\":{}},\"comment\":{}}],[\"isvalidsecret\",{\"_index\":587,\"name\":{\"1907\":{}},\"comment\":{}}],[\"job_types\",{\"_index\":406,\"name\":{\"1157\":{},\"1227\":{}},\"comment\":{}}],[\"jq_trans_overflow\",{\"_index\":401,\"name\":{\"1150\":{},\"1220\":{}},\"comment\":{}}],[\"kept\",{\"_index\":285,\"name\":{\"736\":{}},\"comment\":{}}],[\"key\",{\"_index\":33,\"name\":{\"73\":{}},\"comment\":{}}],[\"keytorfc1751mnemonic\",{\"_index\":57,\"name\":{\"101\":{}},\"comment\":{}}],[\"last_close\",{\"_index\":402,\"name\":{\"1151\":{},\"1221\":{}},\"comment\":{}}],[\"last_transaction_sent_seq\",{\"_index\":456,\"name\":{\"1352\":{},\"1369\":{}},\"comment\":{}}],[\"lastledgersequence\",{\"_index\":142,\"name\":{\"236\":{},\"1441\":{},\"1457\":{},\"1472\":{},\"1489\":{},\"1508\":{},\"1524\":{},\"1540\":{},\"1560\":{},\"1578\":{},\"1595\":{},\"1611\":{},\"1626\":{},\"1645\":{},\"1667\":{},\"1692\":{},\"1720\":{},\"1749\":{},\"1774\":{},\"1794\":{},\"1811\":{},\"1826\":{},\"1842\":{},\"1857\":{},\"1886\":{}},\"comment\":{}}],[\"ledger\",{\"_index\":126,\"name\":{\"218\":{},\"615\":{}},\"comment\":{}}],[\"ledger_current_index\",{\"_index\":213,\"name\":{\"395\":{},\"421\":{},\"444\":{},\"473\":{},\"506\":{},\"567\":{},\"589\":{},\"650\":{},\"706\":{},\"838\":{},\"865\":{},\"934\":{},\"1018\":{},\"1048\":{},\"1090\":{}},\"comment\":{}}],[\"ledger_hash\",{\"_index\":134,\"name\":{\"226\":{},\"334\":{},\"345\":{},\"360\":{},\"368\":{},\"383\":{},\"409\":{},\"423\":{},\"460\":{},\"471\":{},\"494\":{},\"508\":{},\"522\":{},\"552\":{},\"566\":{},\"582\":{},\"601\":{},\"616\":{},\"634\":{},\"660\":{},\"671\":{},\"685\":{},\"770\":{},\"778\":{},\"809\":{},\"840\":{},\"854\":{},\"863\":{},\"921\":{},\"988\":{},\"1003\":{},\"1019\":{},\"1038\":{},\"1049\":{}},\"comment\":{}}],[\"ledger_index\",{\"_index\":135,\"name\":{\"227\":{},\"335\":{},\"346\":{},\"361\":{},\"369\":{},\"384\":{},\"396\":{},\"410\":{},\"422\":{},\"461\":{},\"472\":{},\"495\":{},\"507\":{},\"523\":{},\"553\":{},\"568\":{},\"583\":{},\"602\":{},\"617\":{},\"635\":{},\"661\":{},\"670\":{},\"686\":{},\"771\":{},\"779\":{},\"810\":{},\"839\":{},\"855\":{},\"864\":{},\"922\":{},\"989\":{},\"1004\":{},\"1020\":{},\"1039\":{},\"1050\":{}},\"comment\":{}}],[\"ledger_index_max\",{\"_index\":236,\"name\":{\"521\":{},\"535\":{},\"1040\":{}},\"comment\":{}}],[\"ledger_index_min\",{\"_index\":235,\"name\":{\"520\":{},\"534\":{},\"1041\":{}},\"comment\":{}}],[\"ledger_time\",{\"_index\":343,\"name\":{\"990\":{}},\"comment\":{}}],[\"ledgerclosedrequest\",{\"_index\":256,\"name\":{\"627\":{}},\"comment\":{}}],[\"ledgerclosedresponse\",{\"_index\":257,\"name\":{\"631\":{}},\"comment\":{}}],[\"ledgercurrentrequest\",{\"_index\":258,\"name\":{\"643\":{}},\"comment\":{}}],[\"ledgercurrentresponse\",{\"_index\":259,\"name\":{\"647\":{}},\"comment\":{}}],[\"ledgerdatarequest\",{\"_index\":260,\"name\":{\"658\":{}},\"comment\":{}}],[\"ledgerdataresponse\",{\"_index\":261,\"name\":{\"667\":{}},\"comment\":{}}],[\"ledgerentry\",{\"_index\":59,\"name\":{\"103\":{},\"233\":{}},\"comment\":{}}],[\"ledgerentryrequest\",{\"_index\":263,\"name\":{\"682\":{}},\"comment\":{}}],[\"ledgerentryresponse\",{\"_index\":270,\"name\":{\"702\":{}},\"comment\":{}}],[\"ledgerentrytype\",{\"_index\":61,\"name\":{\"105\":{},\"151\":{},\"157\":{},\"173\":{},\"182\":{},\"195\":{},\"211\":{},\"235\":{},\"241\":{},\"247\":{},\"264\":{},\"282\":{},\"306\":{},\"318\":{},\"822\":{}},\"comment\":{}}],[\"ledgerhashes\",{\"_index\":141,\"name\":{\"234\":{}},\"comment\":{}}],[\"ledgerrequest\",{\"_index\":250,\"name\":{\"599\":{}},\"comment\":{}}],[\"ledgerresponse\",{\"_index\":255,\"name\":{\"612\":{}},\"comment\":{}}],[\"ledgerstream\",{\"_index\":340,\"name\":{\"984\":{}},\"comment\":{}}],[\"levels\",{\"_index\":376,\"name\":{\"1091\":{}},\"comment\":{}}],[\"limit\",{\"_index\":190,\"name\":{\"336\":{},\"348\":{},\"412\":{},\"435\":{},\"447\":{},\"462\":{},\"474\":{},\"496\":{},\"526\":{},\"536\":{},\"581\":{},\"663\":{},\"811\":{}},\"comment\":{}}],[\"limitamount\",{\"_index\":570,\"name\":{\"1878\":{}},\"comment\":{}}],[\"lines\",{\"_index\":218,\"name\":{\"420\":{}},\"comment\":{}}],[\"listener_info\",{\"_index\":457,\"name\":{\"1353\":{},\"1370\":{}},\"comment\":{}}],[\"load\",{\"_index\":405,\"name\":{\"1155\":{},\"1225\":{}},\"comment\":{}}],[\"load_base\",{\"_index\":434,\"name\":{\"1229\":{}},\"comment\":{}}],[\"load_factor\",{\"_index\":408,\"name\":{\"1159\":{},\"1230\":{}},\"comment\":{}}],[\"load_factor_cluster\",{\"_index\":411,\"name\":{\"1162\":{}},\"comment\":{}}],[\"load_factor_fee_escalation\",{\"_index\":412,\"name\":{\"1163\":{},\"1231\":{}},\"comment\":{}}],[\"load_factor_fee_queue\",{\"_index\":413,\"name\":{\"1164\":{},\"1232\":{}},\"comment\":{}}],[\"load_factor_fee_reference\",{\"_index\":435,\"name\":{\"1233\":{}},\"comment\":{}}],[\"load_factor_local\",{\"_index\":409,\"name\":{\"1160\":{}},\"comment\":{}}],[\"load_factor_net\",{\"_index\":410,\"name\":{\"1161\":{}},\"comment\":{}}],[\"load_factor_server\",{\"_index\":414,\"name\":{\"1165\":{},\"1234\":{}},\"comment\":{}}],[\"load_fee\",{\"_index\":352,\"name\":{\"1005\":{}},\"comment\":{}}],[\"lowlimit\",{\"_index\":159,\"name\":{\"285\":{}},\"comment\":{}}],[\"lownode\",{\"_index\":161,\"name\":{\"289\":{}},\"comment\":{}}],[\"lowqualityin\",{\"_index\":163,\"name\":{\"291\":{}},\"comment\":{}}],[\"lowqualityout\",{\"_index\":164,\"name\":{\"292\":{}},\"comment\":{}}],[\"lsfdefaultripple\",{\"_index\":86,\"name\":{\"130\":{},\"144\":{}},\"comment\":{}}],[\"lsfdepositauth\",{\"_index\":87,\"name\":{\"131\":{},\"145\":{}},\"comment\":{}}],[\"lsfdisablemaster\",{\"_index\":83,\"name\":{\"127\":{},\"141\":{}},\"comment\":{}}],[\"lsfdisallowincomingcheck\",{\"_index\":89,\"name\":{\"133\":{},\"147\":{}},\"comment\":{}}],[\"lsfdisallowincomingnftokenoffer\",{\"_index\":88,\"name\":{\"132\":{},\"146\":{}},\"comment\":{}}],[\"lsfdisallowincomingpaychan\",{\"_index\":90,\"name\":{\"134\":{},\"148\":{}},\"comment\":{}}],[\"lsfdisallowincomingtrustline\",{\"_index\":91,\"name\":{\"135\":{},\"149\":{}},\"comment\":{}}],[\"lsfdisallowxrp\",{\"_index\":82,\"name\":{\"126\":{},\"140\":{}},\"comment\":{}}],[\"lsfglobalfreeze\",{\"_index\":85,\"name\":{\"129\":{},\"143\":{}},\"comment\":{}}],[\"lsfhighauth\",{\"_index\":171,\"name\":{\"300\":{}},\"comment\":{}}],[\"lsfhighfreeze\",{\"_index\":175,\"name\":{\"304\":{}},\"comment\":{}}],[\"lsfhighnoripple\",{\"_index\":173,\"name\":{\"302\":{}},\"comment\":{}}],[\"lsfhighreserve\",{\"_index\":169,\"name\":{\"298\":{}},\"comment\":{}}],[\"lsflowauth\",{\"_index\":170,\"name\":{\"299\":{}},\"comment\":{}}],[\"lsflowfreeze\",{\"_index\":174,\"name\":{\"303\":{}},\"comment\":{}}],[\"lsflownoripple\",{\"_index\":172,\"name\":{\"301\":{}},\"comment\":{}}],[\"lsflowreserve\",{\"_index\":168,\"name\":{\"297\":{}},\"comment\":{}}],[\"lsfnofreeze\",{\"_index\":84,\"name\":{\"128\":{},\"142\":{}},\"comment\":{}}],[\"lsfoneownercount\",{\"_index\":181,\"name\":{\"316\":{}},\"comment\":{}}],[\"lsfpassive\",{\"_index\":154,\"name\":{\"261\":{}},\"comment\":{}}],[\"lsfpasswordspent\",{\"_index\":79,\"name\":{\"123\":{},\"137\":{}},\"comment\":{}}],[\"lsfrequireauth\",{\"_index\":81,\"name\":{\"125\":{},\"139\":{}},\"comment\":{}}],[\"lsfrequiredesttag\",{\"_index\":80,\"name\":{\"124\":{},\"138\":{}},\"comment\":{}}],[\"lsfsell\",{\"_index\":155,\"name\":{\"262\":{}},\"comment\":{}}],[\"mainchain\",{\"_index\":453,\"name\":{\"1346\":{}},\"comment\":{}}],[\"majorities\",{\"_index\":94,\"name\":{\"153\":{}},\"comment\":{}}],[\"manifest\",{\"_index\":386,\"name\":{\"1119\":{}},\"comment\":{}}],[\"manifestrequest\",{\"_index\":382,\"name\":{\"1105\":{}},\"comment\":{}}],[\"manifestresponse\",{\"_index\":383,\"name\":{\"1110\":{}},\"comment\":{}}],[\"marker\",{\"_index\":191,\"name\":{\"337\":{},\"349\":{},\"413\":{},\"424\":{},\"436\":{},\"446\":{},\"463\":{},\"475\":{},\"497\":{},\"509\":{},\"527\":{},\"537\":{},\"664\":{},\"673\":{}},\"comment\":{}}],[\"master_key\",{\"_index\":353,\"name\":{\"1006\":{},\"1117\":{}},\"comment\":{}}],[\"max_ledger\",{\"_index\":298,\"name\":{\"794\":{}},\"comment\":{}}],[\"max_queue_size\",{\"_index\":381,\"name\":{\"1097\":{}},\"comment\":{}}],[\"maxfeexrp\",{\"_index\":6,\"name\":{\"6\":{},\"37\":{},\"66\":{}},\"comment\":{}}],[\"median_fee\",{\"_index\":372,\"name\":{\"1086\":{}},\"comment\":{}}],[\"median_level\",{\"_index\":377,\"name\":{\"1093\":{}},\"comment\":{}}],[\"memos\",{\"_index\":498,\"name\":{\"1442\":{},\"1458\":{},\"1473\":{},\"1490\":{},\"1509\":{},\"1525\":{},\"1541\":{},\"1561\":{},\"1579\":{},\"1596\":{},\"1612\":{},\"1627\":{},\"1646\":{},\"1668\":{},\"1693\":{},\"1721\":{},\"1750\":{},\"1775\":{},\"1795\":{},\"1812\":{},\"1827\":{},\"1843\":{},\"1858\":{},\"1887\":{}},\"comment\":{}}],[\"message\",{\"_index\":617,\"name\":{\"1958\":{},\"1965\":{},\"1972\":{},\"1979\":{},\"1986\":{},\"1993\":{},\"2000\":{},\"2007\":{},\"2014\":{},\"2021\":{},\"2028\":{},\"2035\":{}},\"comment\":{}}],[\"messagekey\",{\"_index\":72,\"name\":{\"116\":{},\"1432\":{}},\"comment\":{}}],[\"meta\",{\"_index\":357,\"name\":{\"1021\":{},\"1051\":{}},\"comment\":{}}],[\"metadata\",{\"_index\":294,\"name\":{\"780\":{},\"1389\":{}},\"comment\":{}}],[\"min_ledger\",{\"_index\":297,\"name\":{\"793\":{}},\"comment\":{}}],[\"minimum_fee\",{\"_index\":373,\"name\":{\"1087\":{}},\"comment\":{}}],[\"minimum_level\",{\"_index\":378,\"name\":{\"1094\":{}},\"comment\":{}}],[\"multisign\",{\"_index\":633,\"name\":{\"2041\":{}},\"comment\":{}}],[\"name\",{\"_index\":616,\"name\":{\"1957\":{},\"1964\":{},\"1971\":{},\"1978\":{},\"1985\":{},\"1992\":{},\"1999\":{},\"2006\":{},\"2013\":{},\"2020\":{},\"2027\":{},\"2034\":{}},\"comment\":{}}],[\"negativeunl\",{\"_index\":144,\"name\":{\"240\":{}},\"comment\":{}}],[\"network_ledger\",{\"_index\":417,\"name\":{\"1168\":{}},\"comment\":{}}],[\"nft_id\",{\"_index\":447,\"name\":{\"1305\":{},\"1312\":{},\"1322\":{},\"1329\":{}},\"comment\":{}}],[\"nftbuyoffersrequest\",{\"_index\":446,\"name\":{\"1303\":{}},\"comment\":{}}],[\"nftbuyoffersresponse\",{\"_index\":448,\"name\":{\"1308\":{}},\"comment\":{}}],[\"nftokenacceptoffer\",{\"_index\":514,\"name\":{\"1585\":{}},\"comment\":{}}],[\"nftokenbrokerfee\",{\"_index\":517,\"name\":{\"1589\":{}},\"comment\":{}}],[\"nftokenburn\",{\"_index\":518,\"name\":{\"1602\":{}},\"comment\":{}}],[\"nftokenbuyoffer\",{\"_index\":516,\"name\":{\"1588\":{}},\"comment\":{}}],[\"nftokencanceloffer\",{\"_index\":520,\"name\":{\"1618\":{}},\"comment\":{}}],[\"nftokencreateoffer\",{\"_index\":522,\"name\":{\"1633\":{}},\"comment\":{}}],[\"nftokencreateofferflags\",{\"_index\":523,\"name\":{\"1652\":{}},\"comment\":{}}],[\"nftokencreateofferflagsinterface\",{\"_index\":525,\"name\":{\"1654\":{}},\"comment\":{}}],[\"nftokenid\",{\"_index\":519,\"name\":{\"1605\":{},\"1635\":{},\"1949\":{}},\"comment\":{}}],[\"nftokenmint\",{\"_index\":526,\"name\":{\"1656\":{}},\"comment\":{}}],[\"nftokenminter\",{\"_index\":496,\"name\":{\"1436\":{}},\"comment\":{}}],[\"nftokenmintflags\",{\"_index\":531,\"name\":{\"1674\":{}},\"comment\":{}}],[\"nftokenmintflagsinterface\",{\"_index\":536,\"name\":{\"1679\":{}},\"comment\":{}}],[\"nftokenoffers\",{\"_index\":521,\"name\":{\"1620\":{}},\"comment\":{}}],[\"nftokenselloffer\",{\"_index\":515,\"name\":{\"1587\":{}},\"comment\":{}}],[\"nftokentaxon\",{\"_index\":527,\"name\":{\"1658\":{}},\"comment\":{}}],[\"nftselloffersrequest\",{\"_index\":449,\"name\":{\"1320\":{}},\"comment\":{}}],[\"nftselloffersresponse\",{\"_index\":450,\"name\":{\"1325\":{}},\"comment\":{}}],[\"node\",{\"_index\":271,\"name\":{\"707\":{}},\"comment\":{}}],[\"node_binary\",{\"_index\":272,\"name\":{\"708\":{}},\"comment\":{}}],[\"noripplecheckrequest\",{\"_index\":246,\"name\":{\"576\":{}},\"comment\":{}}],[\"noripplecheckresponse\",{\"_index\":248,\"name\":{\"586\":{}},\"comment\":{}}],[\"notconnectederror\",{\"_index\":623,\"name\":{\"1983\":{}},\"comment\":{}}],[\"notfounderror\",{\"_index\":629,\"name\":{\"2025\":{}},\"comment\":{}}],[\"obligations\",{\"_index\":243,\"name\":{\"560\":{}},\"comment\":{}}],[\"offer\",{\"_index\":148,\"name\":{\"246\":{},\"693\":{}},\"comment\":{}}],[\"offercancel\",{\"_index\":537,\"name\":{\"1684\":{}},\"comment\":{}}],[\"offercreate\",{\"_index\":544,\"name\":{\"1709\":{}},\"comment\":{}}],[\"offercreateflags\",{\"_index\":538,\"name\":{\"1699\":{}},\"comment\":{}}],[\"offercreateflagsinterface\",{\"_index\":543,\"name\":{\"1704\":{}},\"comment\":{}}],[\"offerflags\",{\"_index\":153,\"name\":{\"260\":{}},\"comment\":{}}],[\"offers\",{\"_index\":233,\"name\":{\"505\":{},\"841\":{},\"1311\":{},\"1328\":{}},\"comment\":{}}],[\"offersequence\",{\"_index\":510,\"name\":{\"1534\":{},\"1570\":{},\"1686\":{},\"1713\":{}},\"comment\":{}}],[\"on\",{\"_index\":10,\"name\":{\"10\":{},\"41\":{}},\"comment\":{}}],[\"open_ledger_cost\",{\"_index\":287,\"name\":{\"738\":{}},\"comment\":{}}],[\"open_ledger_fee\",{\"_index\":374,\"name\":{\"1088\":{}},\"comment\":{}}],[\"open_ledger_level\",{\"_index\":379,\"name\":{\"1095\":{}},\"comment\":{}}],[\"orderbookstream\",{\"_index\":362,\"name\":{\"1042\":{}},\"comment\":{}}],[\"owner\",{\"_index\":111,\"name\":{\"188\":{},\"1533\":{},\"1569\":{},\"1606\":{},\"1637\":{}},\"comment\":{}}],[\"owner_funds\",{\"_index\":254,\"name\":{\"607\":{},\"818\":{}},\"comment\":{}}],[\"ownercount\",{\"_index\":65,\"name\":{\"109\":{}},\"comment\":{}}],[\"ownernode\",{\"_index\":97,\"name\":{\"161\":{},\"177\":{},\"205\":{},\"255\":{},\"271\":{},\"310\":{},\"321\":{},\"830\":{}},\"comment\":{}}],[\"parent_close_time\",{\"_index\":136,\"name\":{\"228\":{}},\"comment\":{}}],[\"parent_hash\",{\"_index\":137,\"name\":{\"229\":{}},\"comment\":{}}],[\"parseaccountrootflags\",{\"_index\":185,\"name\":{\"327\":{}},\"comment\":{}}],[\"parsenftokenid\",{\"_index\":613,\"name\":{\"1947\":{}},\"comment\":{}}],[\"passphrase\",{\"_index\":34,\"name\":{\"74\":{}},\"comment\":{}}],[\"pathfindcloserequest\",{\"_index\":317,\"name\":{\"886\":{}},\"comment\":{}}],[\"pathfindcreaterequest\",{\"_index\":312,\"name\":{\"876\":{}},\"comment\":{}}],[\"pathfindrequest\",{\"_index\":311,\"name\":{\"875\":{}},\"comment\":{}}],[\"pathfindresponse\",{\"_index\":319,\"name\":{\"896\":{}},\"comment\":{}}],[\"pathfindstatusrequest\",{\"_index\":318,\"name\":{\"891\":{}},\"comment\":{}}],[\"pathfindstream\",{\"_index\":358,\"name\":{\"1025\":{}},\"comment\":{}}],[\"paths\",{\"_index\":316,\"name\":{\"882\":{},\"1741\":{}},\"comment\":{}}],[\"paychannel\",{\"_index\":156,\"name\":{\"263\":{}},\"comment\":{}}],[\"payment\",{\"_index\":550,\"name\":{\"1735\":{}},\"comment\":{}}],[\"payment_channel\",{\"_index\":267,\"name\":{\"694\":{}},\"comment\":{}}],[\"paymentchannelclaim\",{\"_index\":555,\"name\":{\"1762\":{}},\"comment\":{}}],[\"paymentchannelclaimflags\",{\"_index\":551,\"name\":{\"1756\":{}},\"comment\":{}}],[\"paymentchannelclaimflagsinterface\",{\"_index\":554,\"name\":{\"1759\":{}},\"comment\":{}}],[\"paymentchannelcreate\",{\"_index\":557,\"name\":{\"1781\":{}},\"comment\":{}}],[\"paymentchannelfund\",{\"_index\":558,\"name\":{\"1801\":{}},\"comment\":{}}],[\"paymentflags\",{\"_index\":545,\"name\":{\"1727\":{}},\"comment\":{}}],[\"paymentflagsinterface\",{\"_index\":549,\"name\":{\"1731\":{}},\"comment\":{}}],[\"peer\",{\"_index\":216,\"name\":{\"411\":{}},\"comment\":{}}],[\"peer_disconnects\",{\"_index\":415,\"name\":{\"1166\":{},\"1235\":{}},\"comment\":{}}],[\"peer_disconnects_resources\",{\"_index\":416,\"name\":{\"1167\":{},\"1236\":{}},\"comment\":{}}],[\"peers\",{\"_index\":418,\"name\":{\"1169\":{},\"1237\":{}},\"comment\":{}}],[\"peerstatusstream\",{\"_index\":359,\"name\":{\"1034\":{}},\"comment\":{}}],[\"pending_transactions\",{\"_index\":458,\"name\":{\"1356\":{},\"1373\":{}},\"comment\":{}}],[\"percenttoquality\",{\"_index\":581,\"name\":{\"1901\":{}},\"comment\":{}}],[\"percenttotransferrate\",{\"_index\":583,\"name\":{\"1903\":{}},\"comment\":{}}],[\"pingrequest\",{\"_index\":436,\"name\":{\"1263\":{}},\"comment\":{}}],[\"pingresponse\",{\"_index\":437,\"name\":{\"1267\":{}},\"comment\":{}}],[\"preparetransaction\",{\"_index\":19,\"name\":{\"21\":{},\"52\":{}},\"comment\":{}}],[\"previoustxnid\",{\"_index\":66,\"name\":{\"110\":{},\"162\":{},\"178\":{},\"207\":{},\"256\":{},\"272\":{},\"287\":{},\"308\":{},\"322\":{},\"831\":{}},\"comment\":{}}],[\"previoustxnlgrseq\",{\"_index\":67,\"name\":{\"111\":{},\"163\":{},\"179\":{},\"208\":{},\"257\":{},\"273\":{},\"288\":{},\"309\":{},\"323\":{},\"832\":{}},\"comment\":{}}],[\"privatekey\",{\"_index\":47,\"name\":{\"90\":{}},\"comment\":{}}],[\"problems\",{\"_index\":249,\"name\":{\"590\":{}},\"comment\":{}}],[\"proposers\",{\"_index\":404,\"name\":{\"1154\":{},\"1224\":{}},\"comment\":{}}],[\"proxy\",{\"_index\":27,\"name\":{\"67\":{}},\"comment\":{}}],[\"proxyauthorization\",{\"_index\":30,\"name\":{\"70\":{}},\"comment\":{}}],[\"pubkey_node\",{\"_index\":419,\"name\":{\"1170\":{},\"1238\":{}},\"comment\":{}}],[\"pubkey_validator\",{\"_index\":420,\"name\":{\"1171\":{},\"1239\":{}},\"comment\":{}}],[\"public_key\",{\"_index\":328,\"name\":{\"948\":{},\"1107\":{},\"1362\":{}},\"comment\":{}}],[\"publickey\",{\"_index\":46,\"name\":{\"89\":{},\"269\":{},\"1769\":{},\"1786\":{}},\"comment\":{}}],[\"quality\",{\"_index\":230,\"name\":{\"489\":{},\"821\":{}},\"comment\":{}}],[\"qualityin\",{\"_index\":571,\"name\":{\"1879\":{}},\"comment\":{}}],[\"qualityout\",{\"_index\":572,\"name\":{\"1880\":{}},\"comment\":{}}],[\"qualitytodecimal\",{\"_index\":586,\"name\":{\"1906\":{}},\"comment\":{}}],[\"queue\",{\"_index\":209,\"name\":{\"385\":{},\"609\":{}},\"comment\":{}}],[\"queue_data\",{\"_index\":214,\"name\":{\"397\":{},\"618\":{}},\"comment\":{}}],[\"queued\",{\"_index\":286,\"name\":{\"737\":{}},\"comment\":{}}],[\"random\",{\"_index\":441,\"name\":{\"1286\":{}},\"comment\":{}}],[\"randomrequest\",{\"_index\":439,\"name\":{\"1279\":{}},\"comment\":{}}],[\"randomresponse\",{\"_index\":440,\"name\":{\"1283\":{}},\"comment\":{}}],[\"receive_currencies\",{\"_index\":206,\"name\":{\"370\":{}},\"comment\":{}}],[\"reference_level\",{\"_index\":380,\"name\":{\"1096\":{}},\"comment\":{}}],[\"referencefeeunits\",{\"_index\":123,\"name\":{\"213\":{}},\"comment\":{}}],[\"regularkey\",{\"_index\":73,\"name\":{\"117\":{},\"1820\":{}},\"comment\":{}}],[\"request\",{\"_index\":8,\"name\":{\"8\":{},\"39\":{},\"328\":{},\"1301\":{}},\"comment\":{}}],[\"requestall\",{\"_index\":11,\"name\":{\"11\":{},\"42\":{}},\"comment\":{}}],[\"requested\",{\"_index\":387,\"name\":{\"1120\":{}},\"comment\":{}}],[\"requestnextpage\",{\"_index\":9,\"name\":{\"9\":{},\"40\":{}},\"comment\":{}}],[\"reserve_base\",{\"_index\":344,\"name\":{\"991\":{},\"1007\":{},\"1216\":{},\"1251\":{}},\"comment\":{}}],[\"reserve_base_xrp\",{\"_index\":396,\"name\":{\"1144\":{},\"1182\":{}},\"comment\":{}}],[\"reserve_inc\",{\"_index\":345,\"name\":{\"992\":{},\"1008\":{},\"1217\":{},\"1252\":{}},\"comment\":{}}],[\"reserve_inc_xrp\",{\"_index\":397,\"name\":{\"1145\":{},\"1183\":{}},\"comment\":{}}],[\"reservebase\",{\"_index\":124,\"name\":{\"214\":{}},\"comment\":{}}],[\"reserveincrement\",{\"_index\":125,\"name\":{\"215\":{}},\"comment\":{}}],[\"response\",{\"_index\":186,\"name\":{\"329\":{}},\"comment\":{}}],[\"responseformaterror\",{\"_index\":627,\"name\":{\"2011\":{}},\"comment\":{}}],[\"result\",{\"_index\":195,\"name\":{\"341\":{},\"366\":{},\"391\":{},\"417\":{},\"440\":{},\"467\":{},\"502\":{},\"531\":{},\"557\":{},\"587\":{},\"613\":{},\"632\":{},\"648\":{},\"668\":{},\"703\":{},\"724\":{},\"754\":{},\"776\":{},\"798\":{},\"836\":{},\"859\":{},\"897\":{},\"926\":{},\"953\":{},\"975\":{},\"1066\":{},\"1079\":{},\"1111\":{},\"1133\":{},\"1204\":{},\"1268\":{},\"1284\":{},\"1309\":{},\"1326\":{},\"1342\":{}},\"comment\":{}}],[\"rfc1751mnemonictokey\",{\"_index\":58,\"name\":{\"102\":{}},\"comment\":{}}],[\"ripple_state\",{\"_index\":268,\"name\":{\"695\":{}},\"comment\":{}}],[\"ripplederror\",{\"_index\":622,\"name\":{\"1976\":{}},\"comment\":{}}],[\"ripplednotinitializederror\",{\"_index\":625,\"name\":{\"1997\":{}},\"comment\":{}}],[\"ripplepathfindrequest\",{\"_index\":322,\"name\":{\"914\":{}},\"comment\":{}}],[\"ripplepathfindresponse\",{\"_index\":324,\"name\":{\"925\":{}},\"comment\":{}}],[\"ripplestate\",{\"_index\":158,\"name\":{\"281\":{}},\"comment\":{}}],[\"ripplestateflags\",{\"_index\":167,\"name\":{\"296\":{}},\"comment\":{}}],[\"rippletimetoisotime\",{\"_index\":577,\"name\":{\"1897\":{}},\"comment\":{}}],[\"rippletimetounixtime\",{\"_index\":579,\"name\":{\"1899\":{}},\"comment\":{}}],[\"role\",{\"_index\":247,\"name\":{\"579\":{},\"1270\":{}},\"comment\":{}}],[\"rootindex\",{\"_index\":107,\"name\":{\"184\":{}},\"comment\":{}}],[\"searched_all\",{\"_index\":300,\"name\":{\"799\":{}},\"comment\":{}}],[\"seed\",{\"_index\":49,\"name\":{\"92\":{}},\"comment\":{}}],[\"send_currencies\",{\"_index\":207,\"name\":{\"371\":{}},\"comment\":{}}],[\"send_max\",{\"_index\":315,\"name\":{\"881\":{},\"919\":{},\"1032\":{}},\"comment\":{}}],[\"sendmax\",{\"_index\":98,\"name\":{\"164\":{},\"1499\":{},\"1742\":{}},\"comment\":{}}],[\"seq\",{\"_index\":227,\"name\":{\"486\":{},\"1118\":{},\"1146\":{},\"1184\":{},\"1218\":{},\"1253\":{}},\"comment\":{}}],[\"sequence\",{\"_index\":68,\"name\":{\"112\":{},\"165\":{},\"250\":{},\"825\":{},\"1357\":{},\"1374\":{},\"1439\":{},\"1454\":{},\"1469\":{},\"1486\":{},\"1505\":{},\"1521\":{},\"1537\":{},\"1557\":{},\"1575\":{},\"1592\":{},\"1608\":{},\"1623\":{},\"1643\":{},\"1665\":{},\"1689\":{},\"1718\":{},\"1747\":{},\"1772\":{},\"1791\":{},\"1808\":{},\"1823\":{},\"1839\":{},\"1854\":{},\"1884\":{},\"1954\":{}},\"comment\":{}}],[\"server_state\",{\"_index\":421,\"name\":{\"1172\":{},\"1240\":{}},\"comment\":{}}],[\"server_state_duration_us\",{\"_index\":422,\"name\":{\"1173\":{},\"1241\":{}},\"comment\":{}}],[\"serverinforequest\",{\"_index\":388,\"name\":{\"1128\":{}},\"comment\":{}}],[\"serverinforesponse\",{\"_index\":389,\"name\":{\"1132\":{}},\"comment\":{}}],[\"serverstaterequest\",{\"_index\":431,\"name\":{\"1199\":{}},\"comment\":{}}],[\"serverstateresponse\",{\"_index\":432,\"name\":{\"1203\":{}},\"comment\":{}}],[\"setflag\",{\"_index\":495,\"name\":{\"1433\":{}},\"comment\":{}}],[\"setregularkey\",{\"_index\":559,\"name\":{\"1818\":{}},\"comment\":{}}],[\"settledelay\",{\"_index\":157,\"name\":{\"270\":{},\"1785\":{}},\"comment\":{}}],[\"settransactionflagstonumber\",{\"_index\":184,\"name\":{\"326\":{}},\"comment\":{}}],[\"sidechain\",{\"_index\":460,\"name\":{\"1363\":{}},\"comment\":{}}],[\"sign\",{\"_index\":51,\"name\":{\"94\":{}},\"comment\":{}}],[\"signature\",{\"_index\":329,\"name\":{\"949\":{},\"1009\":{},\"1768\":{}},\"comment\":{}}],[\"signature_verified\",{\"_index\":331,\"name\":{\"955\":{}},\"comment\":{}}],[\"signer_lists\",{\"_index\":210,\"name\":{\"386\":{},\"394\":{}},\"comment\":{}}],[\"signerentries\",{\"_index\":177,\"name\":{\"311\":{},\"1836\":{}},\"comment\":{}}],[\"signerlist\",{\"_index\":176,\"name\":{\"305\":{}},\"comment\":{}}],[\"signerlistflags\",{\"_index\":180,\"name\":{\"315\":{}},\"comment\":{}}],[\"signerlistid\",{\"_index\":178,\"name\":{\"312\":{}},\"comment\":{}}],[\"signerlistset\",{\"_index\":560,\"name\":{\"1833\":{}},\"comment\":{}}],[\"signerquorum\",{\"_index\":179,\"name\":{\"313\":{},\"1835\":{}},\"comment\":{}}],[\"signers\",{\"_index\":499,\"name\":{\"1443\":{},\"1459\":{},\"1474\":{},\"1491\":{},\"1510\":{},\"1526\":{},\"1542\":{},\"1562\":{},\"1580\":{},\"1597\":{},\"1613\":{},\"1628\":{},\"1647\":{},\"1669\":{},\"1694\":{},\"1722\":{},\"1751\":{},\"1776\":{},\"1796\":{},\"1813\":{},\"1828\":{},\"1844\":{},\"1859\":{},\"1888\":{}},\"comment\":{}}],[\"signing_time\",{\"_index\":354,\"name\":{\"1010\":{}},\"comment\":{}}],[\"signingpubkey\",{\"_index\":500,\"name\":{\"1445\":{},\"1461\":{},\"1476\":{},\"1493\":{},\"1512\":{},\"1528\":{},\"1544\":{},\"1564\":{},\"1582\":{},\"1599\":{},\"1615\":{},\"1630\":{},\"1649\":{},\"1671\":{},\"1696\":{},\"1724\":{},\"1753\":{},\"1778\":{},\"1798\":{},\"1815\":{},\"1830\":{},\"1846\":{},\"1861\":{},\"1890\":{}},\"comment\":{}}],[\"signpaymentchannelclaim\",{\"_index\":602,\"name\":{\"1936\":{}},\"comment\":{}}],[\"source_account\",{\"_index\":308,\"name\":{\"852\":{},\"866\":{},\"878\":{},\"902\":{},\"916\":{},\"935\":{},\"1027\":{}},\"comment\":{}}],[\"source_currencies\",{\"_index\":323,\"name\":{\"920\":{}},\"comment\":{}}],[\"sourcetag\",{\"_index\":103,\"name\":{\"170\":{},\"203\":{},\"277\":{},\"1444\":{},\"1460\":{},\"1475\":{},\"1492\":{},\"1511\":{},\"1527\":{},\"1543\":{},\"1563\":{},\"1581\":{},\"1598\":{},\"1614\":{},\"1629\":{},\"1648\":{},\"1670\":{},\"1695\":{},\"1723\":{},\"1752\":{},\"1777\":{},\"1797\":{},\"1814\":{},\"1829\":{},\"1845\":{},\"1860\":{},\"1889\":{}},\"comment\":{}}],[\"state\",{\"_index\":262,\"name\":{\"672\":{},\"1206\":{},\"1355\":{},\"1372\":{}},\"comment\":{}}],[\"state_accounting\",{\"_index\":423,\"name\":{\"1174\":{},\"1242\":{}},\"comment\":{}}],[\"status\",{\"_index\":198,\"name\":{\"351\":{},\"374\":{},\"400\":{},\"426\":{},\"449\":{},\"478\":{},\"511\":{},\"541\":{},\"570\":{},\"593\":{},\"621\":{},\"637\":{},\"652\":{},\"676\":{},\"711\":{},\"741\":{},\"762\":{},\"783\":{},\"801\":{},\"844\":{},\"869\":{},\"906\":{},\"908\":{},\"938\":{},\"957\":{},\"977\":{},\"1013\":{},\"1043\":{},\"1068\":{},\"1099\":{},\"1122\":{},\"1191\":{},\"1193\":{},\"1257\":{},\"1273\":{},\"1288\":{},\"1296\":{},\"1314\":{},\"1331\":{},\"1351\":{},\"1368\":{},\"1380\":{}},\"comment\":{}}],[\"stream\",{\"_index\":339,\"name\":{\"983\":{}},\"comment\":{}}],[\"streams\",{\"_index\":333,\"name\":{\"965\":{},\"1059\":{}},\"comment\":{}}],[\"strict\",{\"_index\":204,\"name\":{\"362\":{},\"387\":{},\"498\":{},\"550\":{}},\"comment\":{}}],[\"subcommand\",{\"_index\":313,\"name\":{\"877\":{},\"887\":{},\"892\":{}},\"comment\":{}}],[\"submit\",{\"_index\":17,\"name\":{\"17\":{},\"48\":{}},\"comment\":{}}],[\"submitandwait\",{\"_index\":18,\"name\":{\"19\":{},\"50\":{}},\"comment\":{}}],[\"submitmultisignedrequest\",{\"_index\":289,\"name\":{\"747\":{}},\"comment\":{}}],[\"submitmultisignedresponse\",{\"_index\":290,\"name\":{\"753\":{}},\"comment\":{}}],[\"submitrequest\",{\"_index\":273,\"name\":{\"717\":{}},\"comment\":{}}],[\"submitresponse\",{\"_index\":275,\"name\":{\"723\":{}},\"comment\":{}}],[\"subscriberequest\",{\"_index\":332,\"name\":{\"963\":{}},\"comment\":{}}],[\"subscriberesponse\",{\"_index\":338,\"name\":{\"974\":{}},\"comment\":{}}],[\"taker\",{\"_index\":302,\"name\":{\"812\":{}},\"comment\":{}}],[\"taker_gets\",{\"_index\":228,\"name\":{\"487\":{},\"813\":{}},\"comment\":{}}],[\"taker_gets_funded\",{\"_index\":304,\"name\":{\"819\":{}},\"comment\":{}}],[\"taker_pays\",{\"_index\":229,\"name\":{\"488\":{},\"814\":{}},\"comment\":{}}],[\"taker_pays_funded\",{\"_index\":305,\"name\":{\"820\":{}},\"comment\":{}}],[\"takergets\",{\"_index\":150,\"name\":{\"252\":{},\"827\":{},\"1714\":{}},\"comment\":{}}],[\"takergetscurrency\",{\"_index\":114,\"name\":{\"191\":{}},\"comment\":{}}],[\"takergetsissuer\",{\"_index\":115,\"name\":{\"192\":{}},\"comment\":{}}],[\"takerpays\",{\"_index\":149,\"name\":{\"251\":{},\"826\":{},\"1715\":{}},\"comment\":{}}],[\"takerpayscurrency\",{\"_index\":112,\"name\":{\"189\":{}},\"comment\":{}}],[\"takerpaysissuer\",{\"_index\":113,\"name\":{\"190\":{}},\"comment\":{}}],[\"taxon\",{\"_index\":614,\"name\":{\"1953\":{}},\"comment\":{}}],[\"tfallowxrp\",{\"_index\":490,\"name\":{\"1418\":{},\"1425\":{}},\"comment\":{}}],[\"tfburnable\",{\"_index\":532,\"name\":{\"1675\":{},\"1680\":{}},\"comment\":{}}],[\"tfclearfreeze\",{\"_index\":567,\"name\":{\"1869\":{},\"1875\":{}},\"comment\":{}}],[\"tfclearnoripple\",{\"_index\":565,\"name\":{\"1867\":{},\"1873\":{}},\"comment\":{}}],[\"tfclose\",{\"_index\":553,\"name\":{\"1758\":{},\"1761\":{}},\"comment\":{}}],[\"tfdisallowxrp\",{\"_index\":489,\"name\":{\"1417\":{},\"1424\":{}},\"comment\":{}}],[\"tffillorkill\",{\"_index\":541,\"name\":{\"1702\":{},\"1707\":{}},\"comment\":{}}],[\"tfimmediateorcancel\",{\"_index\":540,\"name\":{\"1701\":{},\"1706\":{}},\"comment\":{}}],[\"tflimitquality\",{\"_index\":548,\"name\":{\"1730\":{},\"1734\":{}},\"comment\":{}}],[\"tfnodirectripple\",{\"_index\":546,\"name\":{\"1728\":{},\"1732\":{}},\"comment\":{}}],[\"tfonlyxrp\",{\"_index\":533,\"name\":{\"1676\":{},\"1681\":{}},\"comment\":{}}],[\"tfoptionalauth\",{\"_index\":488,\"name\":{\"1416\":{},\"1423\":{}},\"comment\":{}}],[\"tfoptionaldesttag\",{\"_index\":486,\"name\":{\"1414\":{},\"1421\":{}},\"comment\":{}}],[\"tfpartialpayment\",{\"_index\":547,\"name\":{\"1729\":{},\"1733\":{}},\"comment\":{}}],[\"tfpassive\",{\"_index\":539,\"name\":{\"1700\":{},\"1705\":{}},\"comment\":{}}],[\"tfrenew\",{\"_index\":552,\"name\":{\"1757\":{},\"1760\":{}},\"comment\":{}}],[\"tfrequireauth\",{\"_index\":487,\"name\":{\"1415\":{},\"1422\":{}},\"comment\":{}}],[\"tfrequiredesttag\",{\"_index\":485,\"name\":{\"1413\":{},\"1420\":{}},\"comment\":{}}],[\"tfsell\",{\"_index\":542,\"name\":{\"1703\":{},\"1708\":{}},\"comment\":{}}],[\"tfsellnftoken\",{\"_index\":524,\"name\":{\"1653\":{},\"1655\":{}},\"comment\":{}}],[\"tfsetfauth\",{\"_index\":563,\"name\":{\"1865\":{},\"1871\":{}},\"comment\":{}}],[\"tfsetfreeze\",{\"_index\":566,\"name\":{\"1868\":{},\"1874\":{}},\"comment\":{}}],[\"tfsetnoripple\",{\"_index\":564,\"name\":{\"1866\":{},\"1872\":{}},\"comment\":{}}],[\"tftransferable\",{\"_index\":535,\"name\":{\"1678\":{},\"1683\":{}},\"comment\":{}}],[\"tftrustline\",{\"_index\":534,\"name\":{\"1677\":{},\"1682\":{}},\"comment\":{}}],[\"threads\",{\"_index\":407,\"name\":{\"1158\":{},\"1228\":{}},\"comment\":{}}],[\"ticket\",{\"_index\":182,\"name\":{\"317\":{},\"699\":{}},\"comment\":{}}],[\"ticketcount\",{\"_index\":74,\"name\":{\"118\":{},\"1851\":{}},\"comment\":{}}],[\"ticketcreate\",{\"_index\":561,\"name\":{\"1849\":{}},\"comment\":{}}],[\"tickets\",{\"_index\":459,\"name\":{\"1358\":{},\"1361\":{},\"1375\":{},\"1378\":{}},\"comment\":{}}],[\"ticketsequence\",{\"_index\":183,\"name\":{\"324\":{},\"1446\":{},\"1462\":{},\"1477\":{},\"1494\":{},\"1513\":{},\"1529\":{},\"1545\":{},\"1565\":{},\"1583\":{},\"1600\":{},\"1616\":{},\"1631\":{},\"1650\":{},\"1672\":{},\"1697\":{},\"1725\":{},\"1754\":{},\"1779\":{},\"1799\":{},\"1816\":{},\"1831\":{},\"1847\":{},\"1862\":{},\"1891\":{}},\"comment\":{}}],[\"ticksize\",{\"_index\":75,\"name\":{\"119\":{},\"1435\":{}},\"comment\":{}}],[\"time\",{\"_index\":424,\"name\":{\"1175\":{},\"1243\":{}},\"comment\":{}}],[\"timeout\",{\"_index\":28,\"name\":{\"68\":{}},\"comment\":{}}],[\"timeouterror\",{\"_index\":626,\"name\":{\"2004\":{}},\"comment\":{}}],[\"tostring\",{\"_index\":618,\"name\":{\"1960\":{},\"1967\":{},\"1974\":{},\"1981\":{},\"1988\":{},\"1995\":{},\"2002\":{},\"2009\":{},\"2016\":{},\"2023\":{},\"2030\":{},\"2037\":{}},\"comment\":{}}],[\"total_coins\",{\"_index\":138,\"name\":{\"230\":{}},\"comment\":{}}],[\"trace\",{\"_index\":29,\"name\":{\"69\":{}},\"comment\":{}}],[\"transaction\",{\"_index\":296,\"name\":{\"791\":{},\"1022\":{},\"1052\":{},\"1388\":{},\"1390\":{}},\"comment\":{}}],[\"transaction_hash\",{\"_index\":139,\"name\":{\"231\":{}},\"comment\":{}}],[\"transactionandmetadata\",{\"_index\":462,\"name\":{\"1387\":{}},\"comment\":{}}],[\"transactionentryrequest\",{\"_index\":291,\"name\":{\"768\":{}},\"comment\":{}}],[\"transactionentryresponse\",{\"_index\":293,\"name\":{\"775\":{}},\"comment\":{}}],[\"transactionindex\",{\"_index\":467,\"name\":{\"1395\":{}},\"comment\":{}}],[\"transactionmetadata\",{\"_index\":463,\"name\":{\"1391\":{}},\"comment\":{}}],[\"transactionresult\",{\"_index\":468,\"name\":{\"1396\":{}},\"comment\":{}}],[\"transactions\",{\"_index\":140,\"name\":{\"232\":{},\"538\":{},\"580\":{},\"591\":{},\"605\":{}},\"comment\":{}}],[\"transactionstream\",{\"_index\":356,\"name\":{\"1012\":{}},\"comment\":{}}],[\"transactiontype\",{\"_index\":493,\"name\":{\"1427\":{},\"1449\":{},\"1465\":{},\"1480\":{},\"1497\":{},\"1516\":{},\"1532\":{},\"1548\":{},\"1568\":{},\"1586\":{},\"1603\":{},\"1619\":{},\"1634\":{},\"1657\":{},\"1685\":{},\"1710\":{},\"1736\":{},\"1763\":{},\"1782\":{},\"1802\":{},\"1819\":{},\"1834\":{},\"1850\":{},\"1877\":{}},\"comment\":{}}],[\"transferfee\",{\"_index\":529,\"name\":{\"1660\":{},\"1951\":{}},\"comment\":{}}],[\"transferrate\",{\"_index\":76,\"name\":{\"120\":{},\"1434\":{}},\"comment\":{}}],[\"transferratetodecimal\",{\"_index\":585,\"name\":{\"1905\":{}},\"comment\":{}}],[\"trustedcertificates\",{\"_index\":32,\"name\":{\"72\":{}},\"comment\":{}}],[\"trustset\",{\"_index\":569,\"name\":{\"1876\":{}},\"comment\":{}}],[\"trustsetflags\",{\"_index\":568,\"name\":{\"1870\":{}},\"comment\":{}}],[\"trustsetflagsinterface\",{\"_index\":562,\"name\":{\"1864\":{}},\"comment\":{}}],[\"tx_blob\",{\"_index\":52,\"name\":{\"96\":{},\"719\":{},\"729\":{},\"759\":{}},\"comment\":{}}],[\"tx_hash\",{\"_index\":292,\"name\":{\"772\":{}},\"comment\":{}}],[\"tx_json\",{\"_index\":279,\"name\":{\"730\":{},\"749\":{},\"760\":{},\"781\":{}},\"comment\":{}}],[\"txn_count\",{\"_index\":346,\"name\":{\"993\":{}},\"comment\":{}}],[\"txnsignature\",{\"_index\":501,\"name\":{\"1447\":{},\"1463\":{},\"1478\":{},\"1495\":{},\"1514\":{},\"1530\":{},\"1546\":{},\"1566\":{},\"1584\":{},\"1601\":{},\"1617\":{},\"1632\":{},\"1651\":{},\"1673\":{},\"1698\":{},\"1726\":{},\"1755\":{},\"1780\":{},\"1800\":{},\"1817\":{},\"1832\":{},\"1848\":{},\"1863\":{},\"1892\":{}},\"comment\":{}}],[\"txrequest\",{\"_index\":295,\"name\":{\"789\":{}},\"comment\":{}}],[\"txresponse\",{\"_index\":299,\"name\":{\"797\":{}},\"comment\":{}}],[\"type\",{\"_index\":199,\"name\":{\"352\":{},\"375\":{},\"401\":{},\"427\":{},\"450\":{},\"458\":{},\"479\":{},\"512\":{},\"542\":{},\"571\":{},\"594\":{},\"622\":{},\"638\":{},\"653\":{},\"677\":{},\"712\":{},\"742\":{},\"763\":{},\"784\":{},\"802\":{},\"845\":{},\"870\":{},\"909\":{},\"939\":{},\"958\":{},\"978\":{},\"985\":{},\"996\":{},\"1014\":{},\"1026\":{},\"1035\":{},\"1044\":{},\"1055\":{},\"1069\":{},\"1100\":{},\"1123\":{},\"1194\":{},\"1258\":{},\"1274\":{},\"1289\":{},\"1297\":{},\"1315\":{},\"1332\":{},\"1381\":{}},\"comment\":{}}],[\"unauthorize\",{\"_index\":508,\"name\":{\"1518\":{}},\"comment\":{}}],[\"unexpectederror\",{\"_index\":620,\"name\":{\"1962\":{}},\"comment\":{}}],[\"unixtimetorippletime\",{\"_index\":580,\"name\":{\"1900\":{}},\"comment\":{}}],[\"unlimited\",{\"_index\":438,\"name\":{\"1271\":{}},\"comment\":{}}],[\"unsubscriberequest\",{\"_index\":365,\"name\":{\"1057\":{}},\"comment\":{}}],[\"unsubscriberesponse\",{\"_index\":366,\"name\":{\"1065\":{}},\"comment\":{}}],[\"uptime\",{\"_index\":425,\"name\":{\"1176\":{},\"1244\":{}},\"comment\":{}}],[\"uri\",{\"_index\":530,\"name\":{\"1661\":{}},\"comment\":{}}],[\"url\",{\"_index\":7,\"name\":{\"7\":{},\"38\":{},\"969\":{}},\"comment\":{}}],[\"url_password\",{\"_index\":337,\"name\":{\"971\":{}},\"comment\":{}}],[\"url_username\",{\"_index\":336,\"name\":{\"970\":{}},\"comment\":{}}],[\"validate\",{\"_index\":461,\"name\":{\"1386\":{}},\"comment\":{}}],[\"validated\",{\"_index\":197,\"name\":{\"347\":{},\"372\":{},\"398\":{},\"445\":{},\"476\":{},\"539\":{},\"619\":{},\"674\":{},\"709\":{},\"842\":{},\"867\":{},\"936\":{},\"1023\":{},\"1053\":{}},\"comment\":{}}],[\"validated_ledger\",{\"_index\":426,\"name\":{\"1177\":{},\"1245\":{}},\"comment\":{}}],[\"validated_ledger_index\",{\"_index\":288,\"name\":{\"739\":{}},\"comment\":{}}],[\"validated_ledgers\",{\"_index\":347,\"name\":{\"994\":{}},\"comment\":{}}],[\"validation_public_key\",{\"_index\":355,\"name\":{\"1011\":{}},\"comment\":{}}],[\"validation_quorum\",{\"_index\":427,\"name\":{\"1185\":{},\"1254\":{}},\"comment\":{}}],[\"validationerror\",{\"_index\":628,\"name\":{\"2018\":{}},\"comment\":{}}],[\"validationstream\",{\"_index\":348,\"name\":{\"995\":{}},\"comment\":{}}],[\"validator_list\",{\"_index\":429,\"name\":{\"1187\":{}},\"comment\":{}}],[\"validator_list_expires\",{\"_index\":428,\"name\":{\"1186\":{},\"1255\":{}},\"comment\":{}}],[\"validatortodisable\",{\"_index\":146,\"name\":{\"243\":{}},\"comment\":{}}],[\"validatortoreenable\",{\"_index\":147,\"name\":{\"244\":{}},\"comment\":{}}],[\"verifypaymentchannelclaim\",{\"_index\":603,\"name\":{\"1937\":{}},\"comment\":{}}],[\"verifysignature\",{\"_index\":632,\"name\":{\"2040\":{}},\"comment\":{}}],[\"verifytransaction\",{\"_index\":54,\"name\":{\"98\":{}},\"comment\":{}}],[\"wallet\",{\"_index\":38,\"name\":{\"79\":{}},\"comment\":{}}],[\"warning\",{\"_index\":200,\"name\":{\"353\":{},\"376\":{},\"402\":{},\"428\":{},\"451\":{},\"480\":{},\"513\":{},\"543\":{},\"572\":{},\"595\":{},\"623\":{},\"639\":{},\"654\":{},\"678\":{},\"713\":{},\"743\":{},\"764\":{},\"785\":{},\"803\":{},\"846\":{},\"871\":{},\"910\":{},\"940\":{},\"959\":{},\"979\":{},\"1070\":{},\"1101\":{},\"1124\":{},\"1195\":{},\"1259\":{},\"1275\":{},\"1290\":{},\"1316\":{},\"1333\":{},\"1382\":{}},\"comment\":{}}],[\"warnings\",{\"_index\":201,\"name\":{\"354\":{},\"377\":{},\"403\":{},\"429\":{},\"452\":{},\"481\":{},\"514\":{},\"544\":{},\"573\":{},\"596\":{},\"624\":{},\"640\":{},\"655\":{},\"679\":{},\"714\":{},\"744\":{},\"765\":{},\"786\":{},\"804\":{},\"847\":{},\"872\":{},\"911\":{},\"941\":{},\"960\":{},\"980\":{},\"1024\":{},\"1071\":{},\"1102\":{},\"1125\":{},\"1196\":{},\"1260\":{},\"1276\":{},\"1291\":{},\"1317\":{},\"1334\":{},\"1383\":{}},\"comment\":{}}],[\"xrplerror\",{\"_index\":615,\"name\":{\"1955\":{}},\"comment\":{}}],[\"xrplfauceterror\",{\"_index\":630,\"name\":{\"2032\":{}},\"comment\":{}}],[\"xrptodrops\",{\"_index\":575,\"name\":{\"1895\":{}},\"comment\":{}}]],\"pipeline\":[]}}"); \ No newline at end of file +window.searchData = JSON.parse("{\"rows\":[{\"kind\":128,\"name\":\"Client\",\"url\":\"classes/Client.html\",\"classes\":\"\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/Client.html#constructor\",\"classes\":\"\",\"parent\":\"Client\"},{\"kind\":1024,\"name\":\"connection\",\"url\":\"classes/Client.html#connection\",\"classes\":\"\",\"parent\":\"Client\"},{\"kind\":1024,\"name\":\"feeCushion\",\"url\":\"classes/Client.html#feeCushion\",\"classes\":\"\",\"parent\":\"Client\"},{\"kind\":1024,\"name\":\"maxFeeXRP\",\"url\":\"classes/Client.html#maxFeeXRP\",\"classes\":\"\",\"parent\":\"Client\"},{\"kind\":1024,\"name\":\"networkID\",\"url\":\"classes/Client.html#networkID\",\"classes\":\"\",\"parent\":\"Client\"},{\"kind\":1024,\"name\":\"buildVersion\",\"url\":\"classes/Client.html#buildVersion\",\"classes\":\"\",\"parent\":\"Client\"},{\"kind\":262144,\"name\":\"url\",\"url\":\"classes/Client.html#url\",\"classes\":\"\",\"parent\":\"Client\"},{\"kind\":2048,\"name\":\"request\",\"url\":\"classes/Client.html#request\",\"classes\":\"\",\"parent\":\"Client\"},{\"kind\":2048,\"name\":\"requestNextPage\",\"url\":\"classes/Client.html#requestNextPage\",\"classes\":\"\",\"parent\":\"Client\"},{\"kind\":2048,\"name\":\"on\",\"url\":\"classes/Client.html#on\",\"classes\":\"\",\"parent\":\"Client\"},{\"kind\":2048,\"name\":\"requestAll\",\"url\":\"classes/Client.html#requestAll\",\"classes\":\"\",\"parent\":\"Client\"},{\"kind\":2048,\"name\":\"getServerInfo\",\"url\":\"classes/Client.html#getServerInfo\",\"classes\":\"\",\"parent\":\"Client\"},{\"kind\":2048,\"name\":\"connect\",\"url\":\"classes/Client.html#connect\",\"classes\":\"\",\"parent\":\"Client\"},{\"kind\":2048,\"name\":\"disconnect\",\"url\":\"classes/Client.html#disconnect\",\"classes\":\"\",\"parent\":\"Client\"},{\"kind\":2048,\"name\":\"isConnected\",\"url\":\"classes/Client.html#isConnected\",\"classes\":\"\",\"parent\":\"Client\"},{\"kind\":2048,\"name\":\"autofill\",\"url\":\"classes/Client.html#autofill\",\"classes\":\"\",\"parent\":\"Client\"},{\"kind\":2048,\"name\":\"submit\",\"url\":\"classes/Client.html#submit\",\"classes\":\"\",\"parent\":\"Client\"},{\"kind\":2048,\"name\":\"submitAndWait\",\"url\":\"classes/Client.html#submitAndWait\",\"classes\":\"\",\"parent\":\"Client\"},{\"kind\":2048,\"name\":\"prepareTransaction\",\"url\":\"classes/Client.html#prepareTransaction\",\"classes\":\"\",\"parent\":\"Client\"},{\"kind\":2048,\"name\":\"getXrpBalance\",\"url\":\"classes/Client.html#getXrpBalance\",\"classes\":\"\",\"parent\":\"Client\"},{\"kind\":2048,\"name\":\"getBalances\",\"url\":\"classes/Client.html#getBalances\",\"classes\":\"\",\"parent\":\"Client\"},{\"kind\":2048,\"name\":\"getOrderbook\",\"url\":\"classes/Client.html#getOrderbook\",\"classes\":\"\",\"parent\":\"Client\"},{\"kind\":2048,\"name\":\"getLedgerIndex\",\"url\":\"classes/Client.html#getLedgerIndex\",\"classes\":\"\",\"parent\":\"Client\"},{\"kind\":2048,\"name\":\"fundWallet\",\"url\":\"classes/Client.html#fundWallet\",\"classes\":\"\",\"parent\":\"Client\"},{\"kind\":256,\"name\":\"ClientOptions\",\"url\":\"interfaces/ClientOptions.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"feeCushion\",\"url\":\"interfaces/ClientOptions.html#feeCushion\",\"classes\":\"\",\"parent\":\"ClientOptions\"},{\"kind\":1024,\"name\":\"maxFeeXRP\",\"url\":\"interfaces/ClientOptions.html#maxFeeXRP\",\"classes\":\"\",\"parent\":\"ClientOptions\"},{\"kind\":1024,\"name\":\"timeout\",\"url\":\"interfaces/ClientOptions.html#timeout\",\"classes\":\"\",\"parent\":\"ClientOptions\"},{\"kind\":1024,\"name\":\"trace\",\"url\":\"interfaces/ClientOptions.html#trace\",\"classes\":\"tsd-is-inherited\",\"parent\":\"ClientOptions\"},{\"kind\":1024,\"name\":\"headers\",\"url\":\"interfaces/ClientOptions.html#headers\",\"classes\":\"tsd-is-inherited\",\"parent\":\"ClientOptions\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/ClientOptions.html#headers.__type\",\"classes\":\"\",\"parent\":\"ClientOptions.headers\"},{\"kind\":1024,\"name\":\"agent\",\"url\":\"interfaces/ClientOptions.html#agent\",\"classes\":\"tsd-is-inherited\",\"parent\":\"ClientOptions\"},{\"kind\":1024,\"name\":\"authorization\",\"url\":\"interfaces/ClientOptions.html#authorization\",\"classes\":\"tsd-is-inherited\",\"parent\":\"ClientOptions\"},{\"kind\":1024,\"name\":\"connectionTimeout\",\"url\":\"interfaces/ClientOptions.html#connectionTimeout\",\"classes\":\"tsd-is-inherited\",\"parent\":\"ClientOptions\"},{\"kind\":8,\"name\":\"ECDSA\",\"url\":\"enums/ECDSA.html\",\"classes\":\"\"},{\"kind\":16,\"name\":\"ed25519\",\"url\":\"enums/ECDSA.html#ed25519\",\"classes\":\"\",\"parent\":\"ECDSA\"},{\"kind\":16,\"name\":\"secp256k1\",\"url\":\"enums/ECDSA.html#secp256k1\",\"classes\":\"\",\"parent\":\"ECDSA\"},{\"kind\":256,\"name\":\"FundingOptions\",\"url\":\"interfaces/FundingOptions.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"amount\",\"url\":\"interfaces/FundingOptions.html#amount\",\"classes\":\"\",\"parent\":\"FundingOptions\"},{\"kind\":1024,\"name\":\"faucetHost\",\"url\":\"interfaces/FundingOptions.html#faucetHost\",\"classes\":\"\",\"parent\":\"FundingOptions\"},{\"kind\":1024,\"name\":\"faucetPath\",\"url\":\"interfaces/FundingOptions.html#faucetPath\",\"classes\":\"\",\"parent\":\"FundingOptions\"},{\"kind\":1024,\"name\":\"usageContext\",\"url\":\"interfaces/FundingOptions.html#usageContext\",\"classes\":\"\",\"parent\":\"FundingOptions\"},{\"kind\":128,\"name\":\"Wallet\",\"url\":\"classes/Wallet.html\",\"classes\":\"\"},{\"kind\":2048,\"name\":\"generate\",\"url\":\"classes/Wallet.html#generate\",\"classes\":\"\",\"parent\":\"Wallet\"},{\"kind\":2048,\"name\":\"fromSeed\",\"url\":\"classes/Wallet.html#fromSeed\",\"classes\":\"\",\"parent\":\"Wallet\"},{\"kind\":1024,\"name\":\"fromSecret\",\"url\":\"classes/Wallet.html#fromSecret\",\"classes\":\"\",\"parent\":\"Wallet\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/Wallet.html#fromSecret.__type\",\"classes\":\"\",\"parent\":\"Wallet.fromSecret\"},{\"kind\":2048,\"name\":\"fromEntropy\",\"url\":\"classes/Wallet.html#fromEntropy\",\"classes\":\"\",\"parent\":\"Wallet\"},{\"kind\":2048,\"name\":\"fromMnemonic\",\"url\":\"classes/Wallet.html#fromMnemonic\",\"classes\":\"\",\"parent\":\"Wallet\"},{\"kind\":2048,\"name\":\"fromRFC1751Mnemonic\",\"url\":\"classes/Wallet.html#fromRFC1751Mnemonic\",\"classes\":\"tsd-is-private\",\"parent\":\"Wallet\"},{\"kind\":2048,\"name\":\"deriveWallet\",\"url\":\"classes/Wallet.html#deriveWallet\",\"classes\":\"tsd-is-private\",\"parent\":\"Wallet\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/Wallet.html#constructor\",\"classes\":\"\",\"parent\":\"Wallet\"},{\"kind\":1024,\"name\":\"publicKey\",\"url\":\"classes/Wallet.html#publicKey\",\"classes\":\"\",\"parent\":\"Wallet\"},{\"kind\":1024,\"name\":\"privateKey\",\"url\":\"classes/Wallet.html#privateKey\",\"classes\":\"\",\"parent\":\"Wallet\"},{\"kind\":1024,\"name\":\"classicAddress\",\"url\":\"classes/Wallet.html#classicAddress\",\"classes\":\"\",\"parent\":\"Wallet\"},{\"kind\":1024,\"name\":\"seed\",\"url\":\"classes/Wallet.html#seed\",\"classes\":\"\",\"parent\":\"Wallet\"},{\"kind\":262144,\"name\":\"address\",\"url\":\"classes/Wallet.html#address\",\"classes\":\"\",\"parent\":\"Wallet\"},{\"kind\":2048,\"name\":\"sign\",\"url\":\"classes/Wallet.html#sign\",\"classes\":\"\",\"parent\":\"Wallet\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/Wallet.html#sign.sign-1.__type-2\",\"classes\":\"\",\"parent\":\"Wallet.sign.sign\"},{\"kind\":1024,\"name\":\"tx_blob\",\"url\":\"classes/Wallet.html#sign.sign-1.__type-2.tx_blob\",\"classes\":\"\",\"parent\":\"Wallet.sign.sign.__type\"},{\"kind\":1024,\"name\":\"hash\",\"url\":\"classes/Wallet.html#sign.sign-1.__type-2.hash\",\"classes\":\"\",\"parent\":\"Wallet.sign.sign.__type\"},{\"kind\":2048,\"name\":\"verifyTransaction\",\"url\":\"classes/Wallet.html#verifyTransaction\",\"classes\":\"\",\"parent\":\"Wallet\"},{\"kind\":2048,\"name\":\"getXAddress\",\"url\":\"classes/Wallet.html#getXAddress\",\"classes\":\"\",\"parent\":\"Wallet\"},{\"kind\":64,\"name\":\"walletFromSecretNumbers\",\"url\":\"functions/walletFromSecretNumbers.html\",\"classes\":\"\"},{\"kind\":64,\"name\":\"keyToRFC1751Mnemonic\",\"url\":\"functions/keyToRFC1751Mnemonic.html\",\"classes\":\"\"},{\"kind\":64,\"name\":\"rfc1751MnemonicToKey\",\"url\":\"functions/rfc1751MnemonicToKey.html\",\"classes\":\"\"},{\"kind\":4,\"name\":\"LedgerEntry\",\"url\":\"modules/LedgerEntry.html\",\"classes\":\"\"},{\"kind\":256,\"name\":\"AccountRoot\",\"url\":\"interfaces/LedgerEntry.AccountRoot.html\",\"classes\":\"\",\"parent\":\"LedgerEntry\"},{\"kind\":1024,\"name\":\"LedgerEntryType\",\"url\":\"interfaces/LedgerEntry.AccountRoot.html#LedgerEntryType\",\"classes\":\"\",\"parent\":\"LedgerEntry.AccountRoot\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/LedgerEntry.AccountRoot.html#Account\",\"classes\":\"\",\"parent\":\"LedgerEntry.AccountRoot\"},{\"kind\":1024,\"name\":\"Balance\",\"url\":\"interfaces/LedgerEntry.AccountRoot.html#Balance\",\"classes\":\"\",\"parent\":\"LedgerEntry.AccountRoot\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/LedgerEntry.AccountRoot.html#Flags\",\"classes\":\"\",\"parent\":\"LedgerEntry.AccountRoot\"},{\"kind\":1024,\"name\":\"OwnerCount\",\"url\":\"interfaces/LedgerEntry.AccountRoot.html#OwnerCount\",\"classes\":\"\",\"parent\":\"LedgerEntry.AccountRoot\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/LedgerEntry.AccountRoot.html#Sequence\",\"classes\":\"\",\"parent\":\"LedgerEntry.AccountRoot\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/LedgerEntry.AccountRoot.html#AccountTxnID\",\"classes\":\"\",\"parent\":\"LedgerEntry.AccountRoot\"},{\"kind\":1024,\"name\":\"AMMID\",\"url\":\"interfaces/LedgerEntry.AccountRoot.html#AMMID\",\"classes\":\"\",\"parent\":\"LedgerEntry.AccountRoot\"},{\"kind\":1024,\"name\":\"Domain\",\"url\":\"interfaces/LedgerEntry.AccountRoot.html#Domain\",\"classes\":\"\",\"parent\":\"LedgerEntry.AccountRoot\"},{\"kind\":1024,\"name\":\"EmailHash\",\"url\":\"interfaces/LedgerEntry.AccountRoot.html#EmailHash\",\"classes\":\"\",\"parent\":\"LedgerEntry.AccountRoot\"},{\"kind\":1024,\"name\":\"MessageKey\",\"url\":\"interfaces/LedgerEntry.AccountRoot.html#MessageKey\",\"classes\":\"\",\"parent\":\"LedgerEntry.AccountRoot\"},{\"kind\":1024,\"name\":\"RegularKey\",\"url\":\"interfaces/LedgerEntry.AccountRoot.html#RegularKey\",\"classes\":\"\",\"parent\":\"LedgerEntry.AccountRoot\"},{\"kind\":1024,\"name\":\"TicketCount\",\"url\":\"interfaces/LedgerEntry.AccountRoot.html#TicketCount\",\"classes\":\"\",\"parent\":\"LedgerEntry.AccountRoot\"},{\"kind\":1024,\"name\":\"TickSize\",\"url\":\"interfaces/LedgerEntry.AccountRoot.html#TickSize\",\"classes\":\"\",\"parent\":\"LedgerEntry.AccountRoot\"},{\"kind\":1024,\"name\":\"TransferRate\",\"url\":\"interfaces/LedgerEntry.AccountRoot.html#TransferRate\",\"classes\":\"\",\"parent\":\"LedgerEntry.AccountRoot\"},{\"kind\":1024,\"name\":\"WalletLocator\",\"url\":\"interfaces/LedgerEntry.AccountRoot.html#WalletLocator\",\"classes\":\"\",\"parent\":\"LedgerEntry.AccountRoot\"},{\"kind\":1024,\"name\":\"BurnedNFTokens\",\"url\":\"interfaces/LedgerEntry.AccountRoot.html#BurnedNFTokens\",\"classes\":\"\",\"parent\":\"LedgerEntry.AccountRoot\"},{\"kind\":1024,\"name\":\"FirstNFTSequence\",\"url\":\"interfaces/LedgerEntry.AccountRoot.html#FirstNFTSequence\",\"classes\":\"\",\"parent\":\"LedgerEntry.AccountRoot\"},{\"kind\":1024,\"name\":\"MintedNFTokens\",\"url\":\"interfaces/LedgerEntry.AccountRoot.html#MintedNFTokens\",\"classes\":\"\",\"parent\":\"LedgerEntry.AccountRoot\"},{\"kind\":1024,\"name\":\"NFTokenMinter\",\"url\":\"interfaces/LedgerEntry.AccountRoot.html#NFTokenMinter\",\"classes\":\"\",\"parent\":\"LedgerEntry.AccountRoot\"},{\"kind\":1024,\"name\":\"index\",\"url\":\"interfaces/LedgerEntry.AccountRoot.html#index\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerEntry.AccountRoot\"},{\"kind\":1024,\"name\":\"PreviousTxnID\",\"url\":\"interfaces/LedgerEntry.AccountRoot.html#PreviousTxnID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerEntry.AccountRoot\"},{\"kind\":1024,\"name\":\"PreviousTxnLgrSeq\",\"url\":\"interfaces/LedgerEntry.AccountRoot.html#PreviousTxnLgrSeq\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerEntry.AccountRoot\"},{\"kind\":8,\"name\":\"AccountRootFlags\",\"url\":\"enums/LedgerEntry.AccountRootFlags.html\",\"classes\":\"\",\"parent\":\"LedgerEntry\"},{\"kind\":16,\"name\":\"lsfPasswordSpent\",\"url\":\"enums/LedgerEntry.AccountRootFlags.html#lsfPasswordSpent\",\"classes\":\"\",\"parent\":\"LedgerEntry.AccountRootFlags\"},{\"kind\":16,\"name\":\"lsfRequireDestTag\",\"url\":\"enums/LedgerEntry.AccountRootFlags.html#lsfRequireDestTag\",\"classes\":\"\",\"parent\":\"LedgerEntry.AccountRootFlags\"},{\"kind\":16,\"name\":\"lsfRequireAuth\",\"url\":\"enums/LedgerEntry.AccountRootFlags.html#lsfRequireAuth\",\"classes\":\"\",\"parent\":\"LedgerEntry.AccountRootFlags\"},{\"kind\":16,\"name\":\"lsfDisallowXRP\",\"url\":\"enums/LedgerEntry.AccountRootFlags.html#lsfDisallowXRP\",\"classes\":\"\",\"parent\":\"LedgerEntry.AccountRootFlags\"},{\"kind\":16,\"name\":\"lsfDisableMaster\",\"url\":\"enums/LedgerEntry.AccountRootFlags.html#lsfDisableMaster\",\"classes\":\"\",\"parent\":\"LedgerEntry.AccountRootFlags\"},{\"kind\":16,\"name\":\"lsfNoFreeze\",\"url\":\"enums/LedgerEntry.AccountRootFlags.html#lsfNoFreeze\",\"classes\":\"\",\"parent\":\"LedgerEntry.AccountRootFlags\"},{\"kind\":16,\"name\":\"lsfGlobalFreeze\",\"url\":\"enums/LedgerEntry.AccountRootFlags.html#lsfGlobalFreeze\",\"classes\":\"\",\"parent\":\"LedgerEntry.AccountRootFlags\"},{\"kind\":16,\"name\":\"lsfDefaultRipple\",\"url\":\"enums/LedgerEntry.AccountRootFlags.html#lsfDefaultRipple\",\"classes\":\"\",\"parent\":\"LedgerEntry.AccountRootFlags\"},{\"kind\":16,\"name\":\"lsfDepositAuth\",\"url\":\"enums/LedgerEntry.AccountRootFlags.html#lsfDepositAuth\",\"classes\":\"\",\"parent\":\"LedgerEntry.AccountRootFlags\"},{\"kind\":16,\"name\":\"lsfAMM\",\"url\":\"enums/LedgerEntry.AccountRootFlags.html#lsfAMM\",\"classes\":\"\",\"parent\":\"LedgerEntry.AccountRootFlags\"},{\"kind\":16,\"name\":\"lsfDisallowIncomingNFTokenOffer\",\"url\":\"enums/LedgerEntry.AccountRootFlags.html#lsfDisallowIncomingNFTokenOffer\",\"classes\":\"\",\"parent\":\"LedgerEntry.AccountRootFlags\"},{\"kind\":16,\"name\":\"lsfDisallowIncomingCheck\",\"url\":\"enums/LedgerEntry.AccountRootFlags.html#lsfDisallowIncomingCheck\",\"classes\":\"\",\"parent\":\"LedgerEntry.AccountRootFlags\"},{\"kind\":16,\"name\":\"lsfDisallowIncomingPayChan\",\"url\":\"enums/LedgerEntry.AccountRootFlags.html#lsfDisallowIncomingPayChan\",\"classes\":\"\",\"parent\":\"LedgerEntry.AccountRootFlags\"},{\"kind\":16,\"name\":\"lsfDisallowIncomingTrustline\",\"url\":\"enums/LedgerEntry.AccountRootFlags.html#lsfDisallowIncomingTrustline\",\"classes\":\"\",\"parent\":\"LedgerEntry.AccountRootFlags\"},{\"kind\":16,\"name\":\"lsfAllowTrustLineClawback\",\"url\":\"enums/LedgerEntry.AccountRootFlags.html#lsfAllowTrustLineClawback\",\"classes\":\"\",\"parent\":\"LedgerEntry.AccountRootFlags\"},{\"kind\":256,\"name\":\"AccountRootFlagsInterface\",\"url\":\"interfaces/LedgerEntry.AccountRootFlagsInterface.html\",\"classes\":\"\",\"parent\":\"LedgerEntry\"},{\"kind\":1024,\"name\":\"lsfPasswordSpent\",\"url\":\"interfaces/LedgerEntry.AccountRootFlagsInterface.html#lsfPasswordSpent\",\"classes\":\"\",\"parent\":\"LedgerEntry.AccountRootFlagsInterface\"},{\"kind\":1024,\"name\":\"lsfRequireDestTag\",\"url\":\"interfaces/LedgerEntry.AccountRootFlagsInterface.html#lsfRequireDestTag\",\"classes\":\"\",\"parent\":\"LedgerEntry.AccountRootFlagsInterface\"},{\"kind\":1024,\"name\":\"lsfRequireAuth\",\"url\":\"interfaces/LedgerEntry.AccountRootFlagsInterface.html#lsfRequireAuth\",\"classes\":\"\",\"parent\":\"LedgerEntry.AccountRootFlagsInterface\"},{\"kind\":1024,\"name\":\"lsfDisallowXRP\",\"url\":\"interfaces/LedgerEntry.AccountRootFlagsInterface.html#lsfDisallowXRP\",\"classes\":\"\",\"parent\":\"LedgerEntry.AccountRootFlagsInterface\"},{\"kind\":1024,\"name\":\"lsfDisableMaster\",\"url\":\"interfaces/LedgerEntry.AccountRootFlagsInterface.html#lsfDisableMaster\",\"classes\":\"\",\"parent\":\"LedgerEntry.AccountRootFlagsInterface\"},{\"kind\":1024,\"name\":\"lsfNoFreeze\",\"url\":\"interfaces/LedgerEntry.AccountRootFlagsInterface.html#lsfNoFreeze\",\"classes\":\"\",\"parent\":\"LedgerEntry.AccountRootFlagsInterface\"},{\"kind\":1024,\"name\":\"lsfGlobalFreeze\",\"url\":\"interfaces/LedgerEntry.AccountRootFlagsInterface.html#lsfGlobalFreeze\",\"classes\":\"\",\"parent\":\"LedgerEntry.AccountRootFlagsInterface\"},{\"kind\":1024,\"name\":\"lsfDefaultRipple\",\"url\":\"interfaces/LedgerEntry.AccountRootFlagsInterface.html#lsfDefaultRipple\",\"classes\":\"\",\"parent\":\"LedgerEntry.AccountRootFlagsInterface\"},{\"kind\":1024,\"name\":\"lsfDepositAuth\",\"url\":\"interfaces/LedgerEntry.AccountRootFlagsInterface.html#lsfDepositAuth\",\"classes\":\"\",\"parent\":\"LedgerEntry.AccountRootFlagsInterface\"},{\"kind\":1024,\"name\":\"lsfAMM\",\"url\":\"interfaces/LedgerEntry.AccountRootFlagsInterface.html#lsfAMM\",\"classes\":\"\",\"parent\":\"LedgerEntry.AccountRootFlagsInterface\"},{\"kind\":1024,\"name\":\"lsfDisallowIncomingNFTokenOffer\",\"url\":\"interfaces/LedgerEntry.AccountRootFlagsInterface.html#lsfDisallowIncomingNFTokenOffer\",\"classes\":\"\",\"parent\":\"LedgerEntry.AccountRootFlagsInterface\"},{\"kind\":1024,\"name\":\"lsfDisallowIncomingCheck\",\"url\":\"interfaces/LedgerEntry.AccountRootFlagsInterface.html#lsfDisallowIncomingCheck\",\"classes\":\"\",\"parent\":\"LedgerEntry.AccountRootFlagsInterface\"},{\"kind\":1024,\"name\":\"lsfDisallowIncomingPayChan\",\"url\":\"interfaces/LedgerEntry.AccountRootFlagsInterface.html#lsfDisallowIncomingPayChan\",\"classes\":\"\",\"parent\":\"LedgerEntry.AccountRootFlagsInterface\"},{\"kind\":1024,\"name\":\"lsfDisallowIncomingTrustline\",\"url\":\"interfaces/LedgerEntry.AccountRootFlagsInterface.html#lsfDisallowIncomingTrustline\",\"classes\":\"\",\"parent\":\"LedgerEntry.AccountRootFlagsInterface\"},{\"kind\":1024,\"name\":\"lsfAllowTrustLineClawback\",\"url\":\"interfaces/LedgerEntry.AccountRootFlagsInterface.html#lsfAllowTrustLineClawback\",\"classes\":\"\",\"parent\":\"LedgerEntry.AccountRootFlagsInterface\"},{\"kind\":32,\"name\":\"AMENDMENTS_ID\",\"url\":\"variables/LedgerEntry.AMENDMENTS_ID.html\",\"classes\":\"\",\"parent\":\"LedgerEntry\"},{\"kind\":256,\"name\":\"Amendments\",\"url\":\"interfaces/LedgerEntry.Amendments.html\",\"classes\":\"\",\"parent\":\"LedgerEntry\"},{\"kind\":1024,\"name\":\"LedgerEntryType\",\"url\":\"interfaces/LedgerEntry.Amendments.html#LedgerEntryType\",\"classes\":\"\",\"parent\":\"LedgerEntry.Amendments\"},{\"kind\":1024,\"name\":\"Amendments\",\"url\":\"interfaces/LedgerEntry.Amendments.html#Amendments\",\"classes\":\"\",\"parent\":\"LedgerEntry.Amendments\"},{\"kind\":1024,\"name\":\"Majorities\",\"url\":\"interfaces/LedgerEntry.Amendments.html#Majorities\",\"classes\":\"\",\"parent\":\"LedgerEntry.Amendments\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/LedgerEntry.Amendments.html#Flags\",\"classes\":\"\",\"parent\":\"LedgerEntry.Amendments\"},{\"kind\":1024,\"name\":\"index\",\"url\":\"interfaces/LedgerEntry.Amendments.html#index\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerEntry.Amendments\"},{\"kind\":1024,\"name\":\"PreviousTxnID\",\"url\":\"interfaces/LedgerEntry.Amendments.html#PreviousTxnID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerEntry.Amendments\"},{\"kind\":1024,\"name\":\"PreviousTxnLgrSeq\",\"url\":\"interfaces/LedgerEntry.Amendments.html#PreviousTxnLgrSeq\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerEntry.Amendments\"},{\"kind\":256,\"name\":\"AMM\",\"url\":\"interfaces/LedgerEntry.AMM.html\",\"classes\":\"\",\"parent\":\"LedgerEntry\"},{\"kind\":1024,\"name\":\"LedgerEntryType\",\"url\":\"interfaces/LedgerEntry.AMM.html#LedgerEntryType\",\"classes\":\"\",\"parent\":\"LedgerEntry.AMM\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/LedgerEntry.AMM.html#Account\",\"classes\":\"\",\"parent\":\"LedgerEntry.AMM\"},{\"kind\":1024,\"name\":\"Asset\",\"url\":\"interfaces/LedgerEntry.AMM.html#Asset\",\"classes\":\"\",\"parent\":\"LedgerEntry.AMM\"},{\"kind\":1024,\"name\":\"Asset2\",\"url\":\"interfaces/LedgerEntry.AMM.html#Asset2\",\"classes\":\"\",\"parent\":\"LedgerEntry.AMM\"},{\"kind\":1024,\"name\":\"AuctionSlot\",\"url\":\"interfaces/LedgerEntry.AMM.html#AuctionSlot\",\"classes\":\"\",\"parent\":\"LedgerEntry.AMM\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/LedgerEntry.AMM.html#AuctionSlot.__type\",\"classes\":\"\",\"parent\":\"LedgerEntry.AMM.AuctionSlot\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/LedgerEntry.AMM.html#AuctionSlot.__type.Account-1\",\"classes\":\"\",\"parent\":\"LedgerEntry.AMM.AuctionSlot.__type\"},{\"kind\":1024,\"name\":\"AuthAccounts\",\"url\":\"interfaces/LedgerEntry.AMM.html#AuctionSlot.__type.AuthAccounts\",\"classes\":\"\",\"parent\":\"LedgerEntry.AMM.AuctionSlot.__type\"},{\"kind\":1024,\"name\":\"DiscountedFee\",\"url\":\"interfaces/LedgerEntry.AMM.html#AuctionSlot.__type.DiscountedFee\",\"classes\":\"\",\"parent\":\"LedgerEntry.AMM.AuctionSlot.__type\"},{\"kind\":1024,\"name\":\"Expiration\",\"url\":\"interfaces/LedgerEntry.AMM.html#AuctionSlot.__type.Expiration\",\"classes\":\"\",\"parent\":\"LedgerEntry.AMM.AuctionSlot.__type\"},{\"kind\":1024,\"name\":\"Price\",\"url\":\"interfaces/LedgerEntry.AMM.html#AuctionSlot.__type.Price\",\"classes\":\"\",\"parent\":\"LedgerEntry.AMM.AuctionSlot.__type\"},{\"kind\":1024,\"name\":\"LPTokenBalance\",\"url\":\"interfaces/LedgerEntry.AMM.html#LPTokenBalance\",\"classes\":\"\",\"parent\":\"LedgerEntry.AMM\"},{\"kind\":1024,\"name\":\"TradingFee\",\"url\":\"interfaces/LedgerEntry.AMM.html#TradingFee\",\"classes\":\"\",\"parent\":\"LedgerEntry.AMM\"},{\"kind\":1024,\"name\":\"VoteSlots\",\"url\":\"interfaces/LedgerEntry.AMM.html#VoteSlots\",\"classes\":\"\",\"parent\":\"LedgerEntry.AMM\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/LedgerEntry.AMM.html#Flags\",\"classes\":\"\",\"parent\":\"LedgerEntry.AMM\"},{\"kind\":1024,\"name\":\"index\",\"url\":\"interfaces/LedgerEntry.AMM.html#index\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerEntry.AMM\"},{\"kind\":1024,\"name\":\"PreviousTxnID\",\"url\":\"interfaces/LedgerEntry.AMM.html#PreviousTxnID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerEntry.AMM\"},{\"kind\":1024,\"name\":\"PreviousTxnLgrSeq\",\"url\":\"interfaces/LedgerEntry.AMM.html#PreviousTxnLgrSeq\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerEntry.AMM\"},{\"kind\":256,\"name\":\"Bridge\",\"url\":\"interfaces/LedgerEntry.Bridge.html\",\"classes\":\"\",\"parent\":\"LedgerEntry\"},{\"kind\":1024,\"name\":\"LedgerEntryType\",\"url\":\"interfaces/LedgerEntry.Bridge.html#LedgerEntryType\",\"classes\":\"\",\"parent\":\"LedgerEntry.Bridge\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/LedgerEntry.Bridge.html#Account\",\"classes\":\"\",\"parent\":\"LedgerEntry.Bridge\"},{\"kind\":1024,\"name\":\"SignatureReward\",\"url\":\"interfaces/LedgerEntry.Bridge.html#SignatureReward\",\"classes\":\"\",\"parent\":\"LedgerEntry.Bridge\"},{\"kind\":1024,\"name\":\"XChainBridge\",\"url\":\"interfaces/LedgerEntry.Bridge.html#XChainBridge\",\"classes\":\"\",\"parent\":\"LedgerEntry.Bridge\"},{\"kind\":1024,\"name\":\"XChainClaimID\",\"url\":\"interfaces/LedgerEntry.Bridge.html#XChainClaimID\",\"classes\":\"\",\"parent\":\"LedgerEntry.Bridge\"},{\"kind\":1024,\"name\":\"XChainAccountCreateCount\",\"url\":\"interfaces/LedgerEntry.Bridge.html#XChainAccountCreateCount\",\"classes\":\"\",\"parent\":\"LedgerEntry.Bridge\"},{\"kind\":1024,\"name\":\"XChainAccountClaimCount\",\"url\":\"interfaces/LedgerEntry.Bridge.html#XChainAccountClaimCount\",\"classes\":\"\",\"parent\":\"LedgerEntry.Bridge\"},{\"kind\":1024,\"name\":\"MinAccountCreateAmount\",\"url\":\"interfaces/LedgerEntry.Bridge.html#MinAccountCreateAmount\",\"classes\":\"\",\"parent\":\"LedgerEntry.Bridge\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/LedgerEntry.Bridge.html#Flags\",\"classes\":\"\",\"parent\":\"LedgerEntry.Bridge\"},{\"kind\":1024,\"name\":\"OwnerNode\",\"url\":\"interfaces/LedgerEntry.Bridge.html#OwnerNode\",\"classes\":\"\",\"parent\":\"LedgerEntry.Bridge\"},{\"kind\":1024,\"name\":\"index\",\"url\":\"interfaces/LedgerEntry.Bridge.html#index\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerEntry.Bridge\"},{\"kind\":1024,\"name\":\"PreviousTxnID\",\"url\":\"interfaces/LedgerEntry.Bridge.html#PreviousTxnID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerEntry.Bridge\"},{\"kind\":1024,\"name\":\"PreviousTxnLgrSeq\",\"url\":\"interfaces/LedgerEntry.Bridge.html#PreviousTxnLgrSeq\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerEntry.Bridge\"},{\"kind\":256,\"name\":\"Check\",\"url\":\"interfaces/LedgerEntry.Check.html\",\"classes\":\"\",\"parent\":\"LedgerEntry\"},{\"kind\":1024,\"name\":\"LedgerEntryType\",\"url\":\"interfaces/LedgerEntry.Check.html#LedgerEntryType\",\"classes\":\"\",\"parent\":\"LedgerEntry.Check\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/LedgerEntry.Check.html#Account\",\"classes\":\"\",\"parent\":\"LedgerEntry.Check\"},{\"kind\":1024,\"name\":\"Destination\",\"url\":\"interfaces/LedgerEntry.Check.html#Destination\",\"classes\":\"\",\"parent\":\"LedgerEntry.Check\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/LedgerEntry.Check.html#Flags\",\"classes\":\"\",\"parent\":\"LedgerEntry.Check\"},{\"kind\":1024,\"name\":\"OwnerNode\",\"url\":\"interfaces/LedgerEntry.Check.html#OwnerNode\",\"classes\":\"\",\"parent\":\"LedgerEntry.Check\"},{\"kind\":1024,\"name\":\"PreviousTxnID\",\"url\":\"interfaces/LedgerEntry.Check.html#PreviousTxnID\",\"classes\":\"\",\"parent\":\"LedgerEntry.Check\"},{\"kind\":1024,\"name\":\"PreviousTxnLgrSeq\",\"url\":\"interfaces/LedgerEntry.Check.html#PreviousTxnLgrSeq\",\"classes\":\"\",\"parent\":\"LedgerEntry.Check\"},{\"kind\":1024,\"name\":\"SendMax\",\"url\":\"interfaces/LedgerEntry.Check.html#SendMax\",\"classes\":\"\",\"parent\":\"LedgerEntry.Check\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/LedgerEntry.Check.html#Sequence\",\"classes\":\"\",\"parent\":\"LedgerEntry.Check\"},{\"kind\":1024,\"name\":\"DestinationNode\",\"url\":\"interfaces/LedgerEntry.Check.html#DestinationNode\",\"classes\":\"\",\"parent\":\"LedgerEntry.Check\"},{\"kind\":1024,\"name\":\"DestinationTag\",\"url\":\"interfaces/LedgerEntry.Check.html#DestinationTag\",\"classes\":\"\",\"parent\":\"LedgerEntry.Check\"},{\"kind\":1024,\"name\":\"Expiration\",\"url\":\"interfaces/LedgerEntry.Check.html#Expiration\",\"classes\":\"\",\"parent\":\"LedgerEntry.Check\"},{\"kind\":1024,\"name\":\"InvoiceID\",\"url\":\"interfaces/LedgerEntry.Check.html#InvoiceID\",\"classes\":\"\",\"parent\":\"LedgerEntry.Check\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/LedgerEntry.Check.html#SourceTag\",\"classes\":\"\",\"parent\":\"LedgerEntry.Check\"},{\"kind\":1024,\"name\":\"index\",\"url\":\"interfaces/LedgerEntry.Check.html#index\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerEntry.Check\"},{\"kind\":256,\"name\":\"DepositPreauth\",\"url\":\"interfaces/LedgerEntry.DepositPreauth.html\",\"classes\":\"\",\"parent\":\"LedgerEntry\"},{\"kind\":1024,\"name\":\"LedgerEntryType\",\"url\":\"interfaces/LedgerEntry.DepositPreauth.html#LedgerEntryType\",\"classes\":\"\",\"parent\":\"LedgerEntry.DepositPreauth\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/LedgerEntry.DepositPreauth.html#Account\",\"classes\":\"\",\"parent\":\"LedgerEntry.DepositPreauth\"},{\"kind\":1024,\"name\":\"Authorize\",\"url\":\"interfaces/LedgerEntry.DepositPreauth.html#Authorize\",\"classes\":\"\",\"parent\":\"LedgerEntry.DepositPreauth\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/LedgerEntry.DepositPreauth.html#Flags\",\"classes\":\"\",\"parent\":\"LedgerEntry.DepositPreauth\"},{\"kind\":1024,\"name\":\"OwnerNode\",\"url\":\"interfaces/LedgerEntry.DepositPreauth.html#OwnerNode\",\"classes\":\"\",\"parent\":\"LedgerEntry.DepositPreauth\"},{\"kind\":1024,\"name\":\"index\",\"url\":\"interfaces/LedgerEntry.DepositPreauth.html#index\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerEntry.DepositPreauth\"},{\"kind\":1024,\"name\":\"PreviousTxnID\",\"url\":\"interfaces/LedgerEntry.DepositPreauth.html#PreviousTxnID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerEntry.DepositPreauth\"},{\"kind\":1024,\"name\":\"PreviousTxnLgrSeq\",\"url\":\"interfaces/LedgerEntry.DepositPreauth.html#PreviousTxnLgrSeq\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerEntry.DepositPreauth\"},{\"kind\":256,\"name\":\"DirectoryNode\",\"url\":\"interfaces/LedgerEntry.DirectoryNode.html\",\"classes\":\"\",\"parent\":\"LedgerEntry\"},{\"kind\":1024,\"name\":\"LedgerEntryType\",\"url\":\"interfaces/LedgerEntry.DirectoryNode.html#LedgerEntryType\",\"classes\":\"\",\"parent\":\"LedgerEntry.DirectoryNode\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/LedgerEntry.DirectoryNode.html#Flags\",\"classes\":\"\",\"parent\":\"LedgerEntry.DirectoryNode\"},{\"kind\":1024,\"name\":\"RootIndex\",\"url\":\"interfaces/LedgerEntry.DirectoryNode.html#RootIndex\",\"classes\":\"\",\"parent\":\"LedgerEntry.DirectoryNode\"},{\"kind\":1024,\"name\":\"Indexes\",\"url\":\"interfaces/LedgerEntry.DirectoryNode.html#Indexes\",\"classes\":\"\",\"parent\":\"LedgerEntry.DirectoryNode\"},{\"kind\":1024,\"name\":\"IndexNext\",\"url\":\"interfaces/LedgerEntry.DirectoryNode.html#IndexNext\",\"classes\":\"\",\"parent\":\"LedgerEntry.DirectoryNode\"},{\"kind\":1024,\"name\":\"IndexPrevious\",\"url\":\"interfaces/LedgerEntry.DirectoryNode.html#IndexPrevious\",\"classes\":\"\",\"parent\":\"LedgerEntry.DirectoryNode\"},{\"kind\":1024,\"name\":\"Owner\",\"url\":\"interfaces/LedgerEntry.DirectoryNode.html#Owner\",\"classes\":\"\",\"parent\":\"LedgerEntry.DirectoryNode\"},{\"kind\":1024,\"name\":\"TakerPaysCurrency\",\"url\":\"interfaces/LedgerEntry.DirectoryNode.html#TakerPaysCurrency\",\"classes\":\"\",\"parent\":\"LedgerEntry.DirectoryNode\"},{\"kind\":1024,\"name\":\"TakerPaysIssuer\",\"url\":\"interfaces/LedgerEntry.DirectoryNode.html#TakerPaysIssuer\",\"classes\":\"\",\"parent\":\"LedgerEntry.DirectoryNode\"},{\"kind\":1024,\"name\":\"TakerGetsCurrency\",\"url\":\"interfaces/LedgerEntry.DirectoryNode.html#TakerGetsCurrency\",\"classes\":\"\",\"parent\":\"LedgerEntry.DirectoryNode\"},{\"kind\":1024,\"name\":\"TakerGetsIssuer\",\"url\":\"interfaces/LedgerEntry.DirectoryNode.html#TakerGetsIssuer\",\"classes\":\"\",\"parent\":\"LedgerEntry.DirectoryNode\"},{\"kind\":1024,\"name\":\"index\",\"url\":\"interfaces/LedgerEntry.DirectoryNode.html#index\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerEntry.DirectoryNode\"},{\"kind\":1024,\"name\":\"PreviousTxnID\",\"url\":\"interfaces/LedgerEntry.DirectoryNode.html#PreviousTxnID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerEntry.DirectoryNode\"},{\"kind\":1024,\"name\":\"PreviousTxnLgrSeq\",\"url\":\"interfaces/LedgerEntry.DirectoryNode.html#PreviousTxnLgrSeq\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerEntry.DirectoryNode\"},{\"kind\":256,\"name\":\"DID\",\"url\":\"interfaces/LedgerEntry.DID.html\",\"classes\":\"\",\"parent\":\"LedgerEntry\"},{\"kind\":1024,\"name\":\"LedgerEntryType\",\"url\":\"interfaces/LedgerEntry.DID.html#LedgerEntryType\",\"classes\":\"\",\"parent\":\"LedgerEntry.DID\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/LedgerEntry.DID.html#Account\",\"classes\":\"\",\"parent\":\"LedgerEntry.DID\"},{\"kind\":1024,\"name\":\"Data\",\"url\":\"interfaces/LedgerEntry.DID.html#Data\",\"classes\":\"\",\"parent\":\"LedgerEntry.DID\"},{\"kind\":1024,\"name\":\"DIDDocument\",\"url\":\"interfaces/LedgerEntry.DID.html#DIDDocument\",\"classes\":\"\",\"parent\":\"LedgerEntry.DID\"},{\"kind\":1024,\"name\":\"URI\",\"url\":\"interfaces/LedgerEntry.DID.html#URI\",\"classes\":\"\",\"parent\":\"LedgerEntry.DID\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/LedgerEntry.DID.html#Flags\",\"classes\":\"\",\"parent\":\"LedgerEntry.DID\"},{\"kind\":1024,\"name\":\"OwnerNode\",\"url\":\"interfaces/LedgerEntry.DID.html#OwnerNode\",\"classes\":\"\",\"parent\":\"LedgerEntry.DID\"},{\"kind\":1024,\"name\":\"index\",\"url\":\"interfaces/LedgerEntry.DID.html#index\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerEntry.DID\"},{\"kind\":1024,\"name\":\"PreviousTxnID\",\"url\":\"interfaces/LedgerEntry.DID.html#PreviousTxnID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerEntry.DID\"},{\"kind\":1024,\"name\":\"PreviousTxnLgrSeq\",\"url\":\"interfaces/LedgerEntry.DID.html#PreviousTxnLgrSeq\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerEntry.DID\"},{\"kind\":256,\"name\":\"Escrow\",\"url\":\"interfaces/LedgerEntry.Escrow.html\",\"classes\":\"\",\"parent\":\"LedgerEntry\"},{\"kind\":1024,\"name\":\"LedgerEntryType\",\"url\":\"interfaces/LedgerEntry.Escrow.html#LedgerEntryType\",\"classes\":\"\",\"parent\":\"LedgerEntry.Escrow\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/LedgerEntry.Escrow.html#Account\",\"classes\":\"\",\"parent\":\"LedgerEntry.Escrow\"},{\"kind\":1024,\"name\":\"Destination\",\"url\":\"interfaces/LedgerEntry.Escrow.html#Destination\",\"classes\":\"\",\"parent\":\"LedgerEntry.Escrow\"},{\"kind\":1024,\"name\":\"Amount\",\"url\":\"interfaces/LedgerEntry.Escrow.html#Amount\",\"classes\":\"\",\"parent\":\"LedgerEntry.Escrow\"},{\"kind\":1024,\"name\":\"Condition\",\"url\":\"interfaces/LedgerEntry.Escrow.html#Condition\",\"classes\":\"\",\"parent\":\"LedgerEntry.Escrow\"},{\"kind\":1024,\"name\":\"CancelAfter\",\"url\":\"interfaces/LedgerEntry.Escrow.html#CancelAfter\",\"classes\":\"\",\"parent\":\"LedgerEntry.Escrow\"},{\"kind\":1024,\"name\":\"FinishAfter\",\"url\":\"interfaces/LedgerEntry.Escrow.html#FinishAfter\",\"classes\":\"\",\"parent\":\"LedgerEntry.Escrow\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/LedgerEntry.Escrow.html#Flags\",\"classes\":\"\",\"parent\":\"LedgerEntry.Escrow\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/LedgerEntry.Escrow.html#SourceTag\",\"classes\":\"\",\"parent\":\"LedgerEntry.Escrow\"},{\"kind\":1024,\"name\":\"DestinationTag\",\"url\":\"interfaces/LedgerEntry.Escrow.html#DestinationTag\",\"classes\":\"\",\"parent\":\"LedgerEntry.Escrow\"},{\"kind\":1024,\"name\":\"OwnerNode\",\"url\":\"interfaces/LedgerEntry.Escrow.html#OwnerNode\",\"classes\":\"\",\"parent\":\"LedgerEntry.Escrow\"},{\"kind\":1024,\"name\":\"DestinationNode\",\"url\":\"interfaces/LedgerEntry.Escrow.html#DestinationNode\",\"classes\":\"\",\"parent\":\"LedgerEntry.Escrow\"},{\"kind\":1024,\"name\":\"index\",\"url\":\"interfaces/LedgerEntry.Escrow.html#index\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerEntry.Escrow\"},{\"kind\":1024,\"name\":\"PreviousTxnID\",\"url\":\"interfaces/LedgerEntry.Escrow.html#PreviousTxnID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerEntry.Escrow\"},{\"kind\":1024,\"name\":\"PreviousTxnLgrSeq\",\"url\":\"interfaces/LedgerEntry.Escrow.html#PreviousTxnLgrSeq\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerEntry.Escrow\"},{\"kind\":32,\"name\":\"FEE_SETTINGS_ID\",\"url\":\"variables/LedgerEntry.FEE_SETTINGS_ID.html\",\"classes\":\"\",\"parent\":\"LedgerEntry\"},{\"kind\":256,\"name\":\"FeeSettings\",\"url\":\"interfaces/LedgerEntry.FeeSettings.html\",\"classes\":\"\",\"parent\":\"LedgerEntry\"},{\"kind\":1024,\"name\":\"LedgerEntryType\",\"url\":\"interfaces/LedgerEntry.FeeSettings.html#LedgerEntryType\",\"classes\":\"\",\"parent\":\"LedgerEntry.FeeSettings\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/LedgerEntry.FeeSettings.html#Flags\",\"classes\":\"\",\"parent\":\"LedgerEntry.FeeSettings\"},{\"kind\":1024,\"name\":\"index\",\"url\":\"interfaces/LedgerEntry.FeeSettings.html#index\",\"classes\":\"\",\"parent\":\"LedgerEntry.FeeSettings\"},{\"kind\":1024,\"name\":\"PreviousTxnID\",\"url\":\"interfaces/LedgerEntry.FeeSettings.html#PreviousTxnID\",\"classes\":\"\",\"parent\":\"LedgerEntry.FeeSettings\"},{\"kind\":1024,\"name\":\"PreviousTxnLgrSeq\",\"url\":\"interfaces/LedgerEntry.FeeSettings.html#PreviousTxnLgrSeq\",\"classes\":\"\",\"parent\":\"LedgerEntry.FeeSettings\"},{\"kind\":256,\"name\":\"FeeSettingsPreAmendmentFields\",\"url\":\"interfaces/LedgerEntry.FeeSettingsPreAmendmentFields.html\",\"classes\":\"\",\"parent\":\"LedgerEntry\"},{\"kind\":1024,\"name\":\"BaseFee\",\"url\":\"interfaces/LedgerEntry.FeeSettingsPreAmendmentFields.html#BaseFee\",\"classes\":\"\",\"parent\":\"LedgerEntry.FeeSettingsPreAmendmentFields\"},{\"kind\":1024,\"name\":\"ReferenceFeeUnits\",\"url\":\"interfaces/LedgerEntry.FeeSettingsPreAmendmentFields.html#ReferenceFeeUnits\",\"classes\":\"\",\"parent\":\"LedgerEntry.FeeSettingsPreAmendmentFields\"},{\"kind\":1024,\"name\":\"ReserveBase\",\"url\":\"interfaces/LedgerEntry.FeeSettingsPreAmendmentFields.html#ReserveBase\",\"classes\":\"\",\"parent\":\"LedgerEntry.FeeSettingsPreAmendmentFields\"},{\"kind\":1024,\"name\":\"ReserveIncrement\",\"url\":\"interfaces/LedgerEntry.FeeSettingsPreAmendmentFields.html#ReserveIncrement\",\"classes\":\"\",\"parent\":\"LedgerEntry.FeeSettingsPreAmendmentFields\"},{\"kind\":256,\"name\":\"FeeSettingsPostAmendmentFields\",\"url\":\"interfaces/LedgerEntry.FeeSettingsPostAmendmentFields.html\",\"classes\":\"\",\"parent\":\"LedgerEntry\"},{\"kind\":1024,\"name\":\"BaseFeeDrops\",\"url\":\"interfaces/LedgerEntry.FeeSettingsPostAmendmentFields.html#BaseFeeDrops\",\"classes\":\"\",\"parent\":\"LedgerEntry.FeeSettingsPostAmendmentFields\"},{\"kind\":1024,\"name\":\"ReserveBaseDrops\",\"url\":\"interfaces/LedgerEntry.FeeSettingsPostAmendmentFields.html#ReserveBaseDrops\",\"classes\":\"\",\"parent\":\"LedgerEntry.FeeSettingsPostAmendmentFields\"},{\"kind\":1024,\"name\":\"ReserveIncrementDrops\",\"url\":\"interfaces/LedgerEntry.FeeSettingsPostAmendmentFields.html#ReserveIncrementDrops\",\"classes\":\"\",\"parent\":\"LedgerEntry.FeeSettingsPostAmendmentFields\"},{\"kind\":256,\"name\":\"Ledger\",\"url\":\"interfaces/LedgerEntry.Ledger.html\",\"classes\":\"\",\"parent\":\"LedgerEntry\"},{\"kind\":1024,\"name\":\"account_hash\",\"url\":\"interfaces/LedgerEntry.Ledger.html#account_hash\",\"classes\":\"\",\"parent\":\"LedgerEntry.Ledger\"},{\"kind\":1024,\"name\":\"accountState\",\"url\":\"interfaces/LedgerEntry.Ledger.html#accountState\",\"classes\":\"\",\"parent\":\"LedgerEntry.Ledger\"},{\"kind\":1024,\"name\":\"close_flags\",\"url\":\"interfaces/LedgerEntry.Ledger.html#close_flags\",\"classes\":\"\",\"parent\":\"LedgerEntry.Ledger\"},{\"kind\":1024,\"name\":\"close_time\",\"url\":\"interfaces/LedgerEntry.Ledger.html#close_time\",\"classes\":\"\",\"parent\":\"LedgerEntry.Ledger\"},{\"kind\":1024,\"name\":\"close_time_human\",\"url\":\"interfaces/LedgerEntry.Ledger.html#close_time_human\",\"classes\":\"\",\"parent\":\"LedgerEntry.Ledger\"},{\"kind\":1024,\"name\":\"close_time_resolution\",\"url\":\"interfaces/LedgerEntry.Ledger.html#close_time_resolution\",\"classes\":\"\",\"parent\":\"LedgerEntry.Ledger\"},{\"kind\":1024,\"name\":\"closed\",\"url\":\"interfaces/LedgerEntry.Ledger.html#closed\",\"classes\":\"\",\"parent\":\"LedgerEntry.Ledger\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/LedgerEntry.Ledger.html#ledger_hash\",\"classes\":\"\",\"parent\":\"LedgerEntry.Ledger\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/LedgerEntry.Ledger.html#ledger_index\",\"classes\":\"\",\"parent\":\"LedgerEntry.Ledger\"},{\"kind\":1024,\"name\":\"parent_close_time\",\"url\":\"interfaces/LedgerEntry.Ledger.html#parent_close_time\",\"classes\":\"\",\"parent\":\"LedgerEntry.Ledger\"},{\"kind\":1024,\"name\":\"parent_hash\",\"url\":\"interfaces/LedgerEntry.Ledger.html#parent_hash\",\"classes\":\"\",\"parent\":\"LedgerEntry.Ledger\"},{\"kind\":1024,\"name\":\"total_coins\",\"url\":\"interfaces/LedgerEntry.Ledger.html#total_coins\",\"classes\":\"\",\"parent\":\"LedgerEntry.Ledger\"},{\"kind\":1024,\"name\":\"transaction_hash\",\"url\":\"interfaces/LedgerEntry.Ledger.html#transaction_hash\",\"classes\":\"\",\"parent\":\"LedgerEntry.Ledger\"},{\"kind\":1024,\"name\":\"transactions\",\"url\":\"interfaces/LedgerEntry.Ledger.html#transactions\",\"classes\":\"\",\"parent\":\"LedgerEntry.Ledger\"},{\"kind\":2097152,\"name\":\"LedgerEntryFilter\",\"url\":\"types/LedgerEntry.LedgerEntryFilter.html\",\"classes\":\"\",\"parent\":\"LedgerEntry\"},{\"kind\":2097152,\"name\":\"LedgerEntry\",\"url\":\"types/LedgerEntry.LedgerEntry.html\",\"classes\":\"\",\"parent\":\"LedgerEntry\"},{\"kind\":256,\"name\":\"LedgerHashes\",\"url\":\"interfaces/LedgerEntry.LedgerHashes.html\",\"classes\":\"\",\"parent\":\"LedgerEntry\"},{\"kind\":1024,\"name\":\"LedgerEntryType\",\"url\":\"interfaces/LedgerEntry.LedgerHashes.html#LedgerEntryType\",\"classes\":\"\",\"parent\":\"LedgerEntry.LedgerHashes\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/LedgerEntry.LedgerHashes.html#LastLedgerSequence\",\"classes\":\"\",\"parent\":\"LedgerEntry.LedgerHashes\"},{\"kind\":1024,\"name\":\"Hashes\",\"url\":\"interfaces/LedgerEntry.LedgerHashes.html#Hashes\",\"classes\":\"\",\"parent\":\"LedgerEntry.LedgerHashes\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/LedgerEntry.LedgerHashes.html#Flags\",\"classes\":\"\",\"parent\":\"LedgerEntry.LedgerHashes\"},{\"kind\":1024,\"name\":\"index\",\"url\":\"interfaces/LedgerEntry.LedgerHashes.html#index\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerEntry.LedgerHashes\"},{\"kind\":1024,\"name\":\"PreviousTxnID\",\"url\":\"interfaces/LedgerEntry.LedgerHashes.html#PreviousTxnID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerEntry.LedgerHashes\"},{\"kind\":1024,\"name\":\"PreviousTxnLgrSeq\",\"url\":\"interfaces/LedgerEntry.LedgerHashes.html#PreviousTxnLgrSeq\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerEntry.LedgerHashes\"},{\"kind\":256,\"name\":\"Majority\",\"url\":\"interfaces/LedgerEntry.Majority.html\",\"classes\":\"\",\"parent\":\"LedgerEntry\"},{\"kind\":1024,\"name\":\"Majority\",\"url\":\"interfaces/LedgerEntry.Majority.html#Majority\",\"classes\":\"\",\"parent\":\"LedgerEntry.Majority\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/LedgerEntry.Majority.html#Majority.__type\",\"classes\":\"\",\"parent\":\"LedgerEntry.Majority.Majority\"},{\"kind\":1024,\"name\":\"Amendment\",\"url\":\"interfaces/LedgerEntry.Majority.html#Majority.__type.Amendment\",\"classes\":\"\",\"parent\":\"LedgerEntry.Majority.Majority.__type\"},{\"kind\":1024,\"name\":\"CloseTime\",\"url\":\"interfaces/LedgerEntry.Majority.html#Majority.__type.CloseTime\",\"classes\":\"\",\"parent\":\"LedgerEntry.Majority.Majority.__type\"},{\"kind\":32,\"name\":\"NEGATIVE_UNL_ID\",\"url\":\"variables/LedgerEntry.NEGATIVE_UNL_ID.html\",\"classes\":\"\",\"parent\":\"LedgerEntry\"},{\"kind\":256,\"name\":\"NegativeUNL\",\"url\":\"interfaces/LedgerEntry.NegativeUNL.html\",\"classes\":\"\",\"parent\":\"LedgerEntry\"},{\"kind\":1024,\"name\":\"LedgerEntryType\",\"url\":\"interfaces/LedgerEntry.NegativeUNL.html#LedgerEntryType\",\"classes\":\"\",\"parent\":\"LedgerEntry.NegativeUNL\"},{\"kind\":1024,\"name\":\"DisabledValidators\",\"url\":\"interfaces/LedgerEntry.NegativeUNL.html#DisabledValidators\",\"classes\":\"\",\"parent\":\"LedgerEntry.NegativeUNL\"},{\"kind\":1024,\"name\":\"ValidatorToDisable\",\"url\":\"interfaces/LedgerEntry.NegativeUNL.html#ValidatorToDisable\",\"classes\":\"\",\"parent\":\"LedgerEntry.NegativeUNL\"},{\"kind\":1024,\"name\":\"ValidatorToReEnable\",\"url\":\"interfaces/LedgerEntry.NegativeUNL.html#ValidatorToReEnable\",\"classes\":\"\",\"parent\":\"LedgerEntry.NegativeUNL\"},{\"kind\":1024,\"name\":\"index\",\"url\":\"interfaces/LedgerEntry.NegativeUNL.html#index\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerEntry.NegativeUNL\"},{\"kind\":1024,\"name\":\"PreviousTxnID\",\"url\":\"interfaces/LedgerEntry.NegativeUNL.html#PreviousTxnID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerEntry.NegativeUNL\"},{\"kind\":1024,\"name\":\"PreviousTxnLgrSeq\",\"url\":\"interfaces/LedgerEntry.NegativeUNL.html#PreviousTxnLgrSeq\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerEntry.NegativeUNL\"},{\"kind\":256,\"name\":\"NFTokenOffer\",\"url\":\"interfaces/LedgerEntry.NFTokenOffer.html\",\"classes\":\"\",\"parent\":\"LedgerEntry\"},{\"kind\":1024,\"name\":\"LedgerEntryType\",\"url\":\"interfaces/LedgerEntry.NFTokenOffer.html#LedgerEntryType\",\"classes\":\"\",\"parent\":\"LedgerEntry.NFTokenOffer\"},{\"kind\":1024,\"name\":\"Amount\",\"url\":\"interfaces/LedgerEntry.NFTokenOffer.html#Amount\",\"classes\":\"\",\"parent\":\"LedgerEntry.NFTokenOffer\"},{\"kind\":1024,\"name\":\"Destination\",\"url\":\"interfaces/LedgerEntry.NFTokenOffer.html#Destination\",\"classes\":\"\",\"parent\":\"LedgerEntry.NFTokenOffer\"},{\"kind\":1024,\"name\":\"Expiration\",\"url\":\"interfaces/LedgerEntry.NFTokenOffer.html#Expiration\",\"classes\":\"\",\"parent\":\"LedgerEntry.NFTokenOffer\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/LedgerEntry.NFTokenOffer.html#Flags\",\"classes\":\"\",\"parent\":\"LedgerEntry.NFTokenOffer\"},{\"kind\":1024,\"name\":\"NFTokenOfferNode\",\"url\":\"interfaces/LedgerEntry.NFTokenOffer.html#NFTokenOfferNode\",\"classes\":\"\",\"parent\":\"LedgerEntry.NFTokenOffer\"},{\"kind\":1024,\"name\":\"Owner\",\"url\":\"interfaces/LedgerEntry.NFTokenOffer.html#Owner\",\"classes\":\"\",\"parent\":\"LedgerEntry.NFTokenOffer\"},{\"kind\":1024,\"name\":\"OwnerNode\",\"url\":\"interfaces/LedgerEntry.NFTokenOffer.html#OwnerNode\",\"classes\":\"\",\"parent\":\"LedgerEntry.NFTokenOffer\"},{\"kind\":1024,\"name\":\"index\",\"url\":\"interfaces/LedgerEntry.NFTokenOffer.html#index\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerEntry.NFTokenOffer\"},{\"kind\":1024,\"name\":\"PreviousTxnID\",\"url\":\"interfaces/LedgerEntry.NFTokenOffer.html#PreviousTxnID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerEntry.NFTokenOffer\"},{\"kind\":1024,\"name\":\"PreviousTxnLgrSeq\",\"url\":\"interfaces/LedgerEntry.NFTokenOffer.html#PreviousTxnLgrSeq\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerEntry.NFTokenOffer\"},{\"kind\":256,\"name\":\"NFTokenPage\",\"url\":\"interfaces/LedgerEntry.NFTokenPage.html\",\"classes\":\"\",\"parent\":\"LedgerEntry\"},{\"kind\":1024,\"name\":\"LedgerEntryType\",\"url\":\"interfaces/LedgerEntry.NFTokenPage.html#LedgerEntryType\",\"classes\":\"\",\"parent\":\"LedgerEntry.NFTokenPage\"},{\"kind\":1024,\"name\":\"NextPageMin\",\"url\":\"interfaces/LedgerEntry.NFTokenPage.html#NextPageMin\",\"classes\":\"\",\"parent\":\"LedgerEntry.NFTokenPage\"},{\"kind\":1024,\"name\":\"NFTokens\",\"url\":\"interfaces/LedgerEntry.NFTokenPage.html#NFTokens\",\"classes\":\"\",\"parent\":\"LedgerEntry.NFTokenPage\"},{\"kind\":1024,\"name\":\"PreviousPageMin\",\"url\":\"interfaces/LedgerEntry.NFTokenPage.html#PreviousPageMin\",\"classes\":\"\",\"parent\":\"LedgerEntry.NFTokenPage\"},{\"kind\":1024,\"name\":\"index\",\"url\":\"interfaces/LedgerEntry.NFTokenPage.html#index\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerEntry.NFTokenPage\"},{\"kind\":1024,\"name\":\"PreviousTxnID\",\"url\":\"interfaces/LedgerEntry.NFTokenPage.html#PreviousTxnID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerEntry.NFTokenPage\"},{\"kind\":1024,\"name\":\"PreviousTxnLgrSeq\",\"url\":\"interfaces/LedgerEntry.NFTokenPage.html#PreviousTxnLgrSeq\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerEntry.NFTokenPage\"},{\"kind\":256,\"name\":\"NFToken\",\"url\":\"interfaces/LedgerEntry.NFToken.html\",\"classes\":\"\",\"parent\":\"LedgerEntry\"},{\"kind\":1024,\"name\":\"NFToken\",\"url\":\"interfaces/LedgerEntry.NFToken.html#NFToken\",\"classes\":\"\",\"parent\":\"LedgerEntry.NFToken\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/LedgerEntry.NFToken.html#NFToken.__type\",\"classes\":\"\",\"parent\":\"LedgerEntry.NFToken.NFToken\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/LedgerEntry.NFToken.html#NFToken.__type.Flags\",\"classes\":\"\",\"parent\":\"LedgerEntry.NFToken.NFToken.__type\"},{\"kind\":1024,\"name\":\"Issuer\",\"url\":\"interfaces/LedgerEntry.NFToken.html#NFToken.__type.Issuer\",\"classes\":\"\",\"parent\":\"LedgerEntry.NFToken.NFToken.__type\"},{\"kind\":1024,\"name\":\"NFTokenID\",\"url\":\"interfaces/LedgerEntry.NFToken.html#NFToken.__type.NFTokenID\",\"classes\":\"\",\"parent\":\"LedgerEntry.NFToken.NFToken.__type\"},{\"kind\":1024,\"name\":\"NFTokenTaxon\",\"url\":\"interfaces/LedgerEntry.NFToken.html#NFToken.__type.NFTokenTaxon\",\"classes\":\"\",\"parent\":\"LedgerEntry.NFToken.NFToken.__type\"},{\"kind\":1024,\"name\":\"URI\",\"url\":\"interfaces/LedgerEntry.NFToken.html#NFToken.__type.URI\",\"classes\":\"\",\"parent\":\"LedgerEntry.NFToken.NFToken.__type\"},{\"kind\":256,\"name\":\"Offer\",\"url\":\"interfaces/LedgerEntry.Offer.html\",\"classes\":\"\",\"parent\":\"LedgerEntry\"},{\"kind\":1024,\"name\":\"LedgerEntryType\",\"url\":\"interfaces/LedgerEntry.Offer.html#LedgerEntryType\",\"classes\":\"\",\"parent\":\"LedgerEntry.Offer\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/LedgerEntry.Offer.html#Flags\",\"classes\":\"\",\"parent\":\"LedgerEntry.Offer\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/LedgerEntry.Offer.html#Account\",\"classes\":\"\",\"parent\":\"LedgerEntry.Offer\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/LedgerEntry.Offer.html#Sequence\",\"classes\":\"\",\"parent\":\"LedgerEntry.Offer\"},{\"kind\":1024,\"name\":\"TakerPays\",\"url\":\"interfaces/LedgerEntry.Offer.html#TakerPays\",\"classes\":\"\",\"parent\":\"LedgerEntry.Offer\"},{\"kind\":1024,\"name\":\"TakerGets\",\"url\":\"interfaces/LedgerEntry.Offer.html#TakerGets\",\"classes\":\"\",\"parent\":\"LedgerEntry.Offer\"},{\"kind\":1024,\"name\":\"BookDirectory\",\"url\":\"interfaces/LedgerEntry.Offer.html#BookDirectory\",\"classes\":\"\",\"parent\":\"LedgerEntry.Offer\"},{\"kind\":1024,\"name\":\"BookNode\",\"url\":\"interfaces/LedgerEntry.Offer.html#BookNode\",\"classes\":\"\",\"parent\":\"LedgerEntry.Offer\"},{\"kind\":1024,\"name\":\"OwnerNode\",\"url\":\"interfaces/LedgerEntry.Offer.html#OwnerNode\",\"classes\":\"\",\"parent\":\"LedgerEntry.Offer\"},{\"kind\":1024,\"name\":\"Expiration\",\"url\":\"interfaces/LedgerEntry.Offer.html#Expiration\",\"classes\":\"\",\"parent\":\"LedgerEntry.Offer\"},{\"kind\":1024,\"name\":\"index\",\"url\":\"interfaces/LedgerEntry.Offer.html#index\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerEntry.Offer\"},{\"kind\":1024,\"name\":\"PreviousTxnID\",\"url\":\"interfaces/LedgerEntry.Offer.html#PreviousTxnID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerEntry.Offer\"},{\"kind\":1024,\"name\":\"PreviousTxnLgrSeq\",\"url\":\"interfaces/LedgerEntry.Offer.html#PreviousTxnLgrSeq\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerEntry.Offer\"},{\"kind\":8,\"name\":\"OfferFlags\",\"url\":\"enums/LedgerEntry.OfferFlags.html\",\"classes\":\"\",\"parent\":\"LedgerEntry\"},{\"kind\":16,\"name\":\"lsfPassive\",\"url\":\"enums/LedgerEntry.OfferFlags.html#lsfPassive\",\"classes\":\"\",\"parent\":\"LedgerEntry.OfferFlags\"},{\"kind\":16,\"name\":\"lsfSell\",\"url\":\"enums/LedgerEntry.OfferFlags.html#lsfSell\",\"classes\":\"\",\"parent\":\"LedgerEntry.OfferFlags\"},{\"kind\":256,\"name\":\"PayChannel\",\"url\":\"interfaces/LedgerEntry.PayChannel.html\",\"classes\":\"\",\"parent\":\"LedgerEntry\"},{\"kind\":1024,\"name\":\"LedgerEntryType\",\"url\":\"interfaces/LedgerEntry.PayChannel.html#LedgerEntryType\",\"classes\":\"\",\"parent\":\"LedgerEntry.PayChannel\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/LedgerEntry.PayChannel.html#Account\",\"classes\":\"\",\"parent\":\"LedgerEntry.PayChannel\"},{\"kind\":1024,\"name\":\"Destination\",\"url\":\"interfaces/LedgerEntry.PayChannel.html#Destination\",\"classes\":\"\",\"parent\":\"LedgerEntry.PayChannel\"},{\"kind\":1024,\"name\":\"Amount\",\"url\":\"interfaces/LedgerEntry.PayChannel.html#Amount\",\"classes\":\"\",\"parent\":\"LedgerEntry.PayChannel\"},{\"kind\":1024,\"name\":\"Balance\",\"url\":\"interfaces/LedgerEntry.PayChannel.html#Balance\",\"classes\":\"\",\"parent\":\"LedgerEntry.PayChannel\"},{\"kind\":1024,\"name\":\"PublicKey\",\"url\":\"interfaces/LedgerEntry.PayChannel.html#PublicKey\",\"classes\":\"\",\"parent\":\"LedgerEntry.PayChannel\"},{\"kind\":1024,\"name\":\"SettleDelay\",\"url\":\"interfaces/LedgerEntry.PayChannel.html#SettleDelay\",\"classes\":\"\",\"parent\":\"LedgerEntry.PayChannel\"},{\"kind\":1024,\"name\":\"OwnerNode\",\"url\":\"interfaces/LedgerEntry.PayChannel.html#OwnerNode\",\"classes\":\"\",\"parent\":\"LedgerEntry.PayChannel\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/LedgerEntry.PayChannel.html#Flags\",\"classes\":\"\",\"parent\":\"LedgerEntry.PayChannel\"},{\"kind\":1024,\"name\":\"Expiration\",\"url\":\"interfaces/LedgerEntry.PayChannel.html#Expiration\",\"classes\":\"\",\"parent\":\"LedgerEntry.PayChannel\"},{\"kind\":1024,\"name\":\"CancelAfter\",\"url\":\"interfaces/LedgerEntry.PayChannel.html#CancelAfter\",\"classes\":\"\",\"parent\":\"LedgerEntry.PayChannel\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/LedgerEntry.PayChannel.html#SourceTag\",\"classes\":\"\",\"parent\":\"LedgerEntry.PayChannel\"},{\"kind\":1024,\"name\":\"DestinationTag\",\"url\":\"interfaces/LedgerEntry.PayChannel.html#DestinationTag\",\"classes\":\"\",\"parent\":\"LedgerEntry.PayChannel\"},{\"kind\":1024,\"name\":\"DestinationNode\",\"url\":\"interfaces/LedgerEntry.PayChannel.html#DestinationNode\",\"classes\":\"\",\"parent\":\"LedgerEntry.PayChannel\"},{\"kind\":1024,\"name\":\"index\",\"url\":\"interfaces/LedgerEntry.PayChannel.html#index\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerEntry.PayChannel\"},{\"kind\":1024,\"name\":\"PreviousTxnID\",\"url\":\"interfaces/LedgerEntry.PayChannel.html#PreviousTxnID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerEntry.PayChannel\"},{\"kind\":1024,\"name\":\"PreviousTxnLgrSeq\",\"url\":\"interfaces/LedgerEntry.PayChannel.html#PreviousTxnLgrSeq\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerEntry.PayChannel\"},{\"kind\":256,\"name\":\"RippleState\",\"url\":\"interfaces/LedgerEntry.RippleState.html\",\"classes\":\"\",\"parent\":\"LedgerEntry\"},{\"kind\":1024,\"name\":\"LedgerEntryType\",\"url\":\"interfaces/LedgerEntry.RippleState.html#LedgerEntryType\",\"classes\":\"\",\"parent\":\"LedgerEntry.RippleState\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/LedgerEntry.RippleState.html#Flags\",\"classes\":\"\",\"parent\":\"LedgerEntry.RippleState\"},{\"kind\":1024,\"name\":\"Balance\",\"url\":\"interfaces/LedgerEntry.RippleState.html#Balance\",\"classes\":\"\",\"parent\":\"LedgerEntry.RippleState\"},{\"kind\":1024,\"name\":\"LowLimit\",\"url\":\"interfaces/LedgerEntry.RippleState.html#LowLimit\",\"classes\":\"\",\"parent\":\"LedgerEntry.RippleState\"},{\"kind\":1024,\"name\":\"HighLimit\",\"url\":\"interfaces/LedgerEntry.RippleState.html#HighLimit\",\"classes\":\"\",\"parent\":\"LedgerEntry.RippleState\"},{\"kind\":1024,\"name\":\"LowNode\",\"url\":\"interfaces/LedgerEntry.RippleState.html#LowNode\",\"classes\":\"\",\"parent\":\"LedgerEntry.RippleState\"},{\"kind\":1024,\"name\":\"HighNode\",\"url\":\"interfaces/LedgerEntry.RippleState.html#HighNode\",\"classes\":\"\",\"parent\":\"LedgerEntry.RippleState\"},{\"kind\":1024,\"name\":\"LowQualityIn\",\"url\":\"interfaces/LedgerEntry.RippleState.html#LowQualityIn\",\"classes\":\"\",\"parent\":\"LedgerEntry.RippleState\"},{\"kind\":1024,\"name\":\"LowQualityOut\",\"url\":\"interfaces/LedgerEntry.RippleState.html#LowQualityOut\",\"classes\":\"\",\"parent\":\"LedgerEntry.RippleState\"},{\"kind\":1024,\"name\":\"HighQualityIn\",\"url\":\"interfaces/LedgerEntry.RippleState.html#HighQualityIn\",\"classes\":\"\",\"parent\":\"LedgerEntry.RippleState\"},{\"kind\":1024,\"name\":\"HighQualityOut\",\"url\":\"interfaces/LedgerEntry.RippleState.html#HighQualityOut\",\"classes\":\"\",\"parent\":\"LedgerEntry.RippleState\"},{\"kind\":1024,\"name\":\"index\",\"url\":\"interfaces/LedgerEntry.RippleState.html#index\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerEntry.RippleState\"},{\"kind\":1024,\"name\":\"PreviousTxnID\",\"url\":\"interfaces/LedgerEntry.RippleState.html#PreviousTxnID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerEntry.RippleState\"},{\"kind\":1024,\"name\":\"PreviousTxnLgrSeq\",\"url\":\"interfaces/LedgerEntry.RippleState.html#PreviousTxnLgrSeq\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerEntry.RippleState\"},{\"kind\":8,\"name\":\"RippleStateFlags\",\"url\":\"enums/LedgerEntry.RippleStateFlags.html\",\"classes\":\"\",\"parent\":\"LedgerEntry\"},{\"kind\":16,\"name\":\"lsfLowReserve\",\"url\":\"enums/LedgerEntry.RippleStateFlags.html#lsfLowReserve\",\"classes\":\"\",\"parent\":\"LedgerEntry.RippleStateFlags\"},{\"kind\":16,\"name\":\"lsfHighReserve\",\"url\":\"enums/LedgerEntry.RippleStateFlags.html#lsfHighReserve\",\"classes\":\"\",\"parent\":\"LedgerEntry.RippleStateFlags\"},{\"kind\":16,\"name\":\"lsfLowAuth\",\"url\":\"enums/LedgerEntry.RippleStateFlags.html#lsfLowAuth\",\"classes\":\"\",\"parent\":\"LedgerEntry.RippleStateFlags\"},{\"kind\":16,\"name\":\"lsfHighAuth\",\"url\":\"enums/LedgerEntry.RippleStateFlags.html#lsfHighAuth\",\"classes\":\"\",\"parent\":\"LedgerEntry.RippleStateFlags\"},{\"kind\":16,\"name\":\"lsfLowNoRipple\",\"url\":\"enums/LedgerEntry.RippleStateFlags.html#lsfLowNoRipple\",\"classes\":\"\",\"parent\":\"LedgerEntry.RippleStateFlags\"},{\"kind\":16,\"name\":\"lsfHighNoRipple\",\"url\":\"enums/LedgerEntry.RippleStateFlags.html#lsfHighNoRipple\",\"classes\":\"\",\"parent\":\"LedgerEntry.RippleStateFlags\"},{\"kind\":16,\"name\":\"lsfLowFreeze\",\"url\":\"enums/LedgerEntry.RippleStateFlags.html#lsfLowFreeze\",\"classes\":\"\",\"parent\":\"LedgerEntry.RippleStateFlags\"},{\"kind\":16,\"name\":\"lsfHighFreeze\",\"url\":\"enums/LedgerEntry.RippleStateFlags.html#lsfHighFreeze\",\"classes\":\"\",\"parent\":\"LedgerEntry.RippleStateFlags\"},{\"kind\":256,\"name\":\"SignerList\",\"url\":\"interfaces/LedgerEntry.SignerList.html\",\"classes\":\"\",\"parent\":\"LedgerEntry\"},{\"kind\":1024,\"name\":\"LedgerEntryType\",\"url\":\"interfaces/LedgerEntry.SignerList.html#LedgerEntryType\",\"classes\":\"\",\"parent\":\"LedgerEntry.SignerList\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/LedgerEntry.SignerList.html#Flags\",\"classes\":\"\",\"parent\":\"LedgerEntry.SignerList\"},{\"kind\":1024,\"name\":\"OwnerNode\",\"url\":\"interfaces/LedgerEntry.SignerList.html#OwnerNode\",\"classes\":\"\",\"parent\":\"LedgerEntry.SignerList\"},{\"kind\":1024,\"name\":\"SignerEntries\",\"url\":\"interfaces/LedgerEntry.SignerList.html#SignerEntries\",\"classes\":\"\",\"parent\":\"LedgerEntry.SignerList\"},{\"kind\":1024,\"name\":\"SignerListID\",\"url\":\"interfaces/LedgerEntry.SignerList.html#SignerListID\",\"classes\":\"\",\"parent\":\"LedgerEntry.SignerList\"},{\"kind\":1024,\"name\":\"SignerQuorum\",\"url\":\"interfaces/LedgerEntry.SignerList.html#SignerQuorum\",\"classes\":\"\",\"parent\":\"LedgerEntry.SignerList\"},{\"kind\":1024,\"name\":\"index\",\"url\":\"interfaces/LedgerEntry.SignerList.html#index\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerEntry.SignerList\"},{\"kind\":1024,\"name\":\"PreviousTxnID\",\"url\":\"interfaces/LedgerEntry.SignerList.html#PreviousTxnID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerEntry.SignerList\"},{\"kind\":1024,\"name\":\"PreviousTxnLgrSeq\",\"url\":\"interfaces/LedgerEntry.SignerList.html#PreviousTxnLgrSeq\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerEntry.SignerList\"},{\"kind\":8,\"name\":\"SignerListFlags\",\"url\":\"enums/LedgerEntry.SignerListFlags.html\",\"classes\":\"\",\"parent\":\"LedgerEntry\"},{\"kind\":16,\"name\":\"lsfOneOwnerCount\",\"url\":\"enums/LedgerEntry.SignerListFlags.html#lsfOneOwnerCount\",\"classes\":\"\",\"parent\":\"LedgerEntry.SignerListFlags\"},{\"kind\":256,\"name\":\"Ticket\",\"url\":\"interfaces/LedgerEntry.Ticket.html\",\"classes\":\"\",\"parent\":\"LedgerEntry\"},{\"kind\":1024,\"name\":\"LedgerEntryType\",\"url\":\"interfaces/LedgerEntry.Ticket.html#LedgerEntryType\",\"classes\":\"\",\"parent\":\"LedgerEntry.Ticket\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/LedgerEntry.Ticket.html#Account\",\"classes\":\"\",\"parent\":\"LedgerEntry.Ticket\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/LedgerEntry.Ticket.html#Flags\",\"classes\":\"\",\"parent\":\"LedgerEntry.Ticket\"},{\"kind\":1024,\"name\":\"OwnerNode\",\"url\":\"interfaces/LedgerEntry.Ticket.html#OwnerNode\",\"classes\":\"\",\"parent\":\"LedgerEntry.Ticket\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/LedgerEntry.Ticket.html#TicketSequence\",\"classes\":\"\",\"parent\":\"LedgerEntry.Ticket\"},{\"kind\":1024,\"name\":\"index\",\"url\":\"interfaces/LedgerEntry.Ticket.html#index\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerEntry.Ticket\"},{\"kind\":1024,\"name\":\"PreviousTxnID\",\"url\":\"interfaces/LedgerEntry.Ticket.html#PreviousTxnID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerEntry.Ticket\"},{\"kind\":1024,\"name\":\"PreviousTxnLgrSeq\",\"url\":\"interfaces/LedgerEntry.Ticket.html#PreviousTxnLgrSeq\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerEntry.Ticket\"},{\"kind\":256,\"name\":\"XChainOwnedClaimID\",\"url\":\"interfaces/LedgerEntry.XChainOwnedClaimID.html\",\"classes\":\"\",\"parent\":\"LedgerEntry\"},{\"kind\":1024,\"name\":\"LedgerEntryType\",\"url\":\"interfaces/LedgerEntry.XChainOwnedClaimID.html#LedgerEntryType\",\"classes\":\"\",\"parent\":\"LedgerEntry.XChainOwnedClaimID\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/LedgerEntry.XChainOwnedClaimID.html#Account\",\"classes\":\"\",\"parent\":\"LedgerEntry.XChainOwnedClaimID\"},{\"kind\":1024,\"name\":\"XChainBridge\",\"url\":\"interfaces/LedgerEntry.XChainOwnedClaimID.html#XChainBridge\",\"classes\":\"\",\"parent\":\"LedgerEntry.XChainOwnedClaimID\"},{\"kind\":1024,\"name\":\"XChainClaimID\",\"url\":\"interfaces/LedgerEntry.XChainOwnedClaimID.html#XChainClaimID\",\"classes\":\"\",\"parent\":\"LedgerEntry.XChainOwnedClaimID\"},{\"kind\":1024,\"name\":\"OtherChainSource\",\"url\":\"interfaces/LedgerEntry.XChainOwnedClaimID.html#OtherChainSource\",\"classes\":\"\",\"parent\":\"LedgerEntry.XChainOwnedClaimID\"},{\"kind\":1024,\"name\":\"XChainClaimAttestations\",\"url\":\"interfaces/LedgerEntry.XChainOwnedClaimID.html#XChainClaimAttestations\",\"classes\":\"\",\"parent\":\"LedgerEntry.XChainOwnedClaimID\"},{\"kind\":1024,\"name\":\"SignatureReward\",\"url\":\"interfaces/LedgerEntry.XChainOwnedClaimID.html#SignatureReward\",\"classes\":\"\",\"parent\":\"LedgerEntry.XChainOwnedClaimID\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/LedgerEntry.XChainOwnedClaimID.html#Flags\",\"classes\":\"\",\"parent\":\"LedgerEntry.XChainOwnedClaimID\"},{\"kind\":1024,\"name\":\"OwnerNode\",\"url\":\"interfaces/LedgerEntry.XChainOwnedClaimID.html#OwnerNode\",\"classes\":\"\",\"parent\":\"LedgerEntry.XChainOwnedClaimID\"},{\"kind\":1024,\"name\":\"index\",\"url\":\"interfaces/LedgerEntry.XChainOwnedClaimID.html#index\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerEntry.XChainOwnedClaimID\"},{\"kind\":1024,\"name\":\"PreviousTxnID\",\"url\":\"interfaces/LedgerEntry.XChainOwnedClaimID.html#PreviousTxnID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerEntry.XChainOwnedClaimID\"},{\"kind\":1024,\"name\":\"PreviousTxnLgrSeq\",\"url\":\"interfaces/LedgerEntry.XChainOwnedClaimID.html#PreviousTxnLgrSeq\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerEntry.XChainOwnedClaimID\"},{\"kind\":256,\"name\":\"XChainOwnedCreateAccountClaimID\",\"url\":\"interfaces/LedgerEntry.XChainOwnedCreateAccountClaimID.html\",\"classes\":\"\",\"parent\":\"LedgerEntry\"},{\"kind\":1024,\"name\":\"LedgerEntryType\",\"url\":\"interfaces/LedgerEntry.XChainOwnedCreateAccountClaimID.html#LedgerEntryType\",\"classes\":\"\",\"parent\":\"LedgerEntry.XChainOwnedCreateAccountClaimID\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/LedgerEntry.XChainOwnedCreateAccountClaimID.html#Account\",\"classes\":\"\",\"parent\":\"LedgerEntry.XChainOwnedCreateAccountClaimID\"},{\"kind\":1024,\"name\":\"XChainBridge\",\"url\":\"interfaces/LedgerEntry.XChainOwnedCreateAccountClaimID.html#XChainBridge\",\"classes\":\"\",\"parent\":\"LedgerEntry.XChainOwnedCreateAccountClaimID\"},{\"kind\":1024,\"name\":\"XChainAccountCreateCount\",\"url\":\"interfaces/LedgerEntry.XChainOwnedCreateAccountClaimID.html#XChainAccountCreateCount\",\"classes\":\"\",\"parent\":\"LedgerEntry.XChainOwnedCreateAccountClaimID\"},{\"kind\":1024,\"name\":\"XChainCreateAccountAttestations\",\"url\":\"interfaces/LedgerEntry.XChainOwnedCreateAccountClaimID.html#XChainCreateAccountAttestations\",\"classes\":\"\",\"parent\":\"LedgerEntry.XChainOwnedCreateAccountClaimID\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/LedgerEntry.XChainOwnedCreateAccountClaimID.html#Flags\",\"classes\":\"\",\"parent\":\"LedgerEntry.XChainOwnedCreateAccountClaimID\"},{\"kind\":1024,\"name\":\"OwnerNode\",\"url\":\"interfaces/LedgerEntry.XChainOwnedCreateAccountClaimID.html#OwnerNode\",\"classes\":\"\",\"parent\":\"LedgerEntry.XChainOwnedCreateAccountClaimID\"},{\"kind\":1024,\"name\":\"index\",\"url\":\"interfaces/LedgerEntry.XChainOwnedCreateAccountClaimID.html#index\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerEntry.XChainOwnedCreateAccountClaimID\"},{\"kind\":1024,\"name\":\"PreviousTxnID\",\"url\":\"interfaces/LedgerEntry.XChainOwnedCreateAccountClaimID.html#PreviousTxnID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerEntry.XChainOwnedCreateAccountClaimID\"},{\"kind\":1024,\"name\":\"PreviousTxnLgrSeq\",\"url\":\"interfaces/LedgerEntry.XChainOwnedCreateAccountClaimID.html#PreviousTxnLgrSeq\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerEntry.XChainOwnedCreateAccountClaimID\"},{\"kind\":256,\"name\":\"VoteSlot\",\"url\":\"interfaces/LedgerEntry.VoteSlot.html\",\"classes\":\"\",\"parent\":\"LedgerEntry\"},{\"kind\":1024,\"name\":\"VoteEntry\",\"url\":\"interfaces/LedgerEntry.VoteSlot.html#VoteEntry\",\"classes\":\"\",\"parent\":\"LedgerEntry.VoteSlot\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/LedgerEntry.VoteSlot.html#VoteEntry.__type\",\"classes\":\"\",\"parent\":\"LedgerEntry.VoteSlot.VoteEntry\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/LedgerEntry.VoteSlot.html#VoteEntry.__type.Account\",\"classes\":\"\",\"parent\":\"LedgerEntry.VoteSlot.VoteEntry.__type\"},{\"kind\":1024,\"name\":\"TradingFee\",\"url\":\"interfaces/LedgerEntry.VoteSlot.html#VoteEntry.__type.TradingFee\",\"classes\":\"\",\"parent\":\"LedgerEntry.VoteSlot.VoteEntry.__type\"},{\"kind\":1024,\"name\":\"VoteWeight\",\"url\":\"interfaces/LedgerEntry.VoteSlot.html#VoteEntry.__type.VoteWeight\",\"classes\":\"\",\"parent\":\"LedgerEntry.VoteSlot.VoteEntry.__type\"},{\"kind\":64,\"name\":\"setTransactionFlagsToNumber\",\"url\":\"functions/setTransactionFlagsToNumber.html\",\"classes\":\"\"},{\"kind\":64,\"name\":\"parseAccountRootFlags\",\"url\":\"functions/parseAccountRootFlags.html\",\"classes\":\"\"},{\"kind\":2097152,\"name\":\"RequestResponseMap\",\"url\":\"types/RequestResponseMap.html\",\"classes\":\"\"},{\"kind\":2097152,\"name\":\"MarkerRequest\",\"url\":\"types/MarkerRequest.html\",\"classes\":\"\"},{\"kind\":2097152,\"name\":\"MarkerResponse\",\"url\":\"types/MarkerResponse.html\",\"classes\":\"\"},{\"kind\":2097152,\"name\":\"RequestAllResponseMap\",\"url\":\"types/RequestAllResponseMap.html\",\"classes\":\"\"},{\"kind\":256,\"name\":\"BaseRequest\",\"url\":\"interfaces/BaseRequest.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/BaseRequest.html#id\",\"classes\":\"\",\"parent\":\"BaseRequest\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/BaseRequest.html#command\",\"classes\":\"\",\"parent\":\"BaseRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/BaseRequest.html#api_version\",\"classes\":\"\",\"parent\":\"BaseRequest\"},{\"kind\":256,\"name\":\"BaseResponse\",\"url\":\"interfaces/BaseResponse.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/BaseResponse.html#id\",\"classes\":\"\",\"parent\":\"BaseResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/BaseResponse.html#status\",\"classes\":\"\",\"parent\":\"BaseResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/BaseResponse.html#type\",\"classes\":\"\",\"parent\":\"BaseResponse\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/BaseResponse.html#result\",\"classes\":\"\",\"parent\":\"BaseResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/BaseResponse.html#warning\",\"classes\":\"\",\"parent\":\"BaseResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/BaseResponse.html#warnings\",\"classes\":\"\",\"parent\":\"BaseResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/BaseResponse.html#forwarded\",\"classes\":\"\",\"parent\":\"BaseResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/BaseResponse.html#api_version\",\"classes\":\"\",\"parent\":\"BaseResponse\"},{\"kind\":2097152,\"name\":\"Request\",\"url\":\"types/Request.html\",\"classes\":\"\"},{\"kind\":2097152,\"name\":\"Response\",\"url\":\"types/Response.html\",\"classes\":\"\"},{\"kind\":256,\"name\":\"ResponseWarning\",\"url\":\"interfaces/ResponseWarning.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/ResponseWarning.html#id\",\"classes\":\"\",\"parent\":\"ResponseWarning\"},{\"kind\":1024,\"name\":\"message\",\"url\":\"interfaces/ResponseWarning.html#message\",\"classes\":\"\",\"parent\":\"ResponseWarning\"},{\"kind\":1024,\"name\":\"details\",\"url\":\"interfaces/ResponseWarning.html#details\",\"classes\":\"\",\"parent\":\"ResponseWarning\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/ResponseWarning.html#details.__type\",\"classes\":\"\",\"parent\":\"ResponseWarning.details\"},{\"kind\":256,\"name\":\"Channel\",\"url\":\"interfaces/Channel.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"account\",\"url\":\"interfaces/Channel.html#account\",\"classes\":\"\",\"parent\":\"Channel\"},{\"kind\":1024,\"name\":\"amount\",\"url\":\"interfaces/Channel.html#amount\",\"classes\":\"\",\"parent\":\"Channel\"},{\"kind\":1024,\"name\":\"balance\",\"url\":\"interfaces/Channel.html#balance\",\"classes\":\"\",\"parent\":\"Channel\"},{\"kind\":1024,\"name\":\"channel_id\",\"url\":\"interfaces/Channel.html#channel_id\",\"classes\":\"\",\"parent\":\"Channel\"},{\"kind\":1024,\"name\":\"destination_account\",\"url\":\"interfaces/Channel.html#destination_account\",\"classes\":\"\",\"parent\":\"Channel\"},{\"kind\":1024,\"name\":\"settle_delay\",\"url\":\"interfaces/Channel.html#settle_delay\",\"classes\":\"\",\"parent\":\"Channel\"},{\"kind\":1024,\"name\":\"public_key\",\"url\":\"interfaces/Channel.html#public_key\",\"classes\":\"\",\"parent\":\"Channel\"},{\"kind\":1024,\"name\":\"public_key_hex\",\"url\":\"interfaces/Channel.html#public_key_hex\",\"classes\":\"\",\"parent\":\"Channel\"},{\"kind\":1024,\"name\":\"expiration\",\"url\":\"interfaces/Channel.html#expiration\",\"classes\":\"\",\"parent\":\"Channel\"},{\"kind\":1024,\"name\":\"cancel_after\",\"url\":\"interfaces/Channel.html#cancel_after\",\"classes\":\"\",\"parent\":\"Channel\"},{\"kind\":1024,\"name\":\"source_tab\",\"url\":\"interfaces/Channel.html#source_tab\",\"classes\":\"\",\"parent\":\"Channel\"},{\"kind\":1024,\"name\":\"destination_tag\",\"url\":\"interfaces/Channel.html#destination_tag\",\"classes\":\"\",\"parent\":\"Channel\"},{\"kind\":256,\"name\":\"AccountChannelsRequest\",\"url\":\"interfaces/AccountChannelsRequest.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/AccountChannelsRequest.html#command\",\"classes\":\"\",\"parent\":\"AccountChannelsRequest\"},{\"kind\":1024,\"name\":\"account\",\"url\":\"interfaces/AccountChannelsRequest.html#account\",\"classes\":\"\",\"parent\":\"AccountChannelsRequest\"},{\"kind\":1024,\"name\":\"destination_account\",\"url\":\"interfaces/AccountChannelsRequest.html#destination_account\",\"classes\":\"\",\"parent\":\"AccountChannelsRequest\"},{\"kind\":1024,\"name\":\"limit\",\"url\":\"interfaces/AccountChannelsRequest.html#limit\",\"classes\":\"\",\"parent\":\"AccountChannelsRequest\"},{\"kind\":1024,\"name\":\"marker\",\"url\":\"interfaces/AccountChannelsRequest.html#marker\",\"classes\":\"\",\"parent\":\"AccountChannelsRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/AccountChannelsRequest.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountChannelsRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/AccountChannelsRequest.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountChannelsRequest\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/AccountChannelsRequest.html#ledger_hash\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountChannelsRequest\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/AccountChannelsRequest.html#ledger_index\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountChannelsRequest\"},{\"kind\":256,\"name\":\"AccountChannelsResponse\",\"url\":\"interfaces/AccountChannelsResponse.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/AccountChannelsResponse.html#result\",\"classes\":\"\",\"parent\":\"AccountChannelsResponse\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/AccountChannelsResponse.html#result.__type\",\"classes\":\"\",\"parent\":\"AccountChannelsResponse.result\"},{\"kind\":1024,\"name\":\"account\",\"url\":\"interfaces/AccountChannelsResponse.html#result.__type.account\",\"classes\":\"\",\"parent\":\"AccountChannelsResponse.result.__type\"},{\"kind\":1024,\"name\":\"channels\",\"url\":\"interfaces/AccountChannelsResponse.html#result.__type.channels\",\"classes\":\"\",\"parent\":\"AccountChannelsResponse.result.__type\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/AccountChannelsResponse.html#result.__type.ledger_hash\",\"classes\":\"\",\"parent\":\"AccountChannelsResponse.result.__type\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/AccountChannelsResponse.html#result.__type.ledger_index\",\"classes\":\"\",\"parent\":\"AccountChannelsResponse.result.__type\"},{\"kind\":1024,\"name\":\"validated\",\"url\":\"interfaces/AccountChannelsResponse.html#result.__type.validated\",\"classes\":\"\",\"parent\":\"AccountChannelsResponse.result.__type\"},{\"kind\":1024,\"name\":\"limit\",\"url\":\"interfaces/AccountChannelsResponse.html#result.__type.limit\",\"classes\":\"\",\"parent\":\"AccountChannelsResponse.result.__type\"},{\"kind\":1024,\"name\":\"marker\",\"url\":\"interfaces/AccountChannelsResponse.html#result.__type.marker\",\"classes\":\"\",\"parent\":\"AccountChannelsResponse.result.__type\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/AccountChannelsResponse.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountChannelsResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/AccountChannelsResponse.html#status\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountChannelsResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/AccountChannelsResponse.html#type\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountChannelsResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/AccountChannelsResponse.html#warning\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountChannelsResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/AccountChannelsResponse.html#warnings\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountChannelsResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/AccountChannelsResponse.html#forwarded\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountChannelsResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/AccountChannelsResponse.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountChannelsResponse\"},{\"kind\":256,\"name\":\"AccountCurrenciesRequest\",\"url\":\"interfaces/AccountCurrenciesRequest.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/AccountCurrenciesRequest.html#command\",\"classes\":\"\",\"parent\":\"AccountCurrenciesRequest\"},{\"kind\":1024,\"name\":\"account\",\"url\":\"interfaces/AccountCurrenciesRequest.html#account\",\"classes\":\"\",\"parent\":\"AccountCurrenciesRequest\"},{\"kind\":1024,\"name\":\"strict\",\"url\":\"interfaces/AccountCurrenciesRequest.html#strict\",\"classes\":\"\",\"parent\":\"AccountCurrenciesRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/AccountCurrenciesRequest.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountCurrenciesRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/AccountCurrenciesRequest.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountCurrenciesRequest\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/AccountCurrenciesRequest.html#ledger_hash\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountCurrenciesRequest\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/AccountCurrenciesRequest.html#ledger_index\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountCurrenciesRequest\"},{\"kind\":256,\"name\":\"AccountCurrenciesResponse\",\"url\":\"interfaces/AccountCurrenciesResponse.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/AccountCurrenciesResponse.html#result\",\"classes\":\"\",\"parent\":\"AccountCurrenciesResponse\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/AccountCurrenciesResponse.html#result.__type\",\"classes\":\"\",\"parent\":\"AccountCurrenciesResponse.result\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/AccountCurrenciesResponse.html#result.__type.ledger_hash\",\"classes\":\"\",\"parent\":\"AccountCurrenciesResponse.result.__type\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/AccountCurrenciesResponse.html#result.__type.ledger_index\",\"classes\":\"\",\"parent\":\"AccountCurrenciesResponse.result.__type\"},{\"kind\":1024,\"name\":\"receive_currencies\",\"url\":\"interfaces/AccountCurrenciesResponse.html#result.__type.receive_currencies\",\"classes\":\"\",\"parent\":\"AccountCurrenciesResponse.result.__type\"},{\"kind\":1024,\"name\":\"send_currencies\",\"url\":\"interfaces/AccountCurrenciesResponse.html#result.__type.send_currencies\",\"classes\":\"\",\"parent\":\"AccountCurrenciesResponse.result.__type\"},{\"kind\":1024,\"name\":\"validated\",\"url\":\"interfaces/AccountCurrenciesResponse.html#result.__type.validated\",\"classes\":\"\",\"parent\":\"AccountCurrenciesResponse.result.__type\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/AccountCurrenciesResponse.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountCurrenciesResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/AccountCurrenciesResponse.html#status\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountCurrenciesResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/AccountCurrenciesResponse.html#type\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountCurrenciesResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/AccountCurrenciesResponse.html#warning\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountCurrenciesResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/AccountCurrenciesResponse.html#warnings\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountCurrenciesResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/AccountCurrenciesResponse.html#forwarded\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountCurrenciesResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/AccountCurrenciesResponse.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountCurrenciesResponse\"},{\"kind\":256,\"name\":\"AccountInfoAccountFlags\",\"url\":\"interfaces/AccountInfoAccountFlags.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"defaultRipple\",\"url\":\"interfaces/AccountInfoAccountFlags.html#defaultRipple\",\"classes\":\"\",\"parent\":\"AccountInfoAccountFlags\"},{\"kind\":1024,\"name\":\"depositAuth\",\"url\":\"interfaces/AccountInfoAccountFlags.html#depositAuth\",\"classes\":\"\",\"parent\":\"AccountInfoAccountFlags\"},{\"kind\":1024,\"name\":\"disableMasterKey\",\"url\":\"interfaces/AccountInfoAccountFlags.html#disableMasterKey\",\"classes\":\"\",\"parent\":\"AccountInfoAccountFlags\"},{\"kind\":1024,\"name\":\"disallowIncomingCheck\",\"url\":\"interfaces/AccountInfoAccountFlags.html#disallowIncomingCheck\",\"classes\":\"\",\"parent\":\"AccountInfoAccountFlags\"},{\"kind\":1024,\"name\":\"disallowIncomingNFTokenOffer\",\"url\":\"interfaces/AccountInfoAccountFlags.html#disallowIncomingNFTokenOffer\",\"classes\":\"\",\"parent\":\"AccountInfoAccountFlags\"},{\"kind\":1024,\"name\":\"disallowIncomingPayChan\",\"url\":\"interfaces/AccountInfoAccountFlags.html#disallowIncomingPayChan\",\"classes\":\"\",\"parent\":\"AccountInfoAccountFlags\"},{\"kind\":1024,\"name\":\"disallowIncomingTrustline\",\"url\":\"interfaces/AccountInfoAccountFlags.html#disallowIncomingTrustline\",\"classes\":\"\",\"parent\":\"AccountInfoAccountFlags\"},{\"kind\":1024,\"name\":\"disallowIncomingXRP\",\"url\":\"interfaces/AccountInfoAccountFlags.html#disallowIncomingXRP\",\"classes\":\"\",\"parent\":\"AccountInfoAccountFlags\"},{\"kind\":1024,\"name\":\"globalFreeze\",\"url\":\"interfaces/AccountInfoAccountFlags.html#globalFreeze\",\"classes\":\"\",\"parent\":\"AccountInfoAccountFlags\"},{\"kind\":1024,\"name\":\"noFreeze\",\"url\":\"interfaces/AccountInfoAccountFlags.html#noFreeze\",\"classes\":\"\",\"parent\":\"AccountInfoAccountFlags\"},{\"kind\":1024,\"name\":\"passwordSpent\",\"url\":\"interfaces/AccountInfoAccountFlags.html#passwordSpent\",\"classes\":\"\",\"parent\":\"AccountInfoAccountFlags\"},{\"kind\":1024,\"name\":\"requireAuthorization\",\"url\":\"interfaces/AccountInfoAccountFlags.html#requireAuthorization\",\"classes\":\"\",\"parent\":\"AccountInfoAccountFlags\"},{\"kind\":1024,\"name\":\"requireDestinationTag\",\"url\":\"interfaces/AccountInfoAccountFlags.html#requireDestinationTag\",\"classes\":\"\",\"parent\":\"AccountInfoAccountFlags\"},{\"kind\":1024,\"name\":\"allowTrustLineClawback\",\"url\":\"interfaces/AccountInfoAccountFlags.html#allowTrustLineClawback\",\"classes\":\"\",\"parent\":\"AccountInfoAccountFlags\"},{\"kind\":256,\"name\":\"AccountInfoRequest\",\"url\":\"interfaces/AccountInfoRequest.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/AccountInfoRequest.html#command\",\"classes\":\"\",\"parent\":\"AccountInfoRequest\"},{\"kind\":1024,\"name\":\"account\",\"url\":\"interfaces/AccountInfoRequest.html#account\",\"classes\":\"\",\"parent\":\"AccountInfoRequest\"},{\"kind\":1024,\"name\":\"queue\",\"url\":\"interfaces/AccountInfoRequest.html#queue\",\"classes\":\"\",\"parent\":\"AccountInfoRequest\"},{\"kind\":1024,\"name\":\"signer_lists\",\"url\":\"interfaces/AccountInfoRequest.html#signer_lists\",\"classes\":\"\",\"parent\":\"AccountInfoRequest\"},{\"kind\":1024,\"name\":\"strict\",\"url\":\"interfaces/AccountInfoRequest.html#strict\",\"classes\":\"\",\"parent\":\"AccountInfoRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/AccountInfoRequest.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountInfoRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/AccountInfoRequest.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountInfoRequest\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/AccountInfoRequest.html#ledger_hash\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountInfoRequest\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/AccountInfoRequest.html#ledger_index\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountInfoRequest\"},{\"kind\":256,\"name\":\"AccountInfoResponse\",\"url\":\"interfaces/AccountInfoResponse.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/AccountInfoResponse.html#result\",\"classes\":\"\",\"parent\":\"AccountInfoResponse\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/AccountInfoResponse.html#result.__type\",\"classes\":\"\",\"parent\":\"AccountInfoResponse.result\"},{\"kind\":1024,\"name\":\"account_data\",\"url\":\"interfaces/AccountInfoResponse.html#result.__type.account_data\",\"classes\":\"\",\"parent\":\"AccountInfoResponse.result.__type\"},{\"kind\":1024,\"name\":\"account_flags\",\"url\":\"interfaces/AccountInfoResponse.html#result.__type.account_flags\",\"classes\":\"\",\"parent\":\"AccountInfoResponse.result.__type\"},{\"kind\":1024,\"name\":\"ledger_current_index\",\"url\":\"interfaces/AccountInfoResponse.html#result.__type.ledger_current_index\",\"classes\":\"\",\"parent\":\"AccountInfoResponse.result.__type\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/AccountInfoResponse.html#result.__type.ledger_index\",\"classes\":\"\",\"parent\":\"AccountInfoResponse.result.__type\"},{\"kind\":1024,\"name\":\"queue_data\",\"url\":\"interfaces/AccountInfoResponse.html#result.__type.queue_data\",\"classes\":\"\",\"parent\":\"AccountInfoResponse.result.__type\"},{\"kind\":1024,\"name\":\"validated\",\"url\":\"interfaces/AccountInfoResponse.html#result.__type.validated\",\"classes\":\"\",\"parent\":\"AccountInfoResponse.result.__type\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/AccountInfoResponse.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountInfoResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/AccountInfoResponse.html#status\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountInfoResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/AccountInfoResponse.html#type\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountInfoResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/AccountInfoResponse.html#warning\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountInfoResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/AccountInfoResponse.html#warnings\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountInfoResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/AccountInfoResponse.html#forwarded\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountInfoResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/AccountInfoResponse.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountInfoResponse\"},{\"kind\":256,\"name\":\"AccountQueueData\",\"url\":\"interfaces/AccountQueueData.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"txn_count\",\"url\":\"interfaces/AccountQueueData.html#txn_count\",\"classes\":\"\",\"parent\":\"AccountQueueData\"},{\"kind\":1024,\"name\":\"auth_change_queued\",\"url\":\"interfaces/AccountQueueData.html#auth_change_queued\",\"classes\":\"\",\"parent\":\"AccountQueueData\"},{\"kind\":1024,\"name\":\"lowest_sequence\",\"url\":\"interfaces/AccountQueueData.html#lowest_sequence\",\"classes\":\"\",\"parent\":\"AccountQueueData\"},{\"kind\":1024,\"name\":\"highest_sequence\",\"url\":\"interfaces/AccountQueueData.html#highest_sequence\",\"classes\":\"\",\"parent\":\"AccountQueueData\"},{\"kind\":1024,\"name\":\"max_spend_drops_total\",\"url\":\"interfaces/AccountQueueData.html#max_spend_drops_total\",\"classes\":\"\",\"parent\":\"AccountQueueData\"},{\"kind\":1024,\"name\":\"transactions\",\"url\":\"interfaces/AccountQueueData.html#transactions\",\"classes\":\"\",\"parent\":\"AccountQueueData\"},{\"kind\":256,\"name\":\"AccountQueueTransaction\",\"url\":\"interfaces/AccountQueueTransaction.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"auth_change\",\"url\":\"interfaces/AccountQueueTransaction.html#auth_change\",\"classes\":\"\",\"parent\":\"AccountQueueTransaction\"},{\"kind\":1024,\"name\":\"fee\",\"url\":\"interfaces/AccountQueueTransaction.html#fee\",\"classes\":\"\",\"parent\":\"AccountQueueTransaction\"},{\"kind\":1024,\"name\":\"fee_level\",\"url\":\"interfaces/AccountQueueTransaction.html#fee_level\",\"classes\":\"\",\"parent\":\"AccountQueueTransaction\"},{\"kind\":1024,\"name\":\"max_spend_drops\",\"url\":\"interfaces/AccountQueueTransaction.html#max_spend_drops\",\"classes\":\"\",\"parent\":\"AccountQueueTransaction\"},{\"kind\":1024,\"name\":\"seq\",\"url\":\"interfaces/AccountQueueTransaction.html#seq\",\"classes\":\"\",\"parent\":\"AccountQueueTransaction\"},{\"kind\":256,\"name\":\"AccountLinesRequest\",\"url\":\"interfaces/AccountLinesRequest.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/AccountLinesRequest.html#command\",\"classes\":\"\",\"parent\":\"AccountLinesRequest\"},{\"kind\":1024,\"name\":\"account\",\"url\":\"interfaces/AccountLinesRequest.html#account\",\"classes\":\"\",\"parent\":\"AccountLinesRequest\"},{\"kind\":1024,\"name\":\"peer\",\"url\":\"interfaces/AccountLinesRequest.html#peer\",\"classes\":\"\",\"parent\":\"AccountLinesRequest\"},{\"kind\":1024,\"name\":\"limit\",\"url\":\"interfaces/AccountLinesRequest.html#limit\",\"classes\":\"\",\"parent\":\"AccountLinesRequest\"},{\"kind\":1024,\"name\":\"marker\",\"url\":\"interfaces/AccountLinesRequest.html#marker\",\"classes\":\"\",\"parent\":\"AccountLinesRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/AccountLinesRequest.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountLinesRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/AccountLinesRequest.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountLinesRequest\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/AccountLinesRequest.html#ledger_hash\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountLinesRequest\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/AccountLinesRequest.html#ledger_index\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountLinesRequest\"},{\"kind\":256,\"name\":\"AccountLinesResponse\",\"url\":\"interfaces/AccountLinesResponse.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/AccountLinesResponse.html#result\",\"classes\":\"\",\"parent\":\"AccountLinesResponse\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/AccountLinesResponse.html#result.__type\",\"classes\":\"\",\"parent\":\"AccountLinesResponse.result\"},{\"kind\":1024,\"name\":\"account\",\"url\":\"interfaces/AccountLinesResponse.html#result.__type.account\",\"classes\":\"\",\"parent\":\"AccountLinesResponse.result.__type\"},{\"kind\":1024,\"name\":\"lines\",\"url\":\"interfaces/AccountLinesResponse.html#result.__type.lines\",\"classes\":\"\",\"parent\":\"AccountLinesResponse.result.__type\"},{\"kind\":1024,\"name\":\"ledger_current_index\",\"url\":\"interfaces/AccountLinesResponse.html#result.__type.ledger_current_index\",\"classes\":\"\",\"parent\":\"AccountLinesResponse.result.__type\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/AccountLinesResponse.html#result.__type.ledger_index\",\"classes\":\"\",\"parent\":\"AccountLinesResponse.result.__type\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/AccountLinesResponse.html#result.__type.ledger_hash\",\"classes\":\"\",\"parent\":\"AccountLinesResponse.result.__type\"},{\"kind\":1024,\"name\":\"marker\",\"url\":\"interfaces/AccountLinesResponse.html#result.__type.marker\",\"classes\":\"\",\"parent\":\"AccountLinesResponse.result.__type\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/AccountLinesResponse.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountLinesResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/AccountLinesResponse.html#status\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountLinesResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/AccountLinesResponse.html#type\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountLinesResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/AccountLinesResponse.html#warning\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountLinesResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/AccountLinesResponse.html#warnings\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountLinesResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/AccountLinesResponse.html#forwarded\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountLinesResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/AccountLinesResponse.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountLinesResponse\"},{\"kind\":256,\"name\":\"AccountLinesTrustline\",\"url\":\"interfaces/AccountLinesTrustline.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"account\",\"url\":\"interfaces/AccountLinesTrustline.html#account\",\"classes\":\"\",\"parent\":\"AccountLinesTrustline\"},{\"kind\":1024,\"name\":\"balance\",\"url\":\"interfaces/AccountLinesTrustline.html#balance\",\"classes\":\"\",\"parent\":\"AccountLinesTrustline\"},{\"kind\":1024,\"name\":\"currency\",\"url\":\"interfaces/AccountLinesTrustline.html#currency\",\"classes\":\"\",\"parent\":\"AccountLinesTrustline\"},{\"kind\":1024,\"name\":\"limit\",\"url\":\"interfaces/AccountLinesTrustline.html#limit\",\"classes\":\"\",\"parent\":\"AccountLinesTrustline\"},{\"kind\":1024,\"name\":\"limit_peer\",\"url\":\"interfaces/AccountLinesTrustline.html#limit_peer\",\"classes\":\"\",\"parent\":\"AccountLinesTrustline\"},{\"kind\":1024,\"name\":\"quality_in\",\"url\":\"interfaces/AccountLinesTrustline.html#quality_in\",\"classes\":\"\",\"parent\":\"AccountLinesTrustline\"},{\"kind\":1024,\"name\":\"quality_out\",\"url\":\"interfaces/AccountLinesTrustline.html#quality_out\",\"classes\":\"\",\"parent\":\"AccountLinesTrustline\"},{\"kind\":1024,\"name\":\"no_ripple\",\"url\":\"interfaces/AccountLinesTrustline.html#no_ripple\",\"classes\":\"\",\"parent\":\"AccountLinesTrustline\"},{\"kind\":1024,\"name\":\"no_ripple_peer\",\"url\":\"interfaces/AccountLinesTrustline.html#no_ripple_peer\",\"classes\":\"\",\"parent\":\"AccountLinesTrustline\"},{\"kind\":1024,\"name\":\"authorized\",\"url\":\"interfaces/AccountLinesTrustline.html#authorized\",\"classes\":\"\",\"parent\":\"AccountLinesTrustline\"},{\"kind\":1024,\"name\":\"peer_authorized\",\"url\":\"interfaces/AccountLinesTrustline.html#peer_authorized\",\"classes\":\"\",\"parent\":\"AccountLinesTrustline\"},{\"kind\":1024,\"name\":\"freeze\",\"url\":\"interfaces/AccountLinesTrustline.html#freeze\",\"classes\":\"\",\"parent\":\"AccountLinesTrustline\"},{\"kind\":1024,\"name\":\"freeze_peer\",\"url\":\"interfaces/AccountLinesTrustline.html#freeze_peer\",\"classes\":\"\",\"parent\":\"AccountLinesTrustline\"},{\"kind\":256,\"name\":\"AccountNFToken\",\"url\":\"interfaces/AccountNFToken.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/AccountNFToken.html#Flags\",\"classes\":\"\",\"parent\":\"AccountNFToken\"},{\"kind\":1024,\"name\":\"Issuer\",\"url\":\"interfaces/AccountNFToken.html#Issuer\",\"classes\":\"\",\"parent\":\"AccountNFToken\"},{\"kind\":1024,\"name\":\"NFTokenID\",\"url\":\"interfaces/AccountNFToken.html#NFTokenID\",\"classes\":\"\",\"parent\":\"AccountNFToken\"},{\"kind\":1024,\"name\":\"NFTokenTaxon\",\"url\":\"interfaces/AccountNFToken.html#NFTokenTaxon\",\"classes\":\"\",\"parent\":\"AccountNFToken\"},{\"kind\":1024,\"name\":\"URI\",\"url\":\"interfaces/AccountNFToken.html#URI\",\"classes\":\"\",\"parent\":\"AccountNFToken\"},{\"kind\":1024,\"name\":\"nft_serial\",\"url\":\"interfaces/AccountNFToken.html#nft_serial\",\"classes\":\"\",\"parent\":\"AccountNFToken\"},{\"kind\":256,\"name\":\"AccountNFTsRequest\",\"url\":\"interfaces/AccountNFTsRequest.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/AccountNFTsRequest.html#command\",\"classes\":\"\",\"parent\":\"AccountNFTsRequest\"},{\"kind\":1024,\"name\":\"account\",\"url\":\"interfaces/AccountNFTsRequest.html#account\",\"classes\":\"\",\"parent\":\"AccountNFTsRequest\"},{\"kind\":1024,\"name\":\"limit\",\"url\":\"interfaces/AccountNFTsRequest.html#limit\",\"classes\":\"\",\"parent\":\"AccountNFTsRequest\"},{\"kind\":1024,\"name\":\"marker\",\"url\":\"interfaces/AccountNFTsRequest.html#marker\",\"classes\":\"\",\"parent\":\"AccountNFTsRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/AccountNFTsRequest.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountNFTsRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/AccountNFTsRequest.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountNFTsRequest\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/AccountNFTsRequest.html#ledger_hash\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountNFTsRequest\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/AccountNFTsRequest.html#ledger_index\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountNFTsRequest\"},{\"kind\":256,\"name\":\"AccountNFTsResponse\",\"url\":\"interfaces/AccountNFTsResponse.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/AccountNFTsResponse.html#result\",\"classes\":\"\",\"parent\":\"AccountNFTsResponse\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/AccountNFTsResponse.html#result.__type\",\"classes\":\"\",\"parent\":\"AccountNFTsResponse.result\"},{\"kind\":1024,\"name\":\"account\",\"url\":\"interfaces/AccountNFTsResponse.html#result.__type.account\",\"classes\":\"\",\"parent\":\"AccountNFTsResponse.result.__type\"},{\"kind\":1024,\"name\":\"account_nfts\",\"url\":\"interfaces/AccountNFTsResponse.html#result.__type.account_nfts\",\"classes\":\"\",\"parent\":\"AccountNFTsResponse.result.__type\"},{\"kind\":1024,\"name\":\"ledger_current_index\",\"url\":\"interfaces/AccountNFTsResponse.html#result.__type.ledger_current_index\",\"classes\":\"\",\"parent\":\"AccountNFTsResponse.result.__type\"},{\"kind\":1024,\"name\":\"validated\",\"url\":\"interfaces/AccountNFTsResponse.html#result.__type.validated\",\"classes\":\"\",\"parent\":\"AccountNFTsResponse.result.__type\"},{\"kind\":1024,\"name\":\"marker\",\"url\":\"interfaces/AccountNFTsResponse.html#result.__type.marker\",\"classes\":\"\",\"parent\":\"AccountNFTsResponse.result.__type\"},{\"kind\":1024,\"name\":\"limit\",\"url\":\"interfaces/AccountNFTsResponse.html#result.__type.limit\",\"classes\":\"\",\"parent\":\"AccountNFTsResponse.result.__type\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/AccountNFTsResponse.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountNFTsResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/AccountNFTsResponse.html#status\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountNFTsResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/AccountNFTsResponse.html#type\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountNFTsResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/AccountNFTsResponse.html#warning\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountNFTsResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/AccountNFTsResponse.html#warnings\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountNFTsResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/AccountNFTsResponse.html#forwarded\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountNFTsResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/AccountNFTsResponse.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountNFTsResponse\"},{\"kind\":2097152,\"name\":\"AccountObject\",\"url\":\"types/AccountObject.html\",\"classes\":\"\"},{\"kind\":2097152,\"name\":\"AccountObjectType\",\"url\":\"types/AccountObjectType.html\",\"classes\":\"\"},{\"kind\":256,\"name\":\"AccountObjectsRequest\",\"url\":\"interfaces/AccountObjectsRequest.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/AccountObjectsRequest.html#command\",\"classes\":\"\",\"parent\":\"AccountObjectsRequest\"},{\"kind\":1024,\"name\":\"account\",\"url\":\"interfaces/AccountObjectsRequest.html#account\",\"classes\":\"\",\"parent\":\"AccountObjectsRequest\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/AccountObjectsRequest.html#type\",\"classes\":\"\",\"parent\":\"AccountObjectsRequest\"},{\"kind\":1024,\"name\":\"deletion_blockers_only\",\"url\":\"interfaces/AccountObjectsRequest.html#deletion_blockers_only\",\"classes\":\"\",\"parent\":\"AccountObjectsRequest\"},{\"kind\":1024,\"name\":\"limit\",\"url\":\"interfaces/AccountObjectsRequest.html#limit\",\"classes\":\"\",\"parent\":\"AccountObjectsRequest\"},{\"kind\":1024,\"name\":\"marker\",\"url\":\"interfaces/AccountObjectsRequest.html#marker\",\"classes\":\"\",\"parent\":\"AccountObjectsRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/AccountObjectsRequest.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountObjectsRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/AccountObjectsRequest.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountObjectsRequest\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/AccountObjectsRequest.html#ledger_hash\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountObjectsRequest\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/AccountObjectsRequest.html#ledger_index\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountObjectsRequest\"},{\"kind\":256,\"name\":\"AccountObjectsResponse\",\"url\":\"interfaces/AccountObjectsResponse.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/AccountObjectsResponse.html#result\",\"classes\":\"\",\"parent\":\"AccountObjectsResponse\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/AccountObjectsResponse.html#result.__type\",\"classes\":\"\",\"parent\":\"AccountObjectsResponse.result\"},{\"kind\":1024,\"name\":\"account\",\"url\":\"interfaces/AccountObjectsResponse.html#result.__type.account\",\"classes\":\"\",\"parent\":\"AccountObjectsResponse.result.__type\"},{\"kind\":1024,\"name\":\"account_objects\",\"url\":\"interfaces/AccountObjectsResponse.html#result.__type.account_objects\",\"classes\":\"\",\"parent\":\"AccountObjectsResponse.result.__type\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/AccountObjectsResponse.html#result.__type.ledger_hash\",\"classes\":\"\",\"parent\":\"AccountObjectsResponse.result.__type\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/AccountObjectsResponse.html#result.__type.ledger_index\",\"classes\":\"\",\"parent\":\"AccountObjectsResponse.result.__type\"},{\"kind\":1024,\"name\":\"ledger_current_index\",\"url\":\"interfaces/AccountObjectsResponse.html#result.__type.ledger_current_index\",\"classes\":\"\",\"parent\":\"AccountObjectsResponse.result.__type\"},{\"kind\":1024,\"name\":\"limit\",\"url\":\"interfaces/AccountObjectsResponse.html#result.__type.limit\",\"classes\":\"\",\"parent\":\"AccountObjectsResponse.result.__type\"},{\"kind\":1024,\"name\":\"marker\",\"url\":\"interfaces/AccountObjectsResponse.html#result.__type.marker\",\"classes\":\"\",\"parent\":\"AccountObjectsResponse.result.__type\"},{\"kind\":1024,\"name\":\"validated\",\"url\":\"interfaces/AccountObjectsResponse.html#result.__type.validated\",\"classes\":\"\",\"parent\":\"AccountObjectsResponse.result.__type\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/AccountObjectsResponse.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountObjectsResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/AccountObjectsResponse.html#status\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountObjectsResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/AccountObjectsResponse.html#type\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountObjectsResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/AccountObjectsResponse.html#warning\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountObjectsResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/AccountObjectsResponse.html#warnings\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountObjectsResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/AccountObjectsResponse.html#forwarded\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountObjectsResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/AccountObjectsResponse.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountObjectsResponse\"},{\"kind\":256,\"name\":\"AccountOffer\",\"url\":\"interfaces/AccountOffer.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"flags\",\"url\":\"interfaces/AccountOffer.html#flags\",\"classes\":\"\",\"parent\":\"AccountOffer\"},{\"kind\":1024,\"name\":\"seq\",\"url\":\"interfaces/AccountOffer.html#seq\",\"classes\":\"\",\"parent\":\"AccountOffer\"},{\"kind\":1024,\"name\":\"taker_gets\",\"url\":\"interfaces/AccountOffer.html#taker_gets\",\"classes\":\"\",\"parent\":\"AccountOffer\"},{\"kind\":1024,\"name\":\"taker_pays\",\"url\":\"interfaces/AccountOffer.html#taker_pays\",\"classes\":\"\",\"parent\":\"AccountOffer\"},{\"kind\":1024,\"name\":\"quality\",\"url\":\"interfaces/AccountOffer.html#quality\",\"classes\":\"\",\"parent\":\"AccountOffer\"},{\"kind\":1024,\"name\":\"expiration\",\"url\":\"interfaces/AccountOffer.html#expiration\",\"classes\":\"\",\"parent\":\"AccountOffer\"},{\"kind\":256,\"name\":\"AccountOffersRequest\",\"url\":\"interfaces/AccountOffersRequest.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/AccountOffersRequest.html#command\",\"classes\":\"\",\"parent\":\"AccountOffersRequest\"},{\"kind\":1024,\"name\":\"account\",\"url\":\"interfaces/AccountOffersRequest.html#account\",\"classes\":\"\",\"parent\":\"AccountOffersRequest\"},{\"kind\":1024,\"name\":\"limit\",\"url\":\"interfaces/AccountOffersRequest.html#limit\",\"classes\":\"\",\"parent\":\"AccountOffersRequest\"},{\"kind\":1024,\"name\":\"marker\",\"url\":\"interfaces/AccountOffersRequest.html#marker\",\"classes\":\"\",\"parent\":\"AccountOffersRequest\"},{\"kind\":1024,\"name\":\"strict\",\"url\":\"interfaces/AccountOffersRequest.html#strict\",\"classes\":\"\",\"parent\":\"AccountOffersRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/AccountOffersRequest.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountOffersRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/AccountOffersRequest.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountOffersRequest\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/AccountOffersRequest.html#ledger_hash\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountOffersRequest\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/AccountOffersRequest.html#ledger_index\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountOffersRequest\"},{\"kind\":256,\"name\":\"AccountOffersResponse\",\"url\":\"interfaces/AccountOffersResponse.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/AccountOffersResponse.html#result\",\"classes\":\"\",\"parent\":\"AccountOffersResponse\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/AccountOffersResponse.html#result.__type\",\"classes\":\"\",\"parent\":\"AccountOffersResponse.result\"},{\"kind\":1024,\"name\":\"account\",\"url\":\"interfaces/AccountOffersResponse.html#result.__type.account\",\"classes\":\"\",\"parent\":\"AccountOffersResponse.result.__type\"},{\"kind\":1024,\"name\":\"offers\",\"url\":\"interfaces/AccountOffersResponse.html#result.__type.offers\",\"classes\":\"\",\"parent\":\"AccountOffersResponse.result.__type\"},{\"kind\":1024,\"name\":\"ledger_current_index\",\"url\":\"interfaces/AccountOffersResponse.html#result.__type.ledger_current_index\",\"classes\":\"\",\"parent\":\"AccountOffersResponse.result.__type\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/AccountOffersResponse.html#result.__type.ledger_index\",\"classes\":\"\",\"parent\":\"AccountOffersResponse.result.__type\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/AccountOffersResponse.html#result.__type.ledger_hash\",\"classes\":\"\",\"parent\":\"AccountOffersResponse.result.__type\"},{\"kind\":1024,\"name\":\"marker\",\"url\":\"interfaces/AccountOffersResponse.html#result.__type.marker\",\"classes\":\"\",\"parent\":\"AccountOffersResponse.result.__type\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/AccountOffersResponse.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountOffersResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/AccountOffersResponse.html#status\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountOffersResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/AccountOffersResponse.html#type\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountOffersResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/AccountOffersResponse.html#warning\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountOffersResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/AccountOffersResponse.html#warnings\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountOffersResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/AccountOffersResponse.html#forwarded\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountOffersResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/AccountOffersResponse.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountOffersResponse\"},{\"kind\":256,\"name\":\"AccountTxRequest\",\"url\":\"interfaces/AccountTxRequest.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/AccountTxRequest.html#command\",\"classes\":\"\",\"parent\":\"AccountTxRequest\"},{\"kind\":1024,\"name\":\"account\",\"url\":\"interfaces/AccountTxRequest.html#account\",\"classes\":\"\",\"parent\":\"AccountTxRequest\"},{\"kind\":1024,\"name\":\"ledger_index_min\",\"url\":\"interfaces/AccountTxRequest.html#ledger_index_min\",\"classes\":\"\",\"parent\":\"AccountTxRequest\"},{\"kind\":1024,\"name\":\"ledger_index_max\",\"url\":\"interfaces/AccountTxRequest.html#ledger_index_max\",\"classes\":\"\",\"parent\":\"AccountTxRequest\"},{\"kind\":1024,\"name\":\"binary\",\"url\":\"interfaces/AccountTxRequest.html#binary\",\"classes\":\"\",\"parent\":\"AccountTxRequest\"},{\"kind\":1024,\"name\":\"forward\",\"url\":\"interfaces/AccountTxRequest.html#forward\",\"classes\":\"\",\"parent\":\"AccountTxRequest\"},{\"kind\":1024,\"name\":\"limit\",\"url\":\"interfaces/AccountTxRequest.html#limit\",\"classes\":\"\",\"parent\":\"AccountTxRequest\"},{\"kind\":1024,\"name\":\"marker\",\"url\":\"interfaces/AccountTxRequest.html#marker\",\"classes\":\"\",\"parent\":\"AccountTxRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/AccountTxRequest.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountTxRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/AccountTxRequest.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountTxRequest\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/AccountTxRequest.html#ledger_hash\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountTxRequest\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/AccountTxRequest.html#ledger_index\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountTxRequest\"},{\"kind\":256,\"name\":\"AccountTxResponse\",\"url\":\"interfaces/AccountTxResponse.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/AccountTxResponse.html#result\",\"classes\":\"\",\"parent\":\"AccountTxResponse\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/AccountTxResponse.html#result.__type\",\"classes\":\"\",\"parent\":\"AccountTxResponse.result\"},{\"kind\":1024,\"name\":\"account\",\"url\":\"interfaces/AccountTxResponse.html#result.__type.account\",\"classes\":\"\",\"parent\":\"AccountTxResponse.result.__type\"},{\"kind\":1024,\"name\":\"ledger_index_min\",\"url\":\"interfaces/AccountTxResponse.html#result.__type.ledger_index_min\",\"classes\":\"\",\"parent\":\"AccountTxResponse.result.__type\"},{\"kind\":1024,\"name\":\"ledger_index_max\",\"url\":\"interfaces/AccountTxResponse.html#result.__type.ledger_index_max\",\"classes\":\"\",\"parent\":\"AccountTxResponse.result.__type\"},{\"kind\":1024,\"name\":\"limit\",\"url\":\"interfaces/AccountTxResponse.html#result.__type.limit\",\"classes\":\"\",\"parent\":\"AccountTxResponse.result.__type\"},{\"kind\":1024,\"name\":\"marker\",\"url\":\"interfaces/AccountTxResponse.html#result.__type.marker\",\"classes\":\"\",\"parent\":\"AccountTxResponse.result.__type\"},{\"kind\":1024,\"name\":\"transactions\",\"url\":\"interfaces/AccountTxResponse.html#result.__type.transactions\",\"classes\":\"\",\"parent\":\"AccountTxResponse.result.__type\"},{\"kind\":1024,\"name\":\"validated\",\"url\":\"interfaces/AccountTxResponse.html#result.__type.validated\",\"classes\":\"\",\"parent\":\"AccountTxResponse.result.__type\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/AccountTxResponse.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountTxResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/AccountTxResponse.html#status\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountTxResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/AccountTxResponse.html#type\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountTxResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/AccountTxResponse.html#warning\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountTxResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/AccountTxResponse.html#warnings\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountTxResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/AccountTxResponse.html#forwarded\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountTxResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/AccountTxResponse.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountTxResponse\"},{\"kind\":256,\"name\":\"AccountTxTransaction\",\"url\":\"interfaces/AccountTxTransaction.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/AccountTxTransaction.html#ledger_index\",\"classes\":\"\",\"parent\":\"AccountTxTransaction\"},{\"kind\":1024,\"name\":\"meta\",\"url\":\"interfaces/AccountTxTransaction.html#meta\",\"classes\":\"\",\"parent\":\"AccountTxTransaction\"},{\"kind\":1024,\"name\":\"tx\",\"url\":\"interfaces/AccountTxTransaction.html#tx\",\"classes\":\"\",\"parent\":\"AccountTxTransaction\"},{\"kind\":1024,\"name\":\"tx_blob\",\"url\":\"interfaces/AccountTxTransaction.html#tx_blob\",\"classes\":\"\",\"parent\":\"AccountTxTransaction\"},{\"kind\":1024,\"name\":\"validated\",\"url\":\"interfaces/AccountTxTransaction.html#validated\",\"classes\":\"\",\"parent\":\"AccountTxTransaction\"},{\"kind\":256,\"name\":\"GatewayBalance\",\"url\":\"interfaces/GatewayBalance.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"currency\",\"url\":\"interfaces/GatewayBalance.html#currency\",\"classes\":\"\",\"parent\":\"GatewayBalance\"},{\"kind\":1024,\"name\":\"value\",\"url\":\"interfaces/GatewayBalance.html#value\",\"classes\":\"\",\"parent\":\"GatewayBalance\"},{\"kind\":256,\"name\":\"GatewayBalancesRequest\",\"url\":\"interfaces/GatewayBalancesRequest.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/GatewayBalancesRequest.html#command\",\"classes\":\"\",\"parent\":\"GatewayBalancesRequest\"},{\"kind\":1024,\"name\":\"account\",\"url\":\"interfaces/GatewayBalancesRequest.html#account\",\"classes\":\"\",\"parent\":\"GatewayBalancesRequest\"},{\"kind\":1024,\"name\":\"strict\",\"url\":\"interfaces/GatewayBalancesRequest.html#strict\",\"classes\":\"\",\"parent\":\"GatewayBalancesRequest\"},{\"kind\":1024,\"name\":\"hotwallet\",\"url\":\"interfaces/GatewayBalancesRequest.html#hotwallet\",\"classes\":\"\",\"parent\":\"GatewayBalancesRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/GatewayBalancesRequest.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"GatewayBalancesRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/GatewayBalancesRequest.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"GatewayBalancesRequest\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/GatewayBalancesRequest.html#ledger_hash\",\"classes\":\"tsd-is-inherited\",\"parent\":\"GatewayBalancesRequest\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/GatewayBalancesRequest.html#ledger_index\",\"classes\":\"tsd-is-inherited\",\"parent\":\"GatewayBalancesRequest\"},{\"kind\":256,\"name\":\"GatewayBalancesResponse\",\"url\":\"interfaces/GatewayBalancesResponse.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/GatewayBalancesResponse.html#result\",\"classes\":\"\",\"parent\":\"GatewayBalancesResponse\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/GatewayBalancesResponse.html#result.__type\",\"classes\":\"\",\"parent\":\"GatewayBalancesResponse.result\"},{\"kind\":1024,\"name\":\"account\",\"url\":\"interfaces/GatewayBalancesResponse.html#result.__type.account\",\"classes\":\"\",\"parent\":\"GatewayBalancesResponse.result.__type\"},{\"kind\":1024,\"name\":\"obligations\",\"url\":\"interfaces/GatewayBalancesResponse.html#result.__type.obligations\",\"classes\":\"\",\"parent\":\"GatewayBalancesResponse.result.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/GatewayBalancesResponse.html#result.__type.obligations.__type-3\",\"classes\":\"\",\"parent\":\"GatewayBalancesResponse.result.__type.obligations\"},{\"kind\":1024,\"name\":\"balances\",\"url\":\"interfaces/GatewayBalancesResponse.html#result.__type.balances\",\"classes\":\"\",\"parent\":\"GatewayBalancesResponse.result.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/GatewayBalancesResponse.html#result.__type.balances.__type-2\",\"classes\":\"\",\"parent\":\"GatewayBalancesResponse.result.__type.balances\"},{\"kind\":1024,\"name\":\"assets\",\"url\":\"interfaces/GatewayBalancesResponse.html#result.__type.assets\",\"classes\":\"\",\"parent\":\"GatewayBalancesResponse.result.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/GatewayBalancesResponse.html#result.__type.assets.__type-1\",\"classes\":\"\",\"parent\":\"GatewayBalancesResponse.result.__type.assets\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/GatewayBalancesResponse.html#result.__type.ledger_hash\",\"classes\":\"\",\"parent\":\"GatewayBalancesResponse.result.__type\"},{\"kind\":1024,\"name\":\"ledger_current_index\",\"url\":\"interfaces/GatewayBalancesResponse.html#result.__type.ledger_current_index\",\"classes\":\"\",\"parent\":\"GatewayBalancesResponse.result.__type\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/GatewayBalancesResponse.html#result.__type.ledger_index\",\"classes\":\"\",\"parent\":\"GatewayBalancesResponse.result.__type\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/GatewayBalancesResponse.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"GatewayBalancesResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/GatewayBalancesResponse.html#status\",\"classes\":\"tsd-is-inherited\",\"parent\":\"GatewayBalancesResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/GatewayBalancesResponse.html#type\",\"classes\":\"tsd-is-inherited\",\"parent\":\"GatewayBalancesResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/GatewayBalancesResponse.html#warning\",\"classes\":\"tsd-is-inherited\",\"parent\":\"GatewayBalancesResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/GatewayBalancesResponse.html#warnings\",\"classes\":\"tsd-is-inherited\",\"parent\":\"GatewayBalancesResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/GatewayBalancesResponse.html#forwarded\",\"classes\":\"tsd-is-inherited\",\"parent\":\"GatewayBalancesResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/GatewayBalancesResponse.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"GatewayBalancesResponse\"},{\"kind\":256,\"name\":\"NoRippleCheckRequest\",\"url\":\"interfaces/NoRippleCheckRequest.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/NoRippleCheckRequest.html#command\",\"classes\":\"\",\"parent\":\"NoRippleCheckRequest\"},{\"kind\":1024,\"name\":\"account\",\"url\":\"interfaces/NoRippleCheckRequest.html#account\",\"classes\":\"\",\"parent\":\"NoRippleCheckRequest\"},{\"kind\":1024,\"name\":\"role\",\"url\":\"interfaces/NoRippleCheckRequest.html#role\",\"classes\":\"\",\"parent\":\"NoRippleCheckRequest\"},{\"kind\":1024,\"name\":\"transactions\",\"url\":\"interfaces/NoRippleCheckRequest.html#transactions\",\"classes\":\"\",\"parent\":\"NoRippleCheckRequest\"},{\"kind\":1024,\"name\":\"limit\",\"url\":\"interfaces/NoRippleCheckRequest.html#limit\",\"classes\":\"\",\"parent\":\"NoRippleCheckRequest\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/NoRippleCheckRequest.html#ledger_hash\",\"classes\":\"\",\"parent\":\"NoRippleCheckRequest\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/NoRippleCheckRequest.html#ledger_index\",\"classes\":\"\",\"parent\":\"NoRippleCheckRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/NoRippleCheckRequest.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NoRippleCheckRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/NoRippleCheckRequest.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NoRippleCheckRequest\"},{\"kind\":256,\"name\":\"NoRippleCheckResponse\",\"url\":\"interfaces/NoRippleCheckResponse.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/NoRippleCheckResponse.html#result\",\"classes\":\"\",\"parent\":\"NoRippleCheckResponse\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/NoRippleCheckResponse.html#result.__type\",\"classes\":\"\",\"parent\":\"NoRippleCheckResponse.result\"},{\"kind\":1024,\"name\":\"ledger_current_index\",\"url\":\"interfaces/NoRippleCheckResponse.html#result.__type.ledger_current_index\",\"classes\":\"\",\"parent\":\"NoRippleCheckResponse.result.__type\"},{\"kind\":1024,\"name\":\"problems\",\"url\":\"interfaces/NoRippleCheckResponse.html#result.__type.problems\",\"classes\":\"\",\"parent\":\"NoRippleCheckResponse.result.__type\"},{\"kind\":1024,\"name\":\"transactions\",\"url\":\"interfaces/NoRippleCheckResponse.html#result.__type.transactions\",\"classes\":\"\",\"parent\":\"NoRippleCheckResponse.result.__type\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/NoRippleCheckResponse.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NoRippleCheckResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/NoRippleCheckResponse.html#status\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NoRippleCheckResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/NoRippleCheckResponse.html#type\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NoRippleCheckResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/NoRippleCheckResponse.html#warning\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NoRippleCheckResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/NoRippleCheckResponse.html#warnings\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NoRippleCheckResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/NoRippleCheckResponse.html#forwarded\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NoRippleCheckResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/NoRippleCheckResponse.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NoRippleCheckResponse\"},{\"kind\":256,\"name\":\"LedgerRequest\",\"url\":\"interfaces/LedgerRequest.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/LedgerRequest.html#command\",\"classes\":\"\",\"parent\":\"LedgerRequest\"},{\"kind\":1024,\"name\":\"full\",\"url\":\"interfaces/LedgerRequest.html#full\",\"classes\":\"\",\"parent\":\"LedgerRequest\"},{\"kind\":1024,\"name\":\"accounts\",\"url\":\"interfaces/LedgerRequest.html#accounts\",\"classes\":\"\",\"parent\":\"LedgerRequest\"},{\"kind\":1024,\"name\":\"transactions\",\"url\":\"interfaces/LedgerRequest.html#transactions\",\"classes\":\"\",\"parent\":\"LedgerRequest\"},{\"kind\":1024,\"name\":\"expand\",\"url\":\"interfaces/LedgerRequest.html#expand\",\"classes\":\"\",\"parent\":\"LedgerRequest\"},{\"kind\":1024,\"name\":\"owner_funds\",\"url\":\"interfaces/LedgerRequest.html#owner_funds\",\"classes\":\"\",\"parent\":\"LedgerRequest\"},{\"kind\":1024,\"name\":\"binary\",\"url\":\"interfaces/LedgerRequest.html#binary\",\"classes\":\"\",\"parent\":\"LedgerRequest\"},{\"kind\":1024,\"name\":\"queue\",\"url\":\"interfaces/LedgerRequest.html#queue\",\"classes\":\"\",\"parent\":\"LedgerRequest\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/LedgerRequest.html#type\",\"classes\":\"\",\"parent\":\"LedgerRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/LedgerRequest.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/LedgerRequest.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerRequest\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/LedgerRequest.html#ledger_hash\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerRequest\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/LedgerRequest.html#ledger_index\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerRequest\"},{\"kind\":256,\"name\":\"LedgerResponse\",\"url\":\"interfaces/LedgerResponse.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/LedgerResponse.html#result\",\"classes\":\"\",\"parent\":\"LedgerResponse\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/LedgerResponse.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/LedgerResponse.html#status\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/LedgerResponse.html#type\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/LedgerResponse.html#warning\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/LedgerResponse.html#warnings\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/LedgerResponse.html#forwarded\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/LedgerResponse.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerResponse\"},{\"kind\":256,\"name\":\"LedgerQueueData\",\"url\":\"interfaces/LedgerQueueData.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"account\",\"url\":\"interfaces/LedgerQueueData.html#account\",\"classes\":\"\",\"parent\":\"LedgerQueueData\"},{\"kind\":1024,\"name\":\"tx\",\"url\":\"interfaces/LedgerQueueData.html#tx\",\"classes\":\"\",\"parent\":\"LedgerQueueData\"},{\"kind\":1024,\"name\":\"retries_remaining\",\"url\":\"interfaces/LedgerQueueData.html#retries_remaining\",\"classes\":\"\",\"parent\":\"LedgerQueueData\"},{\"kind\":1024,\"name\":\"preflight_result\",\"url\":\"interfaces/LedgerQueueData.html#preflight_result\",\"classes\":\"\",\"parent\":\"LedgerQueueData\"},{\"kind\":1024,\"name\":\"last_result\",\"url\":\"interfaces/LedgerQueueData.html#last_result\",\"classes\":\"\",\"parent\":\"LedgerQueueData\"},{\"kind\":1024,\"name\":\"auth_change\",\"url\":\"interfaces/LedgerQueueData.html#auth_change\",\"classes\":\"\",\"parent\":\"LedgerQueueData\"},{\"kind\":1024,\"name\":\"fee\",\"url\":\"interfaces/LedgerQueueData.html#fee\",\"classes\":\"\",\"parent\":\"LedgerQueueData\"},{\"kind\":1024,\"name\":\"fee_level\",\"url\":\"interfaces/LedgerQueueData.html#fee_level\",\"classes\":\"\",\"parent\":\"LedgerQueueData\"},{\"kind\":1024,\"name\":\"max_spend_drops\",\"url\":\"interfaces/LedgerQueueData.html#max_spend_drops\",\"classes\":\"\",\"parent\":\"LedgerQueueData\"},{\"kind\":256,\"name\":\"LedgerBinary\",\"url\":\"interfaces/LedgerBinary.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"accountState\",\"url\":\"interfaces/LedgerBinary.html#accountState\",\"classes\":\"\",\"parent\":\"LedgerBinary\"},{\"kind\":1024,\"name\":\"transactions\",\"url\":\"interfaces/LedgerBinary.html#transactions\",\"classes\":\"\",\"parent\":\"LedgerBinary\"},{\"kind\":1024,\"name\":\"closed\",\"url\":\"interfaces/LedgerBinary.html#closed\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerBinary\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/LedgerBinary.html#ledger_hash\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerBinary\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/LedgerBinary.html#ledger_index\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerBinary\"},{\"kind\":1024,\"name\":\"account_hash\",\"url\":\"interfaces/LedgerBinary.html#account_hash\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerBinary\"},{\"kind\":1024,\"name\":\"close_flags\",\"url\":\"interfaces/LedgerBinary.html#close_flags\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerBinary\"},{\"kind\":1024,\"name\":\"close_time\",\"url\":\"interfaces/LedgerBinary.html#close_time\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerBinary\"},{\"kind\":1024,\"name\":\"close_time_human\",\"url\":\"interfaces/LedgerBinary.html#close_time_human\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerBinary\"},{\"kind\":1024,\"name\":\"close_time_resolution\",\"url\":\"interfaces/LedgerBinary.html#close_time_resolution\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerBinary\"},{\"kind\":1024,\"name\":\"parent_close_time\",\"url\":\"interfaces/LedgerBinary.html#parent_close_time\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerBinary\"},{\"kind\":1024,\"name\":\"parent_hash\",\"url\":\"interfaces/LedgerBinary.html#parent_hash\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerBinary\"},{\"kind\":1024,\"name\":\"total_coins\",\"url\":\"interfaces/LedgerBinary.html#total_coins\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerBinary\"},{\"kind\":1024,\"name\":\"transaction_hash\",\"url\":\"interfaces/LedgerBinary.html#transaction_hash\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerBinary\"},{\"kind\":256,\"name\":\"LedgerModifiedOfferCreateTransaction\",\"url\":\"interfaces/LedgerModifiedOfferCreateTransaction.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"transaction\",\"url\":\"interfaces/LedgerModifiedOfferCreateTransaction.html#transaction\",\"classes\":\"\",\"parent\":\"LedgerModifiedOfferCreateTransaction\"},{\"kind\":1024,\"name\":\"metadata\",\"url\":\"interfaces/LedgerModifiedOfferCreateTransaction.html#metadata\",\"classes\":\"\",\"parent\":\"LedgerModifiedOfferCreateTransaction\"},{\"kind\":256,\"name\":\"LedgerClosedRequest\",\"url\":\"interfaces/LedgerClosedRequest.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/LedgerClosedRequest.html#command\",\"classes\":\"\",\"parent\":\"LedgerClosedRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/LedgerClosedRequest.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerClosedRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/LedgerClosedRequest.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerClosedRequest\"},{\"kind\":256,\"name\":\"LedgerClosedResponse\",\"url\":\"interfaces/LedgerClosedResponse.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/LedgerClosedResponse.html#result\",\"classes\":\"\",\"parent\":\"LedgerClosedResponse\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/LedgerClosedResponse.html#result.__type\",\"classes\":\"\",\"parent\":\"LedgerClosedResponse.result\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/LedgerClosedResponse.html#result.__type.ledger_hash\",\"classes\":\"\",\"parent\":\"LedgerClosedResponse.result.__type\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/LedgerClosedResponse.html#result.__type.ledger_index\",\"classes\":\"\",\"parent\":\"LedgerClosedResponse.result.__type\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/LedgerClosedResponse.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerClosedResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/LedgerClosedResponse.html#status\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerClosedResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/LedgerClosedResponse.html#type\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerClosedResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/LedgerClosedResponse.html#warning\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerClosedResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/LedgerClosedResponse.html#warnings\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerClosedResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/LedgerClosedResponse.html#forwarded\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerClosedResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/LedgerClosedResponse.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerClosedResponse\"},{\"kind\":256,\"name\":\"LedgerCurrentRequest\",\"url\":\"interfaces/LedgerCurrentRequest.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/LedgerCurrentRequest.html#command\",\"classes\":\"\",\"parent\":\"LedgerCurrentRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/LedgerCurrentRequest.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerCurrentRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/LedgerCurrentRequest.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerCurrentRequest\"},{\"kind\":256,\"name\":\"LedgerCurrentResponse\",\"url\":\"interfaces/LedgerCurrentResponse.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/LedgerCurrentResponse.html#result\",\"classes\":\"\",\"parent\":\"LedgerCurrentResponse\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/LedgerCurrentResponse.html#result.__type\",\"classes\":\"\",\"parent\":\"LedgerCurrentResponse.result\"},{\"kind\":1024,\"name\":\"ledger_current_index\",\"url\":\"interfaces/LedgerCurrentResponse.html#result.__type.ledger_current_index\",\"classes\":\"\",\"parent\":\"LedgerCurrentResponse.result.__type\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/LedgerCurrentResponse.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerCurrentResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/LedgerCurrentResponse.html#status\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerCurrentResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/LedgerCurrentResponse.html#type\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerCurrentResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/LedgerCurrentResponse.html#warning\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerCurrentResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/LedgerCurrentResponse.html#warnings\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerCurrentResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/LedgerCurrentResponse.html#forwarded\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerCurrentResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/LedgerCurrentResponse.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerCurrentResponse\"},{\"kind\":256,\"name\":\"LedgerDataRequest\",\"url\":\"interfaces/LedgerDataRequest.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/LedgerDataRequest.html#command\",\"classes\":\"\",\"parent\":\"LedgerDataRequest\"},{\"kind\":1024,\"name\":\"binary\",\"url\":\"interfaces/LedgerDataRequest.html#binary\",\"classes\":\"\",\"parent\":\"LedgerDataRequest\"},{\"kind\":1024,\"name\":\"limit\",\"url\":\"interfaces/LedgerDataRequest.html#limit\",\"classes\":\"\",\"parent\":\"LedgerDataRequest\"},{\"kind\":1024,\"name\":\"marker\",\"url\":\"interfaces/LedgerDataRequest.html#marker\",\"classes\":\"\",\"parent\":\"LedgerDataRequest\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/LedgerDataRequest.html#type\",\"classes\":\"\",\"parent\":\"LedgerDataRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/LedgerDataRequest.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerDataRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/LedgerDataRequest.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerDataRequest\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/LedgerDataRequest.html#ledger_hash\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerDataRequest\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/LedgerDataRequest.html#ledger_index\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerDataRequest\"},{\"kind\":2097152,\"name\":\"LedgerDataLabeledLedgerEntry\",\"url\":\"types/LedgerDataLabeledLedgerEntry.html\",\"classes\":\"\"},{\"kind\":256,\"name\":\"LedgerDataBinaryLedgerEntry\",\"url\":\"interfaces/LedgerDataBinaryLedgerEntry.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"data\",\"url\":\"interfaces/LedgerDataBinaryLedgerEntry.html#data\",\"classes\":\"\",\"parent\":\"LedgerDataBinaryLedgerEntry\"},{\"kind\":256,\"name\":\"LedgerDataResponse\",\"url\":\"interfaces/LedgerDataResponse.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/LedgerDataResponse.html#result\",\"classes\":\"\",\"parent\":\"LedgerDataResponse\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/LedgerDataResponse.html#result.__type\",\"classes\":\"\",\"parent\":\"LedgerDataResponse.result\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/LedgerDataResponse.html#result.__type.ledger_index\",\"classes\":\"\",\"parent\":\"LedgerDataResponse.result.__type\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/LedgerDataResponse.html#result.__type.ledger_hash\",\"classes\":\"\",\"parent\":\"LedgerDataResponse.result.__type\"},{\"kind\":1024,\"name\":\"state\",\"url\":\"interfaces/LedgerDataResponse.html#result.__type.state\",\"classes\":\"\",\"parent\":\"LedgerDataResponse.result.__type\"},{\"kind\":1024,\"name\":\"marker\",\"url\":\"interfaces/LedgerDataResponse.html#result.__type.marker\",\"classes\":\"\",\"parent\":\"LedgerDataResponse.result.__type\"},{\"kind\":1024,\"name\":\"validated\",\"url\":\"interfaces/LedgerDataResponse.html#result.__type.validated\",\"classes\":\"\",\"parent\":\"LedgerDataResponse.result.__type\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/LedgerDataResponse.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerDataResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/LedgerDataResponse.html#status\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerDataResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/LedgerDataResponse.html#type\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerDataResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/LedgerDataResponse.html#warning\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerDataResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/LedgerDataResponse.html#warnings\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerDataResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/LedgerDataResponse.html#forwarded\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerDataResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/LedgerDataResponse.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerDataResponse\"},{\"kind\":2097152,\"name\":\"LedgerDataLedgerState\",\"url\":\"types/LedgerDataLedgerState.html\",\"classes\":\"\"},{\"kind\":256,\"name\":\"LedgerEntryRequest\",\"url\":\"interfaces/LedgerEntryRequest.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/LedgerEntryRequest.html#command\",\"classes\":\"\",\"parent\":\"LedgerEntryRequest\"},{\"kind\":1024,\"name\":\"amm\",\"url\":\"interfaces/LedgerEntryRequest.html#amm\",\"classes\":\"\",\"parent\":\"LedgerEntryRequest\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/LedgerEntryRequest.html#amm.__type\",\"classes\":\"\",\"parent\":\"LedgerEntryRequest.amm\"},{\"kind\":1024,\"name\":\"asset\",\"url\":\"interfaces/LedgerEntryRequest.html#amm.__type.asset\",\"classes\":\"\",\"parent\":\"LedgerEntryRequest.amm.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/LedgerEntryRequest.html#amm.__type.asset.__type-1\",\"classes\":\"\",\"parent\":\"LedgerEntryRequest.amm.__type.asset\"},{\"kind\":1024,\"name\":\"currency\",\"url\":\"interfaces/LedgerEntryRequest.html#amm.__type.asset.__type-1.currency\",\"classes\":\"\",\"parent\":\"LedgerEntryRequest.amm.__type.asset.__type\"},{\"kind\":1024,\"name\":\"issuer\",\"url\":\"interfaces/LedgerEntryRequest.html#amm.__type.asset.__type-1.issuer\",\"classes\":\"\",\"parent\":\"LedgerEntryRequest.amm.__type.asset.__type\"},{\"kind\":1024,\"name\":\"asset2\",\"url\":\"interfaces/LedgerEntryRequest.html#amm.__type.asset2\",\"classes\":\"\",\"parent\":\"LedgerEntryRequest.amm.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/LedgerEntryRequest.html#amm.__type.asset2.__type-2\",\"classes\":\"\",\"parent\":\"LedgerEntryRequest.amm.__type.asset2\"},{\"kind\":1024,\"name\":\"currency\",\"url\":\"interfaces/LedgerEntryRequest.html#amm.__type.asset2.__type-2.currency-1\",\"classes\":\"\",\"parent\":\"LedgerEntryRequest.amm.__type.asset2.__type\"},{\"kind\":1024,\"name\":\"issuer\",\"url\":\"interfaces/LedgerEntryRequest.html#amm.__type.asset2.__type-2.issuer-1\",\"classes\":\"\",\"parent\":\"LedgerEntryRequest.amm.__type.asset2.__type\"},{\"kind\":1024,\"name\":\"binary\",\"url\":\"interfaces/LedgerEntryRequest.html#binary\",\"classes\":\"\",\"parent\":\"LedgerEntryRequest\"},{\"kind\":1024,\"name\":\"index\",\"url\":\"interfaces/LedgerEntryRequest.html#index\",\"classes\":\"\",\"parent\":\"LedgerEntryRequest\"},{\"kind\":1024,\"name\":\"account_root\",\"url\":\"interfaces/LedgerEntryRequest.html#account_root\",\"classes\":\"\",\"parent\":\"LedgerEntryRequest\"},{\"kind\":1024,\"name\":\"check\",\"url\":\"interfaces/LedgerEntryRequest.html#check\",\"classes\":\"\",\"parent\":\"LedgerEntryRequest\"},{\"kind\":1024,\"name\":\"deposit_preauth\",\"url\":\"interfaces/LedgerEntryRequest.html#deposit_preauth\",\"classes\":\"\",\"parent\":\"LedgerEntryRequest\"},{\"kind\":1024,\"name\":\"did\",\"url\":\"interfaces/LedgerEntryRequest.html#did\",\"classes\":\"\",\"parent\":\"LedgerEntryRequest\"},{\"kind\":1024,\"name\":\"directory\",\"url\":\"interfaces/LedgerEntryRequest.html#directory\",\"classes\":\"\",\"parent\":\"LedgerEntryRequest\"},{\"kind\":1024,\"name\":\"escrow\",\"url\":\"interfaces/LedgerEntryRequest.html#escrow\",\"classes\":\"\",\"parent\":\"LedgerEntryRequest\"},{\"kind\":1024,\"name\":\"offer\",\"url\":\"interfaces/LedgerEntryRequest.html#offer\",\"classes\":\"\",\"parent\":\"LedgerEntryRequest\"},{\"kind\":1024,\"name\":\"payment_channel\",\"url\":\"interfaces/LedgerEntryRequest.html#payment_channel\",\"classes\":\"\",\"parent\":\"LedgerEntryRequest\"},{\"kind\":1024,\"name\":\"ripple_state\",\"url\":\"interfaces/LedgerEntryRequest.html#ripple_state\",\"classes\":\"\",\"parent\":\"LedgerEntryRequest\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/LedgerEntryRequest.html#ripple_state.__type-3\",\"classes\":\"\",\"parent\":\"LedgerEntryRequest.ripple_state\"},{\"kind\":1024,\"name\":\"accounts\",\"url\":\"interfaces/LedgerEntryRequest.html#ripple_state.__type-3.accounts\",\"classes\":\"\",\"parent\":\"LedgerEntryRequest.ripple_state.__type\"},{\"kind\":1024,\"name\":\"currency\",\"url\":\"interfaces/LedgerEntryRequest.html#ripple_state.__type-3.currency-2\",\"classes\":\"\",\"parent\":\"LedgerEntryRequest.ripple_state.__type\"},{\"kind\":1024,\"name\":\"ticket\",\"url\":\"interfaces/LedgerEntryRequest.html#ticket\",\"classes\":\"\",\"parent\":\"LedgerEntryRequest\"},{\"kind\":1024,\"name\":\"nft_page\",\"url\":\"interfaces/LedgerEntryRequest.html#nft_page\",\"classes\":\"\",\"parent\":\"LedgerEntryRequest\"},{\"kind\":1024,\"name\":\"bridge_account\",\"url\":\"interfaces/LedgerEntryRequest.html#bridge_account\",\"classes\":\"\",\"parent\":\"LedgerEntryRequest\"},{\"kind\":1024,\"name\":\"bridge\",\"url\":\"interfaces/LedgerEntryRequest.html#bridge\",\"classes\":\"\",\"parent\":\"LedgerEntryRequest\"},{\"kind\":1024,\"name\":\"xchain_owned_claim_id\",\"url\":\"interfaces/LedgerEntryRequest.html#xchain_owned_claim_id\",\"classes\":\"\",\"parent\":\"LedgerEntryRequest\"},{\"kind\":1024,\"name\":\"xchain_owned_create_account_claim_id\",\"url\":\"interfaces/LedgerEntryRequest.html#xchain_owned_create_account_claim_id\",\"classes\":\"\",\"parent\":\"LedgerEntryRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/LedgerEntryRequest.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerEntryRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/LedgerEntryRequest.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerEntryRequest\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/LedgerEntryRequest.html#ledger_hash\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerEntryRequest\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/LedgerEntryRequest.html#ledger_index\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerEntryRequest\"},{\"kind\":256,\"name\":\"LedgerEntryResponse\",\"url\":\"interfaces/LedgerEntryResponse.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/LedgerEntryResponse.html#result\",\"classes\":\"\",\"parent\":\"LedgerEntryResponse\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/LedgerEntryResponse.html#result.__type\",\"classes\":\"\",\"parent\":\"LedgerEntryResponse.result\"},{\"kind\":1024,\"name\":\"index\",\"url\":\"interfaces/LedgerEntryResponse.html#result.__type.index\",\"classes\":\"\",\"parent\":\"LedgerEntryResponse.result.__type\"},{\"kind\":1024,\"name\":\"ledger_current_index\",\"url\":\"interfaces/LedgerEntryResponse.html#result.__type.ledger_current_index\",\"classes\":\"\",\"parent\":\"LedgerEntryResponse.result.__type\"},{\"kind\":1024,\"name\":\"node\",\"url\":\"interfaces/LedgerEntryResponse.html#result.__type.node\",\"classes\":\"\",\"parent\":\"LedgerEntryResponse.result.__type\"},{\"kind\":1024,\"name\":\"node_binary\",\"url\":\"interfaces/LedgerEntryResponse.html#result.__type.node_binary\",\"classes\":\"\",\"parent\":\"LedgerEntryResponse.result.__type\"},{\"kind\":1024,\"name\":\"validated\",\"url\":\"interfaces/LedgerEntryResponse.html#result.__type.validated\",\"classes\":\"\",\"parent\":\"LedgerEntryResponse.result.__type\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/LedgerEntryResponse.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerEntryResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/LedgerEntryResponse.html#status\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerEntryResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/LedgerEntryResponse.html#type\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerEntryResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/LedgerEntryResponse.html#warning\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerEntryResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/LedgerEntryResponse.html#warnings\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerEntryResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/LedgerEntryResponse.html#forwarded\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerEntryResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/LedgerEntryResponse.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"LedgerEntryResponse\"},{\"kind\":256,\"name\":\"SubmitRequest\",\"url\":\"interfaces/SubmitRequest.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/SubmitRequest.html#command\",\"classes\":\"\",\"parent\":\"SubmitRequest\"},{\"kind\":1024,\"name\":\"tx_blob\",\"url\":\"interfaces/SubmitRequest.html#tx_blob\",\"classes\":\"\",\"parent\":\"SubmitRequest\"},{\"kind\":1024,\"name\":\"fail_hard\",\"url\":\"interfaces/SubmitRequest.html#fail_hard\",\"classes\":\"\",\"parent\":\"SubmitRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/SubmitRequest.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SubmitRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/SubmitRequest.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SubmitRequest\"},{\"kind\":256,\"name\":\"SubmitResponse\",\"url\":\"interfaces/SubmitResponse.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/SubmitResponse.html#result\",\"classes\":\"\",\"parent\":\"SubmitResponse\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/SubmitResponse.html#result.__type\",\"classes\":\"\",\"parent\":\"SubmitResponse.result\"},{\"kind\":1024,\"name\":\"engine_result\",\"url\":\"interfaces/SubmitResponse.html#result.__type.engine_result\",\"classes\":\"\",\"parent\":\"SubmitResponse.result.__type\"},{\"kind\":1024,\"name\":\"engine_result_code\",\"url\":\"interfaces/SubmitResponse.html#result.__type.engine_result_code\",\"classes\":\"\",\"parent\":\"SubmitResponse.result.__type\"},{\"kind\":1024,\"name\":\"engine_result_message\",\"url\":\"interfaces/SubmitResponse.html#result.__type.engine_result_message\",\"classes\":\"\",\"parent\":\"SubmitResponse.result.__type\"},{\"kind\":1024,\"name\":\"tx_blob\",\"url\":\"interfaces/SubmitResponse.html#result.__type.tx_blob\",\"classes\":\"\",\"parent\":\"SubmitResponse.result.__type\"},{\"kind\":1024,\"name\":\"tx_json\",\"url\":\"interfaces/SubmitResponse.html#result.__type.tx_json\",\"classes\":\"\",\"parent\":\"SubmitResponse.result.__type\"},{\"kind\":1024,\"name\":\"accepted\",\"url\":\"interfaces/SubmitResponse.html#result.__type.accepted\",\"classes\":\"\",\"parent\":\"SubmitResponse.result.__type\"},{\"kind\":1024,\"name\":\"account_sequence_available\",\"url\":\"interfaces/SubmitResponse.html#result.__type.account_sequence_available\",\"classes\":\"\",\"parent\":\"SubmitResponse.result.__type\"},{\"kind\":1024,\"name\":\"account_sequence_next\",\"url\":\"interfaces/SubmitResponse.html#result.__type.account_sequence_next\",\"classes\":\"\",\"parent\":\"SubmitResponse.result.__type\"},{\"kind\":1024,\"name\":\"applied\",\"url\":\"interfaces/SubmitResponse.html#result.__type.applied\",\"classes\":\"\",\"parent\":\"SubmitResponse.result.__type\"},{\"kind\":1024,\"name\":\"broadcast\",\"url\":\"interfaces/SubmitResponse.html#result.__type.broadcast\",\"classes\":\"\",\"parent\":\"SubmitResponse.result.__type\"},{\"kind\":1024,\"name\":\"kept\",\"url\":\"interfaces/SubmitResponse.html#result.__type.kept\",\"classes\":\"\",\"parent\":\"SubmitResponse.result.__type\"},{\"kind\":1024,\"name\":\"queued\",\"url\":\"interfaces/SubmitResponse.html#result.__type.queued\",\"classes\":\"\",\"parent\":\"SubmitResponse.result.__type\"},{\"kind\":1024,\"name\":\"open_ledger_cost\",\"url\":\"interfaces/SubmitResponse.html#result.__type.open_ledger_cost\",\"classes\":\"\",\"parent\":\"SubmitResponse.result.__type\"},{\"kind\":1024,\"name\":\"validated_ledger_index\",\"url\":\"interfaces/SubmitResponse.html#result.__type.validated_ledger_index\",\"classes\":\"\",\"parent\":\"SubmitResponse.result.__type\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/SubmitResponse.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SubmitResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/SubmitResponse.html#status\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SubmitResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/SubmitResponse.html#type\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SubmitResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/SubmitResponse.html#warning\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SubmitResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/SubmitResponse.html#warnings\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SubmitResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/SubmitResponse.html#forwarded\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SubmitResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/SubmitResponse.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SubmitResponse\"},{\"kind\":256,\"name\":\"SubmitMultisignedRequest\",\"url\":\"interfaces/SubmitMultisignedRequest.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/SubmitMultisignedRequest.html#command\",\"classes\":\"\",\"parent\":\"SubmitMultisignedRequest\"},{\"kind\":1024,\"name\":\"tx_json\",\"url\":\"interfaces/SubmitMultisignedRequest.html#tx_json\",\"classes\":\"\",\"parent\":\"SubmitMultisignedRequest\"},{\"kind\":1024,\"name\":\"fail_hard\",\"url\":\"interfaces/SubmitMultisignedRequest.html#fail_hard\",\"classes\":\"\",\"parent\":\"SubmitMultisignedRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/SubmitMultisignedRequest.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SubmitMultisignedRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/SubmitMultisignedRequest.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SubmitMultisignedRequest\"},{\"kind\":256,\"name\":\"SubmitMultisignedResponse\",\"url\":\"interfaces/SubmitMultisignedResponse.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/SubmitMultisignedResponse.html#result\",\"classes\":\"\",\"parent\":\"SubmitMultisignedResponse\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/SubmitMultisignedResponse.html#result.__type\",\"classes\":\"\",\"parent\":\"SubmitMultisignedResponse.result\"},{\"kind\":1024,\"name\":\"engine_result\",\"url\":\"interfaces/SubmitMultisignedResponse.html#result.__type.engine_result\",\"classes\":\"\",\"parent\":\"SubmitMultisignedResponse.result.__type\"},{\"kind\":1024,\"name\":\"engine_result_code\",\"url\":\"interfaces/SubmitMultisignedResponse.html#result.__type.engine_result_code\",\"classes\":\"\",\"parent\":\"SubmitMultisignedResponse.result.__type\"},{\"kind\":1024,\"name\":\"engine_result_message\",\"url\":\"interfaces/SubmitMultisignedResponse.html#result.__type.engine_result_message\",\"classes\":\"\",\"parent\":\"SubmitMultisignedResponse.result.__type\"},{\"kind\":1024,\"name\":\"tx_blob\",\"url\":\"interfaces/SubmitMultisignedResponse.html#result.__type.tx_blob\",\"classes\":\"\",\"parent\":\"SubmitMultisignedResponse.result.__type\"},{\"kind\":1024,\"name\":\"tx_json\",\"url\":\"interfaces/SubmitMultisignedResponse.html#result.__type.tx_json\",\"classes\":\"\",\"parent\":\"SubmitMultisignedResponse.result.__type\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/SubmitMultisignedResponse.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SubmitMultisignedResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/SubmitMultisignedResponse.html#status\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SubmitMultisignedResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/SubmitMultisignedResponse.html#type\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SubmitMultisignedResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/SubmitMultisignedResponse.html#warning\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SubmitMultisignedResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/SubmitMultisignedResponse.html#warnings\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SubmitMultisignedResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/SubmitMultisignedResponse.html#forwarded\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SubmitMultisignedResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/SubmitMultisignedResponse.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SubmitMultisignedResponse\"},{\"kind\":256,\"name\":\"TransactionEntryRequest\",\"url\":\"interfaces/TransactionEntryRequest.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/TransactionEntryRequest.html#command\",\"classes\":\"\",\"parent\":\"TransactionEntryRequest\"},{\"kind\":1024,\"name\":\"tx_hash\",\"url\":\"interfaces/TransactionEntryRequest.html#tx_hash\",\"classes\":\"\",\"parent\":\"TransactionEntryRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/TransactionEntryRequest.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"TransactionEntryRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/TransactionEntryRequest.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"TransactionEntryRequest\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/TransactionEntryRequest.html#ledger_hash\",\"classes\":\"tsd-is-inherited\",\"parent\":\"TransactionEntryRequest\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/TransactionEntryRequest.html#ledger_index\",\"classes\":\"tsd-is-inherited\",\"parent\":\"TransactionEntryRequest\"},{\"kind\":256,\"name\":\"TransactionEntryResponse\",\"url\":\"interfaces/TransactionEntryResponse.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/TransactionEntryResponse.html#result\",\"classes\":\"\",\"parent\":\"TransactionEntryResponse\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/TransactionEntryResponse.html#result.__type\",\"classes\":\"\",\"parent\":\"TransactionEntryResponse.result\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/TransactionEntryResponse.html#result.__type.ledger_hash\",\"classes\":\"\",\"parent\":\"TransactionEntryResponse.result.__type\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/TransactionEntryResponse.html#result.__type.ledger_index\",\"classes\":\"\",\"parent\":\"TransactionEntryResponse.result.__type\"},{\"kind\":1024,\"name\":\"metadata\",\"url\":\"interfaces/TransactionEntryResponse.html#result.__type.metadata\",\"classes\":\"\",\"parent\":\"TransactionEntryResponse.result.__type\"},{\"kind\":1024,\"name\":\"tx_json\",\"url\":\"interfaces/TransactionEntryResponse.html#result.__type.tx_json\",\"classes\":\"\",\"parent\":\"TransactionEntryResponse.result.__type\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/TransactionEntryResponse.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"TransactionEntryResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/TransactionEntryResponse.html#status\",\"classes\":\"tsd-is-inherited\",\"parent\":\"TransactionEntryResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/TransactionEntryResponse.html#type\",\"classes\":\"tsd-is-inherited\",\"parent\":\"TransactionEntryResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/TransactionEntryResponse.html#warning\",\"classes\":\"tsd-is-inherited\",\"parent\":\"TransactionEntryResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/TransactionEntryResponse.html#warnings\",\"classes\":\"tsd-is-inherited\",\"parent\":\"TransactionEntryResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/TransactionEntryResponse.html#forwarded\",\"classes\":\"tsd-is-inherited\",\"parent\":\"TransactionEntryResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/TransactionEntryResponse.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"TransactionEntryResponse\"},{\"kind\":256,\"name\":\"TxRequest\",\"url\":\"interfaces/TxRequest.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/TxRequest.html#command\",\"classes\":\"\",\"parent\":\"TxRequest\"},{\"kind\":1024,\"name\":\"transaction\",\"url\":\"interfaces/TxRequest.html#transaction\",\"classes\":\"\",\"parent\":\"TxRequest\"},{\"kind\":1024,\"name\":\"ctid\",\"url\":\"interfaces/TxRequest.html#ctid\",\"classes\":\"\",\"parent\":\"TxRequest\"},{\"kind\":1024,\"name\":\"binary\",\"url\":\"interfaces/TxRequest.html#binary\",\"classes\":\"\",\"parent\":\"TxRequest\"},{\"kind\":1024,\"name\":\"min_ledger\",\"url\":\"interfaces/TxRequest.html#min_ledger\",\"classes\":\"\",\"parent\":\"TxRequest\"},{\"kind\":1024,\"name\":\"max_ledger\",\"url\":\"interfaces/TxRequest.html#max_ledger\",\"classes\":\"\",\"parent\":\"TxRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/TxRequest.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"TxRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/TxRequest.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"TxRequest\"},{\"kind\":256,\"name\":\"TxResponse\",\"url\":\"interfaces/TxResponse.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/TxResponse.html#result\",\"classes\":\"\",\"parent\":\"TxResponse\"},{\"kind\":1024,\"name\":\"searched_all\",\"url\":\"interfaces/TxResponse.html#searched_all\",\"classes\":\"\",\"parent\":\"TxResponse\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/TxResponse.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"TxResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/TxResponse.html#status\",\"classes\":\"tsd-is-inherited\",\"parent\":\"TxResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/TxResponse.html#type\",\"classes\":\"tsd-is-inherited\",\"parent\":\"TxResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/TxResponse.html#warning\",\"classes\":\"tsd-is-inherited\",\"parent\":\"TxResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/TxResponse.html#warnings\",\"classes\":\"tsd-is-inherited\",\"parent\":\"TxResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/TxResponse.html#forwarded\",\"classes\":\"tsd-is-inherited\",\"parent\":\"TxResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/TxResponse.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"TxResponse\"},{\"kind\":256,\"name\":\"BookOffersRequest\",\"url\":\"interfaces/BookOffersRequest.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/BookOffersRequest.html#command\",\"classes\":\"\",\"parent\":\"BookOffersRequest\"},{\"kind\":1024,\"name\":\"limit\",\"url\":\"interfaces/BookOffersRequest.html#limit\",\"classes\":\"\",\"parent\":\"BookOffersRequest\"},{\"kind\":1024,\"name\":\"taker\",\"url\":\"interfaces/BookOffersRequest.html#taker\",\"classes\":\"\",\"parent\":\"BookOffersRequest\"},{\"kind\":1024,\"name\":\"taker_gets\",\"url\":\"interfaces/BookOffersRequest.html#taker_gets\",\"classes\":\"\",\"parent\":\"BookOffersRequest\"},{\"kind\":1024,\"name\":\"taker_pays\",\"url\":\"interfaces/BookOffersRequest.html#taker_pays\",\"classes\":\"\",\"parent\":\"BookOffersRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/BookOffersRequest.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"BookOffersRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/BookOffersRequest.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"BookOffersRequest\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/BookOffersRequest.html#ledger_hash\",\"classes\":\"tsd-is-inherited\",\"parent\":\"BookOffersRequest\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/BookOffersRequest.html#ledger_index\",\"classes\":\"tsd-is-inherited\",\"parent\":\"BookOffersRequest\"},{\"kind\":256,\"name\":\"BookOffer\",\"url\":\"interfaces/BookOffer.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"owner_funds\",\"url\":\"interfaces/BookOffer.html#owner_funds\",\"classes\":\"\",\"parent\":\"BookOffer\"},{\"kind\":1024,\"name\":\"taker_gets_funded\",\"url\":\"interfaces/BookOffer.html#taker_gets_funded\",\"classes\":\"\",\"parent\":\"BookOffer\"},{\"kind\":1024,\"name\":\"taker_pays_funded\",\"url\":\"interfaces/BookOffer.html#taker_pays_funded\",\"classes\":\"\",\"parent\":\"BookOffer\"},{\"kind\":1024,\"name\":\"quality\",\"url\":\"interfaces/BookOffer.html#quality\",\"classes\":\"\",\"parent\":\"BookOffer\"},{\"kind\":1024,\"name\":\"LedgerEntryType\",\"url\":\"interfaces/BookOffer.html#LedgerEntryType\",\"classes\":\"tsd-is-inherited\",\"parent\":\"BookOffer\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/BookOffer.html#Flags\",\"classes\":\"tsd-is-inherited\",\"parent\":\"BookOffer\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/BookOffer.html#Account\",\"classes\":\"tsd-is-inherited\",\"parent\":\"BookOffer\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/BookOffer.html#Sequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"BookOffer\"},{\"kind\":1024,\"name\":\"TakerPays\",\"url\":\"interfaces/BookOffer.html#TakerPays\",\"classes\":\"tsd-is-inherited\",\"parent\":\"BookOffer\"},{\"kind\":1024,\"name\":\"TakerGets\",\"url\":\"interfaces/BookOffer.html#TakerGets\",\"classes\":\"tsd-is-inherited\",\"parent\":\"BookOffer\"},{\"kind\":1024,\"name\":\"BookDirectory\",\"url\":\"interfaces/BookOffer.html#BookDirectory\",\"classes\":\"tsd-is-inherited\",\"parent\":\"BookOffer\"},{\"kind\":1024,\"name\":\"BookNode\",\"url\":\"interfaces/BookOffer.html#BookNode\",\"classes\":\"tsd-is-inherited\",\"parent\":\"BookOffer\"},{\"kind\":1024,\"name\":\"OwnerNode\",\"url\":\"interfaces/BookOffer.html#OwnerNode\",\"classes\":\"tsd-is-inherited\",\"parent\":\"BookOffer\"},{\"kind\":1024,\"name\":\"Expiration\",\"url\":\"interfaces/BookOffer.html#Expiration\",\"classes\":\"tsd-is-inherited\",\"parent\":\"BookOffer\"},{\"kind\":1024,\"name\":\"index\",\"url\":\"interfaces/BookOffer.html#index\",\"classes\":\"tsd-is-inherited\",\"parent\":\"BookOffer\"},{\"kind\":1024,\"name\":\"PreviousTxnID\",\"url\":\"interfaces/BookOffer.html#PreviousTxnID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"BookOffer\"},{\"kind\":1024,\"name\":\"PreviousTxnLgrSeq\",\"url\":\"interfaces/BookOffer.html#PreviousTxnLgrSeq\",\"classes\":\"tsd-is-inherited\",\"parent\":\"BookOffer\"},{\"kind\":256,\"name\":\"BookOfferCurrency\",\"url\":\"interfaces/BookOfferCurrency.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"currency\",\"url\":\"interfaces/BookOfferCurrency.html#currency\",\"classes\":\"\",\"parent\":\"BookOfferCurrency\"},{\"kind\":1024,\"name\":\"issuer\",\"url\":\"interfaces/BookOfferCurrency.html#issuer\",\"classes\":\"\",\"parent\":\"BookOfferCurrency\"},{\"kind\":256,\"name\":\"BookOffersResponse\",\"url\":\"interfaces/BookOffersResponse.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/BookOffersResponse.html#result\",\"classes\":\"\",\"parent\":\"BookOffersResponse\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/BookOffersResponse.html#result.__type\",\"classes\":\"\",\"parent\":\"BookOffersResponse.result\"},{\"kind\":1024,\"name\":\"ledger_current_index\",\"url\":\"interfaces/BookOffersResponse.html#result.__type.ledger_current_index\",\"classes\":\"\",\"parent\":\"BookOffersResponse.result.__type\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/BookOffersResponse.html#result.__type.ledger_index\",\"classes\":\"\",\"parent\":\"BookOffersResponse.result.__type\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/BookOffersResponse.html#result.__type.ledger_hash\",\"classes\":\"\",\"parent\":\"BookOffersResponse.result.__type\"},{\"kind\":1024,\"name\":\"offers\",\"url\":\"interfaces/BookOffersResponse.html#result.__type.offers\",\"classes\":\"\",\"parent\":\"BookOffersResponse.result.__type\"},{\"kind\":1024,\"name\":\"validated\",\"url\":\"interfaces/BookOffersResponse.html#result.__type.validated\",\"classes\":\"\",\"parent\":\"BookOffersResponse.result.__type\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/BookOffersResponse.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"BookOffersResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/BookOffersResponse.html#status\",\"classes\":\"tsd-is-inherited\",\"parent\":\"BookOffersResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/BookOffersResponse.html#type\",\"classes\":\"tsd-is-inherited\",\"parent\":\"BookOffersResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/BookOffersResponse.html#warning\",\"classes\":\"tsd-is-inherited\",\"parent\":\"BookOffersResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/BookOffersResponse.html#warnings\",\"classes\":\"tsd-is-inherited\",\"parent\":\"BookOffersResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/BookOffersResponse.html#forwarded\",\"classes\":\"tsd-is-inherited\",\"parent\":\"BookOffersResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/BookOffersResponse.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"BookOffersResponse\"},{\"kind\":256,\"name\":\"DepositAuthorizedRequest\",\"url\":\"interfaces/DepositAuthorizedRequest.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/DepositAuthorizedRequest.html#command\",\"classes\":\"\",\"parent\":\"DepositAuthorizedRequest\"},{\"kind\":1024,\"name\":\"source_account\",\"url\":\"interfaces/DepositAuthorizedRequest.html#source_account\",\"classes\":\"\",\"parent\":\"DepositAuthorizedRequest\"},{\"kind\":1024,\"name\":\"destination_account\",\"url\":\"interfaces/DepositAuthorizedRequest.html#destination_account\",\"classes\":\"\",\"parent\":\"DepositAuthorizedRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/DepositAuthorizedRequest.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DepositAuthorizedRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/DepositAuthorizedRequest.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DepositAuthorizedRequest\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/DepositAuthorizedRequest.html#ledger_hash\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DepositAuthorizedRequest\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/DepositAuthorizedRequest.html#ledger_index\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DepositAuthorizedRequest\"},{\"kind\":256,\"name\":\"DepositAuthorizedResponse\",\"url\":\"interfaces/DepositAuthorizedResponse.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/DepositAuthorizedResponse.html#result\",\"classes\":\"\",\"parent\":\"DepositAuthorizedResponse\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/DepositAuthorizedResponse.html#result.__type\",\"classes\":\"\",\"parent\":\"DepositAuthorizedResponse.result\"},{\"kind\":1024,\"name\":\"deposit_authorized\",\"url\":\"interfaces/DepositAuthorizedResponse.html#result.__type.deposit_authorized\",\"classes\":\"\",\"parent\":\"DepositAuthorizedResponse.result.__type\"},{\"kind\":1024,\"name\":\"destination_account\",\"url\":\"interfaces/DepositAuthorizedResponse.html#result.__type.destination_account\",\"classes\":\"\",\"parent\":\"DepositAuthorizedResponse.result.__type\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/DepositAuthorizedResponse.html#result.__type.ledger_hash\",\"classes\":\"\",\"parent\":\"DepositAuthorizedResponse.result.__type\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/DepositAuthorizedResponse.html#result.__type.ledger_index\",\"classes\":\"\",\"parent\":\"DepositAuthorizedResponse.result.__type\"},{\"kind\":1024,\"name\":\"ledger_current_index\",\"url\":\"interfaces/DepositAuthorizedResponse.html#result.__type.ledger_current_index\",\"classes\":\"\",\"parent\":\"DepositAuthorizedResponse.result.__type\"},{\"kind\":1024,\"name\":\"source_account\",\"url\":\"interfaces/DepositAuthorizedResponse.html#result.__type.source_account\",\"classes\":\"\",\"parent\":\"DepositAuthorizedResponse.result.__type\"},{\"kind\":1024,\"name\":\"validated\",\"url\":\"interfaces/DepositAuthorizedResponse.html#result.__type.validated\",\"classes\":\"\",\"parent\":\"DepositAuthorizedResponse.result.__type\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/DepositAuthorizedResponse.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DepositAuthorizedResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/DepositAuthorizedResponse.html#status\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DepositAuthorizedResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/DepositAuthorizedResponse.html#type\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DepositAuthorizedResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/DepositAuthorizedResponse.html#warning\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DepositAuthorizedResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/DepositAuthorizedResponse.html#warnings\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DepositAuthorizedResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/DepositAuthorizedResponse.html#forwarded\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DepositAuthorizedResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/DepositAuthorizedResponse.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DepositAuthorizedResponse\"},{\"kind\":2097152,\"name\":\"PathFindRequest\",\"url\":\"types/PathFindRequest.html\",\"classes\":\"\"},{\"kind\":256,\"name\":\"PathFindCreateRequest\",\"url\":\"interfaces/PathFindCreateRequest.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"subcommand\",\"url\":\"interfaces/PathFindCreateRequest.html#subcommand\",\"classes\":\"\",\"parent\":\"PathFindCreateRequest\"},{\"kind\":1024,\"name\":\"source_account\",\"url\":\"interfaces/PathFindCreateRequest.html#source_account\",\"classes\":\"\",\"parent\":\"PathFindCreateRequest\"},{\"kind\":1024,\"name\":\"destination_account\",\"url\":\"interfaces/PathFindCreateRequest.html#destination_account\",\"classes\":\"\",\"parent\":\"PathFindCreateRequest\"},{\"kind\":1024,\"name\":\"destination_amount\",\"url\":\"interfaces/PathFindCreateRequest.html#destination_amount\",\"classes\":\"\",\"parent\":\"PathFindCreateRequest\"},{\"kind\":1024,\"name\":\"send_max\",\"url\":\"interfaces/PathFindCreateRequest.html#send_max\",\"classes\":\"\",\"parent\":\"PathFindCreateRequest\"},{\"kind\":1024,\"name\":\"paths\",\"url\":\"interfaces/PathFindCreateRequest.html#paths\",\"classes\":\"\",\"parent\":\"PathFindCreateRequest\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/PathFindCreateRequest.html#command\",\"classes\":\"tsd-is-inherited\",\"parent\":\"PathFindCreateRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/PathFindCreateRequest.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"PathFindCreateRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/PathFindCreateRequest.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"PathFindCreateRequest\"},{\"kind\":256,\"name\":\"PathFindCloseRequest\",\"url\":\"interfaces/PathFindCloseRequest.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"subcommand\",\"url\":\"interfaces/PathFindCloseRequest.html#subcommand\",\"classes\":\"\",\"parent\":\"PathFindCloseRequest\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/PathFindCloseRequest.html#command\",\"classes\":\"tsd-is-inherited\",\"parent\":\"PathFindCloseRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/PathFindCloseRequest.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"PathFindCloseRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/PathFindCloseRequest.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"PathFindCloseRequest\"},{\"kind\":256,\"name\":\"PathFindPathOption\",\"url\":\"interfaces/PathFindPathOption.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"paths_computed\",\"url\":\"interfaces/PathFindPathOption.html#paths_computed\",\"classes\":\"\",\"parent\":\"PathFindPathOption\"},{\"kind\":1024,\"name\":\"source_amount\",\"url\":\"interfaces/PathFindPathOption.html#source_amount\",\"classes\":\"\",\"parent\":\"PathFindPathOption\"},{\"kind\":1024,\"name\":\"destination_amount\",\"url\":\"interfaces/PathFindPathOption.html#destination_amount\",\"classes\":\"\",\"parent\":\"PathFindPathOption\"},{\"kind\":256,\"name\":\"PathFindStatusRequest\",\"url\":\"interfaces/PathFindStatusRequest.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"subcommand\",\"url\":\"interfaces/PathFindStatusRequest.html#subcommand\",\"classes\":\"\",\"parent\":\"PathFindStatusRequest\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/PathFindStatusRequest.html#command\",\"classes\":\"tsd-is-inherited\",\"parent\":\"PathFindStatusRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/PathFindStatusRequest.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"PathFindStatusRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/PathFindStatusRequest.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"PathFindStatusRequest\"},{\"kind\":256,\"name\":\"PathFindResponse\",\"url\":\"interfaces/PathFindResponse.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/PathFindResponse.html#result\",\"classes\":\"\",\"parent\":\"PathFindResponse\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/PathFindResponse.html#result.__type\",\"classes\":\"\",\"parent\":\"PathFindResponse.result\"},{\"kind\":1024,\"name\":\"alternatives\",\"url\":\"interfaces/PathFindResponse.html#result.__type.alternatives\",\"classes\":\"\",\"parent\":\"PathFindResponse.result.__type\"},{\"kind\":1024,\"name\":\"destination_account\",\"url\":\"interfaces/PathFindResponse.html#result.__type.destination_account\",\"classes\":\"\",\"parent\":\"PathFindResponse.result.__type\"},{\"kind\":1024,\"name\":\"destination_amount\",\"url\":\"interfaces/PathFindResponse.html#result.__type.destination_amount\",\"classes\":\"\",\"parent\":\"PathFindResponse.result.__type\"},{\"kind\":1024,\"name\":\"source_account\",\"url\":\"interfaces/PathFindResponse.html#result.__type.source_account\",\"classes\":\"\",\"parent\":\"PathFindResponse.result.__type\"},{\"kind\":1024,\"name\":\"full_reply\",\"url\":\"interfaces/PathFindResponse.html#result.__type.full_reply\",\"classes\":\"\",\"parent\":\"PathFindResponse.result.__type\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/PathFindResponse.html#result.__type.id-1\",\"classes\":\"\",\"parent\":\"PathFindResponse.result.__type\"},{\"kind\":1024,\"name\":\"closed\",\"url\":\"interfaces/PathFindResponse.html#result.__type.closed\",\"classes\":\"\",\"parent\":\"PathFindResponse.result.__type\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/PathFindResponse.html#result.__type.status\",\"classes\":\"\",\"parent\":\"PathFindResponse.result.__type\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/PathFindResponse.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"PathFindResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/PathFindResponse.html#status-1\",\"classes\":\"tsd-is-inherited\",\"parent\":\"PathFindResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/PathFindResponse.html#type\",\"classes\":\"tsd-is-inherited\",\"parent\":\"PathFindResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/PathFindResponse.html#warning\",\"classes\":\"tsd-is-inherited\",\"parent\":\"PathFindResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/PathFindResponse.html#warnings\",\"classes\":\"tsd-is-inherited\",\"parent\":\"PathFindResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/PathFindResponse.html#forwarded\",\"classes\":\"tsd-is-inherited\",\"parent\":\"PathFindResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/PathFindResponse.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"PathFindResponse\"},{\"kind\":256,\"name\":\"RipplePathFindPathOption\",\"url\":\"interfaces/RipplePathFindPathOption.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"paths_computed\",\"url\":\"interfaces/RipplePathFindPathOption.html#paths_computed\",\"classes\":\"\",\"parent\":\"RipplePathFindPathOption\"},{\"kind\":1024,\"name\":\"source_amount\",\"url\":\"interfaces/RipplePathFindPathOption.html#source_amount\",\"classes\":\"\",\"parent\":\"RipplePathFindPathOption\"},{\"kind\":256,\"name\":\"RipplePathFindRequest\",\"url\":\"interfaces/RipplePathFindRequest.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/RipplePathFindRequest.html#command\",\"classes\":\"\",\"parent\":\"RipplePathFindRequest\"},{\"kind\":1024,\"name\":\"source_account\",\"url\":\"interfaces/RipplePathFindRequest.html#source_account\",\"classes\":\"\",\"parent\":\"RipplePathFindRequest\"},{\"kind\":1024,\"name\":\"destination_account\",\"url\":\"interfaces/RipplePathFindRequest.html#destination_account\",\"classes\":\"\",\"parent\":\"RipplePathFindRequest\"},{\"kind\":1024,\"name\":\"destination_amount\",\"url\":\"interfaces/RipplePathFindRequest.html#destination_amount\",\"classes\":\"\",\"parent\":\"RipplePathFindRequest\"},{\"kind\":1024,\"name\":\"send_max\",\"url\":\"interfaces/RipplePathFindRequest.html#send_max\",\"classes\":\"\",\"parent\":\"RipplePathFindRequest\"},{\"kind\":1024,\"name\":\"source_currencies\",\"url\":\"interfaces/RipplePathFindRequest.html#source_currencies\",\"classes\":\"\",\"parent\":\"RipplePathFindRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/RipplePathFindRequest.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"RipplePathFindRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/RipplePathFindRequest.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"RipplePathFindRequest\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/RipplePathFindRequest.html#ledger_hash\",\"classes\":\"tsd-is-inherited\",\"parent\":\"RipplePathFindRequest\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/RipplePathFindRequest.html#ledger_index\",\"classes\":\"tsd-is-inherited\",\"parent\":\"RipplePathFindRequest\"},{\"kind\":256,\"name\":\"RipplePathFindResponse\",\"url\":\"interfaces/RipplePathFindResponse.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/RipplePathFindResponse.html#result\",\"classes\":\"\",\"parent\":\"RipplePathFindResponse\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/RipplePathFindResponse.html#result.__type\",\"classes\":\"\",\"parent\":\"RipplePathFindResponse.result\"},{\"kind\":1024,\"name\":\"alternatives\",\"url\":\"interfaces/RipplePathFindResponse.html#result.__type.alternatives\",\"classes\":\"\",\"parent\":\"RipplePathFindResponse.result.__type\"},{\"kind\":1024,\"name\":\"destination_account\",\"url\":\"interfaces/RipplePathFindResponse.html#result.__type.destination_account\",\"classes\":\"\",\"parent\":\"RipplePathFindResponse.result.__type\"},{\"kind\":1024,\"name\":\"destination_currencies\",\"url\":\"interfaces/RipplePathFindResponse.html#result.__type.destination_currencies\",\"classes\":\"\",\"parent\":\"RipplePathFindResponse.result.__type\"},{\"kind\":1024,\"name\":\"destination_amount\",\"url\":\"interfaces/RipplePathFindResponse.html#result.__type.destination_amount\",\"classes\":\"\",\"parent\":\"RipplePathFindResponse.result.__type\"},{\"kind\":1024,\"name\":\"full_reply\",\"url\":\"interfaces/RipplePathFindResponse.html#result.__type.full_reply\",\"classes\":\"\",\"parent\":\"RipplePathFindResponse.result.__type\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/RipplePathFindResponse.html#result.__type.id-1\",\"classes\":\"\",\"parent\":\"RipplePathFindResponse.result.__type\"},{\"kind\":1024,\"name\":\"ledger_current_index\",\"url\":\"interfaces/RipplePathFindResponse.html#result.__type.ledger_current_index\",\"classes\":\"\",\"parent\":\"RipplePathFindResponse.result.__type\"},{\"kind\":1024,\"name\":\"source_account\",\"url\":\"interfaces/RipplePathFindResponse.html#result.__type.source_account\",\"classes\":\"\",\"parent\":\"RipplePathFindResponse.result.__type\"},{\"kind\":1024,\"name\":\"validated\",\"url\":\"interfaces/RipplePathFindResponse.html#result.__type.validated\",\"classes\":\"\",\"parent\":\"RipplePathFindResponse.result.__type\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/RipplePathFindResponse.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"RipplePathFindResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/RipplePathFindResponse.html#status\",\"classes\":\"tsd-is-inherited\",\"parent\":\"RipplePathFindResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/RipplePathFindResponse.html#type\",\"classes\":\"tsd-is-inherited\",\"parent\":\"RipplePathFindResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/RipplePathFindResponse.html#warning\",\"classes\":\"tsd-is-inherited\",\"parent\":\"RipplePathFindResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/RipplePathFindResponse.html#warnings\",\"classes\":\"tsd-is-inherited\",\"parent\":\"RipplePathFindResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/RipplePathFindResponse.html#forwarded\",\"classes\":\"tsd-is-inherited\",\"parent\":\"RipplePathFindResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/RipplePathFindResponse.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"RipplePathFindResponse\"},{\"kind\":256,\"name\":\"SourceCurrencyAmount\",\"url\":\"interfaces/SourceCurrencyAmount.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"currency\",\"url\":\"interfaces/SourceCurrencyAmount.html#currency\",\"classes\":\"\",\"parent\":\"SourceCurrencyAmount\"},{\"kind\":1024,\"name\":\"issuer\",\"url\":\"interfaces/SourceCurrencyAmount.html#issuer\",\"classes\":\"\",\"parent\":\"SourceCurrencyAmount\"},{\"kind\":256,\"name\":\"ChannelVerifyRequest\",\"url\":\"interfaces/ChannelVerifyRequest.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/ChannelVerifyRequest.html#command\",\"classes\":\"\",\"parent\":\"ChannelVerifyRequest\"},{\"kind\":1024,\"name\":\"amount\",\"url\":\"interfaces/ChannelVerifyRequest.html#amount\",\"classes\":\"\",\"parent\":\"ChannelVerifyRequest\"},{\"kind\":1024,\"name\":\"channel_id\",\"url\":\"interfaces/ChannelVerifyRequest.html#channel_id\",\"classes\":\"\",\"parent\":\"ChannelVerifyRequest\"},{\"kind\":1024,\"name\":\"public_key\",\"url\":\"interfaces/ChannelVerifyRequest.html#public_key\",\"classes\":\"\",\"parent\":\"ChannelVerifyRequest\"},{\"kind\":1024,\"name\":\"signature\",\"url\":\"interfaces/ChannelVerifyRequest.html#signature\",\"classes\":\"\",\"parent\":\"ChannelVerifyRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/ChannelVerifyRequest.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"ChannelVerifyRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/ChannelVerifyRequest.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"ChannelVerifyRequest\"},{\"kind\":256,\"name\":\"ChannelVerifyResponse\",\"url\":\"interfaces/ChannelVerifyResponse.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/ChannelVerifyResponse.html#result\",\"classes\":\"\",\"parent\":\"ChannelVerifyResponse\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/ChannelVerifyResponse.html#result.__type\",\"classes\":\"\",\"parent\":\"ChannelVerifyResponse.result\"},{\"kind\":1024,\"name\":\"signature_verified\",\"url\":\"interfaces/ChannelVerifyResponse.html#result.__type.signature_verified\",\"classes\":\"\",\"parent\":\"ChannelVerifyResponse.result.__type\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/ChannelVerifyResponse.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"ChannelVerifyResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/ChannelVerifyResponse.html#status\",\"classes\":\"tsd-is-inherited\",\"parent\":\"ChannelVerifyResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/ChannelVerifyResponse.html#type\",\"classes\":\"tsd-is-inherited\",\"parent\":\"ChannelVerifyResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/ChannelVerifyResponse.html#warning\",\"classes\":\"tsd-is-inherited\",\"parent\":\"ChannelVerifyResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/ChannelVerifyResponse.html#warnings\",\"classes\":\"tsd-is-inherited\",\"parent\":\"ChannelVerifyResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/ChannelVerifyResponse.html#forwarded\",\"classes\":\"tsd-is-inherited\",\"parent\":\"ChannelVerifyResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/ChannelVerifyResponse.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"ChannelVerifyResponse\"},{\"kind\":256,\"name\":\"SubscribeRequest\",\"url\":\"interfaces/SubscribeRequest.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/SubscribeRequest.html#command\",\"classes\":\"\",\"parent\":\"SubscribeRequest\"},{\"kind\":1024,\"name\":\"streams\",\"url\":\"interfaces/SubscribeRequest.html#streams\",\"classes\":\"\",\"parent\":\"SubscribeRequest\"},{\"kind\":1024,\"name\":\"accounts\",\"url\":\"interfaces/SubscribeRequest.html#accounts\",\"classes\":\"\",\"parent\":\"SubscribeRequest\"},{\"kind\":1024,\"name\":\"accounts_proposed\",\"url\":\"interfaces/SubscribeRequest.html#accounts_proposed\",\"classes\":\"\",\"parent\":\"SubscribeRequest\"},{\"kind\":1024,\"name\":\"books\",\"url\":\"interfaces/SubscribeRequest.html#books\",\"classes\":\"\",\"parent\":\"SubscribeRequest\"},{\"kind\":1024,\"name\":\"url\",\"url\":\"interfaces/SubscribeRequest.html#url\",\"classes\":\"\",\"parent\":\"SubscribeRequest\"},{\"kind\":1024,\"name\":\"url_username\",\"url\":\"interfaces/SubscribeRequest.html#url_username\",\"classes\":\"\",\"parent\":\"SubscribeRequest\"},{\"kind\":1024,\"name\":\"url_password\",\"url\":\"interfaces/SubscribeRequest.html#url_password\",\"classes\":\"\",\"parent\":\"SubscribeRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/SubscribeRequest.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SubscribeRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/SubscribeRequest.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SubscribeRequest\"},{\"kind\":256,\"name\":\"SubscribeResponse\",\"url\":\"interfaces/SubscribeResponse.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/SubscribeResponse.html#result\",\"classes\":\"\",\"parent\":\"SubscribeResponse\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/SubscribeResponse.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SubscribeResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/SubscribeResponse.html#status\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SubscribeResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/SubscribeResponse.html#type\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SubscribeResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/SubscribeResponse.html#warning\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SubscribeResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/SubscribeResponse.html#warnings\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SubscribeResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/SubscribeResponse.html#forwarded\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SubscribeResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/SubscribeResponse.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SubscribeResponse\"},{\"kind\":256,\"name\":\"SubscribeBook\",\"url\":\"interfaces/SubscribeBook.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"taker_gets\",\"url\":\"interfaces/SubscribeBook.html#taker_gets\",\"classes\":\"\",\"parent\":\"SubscribeBook\"},{\"kind\":1024,\"name\":\"taker_pays\",\"url\":\"interfaces/SubscribeBook.html#taker_pays\",\"classes\":\"\",\"parent\":\"SubscribeBook\"},{\"kind\":1024,\"name\":\"taker\",\"url\":\"interfaces/SubscribeBook.html#taker\",\"classes\":\"\",\"parent\":\"SubscribeBook\"},{\"kind\":1024,\"name\":\"snapshot\",\"url\":\"interfaces/SubscribeBook.html#snapshot\",\"classes\":\"\",\"parent\":\"SubscribeBook\"},{\"kind\":1024,\"name\":\"both\",\"url\":\"interfaces/SubscribeBook.html#both\",\"classes\":\"\",\"parent\":\"SubscribeBook\"},{\"kind\":2097152,\"name\":\"Stream\",\"url\":\"types/Stream.html\",\"classes\":\"\"},{\"kind\":2097152,\"name\":\"BooksSnapshot\",\"url\":\"types/BooksSnapshot.html\",\"classes\":\"\"},{\"kind\":256,\"name\":\"LedgerStream\",\"url\":\"interfaces/LedgerStream.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/LedgerStream.html#type\",\"classes\":\"\",\"parent\":\"LedgerStream\"},{\"kind\":1024,\"name\":\"fee_base\",\"url\":\"interfaces/LedgerStream.html#fee_base\",\"classes\":\"\",\"parent\":\"LedgerStream\"},{\"kind\":1024,\"name\":\"fee_ref\",\"url\":\"interfaces/LedgerStream.html#fee_ref\",\"classes\":\"\",\"parent\":\"LedgerStream\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/LedgerStream.html#ledger_hash\",\"classes\":\"\",\"parent\":\"LedgerStream\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/LedgerStream.html#ledger_index\",\"classes\":\"\",\"parent\":\"LedgerStream\"},{\"kind\":1024,\"name\":\"ledger_time\",\"url\":\"interfaces/LedgerStream.html#ledger_time\",\"classes\":\"\",\"parent\":\"LedgerStream\"},{\"kind\":1024,\"name\":\"reserve_base\",\"url\":\"interfaces/LedgerStream.html#reserve_base\",\"classes\":\"\",\"parent\":\"LedgerStream\"},{\"kind\":1024,\"name\":\"reserve_inc\",\"url\":\"interfaces/LedgerStream.html#reserve_inc\",\"classes\":\"\",\"parent\":\"LedgerStream\"},{\"kind\":1024,\"name\":\"txn_count\",\"url\":\"interfaces/LedgerStream.html#txn_count\",\"classes\":\"\",\"parent\":\"LedgerStream\"},{\"kind\":1024,\"name\":\"validated_ledgers\",\"url\":\"interfaces/LedgerStream.html#validated_ledgers\",\"classes\":\"\",\"parent\":\"LedgerStream\"},{\"kind\":256,\"name\":\"LedgerStreamResponse\",\"url\":\"interfaces/LedgerStreamResponse.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"fee_base\",\"url\":\"interfaces/LedgerStreamResponse.html#fee_base\",\"classes\":\"\",\"parent\":\"LedgerStreamResponse\"},{\"kind\":1024,\"name\":\"fee_ref\",\"url\":\"interfaces/LedgerStreamResponse.html#fee_ref\",\"classes\":\"\",\"parent\":\"LedgerStreamResponse\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/LedgerStreamResponse.html#ledger_hash\",\"classes\":\"\",\"parent\":\"LedgerStreamResponse\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/LedgerStreamResponse.html#ledger_index\",\"classes\":\"\",\"parent\":\"LedgerStreamResponse\"},{\"kind\":1024,\"name\":\"ledger_time\",\"url\":\"interfaces/LedgerStreamResponse.html#ledger_time\",\"classes\":\"\",\"parent\":\"LedgerStreamResponse\"},{\"kind\":1024,\"name\":\"reserve_base\",\"url\":\"interfaces/LedgerStreamResponse.html#reserve_base\",\"classes\":\"\",\"parent\":\"LedgerStreamResponse\"},{\"kind\":1024,\"name\":\"reserve_inc\",\"url\":\"interfaces/LedgerStreamResponse.html#reserve_inc\",\"classes\":\"\",\"parent\":\"LedgerStreamResponse\"},{\"kind\":1024,\"name\":\"validated_ledgers\",\"url\":\"interfaces/LedgerStreamResponse.html#validated_ledgers\",\"classes\":\"\",\"parent\":\"LedgerStreamResponse\"},{\"kind\":256,\"name\":\"ValidationStream\",\"url\":\"interfaces/ValidationStream.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/ValidationStream.html#type\",\"classes\":\"\",\"parent\":\"ValidationStream\"},{\"kind\":1024,\"name\":\"amendments\",\"url\":\"interfaces/ValidationStream.html#amendments\",\"classes\":\"\",\"parent\":\"ValidationStream\"},{\"kind\":1024,\"name\":\"base_fee\",\"url\":\"interfaces/ValidationStream.html#base_fee\",\"classes\":\"\",\"parent\":\"ValidationStream\"},{\"kind\":1024,\"name\":\"cookie\",\"url\":\"interfaces/ValidationStream.html#cookie\",\"classes\":\"\",\"parent\":\"ValidationStream\"},{\"kind\":1024,\"name\":\"data\",\"url\":\"interfaces/ValidationStream.html#data\",\"classes\":\"\",\"parent\":\"ValidationStream\"},{\"kind\":1024,\"name\":\"flags\",\"url\":\"interfaces/ValidationStream.html#flags\",\"classes\":\"\",\"parent\":\"ValidationStream\"},{\"kind\":1024,\"name\":\"full\",\"url\":\"interfaces/ValidationStream.html#full\",\"classes\":\"\",\"parent\":\"ValidationStream\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/ValidationStream.html#ledger_hash\",\"classes\":\"\",\"parent\":\"ValidationStream\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/ValidationStream.html#ledger_index\",\"classes\":\"\",\"parent\":\"ValidationStream\"},{\"kind\":1024,\"name\":\"load_fee\",\"url\":\"interfaces/ValidationStream.html#load_fee\",\"classes\":\"\",\"parent\":\"ValidationStream\"},{\"kind\":1024,\"name\":\"master_key\",\"url\":\"interfaces/ValidationStream.html#master_key\",\"classes\":\"\",\"parent\":\"ValidationStream\"},{\"kind\":1024,\"name\":\"reserve_base\",\"url\":\"interfaces/ValidationStream.html#reserve_base\",\"classes\":\"\",\"parent\":\"ValidationStream\"},{\"kind\":1024,\"name\":\"reserve_inc\",\"url\":\"interfaces/ValidationStream.html#reserve_inc\",\"classes\":\"\",\"parent\":\"ValidationStream\"},{\"kind\":1024,\"name\":\"signature\",\"url\":\"interfaces/ValidationStream.html#signature\",\"classes\":\"\",\"parent\":\"ValidationStream\"},{\"kind\":1024,\"name\":\"signing_time\",\"url\":\"interfaces/ValidationStream.html#signing_time\",\"classes\":\"\",\"parent\":\"ValidationStream\"},{\"kind\":1024,\"name\":\"validation_public_key\",\"url\":\"interfaces/ValidationStream.html#validation_public_key\",\"classes\":\"\",\"parent\":\"ValidationStream\"},{\"kind\":256,\"name\":\"TransactionStream\",\"url\":\"interfaces/TransactionStream.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/TransactionStream.html#status\",\"classes\":\"\",\"parent\":\"TransactionStream\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/TransactionStream.html#type\",\"classes\":\"\",\"parent\":\"TransactionStream\"},{\"kind\":1024,\"name\":\"engine_result\",\"url\":\"interfaces/TransactionStream.html#engine_result\",\"classes\":\"\",\"parent\":\"TransactionStream\"},{\"kind\":1024,\"name\":\"engine_result_code\",\"url\":\"interfaces/TransactionStream.html#engine_result_code\",\"classes\":\"\",\"parent\":\"TransactionStream\"},{\"kind\":1024,\"name\":\"engine_result_message\",\"url\":\"interfaces/TransactionStream.html#engine_result_message\",\"classes\":\"\",\"parent\":\"TransactionStream\"},{\"kind\":1024,\"name\":\"ledger_current_index\",\"url\":\"interfaces/TransactionStream.html#ledger_current_index\",\"classes\":\"\",\"parent\":\"TransactionStream\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/TransactionStream.html#ledger_hash\",\"classes\":\"\",\"parent\":\"TransactionStream\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/TransactionStream.html#ledger_index\",\"classes\":\"\",\"parent\":\"TransactionStream\"},{\"kind\":1024,\"name\":\"meta\",\"url\":\"interfaces/TransactionStream.html#meta\",\"classes\":\"\",\"parent\":\"TransactionStream\"},{\"kind\":1024,\"name\":\"transaction\",\"url\":\"interfaces/TransactionStream.html#transaction\",\"classes\":\"\",\"parent\":\"TransactionStream\"},{\"kind\":1024,\"name\":\"validated\",\"url\":\"interfaces/TransactionStream.html#validated\",\"classes\":\"\",\"parent\":\"TransactionStream\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/TransactionStream.html#warnings\",\"classes\":\"\",\"parent\":\"TransactionStream\"},{\"kind\":256,\"name\":\"PathFindStream\",\"url\":\"interfaces/PathFindStream.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/PathFindStream.html#type\",\"classes\":\"\",\"parent\":\"PathFindStream\"},{\"kind\":1024,\"name\":\"source_account\",\"url\":\"interfaces/PathFindStream.html#source_account\",\"classes\":\"\",\"parent\":\"PathFindStream\"},{\"kind\":1024,\"name\":\"destination_account\",\"url\":\"interfaces/PathFindStream.html#destination_account\",\"classes\":\"\",\"parent\":\"PathFindStream\"},{\"kind\":1024,\"name\":\"destination_amount\",\"url\":\"interfaces/PathFindStream.html#destination_amount\",\"classes\":\"\",\"parent\":\"PathFindStream\"},{\"kind\":1024,\"name\":\"full_reply\",\"url\":\"interfaces/PathFindStream.html#full_reply\",\"classes\":\"\",\"parent\":\"PathFindStream\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/PathFindStream.html#id\",\"classes\":\"\",\"parent\":\"PathFindStream\"},{\"kind\":1024,\"name\":\"send_max\",\"url\":\"interfaces/PathFindStream.html#send_max\",\"classes\":\"\",\"parent\":\"PathFindStream\"},{\"kind\":1024,\"name\":\"alternatives\",\"url\":\"interfaces/PathFindStream.html#alternatives\",\"classes\":\"\",\"parent\":\"PathFindStream\"},{\"kind\":256,\"name\":\"PeerStatusStream\",\"url\":\"interfaces/PeerStatusStream.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/PeerStatusStream.html#type\",\"classes\":\"\",\"parent\":\"PeerStatusStream\"},{\"kind\":1024,\"name\":\"action\",\"url\":\"interfaces/PeerStatusStream.html#action\",\"classes\":\"\",\"parent\":\"PeerStatusStream\"},{\"kind\":1024,\"name\":\"date\",\"url\":\"interfaces/PeerStatusStream.html#date\",\"classes\":\"\",\"parent\":\"PeerStatusStream\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/PeerStatusStream.html#ledger_hash\",\"classes\":\"\",\"parent\":\"PeerStatusStream\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/PeerStatusStream.html#ledger_index\",\"classes\":\"\",\"parent\":\"PeerStatusStream\"},{\"kind\":1024,\"name\":\"ledger_index_max\",\"url\":\"interfaces/PeerStatusStream.html#ledger_index_max\",\"classes\":\"\",\"parent\":\"PeerStatusStream\"},{\"kind\":1024,\"name\":\"ledger_index_min\",\"url\":\"interfaces/PeerStatusStream.html#ledger_index_min\",\"classes\":\"\",\"parent\":\"PeerStatusStream\"},{\"kind\":256,\"name\":\"OrderBookStream\",\"url\":\"interfaces/OrderBookStream.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/OrderBookStream.html#status\",\"classes\":\"\",\"parent\":\"OrderBookStream\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/OrderBookStream.html#type\",\"classes\":\"\",\"parent\":\"OrderBookStream\"},{\"kind\":1024,\"name\":\"engine_result\",\"url\":\"interfaces/OrderBookStream.html#engine_result\",\"classes\":\"\",\"parent\":\"OrderBookStream\"},{\"kind\":1024,\"name\":\"engine_result_code\",\"url\":\"interfaces/OrderBookStream.html#engine_result_code\",\"classes\":\"\",\"parent\":\"OrderBookStream\"},{\"kind\":1024,\"name\":\"engine_result_message\",\"url\":\"interfaces/OrderBookStream.html#engine_result_message\",\"classes\":\"\",\"parent\":\"OrderBookStream\"},{\"kind\":1024,\"name\":\"ledger_current_index\",\"url\":\"interfaces/OrderBookStream.html#ledger_current_index\",\"classes\":\"\",\"parent\":\"OrderBookStream\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/OrderBookStream.html#ledger_hash\",\"classes\":\"\",\"parent\":\"OrderBookStream\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/OrderBookStream.html#ledger_index\",\"classes\":\"\",\"parent\":\"OrderBookStream\"},{\"kind\":1024,\"name\":\"meta\",\"url\":\"interfaces/OrderBookStream.html#meta\",\"classes\":\"\",\"parent\":\"OrderBookStream\"},{\"kind\":1024,\"name\":\"transaction\",\"url\":\"interfaces/OrderBookStream.html#transaction\",\"classes\":\"\",\"parent\":\"OrderBookStream\"},{\"kind\":1024,\"name\":\"validated\",\"url\":\"interfaces/OrderBookStream.html#validated\",\"classes\":\"\",\"parent\":\"OrderBookStream\"},{\"kind\":256,\"name\":\"ConsensusStream\",\"url\":\"interfaces/ConsensusStream.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/ConsensusStream.html#type\",\"classes\":\"\",\"parent\":\"ConsensusStream\"},{\"kind\":1024,\"name\":\"consensus\",\"url\":\"interfaces/ConsensusStream.html#consensus\",\"classes\":\"\",\"parent\":\"ConsensusStream\"},{\"kind\":256,\"name\":\"UnsubscribeRequest\",\"url\":\"interfaces/UnsubscribeRequest.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/UnsubscribeRequest.html#command\",\"classes\":\"\",\"parent\":\"UnsubscribeRequest\"},{\"kind\":1024,\"name\":\"streams\",\"url\":\"interfaces/UnsubscribeRequest.html#streams\",\"classes\":\"\",\"parent\":\"UnsubscribeRequest\"},{\"kind\":1024,\"name\":\"accounts\",\"url\":\"interfaces/UnsubscribeRequest.html#accounts\",\"classes\":\"\",\"parent\":\"UnsubscribeRequest\"},{\"kind\":1024,\"name\":\"accounts_proposed\",\"url\":\"interfaces/UnsubscribeRequest.html#accounts_proposed\",\"classes\":\"\",\"parent\":\"UnsubscribeRequest\"},{\"kind\":1024,\"name\":\"books\",\"url\":\"interfaces/UnsubscribeRequest.html#books\",\"classes\":\"\",\"parent\":\"UnsubscribeRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/UnsubscribeRequest.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"UnsubscribeRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/UnsubscribeRequest.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"UnsubscribeRequest\"},{\"kind\":256,\"name\":\"UnsubscribeResponse\",\"url\":\"interfaces/UnsubscribeResponse.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/UnsubscribeResponse.html#result\",\"classes\":\"\",\"parent\":\"UnsubscribeResponse\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/UnsubscribeResponse.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"UnsubscribeResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/UnsubscribeResponse.html#status\",\"classes\":\"tsd-is-inherited\",\"parent\":\"UnsubscribeResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/UnsubscribeResponse.html#type\",\"classes\":\"tsd-is-inherited\",\"parent\":\"UnsubscribeResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/UnsubscribeResponse.html#warning\",\"classes\":\"tsd-is-inherited\",\"parent\":\"UnsubscribeResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/UnsubscribeResponse.html#warnings\",\"classes\":\"tsd-is-inherited\",\"parent\":\"UnsubscribeResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/UnsubscribeResponse.html#forwarded\",\"classes\":\"tsd-is-inherited\",\"parent\":\"UnsubscribeResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/UnsubscribeResponse.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"UnsubscribeResponse\"},{\"kind\":256,\"name\":\"UnsubscribeBook\",\"url\":\"interfaces/UnsubscribeBook.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"taker_gets\",\"url\":\"interfaces/UnsubscribeBook.html#taker_gets\",\"classes\":\"\",\"parent\":\"UnsubscribeBook\"},{\"kind\":1024,\"name\":\"taker_pays\",\"url\":\"interfaces/UnsubscribeBook.html#taker_pays\",\"classes\":\"\",\"parent\":\"UnsubscribeBook\"},{\"kind\":1024,\"name\":\"both\",\"url\":\"interfaces/UnsubscribeBook.html#both\",\"classes\":\"\",\"parent\":\"UnsubscribeBook\"},{\"kind\":256,\"name\":\"FeeRequest\",\"url\":\"interfaces/FeeRequest.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/FeeRequest.html#command\",\"classes\":\"\",\"parent\":\"FeeRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/FeeRequest.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"FeeRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/FeeRequest.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"FeeRequest\"},{\"kind\":256,\"name\":\"FeeResponse\",\"url\":\"interfaces/FeeResponse.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/FeeResponse.html#result\",\"classes\":\"\",\"parent\":\"FeeResponse\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/FeeResponse.html#result.__type\",\"classes\":\"\",\"parent\":\"FeeResponse.result\"},{\"kind\":1024,\"name\":\"current_ledger_size\",\"url\":\"interfaces/FeeResponse.html#result.__type.current_ledger_size\",\"classes\":\"\",\"parent\":\"FeeResponse.result.__type\"},{\"kind\":1024,\"name\":\"current_queue_size\",\"url\":\"interfaces/FeeResponse.html#result.__type.current_queue_size\",\"classes\":\"\",\"parent\":\"FeeResponse.result.__type\"},{\"kind\":1024,\"name\":\"drops\",\"url\":\"interfaces/FeeResponse.html#result.__type.drops\",\"classes\":\"\",\"parent\":\"FeeResponse.result.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/FeeResponse.html#result.__type.drops.__type-1\",\"classes\":\"\",\"parent\":\"FeeResponse.result.__type.drops\"},{\"kind\":1024,\"name\":\"base_fee\",\"url\":\"interfaces/FeeResponse.html#result.__type.drops.__type-1.base_fee\",\"classes\":\"\",\"parent\":\"FeeResponse.result.__type.drops.__type\"},{\"kind\":1024,\"name\":\"median_fee\",\"url\":\"interfaces/FeeResponse.html#result.__type.drops.__type-1.median_fee\",\"classes\":\"\",\"parent\":\"FeeResponse.result.__type.drops.__type\"},{\"kind\":1024,\"name\":\"minimum_fee\",\"url\":\"interfaces/FeeResponse.html#result.__type.drops.__type-1.minimum_fee\",\"classes\":\"\",\"parent\":\"FeeResponse.result.__type.drops.__type\"},{\"kind\":1024,\"name\":\"open_ledger_fee\",\"url\":\"interfaces/FeeResponse.html#result.__type.drops.__type-1.open_ledger_fee\",\"classes\":\"\",\"parent\":\"FeeResponse.result.__type.drops.__type\"},{\"kind\":1024,\"name\":\"expected_ledger_size\",\"url\":\"interfaces/FeeResponse.html#result.__type.expected_ledger_size\",\"classes\":\"\",\"parent\":\"FeeResponse.result.__type\"},{\"kind\":1024,\"name\":\"ledger_current_index\",\"url\":\"interfaces/FeeResponse.html#result.__type.ledger_current_index\",\"classes\":\"\",\"parent\":\"FeeResponse.result.__type\"},{\"kind\":1024,\"name\":\"levels\",\"url\":\"interfaces/FeeResponse.html#result.__type.levels\",\"classes\":\"\",\"parent\":\"FeeResponse.result.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/FeeResponse.html#result.__type.levels.__type-2\",\"classes\":\"\",\"parent\":\"FeeResponse.result.__type.levels\"},{\"kind\":1024,\"name\":\"median_level\",\"url\":\"interfaces/FeeResponse.html#result.__type.levels.__type-2.median_level\",\"classes\":\"\",\"parent\":\"FeeResponse.result.__type.levels.__type\"},{\"kind\":1024,\"name\":\"minimum_level\",\"url\":\"interfaces/FeeResponse.html#result.__type.levels.__type-2.minimum_level\",\"classes\":\"\",\"parent\":\"FeeResponse.result.__type.levels.__type\"},{\"kind\":1024,\"name\":\"open_ledger_level\",\"url\":\"interfaces/FeeResponse.html#result.__type.levels.__type-2.open_ledger_level\",\"classes\":\"\",\"parent\":\"FeeResponse.result.__type.levels.__type\"},{\"kind\":1024,\"name\":\"reference_level\",\"url\":\"interfaces/FeeResponse.html#result.__type.levels.__type-2.reference_level\",\"classes\":\"\",\"parent\":\"FeeResponse.result.__type.levels.__type\"},{\"kind\":1024,\"name\":\"max_queue_size\",\"url\":\"interfaces/FeeResponse.html#result.__type.max_queue_size\",\"classes\":\"\",\"parent\":\"FeeResponse.result.__type\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/FeeResponse.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"FeeResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/FeeResponse.html#status\",\"classes\":\"tsd-is-inherited\",\"parent\":\"FeeResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/FeeResponse.html#type\",\"classes\":\"tsd-is-inherited\",\"parent\":\"FeeResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/FeeResponse.html#warning\",\"classes\":\"tsd-is-inherited\",\"parent\":\"FeeResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/FeeResponse.html#warnings\",\"classes\":\"tsd-is-inherited\",\"parent\":\"FeeResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/FeeResponse.html#forwarded\",\"classes\":\"tsd-is-inherited\",\"parent\":\"FeeResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/FeeResponse.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"FeeResponse\"},{\"kind\":256,\"name\":\"ManifestRequest\",\"url\":\"interfaces/ManifestRequest.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/ManifestRequest.html#command\",\"classes\":\"\",\"parent\":\"ManifestRequest\"},{\"kind\":1024,\"name\":\"public_key\",\"url\":\"interfaces/ManifestRequest.html#public_key\",\"classes\":\"\",\"parent\":\"ManifestRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/ManifestRequest.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"ManifestRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/ManifestRequest.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"ManifestRequest\"},{\"kind\":256,\"name\":\"ManifestResponse\",\"url\":\"interfaces/ManifestResponse.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/ManifestResponse.html#result\",\"classes\":\"\",\"parent\":\"ManifestResponse\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/ManifestResponse.html#result.__type\",\"classes\":\"\",\"parent\":\"ManifestResponse.result\"},{\"kind\":1024,\"name\":\"details\",\"url\":\"interfaces/ManifestResponse.html#result.__type.details\",\"classes\":\"\",\"parent\":\"ManifestResponse.result.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/ManifestResponse.html#result.__type.details.__type-1\",\"classes\":\"\",\"parent\":\"ManifestResponse.result.__type.details\"},{\"kind\":1024,\"name\":\"domain\",\"url\":\"interfaces/ManifestResponse.html#result.__type.details.__type-1.domain\",\"classes\":\"\",\"parent\":\"ManifestResponse.result.__type.details.__type\"},{\"kind\":1024,\"name\":\"ephemeral_key\",\"url\":\"interfaces/ManifestResponse.html#result.__type.details.__type-1.ephemeral_key\",\"classes\":\"\",\"parent\":\"ManifestResponse.result.__type.details.__type\"},{\"kind\":1024,\"name\":\"master_key\",\"url\":\"interfaces/ManifestResponse.html#result.__type.details.__type-1.master_key\",\"classes\":\"\",\"parent\":\"ManifestResponse.result.__type.details.__type\"},{\"kind\":1024,\"name\":\"seq\",\"url\":\"interfaces/ManifestResponse.html#result.__type.details.__type-1.seq\",\"classes\":\"\",\"parent\":\"ManifestResponse.result.__type.details.__type\"},{\"kind\":1024,\"name\":\"manifest\",\"url\":\"interfaces/ManifestResponse.html#result.__type.manifest\",\"classes\":\"\",\"parent\":\"ManifestResponse.result.__type\"},{\"kind\":1024,\"name\":\"requested\",\"url\":\"interfaces/ManifestResponse.html#result.__type.requested\",\"classes\":\"\",\"parent\":\"ManifestResponse.result.__type\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/ManifestResponse.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"ManifestResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/ManifestResponse.html#status\",\"classes\":\"tsd-is-inherited\",\"parent\":\"ManifestResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/ManifestResponse.html#type\",\"classes\":\"tsd-is-inherited\",\"parent\":\"ManifestResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/ManifestResponse.html#warning\",\"classes\":\"tsd-is-inherited\",\"parent\":\"ManifestResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/ManifestResponse.html#warnings\",\"classes\":\"tsd-is-inherited\",\"parent\":\"ManifestResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/ManifestResponse.html#forwarded\",\"classes\":\"tsd-is-inherited\",\"parent\":\"ManifestResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/ManifestResponse.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"ManifestResponse\"},{\"kind\":256,\"name\":\"ServerDefinitionsRequest\",\"url\":\"interfaces/ServerDefinitionsRequest.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/ServerDefinitionsRequest.html#command\",\"classes\":\"\",\"parent\":\"ServerDefinitionsRequest\"},{\"kind\":1024,\"name\":\"hash\",\"url\":\"interfaces/ServerDefinitionsRequest.html#hash\",\"classes\":\"\",\"parent\":\"ServerDefinitionsRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/ServerDefinitionsRequest.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"ServerDefinitionsRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/ServerDefinitionsRequest.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"ServerDefinitionsRequest\"},{\"kind\":256,\"name\":\"ServerDefinitionsResponse\",\"url\":\"interfaces/ServerDefinitionsResponse.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/ServerDefinitionsResponse.html#result\",\"classes\":\"\",\"parent\":\"ServerDefinitionsResponse\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/ServerDefinitionsResponse.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"ServerDefinitionsResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/ServerDefinitionsResponse.html#status\",\"classes\":\"tsd-is-inherited\",\"parent\":\"ServerDefinitionsResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/ServerDefinitionsResponse.html#type\",\"classes\":\"tsd-is-inherited\",\"parent\":\"ServerDefinitionsResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/ServerDefinitionsResponse.html#warning\",\"classes\":\"tsd-is-inherited\",\"parent\":\"ServerDefinitionsResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/ServerDefinitionsResponse.html#warnings\",\"classes\":\"tsd-is-inherited\",\"parent\":\"ServerDefinitionsResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/ServerDefinitionsResponse.html#forwarded\",\"classes\":\"tsd-is-inherited\",\"parent\":\"ServerDefinitionsResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/ServerDefinitionsResponse.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"ServerDefinitionsResponse\"},{\"kind\":256,\"name\":\"ServerInfoRequest\",\"url\":\"interfaces/ServerInfoRequest.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/ServerInfoRequest.html#command\",\"classes\":\"\",\"parent\":\"ServerInfoRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/ServerInfoRequest.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"ServerInfoRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/ServerInfoRequest.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"ServerInfoRequest\"},{\"kind\":256,\"name\":\"ServerInfoResponse\",\"url\":\"interfaces/ServerInfoResponse.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/ServerInfoResponse.html#result\",\"classes\":\"\",\"parent\":\"ServerInfoResponse\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type\",\"classes\":\"\",\"parent\":\"ServerInfoResponse.result\"},{\"kind\":1024,\"name\":\"info\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info\",\"classes\":\"\",\"parent\":\"ServerInfoResponse.result.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1\",\"classes\":\"\",\"parent\":\"ServerInfoResponse.result.__type.info\"},{\"kind\":1024,\"name\":\"amendment_blocked\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.amendment_blocked\",\"classes\":\"\",\"parent\":\"ServerInfoResponse.result.__type.info.__type\"},{\"kind\":1024,\"name\":\"build_version\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.build_version\",\"classes\":\"\",\"parent\":\"ServerInfoResponse.result.__type.info.__type\"},{\"kind\":1024,\"name\":\"closed_ledger\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.closed_ledger\",\"classes\":\"\",\"parent\":\"ServerInfoResponse.result.__type.info.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.closed_ledger.__type-2\",\"classes\":\"\",\"parent\":\"ServerInfoResponse.result.__type.info.__type.closed_ledger\"},{\"kind\":1024,\"name\":\"age\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.closed_ledger.__type-2.age\",\"classes\":\"\",\"parent\":\"ServerInfoResponse.result.__type.info.__type.closed_ledger.__type\"},{\"kind\":1024,\"name\":\"base_fee_xrp\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.closed_ledger.__type-2.base_fee_xrp\",\"classes\":\"\",\"parent\":\"ServerInfoResponse.result.__type.info.__type.closed_ledger.__type\"},{\"kind\":1024,\"name\":\"hash\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.closed_ledger.__type-2.hash\",\"classes\":\"\",\"parent\":\"ServerInfoResponse.result.__type.info.__type.closed_ledger.__type\"},{\"kind\":1024,\"name\":\"reserve_base_xrp\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.closed_ledger.__type-2.reserve_base_xrp\",\"classes\":\"\",\"parent\":\"ServerInfoResponse.result.__type.info.__type.closed_ledger.__type\"},{\"kind\":1024,\"name\":\"reserve_inc_xrp\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.closed_ledger.__type-2.reserve_inc_xrp\",\"classes\":\"\",\"parent\":\"ServerInfoResponse.result.__type.info.__type.closed_ledger.__type\"},{\"kind\":1024,\"name\":\"seq\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.closed_ledger.__type-2.seq\",\"classes\":\"\",\"parent\":\"ServerInfoResponse.result.__type.info.__type.closed_ledger.__type\"},{\"kind\":1024,\"name\":\"complete_ledgers\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.complete_ledgers\",\"classes\":\"\",\"parent\":\"ServerInfoResponse.result.__type.info.__type\"},{\"kind\":1024,\"name\":\"hostid\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.hostid\",\"classes\":\"\",\"parent\":\"ServerInfoResponse.result.__type.info.__type\"},{\"kind\":1024,\"name\":\"io_latency_ms\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.io_latency_ms\",\"classes\":\"\",\"parent\":\"ServerInfoResponse.result.__type.info.__type\"},{\"kind\":1024,\"name\":\"jq_trans_overflow\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.jq_trans_overflow\",\"classes\":\"\",\"parent\":\"ServerInfoResponse.result.__type.info.__type\"},{\"kind\":1024,\"name\":\"last_close\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.last_close\",\"classes\":\"\",\"parent\":\"ServerInfoResponse.result.__type.info.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.last_close.__type-3\",\"classes\":\"\",\"parent\":\"ServerInfoResponse.result.__type.info.__type.last_close\"},{\"kind\":1024,\"name\":\"converge_time_s\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.last_close.__type-3.converge_time_s\",\"classes\":\"\",\"parent\":\"ServerInfoResponse.result.__type.info.__type.last_close.__type\"},{\"kind\":1024,\"name\":\"proposers\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.last_close.__type-3.proposers\",\"classes\":\"\",\"parent\":\"ServerInfoResponse.result.__type.info.__type.last_close.__type\"},{\"kind\":1024,\"name\":\"load\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.load\",\"classes\":\"\",\"parent\":\"ServerInfoResponse.result.__type.info.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.load.__type-4\",\"classes\":\"\",\"parent\":\"ServerInfoResponse.result.__type.info.__type.load\"},{\"kind\":1024,\"name\":\"job_types\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.load.__type-4.job_types\",\"classes\":\"\",\"parent\":\"ServerInfoResponse.result.__type.info.__type.load.__type\"},{\"kind\":1024,\"name\":\"threads\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.load.__type-4.threads\",\"classes\":\"\",\"parent\":\"ServerInfoResponse.result.__type.info.__type.load.__type\"},{\"kind\":1024,\"name\":\"load_factor\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.load_factor\",\"classes\":\"\",\"parent\":\"ServerInfoResponse.result.__type.info.__type\"},{\"kind\":1024,\"name\":\"network_id\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.network_id\",\"classes\":\"\",\"parent\":\"ServerInfoResponse.result.__type.info.__type\"},{\"kind\":1024,\"name\":\"load_factor_local\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.load_factor_local\",\"classes\":\"\",\"parent\":\"ServerInfoResponse.result.__type.info.__type\"},{\"kind\":1024,\"name\":\"load_factor_net\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.load_factor_net\",\"classes\":\"\",\"parent\":\"ServerInfoResponse.result.__type.info.__type\"},{\"kind\":1024,\"name\":\"load_factor_cluster\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.load_factor_cluster\",\"classes\":\"\",\"parent\":\"ServerInfoResponse.result.__type.info.__type\"},{\"kind\":1024,\"name\":\"load_factor_fee_escalation\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.load_factor_fee_escalation\",\"classes\":\"\",\"parent\":\"ServerInfoResponse.result.__type.info.__type\"},{\"kind\":1024,\"name\":\"load_factor_fee_queue\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.load_factor_fee_queue\",\"classes\":\"\",\"parent\":\"ServerInfoResponse.result.__type.info.__type\"},{\"kind\":1024,\"name\":\"load_factor_server\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.load_factor_server\",\"classes\":\"\",\"parent\":\"ServerInfoResponse.result.__type.info.__type\"},{\"kind\":1024,\"name\":\"peer_disconnects\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.peer_disconnects\",\"classes\":\"\",\"parent\":\"ServerInfoResponse.result.__type.info.__type\"},{\"kind\":1024,\"name\":\"peer_disconnects_resources\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.peer_disconnects_resources\",\"classes\":\"\",\"parent\":\"ServerInfoResponse.result.__type.info.__type\"},{\"kind\":1024,\"name\":\"network_ledger\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.network_ledger\",\"classes\":\"\",\"parent\":\"ServerInfoResponse.result.__type.info.__type\"},{\"kind\":1024,\"name\":\"peers\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.peers\",\"classes\":\"\",\"parent\":\"ServerInfoResponse.result.__type.info.__type\"},{\"kind\":1024,\"name\":\"ports\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.ports\",\"classes\":\"\",\"parent\":\"ServerInfoResponse.result.__type.info.__type\"},{\"kind\":1024,\"name\":\"pubkey_node\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.pubkey_node\",\"classes\":\"\",\"parent\":\"ServerInfoResponse.result.__type.info.__type\"},{\"kind\":1024,\"name\":\"pubkey_validator\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.pubkey_validator\",\"classes\":\"\",\"parent\":\"ServerInfoResponse.result.__type.info.__type\"},{\"kind\":1024,\"name\":\"server_state\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.server_state\",\"classes\":\"\",\"parent\":\"ServerInfoResponse.result.__type.info.__type\"},{\"kind\":1024,\"name\":\"server_state_duration_us\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.server_state_duration_us\",\"classes\":\"\",\"parent\":\"ServerInfoResponse.result.__type.info.__type\"},{\"kind\":1024,\"name\":\"state_accounting\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.state_accounting\",\"classes\":\"\",\"parent\":\"ServerInfoResponse.result.__type.info.__type\"},{\"kind\":1024,\"name\":\"time\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.time\",\"classes\":\"\",\"parent\":\"ServerInfoResponse.result.__type.info.__type\"},{\"kind\":1024,\"name\":\"uptime\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.uptime\",\"classes\":\"\",\"parent\":\"ServerInfoResponse.result.__type.info.__type\"},{\"kind\":1024,\"name\":\"validated_ledger\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.validated_ledger\",\"classes\":\"\",\"parent\":\"ServerInfoResponse.result.__type.info.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.validated_ledger.__type-5\",\"classes\":\"\",\"parent\":\"ServerInfoResponse.result.__type.info.__type.validated_ledger\"},{\"kind\":1024,\"name\":\"age\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.validated_ledger.__type-5.age-1\",\"classes\":\"\",\"parent\":\"ServerInfoResponse.result.__type.info.__type.validated_ledger.__type\"},{\"kind\":1024,\"name\":\"base_fee_xrp\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.validated_ledger.__type-5.base_fee_xrp-1\",\"classes\":\"\",\"parent\":\"ServerInfoResponse.result.__type.info.__type.validated_ledger.__type\"},{\"kind\":1024,\"name\":\"hash\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.validated_ledger.__type-5.hash-1\",\"classes\":\"\",\"parent\":\"ServerInfoResponse.result.__type.info.__type.validated_ledger.__type\"},{\"kind\":1024,\"name\":\"reserve_base_xrp\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.validated_ledger.__type-5.reserve_base_xrp-1\",\"classes\":\"\",\"parent\":\"ServerInfoResponse.result.__type.info.__type.validated_ledger.__type\"},{\"kind\":1024,\"name\":\"reserve_inc_xrp\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.validated_ledger.__type-5.reserve_inc_xrp-1\",\"classes\":\"\",\"parent\":\"ServerInfoResponse.result.__type.info.__type.validated_ledger.__type\"},{\"kind\":1024,\"name\":\"seq\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.validated_ledger.__type-5.seq-1\",\"classes\":\"\",\"parent\":\"ServerInfoResponse.result.__type.info.__type.validated_ledger.__type\"},{\"kind\":1024,\"name\":\"validation_quorum\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.validation_quorum\",\"classes\":\"\",\"parent\":\"ServerInfoResponse.result.__type.info.__type\"},{\"kind\":1024,\"name\":\"validator_list_expires\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.validator_list_expires\",\"classes\":\"\",\"parent\":\"ServerInfoResponse.result.__type.info.__type\"},{\"kind\":1024,\"name\":\"validator_list\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.validator_list\",\"classes\":\"\",\"parent\":\"ServerInfoResponse.result.__type.info.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.validator_list.__type-6\",\"classes\":\"\",\"parent\":\"ServerInfoResponse.result.__type.info.__type.validator_list\"},{\"kind\":1024,\"name\":\"count\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.validator_list.__type-6.count\",\"classes\":\"\",\"parent\":\"ServerInfoResponse.result.__type.info.__type.validator_list.__type\"},{\"kind\":1024,\"name\":\"expiration\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.validator_list.__type-6.expiration\",\"classes\":\"\",\"parent\":\"ServerInfoResponse.result.__type.info.__type.validator_list.__type\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/ServerInfoResponse.html#result.__type.info.__type-1.validator_list.__type-6.status\",\"classes\":\"\",\"parent\":\"ServerInfoResponse.result.__type.info.__type.validator_list.__type\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/ServerInfoResponse.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"ServerInfoResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/ServerInfoResponse.html#status-1\",\"classes\":\"tsd-is-inherited\",\"parent\":\"ServerInfoResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/ServerInfoResponse.html#type\",\"classes\":\"tsd-is-inherited\",\"parent\":\"ServerInfoResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/ServerInfoResponse.html#warning\",\"classes\":\"tsd-is-inherited\",\"parent\":\"ServerInfoResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/ServerInfoResponse.html#warnings\",\"classes\":\"tsd-is-inherited\",\"parent\":\"ServerInfoResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/ServerInfoResponse.html#forwarded\",\"classes\":\"tsd-is-inherited\",\"parent\":\"ServerInfoResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/ServerInfoResponse.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"ServerInfoResponse\"},{\"kind\":256,\"name\":\"ServerStateRequest\",\"url\":\"interfaces/ServerStateRequest.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/ServerStateRequest.html#command\",\"classes\":\"\",\"parent\":\"ServerStateRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/ServerStateRequest.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"ServerStateRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/ServerStateRequest.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"ServerStateRequest\"},{\"kind\":256,\"name\":\"ServerStateResponse\",\"url\":\"interfaces/ServerStateResponse.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/ServerStateResponse.html#result\",\"classes\":\"\",\"parent\":\"ServerStateResponse\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/ServerStateResponse.html#result.__type\",\"classes\":\"\",\"parent\":\"ServerStateResponse.result\"},{\"kind\":1024,\"name\":\"state\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state\",\"classes\":\"\",\"parent\":\"ServerStateResponse.result.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1\",\"classes\":\"\",\"parent\":\"ServerStateResponse.result.__type.state\"},{\"kind\":1024,\"name\":\"amendment_blocked\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.amendment_blocked\",\"classes\":\"\",\"parent\":\"ServerStateResponse.result.__type.state.__type\"},{\"kind\":1024,\"name\":\"build_version\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.build_version\",\"classes\":\"\",\"parent\":\"ServerStateResponse.result.__type.state.__type\"},{\"kind\":1024,\"name\":\"complete_ledgers\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.complete_ledgers\",\"classes\":\"\",\"parent\":\"ServerStateResponse.result.__type.state.__type\"},{\"kind\":1024,\"name\":\"closed_ledger\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.closed_ledger\",\"classes\":\"\",\"parent\":\"ServerStateResponse.result.__type.state.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.closed_ledger.__type-2\",\"classes\":\"\",\"parent\":\"ServerStateResponse.result.__type.state.__type.closed_ledger\"},{\"kind\":1024,\"name\":\"age\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.closed_ledger.__type-2.age\",\"classes\":\"\",\"parent\":\"ServerStateResponse.result.__type.state.__type.closed_ledger.__type\"},{\"kind\":1024,\"name\":\"base_fee\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.closed_ledger.__type-2.base_fee\",\"classes\":\"\",\"parent\":\"ServerStateResponse.result.__type.state.__type.closed_ledger.__type\"},{\"kind\":1024,\"name\":\"hash\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.closed_ledger.__type-2.hash\",\"classes\":\"\",\"parent\":\"ServerStateResponse.result.__type.state.__type.closed_ledger.__type\"},{\"kind\":1024,\"name\":\"reserve_base\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.closed_ledger.__type-2.reserve_base\",\"classes\":\"\",\"parent\":\"ServerStateResponse.result.__type.state.__type.closed_ledger.__type\"},{\"kind\":1024,\"name\":\"reserve_inc\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.closed_ledger.__type-2.reserve_inc\",\"classes\":\"\",\"parent\":\"ServerStateResponse.result.__type.state.__type.closed_ledger.__type\"},{\"kind\":1024,\"name\":\"seq\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.closed_ledger.__type-2.seq\",\"classes\":\"\",\"parent\":\"ServerStateResponse.result.__type.state.__type.closed_ledger.__type\"},{\"kind\":1024,\"name\":\"io_latency_ms\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.io_latency_ms\",\"classes\":\"\",\"parent\":\"ServerStateResponse.result.__type.state.__type\"},{\"kind\":1024,\"name\":\"jq_trans_overflow\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.jq_trans_overflow\",\"classes\":\"\",\"parent\":\"ServerStateResponse.result.__type.state.__type\"},{\"kind\":1024,\"name\":\"last_close\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.last_close\",\"classes\":\"\",\"parent\":\"ServerStateResponse.result.__type.state.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.last_close.__type-3\",\"classes\":\"\",\"parent\":\"ServerStateResponse.result.__type.state.__type.last_close\"},{\"kind\":1024,\"name\":\"converge_time\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.last_close.__type-3.converge_time\",\"classes\":\"\",\"parent\":\"ServerStateResponse.result.__type.state.__type.last_close.__type\"},{\"kind\":1024,\"name\":\"proposers\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.last_close.__type-3.proposers\",\"classes\":\"\",\"parent\":\"ServerStateResponse.result.__type.state.__type.last_close.__type\"},{\"kind\":1024,\"name\":\"load\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.load\",\"classes\":\"\",\"parent\":\"ServerStateResponse.result.__type.state.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.load.__type-4\",\"classes\":\"\",\"parent\":\"ServerStateResponse.result.__type.state.__type.load\"},{\"kind\":1024,\"name\":\"job_types\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.load.__type-4.job_types\",\"classes\":\"\",\"parent\":\"ServerStateResponse.result.__type.state.__type.load.__type\"},{\"kind\":1024,\"name\":\"threads\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.load.__type-4.threads\",\"classes\":\"\",\"parent\":\"ServerStateResponse.result.__type.state.__type.load.__type\"},{\"kind\":1024,\"name\":\"load_base\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.load_base\",\"classes\":\"\",\"parent\":\"ServerStateResponse.result.__type.state.__type\"},{\"kind\":1024,\"name\":\"load_factor\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.load_factor\",\"classes\":\"\",\"parent\":\"ServerStateResponse.result.__type.state.__type\"},{\"kind\":1024,\"name\":\"load_factor_fee_escalation\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.load_factor_fee_escalation\",\"classes\":\"\",\"parent\":\"ServerStateResponse.result.__type.state.__type\"},{\"kind\":1024,\"name\":\"load_factor_fee_queue\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.load_factor_fee_queue\",\"classes\":\"\",\"parent\":\"ServerStateResponse.result.__type.state.__type\"},{\"kind\":1024,\"name\":\"load_factor_fee_reference\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.load_factor_fee_reference\",\"classes\":\"\",\"parent\":\"ServerStateResponse.result.__type.state.__type\"},{\"kind\":1024,\"name\":\"load_factor_server\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.load_factor_server\",\"classes\":\"\",\"parent\":\"ServerStateResponse.result.__type.state.__type\"},{\"kind\":1024,\"name\":\"peer_disconnects\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.peer_disconnects\",\"classes\":\"\",\"parent\":\"ServerStateResponse.result.__type.state.__type\"},{\"kind\":1024,\"name\":\"peer_disconnects_resources\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.peer_disconnects_resources\",\"classes\":\"\",\"parent\":\"ServerStateResponse.result.__type.state.__type\"},{\"kind\":1024,\"name\":\"peers\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.peers\",\"classes\":\"\",\"parent\":\"ServerStateResponse.result.__type.state.__type\"},{\"kind\":1024,\"name\":\"pubkey_node\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.pubkey_node\",\"classes\":\"\",\"parent\":\"ServerStateResponse.result.__type.state.__type\"},{\"kind\":1024,\"name\":\"pubkey_validator\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.pubkey_validator\",\"classes\":\"\",\"parent\":\"ServerStateResponse.result.__type.state.__type\"},{\"kind\":1024,\"name\":\"server_state\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.server_state\",\"classes\":\"\",\"parent\":\"ServerStateResponse.result.__type.state.__type\"},{\"kind\":1024,\"name\":\"server_state_duration_us\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.server_state_duration_us\",\"classes\":\"\",\"parent\":\"ServerStateResponse.result.__type.state.__type\"},{\"kind\":1024,\"name\":\"state_accounting\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.state_accounting\",\"classes\":\"\",\"parent\":\"ServerStateResponse.result.__type.state.__type\"},{\"kind\":1024,\"name\":\"time\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.time\",\"classes\":\"\",\"parent\":\"ServerStateResponse.result.__type.state.__type\"},{\"kind\":1024,\"name\":\"uptime\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.uptime\",\"classes\":\"\",\"parent\":\"ServerStateResponse.result.__type.state.__type\"},{\"kind\":1024,\"name\":\"validated_ledger\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.validated_ledger\",\"classes\":\"\",\"parent\":\"ServerStateResponse.result.__type.state.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.validated_ledger.__type-5\",\"classes\":\"\",\"parent\":\"ServerStateResponse.result.__type.state.__type.validated_ledger\"},{\"kind\":1024,\"name\":\"age\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.validated_ledger.__type-5.age-1\",\"classes\":\"\",\"parent\":\"ServerStateResponse.result.__type.state.__type.validated_ledger.__type\"},{\"kind\":1024,\"name\":\"base_fee\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.validated_ledger.__type-5.base_fee-1\",\"classes\":\"\",\"parent\":\"ServerStateResponse.result.__type.state.__type.validated_ledger.__type\"},{\"kind\":1024,\"name\":\"close_time\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.validated_ledger.__type-5.close_time\",\"classes\":\"\",\"parent\":\"ServerStateResponse.result.__type.state.__type.validated_ledger.__type\"},{\"kind\":1024,\"name\":\"hash\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.validated_ledger.__type-5.hash-1\",\"classes\":\"\",\"parent\":\"ServerStateResponse.result.__type.state.__type.validated_ledger.__type\"},{\"kind\":1024,\"name\":\"reserve_base\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.validated_ledger.__type-5.reserve_base-1\",\"classes\":\"\",\"parent\":\"ServerStateResponse.result.__type.state.__type.validated_ledger.__type\"},{\"kind\":1024,\"name\":\"reserve_inc\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.validated_ledger.__type-5.reserve_inc-1\",\"classes\":\"\",\"parent\":\"ServerStateResponse.result.__type.state.__type.validated_ledger.__type\"},{\"kind\":1024,\"name\":\"seq\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.validated_ledger.__type-5.seq-1\",\"classes\":\"\",\"parent\":\"ServerStateResponse.result.__type.state.__type.validated_ledger.__type\"},{\"kind\":1024,\"name\":\"validation_quorum\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.validation_quorum\",\"classes\":\"\",\"parent\":\"ServerStateResponse.result.__type.state.__type\"},{\"kind\":1024,\"name\":\"validator_list_expires\",\"url\":\"interfaces/ServerStateResponse.html#result.__type.state.__type-1.validator_list_expires\",\"classes\":\"\",\"parent\":\"ServerStateResponse.result.__type.state.__type\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/ServerStateResponse.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"ServerStateResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/ServerStateResponse.html#status\",\"classes\":\"tsd-is-inherited\",\"parent\":\"ServerStateResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/ServerStateResponse.html#type\",\"classes\":\"tsd-is-inherited\",\"parent\":\"ServerStateResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/ServerStateResponse.html#warning\",\"classes\":\"tsd-is-inherited\",\"parent\":\"ServerStateResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/ServerStateResponse.html#warnings\",\"classes\":\"tsd-is-inherited\",\"parent\":\"ServerStateResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/ServerStateResponse.html#forwarded\",\"classes\":\"tsd-is-inherited\",\"parent\":\"ServerStateResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/ServerStateResponse.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"ServerStateResponse\"},{\"kind\":256,\"name\":\"JobType\",\"url\":\"interfaces/JobType.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"job_type\",\"url\":\"interfaces/JobType.html#job_type\",\"classes\":\"\",\"parent\":\"JobType\"},{\"kind\":1024,\"name\":\"per_second\",\"url\":\"interfaces/JobType.html#per_second\",\"classes\":\"\",\"parent\":\"JobType\"},{\"kind\":1024,\"name\":\"peak_time\",\"url\":\"interfaces/JobType.html#peak_time\",\"classes\":\"\",\"parent\":\"JobType\"},{\"kind\":1024,\"name\":\"avg_time\",\"url\":\"interfaces/JobType.html#avg_time\",\"classes\":\"\",\"parent\":\"JobType\"},{\"kind\":1024,\"name\":\"in_progress\",\"url\":\"interfaces/JobType.html#in_progress\",\"classes\":\"\",\"parent\":\"JobType\"},{\"kind\":2097152,\"name\":\"ServerState\",\"url\":\"types/ServerState.html\",\"classes\":\"\"},{\"kind\":2097152,\"name\":\"StateAccountingFinal\",\"url\":\"types/StateAccountingFinal.html\",\"classes\":\"\"},{\"kind\":256,\"name\":\"StateAccounting\",\"url\":\"interfaces/StateAccounting.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"duration_us\",\"url\":\"interfaces/StateAccounting.html#duration_us\",\"classes\":\"\",\"parent\":\"StateAccounting\"},{\"kind\":1024,\"name\":\"transitions\",\"url\":\"interfaces/StateAccounting.html#transitions\",\"classes\":\"\",\"parent\":\"StateAccounting\"},{\"kind\":256,\"name\":\"PingRequest\",\"url\":\"interfaces/PingRequest.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/PingRequest.html#command\",\"classes\":\"\",\"parent\":\"PingRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/PingRequest.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"PingRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/PingRequest.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"PingRequest\"},{\"kind\":256,\"name\":\"PingResponse\",\"url\":\"interfaces/PingResponse.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/PingResponse.html#result\",\"classes\":\"\",\"parent\":\"PingResponse\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/PingResponse.html#result.__type\",\"classes\":\"\",\"parent\":\"PingResponse.result\"},{\"kind\":1024,\"name\":\"role\",\"url\":\"interfaces/PingResponse.html#result.__type.role\",\"classes\":\"\",\"parent\":\"PingResponse.result.__type\"},{\"kind\":1024,\"name\":\"unlimited\",\"url\":\"interfaces/PingResponse.html#result.__type.unlimited\",\"classes\":\"\",\"parent\":\"PingResponse.result.__type\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/PingResponse.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"PingResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/PingResponse.html#status\",\"classes\":\"tsd-is-inherited\",\"parent\":\"PingResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/PingResponse.html#type\",\"classes\":\"tsd-is-inherited\",\"parent\":\"PingResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/PingResponse.html#warning\",\"classes\":\"tsd-is-inherited\",\"parent\":\"PingResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/PingResponse.html#warnings\",\"classes\":\"tsd-is-inherited\",\"parent\":\"PingResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/PingResponse.html#forwarded\",\"classes\":\"tsd-is-inherited\",\"parent\":\"PingResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/PingResponse.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"PingResponse\"},{\"kind\":256,\"name\":\"RandomRequest\",\"url\":\"interfaces/RandomRequest.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/RandomRequest.html#command\",\"classes\":\"\",\"parent\":\"RandomRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/RandomRequest.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"RandomRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/RandomRequest.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"RandomRequest\"},{\"kind\":256,\"name\":\"RandomResponse\",\"url\":\"interfaces/RandomResponse.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/RandomResponse.html#result\",\"classes\":\"\",\"parent\":\"RandomResponse\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/RandomResponse.html#result.__type\",\"classes\":\"\",\"parent\":\"RandomResponse.result\"},{\"kind\":1024,\"name\":\"random\",\"url\":\"interfaces/RandomResponse.html#result.__type.random\",\"classes\":\"\",\"parent\":\"RandomResponse.result.__type\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/RandomResponse.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"RandomResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/RandomResponse.html#status\",\"classes\":\"tsd-is-inherited\",\"parent\":\"RandomResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/RandomResponse.html#type\",\"classes\":\"tsd-is-inherited\",\"parent\":\"RandomResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/RandomResponse.html#warning\",\"classes\":\"tsd-is-inherited\",\"parent\":\"RandomResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/RandomResponse.html#warnings\",\"classes\":\"tsd-is-inherited\",\"parent\":\"RandomResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/RandomResponse.html#forwarded\",\"classes\":\"tsd-is-inherited\",\"parent\":\"RandomResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/RandomResponse.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"RandomResponse\"},{\"kind\":256,\"name\":\"ErrorResponse\",\"url\":\"interfaces/ErrorResponse.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/ErrorResponse.html#id\",\"classes\":\"\",\"parent\":\"ErrorResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/ErrorResponse.html#status\",\"classes\":\"\",\"parent\":\"ErrorResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/ErrorResponse.html#type\",\"classes\":\"\",\"parent\":\"ErrorResponse\"},{\"kind\":1024,\"name\":\"error\",\"url\":\"interfaces/ErrorResponse.html#error\",\"classes\":\"\",\"parent\":\"ErrorResponse\"},{\"kind\":1024,\"name\":\"error_code\",\"url\":\"interfaces/ErrorResponse.html#error_code\",\"classes\":\"\",\"parent\":\"ErrorResponse\"},{\"kind\":1024,\"name\":\"error_message\",\"url\":\"interfaces/ErrorResponse.html#error_message\",\"classes\":\"\",\"parent\":\"ErrorResponse\"},{\"kind\":1024,\"name\":\"request\",\"url\":\"interfaces/ErrorResponse.html#request\",\"classes\":\"\",\"parent\":\"ErrorResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/ErrorResponse.html#api_version\",\"classes\":\"\",\"parent\":\"ErrorResponse\"},{\"kind\":256,\"name\":\"NFTBuyOffersRequest\",\"url\":\"interfaces/NFTBuyOffersRequest.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/NFTBuyOffersRequest.html#command\",\"classes\":\"\",\"parent\":\"NFTBuyOffersRequest\"},{\"kind\":1024,\"name\":\"nft_id\",\"url\":\"interfaces/NFTBuyOffersRequest.html#nft_id\",\"classes\":\"\",\"parent\":\"NFTBuyOffersRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/NFTBuyOffersRequest.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTBuyOffersRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/NFTBuyOffersRequest.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTBuyOffersRequest\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/NFTBuyOffersRequest.html#ledger_hash\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTBuyOffersRequest\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/NFTBuyOffersRequest.html#ledger_index\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTBuyOffersRequest\"},{\"kind\":256,\"name\":\"NFTBuyOffersResponse\",\"url\":\"interfaces/NFTBuyOffersResponse.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/NFTBuyOffersResponse.html#result\",\"classes\":\"\",\"parent\":\"NFTBuyOffersResponse\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/NFTBuyOffersResponse.html#result.__type\",\"classes\":\"\",\"parent\":\"NFTBuyOffersResponse.result\"},{\"kind\":1024,\"name\":\"offers\",\"url\":\"interfaces/NFTBuyOffersResponse.html#result.__type.offers\",\"classes\":\"\",\"parent\":\"NFTBuyOffersResponse.result.__type\"},{\"kind\":1024,\"name\":\"nft_id\",\"url\":\"interfaces/NFTBuyOffersResponse.html#result.__type.nft_id\",\"classes\":\"\",\"parent\":\"NFTBuyOffersResponse.result.__type\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/NFTBuyOffersResponse.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTBuyOffersResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/NFTBuyOffersResponse.html#status\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTBuyOffersResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/NFTBuyOffersResponse.html#type\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTBuyOffersResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/NFTBuyOffersResponse.html#warning\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTBuyOffersResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/NFTBuyOffersResponse.html#warnings\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTBuyOffersResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/NFTBuyOffersResponse.html#forwarded\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTBuyOffersResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/NFTBuyOffersResponse.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTBuyOffersResponse\"},{\"kind\":256,\"name\":\"NFTSellOffersRequest\",\"url\":\"interfaces/NFTSellOffersRequest.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/NFTSellOffersRequest.html#command\",\"classes\":\"\",\"parent\":\"NFTSellOffersRequest\"},{\"kind\":1024,\"name\":\"nft_id\",\"url\":\"interfaces/NFTSellOffersRequest.html#nft_id\",\"classes\":\"\",\"parent\":\"NFTSellOffersRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/NFTSellOffersRequest.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTSellOffersRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/NFTSellOffersRequest.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTSellOffersRequest\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/NFTSellOffersRequest.html#ledger_hash\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTSellOffersRequest\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/NFTSellOffersRequest.html#ledger_index\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTSellOffersRequest\"},{\"kind\":256,\"name\":\"NFTSellOffersResponse\",\"url\":\"interfaces/NFTSellOffersResponse.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/NFTSellOffersResponse.html#result\",\"classes\":\"\",\"parent\":\"NFTSellOffersResponse\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/NFTSellOffersResponse.html#result.__type\",\"classes\":\"\",\"parent\":\"NFTSellOffersResponse.result\"},{\"kind\":1024,\"name\":\"offers\",\"url\":\"interfaces/NFTSellOffersResponse.html#result.__type.offers\",\"classes\":\"\",\"parent\":\"NFTSellOffersResponse.result.__type\"},{\"kind\":1024,\"name\":\"nft_id\",\"url\":\"interfaces/NFTSellOffersResponse.html#result.__type.nft_id\",\"classes\":\"\",\"parent\":\"NFTSellOffersResponse.result.__type\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/NFTSellOffersResponse.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTSellOffersResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/NFTSellOffersResponse.html#status\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTSellOffersResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/NFTSellOffersResponse.html#type\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTSellOffersResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/NFTSellOffersResponse.html#warning\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTSellOffersResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/NFTSellOffersResponse.html#warnings\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTSellOffersResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/NFTSellOffersResponse.html#forwarded\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTSellOffersResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/NFTSellOffersResponse.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTSellOffersResponse\"},{\"kind\":256,\"name\":\"NFTInfoRequest\",\"url\":\"interfaces/NFTInfoRequest.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/NFTInfoRequest.html#command\",\"classes\":\"\",\"parent\":\"NFTInfoRequest\"},{\"kind\":1024,\"name\":\"nft_id\",\"url\":\"interfaces/NFTInfoRequest.html#nft_id\",\"classes\":\"\",\"parent\":\"NFTInfoRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/NFTInfoRequest.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTInfoRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/NFTInfoRequest.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTInfoRequest\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/NFTInfoRequest.html#ledger_hash\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTInfoRequest\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/NFTInfoRequest.html#ledger_index\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTInfoRequest\"},{\"kind\":256,\"name\":\"NFTInfoResponse\",\"url\":\"interfaces/NFTInfoResponse.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/NFTInfoResponse.html#result\",\"classes\":\"\",\"parent\":\"NFTInfoResponse\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/NFTInfoResponse.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTInfoResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/NFTInfoResponse.html#status\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTInfoResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/NFTInfoResponse.html#type\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTInfoResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/NFTInfoResponse.html#warning\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTInfoResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/NFTInfoResponse.html#warnings\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTInfoResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/NFTInfoResponse.html#forwarded\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTInfoResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/NFTInfoResponse.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTInfoResponse\"},{\"kind\":256,\"name\":\"NFTHistoryRequest\",\"url\":\"interfaces/NFTHistoryRequest.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/NFTHistoryRequest.html#command\",\"classes\":\"\",\"parent\":\"NFTHistoryRequest\"},{\"kind\":1024,\"name\":\"nft_id\",\"url\":\"interfaces/NFTHistoryRequest.html#nft_id\",\"classes\":\"\",\"parent\":\"NFTHistoryRequest\"},{\"kind\":1024,\"name\":\"ledger_index_min\",\"url\":\"interfaces/NFTHistoryRequest.html#ledger_index_min\",\"classes\":\"\",\"parent\":\"NFTHistoryRequest\"},{\"kind\":1024,\"name\":\"ledger_index_max\",\"url\":\"interfaces/NFTHistoryRequest.html#ledger_index_max\",\"classes\":\"\",\"parent\":\"NFTHistoryRequest\"},{\"kind\":1024,\"name\":\"binary\",\"url\":\"interfaces/NFTHistoryRequest.html#binary\",\"classes\":\"\",\"parent\":\"NFTHistoryRequest\"},{\"kind\":1024,\"name\":\"forward\",\"url\":\"interfaces/NFTHistoryRequest.html#forward\",\"classes\":\"\",\"parent\":\"NFTHistoryRequest\"},{\"kind\":1024,\"name\":\"limit\",\"url\":\"interfaces/NFTHistoryRequest.html#limit\",\"classes\":\"\",\"parent\":\"NFTHistoryRequest\"},{\"kind\":1024,\"name\":\"marker\",\"url\":\"interfaces/NFTHistoryRequest.html#marker\",\"classes\":\"\",\"parent\":\"NFTHistoryRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/NFTHistoryRequest.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTHistoryRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/NFTHistoryRequest.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTHistoryRequest\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/NFTHistoryRequest.html#ledger_hash\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTHistoryRequest\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/NFTHistoryRequest.html#ledger_index\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTHistoryRequest\"},{\"kind\":256,\"name\":\"NFTHistoryResponse\",\"url\":\"interfaces/NFTHistoryResponse.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/NFTHistoryResponse.html#result\",\"classes\":\"\",\"parent\":\"NFTHistoryResponse\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/NFTHistoryResponse.html#result.__type\",\"classes\":\"\",\"parent\":\"NFTHistoryResponse.result\"},{\"kind\":1024,\"name\":\"nft_id\",\"url\":\"interfaces/NFTHistoryResponse.html#result.__type.nft_id\",\"classes\":\"\",\"parent\":\"NFTHistoryResponse.result.__type\"},{\"kind\":1024,\"name\":\"ledger_index_min\",\"url\":\"interfaces/NFTHistoryResponse.html#result.__type.ledger_index_min\",\"classes\":\"\",\"parent\":\"NFTHistoryResponse.result.__type\"},{\"kind\":1024,\"name\":\"ledger_index_max\",\"url\":\"interfaces/NFTHistoryResponse.html#result.__type.ledger_index_max\",\"classes\":\"\",\"parent\":\"NFTHistoryResponse.result.__type\"},{\"kind\":1024,\"name\":\"limit\",\"url\":\"interfaces/NFTHistoryResponse.html#result.__type.limit\",\"classes\":\"\",\"parent\":\"NFTHistoryResponse.result.__type\"},{\"kind\":1024,\"name\":\"marker\",\"url\":\"interfaces/NFTHistoryResponse.html#result.__type.marker\",\"classes\":\"\",\"parent\":\"NFTHistoryResponse.result.__type\"},{\"kind\":1024,\"name\":\"transactions\",\"url\":\"interfaces/NFTHistoryResponse.html#result.__type.transactions\",\"classes\":\"\",\"parent\":\"NFTHistoryResponse.result.__type\"},{\"kind\":1024,\"name\":\"validated\",\"url\":\"interfaces/NFTHistoryResponse.html#result.__type.validated\",\"classes\":\"\",\"parent\":\"NFTHistoryResponse.result.__type\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/NFTHistoryResponse.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTHistoryResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/NFTHistoryResponse.html#status\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTHistoryResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/NFTHistoryResponse.html#type\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTHistoryResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/NFTHistoryResponse.html#warning\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTHistoryResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/NFTHistoryResponse.html#warnings\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTHistoryResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/NFTHistoryResponse.html#forwarded\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTHistoryResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/NFTHistoryResponse.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTHistoryResponse\"},{\"kind\":256,\"name\":\"NFTHistoryTransaction\",\"url\":\"interfaces/NFTHistoryTransaction.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/NFTHistoryTransaction.html#ledger_index\",\"classes\":\"\",\"parent\":\"NFTHistoryTransaction\"},{\"kind\":1024,\"name\":\"meta\",\"url\":\"interfaces/NFTHistoryTransaction.html#meta\",\"classes\":\"\",\"parent\":\"NFTHistoryTransaction\"},{\"kind\":1024,\"name\":\"tx\",\"url\":\"interfaces/NFTHistoryTransaction.html#tx\",\"classes\":\"\",\"parent\":\"NFTHistoryTransaction\"},{\"kind\":1024,\"name\":\"tx_blob\",\"url\":\"interfaces/NFTHistoryTransaction.html#tx_blob\",\"classes\":\"\",\"parent\":\"NFTHistoryTransaction\"},{\"kind\":1024,\"name\":\"validated\",\"url\":\"interfaces/NFTHistoryTransaction.html#validated\",\"classes\":\"\",\"parent\":\"NFTHistoryTransaction\"},{\"kind\":256,\"name\":\"AMMInfoRequest\",\"url\":\"interfaces/AMMInfoRequest.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"command\",\"url\":\"interfaces/AMMInfoRequest.html#command\",\"classes\":\"\",\"parent\":\"AMMInfoRequest\"},{\"kind\":1024,\"name\":\"amm_account\",\"url\":\"interfaces/AMMInfoRequest.html#amm_account\",\"classes\":\"\",\"parent\":\"AMMInfoRequest\"},{\"kind\":1024,\"name\":\"asset\",\"url\":\"interfaces/AMMInfoRequest.html#asset\",\"classes\":\"\",\"parent\":\"AMMInfoRequest\"},{\"kind\":1024,\"name\":\"asset2\",\"url\":\"interfaces/AMMInfoRequest.html#asset2\",\"classes\":\"\",\"parent\":\"AMMInfoRequest\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/AMMInfoRequest.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMInfoRequest\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/AMMInfoRequest.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMInfoRequest\"},{\"kind\":256,\"name\":\"AMMInfoResponse\",\"url\":\"interfaces/AMMInfoResponse.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"interfaces/AMMInfoResponse.html#result\",\"classes\":\"\",\"parent\":\"AMMInfoResponse\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/AMMInfoResponse.html#result.__type\",\"classes\":\"\",\"parent\":\"AMMInfoResponse.result\"},{\"kind\":1024,\"name\":\"amm\",\"url\":\"interfaces/AMMInfoResponse.html#result.__type.amm\",\"classes\":\"\",\"parent\":\"AMMInfoResponse.result.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/AMMInfoResponse.html#result.__type.amm.__type-1\",\"classes\":\"\",\"parent\":\"AMMInfoResponse.result.__type.amm\"},{\"kind\":1024,\"name\":\"account\",\"url\":\"interfaces/AMMInfoResponse.html#result.__type.amm.__type-1.account\",\"classes\":\"\",\"parent\":\"AMMInfoResponse.result.__type.amm.__type\"},{\"kind\":1024,\"name\":\"amount\",\"url\":\"interfaces/AMMInfoResponse.html#result.__type.amm.__type-1.amount\",\"classes\":\"\",\"parent\":\"AMMInfoResponse.result.__type.amm.__type\"},{\"kind\":1024,\"name\":\"amount2\",\"url\":\"interfaces/AMMInfoResponse.html#result.__type.amm.__type-1.amount2\",\"classes\":\"\",\"parent\":\"AMMInfoResponse.result.__type.amm.__type\"},{\"kind\":1024,\"name\":\"asset_frozen\",\"url\":\"interfaces/AMMInfoResponse.html#result.__type.amm.__type-1.asset_frozen\",\"classes\":\"\",\"parent\":\"AMMInfoResponse.result.__type.amm.__type\"},{\"kind\":1024,\"name\":\"asset2_frozen\",\"url\":\"interfaces/AMMInfoResponse.html#result.__type.amm.__type-1.asset2_frozen\",\"classes\":\"\",\"parent\":\"AMMInfoResponse.result.__type.amm.__type\"},{\"kind\":1024,\"name\":\"auction_slot\",\"url\":\"interfaces/AMMInfoResponse.html#result.__type.amm.__type-1.auction_slot\",\"classes\":\"\",\"parent\":\"AMMInfoResponse.result.__type.amm.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/AMMInfoResponse.html#result.__type.amm.__type-1.auction_slot.__type-2\",\"classes\":\"\",\"parent\":\"AMMInfoResponse.result.__type.amm.__type.auction_slot\"},{\"kind\":1024,\"name\":\"account\",\"url\":\"interfaces/AMMInfoResponse.html#result.__type.amm.__type-1.auction_slot.__type-2.account-1\",\"classes\":\"\",\"parent\":\"AMMInfoResponse.result.__type.amm.__type.auction_slot.__type\"},{\"kind\":1024,\"name\":\"auth_accounts\",\"url\":\"interfaces/AMMInfoResponse.html#result.__type.amm.__type-1.auction_slot.__type-2.auth_accounts\",\"classes\":\"\",\"parent\":\"AMMInfoResponse.result.__type.amm.__type.auction_slot.__type\"},{\"kind\":1024,\"name\":\"discounted_fee\",\"url\":\"interfaces/AMMInfoResponse.html#result.__type.amm.__type-1.auction_slot.__type-2.discounted_fee\",\"classes\":\"\",\"parent\":\"AMMInfoResponse.result.__type.amm.__type.auction_slot.__type\"},{\"kind\":1024,\"name\":\"expiration\",\"url\":\"interfaces/AMMInfoResponse.html#result.__type.amm.__type-1.auction_slot.__type-2.expiration\",\"classes\":\"\",\"parent\":\"AMMInfoResponse.result.__type.amm.__type.auction_slot.__type\"},{\"kind\":1024,\"name\":\"price\",\"url\":\"interfaces/AMMInfoResponse.html#result.__type.amm.__type-1.auction_slot.__type-2.price\",\"classes\":\"\",\"parent\":\"AMMInfoResponse.result.__type.amm.__type.auction_slot.__type\"},{\"kind\":1024,\"name\":\"time_interval\",\"url\":\"interfaces/AMMInfoResponse.html#result.__type.amm.__type-1.auction_slot.__type-2.time_interval\",\"classes\":\"\",\"parent\":\"AMMInfoResponse.result.__type.amm.__type.auction_slot.__type\"},{\"kind\":1024,\"name\":\"lp_token\",\"url\":\"interfaces/AMMInfoResponse.html#result.__type.amm.__type-1.lp_token\",\"classes\":\"\",\"parent\":\"AMMInfoResponse.result.__type.amm.__type\"},{\"kind\":1024,\"name\":\"trading_fee\",\"url\":\"interfaces/AMMInfoResponse.html#result.__type.amm.__type-1.trading_fee\",\"classes\":\"\",\"parent\":\"AMMInfoResponse.result.__type.amm.__type\"},{\"kind\":1024,\"name\":\"vote_slots\",\"url\":\"interfaces/AMMInfoResponse.html#result.__type.amm.__type-1.vote_slots\",\"classes\":\"\",\"parent\":\"AMMInfoResponse.result.__type.amm.__type\"},{\"kind\":1024,\"name\":\"ledger_hash\",\"url\":\"interfaces/AMMInfoResponse.html#result.__type.ledger_hash\",\"classes\":\"\",\"parent\":\"AMMInfoResponse.result.__type\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/AMMInfoResponse.html#result.__type.ledger_index\",\"classes\":\"\",\"parent\":\"AMMInfoResponse.result.__type\"},{\"kind\":1024,\"name\":\"validated\",\"url\":\"interfaces/AMMInfoResponse.html#result.__type.validated\",\"classes\":\"\",\"parent\":\"AMMInfoResponse.result.__type\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/AMMInfoResponse.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMInfoResponse\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/AMMInfoResponse.html#status\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMInfoResponse\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/AMMInfoResponse.html#type\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMInfoResponse\"},{\"kind\":1024,\"name\":\"warning\",\"url\":\"interfaces/AMMInfoResponse.html#warning\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMInfoResponse\"},{\"kind\":1024,\"name\":\"warnings\",\"url\":\"interfaces/AMMInfoResponse.html#warnings\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMInfoResponse\"},{\"kind\":1024,\"name\":\"forwarded\",\"url\":\"interfaces/AMMInfoResponse.html#forwarded\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMInfoResponse\"},{\"kind\":1024,\"name\":\"api_version\",\"url\":\"interfaces/AMMInfoResponse.html#api_version\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMInfoResponse\"},{\"kind\":256,\"name\":\"BaseTransaction\",\"url\":\"interfaces/BaseTransaction.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/BaseTransaction.html#Account\",\"classes\":\"\",\"parent\":\"BaseTransaction\"},{\"kind\":1024,\"name\":\"TransactionType\",\"url\":\"interfaces/BaseTransaction.html#TransactionType\",\"classes\":\"\",\"parent\":\"BaseTransaction\"},{\"kind\":1024,\"name\":\"Fee\",\"url\":\"interfaces/BaseTransaction.html#Fee\",\"classes\":\"\",\"parent\":\"BaseTransaction\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/BaseTransaction.html#Sequence\",\"classes\":\"\",\"parent\":\"BaseTransaction\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/BaseTransaction.html#AccountTxnID\",\"classes\":\"\",\"parent\":\"BaseTransaction\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/BaseTransaction.html#Flags\",\"classes\":\"\",\"parent\":\"BaseTransaction\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/BaseTransaction.html#LastLedgerSequence\",\"classes\":\"\",\"parent\":\"BaseTransaction\"},{\"kind\":1024,\"name\":\"Memos\",\"url\":\"interfaces/BaseTransaction.html#Memos\",\"classes\":\"\",\"parent\":\"BaseTransaction\"},{\"kind\":1024,\"name\":\"Signers\",\"url\":\"interfaces/BaseTransaction.html#Signers\",\"classes\":\"\",\"parent\":\"BaseTransaction\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/BaseTransaction.html#SourceTag\",\"classes\":\"\",\"parent\":\"BaseTransaction\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/BaseTransaction.html#SigningPubKey\",\"classes\":\"\",\"parent\":\"BaseTransaction\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/BaseTransaction.html#TicketSequence\",\"classes\":\"\",\"parent\":\"BaseTransaction\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/BaseTransaction.html#TxnSignature\",\"classes\":\"\",\"parent\":\"BaseTransaction\"},{\"kind\":1024,\"name\":\"NetworkID\",\"url\":\"interfaces/BaseTransaction.html#NetworkID\",\"classes\":\"\",\"parent\":\"BaseTransaction\"},{\"kind\":64,\"name\":\"validate\",\"url\":\"functions/validate.html\",\"classes\":\"\"},{\"kind\":2097152,\"name\":\"PseudoTransaction\",\"url\":\"types/PseudoTransaction.html\",\"classes\":\"\"},{\"kind\":2097152,\"name\":\"SubmittableTransaction\",\"url\":\"types/SubmittableTransaction.html\",\"classes\":\"\"},{\"kind\":256,\"name\":\"TransactionAndMetadata\",\"url\":\"interfaces/TransactionAndMetadata.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"transaction\",\"url\":\"interfaces/TransactionAndMetadata.html#transaction\",\"classes\":\"\",\"parent\":\"TransactionAndMetadata\"},{\"kind\":1024,\"name\":\"metadata\",\"url\":\"interfaces/TransactionAndMetadata.html#metadata\",\"classes\":\"\",\"parent\":\"TransactionAndMetadata\"},{\"kind\":2097152,\"name\":\"Transaction\",\"url\":\"types/Transaction.html\",\"classes\":\"\"},{\"kind\":8,\"name\":\"AccountSetAsfFlags\",\"url\":\"enums/AccountSetAsfFlags.html\",\"classes\":\"\"},{\"kind\":16,\"name\":\"asfRequireDest\",\"url\":\"enums/AccountSetAsfFlags.html#asfRequireDest\",\"classes\":\"\",\"parent\":\"AccountSetAsfFlags\"},{\"kind\":16,\"name\":\"asfRequireAuth\",\"url\":\"enums/AccountSetAsfFlags.html#asfRequireAuth\",\"classes\":\"\",\"parent\":\"AccountSetAsfFlags\"},{\"kind\":16,\"name\":\"asfDisallowXRP\",\"url\":\"enums/AccountSetAsfFlags.html#asfDisallowXRP\",\"classes\":\"\",\"parent\":\"AccountSetAsfFlags\"},{\"kind\":16,\"name\":\"asfDisableMaster\",\"url\":\"enums/AccountSetAsfFlags.html#asfDisableMaster\",\"classes\":\"\",\"parent\":\"AccountSetAsfFlags\"},{\"kind\":16,\"name\":\"asfAccountTxnID\",\"url\":\"enums/AccountSetAsfFlags.html#asfAccountTxnID\",\"classes\":\"\",\"parent\":\"AccountSetAsfFlags\"},{\"kind\":16,\"name\":\"asfNoFreeze\",\"url\":\"enums/AccountSetAsfFlags.html#asfNoFreeze\",\"classes\":\"\",\"parent\":\"AccountSetAsfFlags\"},{\"kind\":16,\"name\":\"asfGlobalFreeze\",\"url\":\"enums/AccountSetAsfFlags.html#asfGlobalFreeze\",\"classes\":\"\",\"parent\":\"AccountSetAsfFlags\"},{\"kind\":16,\"name\":\"asfDefaultRipple\",\"url\":\"enums/AccountSetAsfFlags.html#asfDefaultRipple\",\"classes\":\"\",\"parent\":\"AccountSetAsfFlags\"},{\"kind\":16,\"name\":\"asfDepositAuth\",\"url\":\"enums/AccountSetAsfFlags.html#asfDepositAuth\",\"classes\":\"\",\"parent\":\"AccountSetAsfFlags\"},{\"kind\":16,\"name\":\"asfAuthorizedNFTokenMinter\",\"url\":\"enums/AccountSetAsfFlags.html#asfAuthorizedNFTokenMinter\",\"classes\":\"\",\"parent\":\"AccountSetAsfFlags\"},{\"kind\":16,\"name\":\"asfDisallowIncomingNFTokenOffer\",\"url\":\"enums/AccountSetAsfFlags.html#asfDisallowIncomingNFTokenOffer\",\"classes\":\"\",\"parent\":\"AccountSetAsfFlags\"},{\"kind\":16,\"name\":\"asfDisallowIncomingCheck\",\"url\":\"enums/AccountSetAsfFlags.html#asfDisallowIncomingCheck\",\"classes\":\"\",\"parent\":\"AccountSetAsfFlags\"},{\"kind\":16,\"name\":\"asfDisallowIncomingPayChan\",\"url\":\"enums/AccountSetAsfFlags.html#asfDisallowIncomingPayChan\",\"classes\":\"\",\"parent\":\"AccountSetAsfFlags\"},{\"kind\":16,\"name\":\"asfDisallowIncomingTrustline\",\"url\":\"enums/AccountSetAsfFlags.html#asfDisallowIncomingTrustline\",\"classes\":\"\",\"parent\":\"AccountSetAsfFlags\"},{\"kind\":16,\"name\":\"asfAllowTrustLineClawback\",\"url\":\"enums/AccountSetAsfFlags.html#asfAllowTrustLineClawback\",\"classes\":\"\",\"parent\":\"AccountSetAsfFlags\"},{\"kind\":8,\"name\":\"AccountSetTfFlags\",\"url\":\"enums/AccountSetTfFlags.html\",\"classes\":\"\"},{\"kind\":16,\"name\":\"tfRequireDestTag\",\"url\":\"enums/AccountSetTfFlags.html#tfRequireDestTag\",\"classes\":\"\",\"parent\":\"AccountSetTfFlags\"},{\"kind\":16,\"name\":\"tfOptionalDestTag\",\"url\":\"enums/AccountSetTfFlags.html#tfOptionalDestTag\",\"classes\":\"\",\"parent\":\"AccountSetTfFlags\"},{\"kind\":16,\"name\":\"tfRequireAuth\",\"url\":\"enums/AccountSetTfFlags.html#tfRequireAuth\",\"classes\":\"\",\"parent\":\"AccountSetTfFlags\"},{\"kind\":16,\"name\":\"tfOptionalAuth\",\"url\":\"enums/AccountSetTfFlags.html#tfOptionalAuth\",\"classes\":\"\",\"parent\":\"AccountSetTfFlags\"},{\"kind\":16,\"name\":\"tfDisallowXRP\",\"url\":\"enums/AccountSetTfFlags.html#tfDisallowXRP\",\"classes\":\"\",\"parent\":\"AccountSetTfFlags\"},{\"kind\":16,\"name\":\"tfAllowXRP\",\"url\":\"enums/AccountSetTfFlags.html#tfAllowXRP\",\"classes\":\"\",\"parent\":\"AccountSetTfFlags\"},{\"kind\":256,\"name\":\"AccountSetFlagsInterface\",\"url\":\"interfaces/AccountSetFlagsInterface.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"tfRequireDestTag\",\"url\":\"interfaces/AccountSetFlagsInterface.html#tfRequireDestTag\",\"classes\":\"\",\"parent\":\"AccountSetFlagsInterface\"},{\"kind\":1024,\"name\":\"tfOptionalDestTag\",\"url\":\"interfaces/AccountSetFlagsInterface.html#tfOptionalDestTag\",\"classes\":\"\",\"parent\":\"AccountSetFlagsInterface\"},{\"kind\":1024,\"name\":\"tfRequireAuth\",\"url\":\"interfaces/AccountSetFlagsInterface.html#tfRequireAuth\",\"classes\":\"\",\"parent\":\"AccountSetFlagsInterface\"},{\"kind\":1024,\"name\":\"tfOptionalAuth\",\"url\":\"interfaces/AccountSetFlagsInterface.html#tfOptionalAuth\",\"classes\":\"\",\"parent\":\"AccountSetFlagsInterface\"},{\"kind\":1024,\"name\":\"tfDisallowXRP\",\"url\":\"interfaces/AccountSetFlagsInterface.html#tfDisallowXRP\",\"classes\":\"\",\"parent\":\"AccountSetFlagsInterface\"},{\"kind\":1024,\"name\":\"tfAllowXRP\",\"url\":\"interfaces/AccountSetFlagsInterface.html#tfAllowXRP\",\"classes\":\"\",\"parent\":\"AccountSetFlagsInterface\"},{\"kind\":256,\"name\":\"AccountSet\",\"url\":\"interfaces/AccountSet.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"TransactionType\",\"url\":\"interfaces/AccountSet.html#TransactionType\",\"classes\":\"\",\"parent\":\"AccountSet\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/AccountSet.html#Flags\",\"classes\":\"\",\"parent\":\"AccountSet\"},{\"kind\":1024,\"name\":\"ClearFlag\",\"url\":\"interfaces/AccountSet.html#ClearFlag\",\"classes\":\"\",\"parent\":\"AccountSet\"},{\"kind\":1024,\"name\":\"Domain\",\"url\":\"interfaces/AccountSet.html#Domain\",\"classes\":\"\",\"parent\":\"AccountSet\"},{\"kind\":1024,\"name\":\"EmailHash\",\"url\":\"interfaces/AccountSet.html#EmailHash\",\"classes\":\"\",\"parent\":\"AccountSet\"},{\"kind\":1024,\"name\":\"MessageKey\",\"url\":\"interfaces/AccountSet.html#MessageKey\",\"classes\":\"\",\"parent\":\"AccountSet\"},{\"kind\":1024,\"name\":\"SetFlag\",\"url\":\"interfaces/AccountSet.html#SetFlag\",\"classes\":\"\",\"parent\":\"AccountSet\"},{\"kind\":1024,\"name\":\"TransferRate\",\"url\":\"interfaces/AccountSet.html#TransferRate\",\"classes\":\"\",\"parent\":\"AccountSet\"},{\"kind\":1024,\"name\":\"TickSize\",\"url\":\"interfaces/AccountSet.html#TickSize\",\"classes\":\"\",\"parent\":\"AccountSet\"},{\"kind\":1024,\"name\":\"NFTokenMinter\",\"url\":\"interfaces/AccountSet.html#NFTokenMinter\",\"classes\":\"\",\"parent\":\"AccountSet\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/AccountSet.html#Account\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountSet\"},{\"kind\":1024,\"name\":\"Fee\",\"url\":\"interfaces/AccountSet.html#Fee\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountSet\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/AccountSet.html#Sequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountSet\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/AccountSet.html#AccountTxnID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountSet\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/AccountSet.html#LastLedgerSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountSet\"},{\"kind\":1024,\"name\":\"Memos\",\"url\":\"interfaces/AccountSet.html#Memos\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountSet\"},{\"kind\":1024,\"name\":\"Signers\",\"url\":\"interfaces/AccountSet.html#Signers\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountSet\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/AccountSet.html#SourceTag\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountSet\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/AccountSet.html#SigningPubKey\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountSet\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/AccountSet.html#TicketSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountSet\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/AccountSet.html#TxnSignature\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountSet\"},{\"kind\":1024,\"name\":\"NetworkID\",\"url\":\"interfaces/AccountSet.html#NetworkID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountSet\"},{\"kind\":256,\"name\":\"AccountDelete\",\"url\":\"interfaces/AccountDelete.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"TransactionType\",\"url\":\"interfaces/AccountDelete.html#TransactionType\",\"classes\":\"\",\"parent\":\"AccountDelete\"},{\"kind\":1024,\"name\":\"Destination\",\"url\":\"interfaces/AccountDelete.html#Destination\",\"classes\":\"\",\"parent\":\"AccountDelete\"},{\"kind\":1024,\"name\":\"DestinationTag\",\"url\":\"interfaces/AccountDelete.html#DestinationTag\",\"classes\":\"\",\"parent\":\"AccountDelete\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/AccountDelete.html#Account\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountDelete\"},{\"kind\":1024,\"name\":\"Fee\",\"url\":\"interfaces/AccountDelete.html#Fee\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountDelete\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/AccountDelete.html#Sequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountDelete\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/AccountDelete.html#AccountTxnID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountDelete\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/AccountDelete.html#Flags\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountDelete\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/AccountDelete.html#LastLedgerSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountDelete\"},{\"kind\":1024,\"name\":\"Memos\",\"url\":\"interfaces/AccountDelete.html#Memos\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountDelete\"},{\"kind\":1024,\"name\":\"Signers\",\"url\":\"interfaces/AccountDelete.html#Signers\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountDelete\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/AccountDelete.html#SourceTag\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountDelete\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/AccountDelete.html#SigningPubKey\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountDelete\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/AccountDelete.html#TicketSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountDelete\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/AccountDelete.html#TxnSignature\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountDelete\"},{\"kind\":1024,\"name\":\"NetworkID\",\"url\":\"interfaces/AccountDelete.html#NetworkID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AccountDelete\"},{\"kind\":256,\"name\":\"AMMBid\",\"url\":\"interfaces/AMMBid.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"TransactionType\",\"url\":\"interfaces/AMMBid.html#TransactionType\",\"classes\":\"\",\"parent\":\"AMMBid\"},{\"kind\":1024,\"name\":\"Asset\",\"url\":\"interfaces/AMMBid.html#Asset\",\"classes\":\"\",\"parent\":\"AMMBid\"},{\"kind\":1024,\"name\":\"Asset2\",\"url\":\"interfaces/AMMBid.html#Asset2\",\"classes\":\"\",\"parent\":\"AMMBid\"},{\"kind\":1024,\"name\":\"BidMin\",\"url\":\"interfaces/AMMBid.html#BidMin\",\"classes\":\"\",\"parent\":\"AMMBid\"},{\"kind\":1024,\"name\":\"BidMax\",\"url\":\"interfaces/AMMBid.html#BidMax\",\"classes\":\"\",\"parent\":\"AMMBid\"},{\"kind\":1024,\"name\":\"AuthAccounts\",\"url\":\"interfaces/AMMBid.html#AuthAccounts\",\"classes\":\"\",\"parent\":\"AMMBid\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/AMMBid.html#Account\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMBid\"},{\"kind\":1024,\"name\":\"Fee\",\"url\":\"interfaces/AMMBid.html#Fee\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMBid\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/AMMBid.html#Sequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMBid\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/AMMBid.html#AccountTxnID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMBid\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/AMMBid.html#Flags\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMBid\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/AMMBid.html#LastLedgerSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMBid\"},{\"kind\":1024,\"name\":\"Memos\",\"url\":\"interfaces/AMMBid.html#Memos\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMBid\"},{\"kind\":1024,\"name\":\"Signers\",\"url\":\"interfaces/AMMBid.html#Signers\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMBid\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/AMMBid.html#SourceTag\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMBid\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/AMMBid.html#SigningPubKey\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMBid\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/AMMBid.html#TicketSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMBid\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/AMMBid.html#TxnSignature\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMBid\"},{\"kind\":1024,\"name\":\"NetworkID\",\"url\":\"interfaces/AMMBid.html#NetworkID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMBid\"},{\"kind\":256,\"name\":\"AMMDelete\",\"url\":\"interfaces/AMMDelete.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"TransactionType\",\"url\":\"interfaces/AMMDelete.html#TransactionType\",\"classes\":\"\",\"parent\":\"AMMDelete\"},{\"kind\":1024,\"name\":\"Asset\",\"url\":\"interfaces/AMMDelete.html#Asset\",\"classes\":\"\",\"parent\":\"AMMDelete\"},{\"kind\":1024,\"name\":\"Asset2\",\"url\":\"interfaces/AMMDelete.html#Asset2\",\"classes\":\"\",\"parent\":\"AMMDelete\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/AMMDelete.html#Account\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMDelete\"},{\"kind\":1024,\"name\":\"Fee\",\"url\":\"interfaces/AMMDelete.html#Fee\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMDelete\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/AMMDelete.html#Sequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMDelete\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/AMMDelete.html#AccountTxnID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMDelete\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/AMMDelete.html#Flags\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMDelete\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/AMMDelete.html#LastLedgerSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMDelete\"},{\"kind\":1024,\"name\":\"Memos\",\"url\":\"interfaces/AMMDelete.html#Memos\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMDelete\"},{\"kind\":1024,\"name\":\"Signers\",\"url\":\"interfaces/AMMDelete.html#Signers\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMDelete\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/AMMDelete.html#SourceTag\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMDelete\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/AMMDelete.html#SigningPubKey\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMDelete\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/AMMDelete.html#TicketSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMDelete\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/AMMDelete.html#TxnSignature\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMDelete\"},{\"kind\":1024,\"name\":\"NetworkID\",\"url\":\"interfaces/AMMDelete.html#NetworkID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMDelete\"},{\"kind\":8,\"name\":\"AMMDepositFlags\",\"url\":\"enums/AMMDepositFlags.html\",\"classes\":\"\"},{\"kind\":16,\"name\":\"tfLPToken\",\"url\":\"enums/AMMDepositFlags.html#tfLPToken\",\"classes\":\"\",\"parent\":\"AMMDepositFlags\"},{\"kind\":16,\"name\":\"tfSingleAsset\",\"url\":\"enums/AMMDepositFlags.html#tfSingleAsset\",\"classes\":\"\",\"parent\":\"AMMDepositFlags\"},{\"kind\":16,\"name\":\"tfTwoAsset\",\"url\":\"enums/AMMDepositFlags.html#tfTwoAsset\",\"classes\":\"\",\"parent\":\"AMMDepositFlags\"},{\"kind\":16,\"name\":\"tfOneAssetLPToken\",\"url\":\"enums/AMMDepositFlags.html#tfOneAssetLPToken\",\"classes\":\"\",\"parent\":\"AMMDepositFlags\"},{\"kind\":16,\"name\":\"tfLimitLPToken\",\"url\":\"enums/AMMDepositFlags.html#tfLimitLPToken\",\"classes\":\"\",\"parent\":\"AMMDepositFlags\"},{\"kind\":256,\"name\":\"AMMDepositFlagsInterface\",\"url\":\"interfaces/AMMDepositFlagsInterface.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"tfLPToken\",\"url\":\"interfaces/AMMDepositFlagsInterface.html#tfLPToken\",\"classes\":\"\",\"parent\":\"AMMDepositFlagsInterface\"},{\"kind\":1024,\"name\":\"tfSingleAsset\",\"url\":\"interfaces/AMMDepositFlagsInterface.html#tfSingleAsset\",\"classes\":\"\",\"parent\":\"AMMDepositFlagsInterface\"},{\"kind\":1024,\"name\":\"tfTwoAsset\",\"url\":\"interfaces/AMMDepositFlagsInterface.html#tfTwoAsset\",\"classes\":\"\",\"parent\":\"AMMDepositFlagsInterface\"},{\"kind\":1024,\"name\":\"tfOneAssetLPToken\",\"url\":\"interfaces/AMMDepositFlagsInterface.html#tfOneAssetLPToken\",\"classes\":\"\",\"parent\":\"AMMDepositFlagsInterface\"},{\"kind\":1024,\"name\":\"tfLimitLPToken\",\"url\":\"interfaces/AMMDepositFlagsInterface.html#tfLimitLPToken\",\"classes\":\"\",\"parent\":\"AMMDepositFlagsInterface\"},{\"kind\":256,\"name\":\"AMMDeposit\",\"url\":\"interfaces/AMMDeposit.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"TransactionType\",\"url\":\"interfaces/AMMDeposit.html#TransactionType\",\"classes\":\"\",\"parent\":\"AMMDeposit\"},{\"kind\":1024,\"name\":\"Asset\",\"url\":\"interfaces/AMMDeposit.html#Asset\",\"classes\":\"\",\"parent\":\"AMMDeposit\"},{\"kind\":1024,\"name\":\"Asset2\",\"url\":\"interfaces/AMMDeposit.html#Asset2\",\"classes\":\"\",\"parent\":\"AMMDeposit\"},{\"kind\":1024,\"name\":\"Amount\",\"url\":\"interfaces/AMMDeposit.html#Amount\",\"classes\":\"\",\"parent\":\"AMMDeposit\"},{\"kind\":1024,\"name\":\"Amount2\",\"url\":\"interfaces/AMMDeposit.html#Amount2\",\"classes\":\"\",\"parent\":\"AMMDeposit\"},{\"kind\":1024,\"name\":\"EPrice\",\"url\":\"interfaces/AMMDeposit.html#EPrice\",\"classes\":\"\",\"parent\":\"AMMDeposit\"},{\"kind\":1024,\"name\":\"LPTokenOut\",\"url\":\"interfaces/AMMDeposit.html#LPTokenOut\",\"classes\":\"\",\"parent\":\"AMMDeposit\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/AMMDeposit.html#Account\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMDeposit\"},{\"kind\":1024,\"name\":\"Fee\",\"url\":\"interfaces/AMMDeposit.html#Fee\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMDeposit\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/AMMDeposit.html#Sequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMDeposit\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/AMMDeposit.html#AccountTxnID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMDeposit\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/AMMDeposit.html#Flags\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMDeposit\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/AMMDeposit.html#LastLedgerSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMDeposit\"},{\"kind\":1024,\"name\":\"Memos\",\"url\":\"interfaces/AMMDeposit.html#Memos\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMDeposit\"},{\"kind\":1024,\"name\":\"Signers\",\"url\":\"interfaces/AMMDeposit.html#Signers\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMDeposit\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/AMMDeposit.html#SourceTag\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMDeposit\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/AMMDeposit.html#SigningPubKey\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMDeposit\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/AMMDeposit.html#TicketSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMDeposit\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/AMMDeposit.html#TxnSignature\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMDeposit\"},{\"kind\":1024,\"name\":\"NetworkID\",\"url\":\"interfaces/AMMDeposit.html#NetworkID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMDeposit\"},{\"kind\":256,\"name\":\"AMMCreate\",\"url\":\"interfaces/AMMCreate.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"TransactionType\",\"url\":\"interfaces/AMMCreate.html#TransactionType\",\"classes\":\"\",\"parent\":\"AMMCreate\"},{\"kind\":1024,\"name\":\"Amount\",\"url\":\"interfaces/AMMCreate.html#Amount\",\"classes\":\"\",\"parent\":\"AMMCreate\"},{\"kind\":1024,\"name\":\"Amount2\",\"url\":\"interfaces/AMMCreate.html#Amount2\",\"classes\":\"\",\"parent\":\"AMMCreate\"},{\"kind\":1024,\"name\":\"TradingFee\",\"url\":\"interfaces/AMMCreate.html#TradingFee\",\"classes\":\"\",\"parent\":\"AMMCreate\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/AMMCreate.html#Account\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMCreate\"},{\"kind\":1024,\"name\":\"Fee\",\"url\":\"interfaces/AMMCreate.html#Fee\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMCreate\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/AMMCreate.html#Sequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMCreate\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/AMMCreate.html#AccountTxnID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMCreate\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/AMMCreate.html#Flags\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMCreate\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/AMMCreate.html#LastLedgerSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMCreate\"},{\"kind\":1024,\"name\":\"Memos\",\"url\":\"interfaces/AMMCreate.html#Memos\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMCreate\"},{\"kind\":1024,\"name\":\"Signers\",\"url\":\"interfaces/AMMCreate.html#Signers\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMCreate\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/AMMCreate.html#SourceTag\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMCreate\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/AMMCreate.html#SigningPubKey\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMCreate\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/AMMCreate.html#TicketSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMCreate\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/AMMCreate.html#TxnSignature\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMCreate\"},{\"kind\":1024,\"name\":\"NetworkID\",\"url\":\"interfaces/AMMCreate.html#NetworkID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMCreate\"},{\"kind\":256,\"name\":\"AMMVote\",\"url\":\"interfaces/AMMVote.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"TransactionType\",\"url\":\"interfaces/AMMVote.html#TransactionType\",\"classes\":\"\",\"parent\":\"AMMVote\"},{\"kind\":1024,\"name\":\"Asset\",\"url\":\"interfaces/AMMVote.html#Asset\",\"classes\":\"\",\"parent\":\"AMMVote\"},{\"kind\":1024,\"name\":\"Asset2\",\"url\":\"interfaces/AMMVote.html#Asset2\",\"classes\":\"\",\"parent\":\"AMMVote\"},{\"kind\":1024,\"name\":\"TradingFee\",\"url\":\"interfaces/AMMVote.html#TradingFee\",\"classes\":\"\",\"parent\":\"AMMVote\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/AMMVote.html#Account\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMVote\"},{\"kind\":1024,\"name\":\"Fee\",\"url\":\"interfaces/AMMVote.html#Fee\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMVote\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/AMMVote.html#Sequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMVote\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/AMMVote.html#AccountTxnID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMVote\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/AMMVote.html#Flags\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMVote\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/AMMVote.html#LastLedgerSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMVote\"},{\"kind\":1024,\"name\":\"Memos\",\"url\":\"interfaces/AMMVote.html#Memos\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMVote\"},{\"kind\":1024,\"name\":\"Signers\",\"url\":\"interfaces/AMMVote.html#Signers\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMVote\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/AMMVote.html#SourceTag\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMVote\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/AMMVote.html#SigningPubKey\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMVote\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/AMMVote.html#TicketSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMVote\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/AMMVote.html#TxnSignature\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMVote\"},{\"kind\":1024,\"name\":\"NetworkID\",\"url\":\"interfaces/AMMVote.html#NetworkID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMVote\"},{\"kind\":8,\"name\":\"AMMWithdrawFlags\",\"url\":\"enums/AMMWithdrawFlags.html\",\"classes\":\"\"},{\"kind\":16,\"name\":\"tfLPToken\",\"url\":\"enums/AMMWithdrawFlags.html#tfLPToken\",\"classes\":\"\",\"parent\":\"AMMWithdrawFlags\"},{\"kind\":16,\"name\":\"tfWithdrawAll\",\"url\":\"enums/AMMWithdrawFlags.html#tfWithdrawAll\",\"classes\":\"\",\"parent\":\"AMMWithdrawFlags\"},{\"kind\":16,\"name\":\"tfOneAssetWithdrawAll\",\"url\":\"enums/AMMWithdrawFlags.html#tfOneAssetWithdrawAll\",\"classes\":\"\",\"parent\":\"AMMWithdrawFlags\"},{\"kind\":16,\"name\":\"tfSingleAsset\",\"url\":\"enums/AMMWithdrawFlags.html#tfSingleAsset\",\"classes\":\"\",\"parent\":\"AMMWithdrawFlags\"},{\"kind\":16,\"name\":\"tfTwoAsset\",\"url\":\"enums/AMMWithdrawFlags.html#tfTwoAsset\",\"classes\":\"\",\"parent\":\"AMMWithdrawFlags\"},{\"kind\":16,\"name\":\"tfOneAssetLPToken\",\"url\":\"enums/AMMWithdrawFlags.html#tfOneAssetLPToken\",\"classes\":\"\",\"parent\":\"AMMWithdrawFlags\"},{\"kind\":16,\"name\":\"tfLimitLPToken\",\"url\":\"enums/AMMWithdrawFlags.html#tfLimitLPToken\",\"classes\":\"\",\"parent\":\"AMMWithdrawFlags\"},{\"kind\":256,\"name\":\"AMMWithdrawFlagsInterface\",\"url\":\"interfaces/AMMWithdrawFlagsInterface.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"tfLPToken\",\"url\":\"interfaces/AMMWithdrawFlagsInterface.html#tfLPToken\",\"classes\":\"\",\"parent\":\"AMMWithdrawFlagsInterface\"},{\"kind\":1024,\"name\":\"tfWithdrawAll\",\"url\":\"interfaces/AMMWithdrawFlagsInterface.html#tfWithdrawAll\",\"classes\":\"\",\"parent\":\"AMMWithdrawFlagsInterface\"},{\"kind\":1024,\"name\":\"tfOneAssetWithdrawAll\",\"url\":\"interfaces/AMMWithdrawFlagsInterface.html#tfOneAssetWithdrawAll\",\"classes\":\"\",\"parent\":\"AMMWithdrawFlagsInterface\"},{\"kind\":1024,\"name\":\"tfSingleAsset\",\"url\":\"interfaces/AMMWithdrawFlagsInterface.html#tfSingleAsset\",\"classes\":\"\",\"parent\":\"AMMWithdrawFlagsInterface\"},{\"kind\":1024,\"name\":\"tfTwoAsset\",\"url\":\"interfaces/AMMWithdrawFlagsInterface.html#tfTwoAsset\",\"classes\":\"\",\"parent\":\"AMMWithdrawFlagsInterface\"},{\"kind\":1024,\"name\":\"tfOneAssetLPToken\",\"url\":\"interfaces/AMMWithdrawFlagsInterface.html#tfOneAssetLPToken\",\"classes\":\"\",\"parent\":\"AMMWithdrawFlagsInterface\"},{\"kind\":1024,\"name\":\"tfLimitLPToken\",\"url\":\"interfaces/AMMWithdrawFlagsInterface.html#tfLimitLPToken\",\"classes\":\"\",\"parent\":\"AMMWithdrawFlagsInterface\"},{\"kind\":256,\"name\":\"AMMWithdraw\",\"url\":\"interfaces/AMMWithdraw.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"TransactionType\",\"url\":\"interfaces/AMMWithdraw.html#TransactionType\",\"classes\":\"\",\"parent\":\"AMMWithdraw\"},{\"kind\":1024,\"name\":\"Asset\",\"url\":\"interfaces/AMMWithdraw.html#Asset\",\"classes\":\"\",\"parent\":\"AMMWithdraw\"},{\"kind\":1024,\"name\":\"Asset2\",\"url\":\"interfaces/AMMWithdraw.html#Asset2\",\"classes\":\"\",\"parent\":\"AMMWithdraw\"},{\"kind\":1024,\"name\":\"Amount\",\"url\":\"interfaces/AMMWithdraw.html#Amount\",\"classes\":\"\",\"parent\":\"AMMWithdraw\"},{\"kind\":1024,\"name\":\"Amount2\",\"url\":\"interfaces/AMMWithdraw.html#Amount2\",\"classes\":\"\",\"parent\":\"AMMWithdraw\"},{\"kind\":1024,\"name\":\"EPrice\",\"url\":\"interfaces/AMMWithdraw.html#EPrice\",\"classes\":\"\",\"parent\":\"AMMWithdraw\"},{\"kind\":1024,\"name\":\"LPTokenIn\",\"url\":\"interfaces/AMMWithdraw.html#LPTokenIn\",\"classes\":\"\",\"parent\":\"AMMWithdraw\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/AMMWithdraw.html#Account\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMWithdraw\"},{\"kind\":1024,\"name\":\"Fee\",\"url\":\"interfaces/AMMWithdraw.html#Fee\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMWithdraw\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/AMMWithdraw.html#Sequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMWithdraw\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/AMMWithdraw.html#AccountTxnID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMWithdraw\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/AMMWithdraw.html#Flags\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMWithdraw\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/AMMWithdraw.html#LastLedgerSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMWithdraw\"},{\"kind\":1024,\"name\":\"Memos\",\"url\":\"interfaces/AMMWithdraw.html#Memos\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMWithdraw\"},{\"kind\":1024,\"name\":\"Signers\",\"url\":\"interfaces/AMMWithdraw.html#Signers\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMWithdraw\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/AMMWithdraw.html#SourceTag\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMWithdraw\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/AMMWithdraw.html#SigningPubKey\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMWithdraw\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/AMMWithdraw.html#TicketSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMWithdraw\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/AMMWithdraw.html#TxnSignature\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMWithdraw\"},{\"kind\":1024,\"name\":\"NetworkID\",\"url\":\"interfaces/AMMWithdraw.html#NetworkID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"AMMWithdraw\"},{\"kind\":256,\"name\":\"CheckCancel\",\"url\":\"interfaces/CheckCancel.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"TransactionType\",\"url\":\"interfaces/CheckCancel.html#TransactionType\",\"classes\":\"\",\"parent\":\"CheckCancel\"},{\"kind\":1024,\"name\":\"CheckID\",\"url\":\"interfaces/CheckCancel.html#CheckID\",\"classes\":\"\",\"parent\":\"CheckCancel\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/CheckCancel.html#Account\",\"classes\":\"tsd-is-inherited\",\"parent\":\"CheckCancel\"},{\"kind\":1024,\"name\":\"Fee\",\"url\":\"interfaces/CheckCancel.html#Fee\",\"classes\":\"tsd-is-inherited\",\"parent\":\"CheckCancel\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/CheckCancel.html#Sequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"CheckCancel\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/CheckCancel.html#AccountTxnID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"CheckCancel\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/CheckCancel.html#Flags\",\"classes\":\"tsd-is-inherited\",\"parent\":\"CheckCancel\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/CheckCancel.html#LastLedgerSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"CheckCancel\"},{\"kind\":1024,\"name\":\"Memos\",\"url\":\"interfaces/CheckCancel.html#Memos\",\"classes\":\"tsd-is-inherited\",\"parent\":\"CheckCancel\"},{\"kind\":1024,\"name\":\"Signers\",\"url\":\"interfaces/CheckCancel.html#Signers\",\"classes\":\"tsd-is-inherited\",\"parent\":\"CheckCancel\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/CheckCancel.html#SourceTag\",\"classes\":\"tsd-is-inherited\",\"parent\":\"CheckCancel\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/CheckCancel.html#SigningPubKey\",\"classes\":\"tsd-is-inherited\",\"parent\":\"CheckCancel\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/CheckCancel.html#TicketSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"CheckCancel\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/CheckCancel.html#TxnSignature\",\"classes\":\"tsd-is-inherited\",\"parent\":\"CheckCancel\"},{\"kind\":1024,\"name\":\"NetworkID\",\"url\":\"interfaces/CheckCancel.html#NetworkID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"CheckCancel\"},{\"kind\":256,\"name\":\"CheckCash\",\"url\":\"interfaces/CheckCash.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"TransactionType\",\"url\":\"interfaces/CheckCash.html#TransactionType\",\"classes\":\"\",\"parent\":\"CheckCash\"},{\"kind\":1024,\"name\":\"CheckID\",\"url\":\"interfaces/CheckCash.html#CheckID\",\"classes\":\"\",\"parent\":\"CheckCash\"},{\"kind\":1024,\"name\":\"Amount\",\"url\":\"interfaces/CheckCash.html#Amount\",\"classes\":\"\",\"parent\":\"CheckCash\"},{\"kind\":1024,\"name\":\"DeliverMin\",\"url\":\"interfaces/CheckCash.html#DeliverMin\",\"classes\":\"\",\"parent\":\"CheckCash\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/CheckCash.html#Account\",\"classes\":\"tsd-is-inherited\",\"parent\":\"CheckCash\"},{\"kind\":1024,\"name\":\"Fee\",\"url\":\"interfaces/CheckCash.html#Fee\",\"classes\":\"tsd-is-inherited\",\"parent\":\"CheckCash\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/CheckCash.html#Sequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"CheckCash\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/CheckCash.html#AccountTxnID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"CheckCash\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/CheckCash.html#Flags\",\"classes\":\"tsd-is-inherited\",\"parent\":\"CheckCash\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/CheckCash.html#LastLedgerSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"CheckCash\"},{\"kind\":1024,\"name\":\"Memos\",\"url\":\"interfaces/CheckCash.html#Memos\",\"classes\":\"tsd-is-inherited\",\"parent\":\"CheckCash\"},{\"kind\":1024,\"name\":\"Signers\",\"url\":\"interfaces/CheckCash.html#Signers\",\"classes\":\"tsd-is-inherited\",\"parent\":\"CheckCash\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/CheckCash.html#SourceTag\",\"classes\":\"tsd-is-inherited\",\"parent\":\"CheckCash\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/CheckCash.html#SigningPubKey\",\"classes\":\"tsd-is-inherited\",\"parent\":\"CheckCash\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/CheckCash.html#TicketSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"CheckCash\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/CheckCash.html#TxnSignature\",\"classes\":\"tsd-is-inherited\",\"parent\":\"CheckCash\"},{\"kind\":1024,\"name\":\"NetworkID\",\"url\":\"interfaces/CheckCash.html#NetworkID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"CheckCash\"},{\"kind\":256,\"name\":\"CheckCreate\",\"url\":\"interfaces/CheckCreate.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"TransactionType\",\"url\":\"interfaces/CheckCreate.html#TransactionType\",\"classes\":\"\",\"parent\":\"CheckCreate\"},{\"kind\":1024,\"name\":\"Destination\",\"url\":\"interfaces/CheckCreate.html#Destination\",\"classes\":\"\",\"parent\":\"CheckCreate\"},{\"kind\":1024,\"name\":\"SendMax\",\"url\":\"interfaces/CheckCreate.html#SendMax\",\"classes\":\"\",\"parent\":\"CheckCreate\"},{\"kind\":1024,\"name\":\"DestinationTag\",\"url\":\"interfaces/CheckCreate.html#DestinationTag\",\"classes\":\"\",\"parent\":\"CheckCreate\"},{\"kind\":1024,\"name\":\"Expiration\",\"url\":\"interfaces/CheckCreate.html#Expiration\",\"classes\":\"\",\"parent\":\"CheckCreate\"},{\"kind\":1024,\"name\":\"InvoiceID\",\"url\":\"interfaces/CheckCreate.html#InvoiceID\",\"classes\":\"\",\"parent\":\"CheckCreate\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/CheckCreate.html#Account\",\"classes\":\"tsd-is-inherited\",\"parent\":\"CheckCreate\"},{\"kind\":1024,\"name\":\"Fee\",\"url\":\"interfaces/CheckCreate.html#Fee\",\"classes\":\"tsd-is-inherited\",\"parent\":\"CheckCreate\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/CheckCreate.html#Sequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"CheckCreate\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/CheckCreate.html#AccountTxnID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"CheckCreate\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/CheckCreate.html#Flags\",\"classes\":\"tsd-is-inherited\",\"parent\":\"CheckCreate\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/CheckCreate.html#LastLedgerSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"CheckCreate\"},{\"kind\":1024,\"name\":\"Memos\",\"url\":\"interfaces/CheckCreate.html#Memos\",\"classes\":\"tsd-is-inherited\",\"parent\":\"CheckCreate\"},{\"kind\":1024,\"name\":\"Signers\",\"url\":\"interfaces/CheckCreate.html#Signers\",\"classes\":\"tsd-is-inherited\",\"parent\":\"CheckCreate\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/CheckCreate.html#SourceTag\",\"classes\":\"tsd-is-inherited\",\"parent\":\"CheckCreate\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/CheckCreate.html#SigningPubKey\",\"classes\":\"tsd-is-inherited\",\"parent\":\"CheckCreate\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/CheckCreate.html#TicketSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"CheckCreate\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/CheckCreate.html#TxnSignature\",\"classes\":\"tsd-is-inherited\",\"parent\":\"CheckCreate\"},{\"kind\":1024,\"name\":\"NetworkID\",\"url\":\"interfaces/CheckCreate.html#NetworkID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"CheckCreate\"},{\"kind\":256,\"name\":\"Clawback\",\"url\":\"interfaces/Clawback.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"TransactionType\",\"url\":\"interfaces/Clawback.html#TransactionType\",\"classes\":\"\",\"parent\":\"Clawback\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/Clawback.html#Account\",\"classes\":\"\",\"parent\":\"Clawback\"},{\"kind\":1024,\"name\":\"Amount\",\"url\":\"interfaces/Clawback.html#Amount\",\"classes\":\"\",\"parent\":\"Clawback\"},{\"kind\":1024,\"name\":\"Fee\",\"url\":\"interfaces/Clawback.html#Fee\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Clawback\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/Clawback.html#Sequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Clawback\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/Clawback.html#AccountTxnID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Clawback\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/Clawback.html#Flags\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Clawback\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/Clawback.html#LastLedgerSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Clawback\"},{\"kind\":1024,\"name\":\"Memos\",\"url\":\"interfaces/Clawback.html#Memos\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Clawback\"},{\"kind\":1024,\"name\":\"Signers\",\"url\":\"interfaces/Clawback.html#Signers\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Clawback\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/Clawback.html#SourceTag\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Clawback\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/Clawback.html#SigningPubKey\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Clawback\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/Clawback.html#TicketSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Clawback\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/Clawback.html#TxnSignature\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Clawback\"},{\"kind\":1024,\"name\":\"NetworkID\",\"url\":\"interfaces/Clawback.html#NetworkID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Clawback\"},{\"kind\":256,\"name\":\"DIDDelete\",\"url\":\"interfaces/DIDDelete.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"TransactionType\",\"url\":\"interfaces/DIDDelete.html#TransactionType\",\"classes\":\"\",\"parent\":\"DIDDelete\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/DIDDelete.html#Account\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DIDDelete\"},{\"kind\":1024,\"name\":\"Fee\",\"url\":\"interfaces/DIDDelete.html#Fee\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DIDDelete\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/DIDDelete.html#Sequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DIDDelete\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/DIDDelete.html#AccountTxnID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DIDDelete\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/DIDDelete.html#Flags\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DIDDelete\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/DIDDelete.html#LastLedgerSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DIDDelete\"},{\"kind\":1024,\"name\":\"Memos\",\"url\":\"interfaces/DIDDelete.html#Memos\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DIDDelete\"},{\"kind\":1024,\"name\":\"Signers\",\"url\":\"interfaces/DIDDelete.html#Signers\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DIDDelete\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/DIDDelete.html#SourceTag\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DIDDelete\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/DIDDelete.html#SigningPubKey\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DIDDelete\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/DIDDelete.html#TicketSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DIDDelete\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/DIDDelete.html#TxnSignature\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DIDDelete\"},{\"kind\":1024,\"name\":\"NetworkID\",\"url\":\"interfaces/DIDDelete.html#NetworkID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DIDDelete\"},{\"kind\":256,\"name\":\"DIDSet\",\"url\":\"interfaces/DIDSet.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"TransactionType\",\"url\":\"interfaces/DIDSet.html#TransactionType\",\"classes\":\"\",\"parent\":\"DIDSet\"},{\"kind\":1024,\"name\":\"Data\",\"url\":\"interfaces/DIDSet.html#Data\",\"classes\":\"\",\"parent\":\"DIDSet\"},{\"kind\":1024,\"name\":\"DIDDocument\",\"url\":\"interfaces/DIDSet.html#DIDDocument\",\"classes\":\"\",\"parent\":\"DIDSet\"},{\"kind\":1024,\"name\":\"URI\",\"url\":\"interfaces/DIDSet.html#URI\",\"classes\":\"\",\"parent\":\"DIDSet\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/DIDSet.html#Account\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DIDSet\"},{\"kind\":1024,\"name\":\"Fee\",\"url\":\"interfaces/DIDSet.html#Fee\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DIDSet\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/DIDSet.html#Sequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DIDSet\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/DIDSet.html#AccountTxnID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DIDSet\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/DIDSet.html#Flags\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DIDSet\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/DIDSet.html#LastLedgerSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DIDSet\"},{\"kind\":1024,\"name\":\"Memos\",\"url\":\"interfaces/DIDSet.html#Memos\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DIDSet\"},{\"kind\":1024,\"name\":\"Signers\",\"url\":\"interfaces/DIDSet.html#Signers\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DIDSet\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/DIDSet.html#SourceTag\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DIDSet\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/DIDSet.html#SigningPubKey\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DIDSet\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/DIDSet.html#TicketSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DIDSet\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/DIDSet.html#TxnSignature\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DIDSet\"},{\"kind\":1024,\"name\":\"NetworkID\",\"url\":\"interfaces/DIDSet.html#NetworkID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DIDSet\"},{\"kind\":256,\"name\":\"DepositPreauth\",\"url\":\"interfaces/DepositPreauth.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"TransactionType\",\"url\":\"interfaces/DepositPreauth.html#TransactionType\",\"classes\":\"\",\"parent\":\"DepositPreauth\"},{\"kind\":1024,\"name\":\"Authorize\",\"url\":\"interfaces/DepositPreauth.html#Authorize\",\"classes\":\"\",\"parent\":\"DepositPreauth\"},{\"kind\":1024,\"name\":\"Unauthorize\",\"url\":\"interfaces/DepositPreauth.html#Unauthorize\",\"classes\":\"\",\"parent\":\"DepositPreauth\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/DepositPreauth.html#Account\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DepositPreauth\"},{\"kind\":1024,\"name\":\"Fee\",\"url\":\"interfaces/DepositPreauth.html#Fee\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DepositPreauth\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/DepositPreauth.html#Sequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DepositPreauth\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/DepositPreauth.html#AccountTxnID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DepositPreauth\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/DepositPreauth.html#Flags\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DepositPreauth\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/DepositPreauth.html#LastLedgerSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DepositPreauth\"},{\"kind\":1024,\"name\":\"Memos\",\"url\":\"interfaces/DepositPreauth.html#Memos\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DepositPreauth\"},{\"kind\":1024,\"name\":\"Signers\",\"url\":\"interfaces/DepositPreauth.html#Signers\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DepositPreauth\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/DepositPreauth.html#SourceTag\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DepositPreauth\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/DepositPreauth.html#SigningPubKey\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DepositPreauth\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/DepositPreauth.html#TicketSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DepositPreauth\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/DepositPreauth.html#TxnSignature\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DepositPreauth\"},{\"kind\":1024,\"name\":\"NetworkID\",\"url\":\"interfaces/DepositPreauth.html#NetworkID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DepositPreauth\"},{\"kind\":256,\"name\":\"EscrowCancel\",\"url\":\"interfaces/EscrowCancel.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"TransactionType\",\"url\":\"interfaces/EscrowCancel.html#TransactionType\",\"classes\":\"\",\"parent\":\"EscrowCancel\"},{\"kind\":1024,\"name\":\"Owner\",\"url\":\"interfaces/EscrowCancel.html#Owner\",\"classes\":\"\",\"parent\":\"EscrowCancel\"},{\"kind\":1024,\"name\":\"OfferSequence\",\"url\":\"interfaces/EscrowCancel.html#OfferSequence\",\"classes\":\"\",\"parent\":\"EscrowCancel\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/EscrowCancel.html#Account\",\"classes\":\"tsd-is-inherited\",\"parent\":\"EscrowCancel\"},{\"kind\":1024,\"name\":\"Fee\",\"url\":\"interfaces/EscrowCancel.html#Fee\",\"classes\":\"tsd-is-inherited\",\"parent\":\"EscrowCancel\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/EscrowCancel.html#Sequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"EscrowCancel\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/EscrowCancel.html#AccountTxnID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"EscrowCancel\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/EscrowCancel.html#Flags\",\"classes\":\"tsd-is-inherited\",\"parent\":\"EscrowCancel\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/EscrowCancel.html#LastLedgerSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"EscrowCancel\"},{\"kind\":1024,\"name\":\"Memos\",\"url\":\"interfaces/EscrowCancel.html#Memos\",\"classes\":\"tsd-is-inherited\",\"parent\":\"EscrowCancel\"},{\"kind\":1024,\"name\":\"Signers\",\"url\":\"interfaces/EscrowCancel.html#Signers\",\"classes\":\"tsd-is-inherited\",\"parent\":\"EscrowCancel\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/EscrowCancel.html#SourceTag\",\"classes\":\"tsd-is-inherited\",\"parent\":\"EscrowCancel\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/EscrowCancel.html#SigningPubKey\",\"classes\":\"tsd-is-inherited\",\"parent\":\"EscrowCancel\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/EscrowCancel.html#TicketSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"EscrowCancel\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/EscrowCancel.html#TxnSignature\",\"classes\":\"tsd-is-inherited\",\"parent\":\"EscrowCancel\"},{\"kind\":1024,\"name\":\"NetworkID\",\"url\":\"interfaces/EscrowCancel.html#NetworkID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"EscrowCancel\"},{\"kind\":256,\"name\":\"EscrowCreate\",\"url\":\"interfaces/EscrowCreate.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"TransactionType\",\"url\":\"interfaces/EscrowCreate.html#TransactionType\",\"classes\":\"\",\"parent\":\"EscrowCreate\"},{\"kind\":1024,\"name\":\"Amount\",\"url\":\"interfaces/EscrowCreate.html#Amount\",\"classes\":\"\",\"parent\":\"EscrowCreate\"},{\"kind\":1024,\"name\":\"Destination\",\"url\":\"interfaces/EscrowCreate.html#Destination\",\"classes\":\"\",\"parent\":\"EscrowCreate\"},{\"kind\":1024,\"name\":\"CancelAfter\",\"url\":\"interfaces/EscrowCreate.html#CancelAfter\",\"classes\":\"\",\"parent\":\"EscrowCreate\"},{\"kind\":1024,\"name\":\"FinishAfter\",\"url\":\"interfaces/EscrowCreate.html#FinishAfter\",\"classes\":\"\",\"parent\":\"EscrowCreate\"},{\"kind\":1024,\"name\":\"Condition\",\"url\":\"interfaces/EscrowCreate.html#Condition\",\"classes\":\"\",\"parent\":\"EscrowCreate\"},{\"kind\":1024,\"name\":\"DestinationTag\",\"url\":\"interfaces/EscrowCreate.html#DestinationTag\",\"classes\":\"\",\"parent\":\"EscrowCreate\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/EscrowCreate.html#Account\",\"classes\":\"tsd-is-inherited\",\"parent\":\"EscrowCreate\"},{\"kind\":1024,\"name\":\"Fee\",\"url\":\"interfaces/EscrowCreate.html#Fee\",\"classes\":\"tsd-is-inherited\",\"parent\":\"EscrowCreate\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/EscrowCreate.html#Sequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"EscrowCreate\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/EscrowCreate.html#AccountTxnID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"EscrowCreate\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/EscrowCreate.html#Flags\",\"classes\":\"tsd-is-inherited\",\"parent\":\"EscrowCreate\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/EscrowCreate.html#LastLedgerSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"EscrowCreate\"},{\"kind\":1024,\"name\":\"Memos\",\"url\":\"interfaces/EscrowCreate.html#Memos\",\"classes\":\"tsd-is-inherited\",\"parent\":\"EscrowCreate\"},{\"kind\":1024,\"name\":\"Signers\",\"url\":\"interfaces/EscrowCreate.html#Signers\",\"classes\":\"tsd-is-inherited\",\"parent\":\"EscrowCreate\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/EscrowCreate.html#SourceTag\",\"classes\":\"tsd-is-inherited\",\"parent\":\"EscrowCreate\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/EscrowCreate.html#SigningPubKey\",\"classes\":\"tsd-is-inherited\",\"parent\":\"EscrowCreate\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/EscrowCreate.html#TicketSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"EscrowCreate\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/EscrowCreate.html#TxnSignature\",\"classes\":\"tsd-is-inherited\",\"parent\":\"EscrowCreate\"},{\"kind\":1024,\"name\":\"NetworkID\",\"url\":\"interfaces/EscrowCreate.html#NetworkID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"EscrowCreate\"},{\"kind\":256,\"name\":\"EscrowFinish\",\"url\":\"interfaces/EscrowFinish.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"TransactionType\",\"url\":\"interfaces/EscrowFinish.html#TransactionType\",\"classes\":\"\",\"parent\":\"EscrowFinish\"},{\"kind\":1024,\"name\":\"Owner\",\"url\":\"interfaces/EscrowFinish.html#Owner\",\"classes\":\"\",\"parent\":\"EscrowFinish\"},{\"kind\":1024,\"name\":\"OfferSequence\",\"url\":\"interfaces/EscrowFinish.html#OfferSequence\",\"classes\":\"\",\"parent\":\"EscrowFinish\"},{\"kind\":1024,\"name\":\"Condition\",\"url\":\"interfaces/EscrowFinish.html#Condition\",\"classes\":\"\",\"parent\":\"EscrowFinish\"},{\"kind\":1024,\"name\":\"Fulfillment\",\"url\":\"interfaces/EscrowFinish.html#Fulfillment\",\"classes\":\"\",\"parent\":\"EscrowFinish\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/EscrowFinish.html#Account\",\"classes\":\"tsd-is-inherited\",\"parent\":\"EscrowFinish\"},{\"kind\":1024,\"name\":\"Fee\",\"url\":\"interfaces/EscrowFinish.html#Fee\",\"classes\":\"tsd-is-inherited\",\"parent\":\"EscrowFinish\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/EscrowFinish.html#Sequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"EscrowFinish\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/EscrowFinish.html#AccountTxnID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"EscrowFinish\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/EscrowFinish.html#Flags\",\"classes\":\"tsd-is-inherited\",\"parent\":\"EscrowFinish\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/EscrowFinish.html#LastLedgerSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"EscrowFinish\"},{\"kind\":1024,\"name\":\"Memos\",\"url\":\"interfaces/EscrowFinish.html#Memos\",\"classes\":\"tsd-is-inherited\",\"parent\":\"EscrowFinish\"},{\"kind\":1024,\"name\":\"Signers\",\"url\":\"interfaces/EscrowFinish.html#Signers\",\"classes\":\"tsd-is-inherited\",\"parent\":\"EscrowFinish\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/EscrowFinish.html#SourceTag\",\"classes\":\"tsd-is-inherited\",\"parent\":\"EscrowFinish\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/EscrowFinish.html#SigningPubKey\",\"classes\":\"tsd-is-inherited\",\"parent\":\"EscrowFinish\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/EscrowFinish.html#TicketSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"EscrowFinish\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/EscrowFinish.html#TxnSignature\",\"classes\":\"tsd-is-inherited\",\"parent\":\"EscrowFinish\"},{\"kind\":1024,\"name\":\"NetworkID\",\"url\":\"interfaces/EscrowFinish.html#NetworkID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"EscrowFinish\"},{\"kind\":256,\"name\":\"EnableAmendment\",\"url\":\"interfaces/EnableAmendment.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"TransactionType\",\"url\":\"interfaces/EnableAmendment.html#TransactionType\",\"classes\":\"\",\"parent\":\"EnableAmendment\"},{\"kind\":1024,\"name\":\"Amendment\",\"url\":\"interfaces/EnableAmendment.html#Amendment\",\"classes\":\"\",\"parent\":\"EnableAmendment\"},{\"kind\":1024,\"name\":\"LedgerSequence\",\"url\":\"interfaces/EnableAmendment.html#LedgerSequence\",\"classes\":\"\",\"parent\":\"EnableAmendment\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/EnableAmendment.html#Account\",\"classes\":\"tsd-is-inherited\",\"parent\":\"EnableAmendment\"},{\"kind\":1024,\"name\":\"Fee\",\"url\":\"interfaces/EnableAmendment.html#Fee\",\"classes\":\"tsd-is-inherited\",\"parent\":\"EnableAmendment\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/EnableAmendment.html#Sequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"EnableAmendment\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/EnableAmendment.html#AccountTxnID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"EnableAmendment\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/EnableAmendment.html#Flags\",\"classes\":\"tsd-is-inherited\",\"parent\":\"EnableAmendment\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/EnableAmendment.html#LastLedgerSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"EnableAmendment\"},{\"kind\":1024,\"name\":\"Memos\",\"url\":\"interfaces/EnableAmendment.html#Memos\",\"classes\":\"tsd-is-inherited\",\"parent\":\"EnableAmendment\"},{\"kind\":1024,\"name\":\"Signers\",\"url\":\"interfaces/EnableAmendment.html#Signers\",\"classes\":\"tsd-is-inherited\",\"parent\":\"EnableAmendment\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/EnableAmendment.html#SourceTag\",\"classes\":\"tsd-is-inherited\",\"parent\":\"EnableAmendment\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/EnableAmendment.html#SigningPubKey\",\"classes\":\"tsd-is-inherited\",\"parent\":\"EnableAmendment\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/EnableAmendment.html#TicketSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"EnableAmendment\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/EnableAmendment.html#TxnSignature\",\"classes\":\"tsd-is-inherited\",\"parent\":\"EnableAmendment\"},{\"kind\":1024,\"name\":\"NetworkID\",\"url\":\"interfaces/EnableAmendment.html#NetworkID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"EnableAmendment\"},{\"kind\":8,\"name\":\"EnableAmendmentFlags\",\"url\":\"enums/EnableAmendmentFlags.html\",\"classes\":\"\"},{\"kind\":16,\"name\":\"tfGotMajority\",\"url\":\"enums/EnableAmendmentFlags.html#tfGotMajority\",\"classes\":\"\",\"parent\":\"EnableAmendmentFlags\"},{\"kind\":16,\"name\":\"tfLostMajority\",\"url\":\"enums/EnableAmendmentFlags.html#tfLostMajority\",\"classes\":\"\",\"parent\":\"EnableAmendmentFlags\"},{\"kind\":256,\"name\":\"NFTokenAcceptOffer\",\"url\":\"interfaces/NFTokenAcceptOffer.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"TransactionType\",\"url\":\"interfaces/NFTokenAcceptOffer.html#TransactionType\",\"classes\":\"\",\"parent\":\"NFTokenAcceptOffer\"},{\"kind\":1024,\"name\":\"NFTokenSellOffer\",\"url\":\"interfaces/NFTokenAcceptOffer.html#NFTokenSellOffer\",\"classes\":\"\",\"parent\":\"NFTokenAcceptOffer\"},{\"kind\":1024,\"name\":\"NFTokenBuyOffer\",\"url\":\"interfaces/NFTokenAcceptOffer.html#NFTokenBuyOffer\",\"classes\":\"\",\"parent\":\"NFTokenAcceptOffer\"},{\"kind\":1024,\"name\":\"NFTokenBrokerFee\",\"url\":\"interfaces/NFTokenAcceptOffer.html#NFTokenBrokerFee\",\"classes\":\"\",\"parent\":\"NFTokenAcceptOffer\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/NFTokenAcceptOffer.html#Account\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTokenAcceptOffer\"},{\"kind\":1024,\"name\":\"Fee\",\"url\":\"interfaces/NFTokenAcceptOffer.html#Fee\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTokenAcceptOffer\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/NFTokenAcceptOffer.html#Sequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTokenAcceptOffer\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/NFTokenAcceptOffer.html#AccountTxnID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTokenAcceptOffer\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/NFTokenAcceptOffer.html#Flags\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTokenAcceptOffer\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/NFTokenAcceptOffer.html#LastLedgerSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTokenAcceptOffer\"},{\"kind\":1024,\"name\":\"Memos\",\"url\":\"interfaces/NFTokenAcceptOffer.html#Memos\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTokenAcceptOffer\"},{\"kind\":1024,\"name\":\"Signers\",\"url\":\"interfaces/NFTokenAcceptOffer.html#Signers\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTokenAcceptOffer\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/NFTokenAcceptOffer.html#SourceTag\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTokenAcceptOffer\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/NFTokenAcceptOffer.html#SigningPubKey\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTokenAcceptOffer\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/NFTokenAcceptOffer.html#TicketSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTokenAcceptOffer\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/NFTokenAcceptOffer.html#TxnSignature\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTokenAcceptOffer\"},{\"kind\":1024,\"name\":\"NetworkID\",\"url\":\"interfaces/NFTokenAcceptOffer.html#NetworkID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTokenAcceptOffer\"},{\"kind\":256,\"name\":\"NFTokenBurn\",\"url\":\"interfaces/NFTokenBurn.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"TransactionType\",\"url\":\"interfaces/NFTokenBurn.html#TransactionType\",\"classes\":\"\",\"parent\":\"NFTokenBurn\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/NFTokenBurn.html#Account\",\"classes\":\"\",\"parent\":\"NFTokenBurn\"},{\"kind\":1024,\"name\":\"NFTokenID\",\"url\":\"interfaces/NFTokenBurn.html#NFTokenID\",\"classes\":\"\",\"parent\":\"NFTokenBurn\"},{\"kind\":1024,\"name\":\"Owner\",\"url\":\"interfaces/NFTokenBurn.html#Owner\",\"classes\":\"\",\"parent\":\"NFTokenBurn\"},{\"kind\":1024,\"name\":\"Fee\",\"url\":\"interfaces/NFTokenBurn.html#Fee\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTokenBurn\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/NFTokenBurn.html#Sequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTokenBurn\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/NFTokenBurn.html#AccountTxnID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTokenBurn\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/NFTokenBurn.html#Flags\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTokenBurn\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/NFTokenBurn.html#LastLedgerSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTokenBurn\"},{\"kind\":1024,\"name\":\"Memos\",\"url\":\"interfaces/NFTokenBurn.html#Memos\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTokenBurn\"},{\"kind\":1024,\"name\":\"Signers\",\"url\":\"interfaces/NFTokenBurn.html#Signers\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTokenBurn\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/NFTokenBurn.html#SourceTag\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTokenBurn\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/NFTokenBurn.html#SigningPubKey\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTokenBurn\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/NFTokenBurn.html#TicketSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTokenBurn\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/NFTokenBurn.html#TxnSignature\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTokenBurn\"},{\"kind\":1024,\"name\":\"NetworkID\",\"url\":\"interfaces/NFTokenBurn.html#NetworkID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTokenBurn\"},{\"kind\":256,\"name\":\"NFTokenCancelOffer\",\"url\":\"interfaces/NFTokenCancelOffer.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"TransactionType\",\"url\":\"interfaces/NFTokenCancelOffer.html#TransactionType\",\"classes\":\"\",\"parent\":\"NFTokenCancelOffer\"},{\"kind\":1024,\"name\":\"NFTokenOffers\",\"url\":\"interfaces/NFTokenCancelOffer.html#NFTokenOffers\",\"classes\":\"\",\"parent\":\"NFTokenCancelOffer\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/NFTokenCancelOffer.html#Account\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTokenCancelOffer\"},{\"kind\":1024,\"name\":\"Fee\",\"url\":\"interfaces/NFTokenCancelOffer.html#Fee\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTokenCancelOffer\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/NFTokenCancelOffer.html#Sequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTokenCancelOffer\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/NFTokenCancelOffer.html#AccountTxnID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTokenCancelOffer\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/NFTokenCancelOffer.html#Flags\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTokenCancelOffer\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/NFTokenCancelOffer.html#LastLedgerSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTokenCancelOffer\"},{\"kind\":1024,\"name\":\"Memos\",\"url\":\"interfaces/NFTokenCancelOffer.html#Memos\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTokenCancelOffer\"},{\"kind\":1024,\"name\":\"Signers\",\"url\":\"interfaces/NFTokenCancelOffer.html#Signers\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTokenCancelOffer\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/NFTokenCancelOffer.html#SourceTag\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTokenCancelOffer\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/NFTokenCancelOffer.html#SigningPubKey\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTokenCancelOffer\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/NFTokenCancelOffer.html#TicketSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTokenCancelOffer\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/NFTokenCancelOffer.html#TxnSignature\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTokenCancelOffer\"},{\"kind\":1024,\"name\":\"NetworkID\",\"url\":\"interfaces/NFTokenCancelOffer.html#NetworkID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTokenCancelOffer\"},{\"kind\":256,\"name\":\"NFTokenCreateOffer\",\"url\":\"interfaces/NFTokenCreateOffer.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"TransactionType\",\"url\":\"interfaces/NFTokenCreateOffer.html#TransactionType\",\"classes\":\"\",\"parent\":\"NFTokenCreateOffer\"},{\"kind\":1024,\"name\":\"NFTokenID\",\"url\":\"interfaces/NFTokenCreateOffer.html#NFTokenID\",\"classes\":\"\",\"parent\":\"NFTokenCreateOffer\"},{\"kind\":1024,\"name\":\"Amount\",\"url\":\"interfaces/NFTokenCreateOffer.html#Amount\",\"classes\":\"\",\"parent\":\"NFTokenCreateOffer\"},{\"kind\":1024,\"name\":\"Owner\",\"url\":\"interfaces/NFTokenCreateOffer.html#Owner\",\"classes\":\"\",\"parent\":\"NFTokenCreateOffer\"},{\"kind\":1024,\"name\":\"Expiration\",\"url\":\"interfaces/NFTokenCreateOffer.html#Expiration\",\"classes\":\"\",\"parent\":\"NFTokenCreateOffer\"},{\"kind\":1024,\"name\":\"Destination\",\"url\":\"interfaces/NFTokenCreateOffer.html#Destination\",\"classes\":\"\",\"parent\":\"NFTokenCreateOffer\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/NFTokenCreateOffer.html#Flags\",\"classes\":\"\",\"parent\":\"NFTokenCreateOffer\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/NFTokenCreateOffer.html#Account\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTokenCreateOffer\"},{\"kind\":1024,\"name\":\"Fee\",\"url\":\"interfaces/NFTokenCreateOffer.html#Fee\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTokenCreateOffer\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/NFTokenCreateOffer.html#Sequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTokenCreateOffer\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/NFTokenCreateOffer.html#AccountTxnID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTokenCreateOffer\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/NFTokenCreateOffer.html#LastLedgerSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTokenCreateOffer\"},{\"kind\":1024,\"name\":\"Memos\",\"url\":\"interfaces/NFTokenCreateOffer.html#Memos\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTokenCreateOffer\"},{\"kind\":1024,\"name\":\"Signers\",\"url\":\"interfaces/NFTokenCreateOffer.html#Signers\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTokenCreateOffer\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/NFTokenCreateOffer.html#SourceTag\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTokenCreateOffer\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/NFTokenCreateOffer.html#SigningPubKey\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTokenCreateOffer\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/NFTokenCreateOffer.html#TicketSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTokenCreateOffer\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/NFTokenCreateOffer.html#TxnSignature\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTokenCreateOffer\"},{\"kind\":1024,\"name\":\"NetworkID\",\"url\":\"interfaces/NFTokenCreateOffer.html#NetworkID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTokenCreateOffer\"},{\"kind\":8,\"name\":\"NFTokenCreateOfferFlags\",\"url\":\"enums/NFTokenCreateOfferFlags.html\",\"classes\":\"\"},{\"kind\":16,\"name\":\"tfSellNFToken\",\"url\":\"enums/NFTokenCreateOfferFlags.html#tfSellNFToken\",\"classes\":\"\",\"parent\":\"NFTokenCreateOfferFlags\"},{\"kind\":256,\"name\":\"NFTokenCreateOfferFlagsInterface\",\"url\":\"interfaces/NFTokenCreateOfferFlagsInterface.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"tfSellNFToken\",\"url\":\"interfaces/NFTokenCreateOfferFlagsInterface.html#tfSellNFToken\",\"classes\":\"\",\"parent\":\"NFTokenCreateOfferFlagsInterface\"},{\"kind\":256,\"name\":\"NFTokenMint\",\"url\":\"interfaces/NFTokenMint.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"TransactionType\",\"url\":\"interfaces/NFTokenMint.html#TransactionType\",\"classes\":\"\",\"parent\":\"NFTokenMint\"},{\"kind\":1024,\"name\":\"NFTokenTaxon\",\"url\":\"interfaces/NFTokenMint.html#NFTokenTaxon\",\"classes\":\"\",\"parent\":\"NFTokenMint\"},{\"kind\":1024,\"name\":\"Issuer\",\"url\":\"interfaces/NFTokenMint.html#Issuer\",\"classes\":\"\",\"parent\":\"NFTokenMint\"},{\"kind\":1024,\"name\":\"TransferFee\",\"url\":\"interfaces/NFTokenMint.html#TransferFee\",\"classes\":\"\",\"parent\":\"NFTokenMint\"},{\"kind\":1024,\"name\":\"URI\",\"url\":\"interfaces/NFTokenMint.html#URI\",\"classes\":\"\",\"parent\":\"NFTokenMint\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/NFTokenMint.html#Flags\",\"classes\":\"\",\"parent\":\"NFTokenMint\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/NFTokenMint.html#Account\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTokenMint\"},{\"kind\":1024,\"name\":\"Fee\",\"url\":\"interfaces/NFTokenMint.html#Fee\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTokenMint\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/NFTokenMint.html#Sequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTokenMint\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/NFTokenMint.html#AccountTxnID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTokenMint\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/NFTokenMint.html#LastLedgerSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTokenMint\"},{\"kind\":1024,\"name\":\"Memos\",\"url\":\"interfaces/NFTokenMint.html#Memos\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTokenMint\"},{\"kind\":1024,\"name\":\"Signers\",\"url\":\"interfaces/NFTokenMint.html#Signers\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTokenMint\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/NFTokenMint.html#SourceTag\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTokenMint\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/NFTokenMint.html#SigningPubKey\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTokenMint\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/NFTokenMint.html#TicketSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTokenMint\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/NFTokenMint.html#TxnSignature\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTokenMint\"},{\"kind\":1024,\"name\":\"NetworkID\",\"url\":\"interfaces/NFTokenMint.html#NetworkID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NFTokenMint\"},{\"kind\":8,\"name\":\"NFTokenMintFlags\",\"url\":\"enums/NFTokenMintFlags.html\",\"classes\":\"\"},{\"kind\":16,\"name\":\"tfBurnable\",\"url\":\"enums/NFTokenMintFlags.html#tfBurnable\",\"classes\":\"\",\"parent\":\"NFTokenMintFlags\"},{\"kind\":16,\"name\":\"tfOnlyXRP\",\"url\":\"enums/NFTokenMintFlags.html#tfOnlyXRP\",\"classes\":\"\",\"parent\":\"NFTokenMintFlags\"},{\"kind\":16,\"name\":\"tfTrustLine\",\"url\":\"enums/NFTokenMintFlags.html#tfTrustLine\",\"classes\":\"\",\"parent\":\"NFTokenMintFlags\"},{\"kind\":16,\"name\":\"tfTransferable\",\"url\":\"enums/NFTokenMintFlags.html#tfTransferable\",\"classes\":\"\",\"parent\":\"NFTokenMintFlags\"},{\"kind\":256,\"name\":\"NFTokenMintFlagsInterface\",\"url\":\"interfaces/NFTokenMintFlagsInterface.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"tfBurnable\",\"url\":\"interfaces/NFTokenMintFlagsInterface.html#tfBurnable\",\"classes\":\"\",\"parent\":\"NFTokenMintFlagsInterface\"},{\"kind\":1024,\"name\":\"tfOnlyXRP\",\"url\":\"interfaces/NFTokenMintFlagsInterface.html#tfOnlyXRP\",\"classes\":\"\",\"parent\":\"NFTokenMintFlagsInterface\"},{\"kind\":1024,\"name\":\"tfTrustLine\",\"url\":\"interfaces/NFTokenMintFlagsInterface.html#tfTrustLine\",\"classes\":\"\",\"parent\":\"NFTokenMintFlagsInterface\"},{\"kind\":1024,\"name\":\"tfTransferable\",\"url\":\"interfaces/NFTokenMintFlagsInterface.html#tfTransferable\",\"classes\":\"\",\"parent\":\"NFTokenMintFlagsInterface\"},{\"kind\":256,\"name\":\"OfferCancel\",\"url\":\"interfaces/OfferCancel.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"TransactionType\",\"url\":\"interfaces/OfferCancel.html#TransactionType\",\"classes\":\"\",\"parent\":\"OfferCancel\"},{\"kind\":1024,\"name\":\"OfferSequence\",\"url\":\"interfaces/OfferCancel.html#OfferSequence\",\"classes\":\"\",\"parent\":\"OfferCancel\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/OfferCancel.html#Account\",\"classes\":\"tsd-is-inherited\",\"parent\":\"OfferCancel\"},{\"kind\":1024,\"name\":\"Fee\",\"url\":\"interfaces/OfferCancel.html#Fee\",\"classes\":\"tsd-is-inherited\",\"parent\":\"OfferCancel\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/OfferCancel.html#Sequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"OfferCancel\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/OfferCancel.html#AccountTxnID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"OfferCancel\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/OfferCancel.html#Flags\",\"classes\":\"tsd-is-inherited\",\"parent\":\"OfferCancel\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/OfferCancel.html#LastLedgerSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"OfferCancel\"},{\"kind\":1024,\"name\":\"Memos\",\"url\":\"interfaces/OfferCancel.html#Memos\",\"classes\":\"tsd-is-inherited\",\"parent\":\"OfferCancel\"},{\"kind\":1024,\"name\":\"Signers\",\"url\":\"interfaces/OfferCancel.html#Signers\",\"classes\":\"tsd-is-inherited\",\"parent\":\"OfferCancel\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/OfferCancel.html#SourceTag\",\"classes\":\"tsd-is-inherited\",\"parent\":\"OfferCancel\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/OfferCancel.html#SigningPubKey\",\"classes\":\"tsd-is-inherited\",\"parent\":\"OfferCancel\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/OfferCancel.html#TicketSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"OfferCancel\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/OfferCancel.html#TxnSignature\",\"classes\":\"tsd-is-inherited\",\"parent\":\"OfferCancel\"},{\"kind\":1024,\"name\":\"NetworkID\",\"url\":\"interfaces/OfferCancel.html#NetworkID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"OfferCancel\"},{\"kind\":8,\"name\":\"OfferCreateFlags\",\"url\":\"enums/OfferCreateFlags.html\",\"classes\":\"\"},{\"kind\":16,\"name\":\"tfPassive\",\"url\":\"enums/OfferCreateFlags.html#tfPassive\",\"classes\":\"\",\"parent\":\"OfferCreateFlags\"},{\"kind\":16,\"name\":\"tfImmediateOrCancel\",\"url\":\"enums/OfferCreateFlags.html#tfImmediateOrCancel\",\"classes\":\"\",\"parent\":\"OfferCreateFlags\"},{\"kind\":16,\"name\":\"tfFillOrKill\",\"url\":\"enums/OfferCreateFlags.html#tfFillOrKill\",\"classes\":\"\",\"parent\":\"OfferCreateFlags\"},{\"kind\":16,\"name\":\"tfSell\",\"url\":\"enums/OfferCreateFlags.html#tfSell\",\"classes\":\"\",\"parent\":\"OfferCreateFlags\"},{\"kind\":256,\"name\":\"OfferCreateFlagsInterface\",\"url\":\"interfaces/OfferCreateFlagsInterface.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"tfPassive\",\"url\":\"interfaces/OfferCreateFlagsInterface.html#tfPassive\",\"classes\":\"\",\"parent\":\"OfferCreateFlagsInterface\"},{\"kind\":1024,\"name\":\"tfImmediateOrCancel\",\"url\":\"interfaces/OfferCreateFlagsInterface.html#tfImmediateOrCancel\",\"classes\":\"\",\"parent\":\"OfferCreateFlagsInterface\"},{\"kind\":1024,\"name\":\"tfFillOrKill\",\"url\":\"interfaces/OfferCreateFlagsInterface.html#tfFillOrKill\",\"classes\":\"\",\"parent\":\"OfferCreateFlagsInterface\"},{\"kind\":1024,\"name\":\"tfSell\",\"url\":\"interfaces/OfferCreateFlagsInterface.html#tfSell\",\"classes\":\"\",\"parent\":\"OfferCreateFlagsInterface\"},{\"kind\":256,\"name\":\"OfferCreate\",\"url\":\"interfaces/OfferCreate.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"TransactionType\",\"url\":\"interfaces/OfferCreate.html#TransactionType\",\"classes\":\"\",\"parent\":\"OfferCreate\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/OfferCreate.html#Flags\",\"classes\":\"\",\"parent\":\"OfferCreate\"},{\"kind\":1024,\"name\":\"Expiration\",\"url\":\"interfaces/OfferCreate.html#Expiration\",\"classes\":\"\",\"parent\":\"OfferCreate\"},{\"kind\":1024,\"name\":\"OfferSequence\",\"url\":\"interfaces/OfferCreate.html#OfferSequence\",\"classes\":\"\",\"parent\":\"OfferCreate\"},{\"kind\":1024,\"name\":\"TakerGets\",\"url\":\"interfaces/OfferCreate.html#TakerGets\",\"classes\":\"\",\"parent\":\"OfferCreate\"},{\"kind\":1024,\"name\":\"TakerPays\",\"url\":\"interfaces/OfferCreate.html#TakerPays\",\"classes\":\"\",\"parent\":\"OfferCreate\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/OfferCreate.html#Account\",\"classes\":\"tsd-is-inherited\",\"parent\":\"OfferCreate\"},{\"kind\":1024,\"name\":\"Fee\",\"url\":\"interfaces/OfferCreate.html#Fee\",\"classes\":\"tsd-is-inherited\",\"parent\":\"OfferCreate\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/OfferCreate.html#Sequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"OfferCreate\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/OfferCreate.html#AccountTxnID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"OfferCreate\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/OfferCreate.html#LastLedgerSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"OfferCreate\"},{\"kind\":1024,\"name\":\"Memos\",\"url\":\"interfaces/OfferCreate.html#Memos\",\"classes\":\"tsd-is-inherited\",\"parent\":\"OfferCreate\"},{\"kind\":1024,\"name\":\"Signers\",\"url\":\"interfaces/OfferCreate.html#Signers\",\"classes\":\"tsd-is-inherited\",\"parent\":\"OfferCreate\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/OfferCreate.html#SourceTag\",\"classes\":\"tsd-is-inherited\",\"parent\":\"OfferCreate\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/OfferCreate.html#SigningPubKey\",\"classes\":\"tsd-is-inherited\",\"parent\":\"OfferCreate\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/OfferCreate.html#TicketSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"OfferCreate\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/OfferCreate.html#TxnSignature\",\"classes\":\"tsd-is-inherited\",\"parent\":\"OfferCreate\"},{\"kind\":1024,\"name\":\"NetworkID\",\"url\":\"interfaces/OfferCreate.html#NetworkID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"OfferCreate\"},{\"kind\":8,\"name\":\"PaymentFlags\",\"url\":\"enums/PaymentFlags.html\",\"classes\":\"\"},{\"kind\":16,\"name\":\"tfNoDirectRipple\",\"url\":\"enums/PaymentFlags.html#tfNoDirectRipple\",\"classes\":\"\",\"parent\":\"PaymentFlags\"},{\"kind\":16,\"name\":\"tfPartialPayment\",\"url\":\"enums/PaymentFlags.html#tfPartialPayment\",\"classes\":\"\",\"parent\":\"PaymentFlags\"},{\"kind\":16,\"name\":\"tfLimitQuality\",\"url\":\"enums/PaymentFlags.html#tfLimitQuality\",\"classes\":\"\",\"parent\":\"PaymentFlags\"},{\"kind\":256,\"name\":\"PaymentFlagsInterface\",\"url\":\"interfaces/PaymentFlagsInterface.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"tfNoDirectRipple\",\"url\":\"interfaces/PaymentFlagsInterface.html#tfNoDirectRipple\",\"classes\":\"\",\"parent\":\"PaymentFlagsInterface\"},{\"kind\":1024,\"name\":\"tfPartialPayment\",\"url\":\"interfaces/PaymentFlagsInterface.html#tfPartialPayment\",\"classes\":\"\",\"parent\":\"PaymentFlagsInterface\"},{\"kind\":1024,\"name\":\"tfLimitQuality\",\"url\":\"interfaces/PaymentFlagsInterface.html#tfLimitQuality\",\"classes\":\"\",\"parent\":\"PaymentFlagsInterface\"},{\"kind\":256,\"name\":\"Payment\",\"url\":\"interfaces/Payment.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"TransactionType\",\"url\":\"interfaces/Payment.html#TransactionType\",\"classes\":\"\",\"parent\":\"Payment\"},{\"kind\":1024,\"name\":\"Amount\",\"url\":\"interfaces/Payment.html#Amount\",\"classes\":\"\",\"parent\":\"Payment\"},{\"kind\":1024,\"name\":\"Destination\",\"url\":\"interfaces/Payment.html#Destination\",\"classes\":\"\",\"parent\":\"Payment\"},{\"kind\":1024,\"name\":\"DestinationTag\",\"url\":\"interfaces/Payment.html#DestinationTag\",\"classes\":\"\",\"parent\":\"Payment\"},{\"kind\":1024,\"name\":\"InvoiceID\",\"url\":\"interfaces/Payment.html#InvoiceID\",\"classes\":\"\",\"parent\":\"Payment\"},{\"kind\":1024,\"name\":\"Paths\",\"url\":\"interfaces/Payment.html#Paths\",\"classes\":\"\",\"parent\":\"Payment\"},{\"kind\":1024,\"name\":\"SendMax\",\"url\":\"interfaces/Payment.html#SendMax\",\"classes\":\"\",\"parent\":\"Payment\"},{\"kind\":1024,\"name\":\"DeliverMin\",\"url\":\"interfaces/Payment.html#DeliverMin\",\"classes\":\"\",\"parent\":\"Payment\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/Payment.html#Flags\",\"classes\":\"\",\"parent\":\"Payment\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/Payment.html#Account\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Payment\"},{\"kind\":1024,\"name\":\"Fee\",\"url\":\"interfaces/Payment.html#Fee\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Payment\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/Payment.html#Sequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Payment\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/Payment.html#AccountTxnID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Payment\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/Payment.html#LastLedgerSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Payment\"},{\"kind\":1024,\"name\":\"Memos\",\"url\":\"interfaces/Payment.html#Memos\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Payment\"},{\"kind\":1024,\"name\":\"Signers\",\"url\":\"interfaces/Payment.html#Signers\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Payment\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/Payment.html#SourceTag\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Payment\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/Payment.html#SigningPubKey\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Payment\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/Payment.html#TicketSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Payment\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/Payment.html#TxnSignature\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Payment\"},{\"kind\":1024,\"name\":\"NetworkID\",\"url\":\"interfaces/Payment.html#NetworkID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Payment\"},{\"kind\":8,\"name\":\"PaymentChannelClaimFlags\",\"url\":\"enums/PaymentChannelClaimFlags.html\",\"classes\":\"\"},{\"kind\":16,\"name\":\"tfRenew\",\"url\":\"enums/PaymentChannelClaimFlags.html#tfRenew\",\"classes\":\"\",\"parent\":\"PaymentChannelClaimFlags\"},{\"kind\":16,\"name\":\"tfClose\",\"url\":\"enums/PaymentChannelClaimFlags.html#tfClose\",\"classes\":\"\",\"parent\":\"PaymentChannelClaimFlags\"},{\"kind\":256,\"name\":\"PaymentChannelClaimFlagsInterface\",\"url\":\"interfaces/PaymentChannelClaimFlagsInterface.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"tfRenew\",\"url\":\"interfaces/PaymentChannelClaimFlagsInterface.html#tfRenew\",\"classes\":\"\",\"parent\":\"PaymentChannelClaimFlagsInterface\"},{\"kind\":1024,\"name\":\"tfClose\",\"url\":\"interfaces/PaymentChannelClaimFlagsInterface.html#tfClose\",\"classes\":\"\",\"parent\":\"PaymentChannelClaimFlagsInterface\"},{\"kind\":256,\"name\":\"PaymentChannelClaim\",\"url\":\"interfaces/PaymentChannelClaim.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"TransactionType\",\"url\":\"interfaces/PaymentChannelClaim.html#TransactionType\",\"classes\":\"\",\"parent\":\"PaymentChannelClaim\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/PaymentChannelClaim.html#Flags\",\"classes\":\"\",\"parent\":\"PaymentChannelClaim\"},{\"kind\":1024,\"name\":\"Channel\",\"url\":\"interfaces/PaymentChannelClaim.html#Channel\",\"classes\":\"\",\"parent\":\"PaymentChannelClaim\"},{\"kind\":1024,\"name\":\"Balance\",\"url\":\"interfaces/PaymentChannelClaim.html#Balance\",\"classes\":\"\",\"parent\":\"PaymentChannelClaim\"},{\"kind\":1024,\"name\":\"Amount\",\"url\":\"interfaces/PaymentChannelClaim.html#Amount\",\"classes\":\"\",\"parent\":\"PaymentChannelClaim\"},{\"kind\":1024,\"name\":\"Signature\",\"url\":\"interfaces/PaymentChannelClaim.html#Signature\",\"classes\":\"\",\"parent\":\"PaymentChannelClaim\"},{\"kind\":1024,\"name\":\"PublicKey\",\"url\":\"interfaces/PaymentChannelClaim.html#PublicKey\",\"classes\":\"\",\"parent\":\"PaymentChannelClaim\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/PaymentChannelClaim.html#Account\",\"classes\":\"tsd-is-inherited\",\"parent\":\"PaymentChannelClaim\"},{\"kind\":1024,\"name\":\"Fee\",\"url\":\"interfaces/PaymentChannelClaim.html#Fee\",\"classes\":\"tsd-is-inherited\",\"parent\":\"PaymentChannelClaim\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/PaymentChannelClaim.html#Sequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"PaymentChannelClaim\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/PaymentChannelClaim.html#AccountTxnID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"PaymentChannelClaim\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/PaymentChannelClaim.html#LastLedgerSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"PaymentChannelClaim\"},{\"kind\":1024,\"name\":\"Memos\",\"url\":\"interfaces/PaymentChannelClaim.html#Memos\",\"classes\":\"tsd-is-inherited\",\"parent\":\"PaymentChannelClaim\"},{\"kind\":1024,\"name\":\"Signers\",\"url\":\"interfaces/PaymentChannelClaim.html#Signers\",\"classes\":\"tsd-is-inherited\",\"parent\":\"PaymentChannelClaim\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/PaymentChannelClaim.html#SourceTag\",\"classes\":\"tsd-is-inherited\",\"parent\":\"PaymentChannelClaim\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/PaymentChannelClaim.html#SigningPubKey\",\"classes\":\"tsd-is-inherited\",\"parent\":\"PaymentChannelClaim\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/PaymentChannelClaim.html#TicketSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"PaymentChannelClaim\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/PaymentChannelClaim.html#TxnSignature\",\"classes\":\"tsd-is-inherited\",\"parent\":\"PaymentChannelClaim\"},{\"kind\":1024,\"name\":\"NetworkID\",\"url\":\"interfaces/PaymentChannelClaim.html#NetworkID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"PaymentChannelClaim\"},{\"kind\":256,\"name\":\"PaymentChannelCreate\",\"url\":\"interfaces/PaymentChannelCreate.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"TransactionType\",\"url\":\"interfaces/PaymentChannelCreate.html#TransactionType\",\"classes\":\"\",\"parent\":\"PaymentChannelCreate\"},{\"kind\":1024,\"name\":\"Amount\",\"url\":\"interfaces/PaymentChannelCreate.html#Amount\",\"classes\":\"\",\"parent\":\"PaymentChannelCreate\"},{\"kind\":1024,\"name\":\"Destination\",\"url\":\"interfaces/PaymentChannelCreate.html#Destination\",\"classes\":\"\",\"parent\":\"PaymentChannelCreate\"},{\"kind\":1024,\"name\":\"SettleDelay\",\"url\":\"interfaces/PaymentChannelCreate.html#SettleDelay\",\"classes\":\"\",\"parent\":\"PaymentChannelCreate\"},{\"kind\":1024,\"name\":\"PublicKey\",\"url\":\"interfaces/PaymentChannelCreate.html#PublicKey\",\"classes\":\"\",\"parent\":\"PaymentChannelCreate\"},{\"kind\":1024,\"name\":\"CancelAfter\",\"url\":\"interfaces/PaymentChannelCreate.html#CancelAfter\",\"classes\":\"\",\"parent\":\"PaymentChannelCreate\"},{\"kind\":1024,\"name\":\"DestinationTag\",\"url\":\"interfaces/PaymentChannelCreate.html#DestinationTag\",\"classes\":\"\",\"parent\":\"PaymentChannelCreate\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/PaymentChannelCreate.html#Account\",\"classes\":\"tsd-is-inherited\",\"parent\":\"PaymentChannelCreate\"},{\"kind\":1024,\"name\":\"Fee\",\"url\":\"interfaces/PaymentChannelCreate.html#Fee\",\"classes\":\"tsd-is-inherited\",\"parent\":\"PaymentChannelCreate\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/PaymentChannelCreate.html#Sequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"PaymentChannelCreate\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/PaymentChannelCreate.html#AccountTxnID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"PaymentChannelCreate\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/PaymentChannelCreate.html#Flags\",\"classes\":\"tsd-is-inherited\",\"parent\":\"PaymentChannelCreate\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/PaymentChannelCreate.html#LastLedgerSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"PaymentChannelCreate\"},{\"kind\":1024,\"name\":\"Memos\",\"url\":\"interfaces/PaymentChannelCreate.html#Memos\",\"classes\":\"tsd-is-inherited\",\"parent\":\"PaymentChannelCreate\"},{\"kind\":1024,\"name\":\"Signers\",\"url\":\"interfaces/PaymentChannelCreate.html#Signers\",\"classes\":\"tsd-is-inherited\",\"parent\":\"PaymentChannelCreate\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/PaymentChannelCreate.html#SourceTag\",\"classes\":\"tsd-is-inherited\",\"parent\":\"PaymentChannelCreate\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/PaymentChannelCreate.html#SigningPubKey\",\"classes\":\"tsd-is-inherited\",\"parent\":\"PaymentChannelCreate\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/PaymentChannelCreate.html#TicketSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"PaymentChannelCreate\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/PaymentChannelCreate.html#TxnSignature\",\"classes\":\"tsd-is-inherited\",\"parent\":\"PaymentChannelCreate\"},{\"kind\":1024,\"name\":\"NetworkID\",\"url\":\"interfaces/PaymentChannelCreate.html#NetworkID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"PaymentChannelCreate\"},{\"kind\":256,\"name\":\"PaymentChannelFund\",\"url\":\"interfaces/PaymentChannelFund.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"TransactionType\",\"url\":\"interfaces/PaymentChannelFund.html#TransactionType\",\"classes\":\"\",\"parent\":\"PaymentChannelFund\"},{\"kind\":1024,\"name\":\"Channel\",\"url\":\"interfaces/PaymentChannelFund.html#Channel\",\"classes\":\"\",\"parent\":\"PaymentChannelFund\"},{\"kind\":1024,\"name\":\"Amount\",\"url\":\"interfaces/PaymentChannelFund.html#Amount\",\"classes\":\"\",\"parent\":\"PaymentChannelFund\"},{\"kind\":1024,\"name\":\"Expiration\",\"url\":\"interfaces/PaymentChannelFund.html#Expiration\",\"classes\":\"\",\"parent\":\"PaymentChannelFund\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/PaymentChannelFund.html#Account\",\"classes\":\"tsd-is-inherited\",\"parent\":\"PaymentChannelFund\"},{\"kind\":1024,\"name\":\"Fee\",\"url\":\"interfaces/PaymentChannelFund.html#Fee\",\"classes\":\"tsd-is-inherited\",\"parent\":\"PaymentChannelFund\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/PaymentChannelFund.html#Sequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"PaymentChannelFund\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/PaymentChannelFund.html#AccountTxnID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"PaymentChannelFund\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/PaymentChannelFund.html#Flags\",\"classes\":\"tsd-is-inherited\",\"parent\":\"PaymentChannelFund\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/PaymentChannelFund.html#LastLedgerSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"PaymentChannelFund\"},{\"kind\":1024,\"name\":\"Memos\",\"url\":\"interfaces/PaymentChannelFund.html#Memos\",\"classes\":\"tsd-is-inherited\",\"parent\":\"PaymentChannelFund\"},{\"kind\":1024,\"name\":\"Signers\",\"url\":\"interfaces/PaymentChannelFund.html#Signers\",\"classes\":\"tsd-is-inherited\",\"parent\":\"PaymentChannelFund\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/PaymentChannelFund.html#SourceTag\",\"classes\":\"tsd-is-inherited\",\"parent\":\"PaymentChannelFund\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/PaymentChannelFund.html#SigningPubKey\",\"classes\":\"tsd-is-inherited\",\"parent\":\"PaymentChannelFund\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/PaymentChannelFund.html#TicketSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"PaymentChannelFund\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/PaymentChannelFund.html#TxnSignature\",\"classes\":\"tsd-is-inherited\",\"parent\":\"PaymentChannelFund\"},{\"kind\":1024,\"name\":\"NetworkID\",\"url\":\"interfaces/PaymentChannelFund.html#NetworkID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"PaymentChannelFund\"},{\"kind\":2097152,\"name\":\"SetFee\",\"url\":\"types/SetFee.html\",\"classes\":\"\"},{\"kind\":256,\"name\":\"SetFeePreAmendment\",\"url\":\"interfaces/SetFeePreAmendment.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"BaseFee\",\"url\":\"interfaces/SetFeePreAmendment.html#BaseFee\",\"classes\":\"\",\"parent\":\"SetFeePreAmendment\"},{\"kind\":1024,\"name\":\"ReferenceFeeUnits\",\"url\":\"interfaces/SetFeePreAmendment.html#ReferenceFeeUnits\",\"classes\":\"\",\"parent\":\"SetFeePreAmendment\"},{\"kind\":1024,\"name\":\"ReserveBase\",\"url\":\"interfaces/SetFeePreAmendment.html#ReserveBase\",\"classes\":\"\",\"parent\":\"SetFeePreAmendment\"},{\"kind\":1024,\"name\":\"ReserveIncrement\",\"url\":\"interfaces/SetFeePreAmendment.html#ReserveIncrement\",\"classes\":\"\",\"parent\":\"SetFeePreAmendment\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/SetFeePreAmendment.html#Account\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SetFeePreAmendment\"},{\"kind\":1024,\"name\":\"TransactionType\",\"url\":\"interfaces/SetFeePreAmendment.html#TransactionType\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SetFeePreAmendment\"},{\"kind\":1024,\"name\":\"Fee\",\"url\":\"interfaces/SetFeePreAmendment.html#Fee\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SetFeePreAmendment\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/SetFeePreAmendment.html#Sequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SetFeePreAmendment\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/SetFeePreAmendment.html#AccountTxnID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SetFeePreAmendment\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/SetFeePreAmendment.html#Flags\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SetFeePreAmendment\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/SetFeePreAmendment.html#LastLedgerSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SetFeePreAmendment\"},{\"kind\":1024,\"name\":\"Memos\",\"url\":\"interfaces/SetFeePreAmendment.html#Memos\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SetFeePreAmendment\"},{\"kind\":1024,\"name\":\"Signers\",\"url\":\"interfaces/SetFeePreAmendment.html#Signers\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SetFeePreAmendment\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/SetFeePreAmendment.html#SourceTag\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SetFeePreAmendment\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/SetFeePreAmendment.html#SigningPubKey\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SetFeePreAmendment\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/SetFeePreAmendment.html#TicketSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SetFeePreAmendment\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/SetFeePreAmendment.html#TxnSignature\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SetFeePreAmendment\"},{\"kind\":1024,\"name\":\"NetworkID\",\"url\":\"interfaces/SetFeePreAmendment.html#NetworkID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SetFeePreAmendment\"},{\"kind\":256,\"name\":\"SetFeePostAmendment\",\"url\":\"interfaces/SetFeePostAmendment.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"BaseFeeDrops\",\"url\":\"interfaces/SetFeePostAmendment.html#BaseFeeDrops\",\"classes\":\"\",\"parent\":\"SetFeePostAmendment\"},{\"kind\":1024,\"name\":\"ReserveBaseDrops\",\"url\":\"interfaces/SetFeePostAmendment.html#ReserveBaseDrops\",\"classes\":\"\",\"parent\":\"SetFeePostAmendment\"},{\"kind\":1024,\"name\":\"ReserveIncrementDrops\",\"url\":\"interfaces/SetFeePostAmendment.html#ReserveIncrementDrops\",\"classes\":\"\",\"parent\":\"SetFeePostAmendment\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/SetFeePostAmendment.html#Account\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SetFeePostAmendment\"},{\"kind\":1024,\"name\":\"TransactionType\",\"url\":\"interfaces/SetFeePostAmendment.html#TransactionType\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SetFeePostAmendment\"},{\"kind\":1024,\"name\":\"Fee\",\"url\":\"interfaces/SetFeePostAmendment.html#Fee\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SetFeePostAmendment\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/SetFeePostAmendment.html#Sequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SetFeePostAmendment\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/SetFeePostAmendment.html#AccountTxnID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SetFeePostAmendment\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/SetFeePostAmendment.html#Flags\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SetFeePostAmendment\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/SetFeePostAmendment.html#LastLedgerSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SetFeePostAmendment\"},{\"kind\":1024,\"name\":\"Memos\",\"url\":\"interfaces/SetFeePostAmendment.html#Memos\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SetFeePostAmendment\"},{\"kind\":1024,\"name\":\"Signers\",\"url\":\"interfaces/SetFeePostAmendment.html#Signers\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SetFeePostAmendment\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/SetFeePostAmendment.html#SourceTag\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SetFeePostAmendment\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/SetFeePostAmendment.html#SigningPubKey\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SetFeePostAmendment\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/SetFeePostAmendment.html#TicketSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SetFeePostAmendment\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/SetFeePostAmendment.html#TxnSignature\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SetFeePostAmendment\"},{\"kind\":1024,\"name\":\"NetworkID\",\"url\":\"interfaces/SetFeePostAmendment.html#NetworkID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SetFeePostAmendment\"},{\"kind\":256,\"name\":\"SetRegularKey\",\"url\":\"interfaces/SetRegularKey.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"TransactionType\",\"url\":\"interfaces/SetRegularKey.html#TransactionType\",\"classes\":\"\",\"parent\":\"SetRegularKey\"},{\"kind\":1024,\"name\":\"RegularKey\",\"url\":\"interfaces/SetRegularKey.html#RegularKey\",\"classes\":\"\",\"parent\":\"SetRegularKey\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/SetRegularKey.html#Account\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SetRegularKey\"},{\"kind\":1024,\"name\":\"Fee\",\"url\":\"interfaces/SetRegularKey.html#Fee\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SetRegularKey\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/SetRegularKey.html#Sequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SetRegularKey\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/SetRegularKey.html#AccountTxnID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SetRegularKey\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/SetRegularKey.html#Flags\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SetRegularKey\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/SetRegularKey.html#LastLedgerSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SetRegularKey\"},{\"kind\":1024,\"name\":\"Memos\",\"url\":\"interfaces/SetRegularKey.html#Memos\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SetRegularKey\"},{\"kind\":1024,\"name\":\"Signers\",\"url\":\"interfaces/SetRegularKey.html#Signers\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SetRegularKey\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/SetRegularKey.html#SourceTag\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SetRegularKey\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/SetRegularKey.html#SigningPubKey\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SetRegularKey\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/SetRegularKey.html#TicketSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SetRegularKey\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/SetRegularKey.html#TxnSignature\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SetRegularKey\"},{\"kind\":1024,\"name\":\"NetworkID\",\"url\":\"interfaces/SetRegularKey.html#NetworkID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SetRegularKey\"},{\"kind\":256,\"name\":\"SignerListSet\",\"url\":\"interfaces/SignerListSet.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"TransactionType\",\"url\":\"interfaces/SignerListSet.html#TransactionType\",\"classes\":\"\",\"parent\":\"SignerListSet\"},{\"kind\":1024,\"name\":\"SignerQuorum\",\"url\":\"interfaces/SignerListSet.html#SignerQuorum\",\"classes\":\"\",\"parent\":\"SignerListSet\"},{\"kind\":1024,\"name\":\"SignerEntries\",\"url\":\"interfaces/SignerListSet.html#SignerEntries\",\"classes\":\"\",\"parent\":\"SignerListSet\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/SignerListSet.html#Account\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SignerListSet\"},{\"kind\":1024,\"name\":\"Fee\",\"url\":\"interfaces/SignerListSet.html#Fee\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SignerListSet\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/SignerListSet.html#Sequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SignerListSet\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/SignerListSet.html#AccountTxnID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SignerListSet\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/SignerListSet.html#Flags\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SignerListSet\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/SignerListSet.html#LastLedgerSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SignerListSet\"},{\"kind\":1024,\"name\":\"Memos\",\"url\":\"interfaces/SignerListSet.html#Memos\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SignerListSet\"},{\"kind\":1024,\"name\":\"Signers\",\"url\":\"interfaces/SignerListSet.html#Signers\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SignerListSet\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/SignerListSet.html#SourceTag\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SignerListSet\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/SignerListSet.html#SigningPubKey\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SignerListSet\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/SignerListSet.html#TicketSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SignerListSet\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/SignerListSet.html#TxnSignature\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SignerListSet\"},{\"kind\":1024,\"name\":\"NetworkID\",\"url\":\"interfaces/SignerListSet.html#NetworkID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"SignerListSet\"},{\"kind\":256,\"name\":\"TicketCreate\",\"url\":\"interfaces/TicketCreate.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"TransactionType\",\"url\":\"interfaces/TicketCreate.html#TransactionType\",\"classes\":\"\",\"parent\":\"TicketCreate\"},{\"kind\":1024,\"name\":\"TicketCount\",\"url\":\"interfaces/TicketCreate.html#TicketCount\",\"classes\":\"\",\"parent\":\"TicketCreate\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/TicketCreate.html#Account\",\"classes\":\"tsd-is-inherited\",\"parent\":\"TicketCreate\"},{\"kind\":1024,\"name\":\"Fee\",\"url\":\"interfaces/TicketCreate.html#Fee\",\"classes\":\"tsd-is-inherited\",\"parent\":\"TicketCreate\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/TicketCreate.html#Sequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"TicketCreate\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/TicketCreate.html#AccountTxnID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"TicketCreate\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/TicketCreate.html#Flags\",\"classes\":\"tsd-is-inherited\",\"parent\":\"TicketCreate\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/TicketCreate.html#LastLedgerSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"TicketCreate\"},{\"kind\":1024,\"name\":\"Memos\",\"url\":\"interfaces/TicketCreate.html#Memos\",\"classes\":\"tsd-is-inherited\",\"parent\":\"TicketCreate\"},{\"kind\":1024,\"name\":\"Signers\",\"url\":\"interfaces/TicketCreate.html#Signers\",\"classes\":\"tsd-is-inherited\",\"parent\":\"TicketCreate\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/TicketCreate.html#SourceTag\",\"classes\":\"tsd-is-inherited\",\"parent\":\"TicketCreate\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/TicketCreate.html#SigningPubKey\",\"classes\":\"tsd-is-inherited\",\"parent\":\"TicketCreate\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/TicketCreate.html#TicketSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"TicketCreate\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/TicketCreate.html#TxnSignature\",\"classes\":\"tsd-is-inherited\",\"parent\":\"TicketCreate\"},{\"kind\":1024,\"name\":\"NetworkID\",\"url\":\"interfaces/TicketCreate.html#NetworkID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"TicketCreate\"},{\"kind\":256,\"name\":\"TrustSetFlagsInterface\",\"url\":\"interfaces/TrustSetFlagsInterface.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"tfSetfAuth\",\"url\":\"interfaces/TrustSetFlagsInterface.html#tfSetfAuth\",\"classes\":\"\",\"parent\":\"TrustSetFlagsInterface\"},{\"kind\":1024,\"name\":\"tfSetNoRipple\",\"url\":\"interfaces/TrustSetFlagsInterface.html#tfSetNoRipple\",\"classes\":\"\",\"parent\":\"TrustSetFlagsInterface\"},{\"kind\":1024,\"name\":\"tfClearNoRipple\",\"url\":\"interfaces/TrustSetFlagsInterface.html#tfClearNoRipple\",\"classes\":\"\",\"parent\":\"TrustSetFlagsInterface\"},{\"kind\":1024,\"name\":\"tfSetFreeze\",\"url\":\"interfaces/TrustSetFlagsInterface.html#tfSetFreeze\",\"classes\":\"\",\"parent\":\"TrustSetFlagsInterface\"},{\"kind\":1024,\"name\":\"tfClearFreeze\",\"url\":\"interfaces/TrustSetFlagsInterface.html#tfClearFreeze\",\"classes\":\"\",\"parent\":\"TrustSetFlagsInterface\"},{\"kind\":8,\"name\":\"TrustSetFlags\",\"url\":\"enums/TrustSetFlags.html\",\"classes\":\"\"},{\"kind\":16,\"name\":\"tfSetfAuth\",\"url\":\"enums/TrustSetFlags.html#tfSetfAuth\",\"classes\":\"\",\"parent\":\"TrustSetFlags\"},{\"kind\":16,\"name\":\"tfSetNoRipple\",\"url\":\"enums/TrustSetFlags.html#tfSetNoRipple\",\"classes\":\"\",\"parent\":\"TrustSetFlags\"},{\"kind\":16,\"name\":\"tfClearNoRipple\",\"url\":\"enums/TrustSetFlags.html#tfClearNoRipple\",\"classes\":\"\",\"parent\":\"TrustSetFlags\"},{\"kind\":16,\"name\":\"tfSetFreeze\",\"url\":\"enums/TrustSetFlags.html#tfSetFreeze\",\"classes\":\"\",\"parent\":\"TrustSetFlags\"},{\"kind\":16,\"name\":\"tfClearFreeze\",\"url\":\"enums/TrustSetFlags.html#tfClearFreeze\",\"classes\":\"\",\"parent\":\"TrustSetFlags\"},{\"kind\":256,\"name\":\"TrustSet\",\"url\":\"interfaces/TrustSet.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"TransactionType\",\"url\":\"interfaces/TrustSet.html#TransactionType\",\"classes\":\"\",\"parent\":\"TrustSet\"},{\"kind\":1024,\"name\":\"LimitAmount\",\"url\":\"interfaces/TrustSet.html#LimitAmount\",\"classes\":\"\",\"parent\":\"TrustSet\"},{\"kind\":1024,\"name\":\"QualityIn\",\"url\":\"interfaces/TrustSet.html#QualityIn\",\"classes\":\"\",\"parent\":\"TrustSet\"},{\"kind\":1024,\"name\":\"QualityOut\",\"url\":\"interfaces/TrustSet.html#QualityOut\",\"classes\":\"\",\"parent\":\"TrustSet\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/TrustSet.html#Flags\",\"classes\":\"\",\"parent\":\"TrustSet\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/TrustSet.html#Account\",\"classes\":\"tsd-is-inherited\",\"parent\":\"TrustSet\"},{\"kind\":1024,\"name\":\"Fee\",\"url\":\"interfaces/TrustSet.html#Fee\",\"classes\":\"tsd-is-inherited\",\"parent\":\"TrustSet\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/TrustSet.html#Sequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"TrustSet\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/TrustSet.html#AccountTxnID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"TrustSet\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/TrustSet.html#LastLedgerSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"TrustSet\"},{\"kind\":1024,\"name\":\"Memos\",\"url\":\"interfaces/TrustSet.html#Memos\",\"classes\":\"tsd-is-inherited\",\"parent\":\"TrustSet\"},{\"kind\":1024,\"name\":\"Signers\",\"url\":\"interfaces/TrustSet.html#Signers\",\"classes\":\"tsd-is-inherited\",\"parent\":\"TrustSet\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/TrustSet.html#SourceTag\",\"classes\":\"tsd-is-inherited\",\"parent\":\"TrustSet\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/TrustSet.html#SigningPubKey\",\"classes\":\"tsd-is-inherited\",\"parent\":\"TrustSet\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/TrustSet.html#TicketSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"TrustSet\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/TrustSet.html#TxnSignature\",\"classes\":\"tsd-is-inherited\",\"parent\":\"TrustSet\"},{\"kind\":1024,\"name\":\"NetworkID\",\"url\":\"interfaces/TrustSet.html#NetworkID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"TrustSet\"},{\"kind\":256,\"name\":\"UNLModify\",\"url\":\"interfaces/UNLModify.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"TransactionType\",\"url\":\"interfaces/UNLModify.html#TransactionType\",\"classes\":\"\",\"parent\":\"UNLModify\"},{\"kind\":1024,\"name\":\"LedgerSequence\",\"url\":\"interfaces/UNLModify.html#LedgerSequence\",\"classes\":\"\",\"parent\":\"UNLModify\"},{\"kind\":1024,\"name\":\"UNLModifyDisabling\",\"url\":\"interfaces/UNLModify.html#UNLModifyDisabling\",\"classes\":\"\",\"parent\":\"UNLModify\"},{\"kind\":1024,\"name\":\"UNLModifyValidator\",\"url\":\"interfaces/UNLModify.html#UNLModifyValidator\",\"classes\":\"\",\"parent\":\"UNLModify\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/UNLModify.html#Account\",\"classes\":\"tsd-is-inherited\",\"parent\":\"UNLModify\"},{\"kind\":1024,\"name\":\"Fee\",\"url\":\"interfaces/UNLModify.html#Fee\",\"classes\":\"tsd-is-inherited\",\"parent\":\"UNLModify\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/UNLModify.html#Sequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"UNLModify\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/UNLModify.html#AccountTxnID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"UNLModify\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/UNLModify.html#Flags\",\"classes\":\"tsd-is-inherited\",\"parent\":\"UNLModify\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/UNLModify.html#LastLedgerSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"UNLModify\"},{\"kind\":1024,\"name\":\"Memos\",\"url\":\"interfaces/UNLModify.html#Memos\",\"classes\":\"tsd-is-inherited\",\"parent\":\"UNLModify\"},{\"kind\":1024,\"name\":\"Signers\",\"url\":\"interfaces/UNLModify.html#Signers\",\"classes\":\"tsd-is-inherited\",\"parent\":\"UNLModify\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/UNLModify.html#SourceTag\",\"classes\":\"tsd-is-inherited\",\"parent\":\"UNLModify\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/UNLModify.html#SigningPubKey\",\"classes\":\"tsd-is-inherited\",\"parent\":\"UNLModify\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/UNLModify.html#TicketSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"UNLModify\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/UNLModify.html#TxnSignature\",\"classes\":\"tsd-is-inherited\",\"parent\":\"UNLModify\"},{\"kind\":1024,\"name\":\"NetworkID\",\"url\":\"interfaces/UNLModify.html#NetworkID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"UNLModify\"},{\"kind\":256,\"name\":\"XChainAddAccountCreateAttestation\",\"url\":\"interfaces/XChainAddAccountCreateAttestation.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"TransactionType\",\"url\":\"interfaces/XChainAddAccountCreateAttestation.html#TransactionType\",\"classes\":\"\",\"parent\":\"XChainAddAccountCreateAttestation\"},{\"kind\":1024,\"name\":\"Amount\",\"url\":\"interfaces/XChainAddAccountCreateAttestation.html#Amount\",\"classes\":\"\",\"parent\":\"XChainAddAccountCreateAttestation\"},{\"kind\":1024,\"name\":\"AttestationRewardAccount\",\"url\":\"interfaces/XChainAddAccountCreateAttestation.html#AttestationRewardAccount\",\"classes\":\"\",\"parent\":\"XChainAddAccountCreateAttestation\"},{\"kind\":1024,\"name\":\"AttestationSignerAccount\",\"url\":\"interfaces/XChainAddAccountCreateAttestation.html#AttestationSignerAccount\",\"classes\":\"\",\"parent\":\"XChainAddAccountCreateAttestation\"},{\"kind\":1024,\"name\":\"Destination\",\"url\":\"interfaces/XChainAddAccountCreateAttestation.html#Destination\",\"classes\":\"\",\"parent\":\"XChainAddAccountCreateAttestation\"},{\"kind\":1024,\"name\":\"OtherChainSource\",\"url\":\"interfaces/XChainAddAccountCreateAttestation.html#OtherChainSource\",\"classes\":\"\",\"parent\":\"XChainAddAccountCreateAttestation\"},{\"kind\":1024,\"name\":\"PublicKey\",\"url\":\"interfaces/XChainAddAccountCreateAttestation.html#PublicKey\",\"classes\":\"\",\"parent\":\"XChainAddAccountCreateAttestation\"},{\"kind\":1024,\"name\":\"Signature\",\"url\":\"interfaces/XChainAddAccountCreateAttestation.html#Signature\",\"classes\":\"\",\"parent\":\"XChainAddAccountCreateAttestation\"},{\"kind\":1024,\"name\":\"SignatureReward\",\"url\":\"interfaces/XChainAddAccountCreateAttestation.html#SignatureReward\",\"classes\":\"\",\"parent\":\"XChainAddAccountCreateAttestation\"},{\"kind\":1024,\"name\":\"WasLockingChainSend\",\"url\":\"interfaces/XChainAddAccountCreateAttestation.html#WasLockingChainSend\",\"classes\":\"\",\"parent\":\"XChainAddAccountCreateAttestation\"},{\"kind\":1024,\"name\":\"XChainAccountCreateCount\",\"url\":\"interfaces/XChainAddAccountCreateAttestation.html#XChainAccountCreateCount\",\"classes\":\"\",\"parent\":\"XChainAddAccountCreateAttestation\"},{\"kind\":1024,\"name\":\"XChainBridge\",\"url\":\"interfaces/XChainAddAccountCreateAttestation.html#XChainBridge\",\"classes\":\"\",\"parent\":\"XChainAddAccountCreateAttestation\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/XChainAddAccountCreateAttestation.html#Account\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainAddAccountCreateAttestation\"},{\"kind\":1024,\"name\":\"Fee\",\"url\":\"interfaces/XChainAddAccountCreateAttestation.html#Fee\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainAddAccountCreateAttestation\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/XChainAddAccountCreateAttestation.html#Sequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainAddAccountCreateAttestation\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/XChainAddAccountCreateAttestation.html#AccountTxnID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainAddAccountCreateAttestation\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/XChainAddAccountCreateAttestation.html#Flags\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainAddAccountCreateAttestation\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/XChainAddAccountCreateAttestation.html#LastLedgerSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainAddAccountCreateAttestation\"},{\"kind\":1024,\"name\":\"Memos\",\"url\":\"interfaces/XChainAddAccountCreateAttestation.html#Memos\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainAddAccountCreateAttestation\"},{\"kind\":1024,\"name\":\"Signers\",\"url\":\"interfaces/XChainAddAccountCreateAttestation.html#Signers\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainAddAccountCreateAttestation\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/XChainAddAccountCreateAttestation.html#SourceTag\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainAddAccountCreateAttestation\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/XChainAddAccountCreateAttestation.html#SigningPubKey\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainAddAccountCreateAttestation\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/XChainAddAccountCreateAttestation.html#TicketSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainAddAccountCreateAttestation\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/XChainAddAccountCreateAttestation.html#TxnSignature\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainAddAccountCreateAttestation\"},{\"kind\":1024,\"name\":\"NetworkID\",\"url\":\"interfaces/XChainAddAccountCreateAttestation.html#NetworkID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainAddAccountCreateAttestation\"},{\"kind\":256,\"name\":\"XChainAddClaimAttestation\",\"url\":\"interfaces/XChainAddClaimAttestation.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"TransactionType\",\"url\":\"interfaces/XChainAddClaimAttestation.html#TransactionType\",\"classes\":\"\",\"parent\":\"XChainAddClaimAttestation\"},{\"kind\":1024,\"name\":\"Amount\",\"url\":\"interfaces/XChainAddClaimAttestation.html#Amount\",\"classes\":\"\",\"parent\":\"XChainAddClaimAttestation\"},{\"kind\":1024,\"name\":\"AttestationRewardAccount\",\"url\":\"interfaces/XChainAddClaimAttestation.html#AttestationRewardAccount\",\"classes\":\"\",\"parent\":\"XChainAddClaimAttestation\"},{\"kind\":1024,\"name\":\"AttestationSignerAccount\",\"url\":\"interfaces/XChainAddClaimAttestation.html#AttestationSignerAccount\",\"classes\":\"\",\"parent\":\"XChainAddClaimAttestation\"},{\"kind\":1024,\"name\":\"Destination\",\"url\":\"interfaces/XChainAddClaimAttestation.html#Destination\",\"classes\":\"\",\"parent\":\"XChainAddClaimAttestation\"},{\"kind\":1024,\"name\":\"OtherChainSource\",\"url\":\"interfaces/XChainAddClaimAttestation.html#OtherChainSource\",\"classes\":\"\",\"parent\":\"XChainAddClaimAttestation\"},{\"kind\":1024,\"name\":\"PublicKey\",\"url\":\"interfaces/XChainAddClaimAttestation.html#PublicKey\",\"classes\":\"\",\"parent\":\"XChainAddClaimAttestation\"},{\"kind\":1024,\"name\":\"Signature\",\"url\":\"interfaces/XChainAddClaimAttestation.html#Signature\",\"classes\":\"\",\"parent\":\"XChainAddClaimAttestation\"},{\"kind\":1024,\"name\":\"WasLockingChainSend\",\"url\":\"interfaces/XChainAddClaimAttestation.html#WasLockingChainSend\",\"classes\":\"\",\"parent\":\"XChainAddClaimAttestation\"},{\"kind\":1024,\"name\":\"XChainBridge\",\"url\":\"interfaces/XChainAddClaimAttestation.html#XChainBridge\",\"classes\":\"\",\"parent\":\"XChainAddClaimAttestation\"},{\"kind\":1024,\"name\":\"XChainClaimID\",\"url\":\"interfaces/XChainAddClaimAttestation.html#XChainClaimID\",\"classes\":\"\",\"parent\":\"XChainAddClaimAttestation\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/XChainAddClaimAttestation.html#Account\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainAddClaimAttestation\"},{\"kind\":1024,\"name\":\"Fee\",\"url\":\"interfaces/XChainAddClaimAttestation.html#Fee\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainAddClaimAttestation\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/XChainAddClaimAttestation.html#Sequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainAddClaimAttestation\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/XChainAddClaimAttestation.html#AccountTxnID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainAddClaimAttestation\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/XChainAddClaimAttestation.html#Flags\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainAddClaimAttestation\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/XChainAddClaimAttestation.html#LastLedgerSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainAddClaimAttestation\"},{\"kind\":1024,\"name\":\"Memos\",\"url\":\"interfaces/XChainAddClaimAttestation.html#Memos\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainAddClaimAttestation\"},{\"kind\":1024,\"name\":\"Signers\",\"url\":\"interfaces/XChainAddClaimAttestation.html#Signers\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainAddClaimAttestation\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/XChainAddClaimAttestation.html#SourceTag\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainAddClaimAttestation\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/XChainAddClaimAttestation.html#SigningPubKey\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainAddClaimAttestation\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/XChainAddClaimAttestation.html#TicketSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainAddClaimAttestation\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/XChainAddClaimAttestation.html#TxnSignature\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainAddClaimAttestation\"},{\"kind\":1024,\"name\":\"NetworkID\",\"url\":\"interfaces/XChainAddClaimAttestation.html#NetworkID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainAddClaimAttestation\"},{\"kind\":256,\"name\":\"XChainClaim\",\"url\":\"interfaces/XChainClaim.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"TransactionType\",\"url\":\"interfaces/XChainClaim.html#TransactionType\",\"classes\":\"\",\"parent\":\"XChainClaim\"},{\"kind\":1024,\"name\":\"XChainBridge\",\"url\":\"interfaces/XChainClaim.html#XChainBridge\",\"classes\":\"\",\"parent\":\"XChainClaim\"},{\"kind\":1024,\"name\":\"XChainClaimID\",\"url\":\"interfaces/XChainClaim.html#XChainClaimID\",\"classes\":\"\",\"parent\":\"XChainClaim\"},{\"kind\":1024,\"name\":\"Destination\",\"url\":\"interfaces/XChainClaim.html#Destination\",\"classes\":\"\",\"parent\":\"XChainClaim\"},{\"kind\":1024,\"name\":\"DestinationTag\",\"url\":\"interfaces/XChainClaim.html#DestinationTag\",\"classes\":\"\",\"parent\":\"XChainClaim\"},{\"kind\":1024,\"name\":\"Amount\",\"url\":\"interfaces/XChainClaim.html#Amount\",\"classes\":\"\",\"parent\":\"XChainClaim\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/XChainClaim.html#Account\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainClaim\"},{\"kind\":1024,\"name\":\"Fee\",\"url\":\"interfaces/XChainClaim.html#Fee\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainClaim\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/XChainClaim.html#Sequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainClaim\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/XChainClaim.html#AccountTxnID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainClaim\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/XChainClaim.html#Flags\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainClaim\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/XChainClaim.html#LastLedgerSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainClaim\"},{\"kind\":1024,\"name\":\"Memos\",\"url\":\"interfaces/XChainClaim.html#Memos\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainClaim\"},{\"kind\":1024,\"name\":\"Signers\",\"url\":\"interfaces/XChainClaim.html#Signers\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainClaim\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/XChainClaim.html#SourceTag\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainClaim\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/XChainClaim.html#SigningPubKey\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainClaim\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/XChainClaim.html#TicketSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainClaim\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/XChainClaim.html#TxnSignature\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainClaim\"},{\"kind\":1024,\"name\":\"NetworkID\",\"url\":\"interfaces/XChainClaim.html#NetworkID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainClaim\"},{\"kind\":256,\"name\":\"XChainCommit\",\"url\":\"interfaces/XChainCommit.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"TransactionType\",\"url\":\"interfaces/XChainCommit.html#TransactionType\",\"classes\":\"\",\"parent\":\"XChainCommit\"},{\"kind\":1024,\"name\":\"XChainBridge\",\"url\":\"interfaces/XChainCommit.html#XChainBridge\",\"classes\":\"\",\"parent\":\"XChainCommit\"},{\"kind\":1024,\"name\":\"XChainClaimID\",\"url\":\"interfaces/XChainCommit.html#XChainClaimID\",\"classes\":\"\",\"parent\":\"XChainCommit\"},{\"kind\":1024,\"name\":\"OtherChainDestination\",\"url\":\"interfaces/XChainCommit.html#OtherChainDestination\",\"classes\":\"\",\"parent\":\"XChainCommit\"},{\"kind\":1024,\"name\":\"Amount\",\"url\":\"interfaces/XChainCommit.html#Amount\",\"classes\":\"\",\"parent\":\"XChainCommit\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/XChainCommit.html#Account\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainCommit\"},{\"kind\":1024,\"name\":\"Fee\",\"url\":\"interfaces/XChainCommit.html#Fee\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainCommit\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/XChainCommit.html#Sequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainCommit\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/XChainCommit.html#AccountTxnID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainCommit\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/XChainCommit.html#Flags\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainCommit\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/XChainCommit.html#LastLedgerSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainCommit\"},{\"kind\":1024,\"name\":\"Memos\",\"url\":\"interfaces/XChainCommit.html#Memos\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainCommit\"},{\"kind\":1024,\"name\":\"Signers\",\"url\":\"interfaces/XChainCommit.html#Signers\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainCommit\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/XChainCommit.html#SourceTag\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainCommit\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/XChainCommit.html#SigningPubKey\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainCommit\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/XChainCommit.html#TicketSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainCommit\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/XChainCommit.html#TxnSignature\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainCommit\"},{\"kind\":1024,\"name\":\"NetworkID\",\"url\":\"interfaces/XChainCommit.html#NetworkID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainCommit\"},{\"kind\":256,\"name\":\"XChainCreateBridge\",\"url\":\"interfaces/XChainCreateBridge.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"TransactionType\",\"url\":\"interfaces/XChainCreateBridge.html#TransactionType\",\"classes\":\"\",\"parent\":\"XChainCreateBridge\"},{\"kind\":1024,\"name\":\"XChainBridge\",\"url\":\"interfaces/XChainCreateBridge.html#XChainBridge\",\"classes\":\"\",\"parent\":\"XChainCreateBridge\"},{\"kind\":1024,\"name\":\"SignatureReward\",\"url\":\"interfaces/XChainCreateBridge.html#SignatureReward\",\"classes\":\"\",\"parent\":\"XChainCreateBridge\"},{\"kind\":1024,\"name\":\"MinAccountCreateAmount\",\"url\":\"interfaces/XChainCreateBridge.html#MinAccountCreateAmount\",\"classes\":\"\",\"parent\":\"XChainCreateBridge\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/XChainCreateBridge.html#Account\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainCreateBridge\"},{\"kind\":1024,\"name\":\"Fee\",\"url\":\"interfaces/XChainCreateBridge.html#Fee\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainCreateBridge\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/XChainCreateBridge.html#Sequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainCreateBridge\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/XChainCreateBridge.html#AccountTxnID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainCreateBridge\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/XChainCreateBridge.html#Flags\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainCreateBridge\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/XChainCreateBridge.html#LastLedgerSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainCreateBridge\"},{\"kind\":1024,\"name\":\"Memos\",\"url\":\"interfaces/XChainCreateBridge.html#Memos\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainCreateBridge\"},{\"kind\":1024,\"name\":\"Signers\",\"url\":\"interfaces/XChainCreateBridge.html#Signers\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainCreateBridge\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/XChainCreateBridge.html#SourceTag\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainCreateBridge\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/XChainCreateBridge.html#SigningPubKey\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainCreateBridge\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/XChainCreateBridge.html#TicketSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainCreateBridge\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/XChainCreateBridge.html#TxnSignature\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainCreateBridge\"},{\"kind\":1024,\"name\":\"NetworkID\",\"url\":\"interfaces/XChainCreateBridge.html#NetworkID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainCreateBridge\"},{\"kind\":256,\"name\":\"XChainCreateClaimID\",\"url\":\"interfaces/XChainCreateClaimID.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"TransactionType\",\"url\":\"interfaces/XChainCreateClaimID.html#TransactionType\",\"classes\":\"\",\"parent\":\"XChainCreateClaimID\"},{\"kind\":1024,\"name\":\"XChainBridge\",\"url\":\"interfaces/XChainCreateClaimID.html#XChainBridge\",\"classes\":\"\",\"parent\":\"XChainCreateClaimID\"},{\"kind\":1024,\"name\":\"SignatureReward\",\"url\":\"interfaces/XChainCreateClaimID.html#SignatureReward\",\"classes\":\"\",\"parent\":\"XChainCreateClaimID\"},{\"kind\":1024,\"name\":\"OtherChainSource\",\"url\":\"interfaces/XChainCreateClaimID.html#OtherChainSource\",\"classes\":\"\",\"parent\":\"XChainCreateClaimID\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/XChainCreateClaimID.html#Account\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainCreateClaimID\"},{\"kind\":1024,\"name\":\"Fee\",\"url\":\"interfaces/XChainCreateClaimID.html#Fee\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainCreateClaimID\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/XChainCreateClaimID.html#Sequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainCreateClaimID\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/XChainCreateClaimID.html#AccountTxnID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainCreateClaimID\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/XChainCreateClaimID.html#Flags\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainCreateClaimID\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/XChainCreateClaimID.html#LastLedgerSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainCreateClaimID\"},{\"kind\":1024,\"name\":\"Memos\",\"url\":\"interfaces/XChainCreateClaimID.html#Memos\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainCreateClaimID\"},{\"kind\":1024,\"name\":\"Signers\",\"url\":\"interfaces/XChainCreateClaimID.html#Signers\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainCreateClaimID\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/XChainCreateClaimID.html#SourceTag\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainCreateClaimID\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/XChainCreateClaimID.html#SigningPubKey\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainCreateClaimID\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/XChainCreateClaimID.html#TicketSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainCreateClaimID\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/XChainCreateClaimID.html#TxnSignature\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainCreateClaimID\"},{\"kind\":1024,\"name\":\"NetworkID\",\"url\":\"interfaces/XChainCreateClaimID.html#NetworkID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainCreateClaimID\"},{\"kind\":256,\"name\":\"XChainAccountCreateCommit\",\"url\":\"interfaces/XChainAccountCreateCommit.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"TransactionType\",\"url\":\"interfaces/XChainAccountCreateCommit.html#TransactionType\",\"classes\":\"\",\"parent\":\"XChainAccountCreateCommit\"},{\"kind\":1024,\"name\":\"XChainBridge\",\"url\":\"interfaces/XChainAccountCreateCommit.html#XChainBridge\",\"classes\":\"\",\"parent\":\"XChainAccountCreateCommit\"},{\"kind\":1024,\"name\":\"SignatureReward\",\"url\":\"interfaces/XChainAccountCreateCommit.html#SignatureReward\",\"classes\":\"\",\"parent\":\"XChainAccountCreateCommit\"},{\"kind\":1024,\"name\":\"Destination\",\"url\":\"interfaces/XChainAccountCreateCommit.html#Destination\",\"classes\":\"\",\"parent\":\"XChainAccountCreateCommit\"},{\"kind\":1024,\"name\":\"Amount\",\"url\":\"interfaces/XChainAccountCreateCommit.html#Amount\",\"classes\":\"\",\"parent\":\"XChainAccountCreateCommit\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/XChainAccountCreateCommit.html#Account\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainAccountCreateCommit\"},{\"kind\":1024,\"name\":\"Fee\",\"url\":\"interfaces/XChainAccountCreateCommit.html#Fee\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainAccountCreateCommit\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/XChainAccountCreateCommit.html#Sequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainAccountCreateCommit\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/XChainAccountCreateCommit.html#AccountTxnID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainAccountCreateCommit\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/XChainAccountCreateCommit.html#Flags\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainAccountCreateCommit\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/XChainAccountCreateCommit.html#LastLedgerSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainAccountCreateCommit\"},{\"kind\":1024,\"name\":\"Memos\",\"url\":\"interfaces/XChainAccountCreateCommit.html#Memos\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainAccountCreateCommit\"},{\"kind\":1024,\"name\":\"Signers\",\"url\":\"interfaces/XChainAccountCreateCommit.html#Signers\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainAccountCreateCommit\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/XChainAccountCreateCommit.html#SourceTag\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainAccountCreateCommit\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/XChainAccountCreateCommit.html#SigningPubKey\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainAccountCreateCommit\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/XChainAccountCreateCommit.html#TicketSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainAccountCreateCommit\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/XChainAccountCreateCommit.html#TxnSignature\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainAccountCreateCommit\"},{\"kind\":1024,\"name\":\"NetworkID\",\"url\":\"interfaces/XChainAccountCreateCommit.html#NetworkID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainAccountCreateCommit\"},{\"kind\":256,\"name\":\"XChainModifyBridge\",\"url\":\"interfaces/XChainModifyBridge.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"TransactionType\",\"url\":\"interfaces/XChainModifyBridge.html#TransactionType\",\"classes\":\"\",\"parent\":\"XChainModifyBridge\"},{\"kind\":1024,\"name\":\"XChainBridge\",\"url\":\"interfaces/XChainModifyBridge.html#XChainBridge\",\"classes\":\"\",\"parent\":\"XChainModifyBridge\"},{\"kind\":1024,\"name\":\"SignatureReward\",\"url\":\"interfaces/XChainModifyBridge.html#SignatureReward\",\"classes\":\"\",\"parent\":\"XChainModifyBridge\"},{\"kind\":1024,\"name\":\"MinAccountCreateAmount\",\"url\":\"interfaces/XChainModifyBridge.html#MinAccountCreateAmount\",\"classes\":\"\",\"parent\":\"XChainModifyBridge\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"interfaces/XChainModifyBridge.html#Flags\",\"classes\":\"\",\"parent\":\"XChainModifyBridge\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/XChainModifyBridge.html#Account\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainModifyBridge\"},{\"kind\":1024,\"name\":\"Fee\",\"url\":\"interfaces/XChainModifyBridge.html#Fee\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainModifyBridge\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"interfaces/XChainModifyBridge.html#Sequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainModifyBridge\"},{\"kind\":1024,\"name\":\"AccountTxnID\",\"url\":\"interfaces/XChainModifyBridge.html#AccountTxnID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainModifyBridge\"},{\"kind\":1024,\"name\":\"LastLedgerSequence\",\"url\":\"interfaces/XChainModifyBridge.html#LastLedgerSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainModifyBridge\"},{\"kind\":1024,\"name\":\"Memos\",\"url\":\"interfaces/XChainModifyBridge.html#Memos\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainModifyBridge\"},{\"kind\":1024,\"name\":\"Signers\",\"url\":\"interfaces/XChainModifyBridge.html#Signers\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainModifyBridge\"},{\"kind\":1024,\"name\":\"SourceTag\",\"url\":\"interfaces/XChainModifyBridge.html#SourceTag\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainModifyBridge\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/XChainModifyBridge.html#SigningPubKey\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainModifyBridge\"},{\"kind\":1024,\"name\":\"TicketSequence\",\"url\":\"interfaces/XChainModifyBridge.html#TicketSequence\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainModifyBridge\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/XChainModifyBridge.html#TxnSignature\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainModifyBridge\"},{\"kind\":1024,\"name\":\"NetworkID\",\"url\":\"interfaces/XChainModifyBridge.html#NetworkID\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XChainModifyBridge\"},{\"kind\":8,\"name\":\"XChainModifyBridgeFlags\",\"url\":\"enums/XChainModifyBridgeFlags.html\",\"classes\":\"\"},{\"kind\":16,\"name\":\"tfClearAccountCreateAmount\",\"url\":\"enums/XChainModifyBridgeFlags.html#tfClearAccountCreateAmount\",\"classes\":\"\",\"parent\":\"XChainModifyBridgeFlags\"},{\"kind\":256,\"name\":\"XChainModifyBridgeFlagsInterface\",\"url\":\"interfaces/XChainModifyBridgeFlagsInterface.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"tfClearAccountCreateAmount\",\"url\":\"interfaces/XChainModifyBridgeFlagsInterface.html#tfClearAccountCreateAmount\",\"classes\":\"\",\"parent\":\"XChainModifyBridgeFlagsInterface\"},{\"kind\":64,\"name\":\"isCreatedNode\",\"url\":\"functions/isCreatedNode.html\",\"classes\":\"\"},{\"kind\":64,\"name\":\"isModifiedNode\",\"url\":\"functions/isModifiedNode.html\",\"classes\":\"\"},{\"kind\":64,\"name\":\"isDeletedNode\",\"url\":\"functions/isDeletedNode.html\",\"classes\":\"\"},{\"kind\":256,\"name\":\"CreatedNode\",\"url\":\"interfaces/CreatedNode.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"CreatedNode\",\"url\":\"interfaces/CreatedNode.html#CreatedNode\",\"classes\":\"\",\"parent\":\"CreatedNode\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/CreatedNode.html#CreatedNode.__type\",\"classes\":\"\",\"parent\":\"CreatedNode.CreatedNode\"},{\"kind\":1024,\"name\":\"LedgerEntryType\",\"url\":\"interfaces/CreatedNode.html#CreatedNode.__type.LedgerEntryType\",\"classes\":\"\",\"parent\":\"CreatedNode.CreatedNode.__type\"},{\"kind\":1024,\"name\":\"LedgerIndex\",\"url\":\"interfaces/CreatedNode.html#CreatedNode.__type.LedgerIndex\",\"classes\":\"\",\"parent\":\"CreatedNode.CreatedNode.__type\"},{\"kind\":1024,\"name\":\"NewFields\",\"url\":\"interfaces/CreatedNode.html#CreatedNode.__type.NewFields\",\"classes\":\"\",\"parent\":\"CreatedNode.CreatedNode.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/CreatedNode.html#CreatedNode.__type.NewFields.__type-1\",\"classes\":\"\",\"parent\":\"CreatedNode.CreatedNode.__type.NewFields\"},{\"kind\":256,\"name\":\"ModifiedNode\",\"url\":\"interfaces/ModifiedNode.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"ModifiedNode\",\"url\":\"interfaces/ModifiedNode.html#ModifiedNode\",\"classes\":\"\",\"parent\":\"ModifiedNode\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/ModifiedNode.html#ModifiedNode.__type\",\"classes\":\"\",\"parent\":\"ModifiedNode.ModifiedNode\"},{\"kind\":1024,\"name\":\"LedgerEntryType\",\"url\":\"interfaces/ModifiedNode.html#ModifiedNode.__type.LedgerEntryType\",\"classes\":\"\",\"parent\":\"ModifiedNode.ModifiedNode.__type\"},{\"kind\":1024,\"name\":\"LedgerIndex\",\"url\":\"interfaces/ModifiedNode.html#ModifiedNode.__type.LedgerIndex\",\"classes\":\"\",\"parent\":\"ModifiedNode.ModifiedNode.__type\"},{\"kind\":1024,\"name\":\"FinalFields\",\"url\":\"interfaces/ModifiedNode.html#ModifiedNode.__type.FinalFields\",\"classes\":\"\",\"parent\":\"ModifiedNode.ModifiedNode.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/ModifiedNode.html#ModifiedNode.__type.FinalFields.__type-1\",\"classes\":\"\",\"parent\":\"ModifiedNode.ModifiedNode.__type.FinalFields\"},{\"kind\":1024,\"name\":\"PreviousFields\",\"url\":\"interfaces/ModifiedNode.html#ModifiedNode.__type.PreviousFields\",\"classes\":\"\",\"parent\":\"ModifiedNode.ModifiedNode.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/ModifiedNode.html#ModifiedNode.__type.PreviousFields.__type-2\",\"classes\":\"\",\"parent\":\"ModifiedNode.ModifiedNode.__type.PreviousFields\"},{\"kind\":1024,\"name\":\"PreviousTxnID\",\"url\":\"interfaces/ModifiedNode.html#ModifiedNode.__type.PreviousTxnID\",\"classes\":\"\",\"parent\":\"ModifiedNode.ModifiedNode.__type\"},{\"kind\":1024,\"name\":\"PreviousTxnLgrSeq\",\"url\":\"interfaces/ModifiedNode.html#ModifiedNode.__type.PreviousTxnLgrSeq\",\"classes\":\"\",\"parent\":\"ModifiedNode.ModifiedNode.__type\"},{\"kind\":256,\"name\":\"DeletedNode\",\"url\":\"interfaces/DeletedNode.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"DeletedNode\",\"url\":\"interfaces/DeletedNode.html#DeletedNode\",\"classes\":\"\",\"parent\":\"DeletedNode\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/DeletedNode.html#DeletedNode.__type\",\"classes\":\"\",\"parent\":\"DeletedNode.DeletedNode\"},{\"kind\":1024,\"name\":\"LedgerEntryType\",\"url\":\"interfaces/DeletedNode.html#DeletedNode.__type.LedgerEntryType\",\"classes\":\"\",\"parent\":\"DeletedNode.DeletedNode.__type\"},{\"kind\":1024,\"name\":\"LedgerIndex\",\"url\":\"interfaces/DeletedNode.html#DeletedNode.__type.LedgerIndex\",\"classes\":\"\",\"parent\":\"DeletedNode.DeletedNode.__type\"},{\"kind\":1024,\"name\":\"FinalFields\",\"url\":\"interfaces/DeletedNode.html#DeletedNode.__type.FinalFields\",\"classes\":\"\",\"parent\":\"DeletedNode.DeletedNode.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/DeletedNode.html#DeletedNode.__type.FinalFields.__type-1\",\"classes\":\"\",\"parent\":\"DeletedNode.DeletedNode.__type.FinalFields\"},{\"kind\":2097152,\"name\":\"Node\",\"url\":\"types/Node.html\",\"classes\":\"\"},{\"kind\":256,\"name\":\"TransactionMetadataBase\",\"url\":\"interfaces/TransactionMetadataBase.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"AffectedNodes\",\"url\":\"interfaces/TransactionMetadataBase.html#AffectedNodes\",\"classes\":\"\",\"parent\":\"TransactionMetadataBase\"},{\"kind\":1024,\"name\":\"DeliveredAmount\",\"url\":\"interfaces/TransactionMetadataBase.html#DeliveredAmount\",\"classes\":\"\",\"parent\":\"TransactionMetadataBase\"},{\"kind\":1024,\"name\":\"delivered_amount\",\"url\":\"interfaces/TransactionMetadataBase.html#delivered_amount\",\"classes\":\"\",\"parent\":\"TransactionMetadataBase\"},{\"kind\":1024,\"name\":\"TransactionIndex\",\"url\":\"interfaces/TransactionMetadataBase.html#TransactionIndex\",\"classes\":\"\",\"parent\":\"TransactionMetadataBase\"},{\"kind\":1024,\"name\":\"TransactionResult\",\"url\":\"interfaces/TransactionMetadataBase.html#TransactionResult\",\"classes\":\"\",\"parent\":\"TransactionMetadataBase\"},{\"kind\":2097152,\"name\":\"TransactionMetadata\",\"url\":\"types/TransactionMetadata.html\",\"classes\":\"\"},{\"kind\":2097152,\"name\":\"LedgerIndex\",\"url\":\"types/LedgerIndex.html\",\"classes\":\"\"},{\"kind\":256,\"name\":\"XRP\",\"url\":\"interfaces/XRP.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"currency\",\"url\":\"interfaces/XRP.html#currency\",\"classes\":\"\",\"parent\":\"XRP\"},{\"kind\":1024,\"name\":\"issuer\",\"url\":\"interfaces/XRP.html#issuer\",\"classes\":\"\",\"parent\":\"XRP\"},{\"kind\":256,\"name\":\"IssuedCurrency\",\"url\":\"interfaces/IssuedCurrency.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"currency\",\"url\":\"interfaces/IssuedCurrency.html#currency\",\"classes\":\"\",\"parent\":\"IssuedCurrency\"},{\"kind\":1024,\"name\":\"issuer\",\"url\":\"interfaces/IssuedCurrency.html#issuer\",\"classes\":\"\",\"parent\":\"IssuedCurrency\"},{\"kind\":2097152,\"name\":\"Currency\",\"url\":\"types/Currency.html\",\"classes\":\"\"},{\"kind\":256,\"name\":\"IssuedCurrencyAmount\",\"url\":\"interfaces/IssuedCurrencyAmount.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"value\",\"url\":\"interfaces/IssuedCurrencyAmount.html#value\",\"classes\":\"\",\"parent\":\"IssuedCurrencyAmount\"},{\"kind\":1024,\"name\":\"currency\",\"url\":\"interfaces/IssuedCurrencyAmount.html#currency\",\"classes\":\"tsd-is-inherited\",\"parent\":\"IssuedCurrencyAmount\"},{\"kind\":1024,\"name\":\"issuer\",\"url\":\"interfaces/IssuedCurrencyAmount.html#issuer\",\"classes\":\"tsd-is-inherited\",\"parent\":\"IssuedCurrencyAmount\"},{\"kind\":2097152,\"name\":\"Amount\",\"url\":\"types/Amount.html\",\"classes\":\"\"},{\"kind\":256,\"name\":\"Balance\",\"url\":\"interfaces/Balance.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"currency\",\"url\":\"interfaces/Balance.html#currency\",\"classes\":\"\",\"parent\":\"Balance\"},{\"kind\":1024,\"name\":\"issuer\",\"url\":\"interfaces/Balance.html#issuer\",\"classes\":\"\",\"parent\":\"Balance\"},{\"kind\":1024,\"name\":\"value\",\"url\":\"interfaces/Balance.html#value\",\"classes\":\"\",\"parent\":\"Balance\"},{\"kind\":256,\"name\":\"Signer\",\"url\":\"interfaces/Signer.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"Signer\",\"url\":\"interfaces/Signer.html#Signer\",\"classes\":\"\",\"parent\":\"Signer\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/Signer.html#Signer.__type\",\"classes\":\"\",\"parent\":\"Signer.Signer\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/Signer.html#Signer.__type.Account\",\"classes\":\"\",\"parent\":\"Signer.Signer.__type\"},{\"kind\":1024,\"name\":\"TxnSignature\",\"url\":\"interfaces/Signer.html#Signer.__type.TxnSignature\",\"classes\":\"\",\"parent\":\"Signer.Signer.__type\"},{\"kind\":1024,\"name\":\"SigningPubKey\",\"url\":\"interfaces/Signer.html#Signer.__type.SigningPubKey\",\"classes\":\"\",\"parent\":\"Signer.Signer.__type\"},{\"kind\":256,\"name\":\"Memo\",\"url\":\"interfaces/Memo.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"Memo\",\"url\":\"interfaces/Memo.html#Memo\",\"classes\":\"\",\"parent\":\"Memo\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/Memo.html#Memo.__type\",\"classes\":\"\",\"parent\":\"Memo.Memo\"},{\"kind\":1024,\"name\":\"MemoData\",\"url\":\"interfaces/Memo.html#Memo.__type.MemoData\",\"classes\":\"\",\"parent\":\"Memo.Memo.__type\"},{\"kind\":1024,\"name\":\"MemoType\",\"url\":\"interfaces/Memo.html#Memo.__type.MemoType\",\"classes\":\"\",\"parent\":\"Memo.Memo.__type\"},{\"kind\":1024,\"name\":\"MemoFormat\",\"url\":\"interfaces/Memo.html#Memo.__type.MemoFormat\",\"classes\":\"\",\"parent\":\"Memo.Memo.__type\"},{\"kind\":2097152,\"name\":\"StreamType\",\"url\":\"types/StreamType.html\",\"classes\":\"\"},{\"kind\":256,\"name\":\"PathStep\",\"url\":\"interfaces/PathStep.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"account\",\"url\":\"interfaces/PathStep.html#account\",\"classes\":\"\",\"parent\":\"PathStep\"},{\"kind\":1024,\"name\":\"currency\",\"url\":\"interfaces/PathStep.html#currency\",\"classes\":\"\",\"parent\":\"PathStep\"},{\"kind\":1024,\"name\":\"issuer\",\"url\":\"interfaces/PathStep.html#issuer\",\"classes\":\"\",\"parent\":\"PathStep\"},{\"kind\":2097152,\"name\":\"Path\",\"url\":\"types/Path.html\",\"classes\":\"\"},{\"kind\":256,\"name\":\"SignerEntry\",\"url\":\"interfaces/SignerEntry.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"SignerEntry\",\"url\":\"interfaces/SignerEntry.html#SignerEntry\",\"classes\":\"\",\"parent\":\"SignerEntry\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/SignerEntry.html#SignerEntry.__type\",\"classes\":\"\",\"parent\":\"SignerEntry.SignerEntry\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/SignerEntry.html#SignerEntry.__type.Account\",\"classes\":\"\",\"parent\":\"SignerEntry.SignerEntry.__type\"},{\"kind\":1024,\"name\":\"SignerWeight\",\"url\":\"interfaces/SignerEntry.html#SignerEntry.__type.SignerWeight\",\"classes\":\"\",\"parent\":\"SignerEntry.SignerEntry.__type\"},{\"kind\":1024,\"name\":\"WalletLocator\",\"url\":\"interfaces/SignerEntry.html#SignerEntry.__type.WalletLocator\",\"classes\":\"\",\"parent\":\"SignerEntry.SignerEntry.__type\"},{\"kind\":256,\"name\":\"ResponseOnlyTxInfo\",\"url\":\"interfaces/ResponseOnlyTxInfo.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"date\",\"url\":\"interfaces/ResponseOnlyTxInfo.html#date\",\"classes\":\"\",\"parent\":\"ResponseOnlyTxInfo\"},{\"kind\":1024,\"name\":\"hash\",\"url\":\"interfaces/ResponseOnlyTxInfo.html#hash\",\"classes\":\"\",\"parent\":\"ResponseOnlyTxInfo\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/ResponseOnlyTxInfo.html#ledger_index\",\"classes\":\"\",\"parent\":\"ResponseOnlyTxInfo\"},{\"kind\":1024,\"name\":\"inLedger\",\"url\":\"interfaces/ResponseOnlyTxInfo.html#inLedger\",\"classes\":\"\",\"parent\":\"ResponseOnlyTxInfo\"},{\"kind\":256,\"name\":\"NFTOffer\",\"url\":\"interfaces/NFTOffer.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"amount\",\"url\":\"interfaces/NFTOffer.html#amount\",\"classes\":\"\",\"parent\":\"NFTOffer\"},{\"kind\":1024,\"name\":\"flags\",\"url\":\"interfaces/NFTOffer.html#flags\",\"classes\":\"\",\"parent\":\"NFTOffer\"},{\"kind\":1024,\"name\":\"nft_offer_index\",\"url\":\"interfaces/NFTOffer.html#nft_offer_index\",\"classes\":\"\",\"parent\":\"NFTOffer\"},{\"kind\":1024,\"name\":\"owner\",\"url\":\"interfaces/NFTOffer.html#owner\",\"classes\":\"\",\"parent\":\"NFTOffer\"},{\"kind\":1024,\"name\":\"destination\",\"url\":\"interfaces/NFTOffer.html#destination\",\"classes\":\"\",\"parent\":\"NFTOffer\"},{\"kind\":1024,\"name\":\"expiration\",\"url\":\"interfaces/NFTOffer.html#expiration\",\"classes\":\"\",\"parent\":\"NFTOffer\"},{\"kind\":256,\"name\":\"NFToken\",\"url\":\"interfaces/NFToken.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"nft_id\",\"url\":\"interfaces/NFToken.html#nft_id\",\"classes\":\"\",\"parent\":\"NFToken\"},{\"kind\":1024,\"name\":\"ledger_index\",\"url\":\"interfaces/NFToken.html#ledger_index\",\"classes\":\"\",\"parent\":\"NFToken\"},{\"kind\":1024,\"name\":\"owner\",\"url\":\"interfaces/NFToken.html#owner\",\"classes\":\"\",\"parent\":\"NFToken\"},{\"kind\":1024,\"name\":\"is_burned\",\"url\":\"interfaces/NFToken.html#is_burned\",\"classes\":\"\",\"parent\":\"NFToken\"},{\"kind\":1024,\"name\":\"flags\",\"url\":\"interfaces/NFToken.html#flags\",\"classes\":\"\",\"parent\":\"NFToken\"},{\"kind\":1024,\"name\":\"transfer_fee\",\"url\":\"interfaces/NFToken.html#transfer_fee\",\"classes\":\"\",\"parent\":\"NFToken\"},{\"kind\":1024,\"name\":\"issuer\",\"url\":\"interfaces/NFToken.html#issuer\",\"classes\":\"\",\"parent\":\"NFToken\"},{\"kind\":1024,\"name\":\"nft_taxon\",\"url\":\"interfaces/NFToken.html#nft_taxon\",\"classes\":\"\",\"parent\":\"NFToken\"},{\"kind\":1024,\"name\":\"nft_serial\",\"url\":\"interfaces/NFToken.html#nft_serial\",\"classes\":\"\",\"parent\":\"NFToken\"},{\"kind\":1024,\"name\":\"uri\",\"url\":\"interfaces/NFToken.html#uri\",\"classes\":\"\",\"parent\":\"NFToken\"},{\"kind\":256,\"name\":\"AuthAccount\",\"url\":\"interfaces/AuthAccount.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"AuthAccount\",\"url\":\"interfaces/AuthAccount.html#AuthAccount\",\"classes\":\"\",\"parent\":\"AuthAccount\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/AuthAccount.html#AuthAccount.__type\",\"classes\":\"\",\"parent\":\"AuthAccount.AuthAccount\"},{\"kind\":1024,\"name\":\"Account\",\"url\":\"interfaces/AuthAccount.html#AuthAccount.__type.Account\",\"classes\":\"\",\"parent\":\"AuthAccount.AuthAccount.__type\"},{\"kind\":256,\"name\":\"XChainBridge\",\"url\":\"interfaces/XChainBridge.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"LockingChainDoor\",\"url\":\"interfaces/XChainBridge.html#LockingChainDoor\",\"classes\":\"\",\"parent\":\"XChainBridge\"},{\"kind\":1024,\"name\":\"LockingChainIssue\",\"url\":\"interfaces/XChainBridge.html#LockingChainIssue\",\"classes\":\"\",\"parent\":\"XChainBridge\"},{\"kind\":1024,\"name\":\"IssuingChainDoor\",\"url\":\"interfaces/XChainBridge.html#IssuingChainDoor\",\"classes\":\"\",\"parent\":\"XChainBridge\"},{\"kind\":1024,\"name\":\"IssuingChainIssue\",\"url\":\"interfaces/XChainBridge.html#IssuingChainIssue\",\"classes\":\"\",\"parent\":\"XChainBridge\"},{\"kind\":64,\"name\":\"getBalanceChanges\",\"url\":\"functions/getBalanceChanges.html\",\"classes\":\"\"},{\"kind\":64,\"name\":\"dropsToXrp\",\"url\":\"functions/dropsToXrp.html\",\"classes\":\"\"},{\"kind\":64,\"name\":\"xrpToDrops\",\"url\":\"functions/xrpToDrops.html\",\"classes\":\"\"},{\"kind\":64,\"name\":\"hasNextPage\",\"url\":\"functions/hasNextPage.html\",\"classes\":\"\"},{\"kind\":64,\"name\":\"rippleTimeToISOTime\",\"url\":\"functions/rippleTimeToISOTime.html\",\"classes\":\"\"},{\"kind\":64,\"name\":\"isoTimeToRippleTime\",\"url\":\"functions/isoTimeToRippleTime.html\",\"classes\":\"\"},{\"kind\":64,\"name\":\"rippleTimeToUnixTime\",\"url\":\"functions/rippleTimeToUnixTime.html\",\"classes\":\"\"},{\"kind\":64,\"name\":\"unixTimeToRippleTime\",\"url\":\"functions/unixTimeToRippleTime.html\",\"classes\":\"\"},{\"kind\":64,\"name\":\"percentToQuality\",\"url\":\"functions/percentToQuality.html\",\"classes\":\"\"},{\"kind\":64,\"name\":\"decimalToQuality\",\"url\":\"functions/decimalToQuality.html\",\"classes\":\"\"},{\"kind\":64,\"name\":\"percentToTransferRate\",\"url\":\"functions/percentToTransferRate.html\",\"classes\":\"\"},{\"kind\":64,\"name\":\"decimalToTransferRate\",\"url\":\"functions/decimalToTransferRate.html\",\"classes\":\"\"},{\"kind\":64,\"name\":\"transferRateToDecimal\",\"url\":\"functions/transferRateToDecimal.html\",\"classes\":\"\"},{\"kind\":64,\"name\":\"qualityToDecimal\",\"url\":\"functions/qualityToDecimal.html\",\"classes\":\"\"},{\"kind\":64,\"name\":\"isValidSecret\",\"url\":\"functions/isValidSecret.html\",\"classes\":\"\"},{\"kind\":64,\"name\":\"isValidAddress\",\"url\":\"functions/isValidAddress.html\",\"classes\":\"\"},{\"kind\":32,\"name\":\"hashes\",\"url\":\"variables/hashes.html\",\"classes\":\"\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/hashes.html#__type\",\"classes\":\"\",\"parent\":\"hashes\"},{\"kind\":1024,\"name\":\"hashSignedTx\",\"url\":\"variables/hashes.html#__type.hashSignedTx\",\"classes\":\"\",\"parent\":\"hashes.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/hashes.html#__type.hashSignedTx.__type-13\",\"classes\":\"\",\"parent\":\"hashes.__type.hashSignedTx\"},{\"kind\":1024,\"name\":\"hashTx\",\"url\":\"variables/hashes.html#__type.hashTx\",\"classes\":\"\",\"parent\":\"hashes.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/hashes.html#__type.hashTx.__type-21\",\"classes\":\"\",\"parent\":\"hashes.__type.hashTx\"},{\"kind\":1024,\"name\":\"hashAccountRoot\",\"url\":\"variables/hashes.html#__type.hashAccountRoot\",\"classes\":\"\",\"parent\":\"hashes.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/hashes.html#__type.hashAccountRoot.__type-1\",\"classes\":\"\",\"parent\":\"hashes.__type.hashAccountRoot\"},{\"kind\":1024,\"name\":\"hashSignerListId\",\"url\":\"variables/hashes.html#__type.hashSignerListId\",\"classes\":\"\",\"parent\":\"hashes.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/hashes.html#__type.hashSignerListId.__type-15\",\"classes\":\"\",\"parent\":\"hashes.__type.hashSignerListId\"},{\"kind\":1024,\"name\":\"hashOfferId\",\"url\":\"variables/hashes.html#__type.hashOfferId\",\"classes\":\"\",\"parent\":\"hashes.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/hashes.html#__type.hashOfferId.__type-9\",\"classes\":\"\",\"parent\":\"hashes.__type.hashOfferId\"},{\"kind\":1024,\"name\":\"hashTrustline\",\"url\":\"variables/hashes.html#__type.hashTrustline\",\"classes\":\"\",\"parent\":\"hashes.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/hashes.html#__type.hashTrustline.__type-19\",\"classes\":\"\",\"parent\":\"hashes.__type.hashTrustline\"},{\"kind\":1024,\"name\":\"hashTxTree\",\"url\":\"variables/hashes.html#__type.hashTxTree\",\"classes\":\"\",\"parent\":\"hashes.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/hashes.html#__type.hashTxTree.__type-23\",\"classes\":\"\",\"parent\":\"hashes.__type.hashTxTree\"},{\"kind\":1024,\"name\":\"hashStateTree\",\"url\":\"variables/hashes.html#__type.hashStateTree\",\"classes\":\"\",\"parent\":\"hashes.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/hashes.html#__type.hashStateTree.__type-17\",\"classes\":\"\",\"parent\":\"hashes.__type.hashStateTree\"},{\"kind\":1024,\"name\":\"hashLedger\",\"url\":\"variables/hashes.html#__type.hashLedger\",\"classes\":\"\",\"parent\":\"hashes.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/hashes.html#__type.hashLedger.__type-5\",\"classes\":\"\",\"parent\":\"hashes.__type.hashLedger\"},{\"kind\":1024,\"name\":\"hashLedgerHeader\",\"url\":\"variables/hashes.html#__type.hashLedgerHeader\",\"classes\":\"\",\"parent\":\"hashes.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/hashes.html#__type.hashLedgerHeader.__type-7\",\"classes\":\"\",\"parent\":\"hashes.__type.hashLedgerHeader\"},{\"kind\":1024,\"name\":\"hashEscrow\",\"url\":\"variables/hashes.html#__type.hashEscrow\",\"classes\":\"\",\"parent\":\"hashes.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/hashes.html#__type.hashEscrow.__type-3\",\"classes\":\"\",\"parent\":\"hashes.__type.hashEscrow\"},{\"kind\":1024,\"name\":\"hashPaymentChannel\",\"url\":\"variables/hashes.html#__type.hashPaymentChannel\",\"classes\":\"\",\"parent\":\"hashes.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/hashes.html#__type.hashPaymentChannel.__type-11\",\"classes\":\"\",\"parent\":\"hashes.__type.hashPaymentChannel\"},{\"kind\":64,\"name\":\"deriveXAddress\",\"url\":\"functions/deriveXAddress.html\",\"classes\":\"\"},{\"kind\":64,\"name\":\"signPaymentChannelClaim\",\"url\":\"functions/signPaymentChannelClaim.html\",\"classes\":\"\"},{\"kind\":64,\"name\":\"verifyPaymentChannelClaim\",\"url\":\"functions/verifyPaymentChannelClaim.html\",\"classes\":\"\"},{\"kind\":64,\"name\":\"convertStringToHex\",\"url\":\"functions/convertStringToHex.html\",\"classes\":\"\"},{\"kind\":64,\"name\":\"convertHexToString\",\"url\":\"functions/convertHexToString.html\",\"classes\":\"\"},{\"kind\":64,\"name\":\"encode\",\"url\":\"functions/encode.html\",\"classes\":\"\"},{\"kind\":64,\"name\":\"decode\",\"url\":\"functions/decode.html\",\"classes\":\"\"},{\"kind\":64,\"name\":\"encodeForMultiSigning\",\"url\":\"functions/encodeForMultiSigning.html\",\"classes\":\"\"},{\"kind\":64,\"name\":\"encodeForSigning\",\"url\":\"functions/encodeForSigning.html\",\"classes\":\"\"},{\"kind\":64,\"name\":\"encodeForSigningClaim\",\"url\":\"functions/encodeForSigningClaim.html\",\"classes\":\"\"},{\"kind\":64,\"name\":\"getNFTokenID\",\"url\":\"functions/getNFTokenID.html\",\"classes\":\"\"},{\"kind\":64,\"name\":\"parseNFTokenID\",\"url\":\"functions/parseNFTokenID.html\",\"classes\":\"\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"functions/parseNFTokenID.html#parseNFTokenID.__type\",\"classes\":\"\",\"parent\":\"parseNFTokenID.parseNFTokenID\"},{\"kind\":1024,\"name\":\"NFTokenID\",\"url\":\"functions/parseNFTokenID.html#parseNFTokenID.__type.NFTokenID\",\"classes\":\"\",\"parent\":\"parseNFTokenID.parseNFTokenID.__type\"},{\"kind\":1024,\"name\":\"Flags\",\"url\":\"functions/parseNFTokenID.html#parseNFTokenID.__type.Flags\",\"classes\":\"\",\"parent\":\"parseNFTokenID.parseNFTokenID.__type\"},{\"kind\":1024,\"name\":\"TransferFee\",\"url\":\"functions/parseNFTokenID.html#parseNFTokenID.__type.TransferFee\",\"classes\":\"\",\"parent\":\"parseNFTokenID.parseNFTokenID.__type\"},{\"kind\":1024,\"name\":\"Issuer\",\"url\":\"functions/parseNFTokenID.html#parseNFTokenID.__type.Issuer\",\"classes\":\"\",\"parent\":\"parseNFTokenID.parseNFTokenID.__type\"},{\"kind\":1024,\"name\":\"Taxon\",\"url\":\"functions/parseNFTokenID.html#parseNFTokenID.__type.Taxon\",\"classes\":\"\",\"parent\":\"parseNFTokenID.parseNFTokenID.__type\"},{\"kind\":1024,\"name\":\"Sequence\",\"url\":\"functions/parseNFTokenID.html#parseNFTokenID.__type.Sequence\",\"classes\":\"\",\"parent\":\"parseNFTokenID.parseNFTokenID.__type\"},{\"kind\":64,\"name\":\"getXChainClaimID\",\"url\":\"functions/getXChainClaimID.html\",\"classes\":\"\"},{\"kind\":128,\"name\":\"XrplError\",\"url\":\"classes/XrplError.html\",\"classes\":\"\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/XrplError.html#constructor\",\"classes\":\"\",\"parent\":\"XrplError\"},{\"kind\":1024,\"name\":\"name\",\"url\":\"classes/XrplError.html#name\",\"classes\":\"\",\"parent\":\"XrplError\"},{\"kind\":1024,\"name\":\"message\",\"url\":\"classes/XrplError.html#message\",\"classes\":\"\",\"parent\":\"XrplError\"},{\"kind\":1024,\"name\":\"data\",\"url\":\"classes/XrplError.html#data\",\"classes\":\"\",\"parent\":\"XrplError\"},{\"kind\":2048,\"name\":\"toString\",\"url\":\"classes/XrplError.html#toString\",\"classes\":\"\",\"parent\":\"XrplError\"},{\"kind\":2048,\"name\":\"inspect\",\"url\":\"classes/XrplError.html#inspect\",\"classes\":\"\",\"parent\":\"XrplError\"},{\"kind\":128,\"name\":\"UnexpectedError\",\"url\":\"classes/UnexpectedError.html\",\"classes\":\"\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/UnexpectedError.html#constructor\",\"classes\":\"tsd-is-inherited\",\"parent\":\"UnexpectedError\"},{\"kind\":1024,\"name\":\"name\",\"url\":\"classes/UnexpectedError.html#name\",\"classes\":\"tsd-is-inherited\",\"parent\":\"UnexpectedError\"},{\"kind\":1024,\"name\":\"message\",\"url\":\"classes/UnexpectedError.html#message\",\"classes\":\"tsd-is-inherited\",\"parent\":\"UnexpectedError\"},{\"kind\":1024,\"name\":\"data\",\"url\":\"classes/UnexpectedError.html#data\",\"classes\":\"tsd-is-inherited\",\"parent\":\"UnexpectedError\"},{\"kind\":2048,\"name\":\"toString\",\"url\":\"classes/UnexpectedError.html#toString\",\"classes\":\"tsd-is-inherited\",\"parent\":\"UnexpectedError\"},{\"kind\":2048,\"name\":\"inspect\",\"url\":\"classes/UnexpectedError.html#inspect\",\"classes\":\"tsd-is-inherited\",\"parent\":\"UnexpectedError\"},{\"kind\":128,\"name\":\"ConnectionError\",\"url\":\"classes/ConnectionError.html\",\"classes\":\"\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/ConnectionError.html#constructor\",\"classes\":\"tsd-is-inherited\",\"parent\":\"ConnectionError\"},{\"kind\":1024,\"name\":\"name\",\"url\":\"classes/ConnectionError.html#name\",\"classes\":\"tsd-is-inherited\",\"parent\":\"ConnectionError\"},{\"kind\":1024,\"name\":\"message\",\"url\":\"classes/ConnectionError.html#message\",\"classes\":\"tsd-is-inherited\",\"parent\":\"ConnectionError\"},{\"kind\":1024,\"name\":\"data\",\"url\":\"classes/ConnectionError.html#data\",\"classes\":\"tsd-is-inherited\",\"parent\":\"ConnectionError\"},{\"kind\":2048,\"name\":\"toString\",\"url\":\"classes/ConnectionError.html#toString\",\"classes\":\"tsd-is-inherited\",\"parent\":\"ConnectionError\"},{\"kind\":2048,\"name\":\"inspect\",\"url\":\"classes/ConnectionError.html#inspect\",\"classes\":\"tsd-is-inherited\",\"parent\":\"ConnectionError\"},{\"kind\":128,\"name\":\"RippledError\",\"url\":\"classes/RippledError.html\",\"classes\":\"\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/RippledError.html#constructor\",\"classes\":\"tsd-is-inherited\",\"parent\":\"RippledError\"},{\"kind\":1024,\"name\":\"name\",\"url\":\"classes/RippledError.html#name\",\"classes\":\"tsd-is-inherited\",\"parent\":\"RippledError\"},{\"kind\":1024,\"name\":\"message\",\"url\":\"classes/RippledError.html#message\",\"classes\":\"tsd-is-inherited\",\"parent\":\"RippledError\"},{\"kind\":1024,\"name\":\"data\",\"url\":\"classes/RippledError.html#data\",\"classes\":\"tsd-is-inherited\",\"parent\":\"RippledError\"},{\"kind\":2048,\"name\":\"toString\",\"url\":\"classes/RippledError.html#toString\",\"classes\":\"tsd-is-inherited\",\"parent\":\"RippledError\"},{\"kind\":2048,\"name\":\"inspect\",\"url\":\"classes/RippledError.html#inspect\",\"classes\":\"tsd-is-inherited\",\"parent\":\"RippledError\"},{\"kind\":128,\"name\":\"NotConnectedError\",\"url\":\"classes/NotConnectedError.html\",\"classes\":\"\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/NotConnectedError.html#constructor\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NotConnectedError\"},{\"kind\":1024,\"name\":\"name\",\"url\":\"classes/NotConnectedError.html#name\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NotConnectedError\"},{\"kind\":1024,\"name\":\"message\",\"url\":\"classes/NotConnectedError.html#message\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NotConnectedError\"},{\"kind\":1024,\"name\":\"data\",\"url\":\"classes/NotConnectedError.html#data\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NotConnectedError\"},{\"kind\":2048,\"name\":\"toString\",\"url\":\"classes/NotConnectedError.html#toString\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NotConnectedError\"},{\"kind\":2048,\"name\":\"inspect\",\"url\":\"classes/NotConnectedError.html#inspect\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NotConnectedError\"},{\"kind\":128,\"name\":\"DisconnectedError\",\"url\":\"classes/DisconnectedError.html\",\"classes\":\"\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/DisconnectedError.html#constructor\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DisconnectedError\"},{\"kind\":1024,\"name\":\"name\",\"url\":\"classes/DisconnectedError.html#name\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DisconnectedError\"},{\"kind\":1024,\"name\":\"message\",\"url\":\"classes/DisconnectedError.html#message\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DisconnectedError\"},{\"kind\":1024,\"name\":\"data\",\"url\":\"classes/DisconnectedError.html#data\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DisconnectedError\"},{\"kind\":2048,\"name\":\"toString\",\"url\":\"classes/DisconnectedError.html#toString\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DisconnectedError\"},{\"kind\":2048,\"name\":\"inspect\",\"url\":\"classes/DisconnectedError.html#inspect\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DisconnectedError\"},{\"kind\":128,\"name\":\"RippledNotInitializedError\",\"url\":\"classes/RippledNotInitializedError.html\",\"classes\":\"\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/RippledNotInitializedError.html#constructor\",\"classes\":\"tsd-is-inherited\",\"parent\":\"RippledNotInitializedError\"},{\"kind\":1024,\"name\":\"name\",\"url\":\"classes/RippledNotInitializedError.html#name\",\"classes\":\"tsd-is-inherited\",\"parent\":\"RippledNotInitializedError\"},{\"kind\":1024,\"name\":\"message\",\"url\":\"classes/RippledNotInitializedError.html#message\",\"classes\":\"tsd-is-inherited\",\"parent\":\"RippledNotInitializedError\"},{\"kind\":1024,\"name\":\"data\",\"url\":\"classes/RippledNotInitializedError.html#data\",\"classes\":\"tsd-is-inherited\",\"parent\":\"RippledNotInitializedError\"},{\"kind\":2048,\"name\":\"toString\",\"url\":\"classes/RippledNotInitializedError.html#toString\",\"classes\":\"tsd-is-inherited\",\"parent\":\"RippledNotInitializedError\"},{\"kind\":2048,\"name\":\"inspect\",\"url\":\"classes/RippledNotInitializedError.html#inspect\",\"classes\":\"tsd-is-inherited\",\"parent\":\"RippledNotInitializedError\"},{\"kind\":128,\"name\":\"TimeoutError\",\"url\":\"classes/TimeoutError.html\",\"classes\":\"\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/TimeoutError.html#constructor\",\"classes\":\"tsd-is-inherited\",\"parent\":\"TimeoutError\"},{\"kind\":1024,\"name\":\"name\",\"url\":\"classes/TimeoutError.html#name\",\"classes\":\"tsd-is-inherited\",\"parent\":\"TimeoutError\"},{\"kind\":1024,\"name\":\"message\",\"url\":\"classes/TimeoutError.html#message\",\"classes\":\"tsd-is-inherited\",\"parent\":\"TimeoutError\"},{\"kind\":1024,\"name\":\"data\",\"url\":\"classes/TimeoutError.html#data\",\"classes\":\"tsd-is-inherited\",\"parent\":\"TimeoutError\"},{\"kind\":2048,\"name\":\"toString\",\"url\":\"classes/TimeoutError.html#toString\",\"classes\":\"tsd-is-inherited\",\"parent\":\"TimeoutError\"},{\"kind\":2048,\"name\":\"inspect\",\"url\":\"classes/TimeoutError.html#inspect\",\"classes\":\"tsd-is-inherited\",\"parent\":\"TimeoutError\"},{\"kind\":128,\"name\":\"ResponseFormatError\",\"url\":\"classes/ResponseFormatError.html\",\"classes\":\"\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/ResponseFormatError.html#constructor\",\"classes\":\"tsd-is-inherited\",\"parent\":\"ResponseFormatError\"},{\"kind\":1024,\"name\":\"name\",\"url\":\"classes/ResponseFormatError.html#name\",\"classes\":\"tsd-is-inherited\",\"parent\":\"ResponseFormatError\"},{\"kind\":1024,\"name\":\"message\",\"url\":\"classes/ResponseFormatError.html#message\",\"classes\":\"tsd-is-inherited\",\"parent\":\"ResponseFormatError\"},{\"kind\":1024,\"name\":\"data\",\"url\":\"classes/ResponseFormatError.html#data\",\"classes\":\"tsd-is-inherited\",\"parent\":\"ResponseFormatError\"},{\"kind\":2048,\"name\":\"toString\",\"url\":\"classes/ResponseFormatError.html#toString\",\"classes\":\"tsd-is-inherited\",\"parent\":\"ResponseFormatError\"},{\"kind\":2048,\"name\":\"inspect\",\"url\":\"classes/ResponseFormatError.html#inspect\",\"classes\":\"tsd-is-inherited\",\"parent\":\"ResponseFormatError\"},{\"kind\":128,\"name\":\"ValidationError\",\"url\":\"classes/ValidationError.html\",\"classes\":\"\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/ValidationError.html#constructor\",\"classes\":\"tsd-is-inherited\",\"parent\":\"ValidationError\"},{\"kind\":1024,\"name\":\"name\",\"url\":\"classes/ValidationError.html#name\",\"classes\":\"tsd-is-inherited\",\"parent\":\"ValidationError\"},{\"kind\":1024,\"name\":\"message\",\"url\":\"classes/ValidationError.html#message\",\"classes\":\"tsd-is-inherited\",\"parent\":\"ValidationError\"},{\"kind\":1024,\"name\":\"data\",\"url\":\"classes/ValidationError.html#data\",\"classes\":\"tsd-is-inherited\",\"parent\":\"ValidationError\"},{\"kind\":2048,\"name\":\"toString\",\"url\":\"classes/ValidationError.html#toString\",\"classes\":\"tsd-is-inherited\",\"parent\":\"ValidationError\"},{\"kind\":2048,\"name\":\"inspect\",\"url\":\"classes/ValidationError.html#inspect\",\"classes\":\"tsd-is-inherited\",\"parent\":\"ValidationError\"},{\"kind\":128,\"name\":\"NotFoundError\",\"url\":\"classes/NotFoundError.html\",\"classes\":\"\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/NotFoundError.html#constructor\",\"classes\":\"\",\"parent\":\"NotFoundError\"},{\"kind\":1024,\"name\":\"name\",\"url\":\"classes/NotFoundError.html#name\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NotFoundError\"},{\"kind\":1024,\"name\":\"message\",\"url\":\"classes/NotFoundError.html#message\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NotFoundError\"},{\"kind\":1024,\"name\":\"data\",\"url\":\"classes/NotFoundError.html#data\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NotFoundError\"},{\"kind\":2048,\"name\":\"toString\",\"url\":\"classes/NotFoundError.html#toString\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NotFoundError\"},{\"kind\":2048,\"name\":\"inspect\",\"url\":\"classes/NotFoundError.html#inspect\",\"classes\":\"tsd-is-inherited\",\"parent\":\"NotFoundError\"},{\"kind\":128,\"name\":\"XRPLFaucetError\",\"url\":\"classes/XRPLFaucetError.html\",\"classes\":\"\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/XRPLFaucetError.html#constructor\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XRPLFaucetError\"},{\"kind\":1024,\"name\":\"name\",\"url\":\"classes/XRPLFaucetError.html#name\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XRPLFaucetError\"},{\"kind\":1024,\"name\":\"message\",\"url\":\"classes/XRPLFaucetError.html#message\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XRPLFaucetError\"},{\"kind\":1024,\"name\":\"data\",\"url\":\"classes/XRPLFaucetError.html#data\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XRPLFaucetError\"},{\"kind\":2048,\"name\":\"toString\",\"url\":\"classes/XRPLFaucetError.html#toString\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XRPLFaucetError\"},{\"kind\":2048,\"name\":\"inspect\",\"url\":\"classes/XRPLFaucetError.html#inspect\",\"classes\":\"tsd-is-inherited\",\"parent\":\"XRPLFaucetError\"},{\"kind\":64,\"name\":\"verifySignature\",\"url\":\"functions/verifySignature.html\",\"classes\":\"\"},{\"kind\":64,\"name\":\"multisign\",\"url\":\"functions/multisign.html\",\"classes\":\"\"}],\"index\":{\"version\":\"2.3.9\",\"fields\":[\"name\",\"comment\"],\"fieldVectors\":[[\"name/0\",[0,75.905]],[\"comment/0\",[]],[\"name/1\",[1,53.218]],[\"comment/1\",[]],[\"name/2\",[2,75.905]],[\"comment/2\",[]],[\"name/3\",[3,70.797]],[\"comment/3\",[]],[\"name/4\",[4,70.797]],[\"comment/4\",[]],[\"name/5\",[5,41.353]],[\"comment/5\",[]],[\"name/6\",[6,75.905]],[\"comment/6\",[]],[\"name/7\",[7,70.797]],[\"comment/7\",[]],[\"name/8\",[8,67.432]],[\"comment/8\",[]],[\"name/9\",[9,75.905]],[\"comment/9\",[]],[\"name/10\",[10,75.905]],[\"comment/10\",[]],[\"name/11\",[11,75.905]],[\"comment/11\",[]],[\"name/12\",[12,75.905]],[\"comment/12\",[]],[\"name/13\",[13,75.905]],[\"comment/13\",[]],[\"name/14\",[14,75.905]],[\"comment/14\",[]],[\"name/15\",[15,75.905]],[\"comment/15\",[]],[\"name/16\",[16,75.905]],[\"comment/16\",[]],[\"name/17\",[17,75.905]],[\"comment/17\",[]],[\"name/18\",[18,75.905]],[\"comment/18\",[]],[\"name/19\",[19,75.905]],[\"comment/19\",[]],[\"name/20\",[20,75.905]],[\"comment/20\",[]],[\"name/21\",[21,75.905]],[\"comment/21\",[]],[\"name/22\",[22,75.905]],[\"comment/22\",[]],[\"name/23\",[23,75.905]],[\"comment/23\",[]],[\"name/24\",[24,75.905]],[\"comment/24\",[]],[\"name/25\",[25,75.905]],[\"comment/25\",[]],[\"name/26\",[3,70.797]],[\"comment/26\",[]],[\"name/27\",[4,70.797]],[\"comment/27\",[]],[\"name/28\",[26,75.905]],[\"comment/28\",[]],[\"name/29\",[27,75.905]],[\"comment/29\",[]],[\"name/30\",[28,75.905]],[\"comment/30\",[]],[\"name/31\",[29,35.13]],[\"comment/31\",[]],[\"name/32\",[30,75.905]],[\"comment/32\",[]],[\"name/33\",[31,75.905]],[\"comment/33\",[]],[\"name/34\",[32,75.905]],[\"comment/34\",[]],[\"name/35\",[33,75.905]],[\"comment/35\",[]],[\"name/36\",[34,75.905]],[\"comment/36\",[]],[\"name/37\",[35,75.905]],[\"comment/37\",[]],[\"name/38\",[36,75.905]],[\"comment/38\",[]],[\"name/39\",[37,47.573]],[\"comment/39\",[]],[\"name/40\",[38,75.905]],[\"comment/40\",[]],[\"name/41\",[39,75.905]],[\"comment/41\",[]],[\"name/42\",[40,75.905]],[\"comment/42\",[]],[\"name/43\",[41,75.905]],[\"comment/43\",[]],[\"name/44\",[42,75.905]],[\"comment/44\",[]],[\"name/45\",[43,75.905]],[\"comment/45\",[]],[\"name/46\",[44,75.905]],[\"comment/46\",[]],[\"name/47\",[29,35.13]],[\"comment/47\",[]],[\"name/48\",[45,75.905]],[\"comment/48\",[]],[\"name/49\",[46,75.905]],[\"comment/49\",[]],[\"name/50\",[47,75.905]],[\"comment/50\",[]],[\"name/51\",[48,75.905]],[\"comment/51\",[]],[\"name/52\",[1,53.218]],[\"comment/52\",[]],[\"name/53\",[49,61.242]],[\"comment/53\",[]],[\"name/54\",[50,75.905]],[\"comment/54\",[]],[\"name/55\",[51,75.905]],[\"comment/55\",[]],[\"name/56\",[52,75.905]],[\"comment/56\",[]],[\"name/57\",[53,75.905]],[\"comment/57\",[]],[\"name/58\",[54,75.905]],[\"comment/58\",[]],[\"name/59\",[29,35.13]],[\"comment/59\",[]],[\"name/60\",[55,61.242]],[\"comment/60\",[]],[\"name/61\",[56,59.811]],[\"comment/61\",[]],[\"name/62\",[57,75.905]],[\"comment/62\",[]],[\"name/63\",[58,75.905]],[\"comment/63\",[]],[\"name/64\",[59,75.905]],[\"comment/64\",[]],[\"name/65\",[60,75.905]],[\"comment/65\",[]],[\"name/66\",[61,75.905]],[\"comment/66\",[]],[\"name/67\",[62,70.797]],[\"comment/67\",[]],[\"name/68\",[63,75.905]],[\"comment/68\",[]],[\"name/69\",[64,47.573]],[\"comment/69\",[]],[\"name/70\",[65,35.243]],[\"comment/70\",[]],[\"name/71\",[66,59.811]],[\"comment/71\",[]],[\"name/72\",[67,36.987]],[\"comment/72\",[]],[\"name/73\",[68,75.905]],[\"comment/73\",[]],[\"name/74\",[69,40.544]],[\"comment/74\",[]],[\"name/75\",[70,41.353]],[\"comment/75\",[]],[\"name/76\",[71,75.905]],[\"comment/76\",[]],[\"name/77\",[72,67.432]],[\"comment/77\",[]],[\"name/78\",[73,70.797]],[\"comment/78\",[]],[\"name/79\",[74,70.797]],[\"comment/79\",[]],[\"name/80\",[75,70.797]],[\"comment/80\",[]],[\"name/81\",[76,70.797]],[\"comment/81\",[]],[\"name/82\",[77,70.797]],[\"comment/82\",[]],[\"name/83\",[78,70.797]],[\"comment/83\",[]],[\"name/84\",[79,70.797]],[\"comment/84\",[]],[\"name/85\",[80,75.905]],[\"comment/85\",[]],[\"name/86\",[81,75.905]],[\"comment/86\",[]],[\"name/87\",[82,75.905]],[\"comment/87\",[]],[\"name/88\",[83,70.797]],[\"comment/88\",[]],[\"name/89\",[84,47.973]],[\"comment/89\",[]],[\"name/90\",[85,48.39]],[\"comment/90\",[]],[\"name/91\",[86,48.39]],[\"comment/91\",[]],[\"name/92\",[87,75.905]],[\"comment/92\",[]],[\"name/93\",[88,70.797]],[\"comment/93\",[]],[\"name/94\",[89,70.797]],[\"comment/94\",[]],[\"name/95\",[90,70.797]],[\"comment/95\",[]],[\"name/96\",[91,70.797]],[\"comment/96\",[]],[\"name/97\",[92,70.797]],[\"comment/97\",[]],[\"name/98\",[93,70.797]],[\"comment/98\",[]],[\"name/99\",[94,70.797]],[\"comment/99\",[]],[\"name/100\",[95,70.797]],[\"comment/100\",[]],[\"name/101\",[96,70.797]],[\"comment/101\",[]],[\"name/102\",[97,70.797]],[\"comment/102\",[]],[\"name/103\",[98,70.797]],[\"comment/103\",[]],[\"name/104\",[99,70.797]],[\"comment/104\",[]],[\"name/105\",[100,70.797]],[\"comment/105\",[]],[\"name/106\",[101,70.797]],[\"comment/106\",[]],[\"name/107\",[102,70.797]],[\"comment/107\",[]],[\"name/108\",[103,75.905]],[\"comment/108\",[]],[\"name/109\",[88,70.797]],[\"comment/109\",[]],[\"name/110\",[89,70.797]],[\"comment/110\",[]],[\"name/111\",[90,70.797]],[\"comment/111\",[]],[\"name/112\",[91,70.797]],[\"comment/112\",[]],[\"name/113\",[92,70.797]],[\"comment/113\",[]],[\"name/114\",[93,70.797]],[\"comment/114\",[]],[\"name/115\",[94,70.797]],[\"comment/115\",[]],[\"name/116\",[95,70.797]],[\"comment/116\",[]],[\"name/117\",[96,70.797]],[\"comment/117\",[]],[\"name/118\",[97,70.797]],[\"comment/118\",[]],[\"name/119\",[98,70.797]],[\"comment/119\",[]],[\"name/120\",[99,70.797]],[\"comment/120\",[]],[\"name/121\",[100,70.797]],[\"comment/121\",[]],[\"name/122\",[101,70.797]],[\"comment/122\",[]],[\"name/123\",[102,70.797]],[\"comment/123\",[]],[\"name/124\",[104,75.905]],[\"comment/124\",[]],[\"name/125\",[105,67.432]],[\"comment/125\",[]],[\"name/126\",[64,47.573]],[\"comment/126\",[]],[\"name/127\",[105,67.432]],[\"comment/127\",[]],[\"name/128\",[106,75.905]],[\"comment/128\",[]],[\"name/129\",[67,36.987]],[\"comment/129\",[]],[\"name/130\",[84,47.973]],[\"comment/130\",[]],[\"name/131\",[85,48.39]],[\"comment/131\",[]],[\"name/132\",[86,48.39]],[\"comment/132\",[]],[\"name/133\",[107,67.432]],[\"comment/133\",[]],[\"name/134\",[64,47.573]],[\"comment/134\",[]],[\"name/135\",[65,35.243]],[\"comment/135\",[]],[\"name/136\",[108,58.559]],[\"comment/136\",[]],[\"name/137\",[109,58.559]],[\"comment/137\",[]],[\"name/138\",[110,75.905]],[\"comment/138\",[]],[\"name/139\",[29,35.13]],[\"comment/139\",[]],[\"name/140\",[65,35.243]],[\"comment/140\",[]],[\"name/141\",[111,70.797]],[\"comment/141\",[]],[\"name/142\",[112,75.905]],[\"comment/142\",[]],[\"name/143\",[113,52.551]],[\"comment/143\",[]],[\"name/144\",[114,70.797]],[\"comment/144\",[]],[\"name/145\",[115,75.905]],[\"comment/145\",[]],[\"name/146\",[116,64.919]],[\"comment/146\",[]],[\"name/147\",[117,75.905]],[\"comment/147\",[]],[\"name/148\",[67,36.987]],[\"comment/148\",[]],[\"name/149\",[84,47.973]],[\"comment/149\",[]],[\"name/150\",[85,48.39]],[\"comment/150\",[]],[\"name/151\",[86,48.39]],[\"comment/151\",[]],[\"name/152\",[118,70.797]],[\"comment/152\",[]],[\"name/153\",[64,47.573]],[\"comment/153\",[]],[\"name/154\",[65,35.243]],[\"comment/154\",[]],[\"name/155\",[119,59.811]],[\"comment/155\",[]],[\"name/156\",[120,54.703]],[\"comment/156\",[]],[\"name/157\",[121,62.912]],[\"comment/157\",[]],[\"name/158\",[122,67.432]],[\"comment/158\",[]],[\"name/159\",[123,75.905]],[\"comment/159\",[]],[\"name/160\",[124,67.432]],[\"comment/160\",[]],[\"name/161\",[67,36.987]],[\"comment/161\",[]],[\"name/162\",[125,53.933]],[\"comment/162\",[]],[\"name/163\",[84,47.973]],[\"comment/163\",[]],[\"name/164\",[85,48.39]],[\"comment/164\",[]],[\"name/165\",[86,48.39]],[\"comment/165\",[]],[\"name/166\",[126,70.797]],[\"comment/166\",[]],[\"name/167\",[64,47.573]],[\"comment/167\",[]],[\"name/168\",[65,35.243]],[\"comment/168\",[]],[\"name/169\",[127,52.551]],[\"comment/169\",[]],[\"name/170\",[67,36.987]],[\"comment/170\",[]],[\"name/171\",[125,53.933]],[\"comment/171\",[]],[\"name/172\",[85,48.39]],[\"comment/172\",[]],[\"name/173\",[86,48.39]],[\"comment/173\",[]],[\"name/174\",[128,67.432]],[\"comment/174\",[]],[\"name/175\",[69,40.544]],[\"comment/175\",[]],[\"name/176\",[129,67.432]],[\"comment/176\",[]],[\"name/177\",[130,57.447]],[\"comment/177\",[]],[\"name/178\",[113,52.551]],[\"comment/178\",[]],[\"name/179\",[131,67.432]],[\"comment/179\",[]],[\"name/180\",[132,40.94]],[\"comment/180\",[]],[\"name/181\",[84,47.973]],[\"comment/181\",[]],[\"name/182\",[133,70.797]],[\"comment/182\",[]],[\"name/183\",[64,47.573]],[\"comment/183\",[]],[\"name/184\",[65,35.243]],[\"comment/184\",[]],[\"name/185\",[134,70.797]],[\"comment/185\",[]],[\"name/186\",[67,36.987]],[\"comment/186\",[]],[\"name/187\",[125,53.933]],[\"comment/187\",[]],[\"name/188\",[84,47.973]],[\"comment/188\",[]],[\"name/189\",[85,48.39]],[\"comment/189\",[]],[\"name/190\",[86,48.39]],[\"comment/190\",[]],[\"name/191\",[135,75.905]],[\"comment/191\",[]],[\"name/192\",[64,47.573]],[\"comment/192\",[]],[\"name/193\",[67,36.987]],[\"comment/193\",[]],[\"name/194\",[136,75.905]],[\"comment/194\",[]],[\"name/195\",[137,75.905]],[\"comment/195\",[]],[\"name/196\",[138,75.905]],[\"comment/196\",[]],[\"name/197\",[139,75.905]],[\"comment/197\",[]],[\"name/198\",[140,58.559]],[\"comment/198\",[]],[\"name/199\",[141,75.905]],[\"comment/199\",[]],[\"name/200\",[142,75.905]],[\"comment/200\",[]],[\"name/201\",[143,75.905]],[\"comment/201\",[]],[\"name/202\",[144,75.905]],[\"comment/202\",[]],[\"name/203\",[84,47.973]],[\"comment/203\",[]],[\"name/204\",[85,48.39]],[\"comment/204\",[]],[\"name/205\",[86,48.39]],[\"comment/205\",[]],[\"name/206\",[145,70.797]],[\"comment/206\",[]],[\"name/207\",[64,47.573]],[\"comment/207\",[]],[\"name/208\",[65,35.243]],[\"comment/208\",[]],[\"name/209\",[146,51.926]],[\"comment/209\",[]],[\"name/210\",[147,70.797]],[\"comment/210\",[]],[\"name/211\",[148,61.242]],[\"comment/211\",[]],[\"name/212\",[67,36.987]],[\"comment/212\",[]],[\"name/213\",[125,53.933]],[\"comment/213\",[]],[\"name/214\",[84,47.973]],[\"comment/214\",[]],[\"name/215\",[85,48.39]],[\"comment/215\",[]],[\"name/216\",[86,48.39]],[\"comment/216\",[]],[\"name/217\",[149,70.797]],[\"comment/217\",[]],[\"name/218\",[64,47.573]],[\"comment/218\",[]],[\"name/219\",[65,35.243]],[\"comment/219\",[]],[\"name/220\",[127,52.551]],[\"comment/220\",[]],[\"name/221\",[37,47.573]],[\"comment/221\",[]],[\"name/222\",[150,67.432]],[\"comment/222\",[]],[\"name/223\",[151,64.919]],[\"comment/223\",[]],[\"name/224\",[152,70.797]],[\"comment/224\",[]],[\"name/225\",[67,36.987]],[\"comment/225\",[]],[\"name/226\",[132,40.94]],[\"comment/226\",[]],[\"name/227\",[130,57.447]],[\"comment/227\",[]],[\"name/228\",[125,53.933]],[\"comment/228\",[]],[\"name/229\",[129,67.432]],[\"comment/229\",[]],[\"name/230\",[84,47.973]],[\"comment/230\",[]],[\"name/231\",[85,48.39]],[\"comment/231\",[]],[\"name/232\",[86,48.39]],[\"comment/232\",[]],[\"name/233\",[153,75.905]],[\"comment/233\",[]],[\"name/234\",[154,75.905]],[\"comment/234\",[]],[\"name/235\",[64,47.573]],[\"comment/235\",[]],[\"name/236\",[67,36.987]],[\"comment/236\",[]],[\"name/237\",[84,47.973]],[\"comment/237\",[]],[\"name/238\",[85,48.39]],[\"comment/238\",[]],[\"name/239\",[86,48.39]],[\"comment/239\",[]],[\"name/240\",[155,75.905]],[\"comment/240\",[]],[\"name/241\",[156,70.797]],[\"comment/241\",[]],[\"name/242\",[157,70.797]],[\"comment/242\",[]],[\"name/243\",[158,70.797]],[\"comment/243\",[]],[\"name/244\",[159,70.797]],[\"comment/244\",[]],[\"name/245\",[160,75.905]],[\"comment/245\",[]],[\"name/246\",[161,70.797]],[\"comment/246\",[]],[\"name/247\",[162,70.797]],[\"comment/247\",[]],[\"name/248\",[163,70.797]],[\"comment/248\",[]],[\"name/249\",[164,75.905]],[\"comment/249\",[]],[\"name/250\",[165,70.797]],[\"comment/250\",[]],[\"name/251\",[166,70.797]],[\"comment/251\",[]],[\"name/252\",[167,70.797]],[\"comment/252\",[]],[\"name/253\",[168,67.432]],[\"comment/253\",[]],[\"name/254\",[169,70.797]],[\"comment/254\",[]],[\"name/255\",[170,70.797]],[\"comment/255\",[]],[\"name/256\",[171,67.432]],[\"comment/256\",[]],[\"name/257\",[172,42.703]],[\"comment/257\",[]],[\"name/258\",[173,41.565]],[\"comment/258\",[]],[\"name/259\",[174,70.797]],[\"comment/259\",[]],[\"name/260\",[175,70.797]],[\"comment/260\",[]],[\"name/261\",[176,70.797]],[\"comment/261\",[]],[\"name/262\",[177,70.797]],[\"comment/262\",[]],[\"name/263\",[178,58.559]],[\"comment/263\",[]],[\"name/264\",[179,75.905]],[\"comment/264\",[]],[\"name/265\",[62,70.797]],[\"comment/265\",[]],[\"name/266\",[180,75.905]],[\"comment/266\",[]],[\"name/267\",[64,47.573]],[\"comment/267\",[]],[\"name/268\",[181,41.353]],[\"comment/268\",[]],[\"name/269\",[182,70.797]],[\"comment/269\",[]],[\"name/270\",[67,36.987]],[\"comment/270\",[]],[\"name/271\",[84,47.973]],[\"comment/271\",[]],[\"name/272\",[85,48.39]],[\"comment/272\",[]],[\"name/273\",[86,48.39]],[\"comment/273\",[]],[\"name/274\",[183,70.797]],[\"comment/274\",[]],[\"name/275\",[183,70.797]],[\"comment/275\",[]],[\"name/276\",[29,35.13]],[\"comment/276\",[]],[\"name/277\",[184,70.797]],[\"comment/277\",[]],[\"name/278\",[185,75.905]],[\"comment/278\",[]],[\"name/279\",[186,75.905]],[\"comment/279\",[]],[\"name/280\",[187,75.905]],[\"comment/280\",[]],[\"name/281\",[64,47.573]],[\"comment/281\",[]],[\"name/282\",[188,75.905]],[\"comment/282\",[]],[\"name/283\",[189,75.905]],[\"comment/283\",[]],[\"name/284\",[190,75.905]],[\"comment/284\",[]],[\"name/285\",[84,47.973]],[\"comment/285\",[]],[\"name/286\",[85,48.39]],[\"comment/286\",[]],[\"name/287\",[86,48.39]],[\"comment/287\",[]],[\"name/288\",[191,75.905]],[\"comment/288\",[]],[\"name/289\",[64,47.573]],[\"comment/289\",[]],[\"name/290\",[37,47.573]],[\"comment/290\",[]],[\"name/291\",[127,52.551]],[\"comment/291\",[]],[\"name/292\",[113,52.551]],[\"comment/292\",[]],[\"name/293\",[67,36.987]],[\"comment/293\",[]],[\"name/294\",[192,75.905]],[\"comment/294\",[]],[\"name/295\",[140,58.559]],[\"comment/295\",[]],[\"name/296\",[125,53.933]],[\"comment/296\",[]],[\"name/297\",[84,47.973]],[\"comment/297\",[]],[\"name/298\",[85,48.39]],[\"comment/298\",[]],[\"name/299\",[86,48.39]],[\"comment/299\",[]],[\"name/300\",[193,75.905]],[\"comment/300\",[]],[\"name/301\",[64,47.573]],[\"comment/301\",[]],[\"name/302\",[194,75.905]],[\"comment/302\",[]],[\"name/303\",[195,75.905]],[\"comment/303\",[]],[\"name/304\",[196,75.905]],[\"comment/304\",[]],[\"name/305\",[84,47.973]],[\"comment/305\",[]],[\"name/306\",[85,48.39]],[\"comment/306\",[]],[\"name/307\",[86,48.39]],[\"comment/307\",[]],[\"name/308\",[197,67.432]],[\"comment/308\",[]],[\"name/309\",[197,67.432]],[\"comment/309\",[]],[\"name/310\",[29,35.13]],[\"comment/310\",[]],[\"name/311\",[67,36.987]],[\"comment/311\",[]],[\"name/312\",[198,53.218]],[\"comment/312\",[]],[\"name/313\",[199,62.912]],[\"comment/313\",[]],[\"name/314\",[200,67.432]],[\"comment/314\",[]],[\"name/315\",[148,61.242]],[\"comment/315\",[]],[\"name/316\",[201,70.797]],[\"comment/316\",[]],[\"name/317\",[64,47.573]],[\"comment/317\",[]],[\"name/318\",[67,36.987]],[\"comment/318\",[]],[\"name/319\",[65,35.243]],[\"comment/319\",[]],[\"name/320\",[69,40.544]],[\"comment/320\",[]],[\"name/321\",[202,67.432]],[\"comment/321\",[]],[\"name/322\",[203,67.432]],[\"comment/322\",[]],[\"name/323\",[204,70.797]],[\"comment/323\",[]],[\"name/324\",[205,70.797]],[\"comment/324\",[]],[\"name/325\",[125,53.933]],[\"comment/325\",[]],[\"name/326\",[113,52.551]],[\"comment/326\",[]],[\"name/327\",[84,47.973]],[\"comment/327\",[]],[\"name/328\",[85,48.39]],[\"comment/328\",[]],[\"name/329\",[86,48.39]],[\"comment/329\",[]],[\"name/330\",[206,75.905]],[\"comment/330\",[]],[\"name/331\",[207,75.905]],[\"comment/331\",[]],[\"name/332\",[208,75.905]],[\"comment/332\",[]],[\"name/333\",[209,75.905]],[\"comment/333\",[]],[\"name/334\",[64,47.573]],[\"comment/334\",[]],[\"name/335\",[65,35.243]],[\"comment/335\",[]],[\"name/336\",[127,52.551]],[\"comment/336\",[]],[\"name/337\",[37,47.573]],[\"comment/337\",[]],[\"name/338\",[66,59.811]],[\"comment/338\",[]],[\"name/339\",[49,61.242]],[\"comment/339\",[]],[\"name/340\",[210,70.797]],[\"comment/340\",[]],[\"name/341\",[125,53.933]],[\"comment/341\",[]],[\"name/342\",[67,36.987]],[\"comment/342\",[]],[\"name/343\",[113,52.551]],[\"comment/343\",[]],[\"name/344\",[151,64.919]],[\"comment/344\",[]],[\"name/345\",[132,40.94]],[\"comment/345\",[]],[\"name/346\",[130,57.447]],[\"comment/346\",[]],[\"name/347\",[129,67.432]],[\"comment/347\",[]],[\"name/348\",[84,47.973]],[\"comment/348\",[]],[\"name/349\",[85,48.39]],[\"comment/349\",[]],[\"name/350\",[86,48.39]],[\"comment/350\",[]],[\"name/351\",[211,75.905]],[\"comment/351\",[]],[\"name/352\",[64,47.573]],[\"comment/352\",[]],[\"name/353\",[67,36.987]],[\"comment/353\",[]],[\"name/354\",[66,59.811]],[\"comment/354\",[]],[\"name/355\",[212,75.905]],[\"comment/355\",[]],[\"name/356\",[213,75.905]],[\"comment/356\",[]],[\"name/357\",[214,75.905]],[\"comment/357\",[]],[\"name/358\",[215,75.905]],[\"comment/358\",[]],[\"name/359\",[216,75.905]],[\"comment/359\",[]],[\"name/360\",[217,75.905]],[\"comment/360\",[]],[\"name/361\",[218,75.905]],[\"comment/361\",[]],[\"name/362\",[219,75.905]],[\"comment/362\",[]],[\"name/363\",[84,47.973]],[\"comment/363\",[]],[\"name/364\",[85,48.39]],[\"comment/364\",[]],[\"name/365\",[86,48.39]],[\"comment/365\",[]],[\"name/366\",[220,75.905]],[\"comment/366\",[]],[\"name/367\",[221,75.905]],[\"comment/367\",[]],[\"name/368\",[222,75.905]],[\"comment/368\",[]],[\"name/369\",[223,75.905]],[\"comment/369\",[]],[\"name/370\",[224,75.905]],[\"comment/370\",[]],[\"name/371\",[225,75.905]],[\"comment/371\",[]],[\"name/372\",[226,75.905]],[\"comment/372\",[]],[\"name/373\",[227,75.905]],[\"comment/373\",[]],[\"name/374\",[228,75.905]],[\"comment/374\",[]],[\"name/375\",[229,75.905]],[\"comment/375\",[]],[\"name/376\",[64,47.573]],[\"comment/376\",[]],[\"name/377\",[67,36.987]],[\"comment/377\",[]],[\"name/378\",[125,53.933]],[\"comment/378\",[]],[\"name/379\",[230,70.797]],[\"comment/379\",[]],[\"name/380\",[231,75.905]],[\"comment/380\",[]],[\"name/381\",[232,70.797]],[\"comment/381\",[]],[\"name/382\",[84,47.973]],[\"comment/382\",[]],[\"name/383\",[85,48.39]],[\"comment/383\",[]],[\"name/384\",[86,48.39]],[\"comment/384\",[]],[\"name/385\",[233,75.905]],[\"comment/385\",[]],[\"name/386\",[234,75.905]],[\"comment/386\",[]],[\"name/387\",[235,70.797]],[\"comment/387\",[]],[\"name/388\",[64,47.573]],[\"comment/388\",[]],[\"name/389\",[65,35.243]],[\"comment/389\",[]],[\"name/390\",[67,36.987]],[\"comment/390\",[]],[\"name/391\",[125,53.933]],[\"comment/391\",[]],[\"name/392\",[236,41.353]],[\"comment/392\",[]],[\"name/393\",[84,47.973]],[\"comment/393\",[]],[\"name/394\",[85,48.39]],[\"comment/394\",[]],[\"name/395\",[86,48.39]],[\"comment/395\",[]],[\"name/396\",[237,75.905]],[\"comment/396\",[]],[\"name/397\",[64,47.573]],[\"comment/397\",[]],[\"name/398\",[65,35.243]],[\"comment/398\",[]],[\"name/399\",[120,54.703]],[\"comment/399\",[]],[\"name/400\",[121,62.912]],[\"comment/400\",[]],[\"name/401\",[238,64.919]],[\"comment/401\",[]],[\"name/402\",[239,75.905]],[\"comment/402\",[]],[\"name/403\",[119,59.811]],[\"comment/403\",[]],[\"name/404\",[67,36.987]],[\"comment/404\",[]],[\"name/405\",[125,53.933]],[\"comment/405\",[]],[\"name/406\",[84,47.973]],[\"comment/406\",[]],[\"name/407\",[85,48.39]],[\"comment/407\",[]],[\"name/408\",[86,48.39]],[\"comment/408\",[]],[\"name/409\",[240,75.905]],[\"comment/409\",[]],[\"name/410\",[64,47.573]],[\"comment/410\",[]],[\"name/411\",[65,35.243]],[\"comment/411\",[]],[\"name/412\",[120,54.703]],[\"comment/412\",[]],[\"name/413\",[122,67.432]],[\"comment/413\",[]],[\"name/414\",[241,75.905]],[\"comment/414\",[]],[\"name/415\",[67,36.987]],[\"comment/415\",[]],[\"name/416\",[125,53.933]],[\"comment/416\",[]],[\"name/417\",[84,47.973]],[\"comment/417\",[]],[\"name/418\",[85,48.39]],[\"comment/418\",[]],[\"name/419\",[86,48.39]],[\"comment/419\",[]],[\"name/420\",[242,75.905]],[\"comment/420\",[]],[\"name/421\",[243,75.905]],[\"comment/421\",[]],[\"name/422\",[29,35.13]],[\"comment/422\",[]],[\"name/423\",[65,35.243]],[\"comment/423\",[]],[\"name/424\",[116,64.919]],[\"comment/424\",[]],[\"name/425\",[244,75.905]],[\"comment/425\",[]],[\"name/426\",[245,75.905]],[\"comment/426\",[]],[\"name/427\",[246,75.905]],[\"comment/427\",[]],[\"name/428\",[247,75.905]],[\"comment/428\",[]],[\"name/429\",[248,75.905]],[\"comment/429\",[]],[\"name/430\",[249,75.905]],[\"comment/430\",[]],[\"name/431\",[250,75.905]],[\"comment/431\",[]],[\"name/432\",[251,75.905]],[\"comment/432\",[]],[\"name/433\",[252,35.475]],[\"comment/433\",[]],[\"name/434\",[253,42.703]],[\"comment/434\",[]],[\"name/435\",[254,35.954]],[\"comment/435\",[]],[\"name/436\",[255,75.905]],[\"comment/436\",[]],[\"name/437\",[252,35.475]],[\"comment/437\",[]],[\"name/438\",[256,42.005]],[\"comment/438\",[]],[\"name/439\",[257,40.74]],[\"comment/439\",[]],[\"name/440\",[258,43.197]],[\"comment/440\",[]],[\"name/441\",[259,43.197]],[\"comment/441\",[]],[\"name/442\",[260,42.947]],[\"comment/442\",[]],[\"name/443\",[261,43.197]],[\"comment/443\",[]],[\"name/444\",[254,35.954]],[\"comment/444\",[]],[\"name/445\",[8,67.432]],[\"comment/445\",[]],[\"name/446\",[262,75.905]],[\"comment/446\",[]],[\"name/447\",[263,75.905]],[\"comment/447\",[]],[\"name/448\",[252,35.475]],[\"comment/448\",[]],[\"name/449\",[264,53.933]],[\"comment/449\",[]],[\"name/450\",[265,70.797]],[\"comment/450\",[]],[\"name/451\",[29,35.13]],[\"comment/451\",[]],[\"name/452\",[266,67.432]],[\"comment/452\",[]],[\"name/453\",[65,35.243]],[\"comment/453\",[]],[\"name/454\",[37,47.573]],[\"comment/454\",[]],[\"name/455\",[66,59.811]],[\"comment/455\",[]],[\"name/456\",[267,70.797]],[\"comment/456\",[]],[\"name/457\",[268,57.447]],[\"comment/457\",[]],[\"name/458\",[269,75.905]],[\"comment/458\",[]],[\"name/459\",[270,67.432]],[\"comment/459\",[]],[\"name/460\",[271,75.905]],[\"comment/460\",[]],[\"name/461\",[113,52.551]],[\"comment/461\",[]],[\"name/462\",[272,75.905]],[\"comment/462\",[]],[\"name/463\",[273,75.905]],[\"comment/463\",[]],[\"name/464\",[274,75.905]],[\"comment/464\",[]],[\"name/465\",[275,75.905]],[\"comment/465\",[]],[\"name/466\",[253,42.703]],[\"comment/466\",[]],[\"name/467\",[65,35.243]],[\"comment/467\",[]],[\"name/468\",[268,57.447]],[\"comment/468\",[]],[\"name/469\",[276,51.926]],[\"comment/469\",[]],[\"name/470\",[277,51.926]],[\"comment/470\",[]],[\"name/471\",[252,35.475]],[\"comment/471\",[]],[\"name/472\",[254,35.954]],[\"comment/472\",[]],[\"name/473\",[172,42.703]],[\"comment/473\",[]],[\"name/474\",[173,41.565]],[\"comment/474\",[]],[\"name/475\",[278,75.905]],[\"comment/475\",[]],[\"name/476\",[258,43.197]],[\"comment/476\",[]],[\"name/477\",[29,35.13]],[\"comment/477\",[]],[\"name/478\",[65,35.243]],[\"comment/478\",[]],[\"name/479\",[279,75.905]],[\"comment/479\",[]],[\"name/480\",[172,42.703]],[\"comment/480\",[]],[\"name/481\",[173,41.565]],[\"comment/481\",[]],[\"name/482\",[280,51.338]],[\"comment/482\",[]],[\"name/483\",[276,51.926]],[\"comment/483\",[]],[\"name/484\",[277,51.926]],[\"comment/484\",[]],[\"name/485\",[252,35.475]],[\"comment/485\",[]],[\"name/486\",[256,42.005]],[\"comment/486\",[]],[\"name/487\",[257,40.74]],[\"comment/487\",[]],[\"name/488\",[259,43.197]],[\"comment/488\",[]],[\"name/489\",[260,42.947]],[\"comment/489\",[]],[\"name/490\",[261,43.197]],[\"comment/490\",[]],[\"name/491\",[254,35.954]],[\"comment/491\",[]],[\"name/492\",[281,75.905]],[\"comment/492\",[]],[\"name/493\",[253,42.703]],[\"comment/493\",[]],[\"name/494\",[65,35.243]],[\"comment/494\",[]],[\"name/495\",[282,64.919]],[\"comment/495\",[]],[\"name/496\",[252,35.475]],[\"comment/496\",[]],[\"name/497\",[254,35.954]],[\"comment/497\",[]],[\"name/498\",[172,42.703]],[\"comment/498\",[]],[\"name/499\",[173,41.565]],[\"comment/499\",[]],[\"name/500\",[283,75.905]],[\"comment/500\",[]],[\"name/501\",[258,43.197]],[\"comment/501\",[]],[\"name/502\",[29,35.13]],[\"comment/502\",[]],[\"name/503\",[172,42.703]],[\"comment/503\",[]],[\"name/504\",[173,41.565]],[\"comment/504\",[]],[\"name/505\",[284,75.905]],[\"comment/505\",[]],[\"name/506\",[285,75.905]],[\"comment/506\",[]],[\"name/507\",[280,51.338]],[\"comment/507\",[]],[\"name/508\",[252,35.475]],[\"comment/508\",[]],[\"name/509\",[256,42.005]],[\"comment/509\",[]],[\"name/510\",[257,40.74]],[\"comment/510\",[]],[\"name/511\",[259,43.197]],[\"comment/511\",[]],[\"name/512\",[260,42.947]],[\"comment/512\",[]],[\"name/513\",[261,43.197]],[\"comment/513\",[]],[\"name/514\",[254,35.954]],[\"comment/514\",[]],[\"name/515\",[286,75.905]],[\"comment/515\",[]],[\"name/516\",[287,75.905]],[\"comment/516\",[]],[\"name/517\",[288,75.905]],[\"comment/517\",[]],[\"name/518\",[289,75.905]],[\"comment/518\",[]],[\"name/519\",[290,75.905]],[\"comment/519\",[]],[\"name/520\",[291,75.905]],[\"comment/520\",[]],[\"name/521\",[292,75.905]],[\"comment/521\",[]],[\"name/522\",[293,75.905]],[\"comment/522\",[]],[\"name/523\",[294,75.905]],[\"comment/523\",[]],[\"name/524\",[295,75.905]],[\"comment/524\",[]],[\"name/525\",[296,75.905]],[\"comment/525\",[]],[\"name/526\",[297,75.905]],[\"comment/526\",[]],[\"name/527\",[298,75.905]],[\"comment/527\",[]],[\"name/528\",[299,75.905]],[\"comment/528\",[]],[\"name/529\",[300,75.905]],[\"comment/529\",[]],[\"name/530\",[301,75.905]],[\"comment/530\",[]],[\"name/531\",[253,42.703]],[\"comment/531\",[]],[\"name/532\",[65,35.243]],[\"comment/532\",[]],[\"name/533\",[302,70.797]],[\"comment/533\",[]],[\"name/534\",[303,75.905]],[\"comment/534\",[]],[\"name/535\",[282,64.919]],[\"comment/535\",[]],[\"name/536\",[252,35.475]],[\"comment/536\",[]],[\"name/537\",[254,35.954]],[\"comment/537\",[]],[\"name/538\",[172,42.703]],[\"comment/538\",[]],[\"name/539\",[173,41.565]],[\"comment/539\",[]],[\"name/540\",[304,75.905]],[\"comment/540\",[]],[\"name/541\",[258,43.197]],[\"comment/541\",[]],[\"name/542\",[29,35.13]],[\"comment/542\",[]],[\"name/543\",[305,75.905]],[\"comment/543\",[]],[\"name/544\",[306,75.905]],[\"comment/544\",[]],[\"name/545\",[307,52.551]],[\"comment/545\",[]],[\"name/546\",[173,41.565]],[\"comment/546\",[]],[\"name/547\",[308,75.905]],[\"comment/547\",[]],[\"name/548\",[280,51.338]],[\"comment/548\",[]],[\"name/549\",[252,35.475]],[\"comment/549\",[]],[\"name/550\",[256,42.005]],[\"comment/550\",[]],[\"name/551\",[257,40.74]],[\"comment/551\",[]],[\"name/552\",[259,43.197]],[\"comment/552\",[]],[\"name/553\",[260,42.947]],[\"comment/553\",[]],[\"name/554\",[261,43.197]],[\"comment/554\",[]],[\"name/555\",[254,35.954]],[\"comment/555\",[]],[\"name/556\",[309,75.905]],[\"comment/556\",[]],[\"name/557\",[310,70.797]],[\"comment/557\",[]],[\"name/558\",[311,75.905]],[\"comment/558\",[]],[\"name/559\",[312,75.905]],[\"comment/559\",[]],[\"name/560\",[313,75.905]],[\"comment/560\",[]],[\"name/561\",[314,75.905]],[\"comment/561\",[]],[\"name/562\",[178,58.559]],[\"comment/562\",[]],[\"name/563\",[315,75.905]],[\"comment/563\",[]],[\"name/564\",[316,70.797]],[\"comment/564\",[]],[\"name/565\",[317,41.144]],[\"comment/565\",[]],[\"name/566\",[318,70.797]],[\"comment/566\",[]],[\"name/567\",[319,70.797]],[\"comment/567\",[]],[\"name/568\",[320,59.811]],[\"comment/568\",[]],[\"name/569\",[321,75.905]],[\"comment/569\",[]],[\"name/570\",[253,42.703]],[\"comment/570\",[]],[\"name/571\",[65,35.243]],[\"comment/571\",[]],[\"name/572\",[322,75.905]],[\"comment/572\",[]],[\"name/573\",[276,51.926]],[\"comment/573\",[]],[\"name/574\",[277,51.926]],[\"comment/574\",[]],[\"name/575\",[252,35.475]],[\"comment/575\",[]],[\"name/576\",[254,35.954]],[\"comment/576\",[]],[\"name/577\",[172,42.703]],[\"comment/577\",[]],[\"name/578\",[173,41.565]],[\"comment/578\",[]],[\"name/579\",[323,75.905]],[\"comment/579\",[]],[\"name/580\",[258,43.197]],[\"comment/580\",[]],[\"name/581\",[29,35.13]],[\"comment/581\",[]],[\"name/582\",[65,35.243]],[\"comment/582\",[]],[\"name/583\",[324,75.905]],[\"comment/583\",[]],[\"name/584\",[307,52.551]],[\"comment/584\",[]],[\"name/585\",[173,41.565]],[\"comment/585\",[]],[\"name/586\",[172,42.703]],[\"comment/586\",[]],[\"name/587\",[277,51.926]],[\"comment/587\",[]],[\"name/588\",[252,35.475]],[\"comment/588\",[]],[\"name/589\",[256,42.005]],[\"comment/589\",[]],[\"name/590\",[257,40.74]],[\"comment/590\",[]],[\"name/591\",[259,43.197]],[\"comment/591\",[]],[\"name/592\",[260,42.947]],[\"comment/592\",[]],[\"name/593\",[261,43.197]],[\"comment/593\",[]],[\"name/594\",[254,35.954]],[\"comment/594\",[]],[\"name/595\",[325,75.905]],[\"comment/595\",[]],[\"name/596\",[65,35.243]],[\"comment/596\",[]],[\"name/597\",[66,59.811]],[\"comment/597\",[]],[\"name/598\",[326,53.933]],[\"comment/598\",[]],[\"name/599\",[276,51.926]],[\"comment/599\",[]],[\"name/600\",[327,75.905]],[\"comment/600\",[]],[\"name/601\",[328,75.905]],[\"comment/601\",[]],[\"name/602\",[329,75.905]],[\"comment/602\",[]],[\"name/603\",[330,75.905]],[\"comment/603\",[]],[\"name/604\",[331,75.905]],[\"comment/604\",[]],[\"name/605\",[332,75.905]],[\"comment/605\",[]],[\"name/606\",[333,75.905]],[\"comment/606\",[]],[\"name/607\",[334,75.905]],[\"comment/607\",[]],[\"name/608\",[335,75.905]],[\"comment/608\",[]],[\"name/609\",[336,75.905]],[\"comment/609\",[]],[\"name/610\",[67,36.987]],[\"comment/610\",[]],[\"name/611\",[198,53.218]],[\"comment/611\",[]],[\"name/612\",[199,62.912]],[\"comment/612\",[]],[\"name/613\",[200,67.432]],[\"comment/613\",[]],[\"name/614\",[148,61.242]],[\"comment/614\",[]],[\"name/615\",[337,70.797]],[\"comment/615\",[]],[\"name/616\",[338,75.905]],[\"comment/616\",[]],[\"name/617\",[253,42.703]],[\"comment/617\",[]],[\"name/618\",[65,35.243]],[\"comment/618\",[]],[\"name/619\",[276,51.926]],[\"comment/619\",[]],[\"name/620\",[277,51.926]],[\"comment/620\",[]],[\"name/621\",[252,35.475]],[\"comment/621\",[]],[\"name/622\",[254,35.954]],[\"comment/622\",[]],[\"name/623\",[172,42.703]],[\"comment/623\",[]],[\"name/624\",[173,41.565]],[\"comment/624\",[]],[\"name/625\",[339,75.905]],[\"comment/625\",[]],[\"name/626\",[258,43.197]],[\"comment/626\",[]],[\"name/627\",[29,35.13]],[\"comment/627\",[]],[\"name/628\",[65,35.243]],[\"comment/628\",[]],[\"name/629\",[340,75.905]],[\"comment/629\",[]],[\"name/630\",[307,52.551]],[\"comment/630\",[]],[\"name/631\",[280,51.338]],[\"comment/631\",[]],[\"name/632\",[277,51.926]],[\"comment/632\",[]],[\"name/633\",[276,51.926]],[\"comment/633\",[]],[\"name/634\",[252,35.475]],[\"comment/634\",[]],[\"name/635\",[256,42.005]],[\"comment/635\",[]],[\"name/636\",[257,40.74]],[\"comment/636\",[]],[\"name/637\",[259,43.197]],[\"comment/637\",[]],[\"name/638\",[260,42.947]],[\"comment/638\",[]],[\"name/639\",[261,43.197]],[\"comment/639\",[]],[\"name/640\",[254,35.954]],[\"comment/640\",[]],[\"name/641\",[341,75.905]],[\"comment/641\",[]],[\"name/642\",[342,75.905]],[\"comment/642\",[]],[\"name/643\",[343,75.905]],[\"comment/643\",[]],[\"name/644\",[253,42.703]],[\"comment/644\",[]],[\"name/645\",[65,35.243]],[\"comment/645\",[]],[\"name/646\",[257,40.74]],[\"comment/646\",[]],[\"name/647\",[344,75.905]],[\"comment/647\",[]],[\"name/648\",[276,51.926]],[\"comment/648\",[]],[\"name/649\",[277,51.926]],[\"comment/649\",[]],[\"name/650\",[252,35.475]],[\"comment/650\",[]],[\"name/651\",[254,35.954]],[\"comment/651\",[]],[\"name/652\",[172,42.703]],[\"comment/652\",[]],[\"name/653\",[173,41.565]],[\"comment/653\",[]],[\"name/654\",[345,75.905]],[\"comment/654\",[]],[\"name/655\",[258,43.197]],[\"comment/655\",[]],[\"name/656\",[29,35.13]],[\"comment/656\",[]],[\"name/657\",[65,35.243]],[\"comment/657\",[]],[\"name/658\",[346,75.905]],[\"comment/658\",[]],[\"name/659\",[172,42.703]],[\"comment/659\",[]],[\"name/660\",[173,41.565]],[\"comment/660\",[]],[\"name/661\",[307,52.551]],[\"comment/661\",[]],[\"name/662\",[276,51.926]],[\"comment/662\",[]],[\"name/663\",[277,51.926]],[\"comment/663\",[]],[\"name/664\",[280,51.338]],[\"comment/664\",[]],[\"name/665\",[252,35.475]],[\"comment/665\",[]],[\"name/666\",[256,42.005]],[\"comment/666\",[]],[\"name/667\",[257,40.74]],[\"comment/667\",[]],[\"name/668\",[259,43.197]],[\"comment/668\",[]],[\"name/669\",[260,42.947]],[\"comment/669\",[]],[\"name/670\",[261,43.197]],[\"comment/670\",[]],[\"name/671\",[254,35.954]],[\"comment/671\",[]],[\"name/672\",[347,75.905]],[\"comment/672\",[]],[\"name/673\",[67,36.987]],[\"comment/673\",[]],[\"name/674\",[320,59.811]],[\"comment/674\",[]],[\"name/675\",[348,64.919]],[\"comment/675\",[]],[\"name/676\",[349,64.919]],[\"comment/676\",[]],[\"name/677\",[350,70.797]],[\"comment/677\",[]],[\"name/678\",[113,52.551]],[\"comment/678\",[]],[\"name/679\",[351,75.905]],[\"comment/679\",[]],[\"name/680\",[253,42.703]],[\"comment/680\",[]],[\"name/681\",[65,35.243]],[\"comment/681\",[]],[\"name/682\",[276,51.926]],[\"comment/682\",[]],[\"name/683\",[277,51.926]],[\"comment/683\",[]],[\"name/684\",[282,64.919]],[\"comment/684\",[]],[\"name/685\",[252,35.475]],[\"comment/685\",[]],[\"name/686\",[254,35.954]],[\"comment/686\",[]],[\"name/687\",[172,42.703]],[\"comment/687\",[]],[\"name/688\",[173,41.565]],[\"comment/688\",[]],[\"name/689\",[352,75.905]],[\"comment/689\",[]],[\"name/690\",[258,43.197]],[\"comment/690\",[]],[\"name/691\",[29,35.13]],[\"comment/691\",[]],[\"name/692\",[65,35.243]],[\"comment/692\",[]],[\"name/693\",[353,64.919]],[\"comment/693\",[]],[\"name/694\",[307,52.551]],[\"comment/694\",[]],[\"name/695\",[173,41.565]],[\"comment/695\",[]],[\"name/696\",[172,42.703]],[\"comment/696\",[]],[\"name/697\",[277,51.926]],[\"comment/697\",[]],[\"name/698\",[252,35.475]],[\"comment/698\",[]],[\"name/699\",[256,42.005]],[\"comment/699\",[]],[\"name/700\",[257,40.74]],[\"comment/700\",[]],[\"name/701\",[259,43.197]],[\"comment/701\",[]],[\"name/702\",[260,42.947]],[\"comment/702\",[]],[\"name/703\",[261,43.197]],[\"comment/703\",[]],[\"name/704\",[254,35.954]],[\"comment/704\",[]],[\"name/705\",[354,75.905]],[\"comment/705\",[]],[\"name/706\",[253,42.703]],[\"comment/706\",[]],[\"name/707\",[65,35.243]],[\"comment/707\",[]],[\"name/708\",[355,62.912]],[\"comment/708\",[]],[\"name/709\",[356,62.912]],[\"comment/709\",[]],[\"name/710\",[357,61.242]],[\"comment/710\",[]],[\"name/711\",[358,70.797]],[\"comment/711\",[]],[\"name/712\",[276,51.926]],[\"comment/712\",[]],[\"name/713\",[277,51.926]],[\"comment/713\",[]],[\"name/714\",[252,35.475]],[\"comment/714\",[]],[\"name/715\",[254,35.954]],[\"comment/715\",[]],[\"name/716\",[172,42.703]],[\"comment/716\",[]],[\"name/717\",[173,41.565]],[\"comment/717\",[]],[\"name/718\",[359,75.905]],[\"comment/718\",[]],[\"name/719\",[258,43.197]],[\"comment/719\",[]],[\"name/720\",[29,35.13]],[\"comment/720\",[]],[\"name/721\",[65,35.243]],[\"comment/721\",[]],[\"name/722\",[355,62.912]],[\"comment/722\",[]],[\"name/723\",[356,62.912]],[\"comment/723\",[]],[\"name/724\",[276,51.926]],[\"comment/724\",[]],[\"name/725\",[277,51.926]],[\"comment/725\",[]],[\"name/726\",[178,58.559]],[\"comment/726\",[]],[\"name/727\",[280,51.338]],[\"comment/727\",[]],[\"name/728\",[252,35.475]],[\"comment/728\",[]],[\"name/729\",[256,42.005]],[\"comment/729\",[]],[\"name/730\",[257,40.74]],[\"comment/730\",[]],[\"name/731\",[259,43.197]],[\"comment/731\",[]],[\"name/732\",[260,42.947]],[\"comment/732\",[]],[\"name/733\",[261,43.197]],[\"comment/733\",[]],[\"name/734\",[254,35.954]],[\"comment/734\",[]],[\"name/735\",[360,75.905]],[\"comment/735\",[]],[\"name/736\",[173,41.565]],[\"comment/736\",[]],[\"name/737\",[361,64.919]],[\"comment/737\",[]],[\"name/738\",[362,67.432]],[\"comment/738\",[]],[\"name/739\",[55,61.242]],[\"comment/739\",[]],[\"name/740\",[280,51.338]],[\"comment/740\",[]],[\"name/741\",[363,75.905]],[\"comment/741\",[]],[\"name/742\",[326,53.933]],[\"comment/742\",[]],[\"name/743\",[364,67.432]],[\"comment/743\",[]],[\"name/744\",[365,75.905]],[\"comment/744\",[]],[\"name/745\",[253,42.703]],[\"comment/745\",[]],[\"name/746\",[65,35.243]],[\"comment/746\",[]],[\"name/747\",[282,64.919]],[\"comment/747\",[]],[\"name/748\",[366,75.905]],[\"comment/748\",[]],[\"name/749\",[252,35.475]],[\"comment/749\",[]],[\"name/750\",[254,35.954]],[\"comment/750\",[]],[\"name/751\",[172,42.703]],[\"comment/751\",[]],[\"name/752\",[173,41.565]],[\"comment/752\",[]],[\"name/753\",[367,75.905]],[\"comment/753\",[]],[\"name/754\",[258,43.197]],[\"comment/754\",[]],[\"name/755\",[29,35.13]],[\"comment/755\",[]],[\"name/756\",[65,35.243]],[\"comment/756\",[]],[\"name/757\",[368,75.905]],[\"comment/757\",[]],[\"name/758\",[29,35.13]],[\"comment/758\",[]],[\"name/759\",[369,75.905]],[\"comment/759\",[]],[\"name/760\",[29,35.13]],[\"comment/760\",[]],[\"name/761\",[370,75.905]],[\"comment/761\",[]],[\"name/762\",[29,35.13]],[\"comment/762\",[]],[\"name/763\",[172,42.703]],[\"comment/763\",[]],[\"name/764\",[307,52.551]],[\"comment/764\",[]],[\"name/765\",[173,41.565]],[\"comment/765\",[]],[\"name/766\",[252,35.475]],[\"comment/766\",[]],[\"name/767\",[256,42.005]],[\"comment/767\",[]],[\"name/768\",[257,40.74]],[\"comment/768\",[]],[\"name/769\",[259,43.197]],[\"comment/769\",[]],[\"name/770\",[260,42.947]],[\"comment/770\",[]],[\"name/771\",[261,43.197]],[\"comment/771\",[]],[\"name/772\",[254,35.954]],[\"comment/772\",[]],[\"name/773\",[371,75.905]],[\"comment/773\",[]],[\"name/774\",[253,42.703]],[\"comment/774\",[]],[\"name/775\",[65,35.243]],[\"comment/775\",[]],[\"name/776\",[372,70.797]],[\"comment/776\",[]],[\"name/777\",[178,58.559]],[\"comment/777\",[]],[\"name/778\",[276,51.926]],[\"comment/778\",[]],[\"name/779\",[172,42.703]],[\"comment/779\",[]],[\"name/780\",[173,41.565]],[\"comment/780\",[]],[\"name/781\",[252,35.475]],[\"comment/781\",[]],[\"name/782\",[254,35.954]],[\"comment/782\",[]],[\"name/783\",[373,75.905]],[\"comment/783\",[]],[\"name/784\",[258,43.197]],[\"comment/784\",[]],[\"name/785\",[29,35.13]],[\"comment/785\",[]],[\"name/786\",[307,52.551]],[\"comment/786\",[]],[\"name/787\",[374,75.905]],[\"comment/787\",[]],[\"name/788\",[178,58.559]],[\"comment/788\",[]],[\"name/789\",[252,35.475]],[\"comment/789\",[]],[\"name/790\",[256,42.005]],[\"comment/790\",[]],[\"name/791\",[257,40.74]],[\"comment/791\",[]],[\"name/792\",[259,43.197]],[\"comment/792\",[]],[\"name/793\",[260,42.947]],[\"comment/793\",[]],[\"name/794\",[261,43.197]],[\"comment/794\",[]],[\"name/795\",[254,35.954]],[\"comment/795\",[]],[\"name/796\",[375,75.905]],[\"comment/796\",[]],[\"name/797\",[253,42.703]],[\"comment/797\",[]],[\"name/798\",[376,70.797]],[\"comment/798\",[]],[\"name/799\",[377,64.919]],[\"comment/799\",[]],[\"name/800\",[178,58.559]],[\"comment/800\",[]],[\"name/801\",[378,75.905]],[\"comment/801\",[]],[\"name/802\",[379,70.797]],[\"comment/802\",[]],[\"name/803\",[357,61.242]],[\"comment/803\",[]],[\"name/804\",[302,70.797]],[\"comment/804\",[]],[\"name/805\",[257,40.74]],[\"comment/805\",[]],[\"name/806\",[252,35.475]],[\"comment/806\",[]],[\"name/807\",[254,35.954]],[\"comment/807\",[]],[\"name/808\",[172,42.703]],[\"comment/808\",[]],[\"name/809\",[173,41.565]],[\"comment/809\",[]],[\"name/810\",[380,75.905]],[\"comment/810\",[]],[\"name/811\",[258,43.197]],[\"comment/811\",[]],[\"name/812\",[252,35.475]],[\"comment/812\",[]],[\"name/813\",[256,42.005]],[\"comment/813\",[]],[\"name/814\",[257,40.74]],[\"comment/814\",[]],[\"name/815\",[259,43.197]],[\"comment/815\",[]],[\"name/816\",[260,42.947]],[\"comment/816\",[]],[\"name/817\",[261,43.197]],[\"comment/817\",[]],[\"name/818\",[254,35.954]],[\"comment/818\",[]],[\"name/819\",[381,75.905]],[\"comment/819\",[]],[\"name/820\",[65,35.243]],[\"comment/820\",[]],[\"name/821\",[362,67.432]],[\"comment/821\",[]],[\"name/822\",[382,75.905]],[\"comment/822\",[]],[\"name/823\",[383,75.905]],[\"comment/823\",[]],[\"name/824\",[384,75.905]],[\"comment/824\",[]],[\"name/825\",[316,70.797]],[\"comment/825\",[]],[\"name/826\",[317,41.144]],[\"comment/826\",[]],[\"name/827\",[318,70.797]],[\"comment/827\",[]],[\"name/828\",[319,70.797]],[\"comment/828\",[]],[\"name/829\",[385,75.905]],[\"comment/829\",[]],[\"name/830\",[166,70.797]],[\"comment/830\",[]],[\"name/831\",[178,58.559]],[\"comment/831\",[]],[\"name/832\",[171,67.432]],[\"comment/832\",[]],[\"name/833\",[172,42.703]],[\"comment/833\",[]],[\"name/834\",[173,41.565]],[\"comment/834\",[]],[\"name/835\",[165,70.797]],[\"comment/835\",[]],[\"name/836\",[167,70.797]],[\"comment/836\",[]],[\"name/837\",[168,67.432]],[\"comment/837\",[]],[\"name/838\",[169,70.797]],[\"comment/838\",[]],[\"name/839\",[170,70.797]],[\"comment/839\",[]],[\"name/840\",[174,70.797]],[\"comment/840\",[]],[\"name/841\",[175,70.797]],[\"comment/841\",[]],[\"name/842\",[176,70.797]],[\"comment/842\",[]],[\"name/843\",[177,70.797]],[\"comment/843\",[]],[\"name/844\",[386,75.905]],[\"comment/844\",[]],[\"name/845\",[387,61.242]],[\"comment/845\",[]],[\"name/846\",[388,67.432]],[\"comment/846\",[]],[\"name/847\",[389,75.905]],[\"comment/847\",[]],[\"name/848\",[253,42.703]],[\"comment/848\",[]],[\"name/849\",[252,35.475]],[\"comment/849\",[]],[\"name/850\",[254,35.954]],[\"comment/850\",[]],[\"name/851\",[390,75.905]],[\"comment/851\",[]],[\"name/852\",[258,43.197]],[\"comment/852\",[]],[\"name/853\",[29,35.13]],[\"comment/853\",[]],[\"name/854\",[172,42.703]],[\"comment/854\",[]],[\"name/855\",[173,41.565]],[\"comment/855\",[]],[\"name/856\",[252,35.475]],[\"comment/856\",[]],[\"name/857\",[256,42.005]],[\"comment/857\",[]],[\"name/858\",[257,40.74]],[\"comment/858\",[]],[\"name/859\",[259,43.197]],[\"comment/859\",[]],[\"name/860\",[260,42.947]],[\"comment/860\",[]],[\"name/861\",[261,43.197]],[\"comment/861\",[]],[\"name/862\",[254,35.954]],[\"comment/862\",[]],[\"name/863\",[391,75.905]],[\"comment/863\",[]],[\"name/864\",[253,42.703]],[\"comment/864\",[]],[\"name/865\",[252,35.475]],[\"comment/865\",[]],[\"name/866\",[254,35.954]],[\"comment/866\",[]],[\"name/867\",[392,75.905]],[\"comment/867\",[]],[\"name/868\",[258,43.197]],[\"comment/868\",[]],[\"name/869\",[29,35.13]],[\"comment/869\",[]],[\"name/870\",[307,52.551]],[\"comment/870\",[]],[\"name/871\",[252,35.475]],[\"comment/871\",[]],[\"name/872\",[256,42.005]],[\"comment/872\",[]],[\"name/873\",[257,40.74]],[\"comment/873\",[]],[\"name/874\",[259,43.197]],[\"comment/874\",[]],[\"name/875\",[260,42.947]],[\"comment/875\",[]],[\"name/876\",[261,43.197]],[\"comment/876\",[]],[\"name/877\",[254,35.954]],[\"comment/877\",[]],[\"name/878\",[393,75.905]],[\"comment/878\",[]],[\"name/879\",[253,42.703]],[\"comment/879\",[]],[\"name/880\",[357,61.242]],[\"comment/880\",[]],[\"name/881\",[276,51.926]],[\"comment/881\",[]],[\"name/882\",[277,51.926]],[\"comment/882\",[]],[\"name/883\",[257,40.74]],[\"comment/883\",[]],[\"name/884\",[252,35.475]],[\"comment/884\",[]],[\"name/885\",[254,35.954]],[\"comment/885\",[]],[\"name/886\",[172,42.703]],[\"comment/886\",[]],[\"name/887\",[173,41.565]],[\"comment/887\",[]],[\"name/888\",[394,75.905]],[\"comment/888\",[]],[\"name/889\",[395,75.905]],[\"comment/889\",[]],[\"name/890\",[146,51.926]],[\"comment/890\",[]],[\"name/891\",[396,75.905]],[\"comment/891\",[]],[\"name/892\",[258,43.197]],[\"comment/892\",[]],[\"name/893\",[29,35.13]],[\"comment/893\",[]],[\"name/894\",[173,41.565]],[\"comment/894\",[]],[\"name/895\",[172,42.703]],[\"comment/895\",[]],[\"name/896\",[397,70.797]],[\"comment/896\",[]],[\"name/897\",[277,51.926]],[\"comment/897\",[]],[\"name/898\",[280,51.338]],[\"comment/898\",[]],[\"name/899\",[252,35.475]],[\"comment/899\",[]],[\"name/900\",[256,42.005]],[\"comment/900\",[]],[\"name/901\",[257,40.74]],[\"comment/901\",[]],[\"name/902\",[259,43.197]],[\"comment/902\",[]],[\"name/903\",[260,42.947]],[\"comment/903\",[]],[\"name/904\",[261,43.197]],[\"comment/904\",[]],[\"name/905\",[254,35.954]],[\"comment/905\",[]],[\"name/906\",[398,75.905]],[\"comment/906\",[]],[\"name/907\",[399,75.905]],[\"comment/907\",[]],[\"name/908\",[253,42.703]],[\"comment/908\",[]],[\"name/909\",[107,67.432]],[\"comment/909\",[]],[\"name/910\",[29,35.13]],[\"comment/910\",[]],[\"name/911\",[108,58.559]],[\"comment/911\",[]],[\"name/912\",[29,35.13]],[\"comment/912\",[]],[\"name/913\",[326,53.933]],[\"comment/913\",[]],[\"name/914\",[198,53.218]],[\"comment/914\",[]],[\"name/915\",[109,58.559]],[\"comment/915\",[]],[\"name/916\",[29,35.13]],[\"comment/916\",[]],[\"name/917\",[326,53.933]],[\"comment/917\",[]],[\"name/918\",[198,53.218]],[\"comment/918\",[]],[\"name/919\",[357,61.242]],[\"comment/919\",[]],[\"name/920\",[84,47.973]],[\"comment/920\",[]],[\"name/921\",[400,75.905]],[\"comment/921\",[]],[\"name/922\",[126,70.797]],[\"comment/922\",[]],[\"name/923\",[401,75.905]],[\"comment/923\",[]],[\"name/924\",[145,70.797]],[\"comment/924\",[]],[\"name/925\",[402,75.905]],[\"comment/925\",[]],[\"name/926\",[149,70.797]],[\"comment/926\",[]],[\"name/927\",[201,70.797]],[\"comment/927\",[]],[\"name/928\",[403,75.905]],[\"comment/928\",[]],[\"name/929\",[404,75.905]],[\"comment/929\",[]],[\"name/930\",[29,35.13]],[\"comment/930\",[]],[\"name/931\",[377,64.919]],[\"comment/931\",[]],[\"name/932\",[326,53.933]],[\"comment/932\",[]],[\"name/933\",[235,70.797]],[\"comment/933\",[]],[\"name/934\",[405,75.905]],[\"comment/934\",[]],[\"name/935\",[406,75.905]],[\"comment/935\",[]],[\"name/936\",[118,70.797]],[\"comment/936\",[]],[\"name/937\",[407,75.905]],[\"comment/937\",[]],[\"name/938\",[408,75.905]],[\"comment/938\",[]],[\"name/939\",[252,35.475]],[\"comment/939\",[]],[\"name/940\",[254,35.954]],[\"comment/940\",[]],[\"name/941\",[172,42.703]],[\"comment/941\",[]],[\"name/942\",[173,41.565]],[\"comment/942\",[]],[\"name/943\",[409,75.905]],[\"comment/943\",[]],[\"name/944\",[258,43.197]],[\"comment/944\",[]],[\"name/945\",[29,35.13]],[\"comment/945\",[]],[\"name/946\",[84,47.973]],[\"comment/946\",[]],[\"name/947\",[307,52.551]],[\"comment/947\",[]],[\"name/948\",[410,70.797]],[\"comment/948\",[]],[\"name/949\",[411,75.905]],[\"comment/949\",[]],[\"name/950\",[280,51.338]],[\"comment/950\",[]],[\"name/951\",[252,35.475]],[\"comment/951\",[]],[\"name/952\",[256,42.005]],[\"comment/952\",[]],[\"name/953\",[257,40.74]],[\"comment/953\",[]],[\"name/954\",[259,43.197]],[\"comment/954\",[]],[\"name/955\",[260,42.947]],[\"comment/955\",[]],[\"name/956\",[261,43.197]],[\"comment/956\",[]],[\"name/957\",[254,35.954]],[\"comment/957\",[]],[\"name/958\",[412,75.905]],[\"comment/958\",[]],[\"name/959\",[253,42.703]],[\"comment/959\",[]],[\"name/960\",[55,61.242]],[\"comment/960\",[]],[\"name/961\",[413,70.797]],[\"comment/961\",[]],[\"name/962\",[252,35.475]],[\"comment/962\",[]],[\"name/963\",[254,35.954]],[\"comment/963\",[]],[\"name/964\",[414,75.905]],[\"comment/964\",[]],[\"name/965\",[258,43.197]],[\"comment/965\",[]],[\"name/966\",[29,35.13]],[\"comment/966\",[]],[\"name/967\",[415,64.919]],[\"comment/967\",[]],[\"name/968\",[416,64.919]],[\"comment/968\",[]],[\"name/969\",[417,64.919]],[\"comment/969\",[]],[\"name/970\",[55,61.242]],[\"comment/970\",[]],[\"name/971\",[418,64.919]],[\"comment/971\",[]],[\"name/972\",[419,75.905]],[\"comment/972\",[]],[\"name/973\",[420,75.905]],[\"comment/973\",[]],[\"name/974\",[421,75.905]],[\"comment/974\",[]],[\"name/975\",[422,75.905]],[\"comment/975\",[]],[\"name/976\",[423,75.905]],[\"comment/976\",[]],[\"name/977\",[424,75.905]],[\"comment/977\",[]],[\"name/978\",[425,75.905]],[\"comment/978\",[]],[\"name/979\",[426,75.905]],[\"comment/979\",[]],[\"name/980\",[427,75.905]],[\"comment/980\",[]],[\"name/981\",[252,35.475]],[\"comment/981\",[]],[\"name/982\",[256,42.005]],[\"comment/982\",[]],[\"name/983\",[257,40.74]],[\"comment/983\",[]],[\"name/984\",[259,43.197]],[\"comment/984\",[]],[\"name/985\",[260,42.947]],[\"comment/985\",[]],[\"name/986\",[261,43.197]],[\"comment/986\",[]],[\"name/987\",[254,35.954]],[\"comment/987\",[]],[\"name/988\",[428,75.905]],[\"comment/988\",[]],[\"name/989\",[253,42.703]],[\"comment/989\",[]],[\"name/990\",[418,64.919]],[\"comment/990\",[]],[\"name/991\",[413,70.797]],[\"comment/991\",[]],[\"name/992\",[252,35.475]],[\"comment/992\",[]],[\"name/993\",[254,35.954]],[\"comment/993\",[]],[\"name/994\",[429,75.905]],[\"comment/994\",[]],[\"name/995\",[258,43.197]],[\"comment/995\",[]],[\"name/996\",[29,35.13]],[\"comment/996\",[]],[\"name/997\",[415,64.919]],[\"comment/997\",[]],[\"name/998\",[416,64.919]],[\"comment/998\",[]],[\"name/999\",[417,64.919]],[\"comment/999\",[]],[\"name/1000\",[55,61.242]],[\"comment/1000\",[]],[\"name/1001\",[418,64.919]],[\"comment/1001\",[]],[\"name/1002\",[252,35.475]],[\"comment/1002\",[]],[\"name/1003\",[256,42.005]],[\"comment/1003\",[]],[\"name/1004\",[257,40.74]],[\"comment/1004\",[]],[\"name/1005\",[259,43.197]],[\"comment/1005\",[]],[\"name/1006\",[260,42.947]],[\"comment/1006\",[]],[\"name/1007\",[261,43.197]],[\"comment/1007\",[]],[\"name/1008\",[254,35.954]],[\"comment/1008\",[]],[\"name/1009\",[430,75.905]],[\"comment/1009\",[]],[\"name/1010\",[253,42.703]],[\"comment/1010\",[]],[\"name/1011\",[431,75.905]],[\"comment/1011\",[]],[\"name/1012\",[252,35.475]],[\"comment/1012\",[]],[\"name/1013\",[254,35.954]],[\"comment/1013\",[]],[\"name/1014\",[172,42.703]],[\"comment/1014\",[]],[\"name/1015\",[173,41.565]],[\"comment/1015\",[]],[\"name/1016\",[432,75.905]],[\"comment/1016\",[]],[\"name/1017\",[258,43.197]],[\"comment/1017\",[]],[\"name/1018\",[29,35.13]],[\"comment/1018\",[]],[\"name/1019\",[172,42.703]],[\"comment/1019\",[]],[\"name/1020\",[173,41.565]],[\"comment/1020\",[]],[\"name/1021\",[388,67.432]],[\"comment/1021\",[]],[\"name/1022\",[418,64.919]],[\"comment/1022\",[]],[\"name/1023\",[252,35.475]],[\"comment/1023\",[]],[\"name/1024\",[256,42.005]],[\"comment/1024\",[]],[\"name/1025\",[257,40.74]],[\"comment/1025\",[]],[\"name/1026\",[259,43.197]],[\"comment/1026\",[]],[\"name/1027\",[260,42.947]],[\"comment/1027\",[]],[\"name/1028\",[261,43.197]],[\"comment/1028\",[]],[\"name/1029\",[254,35.954]],[\"comment/1029\",[]],[\"name/1030\",[433,75.905]],[\"comment/1030\",[]],[\"name/1031\",[253,42.703]],[\"comment/1031\",[]],[\"name/1032\",[387,61.242]],[\"comment/1032\",[]],[\"name/1033\",[434,75.905]],[\"comment/1033\",[]],[\"name/1034\",[357,61.242]],[\"comment/1034\",[]],[\"name/1035\",[435,75.905]],[\"comment/1035\",[]],[\"name/1036\",[436,75.905]],[\"comment/1036\",[]],[\"name/1037\",[252,35.475]],[\"comment/1037\",[]],[\"name/1038\",[254,35.954]],[\"comment/1038\",[]],[\"name/1039\",[437,75.905]],[\"comment/1039\",[]],[\"name/1040\",[258,43.197]],[\"comment/1040\",[]],[\"name/1041\",[438,75.905]],[\"comment/1041\",[]],[\"name/1042\",[252,35.475]],[\"comment/1042\",[]],[\"name/1043\",[256,42.005]],[\"comment/1043\",[]],[\"name/1044\",[257,40.74]],[\"comment/1044\",[]],[\"name/1045\",[259,43.197]],[\"comment/1045\",[]],[\"name/1046\",[260,42.947]],[\"comment/1046\",[]],[\"name/1047\",[261,43.197]],[\"comment/1047\",[]],[\"name/1048\",[254,35.954]],[\"comment/1048\",[]],[\"name/1049\",[439,75.905]],[\"comment/1049\",[]],[\"name/1050\",[253,42.703]],[\"comment/1050\",[]],[\"name/1051\",[276,51.926]],[\"comment/1051\",[]],[\"name/1052\",[440,70.797]],[\"comment/1052\",[]],[\"name/1053\",[348,64.919]],[\"comment/1053\",[]],[\"name/1054\",[349,64.919]],[\"comment/1054\",[]],[\"name/1055\",[252,35.475]],[\"comment/1055\",[]],[\"name/1056\",[254,35.954]],[\"comment/1056\",[]],[\"name/1057\",[172,42.703]],[\"comment/1057\",[]],[\"name/1058\",[173,41.565]],[\"comment/1058\",[]],[\"name/1059\",[441,75.905]],[\"comment/1059\",[]],[\"name/1060\",[379,70.797]],[\"comment/1060\",[]],[\"name/1061\",[442,75.905]],[\"comment/1061\",[]],[\"name/1062\",[443,75.905]],[\"comment/1062\",[]],[\"name/1063\",[350,70.797]],[\"comment/1063\",[]],[\"name/1064\",[64,47.573]],[\"comment/1064\",[]],[\"name/1065\",[67,36.987]],[\"comment/1065\",[]],[\"name/1066\",[65,35.243]],[\"comment/1066\",[]],[\"name/1067\",[69,40.544]],[\"comment/1067\",[]],[\"name/1068\",[202,67.432]],[\"comment/1068\",[]],[\"name/1069\",[203,67.432]],[\"comment/1069\",[]],[\"name/1070\",[204,70.797]],[\"comment/1070\",[]],[\"name/1071\",[205,70.797]],[\"comment/1071\",[]],[\"name/1072\",[125,53.933]],[\"comment/1072\",[]],[\"name/1073\",[113,52.551]],[\"comment/1073\",[]],[\"name/1074\",[84,47.973]],[\"comment/1074\",[]],[\"name/1075\",[85,48.39]],[\"comment/1075\",[]],[\"name/1076\",[86,48.39]],[\"comment/1076\",[]],[\"name/1077\",[444,75.905]],[\"comment/1077\",[]],[\"name/1078\",[326,53.933]],[\"comment/1078\",[]],[\"name/1079\",[198,53.218]],[\"comment/1079\",[]],[\"name/1080\",[445,75.905]],[\"comment/1080\",[]],[\"name/1081\",[258,43.197]],[\"comment/1081\",[]],[\"name/1082\",[29,35.13]],[\"comment/1082\",[]],[\"name/1083\",[307,52.551]],[\"comment/1083\",[]],[\"name/1084\",[173,41.565]],[\"comment/1084\",[]],[\"name/1085\",[172,42.703]],[\"comment/1085\",[]],[\"name/1086\",[353,64.919]],[\"comment/1086\",[]],[\"name/1087\",[280,51.338]],[\"comment/1087\",[]],[\"name/1088\",[252,35.475]],[\"comment/1088\",[]],[\"name/1089\",[256,42.005]],[\"comment/1089\",[]],[\"name/1090\",[257,40.74]],[\"comment/1090\",[]],[\"name/1091\",[259,43.197]],[\"comment/1091\",[]],[\"name/1092\",[260,42.947]],[\"comment/1092\",[]],[\"name/1093\",[261,43.197]],[\"comment/1093\",[]],[\"name/1094\",[254,35.954]],[\"comment/1094\",[]],[\"name/1095\",[446,75.905]],[\"comment/1095\",[]],[\"name/1096\",[253,42.703]],[\"comment/1096\",[]],[\"name/1097\",[447,59.811]],[\"comment/1097\",[]],[\"name/1098\",[268,57.447]],[\"comment/1098\",[]],[\"name/1099\",[252,35.475]],[\"comment/1099\",[]],[\"name/1100\",[254,35.954]],[\"comment/1100\",[]],[\"name/1101\",[172,42.703]],[\"comment/1101\",[]],[\"name/1102\",[173,41.565]],[\"comment/1102\",[]],[\"name/1103\",[448,75.905]],[\"comment/1103\",[]],[\"name/1104\",[258,43.197]],[\"comment/1104\",[]],[\"name/1105\",[29,35.13]],[\"comment/1105\",[]],[\"name/1106\",[449,75.905]],[\"comment/1106\",[]],[\"name/1107\",[268,57.447]],[\"comment/1107\",[]],[\"name/1108\",[172,42.703]],[\"comment/1108\",[]],[\"name/1109\",[173,41.565]],[\"comment/1109\",[]],[\"name/1110\",[307,52.551]],[\"comment/1110\",[]],[\"name/1111\",[447,59.811]],[\"comment/1111\",[]],[\"name/1112\",[280,51.338]],[\"comment/1112\",[]],[\"name/1113\",[252,35.475]],[\"comment/1113\",[]],[\"name/1114\",[256,42.005]],[\"comment/1114\",[]],[\"name/1115\",[257,40.74]],[\"comment/1115\",[]],[\"name/1116\",[259,43.197]],[\"comment/1116\",[]],[\"name/1117\",[260,42.947]],[\"comment/1117\",[]],[\"name/1118\",[261,43.197]],[\"comment/1118\",[]],[\"name/1119\",[254,35.954]],[\"comment/1119\",[]],[\"name/1120\",[450,75.905]],[\"comment/1120\",[]],[\"name/1121\",[451,75.905]],[\"comment/1121\",[]],[\"name/1122\",[452,67.432]],[\"comment/1122\",[]],[\"name/1123\",[447,59.811]],[\"comment/1123\",[]],[\"name/1124\",[268,57.447]],[\"comment/1124\",[]],[\"name/1125\",[453,61.242]],[\"comment/1125\",[]],[\"name/1126\",[454,67.432]],[\"comment/1126\",[]],[\"name/1127\",[455,70.797]],[\"comment/1127\",[]],[\"name/1128\",[253,42.703]],[\"comment/1128\",[]],[\"name/1129\",[252,35.475]],[\"comment/1129\",[]],[\"name/1130\",[254,35.954]],[\"comment/1130\",[]],[\"name/1131\",[456,75.905]],[\"comment/1131\",[]],[\"name/1132\",[452,67.432]],[\"comment/1132\",[]],[\"name/1133\",[253,42.703]],[\"comment/1133\",[]],[\"name/1134\",[252,35.475]],[\"comment/1134\",[]],[\"name/1135\",[254,35.954]],[\"comment/1135\",[]],[\"name/1136\",[457,75.905]],[\"comment/1136\",[]],[\"name/1137\",[458,70.797]],[\"comment/1137\",[]],[\"name/1138\",[459,70.797]],[\"comment/1138\",[]],[\"name/1139\",[453,61.242]],[\"comment/1139\",[]],[\"name/1140\",[460,75.905]],[\"comment/1140\",[]],[\"name/1141\",[452,67.432]],[\"comment/1141\",[]],[\"name/1142\",[253,42.703]],[\"comment/1142\",[]],[\"name/1143\",[252,35.475]],[\"comment/1143\",[]],[\"name/1144\",[254,35.954]],[\"comment/1144\",[]],[\"name/1145\",[461,75.905]],[\"comment/1145\",[]],[\"name/1146\",[258,43.197]],[\"comment/1146\",[]],[\"name/1147\",[29,35.13]],[\"comment/1147\",[]],[\"name/1148\",[462,67.432]],[\"comment/1148\",[]],[\"name/1149\",[268,57.447]],[\"comment/1149\",[]],[\"name/1150\",[453,61.242]],[\"comment/1150\",[]],[\"name/1151\",[447,59.811]],[\"comment/1151\",[]],[\"name/1152\",[463,67.432]],[\"comment/1152\",[]],[\"name/1153\",[252,35.475]],[\"comment/1153\",[]],[\"name/1154\",[171,67.432]],[\"comment/1154\",[]],[\"name/1155\",[256,42.005]],[\"comment/1155\",[]],[\"name/1156\",[252,35.475]],[\"comment/1156\",[]],[\"name/1157\",[256,42.005]],[\"comment/1157\",[]],[\"name/1158\",[257,40.74]],[\"comment/1158\",[]],[\"name/1159\",[259,43.197]],[\"comment/1159\",[]],[\"name/1160\",[260,42.947]],[\"comment/1160\",[]],[\"name/1161\",[261,43.197]],[\"comment/1161\",[]],[\"name/1162\",[254,35.954]],[\"comment/1162\",[]],[\"name/1163\",[464,75.905]],[\"comment/1163\",[]],[\"name/1164\",[458,70.797]],[\"comment/1164\",[]],[\"name/1165\",[459,70.797]],[\"comment/1165\",[]],[\"name/1166\",[465,75.905]],[\"comment/1166\",[]],[\"name/1167\",[253,42.703]],[\"comment/1167\",[]],[\"name/1168\",[447,59.811]],[\"comment/1168\",[]],[\"name/1169\",[268,57.447]],[\"comment/1169\",[]],[\"name/1170\",[453,61.242]],[\"comment/1170\",[]],[\"name/1171\",[454,67.432]],[\"comment/1171\",[]],[\"name/1172\",[466,75.905]],[\"comment/1172\",[]],[\"name/1173\",[252,35.475]],[\"comment/1173\",[]],[\"name/1174\",[254,35.954]],[\"comment/1174\",[]],[\"name/1175\",[172,42.703]],[\"comment/1175\",[]],[\"name/1176\",[173,41.565]],[\"comment/1176\",[]],[\"name/1177\",[467,75.905]],[\"comment/1177\",[]],[\"name/1178\",[258,43.197]],[\"comment/1178\",[]],[\"name/1179\",[29,35.13]],[\"comment/1179\",[]],[\"name/1180\",[462,67.432]],[\"comment/1180\",[]],[\"name/1181\",[268,57.447]],[\"comment/1181\",[]],[\"name/1182\",[468,75.905]],[\"comment/1182\",[]],[\"name/1183\",[453,61.242]],[\"comment/1183\",[]],[\"name/1184\",[463,67.432]],[\"comment/1184\",[]],[\"name/1185\",[252,35.475]],[\"comment/1185\",[]],[\"name/1186\",[307,52.551]],[\"comment/1186\",[]],[\"name/1187\",[447,59.811]],[\"comment/1187\",[]],[\"name/1188\",[280,51.338]],[\"comment/1188\",[]],[\"name/1189\",[252,35.475]],[\"comment/1189\",[]],[\"name/1190\",[256,42.005]],[\"comment/1190\",[]],[\"name/1191\",[257,40.74]],[\"comment/1191\",[]],[\"name/1192\",[259,43.197]],[\"comment/1192\",[]],[\"name/1193\",[260,42.947]],[\"comment/1193\",[]],[\"name/1194\",[261,43.197]],[\"comment/1194\",[]],[\"name/1195\",[254,35.954]],[\"comment/1195\",[]],[\"name/1196\",[469,75.905]],[\"comment/1196\",[]],[\"name/1197\",[326,53.933]],[\"comment/1197\",[]],[\"name/1198\",[198,53.218]],[\"comment/1198\",[]],[\"name/1199\",[470,75.905]],[\"comment/1199\",[]],[\"name/1200\",[253,42.703]],[\"comment/1200\",[]],[\"name/1201\",[37,47.573]],[\"comment/1201\",[]],[\"name/1202\",[267,70.797]],[\"comment/1202\",[]],[\"name/1203\",[270,67.432]],[\"comment/1203\",[]],[\"name/1204\",[471,62.912]],[\"comment/1204\",[]],[\"name/1205\",[252,35.475]],[\"comment/1205\",[]],[\"name/1206\",[254,35.954]],[\"comment/1206\",[]],[\"name/1207\",[472,75.905]],[\"comment/1207\",[]],[\"name/1208\",[258,43.197]],[\"comment/1208\",[]],[\"name/1209\",[29,35.13]],[\"comment/1209\",[]],[\"name/1210\",[473,75.905]],[\"comment/1210\",[]],[\"name/1211\",[252,35.475]],[\"comment/1211\",[]],[\"name/1212\",[256,42.005]],[\"comment/1212\",[]],[\"name/1213\",[257,40.74]],[\"comment/1213\",[]],[\"name/1214\",[259,43.197]],[\"comment/1214\",[]],[\"name/1215\",[260,42.947]],[\"comment/1215\",[]],[\"name/1216\",[261,43.197]],[\"comment/1216\",[]],[\"name/1217\",[254,35.954]],[\"comment/1217\",[]],[\"name/1218\",[474,75.905]],[\"comment/1218\",[]],[\"name/1219\",[253,42.703]],[\"comment/1219\",[]],[\"name/1220\",[475,70.797]],[\"comment/1220\",[]],[\"name/1221\",[377,64.919]],[\"comment/1221\",[]],[\"name/1222\",[476,70.797]],[\"comment/1222\",[]],[\"name/1223\",[477,70.797]],[\"comment/1223\",[]],[\"name/1224\",[7,70.797]],[\"comment/1224\",[]],[\"name/1225\",[478,75.905]],[\"comment/1225\",[]],[\"name/1226\",[479,75.905]],[\"comment/1226\",[]],[\"name/1227\",[252,35.475]],[\"comment/1227\",[]],[\"name/1228\",[254,35.954]],[\"comment/1228\",[]],[\"name/1229\",[480,75.905]],[\"comment/1229\",[]],[\"name/1230\",[258,43.197]],[\"comment/1230\",[]],[\"name/1231\",[252,35.475]],[\"comment/1231\",[]],[\"name/1232\",[256,42.005]],[\"comment/1232\",[]],[\"name/1233\",[257,40.74]],[\"comment/1233\",[]],[\"name/1234\",[259,43.197]],[\"comment/1234\",[]],[\"name/1235\",[260,42.947]],[\"comment/1235\",[]],[\"name/1236\",[261,43.197]],[\"comment/1236\",[]],[\"name/1237\",[254,35.954]],[\"comment/1237\",[]],[\"name/1238\",[481,75.905]],[\"comment/1238\",[]],[\"name/1239\",[348,64.919]],[\"comment/1239\",[]],[\"name/1240\",[349,64.919]],[\"comment/1240\",[]],[\"name/1241\",[440,70.797]],[\"comment/1241\",[]],[\"name/1242\",[482,75.905]],[\"comment/1242\",[]],[\"name/1243\",[483,70.797]],[\"comment/1243\",[]],[\"name/1244\",[484,75.905]],[\"comment/1244\",[]],[\"name/1245\",[485,75.905]],[\"comment/1245\",[]],[\"name/1246\",[486,75.905]],[\"comment/1246\",[]],[\"name/1247\",[257,40.74]],[\"comment/1247\",[]],[\"name/1248\",[487,70.797]],[\"comment/1248\",[]],[\"name/1249\",[488,70.797]],[\"comment/1249\",[]],[\"name/1250\",[172,42.703]],[\"comment/1250\",[]],[\"name/1251\",[173,41.565]],[\"comment/1251\",[]],[\"name/1252\",[489,70.797]],[\"comment/1252\",[]],[\"name/1253\",[490,62.912]],[\"comment/1253\",[]],[\"name/1254\",[491,62.912]],[\"comment/1254\",[]],[\"name/1255\",[310,70.797]],[\"comment/1255\",[]],[\"name/1256\",[492,70.797]],[\"comment/1256\",[]],[\"name/1257\",[493,75.905]],[\"comment/1257\",[]],[\"name/1258\",[487,70.797]],[\"comment/1258\",[]],[\"name/1259\",[488,70.797]],[\"comment/1259\",[]],[\"name/1260\",[172,42.703]],[\"comment/1260\",[]],[\"name/1261\",[173,41.565]],[\"comment/1261\",[]],[\"name/1262\",[489,70.797]],[\"comment/1262\",[]],[\"name/1263\",[490,62.912]],[\"comment/1263\",[]],[\"name/1264\",[491,62.912]],[\"comment/1264\",[]],[\"name/1265\",[492,70.797]],[\"comment/1265\",[]],[\"name/1266\",[494,75.905]],[\"comment/1266\",[]],[\"name/1267\",[257,40.74]],[\"comment/1267\",[]],[\"name/1268\",[105,67.432]],[\"comment/1268\",[]],[\"name/1269\",[495,64.919]],[\"comment/1269\",[]],[\"name/1270\",[496,75.905]],[\"comment/1270\",[]],[\"name/1271\",[146,51.926]],[\"comment/1271\",[]],[\"name/1272\",[67,36.987]],[\"comment/1272\",[]],[\"name/1273\",[376,70.797]],[\"comment/1273\",[]],[\"name/1274\",[172,42.703]],[\"comment/1274\",[]],[\"name/1275\",[173,41.565]],[\"comment/1275\",[]],[\"name/1276\",[497,75.905]],[\"comment/1276\",[]],[\"name/1277\",[498,70.797]],[\"comment/1277\",[]],[\"name/1278\",[490,62.912]],[\"comment/1278\",[]],[\"name/1279\",[491,62.912]],[\"comment/1279\",[]],[\"name/1280\",[471,62.912]],[\"comment/1280\",[]],[\"name/1281\",[499,75.905]],[\"comment/1281\",[]],[\"name/1282\",[500,75.905]],[\"comment/1282\",[]],[\"name/1283\",[501,75.905]],[\"comment/1283\",[]],[\"name/1284\",[256,42.005]],[\"comment/1284\",[]],[\"name/1285\",[257,40.74]],[\"comment/1285\",[]],[\"name/1286\",[415,64.919]],[\"comment/1286\",[]],[\"name/1287\",[416,64.919]],[\"comment/1287\",[]],[\"name/1288\",[417,64.919]],[\"comment/1288\",[]],[\"name/1289\",[307,52.551]],[\"comment/1289\",[]],[\"name/1290\",[172,42.703]],[\"comment/1290\",[]],[\"name/1291\",[173,41.565]],[\"comment/1291\",[]],[\"name/1292\",[361,64.919]],[\"comment/1292\",[]],[\"name/1293\",[387,61.242]],[\"comment/1293\",[]],[\"name/1294\",[280,51.338]],[\"comment/1294\",[]],[\"name/1295\",[260,42.947]],[\"comment/1295\",[]],[\"name/1296\",[502,75.905]],[\"comment/1296\",[]],[\"name/1297\",[257,40.74]],[\"comment/1297\",[]],[\"name/1298\",[447,59.811]],[\"comment/1298\",[]],[\"name/1299\",[268,57.447]],[\"comment/1299\",[]],[\"name/1300\",[453,61.242]],[\"comment/1300\",[]],[\"name/1301\",[463,67.432]],[\"comment/1301\",[]],[\"name/1302\",[252,35.475]],[\"comment/1302\",[]],[\"name/1303\",[454,67.432]],[\"comment/1303\",[]],[\"name/1304\",[462,67.432]],[\"comment/1304\",[]],[\"name/1305\",[503,75.905]],[\"comment/1305\",[]],[\"name/1306\",[257,40.74]],[\"comment/1306\",[]],[\"name/1307\",[504,75.905]],[\"comment/1307\",[]],[\"name/1308\",[505,70.797]],[\"comment/1308\",[]],[\"name/1309\",[172,42.703]],[\"comment/1309\",[]],[\"name/1310\",[173,41.565]],[\"comment/1310\",[]],[\"name/1311\",[356,62.912]],[\"comment/1311\",[]],[\"name/1312\",[355,62.912]],[\"comment/1312\",[]],[\"name/1313\",[506,75.905]],[\"comment/1313\",[]],[\"name/1314\",[256,42.005]],[\"comment/1314\",[]],[\"name/1315\",[257,40.74]],[\"comment/1315\",[]],[\"name/1316\",[415,64.919]],[\"comment/1316\",[]],[\"name/1317\",[416,64.919]],[\"comment/1317\",[]],[\"name/1318\",[417,64.919]],[\"comment/1318\",[]],[\"name/1319\",[307,52.551]],[\"comment/1319\",[]],[\"name/1320\",[172,42.703]],[\"comment/1320\",[]],[\"name/1321\",[173,41.565]],[\"comment/1321\",[]],[\"name/1322\",[361,64.919]],[\"comment/1322\",[]],[\"name/1323\",[387,61.242]],[\"comment/1323\",[]],[\"name/1324\",[280,51.338]],[\"comment/1324\",[]],[\"name/1325\",[507,75.905]],[\"comment/1325\",[]],[\"name/1326\",[257,40.74]],[\"comment/1326\",[]],[\"name/1327\",[508,75.905]],[\"comment/1327\",[]],[\"name/1328\",[509,75.905]],[\"comment/1328\",[]],[\"name/1329\",[253,42.703]],[\"comment/1329\",[]],[\"name/1330\",[475,70.797]],[\"comment/1330\",[]],[\"name/1331\",[377,64.919]],[\"comment/1331\",[]],[\"name/1332\",[476,70.797]],[\"comment/1332\",[]],[\"name/1333\",[477,70.797]],[\"comment/1333\",[]],[\"name/1334\",[252,35.475]],[\"comment/1334\",[]],[\"name/1335\",[254,35.954]],[\"comment/1335\",[]],[\"name/1336\",[510,75.905]],[\"comment/1336\",[]],[\"name/1337\",[258,43.197]],[\"comment/1337\",[]],[\"name/1338\",[252,35.475]],[\"comment/1338\",[]],[\"name/1339\",[256,42.005]],[\"comment/1339\",[]],[\"name/1340\",[257,40.74]],[\"comment/1340\",[]],[\"name/1341\",[259,43.197]],[\"comment/1341\",[]],[\"name/1342\",[260,42.947]],[\"comment/1342\",[]],[\"name/1343\",[261,43.197]],[\"comment/1343\",[]],[\"name/1344\",[254,35.954]],[\"comment/1344\",[]],[\"name/1345\",[511,75.905]],[\"comment/1345\",[]],[\"name/1346\",[348,64.919]],[\"comment/1346\",[]],[\"name/1347\",[349,64.919]],[\"comment/1347\",[]],[\"name/1348\",[483,70.797]],[\"comment/1348\",[]],[\"name/1349\",[512,75.905]],[\"comment/1349\",[]],[\"name/1350\",[253,42.703]],[\"comment/1350\",[]],[\"name/1351\",[252,35.475]],[\"comment/1351\",[]],[\"name/1352\",[254,35.954]],[\"comment/1352\",[]],[\"name/1353\",[513,75.905]],[\"comment/1353\",[]],[\"name/1354\",[258,43.197]],[\"comment/1354\",[]],[\"name/1355\",[29,35.13]],[\"comment/1355\",[]],[\"name/1356\",[514,75.905]],[\"comment/1356\",[]],[\"name/1357\",[515,75.905]],[\"comment/1357\",[]],[\"name/1358\",[516,75.905]],[\"comment/1358\",[]],[\"name/1359\",[29,35.13]],[\"comment/1359\",[]],[\"name/1360\",[495,64.919]],[\"comment/1360\",[]],[\"name/1361\",[517,75.905]],[\"comment/1361\",[]],[\"name/1362\",[518,75.905]],[\"comment/1362\",[]],[\"name/1363\",[519,75.905]],[\"comment/1363\",[]],[\"name/1364\",[520,75.905]],[\"comment/1364\",[]],[\"name/1365\",[307,52.551]],[\"comment/1365\",[]],[\"name/1366\",[521,75.905]],[\"comment/1366\",[]],[\"name/1367\",[29,35.13]],[\"comment/1367\",[]],[\"name/1368\",[522,75.905]],[\"comment/1368\",[]],[\"name/1369\",[523,75.905]],[\"comment/1369\",[]],[\"name/1370\",[524,75.905]],[\"comment/1370\",[]],[\"name/1371\",[525,75.905]],[\"comment/1371\",[]],[\"name/1372\",[526,75.905]],[\"comment/1372\",[]],[\"name/1373\",[252,35.475]],[\"comment/1373\",[]],[\"name/1374\",[256,42.005]],[\"comment/1374\",[]],[\"name/1375\",[257,40.74]],[\"comment/1375\",[]],[\"name/1376\",[259,43.197]],[\"comment/1376\",[]],[\"name/1377\",[260,42.947]],[\"comment/1377\",[]],[\"name/1378\",[261,43.197]],[\"comment/1378\",[]],[\"name/1379\",[254,35.954]],[\"comment/1379\",[]],[\"name/1380\",[527,75.905]],[\"comment/1380\",[]],[\"name/1381\",[253,42.703]],[\"comment/1381\",[]],[\"name/1382\",[270,67.432]],[\"comment/1382\",[]],[\"name/1383\",[252,35.475]],[\"comment/1383\",[]],[\"name/1384\",[254,35.954]],[\"comment/1384\",[]],[\"name/1385\",[528,75.905]],[\"comment/1385\",[]],[\"name/1386\",[258,43.197]],[\"comment/1386\",[]],[\"name/1387\",[29,35.13]],[\"comment/1387\",[]],[\"name/1388\",[265,70.797]],[\"comment/1388\",[]],[\"name/1389\",[29,35.13]],[\"comment/1389\",[]],[\"name/1390\",[72,67.432]],[\"comment/1390\",[]],[\"name/1391\",[529,75.905]],[\"comment/1391\",[]],[\"name/1392\",[498,70.797]],[\"comment/1392\",[]],[\"name/1393\",[320,59.811]],[\"comment/1393\",[]],[\"name/1394\",[530,75.905]],[\"comment/1394\",[]],[\"name/1395\",[531,75.905]],[\"comment/1395\",[]],[\"name/1396\",[252,35.475]],[\"comment/1396\",[]],[\"name/1397\",[256,42.005]],[\"comment/1397\",[]],[\"name/1398\",[257,40.74]],[\"comment/1398\",[]],[\"name/1399\",[259,43.197]],[\"comment/1399\",[]],[\"name/1400\",[260,42.947]],[\"comment/1400\",[]],[\"name/1401\",[261,43.197]],[\"comment/1401\",[]],[\"name/1402\",[254,35.954]],[\"comment/1402\",[]],[\"name/1403\",[532,75.905]],[\"comment/1403\",[]],[\"name/1404\",[253,42.703]],[\"comment/1404\",[]],[\"name/1405\",[56,59.811]],[\"comment/1405\",[]],[\"name/1406\",[252,35.475]],[\"comment/1406\",[]],[\"name/1407\",[254,35.954]],[\"comment/1407\",[]],[\"name/1408\",[533,75.905]],[\"comment/1408\",[]],[\"name/1409\",[258,43.197]],[\"comment/1409\",[]],[\"name/1410\",[252,35.475]],[\"comment/1410\",[]],[\"name/1411\",[256,42.005]],[\"comment/1411\",[]],[\"name/1412\",[257,40.74]],[\"comment/1412\",[]],[\"name/1413\",[259,43.197]],[\"comment/1413\",[]],[\"name/1414\",[260,42.947]],[\"comment/1414\",[]],[\"name/1415\",[261,43.197]],[\"comment/1415\",[]],[\"name/1416\",[254,35.954]],[\"comment/1416\",[]],[\"name/1417\",[534,75.905]],[\"comment/1417\",[]],[\"name/1418\",[253,42.703]],[\"comment/1418\",[]],[\"name/1419\",[252,35.475]],[\"comment/1419\",[]],[\"name/1420\",[254,35.954]],[\"comment/1420\",[]],[\"name/1421\",[535,75.905]],[\"comment/1421\",[]],[\"name/1422\",[258,43.197]],[\"comment/1422\",[]],[\"name/1423\",[29,35.13]],[\"comment/1423\",[]],[\"name/1424\",[536,75.905]],[\"comment/1424\",[]],[\"name/1425\",[29,35.13]],[\"comment/1425\",[]],[\"name/1426\",[537,70.797]],[\"comment/1426\",[]],[\"name/1427\",[538,70.797]],[\"comment/1427\",[]],[\"name/1428\",[539,70.797]],[\"comment/1428\",[]],[\"name/1429\",[29,35.13]],[\"comment/1429\",[]],[\"name/1430\",[540,64.919]],[\"comment/1430\",[]],[\"name/1431\",[541,70.797]],[\"comment/1431\",[]],[\"name/1432\",[56,59.811]],[\"comment/1432\",[]],[\"name/1433\",[542,70.797]],[\"comment/1433\",[]],[\"name/1434\",[543,70.797]],[\"comment/1434\",[]],[\"name/1435\",[320,59.811]],[\"comment/1435\",[]],[\"name/1436\",[544,70.797]],[\"comment/1436\",[]],[\"name/1437\",[545,75.905]],[\"comment/1437\",[]],[\"name/1438\",[546,70.797]],[\"comment/1438\",[]],[\"name/1439\",[547,70.797]],[\"comment/1439\",[]],[\"name/1440\",[548,70.797]],[\"comment/1440\",[]],[\"name/1441\",[29,35.13]],[\"comment/1441\",[]],[\"name/1442\",[549,75.905]],[\"comment/1442\",[]],[\"name/1443\",[550,70.797]],[\"comment/1443\",[]],[\"name/1444\",[551,70.797]],[\"comment/1444\",[]],[\"name/1445\",[29,35.13]],[\"comment/1445\",[]],[\"name/1446\",[552,70.797]],[\"comment/1446\",[]],[\"name/1447\",[553,70.797]],[\"comment/1447\",[]],[\"name/1448\",[554,70.797]],[\"comment/1448\",[]],[\"name/1449\",[555,75.905]],[\"comment/1449\",[]],[\"name/1450\",[556,75.905]],[\"comment/1450\",[]],[\"name/1451\",[557,75.905]],[\"comment/1451\",[]],[\"name/1452\",[558,75.905]],[\"comment/1452\",[]],[\"name/1453\",[559,70.797]],[\"comment/1453\",[]],[\"name/1454\",[560,70.797]],[\"comment/1454\",[]],[\"name/1455\",[561,70.797]],[\"comment/1455\",[]],[\"name/1456\",[562,70.797]],[\"comment/1456\",[]],[\"name/1457\",[563,70.797]],[\"comment/1457\",[]],[\"name/1458\",[564,75.905]],[\"comment/1458\",[]],[\"name/1459\",[565,70.797]],[\"comment/1459\",[]],[\"name/1460\",[566,75.905]],[\"comment/1460\",[]],[\"name/1461\",[567,70.797]],[\"comment/1461\",[]],[\"name/1462\",[568,70.797]],[\"comment/1462\",[]],[\"name/1463\",[569,70.797]],[\"comment/1463\",[]],[\"name/1464\",[570,70.797]],[\"comment/1464\",[]],[\"name/1465\",[571,70.797]],[\"comment/1465\",[]],[\"name/1466\",[572,70.797]],[\"comment/1466\",[]],[\"name/1467\",[573,70.797]],[\"comment/1467\",[]],[\"name/1468\",[574,70.797]],[\"comment/1468\",[]],[\"name/1469\",[29,35.13]],[\"comment/1469\",[]],[\"name/1470\",[540,64.919]],[\"comment/1470\",[]],[\"name/1471\",[541,70.797]],[\"comment/1471\",[]],[\"name/1472\",[56,59.811]],[\"comment/1472\",[]],[\"name/1473\",[542,70.797]],[\"comment/1473\",[]],[\"name/1474\",[543,70.797]],[\"comment/1474\",[]],[\"name/1475\",[320,59.811]],[\"comment/1475\",[]],[\"name/1476\",[575,70.797]],[\"comment/1476\",[]],[\"name/1477\",[576,70.797]],[\"comment/1477\",[]],[\"name/1478\",[577,75.905]],[\"comment/1478\",[]],[\"name/1479\",[29,35.13]],[\"comment/1479\",[]],[\"name/1480\",[578,75.905]],[\"comment/1480\",[]],[\"name/1481\",[113,52.551]],[\"comment/1481\",[]],[\"name/1482\",[256,42.005]],[\"comment/1482\",[]],[\"name/1483\",[252,35.475]],[\"comment/1483\",[]],[\"name/1484\",[256,42.005]],[\"comment/1484\",[]],[\"name/1485\",[257,40.74]],[\"comment/1485\",[]],[\"name/1486\",[259,43.197]],[\"comment/1486\",[]],[\"name/1487\",[260,42.947]],[\"comment/1487\",[]],[\"name/1488\",[261,43.197]],[\"comment/1488\",[]],[\"name/1489\",[254,35.954]],[\"comment/1489\",[]],[\"name/1490\",[579,75.905]],[\"comment/1490\",[]],[\"name/1491\",[253,42.703]],[\"comment/1491\",[]],[\"name/1492\",[252,35.475]],[\"comment/1492\",[]],[\"name/1493\",[254,35.954]],[\"comment/1493\",[]],[\"name/1494\",[580,75.905]],[\"comment/1494\",[]],[\"name/1495\",[258,43.197]],[\"comment/1495\",[]],[\"name/1496\",[29,35.13]],[\"comment/1496\",[]],[\"name/1497\",[397,70.797]],[\"comment/1497\",[]],[\"name/1498\",[29,35.13]],[\"comment/1498\",[]],[\"name/1499\",[537,70.797]],[\"comment/1499\",[]],[\"name/1500\",[538,70.797]],[\"comment/1500\",[]],[\"name/1501\",[544,70.797]],[\"comment/1501\",[]],[\"name/1502\",[539,70.797]],[\"comment/1502\",[]],[\"name/1503\",[29,35.13]],[\"comment/1503\",[]],[\"name/1504\",[540,64.919]],[\"comment/1504\",[]],[\"name/1505\",[495,64.919]],[\"comment/1505\",[]],[\"name/1506\",[56,59.811]],[\"comment/1506\",[]],[\"name/1507\",[490,62.912]],[\"comment/1507\",[]],[\"name/1508\",[491,62.912]],[\"comment/1508\",[]],[\"name/1509\",[320,59.811]],[\"comment/1509\",[]],[\"name/1510\",[546,70.797]],[\"comment/1510\",[]],[\"name/1511\",[547,70.797]],[\"comment/1511\",[]],[\"name/1512\",[548,70.797]],[\"comment/1512\",[]],[\"name/1513\",[29,35.13]],[\"comment/1513\",[]],[\"name/1514\",[581,75.905]],[\"comment/1514\",[]],[\"name/1515\",[550,70.797]],[\"comment/1515\",[]],[\"name/1516\",[551,70.797]],[\"comment/1516\",[]],[\"name/1517\",[29,35.13]],[\"comment/1517\",[]],[\"name/1518\",[552,70.797]],[\"comment/1518\",[]],[\"name/1519\",[553,70.797]],[\"comment/1519\",[]],[\"name/1520\",[582,75.905]],[\"comment/1520\",[]],[\"name/1521\",[554,70.797]],[\"comment/1521\",[]],[\"name/1522\",[559,70.797]],[\"comment/1522\",[]],[\"name/1523\",[560,70.797]],[\"comment/1523\",[]],[\"name/1524\",[583,75.905]],[\"comment/1524\",[]],[\"name/1525\",[561,70.797]],[\"comment/1525\",[]],[\"name/1526\",[562,70.797]],[\"comment/1526\",[]],[\"name/1527\",[563,70.797]],[\"comment/1527\",[]],[\"name/1528\",[565,70.797]],[\"comment/1528\",[]],[\"name/1529\",[567,70.797]],[\"comment/1529\",[]],[\"name/1530\",[568,70.797]],[\"comment/1530\",[]],[\"name/1531\",[569,70.797]],[\"comment/1531\",[]],[\"name/1532\",[570,70.797]],[\"comment/1532\",[]],[\"name/1533\",[571,70.797]],[\"comment/1533\",[]],[\"name/1534\",[572,70.797]],[\"comment/1534\",[]],[\"name/1535\",[573,70.797]],[\"comment/1535\",[]],[\"name/1536\",[574,70.797]],[\"comment/1536\",[]],[\"name/1537\",[29,35.13]],[\"comment/1537\",[]],[\"name/1538\",[540,64.919]],[\"comment/1538\",[]],[\"name/1539\",[495,64.919]],[\"comment/1539\",[]],[\"name/1540\",[168,67.432]],[\"comment/1540\",[]],[\"name/1541\",[56,59.811]],[\"comment/1541\",[]],[\"name/1542\",[490,62.912]],[\"comment/1542\",[]],[\"name/1543\",[491,62.912]],[\"comment/1543\",[]],[\"name/1544\",[320,59.811]],[\"comment/1544\",[]],[\"name/1545\",[575,70.797]],[\"comment/1545\",[]],[\"name/1546\",[576,70.797]],[\"comment/1546\",[]],[\"name/1547\",[252,35.475]],[\"comment/1547\",[]],[\"name/1548\",[256,42.005]],[\"comment/1548\",[]],[\"name/1549\",[257,40.74]],[\"comment/1549\",[]],[\"name/1550\",[259,43.197]],[\"comment/1550\",[]],[\"name/1551\",[260,42.947]],[\"comment/1551\",[]],[\"name/1552\",[261,43.197]],[\"comment/1552\",[]],[\"name/1553\",[254,35.954]],[\"comment/1553\",[]],[\"name/1554\",[584,75.905]],[\"comment/1554\",[]],[\"name/1555\",[585,75.905]],[\"comment/1555\",[]],[\"name/1556\",[586,75.905]],[\"comment/1556\",[]],[\"name/1557\",[587,75.905]],[\"comment/1557\",[]],[\"name/1558\",[588,75.905]],[\"comment/1558\",[]],[\"name/1559\",[589,75.905]],[\"comment/1559\",[]],[\"name/1560\",[590,75.905]],[\"comment/1560\",[]],[\"name/1561\",[591,75.905]],[\"comment/1561\",[]],[\"name/1562\",[592,75.905]],[\"comment/1562\",[]],[\"name/1563\",[593,75.905]],[\"comment/1563\",[]],[\"name/1564\",[594,75.905]],[\"comment/1564\",[]],[\"name/1565\",[595,75.905]],[\"comment/1565\",[]],[\"name/1566\",[253,42.703]],[\"comment/1566\",[]],[\"name/1567\",[252,35.475]],[\"comment/1567\",[]],[\"name/1568\",[254,35.954]],[\"comment/1568\",[]],[\"name/1569\",[596,75.905]],[\"comment/1569\",[]],[\"name/1570\",[258,43.197]],[\"comment/1570\",[]],[\"name/1571\",[29,35.13]],[\"comment/1571\",[]],[\"name/1572\",[372,70.797]],[\"comment/1572\",[]],[\"name/1573\",[597,75.905]],[\"comment/1573\",[]],[\"name/1574\",[252,35.475]],[\"comment/1574\",[]],[\"name/1575\",[256,42.005]],[\"comment/1575\",[]],[\"name/1576\",[257,40.74]],[\"comment/1576\",[]],[\"name/1577\",[259,43.197]],[\"comment/1577\",[]],[\"name/1578\",[260,42.947]],[\"comment/1578\",[]],[\"name/1579\",[261,43.197]],[\"comment/1579\",[]],[\"name/1580\",[254,35.954]],[\"comment/1580\",[]],[\"name/1581\",[598,75.905]],[\"comment/1581\",[]],[\"name/1582\",[253,42.703]],[\"comment/1582\",[]],[\"name/1583\",[252,35.475]],[\"comment/1583\",[]],[\"name/1584\",[254,35.954]],[\"comment/1584\",[]],[\"name/1585\",[599,75.905]],[\"comment/1585\",[]],[\"name/1586\",[258,43.197]],[\"comment/1586\",[]],[\"name/1587\",[29,35.13]],[\"comment/1587\",[]],[\"name/1588\",[600,75.905]],[\"comment/1588\",[]],[\"name/1589\",[252,35.475]],[\"comment/1589\",[]],[\"name/1590\",[256,42.005]],[\"comment/1590\",[]],[\"name/1591\",[257,40.74]],[\"comment/1591\",[]],[\"name/1592\",[259,43.197]],[\"comment/1592\",[]],[\"name/1593\",[260,42.947]],[\"comment/1593\",[]],[\"name/1594\",[261,43.197]],[\"comment/1594\",[]],[\"name/1595\",[254,35.954]],[\"comment/1595\",[]],[\"name/1596\",[601,75.905]],[\"comment/1596\",[]],[\"name/1597\",[252,35.475]],[\"comment/1597\",[]],[\"name/1598\",[256,42.005]],[\"comment/1598\",[]],[\"name/1599\",[257,40.74]],[\"comment/1599\",[]],[\"name/1600\",[602,75.905]],[\"comment/1600\",[]],[\"name/1601\",[603,75.905]],[\"comment/1601\",[]],[\"name/1602\",[604,75.905]],[\"comment/1602\",[]],[\"name/1603\",[8,67.432]],[\"comment/1603\",[]],[\"name/1604\",[254,35.954]],[\"comment/1604\",[]],[\"name/1605\",[605,75.905]],[\"comment/1605\",[]],[\"name/1606\",[253,42.703]],[\"comment/1606\",[]],[\"name/1607\",[606,58.559]],[\"comment/1607\",[]],[\"name/1608\",[252,35.475]],[\"comment/1608\",[]],[\"name/1609\",[254,35.954]],[\"comment/1609\",[]],[\"name/1610\",[172,42.703]],[\"comment/1610\",[]],[\"name/1611\",[173,41.565]],[\"comment/1611\",[]],[\"name/1612\",[607,75.905]],[\"comment/1612\",[]],[\"name/1613\",[258,43.197]],[\"comment/1613\",[]],[\"name/1614\",[29,35.13]],[\"comment/1614\",[]],[\"name/1615\",[353,64.919]],[\"comment/1615\",[]],[\"name/1616\",[606,58.559]],[\"comment/1616\",[]],[\"name/1617\",[252,35.475]],[\"comment/1617\",[]],[\"name/1618\",[256,42.005]],[\"comment/1618\",[]],[\"name/1619\",[257,40.74]],[\"comment/1619\",[]],[\"name/1620\",[259,43.197]],[\"comment/1620\",[]],[\"name/1621\",[260,42.947]],[\"comment/1621\",[]],[\"name/1622\",[261,43.197]],[\"comment/1622\",[]],[\"name/1623\",[254,35.954]],[\"comment/1623\",[]],[\"name/1624\",[608,75.905]],[\"comment/1624\",[]],[\"name/1625\",[253,42.703]],[\"comment/1625\",[]],[\"name/1626\",[606,58.559]],[\"comment/1626\",[]],[\"name/1627\",[252,35.475]],[\"comment/1627\",[]],[\"name/1628\",[254,35.954]],[\"comment/1628\",[]],[\"name/1629\",[172,42.703]],[\"comment/1629\",[]],[\"name/1630\",[173,41.565]],[\"comment/1630\",[]],[\"name/1631\",[609,75.905]],[\"comment/1631\",[]],[\"name/1632\",[258,43.197]],[\"comment/1632\",[]],[\"name/1633\",[29,35.13]],[\"comment/1633\",[]],[\"name/1634\",[353,64.919]],[\"comment/1634\",[]],[\"name/1635\",[606,58.559]],[\"comment/1635\",[]],[\"name/1636\",[252,35.475]],[\"comment/1636\",[]],[\"name/1637\",[256,42.005]],[\"comment/1637\",[]],[\"name/1638\",[257,40.74]],[\"comment/1638\",[]],[\"name/1639\",[259,43.197]],[\"comment/1639\",[]],[\"name/1640\",[260,42.947]],[\"comment/1640\",[]],[\"name/1641\",[261,43.197]],[\"comment/1641\",[]],[\"name/1642\",[254,35.954]],[\"comment/1642\",[]],[\"name/1643\",[610,75.905]],[\"comment/1643\",[]],[\"name/1644\",[253,42.703]],[\"comment/1644\",[]],[\"name/1645\",[606,58.559]],[\"comment/1645\",[]],[\"name/1646\",[252,35.475]],[\"comment/1646\",[]],[\"name/1647\",[254,35.954]],[\"comment/1647\",[]],[\"name/1648\",[172,42.703]],[\"comment/1648\",[]],[\"name/1649\",[173,41.565]],[\"comment/1649\",[]],[\"name/1650\",[611,75.905]],[\"comment/1650\",[]],[\"name/1651\",[258,43.197]],[\"comment/1651\",[]],[\"name/1652\",[252,35.475]],[\"comment/1652\",[]],[\"name/1653\",[256,42.005]],[\"comment/1653\",[]],[\"name/1654\",[257,40.74]],[\"comment/1654\",[]],[\"name/1655\",[259,43.197]],[\"comment/1655\",[]],[\"name/1656\",[260,42.947]],[\"comment/1656\",[]],[\"name/1657\",[261,43.197]],[\"comment/1657\",[]],[\"name/1658\",[254,35.954]],[\"comment/1658\",[]],[\"name/1659\",[612,75.905]],[\"comment/1659\",[]],[\"name/1660\",[253,42.703]],[\"comment/1660\",[]],[\"name/1661\",[606,58.559]],[\"comment/1661\",[]],[\"name/1662\",[355,62.912]],[\"comment/1662\",[]],[\"name/1663\",[356,62.912]],[\"comment/1663\",[]],[\"name/1664\",[357,61.242]],[\"comment/1664\",[]],[\"name/1665\",[358,70.797]],[\"comment/1665\",[]],[\"name/1666\",[276,51.926]],[\"comment/1666\",[]],[\"name/1667\",[277,51.926]],[\"comment/1667\",[]],[\"name/1668\",[252,35.475]],[\"comment/1668\",[]],[\"name/1669\",[254,35.954]],[\"comment/1669\",[]],[\"name/1670\",[172,42.703]],[\"comment/1670\",[]],[\"name/1671\",[173,41.565]],[\"comment/1671\",[]],[\"name/1672\",[613,75.905]],[\"comment/1672\",[]],[\"name/1673\",[258,43.197]],[\"comment/1673\",[]],[\"name/1674\",[29,35.13]],[\"comment/1674\",[]],[\"name/1675\",[606,58.559]],[\"comment/1675\",[]],[\"name/1676\",[355,62.912]],[\"comment/1676\",[]],[\"name/1677\",[356,62.912]],[\"comment/1677\",[]],[\"name/1678\",[276,51.926]],[\"comment/1678\",[]],[\"name/1679\",[277,51.926]],[\"comment/1679\",[]],[\"name/1680\",[178,58.559]],[\"comment/1680\",[]],[\"name/1681\",[280,51.338]],[\"comment/1681\",[]],[\"name/1682\",[252,35.475]],[\"comment/1682\",[]],[\"name/1683\",[256,42.005]],[\"comment/1683\",[]],[\"name/1684\",[257,40.74]],[\"comment/1684\",[]],[\"name/1685\",[259,43.197]],[\"comment/1685\",[]],[\"name/1686\",[260,42.947]],[\"comment/1686\",[]],[\"name/1687\",[261,43.197]],[\"comment/1687\",[]],[\"name/1688\",[254,35.954]],[\"comment/1688\",[]],[\"name/1689\",[614,75.905]],[\"comment/1689\",[]],[\"name/1690\",[173,41.565]],[\"comment/1690\",[]],[\"name/1691\",[361,64.919]],[\"comment/1691\",[]],[\"name/1692\",[362,67.432]],[\"comment/1692\",[]],[\"name/1693\",[55,61.242]],[\"comment/1693\",[]],[\"name/1694\",[280,51.338]],[\"comment/1694\",[]],[\"name/1695\",[615,75.905]],[\"comment/1695\",[]],[\"name/1696\",[253,42.703]],[\"comment/1696\",[]],[\"name/1697\",[616,75.905]],[\"comment/1697\",[]],[\"name/1698\",[108,58.559]],[\"comment/1698\",[]],[\"name/1699\",[109,58.559]],[\"comment/1699\",[]],[\"name/1700\",[252,35.475]],[\"comment/1700\",[]],[\"name/1701\",[254,35.954]],[\"comment/1701\",[]],[\"name/1702\",[617,75.905]],[\"comment/1702\",[]],[\"name/1703\",[258,43.197]],[\"comment/1703\",[]],[\"name/1704\",[29,35.13]],[\"comment/1704\",[]],[\"name/1705\",[107,67.432]],[\"comment/1705\",[]],[\"name/1706\",[29,35.13]],[\"comment/1706\",[]],[\"name/1707\",[65,35.243]],[\"comment/1707\",[]],[\"name/1708\",[37,47.573]],[\"comment/1708\",[]],[\"name/1709\",[618,64.919]],[\"comment/1709\",[]],[\"name/1710\",[619,75.905]],[\"comment/1710\",[]],[\"name/1711\",[620,75.905]],[\"comment/1711\",[]],[\"name/1712\",[621,75.905]],[\"comment/1712\",[]],[\"name/1713\",[29,35.13]],[\"comment/1713\",[]],[\"name/1714\",[65,35.243]],[\"comment/1714\",[]],[\"name/1715\",[622,75.905]],[\"comment/1715\",[]],[\"name/1716\",[623,75.905]],[\"comment/1716\",[]],[\"name/1717\",[113,52.551]],[\"comment/1717\",[]],[\"name/1718\",[114,70.797]],[\"comment/1718\",[]],[\"name/1719\",[624,75.905]],[\"comment/1719\",[]],[\"name/1720\",[625,75.905]],[\"comment/1720\",[]],[\"name/1721\",[626,75.905]],[\"comment/1721\",[]],[\"name/1722\",[627,75.905]],[\"comment/1722\",[]],[\"name/1723\",[172,42.703]],[\"comment/1723\",[]],[\"name/1724\",[173,41.565]],[\"comment/1724\",[]],[\"name/1725\",[280,51.338]],[\"comment/1725\",[]],[\"name/1726\",[252,35.475]],[\"comment/1726\",[]],[\"name/1727\",[256,42.005]],[\"comment/1727\",[]],[\"name/1728\",[257,40.74]],[\"comment/1728\",[]],[\"name/1729\",[259,43.197]],[\"comment/1729\",[]],[\"name/1730\",[260,42.947]],[\"comment/1730\",[]],[\"name/1731\",[261,43.197]],[\"comment/1731\",[]],[\"name/1732\",[254,35.954]],[\"comment/1732\",[]],[\"name/1733\",[628,75.905]],[\"comment/1733\",[]],[\"name/1734\",[65,35.243]],[\"comment/1734\",[]],[\"name/1735\",[629,41.565]],[\"comment/1735\",[]],[\"name/1736\",[317,41.144]],[\"comment/1736\",[]],[\"name/1737\",[69,40.544]],[\"comment/1737\",[]],[\"name/1738\",[70,41.353]],[\"comment/1738\",[]],[\"name/1739\",[67,36.987]],[\"comment/1739\",[]],[\"name/1740\",[181,41.353]],[\"comment/1740\",[]],[\"name/1741\",[630,41.565]],[\"comment/1741\",[]],[\"name/1742\",[631,41.565]],[\"comment/1742\",[]],[\"name/1743\",[132,40.94]],[\"comment/1743\",[]],[\"name/1744\",[632,41.353]],[\"comment/1744\",[]],[\"name/1745\",[236,41.353]],[\"comment/1745\",[]],[\"name/1746\",[633,41.353]],[\"comment/1746\",[]],[\"name/1747\",[5,41.353]],[\"comment/1747\",[]],[\"name/1748\",[634,75.905]],[\"comment/1748\",[]],[\"name/1749\",[635,75.905]],[\"comment/1749\",[]],[\"name/1750\",[636,75.905]],[\"comment/1750\",[]],[\"name/1751\",[637,75.905]],[\"comment/1751\",[]],[\"name/1752\",[387,61.242]],[\"comment/1752\",[]],[\"name/1753\",[388,67.432]],[\"comment/1753\",[]],[\"name/1754\",[387,61.242]],[\"comment/1754\",[]],[\"name/1755\",[638,75.905]],[\"comment/1755\",[]],[\"name/1756\",[639,75.905]],[\"comment/1756\",[]],[\"name/1757\",[640,75.905]],[\"comment/1757\",[]],[\"name/1758\",[641,75.905]],[\"comment/1758\",[]],[\"name/1759\",[642,75.905]],[\"comment/1759\",[]],[\"name/1760\",[643,75.905]],[\"comment/1760\",[]],[\"name/1761\",[644,75.905]],[\"comment/1761\",[]],[\"name/1762\",[645,75.905]],[\"comment/1762\",[]],[\"name/1763\",[646,75.905]],[\"comment/1763\",[]],[\"name/1764\",[647,75.905]],[\"comment/1764\",[]],[\"name/1765\",[648,75.905]],[\"comment/1765\",[]],[\"name/1766\",[649,75.905]],[\"comment/1766\",[]],[\"name/1767\",[650,75.905]],[\"comment/1767\",[]],[\"name/1768\",[651,75.905]],[\"comment/1768\",[]],[\"name/1769\",[652,75.905]],[\"comment/1769\",[]],[\"name/1770\",[653,75.905]],[\"comment/1770\",[]],[\"name/1771\",[654,75.905]],[\"comment/1771\",[]],[\"name/1772\",[655,70.797]],[\"comment/1772\",[]],[\"name/1773\",[656,70.797]],[\"comment/1773\",[]],[\"name/1774\",[657,70.797]],[\"comment/1774\",[]],[\"name/1775\",[658,70.797]],[\"comment/1775\",[]],[\"name/1776\",[659,70.797]],[\"comment/1776\",[]],[\"name/1777\",[660,70.797]],[\"comment/1777\",[]],[\"name/1778\",[661,75.905]],[\"comment/1778\",[]],[\"name/1779\",[655,70.797]],[\"comment/1779\",[]],[\"name/1780\",[656,70.797]],[\"comment/1780\",[]],[\"name/1781\",[657,70.797]],[\"comment/1781\",[]],[\"name/1782\",[658,70.797]],[\"comment/1782\",[]],[\"name/1783\",[659,70.797]],[\"comment/1783\",[]],[\"name/1784\",[660,70.797]],[\"comment/1784\",[]],[\"name/1785\",[662,75.905]],[\"comment/1785\",[]],[\"name/1786\",[629,41.565]],[\"comment/1786\",[]],[\"name/1787\",[67,36.987]],[\"comment/1787\",[]],[\"name/1788\",[663,75.905]],[\"comment/1788\",[]],[\"name/1789\",[72,67.432]],[\"comment/1789\",[]],[\"name/1790\",[73,70.797]],[\"comment/1790\",[]],[\"name/1791\",[74,70.797]],[\"comment/1791\",[]],[\"name/1792\",[664,75.905]],[\"comment/1792\",[]],[\"name/1793\",[78,70.797]],[\"comment/1793\",[]],[\"name/1794\",[77,70.797]],[\"comment/1794\",[]],[\"name/1795\",[83,70.797]],[\"comment/1795\",[]],[\"name/1796\",[65,35.243]],[\"comment/1796\",[]],[\"name/1797\",[317,41.144]],[\"comment/1797\",[]],[\"name/1798\",[69,40.544]],[\"comment/1798\",[]],[\"name/1799\",[70,41.353]],[\"comment/1799\",[]],[\"name/1800\",[181,41.353]],[\"comment/1800\",[]],[\"name/1801\",[630,41.565]],[\"comment/1801\",[]],[\"name/1802\",[631,41.565]],[\"comment/1802\",[]],[\"name/1803\",[132,40.94]],[\"comment/1803\",[]],[\"name/1804\",[632,41.353]],[\"comment/1804\",[]],[\"name/1805\",[236,41.353]],[\"comment/1805\",[]],[\"name/1806\",[633,41.353]],[\"comment/1806\",[]],[\"name/1807\",[5,41.353]],[\"comment/1807\",[]],[\"name/1808\",[665,75.905]],[\"comment/1808\",[]],[\"name/1809\",[629,41.565]],[\"comment/1809\",[]],[\"name/1810\",[127,52.551]],[\"comment/1810\",[]],[\"name/1811\",[130,57.447]],[\"comment/1811\",[]],[\"name/1812\",[65,35.243]],[\"comment/1812\",[]],[\"name/1813\",[317,41.144]],[\"comment/1813\",[]],[\"name/1814\",[69,40.544]],[\"comment/1814\",[]],[\"name/1815\",[70,41.353]],[\"comment/1815\",[]],[\"name/1816\",[67,36.987]],[\"comment/1816\",[]],[\"name/1817\",[181,41.353]],[\"comment/1817\",[]],[\"name/1818\",[630,41.565]],[\"comment/1818\",[]],[\"name/1819\",[631,41.565]],[\"comment/1819\",[]],[\"name/1820\",[132,40.94]],[\"comment/1820\",[]],[\"name/1821\",[632,41.353]],[\"comment/1821\",[]],[\"name/1822\",[236,41.353]],[\"comment/1822\",[]],[\"name/1823\",[633,41.353]],[\"comment/1823\",[]],[\"name/1824\",[5,41.353]],[\"comment/1824\",[]],[\"name/1825\",[666,75.905]],[\"comment/1825\",[]],[\"name/1826\",[629,41.565]],[\"comment/1826\",[]],[\"name/1827\",[108,58.559]],[\"comment/1827\",[]],[\"name/1828\",[109,58.559]],[\"comment/1828\",[]],[\"name/1829\",[667,75.905]],[\"comment/1829\",[]],[\"name/1830\",[668,75.905]],[\"comment/1830\",[]],[\"name/1831\",[111,70.797]],[\"comment/1831\",[]],[\"name/1832\",[65,35.243]],[\"comment/1832\",[]],[\"name/1833\",[317,41.144]],[\"comment/1833\",[]],[\"name/1834\",[69,40.544]],[\"comment/1834\",[]],[\"name/1835\",[70,41.353]],[\"comment/1835\",[]],[\"name/1836\",[67,36.987]],[\"comment/1836\",[]],[\"name/1837\",[181,41.353]],[\"comment/1837\",[]],[\"name/1838\",[630,41.565]],[\"comment/1838\",[]],[\"name/1839\",[631,41.565]],[\"comment/1839\",[]],[\"name/1840\",[132,40.94]],[\"comment/1840\",[]],[\"name/1841\",[632,41.353]],[\"comment/1841\",[]],[\"name/1842\",[236,41.353]],[\"comment/1842\",[]],[\"name/1843\",[633,41.353]],[\"comment/1843\",[]],[\"name/1844\",[5,41.353]],[\"comment/1844\",[]],[\"name/1845\",[669,75.905]],[\"comment/1845\",[]],[\"name/1846\",[629,41.565]],[\"comment/1846\",[]],[\"name/1847\",[108,58.559]],[\"comment/1847\",[]],[\"name/1848\",[109,58.559]],[\"comment/1848\",[]],[\"name/1849\",[65,35.243]],[\"comment/1849\",[]],[\"name/1850\",[317,41.144]],[\"comment/1850\",[]],[\"name/1851\",[69,40.544]],[\"comment/1851\",[]],[\"name/1852\",[70,41.353]],[\"comment/1852\",[]],[\"name/1853\",[67,36.987]],[\"comment/1853\",[]],[\"name/1854\",[181,41.353]],[\"comment/1854\",[]],[\"name/1855\",[630,41.565]],[\"comment/1855\",[]],[\"name/1856\",[631,41.565]],[\"comment/1856\",[]],[\"name/1857\",[132,40.94]],[\"comment/1857\",[]],[\"name/1858\",[632,41.353]],[\"comment/1858\",[]],[\"name/1859\",[236,41.353]],[\"comment/1859\",[]],[\"name/1860\",[633,41.353]],[\"comment/1860\",[]],[\"name/1861\",[5,41.353]],[\"comment/1861\",[]],[\"name/1862\",[670,75.905]],[\"comment/1862\",[]],[\"name/1863\",[671,64.919]],[\"comment/1863\",[]],[\"name/1864\",[672,64.919]],[\"comment/1864\",[]],[\"name/1865\",[673,64.919]],[\"comment/1865\",[]],[\"name/1866\",[674,64.919]],[\"comment/1866\",[]],[\"name/1867\",[675,64.919]],[\"comment/1867\",[]],[\"name/1868\",[676,75.905]],[\"comment/1868\",[]],[\"name/1869\",[671,64.919]],[\"comment/1869\",[]],[\"name/1870\",[672,64.919]],[\"comment/1870\",[]],[\"name/1871\",[673,64.919]],[\"comment/1871\",[]],[\"name/1872\",[674,64.919]],[\"comment/1872\",[]],[\"name/1873\",[675,64.919]],[\"comment/1873\",[]],[\"name/1874\",[677,75.905]],[\"comment/1874\",[]],[\"name/1875\",[629,41.565]],[\"comment/1875\",[]],[\"name/1876\",[108,58.559]],[\"comment/1876\",[]],[\"name/1877\",[109,58.559]],[\"comment/1877\",[]],[\"name/1878\",[37,47.573]],[\"comment/1878\",[]],[\"name/1879\",[618,64.919]],[\"comment/1879\",[]],[\"name/1880\",[678,70.797]],[\"comment/1880\",[]],[\"name/1881\",[679,75.905]],[\"comment/1881\",[]],[\"name/1882\",[65,35.243]],[\"comment/1882\",[]],[\"name/1883\",[317,41.144]],[\"comment/1883\",[]],[\"name/1884\",[69,40.544]],[\"comment/1884\",[]],[\"name/1885\",[70,41.353]],[\"comment/1885\",[]],[\"name/1886\",[67,36.987]],[\"comment/1886\",[]],[\"name/1887\",[181,41.353]],[\"comment/1887\",[]],[\"name/1888\",[630,41.565]],[\"comment/1888\",[]],[\"name/1889\",[631,41.565]],[\"comment/1889\",[]],[\"name/1890\",[132,40.94]],[\"comment/1890\",[]],[\"name/1891\",[632,41.353]],[\"comment/1891\",[]],[\"name/1892\",[236,41.353]],[\"comment/1892\",[]],[\"name/1893\",[633,41.353]],[\"comment/1893\",[]],[\"name/1894\",[5,41.353]],[\"comment/1894\",[]],[\"name/1895\",[680,75.905]],[\"comment/1895\",[]],[\"name/1896\",[629,41.565]],[\"comment/1896\",[]],[\"name/1897\",[37,47.573]],[\"comment/1897\",[]],[\"name/1898\",[618,64.919]],[\"comment/1898\",[]],[\"name/1899\",[116,64.919]],[\"comment/1899\",[]],[\"name/1900\",[65,35.243]],[\"comment/1900\",[]],[\"name/1901\",[317,41.144]],[\"comment/1901\",[]],[\"name/1902\",[69,40.544]],[\"comment/1902\",[]],[\"name/1903\",[70,41.353]],[\"comment/1903\",[]],[\"name/1904\",[67,36.987]],[\"comment/1904\",[]],[\"name/1905\",[181,41.353]],[\"comment/1905\",[]],[\"name/1906\",[630,41.565]],[\"comment/1906\",[]],[\"name/1907\",[631,41.565]],[\"comment/1907\",[]],[\"name/1908\",[132,40.94]],[\"comment/1908\",[]],[\"name/1909\",[632,41.353]],[\"comment/1909\",[]],[\"name/1910\",[236,41.353]],[\"comment/1910\",[]],[\"name/1911\",[633,41.353]],[\"comment/1911\",[]],[\"name/1912\",[5,41.353]],[\"comment/1912\",[]],[\"name/1913\",[681,75.905]],[\"comment/1913\",[]],[\"name/1914\",[629,41.565]],[\"comment/1914\",[]],[\"name/1915\",[108,58.559]],[\"comment/1915\",[]],[\"name/1916\",[109,58.559]],[\"comment/1916\",[]],[\"name/1917\",[116,64.919]],[\"comment/1917\",[]],[\"name/1918\",[65,35.243]],[\"comment/1918\",[]],[\"name/1919\",[317,41.144]],[\"comment/1919\",[]],[\"name/1920\",[69,40.544]],[\"comment/1920\",[]],[\"name/1921\",[70,41.353]],[\"comment/1921\",[]],[\"name/1922\",[67,36.987]],[\"comment/1922\",[]],[\"name/1923\",[181,41.353]],[\"comment/1923\",[]],[\"name/1924\",[630,41.565]],[\"comment/1924\",[]],[\"name/1925\",[631,41.565]],[\"comment/1925\",[]],[\"name/1926\",[132,40.94]],[\"comment/1926\",[]],[\"name/1927\",[632,41.353]],[\"comment/1927\",[]],[\"name/1928\",[236,41.353]],[\"comment/1928\",[]],[\"name/1929\",[633,41.353]],[\"comment/1929\",[]],[\"name/1930\",[5,41.353]],[\"comment/1930\",[]],[\"name/1931\",[682,75.905]],[\"comment/1931\",[]],[\"name/1932\",[671,64.919]],[\"comment/1932\",[]],[\"name/1933\",[683,70.797]],[\"comment/1933\",[]],[\"name/1934\",[684,70.797]],[\"comment/1934\",[]],[\"name/1935\",[672,64.919]],[\"comment/1935\",[]],[\"name/1936\",[673,64.919]],[\"comment/1936\",[]],[\"name/1937\",[674,64.919]],[\"comment/1937\",[]],[\"name/1938\",[675,64.919]],[\"comment/1938\",[]],[\"name/1939\",[685,75.905]],[\"comment/1939\",[]],[\"name/1940\",[671,64.919]],[\"comment/1940\",[]],[\"name/1941\",[683,70.797]],[\"comment/1941\",[]],[\"name/1942\",[684,70.797]],[\"comment/1942\",[]],[\"name/1943\",[672,64.919]],[\"comment/1943\",[]],[\"name/1944\",[673,64.919]],[\"comment/1944\",[]],[\"name/1945\",[674,64.919]],[\"comment/1945\",[]],[\"name/1946\",[675,64.919]],[\"comment/1946\",[]],[\"name/1947\",[686,75.905]],[\"comment/1947\",[]],[\"name/1948\",[629,41.565]],[\"comment/1948\",[]],[\"name/1949\",[108,58.559]],[\"comment/1949\",[]],[\"name/1950\",[109,58.559]],[\"comment/1950\",[]],[\"name/1951\",[37,47.573]],[\"comment/1951\",[]],[\"name/1952\",[618,64.919]],[\"comment/1952\",[]],[\"name/1953\",[678,70.797]],[\"comment/1953\",[]],[\"name/1954\",[687,75.905]],[\"comment/1954\",[]],[\"name/1955\",[65,35.243]],[\"comment/1955\",[]],[\"name/1956\",[317,41.144]],[\"comment/1956\",[]],[\"name/1957\",[69,40.544]],[\"comment/1957\",[]],[\"name/1958\",[70,41.353]],[\"comment/1958\",[]],[\"name/1959\",[67,36.987]],[\"comment/1959\",[]],[\"name/1960\",[181,41.353]],[\"comment/1960\",[]],[\"name/1961\",[630,41.565]],[\"comment/1961\",[]],[\"name/1962\",[631,41.565]],[\"comment/1962\",[]],[\"name/1963\",[132,40.94]],[\"comment/1963\",[]],[\"name/1964\",[632,41.353]],[\"comment/1964\",[]],[\"name/1965\",[236,41.353]],[\"comment/1965\",[]],[\"name/1966\",[633,41.353]],[\"comment/1966\",[]],[\"name/1967\",[5,41.353]],[\"comment/1967\",[]],[\"name/1968\",[688,75.905]],[\"comment/1968\",[]],[\"name/1969\",[629,41.565]],[\"comment/1969\",[]],[\"name/1970\",[689,70.797]],[\"comment/1970\",[]],[\"name/1971\",[65,35.243]],[\"comment/1971\",[]],[\"name/1972\",[317,41.144]],[\"comment/1972\",[]],[\"name/1973\",[69,40.544]],[\"comment/1973\",[]],[\"name/1974\",[70,41.353]],[\"comment/1974\",[]],[\"name/1975\",[67,36.987]],[\"comment/1975\",[]],[\"name/1976\",[181,41.353]],[\"comment/1976\",[]],[\"name/1977\",[630,41.565]],[\"comment/1977\",[]],[\"name/1978\",[631,41.565]],[\"comment/1978\",[]],[\"name/1979\",[132,40.94]],[\"comment/1979\",[]],[\"name/1980\",[632,41.353]],[\"comment/1980\",[]],[\"name/1981\",[236,41.353]],[\"comment/1981\",[]],[\"name/1982\",[633,41.353]],[\"comment/1982\",[]],[\"name/1983\",[5,41.353]],[\"comment/1983\",[]],[\"name/1984\",[690,75.905]],[\"comment/1984\",[]],[\"name/1985\",[629,41.565]],[\"comment/1985\",[]],[\"name/1986\",[689,70.797]],[\"comment/1986\",[]],[\"name/1987\",[37,47.573]],[\"comment/1987\",[]],[\"name/1988\",[691,70.797]],[\"comment/1988\",[]],[\"name/1989\",[65,35.243]],[\"comment/1989\",[]],[\"name/1990\",[317,41.144]],[\"comment/1990\",[]],[\"name/1991\",[69,40.544]],[\"comment/1991\",[]],[\"name/1992\",[70,41.353]],[\"comment/1992\",[]],[\"name/1993\",[67,36.987]],[\"comment/1993\",[]],[\"name/1994\",[181,41.353]],[\"comment/1994\",[]],[\"name/1995\",[630,41.565]],[\"comment/1995\",[]],[\"name/1996\",[631,41.565]],[\"comment/1996\",[]],[\"name/1997\",[132,40.94]],[\"comment/1997\",[]],[\"name/1998\",[632,41.353]],[\"comment/1998\",[]],[\"name/1999\",[236,41.353]],[\"comment/1999\",[]],[\"name/2000\",[633,41.353]],[\"comment/2000\",[]],[\"name/2001\",[5,41.353]],[\"comment/2001\",[]],[\"name/2002\",[692,75.905]],[\"comment/2002\",[]],[\"name/2003\",[629,41.565]],[\"comment/2003\",[]],[\"name/2004\",[127,52.551]],[\"comment/2004\",[]],[\"name/2005\",[128,67.432]],[\"comment/2005\",[]],[\"name/2006\",[130,57.447]],[\"comment/2006\",[]],[\"name/2007\",[113,52.551]],[\"comment/2007\",[]],[\"name/2008\",[131,67.432]],[\"comment/2008\",[]],[\"name/2009\",[65,35.243]],[\"comment/2009\",[]],[\"name/2010\",[317,41.144]],[\"comment/2010\",[]],[\"name/2011\",[69,40.544]],[\"comment/2011\",[]],[\"name/2012\",[70,41.353]],[\"comment/2012\",[]],[\"name/2013\",[67,36.987]],[\"comment/2013\",[]],[\"name/2014\",[181,41.353]],[\"comment/2014\",[]],[\"name/2015\",[630,41.565]],[\"comment/2015\",[]],[\"name/2016\",[631,41.565]],[\"comment/2016\",[]],[\"name/2017\",[132,40.94]],[\"comment/2017\",[]],[\"name/2018\",[632,41.353]],[\"comment/2018\",[]],[\"name/2019\",[236,41.353]],[\"comment/2019\",[]],[\"name/2020\",[633,41.353]],[\"comment/2020\",[]],[\"name/2021\",[5,41.353]],[\"comment/2021\",[]],[\"name/2022\",[693,75.905]],[\"comment/2022\",[]],[\"name/2023\",[629,41.565]],[\"comment/2023\",[]],[\"name/2024\",[65,35.243]],[\"comment/2024\",[]],[\"name/2025\",[37,47.573]],[\"comment/2025\",[]],[\"name/2026\",[317,41.144]],[\"comment/2026\",[]],[\"name/2027\",[69,40.544]],[\"comment/2027\",[]],[\"name/2028\",[70,41.353]],[\"comment/2028\",[]],[\"name/2029\",[67,36.987]],[\"comment/2029\",[]],[\"name/2030\",[181,41.353]],[\"comment/2030\",[]],[\"name/2031\",[630,41.565]],[\"comment/2031\",[]],[\"name/2032\",[631,41.565]],[\"comment/2032\",[]],[\"name/2033\",[132,40.94]],[\"comment/2033\",[]],[\"name/2034\",[632,41.353]],[\"comment/2034\",[]],[\"name/2035\",[236,41.353]],[\"comment/2035\",[]],[\"name/2036\",[633,41.353]],[\"comment/2036\",[]],[\"name/2037\",[5,41.353]],[\"comment/2037\",[]],[\"name/2038\",[694,75.905]],[\"comment/2038\",[]],[\"name/2039\",[629,41.565]],[\"comment/2039\",[]],[\"name/2040\",[65,35.243]],[\"comment/2040\",[]],[\"name/2041\",[317,41.144]],[\"comment/2041\",[]],[\"name/2042\",[69,40.544]],[\"comment/2042\",[]],[\"name/2043\",[70,41.353]],[\"comment/2043\",[]],[\"name/2044\",[67,36.987]],[\"comment/2044\",[]],[\"name/2045\",[181,41.353]],[\"comment/2045\",[]],[\"name/2046\",[630,41.565]],[\"comment/2046\",[]],[\"name/2047\",[631,41.565]],[\"comment/2047\",[]],[\"name/2048\",[132,40.94]],[\"comment/2048\",[]],[\"name/2049\",[632,41.353]],[\"comment/2049\",[]],[\"name/2050\",[236,41.353]],[\"comment/2050\",[]],[\"name/2051\",[633,41.353]],[\"comment/2051\",[]],[\"name/2052\",[5,41.353]],[\"comment/2052\",[]],[\"name/2053\",[695,75.905]],[\"comment/2053\",[]],[\"name/2054\",[629,41.565]],[\"comment/2054\",[]],[\"name/2055\",[146,51.926]],[\"comment/2055\",[]],[\"name/2056\",[147,70.797]],[\"comment/2056\",[]],[\"name/2057\",[148,61.242]],[\"comment/2057\",[]],[\"name/2058\",[65,35.243]],[\"comment/2058\",[]],[\"name/2059\",[317,41.144]],[\"comment/2059\",[]],[\"name/2060\",[69,40.544]],[\"comment/2060\",[]],[\"name/2061\",[70,41.353]],[\"comment/2061\",[]],[\"name/2062\",[67,36.987]],[\"comment/2062\",[]],[\"name/2063\",[181,41.353]],[\"comment/2063\",[]],[\"name/2064\",[630,41.565]],[\"comment/2064\",[]],[\"name/2065\",[631,41.565]],[\"comment/2065\",[]],[\"name/2066\",[132,40.94]],[\"comment/2066\",[]],[\"name/2067\",[632,41.353]],[\"comment/2067\",[]],[\"name/2068\",[236,41.353]],[\"comment/2068\",[]],[\"name/2069\",[633,41.353]],[\"comment/2069\",[]],[\"name/2070\",[5,41.353]],[\"comment/2070\",[]],[\"name/2071\",[133,70.797]],[\"comment/2071\",[]],[\"name/2072\",[629,41.565]],[\"comment/2072\",[]],[\"name/2073\",[134,70.797]],[\"comment/2073\",[]],[\"name/2074\",[696,75.905]],[\"comment/2074\",[]],[\"name/2075\",[65,35.243]],[\"comment/2075\",[]],[\"name/2076\",[317,41.144]],[\"comment/2076\",[]],[\"name/2077\",[69,40.544]],[\"comment/2077\",[]],[\"name/2078\",[70,41.353]],[\"comment/2078\",[]],[\"name/2079\",[67,36.987]],[\"comment/2079\",[]],[\"name/2080\",[181,41.353]],[\"comment/2080\",[]],[\"name/2081\",[630,41.565]],[\"comment/2081\",[]],[\"name/2082\",[631,41.565]],[\"comment/2082\",[]],[\"name/2083\",[132,40.94]],[\"comment/2083\",[]],[\"name/2084\",[632,41.353]],[\"comment/2084\",[]],[\"name/2085\",[236,41.353]],[\"comment/2085\",[]],[\"name/2086\",[633,41.353]],[\"comment/2086\",[]],[\"name/2087\",[5,41.353]],[\"comment/2087\",[]],[\"name/2088\",[697,75.905]],[\"comment/2088\",[]],[\"name/2089\",[629,41.565]],[\"comment/2089\",[]],[\"name/2090\",[140,58.559]],[\"comment/2090\",[]],[\"name/2091\",[698,64.919]],[\"comment/2091\",[]],[\"name/2092\",[65,35.243]],[\"comment/2092\",[]],[\"name/2093\",[317,41.144]],[\"comment/2093\",[]],[\"name/2094\",[69,40.544]],[\"comment/2094\",[]],[\"name/2095\",[70,41.353]],[\"comment/2095\",[]],[\"name/2096\",[67,36.987]],[\"comment/2096\",[]],[\"name/2097\",[181,41.353]],[\"comment/2097\",[]],[\"name/2098\",[630,41.565]],[\"comment/2098\",[]],[\"name/2099\",[631,41.565]],[\"comment/2099\",[]],[\"name/2100\",[132,40.94]],[\"comment/2100\",[]],[\"name/2101\",[632,41.353]],[\"comment/2101\",[]],[\"name/2102\",[236,41.353]],[\"comment/2102\",[]],[\"name/2103\",[633,41.353]],[\"comment/2103\",[]],[\"name/2104\",[5,41.353]],[\"comment/2104\",[]],[\"name/2105\",[699,75.905]],[\"comment/2105\",[]],[\"name/2106\",[629,41.565]],[\"comment/2106\",[]],[\"name/2107\",[37,47.573]],[\"comment/2107\",[]],[\"name/2108\",[127,52.551]],[\"comment/2108\",[]],[\"name/2109\",[151,64.919]],[\"comment/2109\",[]],[\"name/2110\",[152,70.797]],[\"comment/2110\",[]],[\"name/2111\",[150,67.432]],[\"comment/2111\",[]],[\"name/2112\",[130,57.447]],[\"comment/2112\",[]],[\"name/2113\",[65,35.243]],[\"comment/2113\",[]],[\"name/2114\",[317,41.144]],[\"comment/2114\",[]],[\"name/2115\",[69,40.544]],[\"comment/2115\",[]],[\"name/2116\",[70,41.353]],[\"comment/2116\",[]],[\"name/2117\",[67,36.987]],[\"comment/2117\",[]],[\"name/2118\",[181,41.353]],[\"comment/2118\",[]],[\"name/2119\",[630,41.565]],[\"comment/2119\",[]],[\"name/2120\",[631,41.565]],[\"comment/2120\",[]],[\"name/2121\",[132,40.94]],[\"comment/2121\",[]],[\"name/2122\",[632,41.353]],[\"comment/2122\",[]],[\"name/2123\",[236,41.353]],[\"comment/2123\",[]],[\"name/2124\",[633,41.353]],[\"comment/2124\",[]],[\"name/2125\",[5,41.353]],[\"comment/2125\",[]],[\"name/2126\",[700,75.905]],[\"comment/2126\",[]],[\"name/2127\",[629,41.565]],[\"comment/2127\",[]],[\"name/2128\",[140,58.559]],[\"comment/2128\",[]],[\"name/2129\",[698,64.919]],[\"comment/2129\",[]],[\"name/2130\",[150,67.432]],[\"comment/2130\",[]],[\"name/2131\",[701,75.905]],[\"comment/2131\",[]],[\"name/2132\",[65,35.243]],[\"comment/2132\",[]],[\"name/2133\",[317,41.144]],[\"comment/2133\",[]],[\"name/2134\",[69,40.544]],[\"comment/2134\",[]],[\"name/2135\",[70,41.353]],[\"comment/2135\",[]],[\"name/2136\",[67,36.987]],[\"comment/2136\",[]],[\"name/2137\",[181,41.353]],[\"comment/2137\",[]],[\"name/2138\",[630,41.565]],[\"comment/2138\",[]],[\"name/2139\",[631,41.565]],[\"comment/2139\",[]],[\"name/2140\",[132,40.94]],[\"comment/2140\",[]],[\"name/2141\",[632,41.353]],[\"comment/2141\",[]],[\"name/2142\",[236,41.353]],[\"comment/2142\",[]],[\"name/2143\",[633,41.353]],[\"comment/2143\",[]],[\"name/2144\",[5,41.353]],[\"comment/2144\",[]],[\"name/2145\",[702,75.905]],[\"comment/2145\",[]],[\"name/2146\",[629,41.565]],[\"comment/2146\",[]],[\"name/2147\",[184,70.797]],[\"comment/2147\",[]],[\"name/2148\",[703,70.797]],[\"comment/2148\",[]],[\"name/2149\",[65,35.243]],[\"comment/2149\",[]],[\"name/2150\",[317,41.144]],[\"comment/2150\",[]],[\"name/2151\",[69,40.544]],[\"comment/2151\",[]],[\"name/2152\",[70,41.353]],[\"comment/2152\",[]],[\"name/2153\",[67,36.987]],[\"comment/2153\",[]],[\"name/2154\",[181,41.353]],[\"comment/2154\",[]],[\"name/2155\",[630,41.565]],[\"comment/2155\",[]],[\"name/2156\",[631,41.565]],[\"comment/2156\",[]],[\"name/2157\",[132,40.94]],[\"comment/2157\",[]],[\"name/2158\",[632,41.353]],[\"comment/2158\",[]],[\"name/2159\",[236,41.353]],[\"comment/2159\",[]],[\"name/2160\",[633,41.353]],[\"comment/2160\",[]],[\"name/2161\",[5,41.353]],[\"comment/2161\",[]],[\"name/2162\",[704,75.905]],[\"comment/2162\",[]],[\"name/2163\",[705,75.905]],[\"comment/2163\",[]],[\"name/2164\",[706,75.905]],[\"comment/2164\",[]],[\"name/2165\",[707,75.905]],[\"comment/2165\",[]],[\"name/2166\",[629,41.565]],[\"comment/2166\",[]],[\"name/2167\",[708,75.905]],[\"comment/2167\",[]],[\"name/2168\",[709,75.905]],[\"comment/2168\",[]],[\"name/2169\",[710,75.905]],[\"comment/2169\",[]],[\"name/2170\",[65,35.243]],[\"comment/2170\",[]],[\"name/2171\",[317,41.144]],[\"comment/2171\",[]],[\"name/2172\",[69,40.544]],[\"comment/2172\",[]],[\"name/2173\",[70,41.353]],[\"comment/2173\",[]],[\"name/2174\",[67,36.987]],[\"comment/2174\",[]],[\"name/2175\",[181,41.353]],[\"comment/2175\",[]],[\"name/2176\",[630,41.565]],[\"comment/2176\",[]],[\"name/2177\",[631,41.565]],[\"comment/2177\",[]],[\"name/2178\",[132,40.94]],[\"comment/2178\",[]],[\"name/2179\",[632,41.353]],[\"comment/2179\",[]],[\"name/2180\",[236,41.353]],[\"comment/2180\",[]],[\"name/2181\",[633,41.353]],[\"comment/2181\",[]],[\"name/2182\",[5,41.353]],[\"comment/2182\",[]],[\"name/2183\",[711,75.905]],[\"comment/2183\",[]],[\"name/2184\",[629,41.565]],[\"comment/2184\",[]],[\"name/2185\",[65,35.243]],[\"comment/2185\",[]],[\"name/2186\",[199,62.912]],[\"comment/2186\",[]],[\"name/2187\",[140,58.559]],[\"comment/2187\",[]],[\"name/2188\",[317,41.144]],[\"comment/2188\",[]],[\"name/2189\",[69,40.544]],[\"comment/2189\",[]],[\"name/2190\",[70,41.353]],[\"comment/2190\",[]],[\"name/2191\",[67,36.987]],[\"comment/2191\",[]],[\"name/2192\",[181,41.353]],[\"comment/2192\",[]],[\"name/2193\",[630,41.565]],[\"comment/2193\",[]],[\"name/2194\",[631,41.565]],[\"comment/2194\",[]],[\"name/2195\",[132,40.94]],[\"comment/2195\",[]],[\"name/2196\",[632,41.353]],[\"comment/2196\",[]],[\"name/2197\",[236,41.353]],[\"comment/2197\",[]],[\"name/2198\",[633,41.353]],[\"comment/2198\",[]],[\"name/2199\",[5,41.353]],[\"comment/2199\",[]],[\"name/2200\",[712,75.905]],[\"comment/2200\",[]],[\"name/2201\",[629,41.565]],[\"comment/2201\",[]],[\"name/2202\",[713,75.905]],[\"comment/2202\",[]],[\"name/2203\",[65,35.243]],[\"comment/2203\",[]],[\"name/2204\",[317,41.144]],[\"comment/2204\",[]],[\"name/2205\",[69,40.544]],[\"comment/2205\",[]],[\"name/2206\",[70,41.353]],[\"comment/2206\",[]],[\"name/2207\",[67,36.987]],[\"comment/2207\",[]],[\"name/2208\",[181,41.353]],[\"comment/2208\",[]],[\"name/2209\",[630,41.565]],[\"comment/2209\",[]],[\"name/2210\",[631,41.565]],[\"comment/2210\",[]],[\"name/2211\",[132,40.94]],[\"comment/2211\",[]],[\"name/2212\",[632,41.353]],[\"comment/2212\",[]],[\"name/2213\",[236,41.353]],[\"comment/2213\",[]],[\"name/2214\",[633,41.353]],[\"comment/2214\",[]],[\"name/2215\",[5,41.353]],[\"comment/2215\",[]],[\"name/2216\",[714,75.905]],[\"comment/2216\",[]],[\"name/2217\",[629,41.565]],[\"comment/2217\",[]],[\"name/2218\",[199,62.912]],[\"comment/2218\",[]],[\"name/2219\",[37,47.573]],[\"comment/2219\",[]],[\"name/2220\",[140,58.559]],[\"comment/2220\",[]],[\"name/2221\",[113,52.551]],[\"comment/2221\",[]],[\"name/2222\",[127,52.551]],[\"comment/2222\",[]],[\"name/2223\",[67,36.987]],[\"comment/2223\",[]],[\"name/2224\",[65,35.243]],[\"comment/2224\",[]],[\"name/2225\",[317,41.144]],[\"comment/2225\",[]],[\"name/2226\",[69,40.544]],[\"comment/2226\",[]],[\"name/2227\",[70,41.353]],[\"comment/2227\",[]],[\"name/2228\",[181,41.353]],[\"comment/2228\",[]],[\"name/2229\",[630,41.565]],[\"comment/2229\",[]],[\"name/2230\",[631,41.565]],[\"comment/2230\",[]],[\"name/2231\",[132,40.94]],[\"comment/2231\",[]],[\"name/2232\",[632,41.353]],[\"comment/2232\",[]],[\"name/2233\",[236,41.353]],[\"comment/2233\",[]],[\"name/2234\",[633,41.353]],[\"comment/2234\",[]],[\"name/2235\",[5,41.353]],[\"comment/2235\",[]],[\"name/2236\",[715,75.905]],[\"comment/2236\",[]],[\"name/2237\",[716,70.797]],[\"comment/2237\",[]],[\"name/2238\",[717,75.905]],[\"comment/2238\",[]],[\"name/2239\",[716,70.797]],[\"comment/2239\",[]],[\"name/2240\",[718,75.905]],[\"comment/2240\",[]],[\"name/2241\",[629,41.565]],[\"comment/2241\",[]],[\"name/2242\",[200,67.432]],[\"comment/2242\",[]],[\"name/2243\",[198,53.218]],[\"comment/2243\",[]],[\"name/2244\",[719,70.797]],[\"comment/2244\",[]],[\"name/2245\",[148,61.242]],[\"comment/2245\",[]],[\"name/2246\",[67,36.987]],[\"comment/2246\",[]],[\"name/2247\",[65,35.243]],[\"comment/2247\",[]],[\"name/2248\",[317,41.144]],[\"comment/2248\",[]],[\"name/2249\",[69,40.544]],[\"comment/2249\",[]],[\"name/2250\",[70,41.353]],[\"comment/2250\",[]],[\"name/2251\",[181,41.353]],[\"comment/2251\",[]],[\"name/2252\",[630,41.565]],[\"comment/2252\",[]],[\"name/2253\",[631,41.565]],[\"comment/2253\",[]],[\"name/2254\",[132,40.94]],[\"comment/2254\",[]],[\"name/2255\",[632,41.353]],[\"comment/2255\",[]],[\"name/2256\",[236,41.353]],[\"comment/2256\",[]],[\"name/2257\",[633,41.353]],[\"comment/2257\",[]],[\"name/2258\",[5,41.353]],[\"comment/2258\",[]],[\"name/2259\",[720,75.905]],[\"comment/2259\",[]],[\"name/2260\",[721,70.797]],[\"comment/2260\",[]],[\"name/2261\",[722,70.797]],[\"comment/2261\",[]],[\"name/2262\",[723,70.797]],[\"comment/2262\",[]],[\"name/2263\",[724,70.797]],[\"comment/2263\",[]],[\"name/2264\",[725,75.905]],[\"comment/2264\",[]],[\"name/2265\",[721,70.797]],[\"comment/2265\",[]],[\"name/2266\",[722,70.797]],[\"comment/2266\",[]],[\"name/2267\",[723,70.797]],[\"comment/2267\",[]],[\"name/2268\",[724,70.797]],[\"comment/2268\",[]],[\"name/2269\",[726,75.905]],[\"comment/2269\",[]],[\"name/2270\",[629,41.565]],[\"comment/2270\",[]],[\"name/2271\",[698,64.919]],[\"comment/2271\",[]],[\"name/2272\",[65,35.243]],[\"comment/2272\",[]],[\"name/2273\",[317,41.144]],[\"comment/2273\",[]],[\"name/2274\",[69,40.544]],[\"comment/2274\",[]],[\"name/2275\",[70,41.353]],[\"comment/2275\",[]],[\"name/2276\",[67,36.987]],[\"comment/2276\",[]],[\"name/2277\",[181,41.353]],[\"comment/2277\",[]],[\"name/2278\",[630,41.565]],[\"comment/2278\",[]],[\"name/2279\",[631,41.565]],[\"comment/2279\",[]],[\"name/2280\",[132,40.94]],[\"comment/2280\",[]],[\"name/2281\",[632,41.353]],[\"comment/2281\",[]],[\"name/2282\",[236,41.353]],[\"comment/2282\",[]],[\"name/2283\",[633,41.353]],[\"comment/2283\",[]],[\"name/2284\",[5,41.353]],[\"comment/2284\",[]],[\"name/2285\",[727,75.905]],[\"comment/2285\",[]],[\"name/2286\",[728,70.797]],[\"comment/2286\",[]],[\"name/2287\",[729,70.797]],[\"comment/2287\",[]],[\"name/2288\",[730,70.797]],[\"comment/2288\",[]],[\"name/2289\",[731,70.797]],[\"comment/2289\",[]],[\"name/2290\",[732,75.905]],[\"comment/2290\",[]],[\"name/2291\",[728,70.797]],[\"comment/2291\",[]],[\"name/2292\",[729,70.797]],[\"comment/2292\",[]],[\"name/2293\",[730,70.797]],[\"comment/2293\",[]],[\"name/2294\",[731,70.797]],[\"comment/2294\",[]],[\"name/2295\",[733,75.905]],[\"comment/2295\",[]],[\"name/2296\",[629,41.565]],[\"comment/2296\",[]],[\"name/2297\",[67,36.987]],[\"comment/2297\",[]],[\"name/2298\",[113,52.551]],[\"comment/2298\",[]],[\"name/2299\",[698,64.919]],[\"comment/2299\",[]],[\"name/2300\",[203,67.432]],[\"comment/2300\",[]],[\"name/2301\",[202,67.432]],[\"comment/2301\",[]],[\"name/2302\",[65,35.243]],[\"comment/2302\",[]],[\"name/2303\",[317,41.144]],[\"comment/2303\",[]],[\"name/2304\",[69,40.544]],[\"comment/2304\",[]],[\"name/2305\",[70,41.353]],[\"comment/2305\",[]],[\"name/2306\",[181,41.353]],[\"comment/2306\",[]],[\"name/2307\",[630,41.565]],[\"comment/2307\",[]],[\"name/2308\",[631,41.565]],[\"comment/2308\",[]],[\"name/2309\",[132,40.94]],[\"comment/2309\",[]],[\"name/2310\",[632,41.353]],[\"comment/2310\",[]],[\"name/2311\",[236,41.353]],[\"comment/2311\",[]],[\"name/2312\",[633,41.353]],[\"comment/2312\",[]],[\"name/2313\",[5,41.353]],[\"comment/2313\",[]],[\"name/2314\",[734,75.905]],[\"comment/2314\",[]],[\"name/2315\",[735,70.797]],[\"comment/2315\",[]],[\"name/2316\",[736,70.797]],[\"comment/2316\",[]],[\"name/2317\",[737,70.797]],[\"comment/2317\",[]],[\"name/2318\",[738,75.905]],[\"comment/2318\",[]],[\"name/2319\",[735,70.797]],[\"comment/2319\",[]],[\"name/2320\",[736,70.797]],[\"comment/2320\",[]],[\"name/2321\",[737,70.797]],[\"comment/2321\",[]],[\"name/2322\",[739,75.905]],[\"comment/2322\",[]],[\"name/2323\",[629,41.565]],[\"comment/2323\",[]],[\"name/2324\",[37,47.573]],[\"comment/2324\",[]],[\"name/2325\",[127,52.551]],[\"comment/2325\",[]],[\"name/2326\",[130,57.447]],[\"comment/2326\",[]],[\"name/2327\",[131,67.432]],[\"comment/2327\",[]],[\"name/2328\",[455,70.797]],[\"comment/2328\",[]],[\"name/2329\",[128,67.432]],[\"comment/2329\",[]],[\"name/2330\",[691,70.797]],[\"comment/2330\",[]],[\"name/2331\",[67,36.987]],[\"comment/2331\",[]],[\"name/2332\",[65,35.243]],[\"comment/2332\",[]],[\"name/2333\",[317,41.144]],[\"comment/2333\",[]],[\"name/2334\",[69,40.544]],[\"comment/2334\",[]],[\"name/2335\",[70,41.353]],[\"comment/2335\",[]],[\"name/2336\",[181,41.353]],[\"comment/2336\",[]],[\"name/2337\",[630,41.565]],[\"comment/2337\",[]],[\"name/2338\",[631,41.565]],[\"comment/2338\",[]],[\"name/2339\",[132,40.94]],[\"comment/2339\",[]],[\"name/2340\",[632,41.353]],[\"comment/2340\",[]],[\"name/2341\",[236,41.353]],[\"comment/2341\",[]],[\"name/2342\",[633,41.353]],[\"comment/2342\",[]],[\"name/2343\",[5,41.353]],[\"comment/2343\",[]],[\"name/2344\",[740,75.905]],[\"comment/2344\",[]],[\"name/2345\",[741,70.797]],[\"comment/2345\",[]],[\"name/2346\",[742,70.797]],[\"comment/2346\",[]],[\"name/2347\",[743,75.905]],[\"comment/2347\",[]],[\"name/2348\",[741,70.797]],[\"comment/2348\",[]],[\"name/2349\",[742,70.797]],[\"comment/2349\",[]],[\"name/2350\",[744,75.905]],[\"comment/2350\",[]],[\"name/2351\",[629,41.565]],[\"comment/2351\",[]],[\"name/2352\",[67,36.987]],[\"comment/2352\",[]],[\"name/2353\",[266,67.432]],[\"comment/2353\",[]],[\"name/2354\",[66,59.811]],[\"comment/2354\",[]],[\"name/2355\",[37,47.573]],[\"comment/2355\",[]],[\"name/2356\",[471,62.912]],[\"comment/2356\",[]],[\"name/2357\",[49,61.242]],[\"comment/2357\",[]],[\"name/2358\",[65,35.243]],[\"comment/2358\",[]],[\"name/2359\",[317,41.144]],[\"comment/2359\",[]],[\"name/2360\",[69,40.544]],[\"comment/2360\",[]],[\"name/2361\",[70,41.353]],[\"comment/2361\",[]],[\"name/2362\",[181,41.353]],[\"comment/2362\",[]],[\"name/2363\",[630,41.565]],[\"comment/2363\",[]],[\"name/2364\",[631,41.565]],[\"comment/2364\",[]],[\"name/2365\",[132,40.94]],[\"comment/2365\",[]],[\"name/2366\",[632,41.353]],[\"comment/2366\",[]],[\"name/2367\",[236,41.353]],[\"comment/2367\",[]],[\"name/2368\",[633,41.353]],[\"comment/2368\",[]],[\"name/2369\",[5,41.353]],[\"comment/2369\",[]],[\"name/2370\",[745,75.905]],[\"comment/2370\",[]],[\"name/2371\",[629,41.565]],[\"comment/2371\",[]],[\"name/2372\",[37,47.573]],[\"comment/2372\",[]],[\"name/2373\",[127,52.551]],[\"comment/2373\",[]],[\"name/2374\",[210,70.797]],[\"comment/2374\",[]],[\"name/2375\",[49,61.242]],[\"comment/2375\",[]],[\"name/2376\",[151,64.919]],[\"comment/2376\",[]],[\"name/2377\",[130,57.447]],[\"comment/2377\",[]],[\"name/2378\",[65,35.243]],[\"comment/2378\",[]],[\"name/2379\",[317,41.144]],[\"comment/2379\",[]],[\"name/2380\",[69,40.544]],[\"comment/2380\",[]],[\"name/2381\",[70,41.353]],[\"comment/2381\",[]],[\"name/2382\",[67,36.987]],[\"comment/2382\",[]],[\"name/2383\",[181,41.353]],[\"comment/2383\",[]],[\"name/2384\",[630,41.565]],[\"comment/2384\",[]],[\"name/2385\",[631,41.565]],[\"comment/2385\",[]],[\"name/2386\",[132,40.94]],[\"comment/2386\",[]],[\"name/2387\",[632,41.353]],[\"comment/2387\",[]],[\"name/2388\",[236,41.353]],[\"comment/2388\",[]],[\"name/2389\",[633,41.353]],[\"comment/2389\",[]],[\"name/2390\",[5,41.353]],[\"comment/2390\",[]],[\"name/2391\",[746,75.905]],[\"comment/2391\",[]],[\"name/2392\",[629,41.565]],[\"comment/2392\",[]],[\"name/2393\",[266,67.432]],[\"comment/2393\",[]],[\"name/2394\",[37,47.573]],[\"comment/2394\",[]],[\"name/2395\",[113,52.551]],[\"comment/2395\",[]],[\"name/2396\",[65,35.243]],[\"comment/2396\",[]],[\"name/2397\",[317,41.144]],[\"comment/2397\",[]],[\"name/2398\",[69,40.544]],[\"comment/2398\",[]],[\"name/2399\",[70,41.353]],[\"comment/2399\",[]],[\"name/2400\",[67,36.987]],[\"comment/2400\",[]],[\"name/2401\",[181,41.353]],[\"comment/2401\",[]],[\"name/2402\",[630,41.565]],[\"comment/2402\",[]],[\"name/2403\",[631,41.565]],[\"comment/2403\",[]],[\"name/2404\",[132,40.94]],[\"comment/2404\",[]],[\"name/2405\",[632,41.353]],[\"comment/2405\",[]],[\"name/2406\",[236,41.353]],[\"comment/2406\",[]],[\"name/2407\",[633,41.353]],[\"comment/2407\",[]],[\"name/2408\",[5,41.353]],[\"comment/2408\",[]],[\"name/2409\",[747,75.905]],[\"comment/2409\",[]],[\"name/2410\",[748,75.905]],[\"comment/2410\",[]],[\"name/2411\",[156,70.797]],[\"comment/2411\",[]],[\"name/2412\",[157,70.797]],[\"comment/2412\",[]],[\"name/2413\",[158,70.797]],[\"comment/2413\",[]],[\"name/2414\",[159,70.797]],[\"comment/2414\",[]],[\"name/2415\",[65,35.243]],[\"comment/2415\",[]],[\"name/2416\",[629,41.565]],[\"comment/2416\",[]],[\"name/2417\",[317,41.144]],[\"comment/2417\",[]],[\"name/2418\",[69,40.544]],[\"comment/2418\",[]],[\"name/2419\",[70,41.353]],[\"comment/2419\",[]],[\"name/2420\",[67,36.987]],[\"comment/2420\",[]],[\"name/2421\",[181,41.353]],[\"comment/2421\",[]],[\"name/2422\",[630,41.565]],[\"comment/2422\",[]],[\"name/2423\",[631,41.565]],[\"comment/2423\",[]],[\"name/2424\",[132,40.94]],[\"comment/2424\",[]],[\"name/2425\",[632,41.353]],[\"comment/2425\",[]],[\"name/2426\",[236,41.353]],[\"comment/2426\",[]],[\"name/2427\",[633,41.353]],[\"comment/2427\",[]],[\"name/2428\",[5,41.353]],[\"comment/2428\",[]],[\"name/2429\",[749,75.905]],[\"comment/2429\",[]],[\"name/2430\",[161,70.797]],[\"comment/2430\",[]],[\"name/2431\",[162,70.797]],[\"comment/2431\",[]],[\"name/2432\",[163,70.797]],[\"comment/2432\",[]],[\"name/2433\",[65,35.243]],[\"comment/2433\",[]],[\"name/2434\",[629,41.565]],[\"comment/2434\",[]],[\"name/2435\",[317,41.144]],[\"comment/2435\",[]],[\"name/2436\",[69,40.544]],[\"comment/2436\",[]],[\"name/2437\",[70,41.353]],[\"comment/2437\",[]],[\"name/2438\",[67,36.987]],[\"comment/2438\",[]],[\"name/2439\",[181,41.353]],[\"comment/2439\",[]],[\"name/2440\",[630,41.565]],[\"comment/2440\",[]],[\"name/2441\",[631,41.565]],[\"comment/2441\",[]],[\"name/2442\",[132,40.94]],[\"comment/2442\",[]],[\"name/2443\",[632,41.353]],[\"comment/2443\",[]],[\"name/2444\",[236,41.353]],[\"comment/2444\",[]],[\"name/2445\",[633,41.353]],[\"comment/2445\",[]],[\"name/2446\",[5,41.353]],[\"comment/2446\",[]],[\"name/2447\",[750,75.905]],[\"comment/2447\",[]],[\"name/2448\",[629,41.565]],[\"comment/2448\",[]],[\"name/2449\",[75,70.797]],[\"comment/2449\",[]],[\"name/2450\",[65,35.243]],[\"comment/2450\",[]],[\"name/2451\",[317,41.144]],[\"comment/2451\",[]],[\"name/2452\",[69,40.544]],[\"comment/2452\",[]],[\"name/2453\",[70,41.353]],[\"comment/2453\",[]],[\"name/2454\",[67,36.987]],[\"comment/2454\",[]],[\"name/2455\",[181,41.353]],[\"comment/2455\",[]],[\"name/2456\",[630,41.565]],[\"comment/2456\",[]],[\"name/2457\",[631,41.565]],[\"comment/2457\",[]],[\"name/2458\",[132,40.94]],[\"comment/2458\",[]],[\"name/2459\",[632,41.353]],[\"comment/2459\",[]],[\"name/2460\",[236,41.353]],[\"comment/2460\",[]],[\"name/2461\",[633,41.353]],[\"comment/2461\",[]],[\"name/2462\",[5,41.353]],[\"comment/2462\",[]],[\"name/2463\",[751,75.905]],[\"comment/2463\",[]],[\"name/2464\",[629,41.565]],[\"comment/2464\",[]],[\"name/2465\",[232,70.797]],[\"comment/2465\",[]],[\"name/2466\",[230,70.797]],[\"comment/2466\",[]],[\"name/2467\",[65,35.243]],[\"comment/2467\",[]],[\"name/2468\",[317,41.144]],[\"comment/2468\",[]],[\"name/2469\",[69,40.544]],[\"comment/2469\",[]],[\"name/2470\",[70,41.353]],[\"comment/2470\",[]],[\"name/2471\",[67,36.987]],[\"comment/2471\",[]],[\"name/2472\",[181,41.353]],[\"comment/2472\",[]],[\"name/2473\",[630,41.565]],[\"comment/2473\",[]],[\"name/2474\",[631,41.565]],[\"comment/2474\",[]],[\"name/2475\",[132,40.94]],[\"comment/2475\",[]],[\"name/2476\",[632,41.353]],[\"comment/2476\",[]],[\"name/2477\",[236,41.353]],[\"comment/2477\",[]],[\"name/2478\",[633,41.353]],[\"comment/2478\",[]],[\"name/2479\",[5,41.353]],[\"comment/2479\",[]],[\"name/2480\",[752,75.905]],[\"comment/2480\",[]],[\"name/2481\",[629,41.565]],[\"comment/2481\",[]],[\"name/2482\",[76,70.797]],[\"comment/2482\",[]],[\"name/2483\",[65,35.243]],[\"comment/2483\",[]],[\"name/2484\",[317,41.144]],[\"comment/2484\",[]],[\"name/2485\",[69,40.544]],[\"comment/2485\",[]],[\"name/2486\",[70,41.353]],[\"comment/2486\",[]],[\"name/2487\",[67,36.987]],[\"comment/2487\",[]],[\"name/2488\",[181,41.353]],[\"comment/2488\",[]],[\"name/2489\",[630,41.565]],[\"comment/2489\",[]],[\"name/2490\",[631,41.565]],[\"comment/2490\",[]],[\"name/2491\",[132,40.94]],[\"comment/2491\",[]],[\"name/2492\",[632,41.353]],[\"comment/2492\",[]],[\"name/2493\",[236,41.353]],[\"comment/2493\",[]],[\"name/2494\",[633,41.353]],[\"comment/2494\",[]],[\"name/2495\",[5,41.353]],[\"comment/2495\",[]],[\"name/2496\",[753,75.905]],[\"comment/2496\",[]],[\"name/2497\",[754,70.797]],[\"comment/2497\",[]],[\"name/2498\",[755,70.797]],[\"comment/2498\",[]],[\"name/2499\",[756,70.797]],[\"comment/2499\",[]],[\"name/2500\",[757,70.797]],[\"comment/2500\",[]],[\"name/2501\",[758,70.797]],[\"comment/2501\",[]],[\"name/2502\",[759,75.905]],[\"comment/2502\",[]],[\"name/2503\",[754,70.797]],[\"comment/2503\",[]],[\"name/2504\",[755,70.797]],[\"comment/2504\",[]],[\"name/2505\",[756,70.797]],[\"comment/2505\",[]],[\"name/2506\",[757,70.797]],[\"comment/2506\",[]],[\"name/2507\",[758,70.797]],[\"comment/2507\",[]],[\"name/2508\",[760,75.905]],[\"comment/2508\",[]],[\"name/2509\",[629,41.565]],[\"comment/2509\",[]],[\"name/2510\",[761,75.905]],[\"comment/2510\",[]],[\"name/2511\",[762,75.905]],[\"comment/2511\",[]],[\"name/2512\",[763,75.905]],[\"comment/2512\",[]],[\"name/2513\",[67,36.987]],[\"comment/2513\",[]],[\"name/2514\",[65,35.243]],[\"comment/2514\",[]],[\"name/2515\",[317,41.144]],[\"comment/2515\",[]],[\"name/2516\",[69,40.544]],[\"comment/2516\",[]],[\"name/2517\",[70,41.353]],[\"comment/2517\",[]],[\"name/2518\",[181,41.353]],[\"comment/2518\",[]],[\"name/2519\",[630,41.565]],[\"comment/2519\",[]],[\"name/2520\",[631,41.565]],[\"comment/2520\",[]],[\"name/2521\",[132,40.94]],[\"comment/2521\",[]],[\"name/2522\",[632,41.353]],[\"comment/2522\",[]],[\"name/2523\",[236,41.353]],[\"comment/2523\",[]],[\"name/2524\",[633,41.353]],[\"comment/2524\",[]],[\"name/2525\",[5,41.353]],[\"comment/2525\",[]],[\"name/2526\",[764,75.905]],[\"comment/2526\",[]],[\"name/2527\",[629,41.565]],[\"comment/2527\",[]],[\"name/2528\",[703,70.797]],[\"comment/2528\",[]],[\"name/2529\",[765,75.905]],[\"comment/2529\",[]],[\"name/2530\",[766,75.905]],[\"comment/2530\",[]],[\"name/2531\",[65,35.243]],[\"comment/2531\",[]],[\"name/2532\",[317,41.144]],[\"comment/2532\",[]],[\"name/2533\",[69,40.544]],[\"comment/2533\",[]],[\"name/2534\",[70,41.353]],[\"comment/2534\",[]],[\"name/2535\",[67,36.987]],[\"comment/2535\",[]],[\"name/2536\",[181,41.353]],[\"comment/2536\",[]],[\"name/2537\",[630,41.565]],[\"comment/2537\",[]],[\"name/2538\",[631,41.565]],[\"comment/2538\",[]],[\"name/2539\",[132,40.94]],[\"comment/2539\",[]],[\"name/2540\",[632,41.353]],[\"comment/2540\",[]],[\"name/2541\",[236,41.353]],[\"comment/2541\",[]],[\"name/2542\",[633,41.353]],[\"comment/2542\",[]],[\"name/2543\",[5,41.353]],[\"comment/2543\",[]],[\"name/2544\",[767,75.905]],[\"comment/2544\",[]],[\"name/2545\",[629,41.565]],[\"comment/2545\",[]],[\"name/2546\",[37,47.573]],[\"comment/2546\",[]],[\"name/2547\",[768,70.797]],[\"comment/2547\",[]],[\"name/2548\",[769,70.797]],[\"comment/2548\",[]],[\"name/2549\",[127,52.551]],[\"comment/2549\",[]],[\"name/2550\",[238,64.919]],[\"comment/2550\",[]],[\"name/2551\",[49,61.242]],[\"comment/2551\",[]],[\"name/2552\",[471,62.912]],[\"comment/2552\",[]],[\"name/2553\",[119,59.811]],[\"comment/2553\",[]],[\"name/2554\",[770,70.797]],[\"comment/2554\",[]],[\"name/2555\",[122,67.432]],[\"comment/2555\",[]],[\"name/2556\",[120,54.703]],[\"comment/2556\",[]],[\"name/2557\",[65,35.243]],[\"comment/2557\",[]],[\"name/2558\",[317,41.144]],[\"comment/2558\",[]],[\"name/2559\",[69,40.544]],[\"comment/2559\",[]],[\"name/2560\",[70,41.353]],[\"comment/2560\",[]],[\"name/2561\",[67,36.987]],[\"comment/2561\",[]],[\"name/2562\",[181,41.353]],[\"comment/2562\",[]],[\"name/2563\",[630,41.565]],[\"comment/2563\",[]],[\"name/2564\",[631,41.565]],[\"comment/2564\",[]],[\"name/2565\",[132,40.94]],[\"comment/2565\",[]],[\"name/2566\",[632,41.353]],[\"comment/2566\",[]],[\"name/2567\",[236,41.353]],[\"comment/2567\",[]],[\"name/2568\",[633,41.353]],[\"comment/2568\",[]],[\"name/2569\",[5,41.353]],[\"comment/2569\",[]],[\"name/2570\",[771,75.905]],[\"comment/2570\",[]],[\"name/2571\",[629,41.565]],[\"comment/2571\",[]],[\"name/2572\",[37,47.573]],[\"comment/2572\",[]],[\"name/2573\",[768,70.797]],[\"comment/2573\",[]],[\"name/2574\",[769,70.797]],[\"comment/2574\",[]],[\"name/2575\",[127,52.551]],[\"comment/2575\",[]],[\"name/2576\",[238,64.919]],[\"comment/2576\",[]],[\"name/2577\",[49,61.242]],[\"comment/2577\",[]],[\"name/2578\",[471,62.912]],[\"comment/2578\",[]],[\"name/2579\",[770,70.797]],[\"comment/2579\",[]],[\"name/2580\",[120,54.703]],[\"comment/2580\",[]],[\"name/2581\",[121,62.912]],[\"comment/2581\",[]],[\"name/2582\",[65,35.243]],[\"comment/2582\",[]],[\"name/2583\",[317,41.144]],[\"comment/2583\",[]],[\"name/2584\",[69,40.544]],[\"comment/2584\",[]],[\"name/2585\",[70,41.353]],[\"comment/2585\",[]],[\"name/2586\",[67,36.987]],[\"comment/2586\",[]],[\"name/2587\",[181,41.353]],[\"comment/2587\",[]],[\"name/2588\",[630,41.565]],[\"comment/2588\",[]],[\"name/2589\",[631,41.565]],[\"comment/2589\",[]],[\"name/2590\",[132,40.94]],[\"comment/2590\",[]],[\"name/2591\",[632,41.353]],[\"comment/2591\",[]],[\"name/2592\",[236,41.353]],[\"comment/2592\",[]],[\"name/2593\",[633,41.353]],[\"comment/2593\",[]],[\"name/2594\",[5,41.353]],[\"comment/2594\",[]],[\"name/2595\",[772,75.905]],[\"comment/2595\",[]],[\"name/2596\",[629,41.565]],[\"comment/2596\",[]],[\"name/2597\",[120,54.703]],[\"comment/2597\",[]],[\"name/2598\",[121,62.912]],[\"comment/2598\",[]],[\"name/2599\",[127,52.551]],[\"comment/2599\",[]],[\"name/2600\",[130,57.447]],[\"comment/2600\",[]],[\"name/2601\",[37,47.573]],[\"comment/2601\",[]],[\"name/2602\",[65,35.243]],[\"comment/2602\",[]],[\"name/2603\",[317,41.144]],[\"comment/2603\",[]],[\"name/2604\",[69,40.544]],[\"comment/2604\",[]],[\"name/2605\",[70,41.353]],[\"comment/2605\",[]],[\"name/2606\",[67,36.987]],[\"comment/2606\",[]],[\"name/2607\",[181,41.353]],[\"comment/2607\",[]],[\"name/2608\",[630,41.565]],[\"comment/2608\",[]],[\"name/2609\",[631,41.565]],[\"comment/2609\",[]],[\"name/2610\",[132,40.94]],[\"comment/2610\",[]],[\"name/2611\",[632,41.353]],[\"comment/2611\",[]],[\"name/2612\",[236,41.353]],[\"comment/2612\",[]],[\"name/2613\",[633,41.353]],[\"comment/2613\",[]],[\"name/2614\",[5,41.353]],[\"comment/2614\",[]],[\"name/2615\",[773,75.905]],[\"comment/2615\",[]],[\"name/2616\",[629,41.565]],[\"comment/2616\",[]],[\"name/2617\",[120,54.703]],[\"comment/2617\",[]],[\"name/2618\",[121,62.912]],[\"comment/2618\",[]],[\"name/2619\",[774,75.905]],[\"comment/2619\",[]],[\"name/2620\",[37,47.573]],[\"comment/2620\",[]],[\"name/2621\",[65,35.243]],[\"comment/2621\",[]],[\"name/2622\",[317,41.144]],[\"comment/2622\",[]],[\"name/2623\",[69,40.544]],[\"comment/2623\",[]],[\"name/2624\",[70,41.353]],[\"comment/2624\",[]],[\"name/2625\",[67,36.987]],[\"comment/2625\",[]],[\"name/2626\",[181,41.353]],[\"comment/2626\",[]],[\"name/2627\",[630,41.565]],[\"comment/2627\",[]],[\"name/2628\",[631,41.565]],[\"comment/2628\",[]],[\"name/2629\",[132,40.94]],[\"comment/2629\",[]],[\"name/2630\",[632,41.353]],[\"comment/2630\",[]],[\"name/2631\",[236,41.353]],[\"comment/2631\",[]],[\"name/2632\",[633,41.353]],[\"comment/2632\",[]],[\"name/2633\",[5,41.353]],[\"comment/2633\",[]],[\"name/2634\",[775,75.905]],[\"comment/2634\",[]],[\"name/2635\",[629,41.565]],[\"comment/2635\",[]],[\"name/2636\",[120,54.703]],[\"comment/2636\",[]],[\"name/2637\",[119,59.811]],[\"comment/2637\",[]],[\"name/2638\",[124,67.432]],[\"comment/2638\",[]],[\"name/2639\",[65,35.243]],[\"comment/2639\",[]],[\"name/2640\",[317,41.144]],[\"comment/2640\",[]],[\"name/2641\",[69,40.544]],[\"comment/2641\",[]],[\"name/2642\",[70,41.353]],[\"comment/2642\",[]],[\"name/2643\",[67,36.987]],[\"comment/2643\",[]],[\"name/2644\",[181,41.353]],[\"comment/2644\",[]],[\"name/2645\",[630,41.565]],[\"comment/2645\",[]],[\"name/2646\",[631,41.565]],[\"comment/2646\",[]],[\"name/2647\",[132,40.94]],[\"comment/2647\",[]],[\"name/2648\",[632,41.353]],[\"comment/2648\",[]],[\"name/2649\",[236,41.353]],[\"comment/2649\",[]],[\"name/2650\",[633,41.353]],[\"comment/2650\",[]],[\"name/2651\",[5,41.353]],[\"comment/2651\",[]],[\"name/2652\",[776,75.905]],[\"comment/2652\",[]],[\"name/2653\",[629,41.565]],[\"comment/2653\",[]],[\"name/2654\",[120,54.703]],[\"comment/2654\",[]],[\"name/2655\",[119,59.811]],[\"comment/2655\",[]],[\"name/2656\",[238,64.919]],[\"comment/2656\",[]],[\"name/2657\",[65,35.243]],[\"comment/2657\",[]],[\"name/2658\",[317,41.144]],[\"comment/2658\",[]],[\"name/2659\",[69,40.544]],[\"comment/2659\",[]],[\"name/2660\",[70,41.353]],[\"comment/2660\",[]],[\"name/2661\",[67,36.987]],[\"comment/2661\",[]],[\"name/2662\",[181,41.353]],[\"comment/2662\",[]],[\"name/2663\",[630,41.565]],[\"comment/2663\",[]],[\"name/2664\",[631,41.565]],[\"comment/2664\",[]],[\"name/2665\",[132,40.94]],[\"comment/2665\",[]],[\"name/2666\",[632,41.353]],[\"comment/2666\",[]],[\"name/2667\",[236,41.353]],[\"comment/2667\",[]],[\"name/2668\",[633,41.353]],[\"comment/2668\",[]],[\"name/2669\",[5,41.353]],[\"comment/2669\",[]],[\"name/2670\",[777,75.905]],[\"comment/2670\",[]],[\"name/2671\",[629,41.565]],[\"comment/2671\",[]],[\"name/2672\",[120,54.703]],[\"comment/2672\",[]],[\"name/2673\",[119,59.811]],[\"comment/2673\",[]],[\"name/2674\",[127,52.551]],[\"comment/2674\",[]],[\"name/2675\",[37,47.573]],[\"comment/2675\",[]],[\"name/2676\",[65,35.243]],[\"comment/2676\",[]],[\"name/2677\",[317,41.144]],[\"comment/2677\",[]],[\"name/2678\",[69,40.544]],[\"comment/2678\",[]],[\"name/2679\",[70,41.353]],[\"comment/2679\",[]],[\"name/2680\",[67,36.987]],[\"comment/2680\",[]],[\"name/2681\",[181,41.353]],[\"comment/2681\",[]],[\"name/2682\",[630,41.565]],[\"comment/2682\",[]],[\"name/2683\",[631,41.565]],[\"comment/2683\",[]],[\"name/2684\",[132,40.94]],[\"comment/2684\",[]],[\"name/2685\",[632,41.353]],[\"comment/2685\",[]],[\"name/2686\",[236,41.353]],[\"comment/2686\",[]],[\"name/2687\",[633,41.353]],[\"comment/2687\",[]],[\"name/2688\",[5,41.353]],[\"comment/2688\",[]],[\"name/2689\",[778,75.905]],[\"comment/2689\",[]],[\"name/2690\",[629,41.565]],[\"comment/2690\",[]],[\"name/2691\",[120,54.703]],[\"comment/2691\",[]],[\"name/2692\",[119,59.811]],[\"comment/2692\",[]],[\"name/2693\",[124,67.432]],[\"comment/2693\",[]],[\"name/2694\",[67,36.987]],[\"comment/2694\",[]],[\"name/2695\",[65,35.243]],[\"comment/2695\",[]],[\"name/2696\",[317,41.144]],[\"comment/2696\",[]],[\"name/2697\",[69,40.544]],[\"comment/2697\",[]],[\"name/2698\",[70,41.353]],[\"comment/2698\",[]],[\"name/2699\",[181,41.353]],[\"comment/2699\",[]],[\"name/2700\",[630,41.565]],[\"comment/2700\",[]],[\"name/2701\",[631,41.565]],[\"comment/2701\",[]],[\"name/2702\",[132,40.94]],[\"comment/2702\",[]],[\"name/2703\",[632,41.353]],[\"comment/2703\",[]],[\"name/2704\",[236,41.353]],[\"comment/2704\",[]],[\"name/2705\",[633,41.353]],[\"comment/2705\",[]],[\"name/2706\",[5,41.353]],[\"comment/2706\",[]],[\"name/2707\",[779,75.905]],[\"comment/2707\",[]],[\"name/2708\",[780,70.797]],[\"comment/2708\",[]],[\"name/2709\",[781,75.905]],[\"comment/2709\",[]],[\"name/2710\",[780,70.797]],[\"comment/2710\",[]],[\"name/2711\",[782,75.905]],[\"comment/2711\",[]],[\"name/2712\",[783,75.905]],[\"comment/2712\",[]],[\"name/2713\",[784,75.905]],[\"comment/2713\",[]],[\"name/2714\",[785,70.797]],[\"comment/2714\",[]],[\"name/2715\",[785,70.797]],[\"comment/2715\",[]],[\"name/2716\",[29,35.13]],[\"comment/2716\",[]],[\"name/2717\",[64,47.573]],[\"comment/2717\",[]],[\"name/2718\",[786,64.919]],[\"comment/2718\",[]],[\"name/2719\",[787,75.905]],[\"comment/2719\",[]],[\"name/2720\",[29,35.13]],[\"comment/2720\",[]],[\"name/2721\",[788,70.797]],[\"comment/2721\",[]],[\"name/2722\",[788,70.797]],[\"comment/2722\",[]],[\"name/2723\",[29,35.13]],[\"comment/2723\",[]],[\"name/2724\",[64,47.573]],[\"comment/2724\",[]],[\"name/2725\",[786,64.919]],[\"comment/2725\",[]],[\"name/2726\",[789,70.797]],[\"comment/2726\",[]],[\"name/2727\",[29,35.13]],[\"comment/2727\",[]],[\"name/2728\",[790,75.905]],[\"comment/2728\",[]],[\"name/2729\",[29,35.13]],[\"comment/2729\",[]],[\"name/2730\",[85,48.39]],[\"comment/2730\",[]],[\"name/2731\",[86,48.39]],[\"comment/2731\",[]],[\"name/2732\",[791,70.797]],[\"comment/2732\",[]],[\"name/2733\",[791,70.797]],[\"comment/2733\",[]],[\"name/2734\",[29,35.13]],[\"comment/2734\",[]],[\"name/2735\",[64,47.573]],[\"comment/2735\",[]],[\"name/2736\",[786,64.919]],[\"comment/2736\",[]],[\"name/2737\",[789,70.797]],[\"comment/2737\",[]],[\"name/2738\",[29,35.13]],[\"comment/2738\",[]],[\"name/2739\",[410,70.797]],[\"comment/2739\",[]],[\"name/2740\",[792,75.905]],[\"comment/2740\",[]],[\"name/2741\",[793,75.905]],[\"comment/2741\",[]],[\"name/2742\",[794,75.905]],[\"comment/2742\",[]],[\"name/2743\",[795,75.905]],[\"comment/2743\",[]],[\"name/2744\",[796,75.905]],[\"comment/2744\",[]],[\"name/2745\",[797,75.905]],[\"comment/2745\",[]],[\"name/2746\",[798,75.905]],[\"comment/2746\",[]],[\"name/2747\",[786,64.919]],[\"comment/2747\",[]],[\"name/2748\",[799,75.905]],[\"comment/2748\",[]],[\"name/2749\",[326,53.933]],[\"comment/2749\",[]],[\"name/2750\",[198,53.218]],[\"comment/2750\",[]],[\"name/2751\",[800,75.905]],[\"comment/2751\",[]],[\"name/2752\",[326,53.933]],[\"comment/2752\",[]],[\"name/2753\",[198,53.218]],[\"comment/2753\",[]],[\"name/2754\",[326,53.933]],[\"comment/2754\",[]],[\"name/2755\",[801,75.905]],[\"comment/2755\",[]],[\"name/2756\",[364,67.432]],[\"comment/2756\",[]],[\"name/2757\",[326,53.933]],[\"comment/2757\",[]],[\"name/2758\",[198,53.218]],[\"comment/2758\",[]],[\"name/2759\",[37,47.573]],[\"comment/2759\",[]],[\"name/2760\",[66,59.811]],[\"comment/2760\",[]],[\"name/2761\",[326,53.933]],[\"comment/2761\",[]],[\"name/2762\",[198,53.218]],[\"comment/2762\",[]],[\"name/2763\",[364,67.432]],[\"comment/2763\",[]],[\"name/2764\",[802,70.797]],[\"comment/2764\",[]],[\"name/2765\",[802,70.797]],[\"comment/2765\",[]],[\"name/2766\",[29,35.13]],[\"comment/2766\",[]],[\"name/2767\",[65,35.243]],[\"comment/2767\",[]],[\"name/2768\",[633,41.353]],[\"comment/2768\",[]],[\"name/2769\",[632,41.353]],[\"comment/2769\",[]],[\"name/2770\",[803,70.797]],[\"comment/2770\",[]],[\"name/2771\",[803,70.797]],[\"comment/2771\",[]],[\"name/2772\",[29,35.13]],[\"comment/2772\",[]],[\"name/2773\",[804,75.905]],[\"comment/2773\",[]],[\"name/2774\",[805,75.905]],[\"comment/2774\",[]],[\"name/2775\",[806,75.905]],[\"comment/2775\",[]],[\"name/2776\",[807,75.905]],[\"comment/2776\",[]],[\"name/2777\",[808,75.905]],[\"comment/2777\",[]],[\"name/2778\",[65,35.243]],[\"comment/2778\",[]],[\"name/2779\",[326,53.933]],[\"comment/2779\",[]],[\"name/2780\",[198,53.218]],[\"comment/2780\",[]],[\"name/2781\",[809,75.905]],[\"comment/2781\",[]],[\"name/2782\",[810,70.797]],[\"comment/2782\",[]],[\"name/2783\",[810,70.797]],[\"comment/2783\",[]],[\"name/2784\",[29,35.13]],[\"comment/2784\",[]],[\"name/2785\",[65,35.243]],[\"comment/2785\",[]],[\"name/2786\",[811,75.905]],[\"comment/2786\",[]],[\"name/2787\",[79,70.797]],[\"comment/2787\",[]],[\"name/2788\",[812,75.905]],[\"comment/2788\",[]],[\"name/2789\",[505,70.797]],[\"comment/2789\",[]],[\"name/2790\",[56,59.811]],[\"comment/2790\",[]],[\"name/2791\",[173,41.565]],[\"comment/2791\",[]],[\"name/2792\",[813,75.905]],[\"comment/2792\",[]],[\"name/2793\",[814,75.905]],[\"comment/2793\",[]],[\"name/2794\",[37,47.573]],[\"comment/2794\",[]],[\"name/2795\",[67,36.987]],[\"comment/2795\",[]],[\"name/2796\",[815,75.905]],[\"comment/2796\",[]],[\"name/2797\",[140,58.559]],[\"comment/2797\",[]],[\"name/2798\",[127,52.551]],[\"comment/2798\",[]],[\"name/2799\",[113,52.551]],[\"comment/2799\",[]],[\"name/2800\",[197,67.432]],[\"comment/2800\",[]],[\"name/2801\",[606,58.559]],[\"comment/2801\",[]],[\"name/2802\",[173,41.565]],[\"comment/2802\",[]],[\"name/2803\",[140,58.559]],[\"comment/2803\",[]],[\"name/2804\",[816,75.905]],[\"comment/2804\",[]],[\"name/2805\",[67,36.987]],[\"comment/2805\",[]],[\"name/2806\",[817,75.905]],[\"comment/2806\",[]],[\"name/2807\",[198,53.218]],[\"comment/2807\",[]],[\"name/2808\",[818,75.905]],[\"comment/2808\",[]],[\"name/2809\",[337,70.797]],[\"comment/2809\",[]],[\"name/2810\",[148,61.242]],[\"comment/2810\",[]],[\"name/2811\",[819,70.797]],[\"comment/2811\",[]],[\"name/2812\",[819,70.797]],[\"comment/2812\",[]],[\"name/2813\",[29,35.13]],[\"comment/2813\",[]],[\"name/2814\",[65,35.243]],[\"comment/2814\",[]],[\"name/2815\",[120,54.703]],[\"comment/2815\",[]],[\"name/2816\",[820,75.905]],[\"comment/2816\",[]],[\"name/2817\",[821,75.905]],[\"comment/2817\",[]],[\"name/2818\",[822,75.905]],[\"comment/2818\",[]],[\"name/2819\",[823,75.905]],[\"comment/2819\",[]],[\"name/2820\",[824,75.905]],[\"comment/2820\",[]],[\"name/2821\",[825,75.905]],[\"comment/2821\",[]],[\"name/2822\",[826,75.905]],[\"comment/2822\",[]],[\"name/2823\",[827,75.905]],[\"comment/2823\",[]],[\"name/2824\",[828,75.905]],[\"comment/2824\",[]],[\"name/2825\",[829,75.905]],[\"comment/2825\",[]],[\"name/2826\",[830,75.905]],[\"comment/2826\",[]],[\"name/2827\",[831,75.905]],[\"comment/2827\",[]],[\"name/2828\",[832,75.905]],[\"comment/2828\",[]],[\"name/2829\",[833,75.905]],[\"comment/2829\",[]],[\"name/2830\",[834,75.905]],[\"comment/2830\",[]],[\"name/2831\",[835,75.905]],[\"comment/2831\",[]],[\"name/2832\",[836,75.905]],[\"comment/2832\",[]],[\"name/2833\",[837,75.905]],[\"comment/2833\",[]],[\"name/2834\",[838,75.905]],[\"comment/2834\",[]],[\"name/2835\",[839,75.905]],[\"comment/2835\",[]],[\"name/2836\",[182,70.797]],[\"comment/2836\",[]],[\"name/2837\",[29,35.13]],[\"comment/2837\",[]],[\"name/2838\",[840,75.905]],[\"comment/2838\",[]],[\"name/2839\",[29,35.13]],[\"comment/2839\",[]],[\"name/2840\",[841,75.905]],[\"comment/2840\",[]],[\"name/2841\",[29,35.13]],[\"comment/2841\",[]],[\"name/2842\",[842,75.905]],[\"comment/2842\",[]],[\"name/2843\",[29,35.13]],[\"comment/2843\",[]],[\"name/2844\",[843,75.905]],[\"comment/2844\",[]],[\"name/2845\",[29,35.13]],[\"comment/2845\",[]],[\"name/2846\",[844,75.905]],[\"comment/2846\",[]],[\"name/2847\",[29,35.13]],[\"comment/2847\",[]],[\"name/2848\",[845,75.905]],[\"comment/2848\",[]],[\"name/2849\",[29,35.13]],[\"comment/2849\",[]],[\"name/2850\",[846,75.905]],[\"comment/2850\",[]],[\"name/2851\",[29,35.13]],[\"comment/2851\",[]],[\"name/2852\",[847,75.905]],[\"comment/2852\",[]],[\"name/2853\",[29,35.13]],[\"comment/2853\",[]],[\"name/2854\",[848,75.905]],[\"comment/2854\",[]],[\"name/2855\",[29,35.13]],[\"comment/2855\",[]],[\"name/2856\",[849,75.905]],[\"comment/2856\",[]],[\"name/2857\",[29,35.13]],[\"comment/2857\",[]],[\"name/2858\",[850,75.905]],[\"comment/2858\",[]],[\"name/2859\",[29,35.13]],[\"comment/2859\",[]],[\"name/2860\",[851,75.905]],[\"comment/2860\",[]],[\"name/2861\",[29,35.13]],[\"comment/2861\",[]],[\"name/2862\",[852,75.905]],[\"comment/2862\",[]],[\"name/2863\",[853,75.905]],[\"comment/2863\",[]],[\"name/2864\",[854,75.905]],[\"comment/2864\",[]],[\"name/2865\",[855,75.905]],[\"comment/2865\",[]],[\"name/2866\",[856,75.905]],[\"comment/2866\",[]],[\"name/2867\",[857,75.905]],[\"comment/2867\",[]],[\"name/2868\",[858,75.905]],[\"comment/2868\",[]],[\"name/2869\",[859,75.905]],[\"comment/2869\",[]],[\"name/2870\",[860,75.905]],[\"comment/2870\",[]],[\"name/2871\",[861,75.905]],[\"comment/2871\",[]],[\"name/2872\",[862,75.905]],[\"comment/2872\",[]],[\"name/2873\",[863,75.905]],[\"comment/2873\",[]],[\"name/2874\",[29,35.13]],[\"comment/2874\",[]],[\"name/2875\",[199,62.912]],[\"comment/2875\",[]],[\"name/2876\",[67,36.987]],[\"comment/2876\",[]],[\"name/2877\",[719,70.797]],[\"comment/2877\",[]],[\"name/2878\",[198,53.218]],[\"comment/2878\",[]],[\"name/2879\",[864,75.905]],[\"comment/2879\",[]],[\"name/2880\",[69,40.544]],[\"comment/2880\",[]],[\"name/2881\",[865,75.905]],[\"comment/2881\",[]],[\"name/2882\",[866,75.905]],[\"comment/2882\",[]],[\"name/2883\",[1,53.218]],[\"comment/2883\",[]],[\"name/2884\",[867,54.703]],[\"comment/2884\",[]],[\"name/2885\",[264,53.933]],[\"comment/2885\",[]],[\"name/2886\",[146,51.926]],[\"comment/2886\",[]],[\"name/2887\",[868,54.703]],[\"comment/2887\",[]],[\"name/2888\",[869,54.703]],[\"comment/2888\",[]],[\"name/2889\",[870,75.905]],[\"comment/2889\",[]],[\"name/2890\",[1,53.218]],[\"comment/2890\",[]],[\"name/2891\",[867,54.703]],[\"comment/2891\",[]],[\"name/2892\",[264,53.933]],[\"comment/2892\",[]],[\"name/2893\",[146,51.926]],[\"comment/2893\",[]],[\"name/2894\",[868,54.703]],[\"comment/2894\",[]],[\"name/2895\",[869,54.703]],[\"comment/2895\",[]],[\"name/2896\",[871,75.905]],[\"comment/2896\",[]],[\"name/2897\",[1,53.218]],[\"comment/2897\",[]],[\"name/2898\",[867,54.703]],[\"comment/2898\",[]],[\"name/2899\",[264,53.933]],[\"comment/2899\",[]],[\"name/2900\",[146,51.926]],[\"comment/2900\",[]],[\"name/2901\",[868,54.703]],[\"comment/2901\",[]],[\"name/2902\",[869,54.703]],[\"comment/2902\",[]],[\"name/2903\",[872,75.905]],[\"comment/2903\",[]],[\"name/2904\",[1,53.218]],[\"comment/2904\",[]],[\"name/2905\",[867,54.703]],[\"comment/2905\",[]],[\"name/2906\",[264,53.933]],[\"comment/2906\",[]],[\"name/2907\",[146,51.926]],[\"comment/2907\",[]],[\"name/2908\",[868,54.703]],[\"comment/2908\",[]],[\"name/2909\",[869,54.703]],[\"comment/2909\",[]],[\"name/2910\",[873,75.905]],[\"comment/2910\",[]],[\"name/2911\",[1,53.218]],[\"comment/2911\",[]],[\"name/2912\",[867,54.703]],[\"comment/2912\",[]],[\"name/2913\",[264,53.933]],[\"comment/2913\",[]],[\"name/2914\",[146,51.926]],[\"comment/2914\",[]],[\"name/2915\",[868,54.703]],[\"comment/2915\",[]],[\"name/2916\",[869,54.703]],[\"comment/2916\",[]],[\"name/2917\",[874,75.905]],[\"comment/2917\",[]],[\"name/2918\",[1,53.218]],[\"comment/2918\",[]],[\"name/2919\",[867,54.703]],[\"comment/2919\",[]],[\"name/2920\",[264,53.933]],[\"comment/2920\",[]],[\"name/2921\",[146,51.926]],[\"comment/2921\",[]],[\"name/2922\",[868,54.703]],[\"comment/2922\",[]],[\"name/2923\",[869,54.703]],[\"comment/2923\",[]],[\"name/2924\",[875,75.905]],[\"comment/2924\",[]],[\"name/2925\",[1,53.218]],[\"comment/2925\",[]],[\"name/2926\",[867,54.703]],[\"comment/2926\",[]],[\"name/2927\",[264,53.933]],[\"comment/2927\",[]],[\"name/2928\",[146,51.926]],[\"comment/2928\",[]],[\"name/2929\",[868,54.703]],[\"comment/2929\",[]],[\"name/2930\",[869,54.703]],[\"comment/2930\",[]],[\"name/2931\",[876,75.905]],[\"comment/2931\",[]],[\"name/2932\",[1,53.218]],[\"comment/2932\",[]],[\"name/2933\",[867,54.703]],[\"comment/2933\",[]],[\"name/2934\",[264,53.933]],[\"comment/2934\",[]],[\"name/2935\",[146,51.926]],[\"comment/2935\",[]],[\"name/2936\",[868,54.703]],[\"comment/2936\",[]],[\"name/2937\",[869,54.703]],[\"comment/2937\",[]],[\"name/2938\",[877,75.905]],[\"comment/2938\",[]],[\"name/2939\",[1,53.218]],[\"comment/2939\",[]],[\"name/2940\",[867,54.703]],[\"comment/2940\",[]],[\"name/2941\",[264,53.933]],[\"comment/2941\",[]],[\"name/2942\",[146,51.926]],[\"comment/2942\",[]],[\"name/2943\",[868,54.703]],[\"comment/2943\",[]],[\"name/2944\",[869,54.703]],[\"comment/2944\",[]],[\"name/2945\",[878,75.905]],[\"comment/2945\",[]],[\"name/2946\",[1,53.218]],[\"comment/2946\",[]],[\"name/2947\",[867,54.703]],[\"comment/2947\",[]],[\"name/2948\",[264,53.933]],[\"comment/2948\",[]],[\"name/2949\",[146,51.926]],[\"comment/2949\",[]],[\"name/2950\",[868,54.703]],[\"comment/2950\",[]],[\"name/2951\",[869,54.703]],[\"comment/2951\",[]],[\"name/2952\",[879,75.905]],[\"comment/2952\",[]],[\"name/2953\",[1,53.218]],[\"comment/2953\",[]],[\"name/2954\",[867,54.703]],[\"comment/2954\",[]],[\"name/2955\",[264,53.933]],[\"comment/2955\",[]],[\"name/2956\",[146,51.926]],[\"comment/2956\",[]],[\"name/2957\",[868,54.703]],[\"comment/2957\",[]],[\"name/2958\",[869,54.703]],[\"comment/2958\",[]],[\"name/2959\",[880,75.905]],[\"comment/2959\",[]],[\"name/2960\",[1,53.218]],[\"comment/2960\",[]],[\"name/2961\",[867,54.703]],[\"comment/2961\",[]],[\"name/2962\",[264,53.933]],[\"comment/2962\",[]],[\"name/2963\",[146,51.926]],[\"comment/2963\",[]],[\"name/2964\",[868,54.703]],[\"comment/2964\",[]],[\"name/2965\",[869,54.703]],[\"comment/2965\",[]],[\"name/2966\",[881,75.905]],[\"comment/2966\",[]],[\"name/2967\",[882,75.905]],[\"comment/2967\",[]]],\"invertedIndex\":[[\"__type\",{\"_index\":29,\"name\":{\"31\":{},\"47\":{},\"59\":{},\"139\":{},\"276\":{},\"310\":{},\"422\":{},\"451\":{},\"477\":{},\"502\":{},\"542\":{},\"581\":{},\"627\":{},\"656\":{},\"691\":{},\"720\":{},\"755\":{},\"758\":{},\"760\":{},\"762\":{},\"785\":{},\"853\":{},\"869\":{},\"893\":{},\"910\":{},\"912\":{},\"916\":{},\"930\":{},\"945\":{},\"966\":{},\"996\":{},\"1018\":{},\"1082\":{},\"1105\":{},\"1147\":{},\"1179\":{},\"1209\":{},\"1355\":{},\"1359\":{},\"1367\":{},\"1387\":{},\"1389\":{},\"1423\":{},\"1425\":{},\"1429\":{},\"1441\":{},\"1445\":{},\"1469\":{},\"1479\":{},\"1496\":{},\"1498\":{},\"1503\":{},\"1513\":{},\"1517\":{},\"1537\":{},\"1571\":{},\"1587\":{},\"1614\":{},\"1633\":{},\"1674\":{},\"1704\":{},\"1706\":{},\"1713\":{},\"2716\":{},\"2720\":{},\"2723\":{},\"2727\":{},\"2729\":{},\"2734\":{},\"2738\":{},\"2766\":{},\"2772\":{},\"2784\":{},\"2813\":{},\"2837\":{},\"2839\":{},\"2841\":{},\"2843\":{},\"2845\":{},\"2847\":{},\"2849\":{},\"2851\":{},\"2853\":{},\"2855\":{},\"2857\":{},\"2859\":{},\"2861\":{},\"2874\":{}},\"comment\":{}}],[\"accepted\",{\"_index\":419,\"name\":{\"972\":{}},\"comment\":{}}],[\"account\",{\"_index\":65,\"name\":{\"70\":{},\"135\":{},\"140\":{},\"154\":{},\"168\":{},\"184\":{},\"208\":{},\"219\":{},\"319\":{},\"335\":{},\"389\":{},\"398\":{},\"411\":{},\"423\":{},\"453\":{},\"467\":{},\"478\":{},\"494\":{},\"532\":{},\"571\":{},\"582\":{},\"596\":{},\"618\":{},\"628\":{},\"645\":{},\"657\":{},\"681\":{},\"692\":{},\"707\":{},\"721\":{},\"746\":{},\"756\":{},\"775\":{},\"820\":{},\"1066\":{},\"1707\":{},\"1714\":{},\"1734\":{},\"1796\":{},\"1812\":{},\"1832\":{},\"1849\":{},\"1882\":{},\"1900\":{},\"1918\":{},\"1955\":{},\"1971\":{},\"1989\":{},\"2009\":{},\"2024\":{},\"2040\":{},\"2058\":{},\"2075\":{},\"2092\":{},\"2113\":{},\"2132\":{},\"2149\":{},\"2170\":{},\"2185\":{},\"2203\":{},\"2224\":{},\"2247\":{},\"2272\":{},\"2302\":{},\"2332\":{},\"2358\":{},\"2378\":{},\"2396\":{},\"2415\":{},\"2433\":{},\"2450\":{},\"2467\":{},\"2483\":{},\"2514\":{},\"2531\":{},\"2557\":{},\"2582\":{},\"2602\":{},\"2621\":{},\"2639\":{},\"2657\":{},\"2676\":{},\"2695\":{},\"2767\":{},\"2778\":{},\"2785\":{},\"2814\":{}},\"comment\":{}}],[\"account_data\",{\"_index\":305,\"name\":{\"543\":{}},\"comment\":{}}],[\"account_flags\",{\"_index\":306,\"name\":{\"544\":{}},\"comment\":{}}],[\"account_hash\",{\"_index\":165,\"name\":{\"250\":{},\"835\":{}},\"comment\":{}}],[\"account_nfts\",{\"_index\":340,\"name\":{\"629\":{}},\"comment\":{}}],[\"account_objects\",{\"_index\":346,\"name\":{\"658\":{}},\"comment\":{}}],[\"account_root\",{\"_index\":400,\"name\":{\"921\":{}},\"comment\":{}}],[\"account_sequence_available\",{\"_index\":420,\"name\":{\"973\":{}},\"comment\":{}}],[\"account_sequence_next\",{\"_index\":421,\"name\":{\"974\":{}},\"comment\":{}}],[\"accountchannelsrequest\",{\"_index\":275,\"name\":{\"465\":{}},\"comment\":{}}],[\"accountchannelsresponse\",{\"_index\":278,\"name\":{\"475\":{}},\"comment\":{}}],[\"accountcurrenciesrequest\",{\"_index\":281,\"name\":{\"492\":{}},\"comment\":{}}],[\"accountcurrenciesresponse\",{\"_index\":283,\"name\":{\"500\":{}},\"comment\":{}}],[\"accountdelete\",{\"_index\":665,\"name\":{\"1808\":{}},\"comment\":{}}],[\"accountinfoaccountflags\",{\"_index\":286,\"name\":{\"515\":{}},\"comment\":{}}],[\"accountinforequest\",{\"_index\":301,\"name\":{\"530\":{}},\"comment\":{}}],[\"accountinforesponse\",{\"_index\":304,\"name\":{\"540\":{}},\"comment\":{}}],[\"accountlinesrequest\",{\"_index\":321,\"name\":{\"569\":{}},\"comment\":{}}],[\"accountlinesresponse\",{\"_index\":323,\"name\":{\"579\":{}},\"comment\":{}}],[\"accountlinestrustline\",{\"_index\":325,\"name\":{\"595\":{}},\"comment\":{}}],[\"accountnftoken\",{\"_index\":336,\"name\":{\"609\":{}},\"comment\":{}}],[\"accountnftsrequest\",{\"_index\":338,\"name\":{\"616\":{}},\"comment\":{}}],[\"accountnftsresponse\",{\"_index\":339,\"name\":{\"625\":{}},\"comment\":{}}],[\"accountobject\",{\"_index\":341,\"name\":{\"641\":{}},\"comment\":{}}],[\"accountobjectsrequest\",{\"_index\":343,\"name\":{\"643\":{}},\"comment\":{}}],[\"accountobjectsresponse\",{\"_index\":345,\"name\":{\"654\":{}},\"comment\":{}}],[\"accountobjecttype\",{\"_index\":342,\"name\":{\"642\":{}},\"comment\":{}}],[\"accountoffer\",{\"_index\":347,\"name\":{\"672\":{}},\"comment\":{}}],[\"accountoffersrequest\",{\"_index\":351,\"name\":{\"679\":{}},\"comment\":{}}],[\"accountoffersresponse\",{\"_index\":352,\"name\":{\"689\":{}},\"comment\":{}}],[\"accountqueuedata\",{\"_index\":309,\"name\":{\"556\":{}},\"comment\":{}}],[\"accountqueuetransaction\",{\"_index\":315,\"name\":{\"563\":{}},\"comment\":{}}],[\"accountroot\",{\"_index\":63,\"name\":{\"68\":{}},\"comment\":{}}],[\"accountrootflags\",{\"_index\":87,\"name\":{\"92\":{}},\"comment\":{}}],[\"accountrootflagsinterface\",{\"_index\":103,\"name\":{\"108\":{}},\"comment\":{}}],[\"accounts\",{\"_index\":377,\"name\":{\"799\":{},\"931\":{},\"1221\":{},\"1331\":{}},\"comment\":{}}],[\"accounts_proposed\",{\"_index\":476,\"name\":{\"1222\":{},\"1332\":{}},\"comment\":{}}],[\"accountset\",{\"_index\":662,\"name\":{\"1785\":{}},\"comment\":{}}],[\"accountsetasfflags\",{\"_index\":638,\"name\":{\"1755\":{}},\"comment\":{}}],[\"accountsetflagsinterface\",{\"_index\":661,\"name\":{\"1778\":{}},\"comment\":{}}],[\"accountsettfflags\",{\"_index\":654,\"name\":{\"1771\":{}},\"comment\":{}}],[\"accountstate\",{\"_index\":166,\"name\":{\"251\":{},\"830\":{}},\"comment\":{}}],[\"accounttxnid\",{\"_index\":70,\"name\":{\"75\":{},\"1738\":{},\"1799\":{},\"1815\":{},\"1835\":{},\"1852\":{},\"1885\":{},\"1903\":{},\"1921\":{},\"1958\":{},\"1974\":{},\"1992\":{},\"2012\":{},\"2028\":{},\"2043\":{},\"2061\":{},\"2078\":{},\"2095\":{},\"2116\":{},\"2135\":{},\"2152\":{},\"2173\":{},\"2190\":{},\"2206\":{},\"2227\":{},\"2250\":{},\"2275\":{},\"2305\":{},\"2335\":{},\"2361\":{},\"2381\":{},\"2399\":{},\"2419\":{},\"2437\":{},\"2453\":{},\"2470\":{},\"2486\":{},\"2517\":{},\"2534\":{},\"2560\":{},\"2585\":{},\"2605\":{},\"2624\":{},\"2642\":{},\"2660\":{},\"2679\":{},\"2698\":{}},\"comment\":{}}],[\"accounttxrequest\",{\"_index\":354,\"name\":{\"705\":{}},\"comment\":{}}],[\"accounttxresponse\",{\"_index\":359,\"name\":{\"718\":{}},\"comment\":{}}],[\"accounttxtransaction\",{\"_index\":360,\"name\":{\"735\":{}},\"comment\":{}}],[\"action\",{\"_index\":504,\"name\":{\"1307\":{}},\"comment\":{}}],[\"address\",{\"_index\":53,\"name\":{\"57\":{}},\"comment\":{}}],[\"affectednodes\",{\"_index\":793,\"name\":{\"2741\":{}},\"comment\":{}}],[\"age\",{\"_index\":540,\"name\":{\"1430\":{},\"1470\":{},\"1504\":{},\"1538\":{}},\"comment\":{}}],[\"agent\",{\"_index\":30,\"name\":{\"32\":{}},\"comment\":{}}],[\"allowtrustlineclawback\",{\"_index\":300,\"name\":{\"529\":{}},\"comment\":{}}],[\"alternatives\",{\"_index\":462,\"name\":{\"1148\":{},\"1180\":{},\"1304\":{}},\"comment\":{}}],[\"amendment\",{\"_index\":184,\"name\":{\"277\":{},\"2147\":{}},\"comment\":{}}],[\"amendment_blocked\",{\"_index\":537,\"name\":{\"1426\":{},\"1499\":{}},\"comment\":{}}],[\"amendments\",{\"_index\":105,\"name\":{\"125\":{},\"127\":{},\"1268\":{}},\"comment\":{}}],[\"amendments_id\",{\"_index\":104,\"name\":{\"124\":{}},\"comment\":{}}],[\"amm\",{\"_index\":107,\"name\":{\"133\":{},\"909\":{},\"1705\":{}},\"comment\":{}}],[\"amm_account\",{\"_index\":616,\"name\":{\"1697\":{}},\"comment\":{}}],[\"ammbid\",{\"_index\":666,\"name\":{\"1825\":{}},\"comment\":{}}],[\"ammcreate\",{\"_index\":680,\"name\":{\"1895\":{}},\"comment\":{}}],[\"ammdelete\",{\"_index\":669,\"name\":{\"1845\":{}},\"comment\":{}}],[\"ammdeposit\",{\"_index\":677,\"name\":{\"1874\":{}},\"comment\":{}}],[\"ammdepositflags\",{\"_index\":670,\"name\":{\"1862\":{}},\"comment\":{}}],[\"ammdepositflagsinterface\",{\"_index\":676,\"name\":{\"1868\":{}},\"comment\":{}}],[\"ammid\",{\"_index\":71,\"name\":{\"76\":{}},\"comment\":{}}],[\"amminforequest\",{\"_index\":615,\"name\":{\"1695\":{}},\"comment\":{}}],[\"amminforesponse\",{\"_index\":617,\"name\":{\"1702\":{}},\"comment\":{}}],[\"ammvote\",{\"_index\":681,\"name\":{\"1913\":{}},\"comment\":{}}],[\"ammwithdraw\",{\"_index\":686,\"name\":{\"1947\":{}},\"comment\":{}}],[\"ammwithdrawflags\",{\"_index\":682,\"name\":{\"1931\":{}},\"comment\":{}}],[\"ammwithdrawflagsinterface\",{\"_index\":685,\"name\":{\"1939\":{}},\"comment\":{}}],[\"amount\",{\"_index\":37,\"name\":{\"39\":{},\"221\":{},\"290\":{},\"337\":{},\"454\":{},\"1201\":{},\"1708\":{},\"1878\":{},\"1897\":{},\"1951\":{},\"1987\":{},\"2025\":{},\"2107\":{},\"2219\":{},\"2324\":{},\"2355\":{},\"2372\":{},\"2394\":{},\"2546\":{},\"2572\":{},\"2601\":{},\"2620\":{},\"2675\":{},\"2759\":{},\"2794\":{}},\"comment\":{}}],[\"amount2\",{\"_index\":618,\"name\":{\"1709\":{},\"1879\":{},\"1898\":{},\"1952\":{}},\"comment\":{}}],[\"api_version\",{\"_index\":254,\"name\":{\"435\":{},\"444\":{},\"472\":{},\"491\":{},\"497\":{},\"514\":{},\"537\":{},\"555\":{},\"576\":{},\"594\":{},\"622\":{},\"640\":{},\"651\":{},\"671\":{},\"686\":{},\"704\":{},\"715\":{},\"734\":{},\"750\":{},\"772\":{},\"782\":{},\"795\":{},\"807\":{},\"818\":{},\"850\":{},\"862\":{},\"866\":{},\"877\":{},\"885\":{},\"905\":{},\"940\":{},\"957\":{},\"963\":{},\"987\":{},\"993\":{},\"1008\":{},\"1013\":{},\"1029\":{},\"1038\":{},\"1048\":{},\"1056\":{},\"1094\":{},\"1100\":{},\"1119\":{},\"1130\":{},\"1135\":{},\"1144\":{},\"1162\":{},\"1174\":{},\"1195\":{},\"1206\":{},\"1217\":{},\"1228\":{},\"1237\":{},\"1335\":{},\"1344\":{},\"1352\":{},\"1379\":{},\"1384\":{},\"1402\":{},\"1407\":{},\"1416\":{},\"1420\":{},\"1489\":{},\"1493\":{},\"1553\":{},\"1568\":{},\"1580\":{},\"1584\":{},\"1595\":{},\"1604\":{},\"1609\":{},\"1623\":{},\"1628\":{},\"1642\":{},\"1647\":{},\"1658\":{},\"1669\":{},\"1688\":{},\"1701\":{},\"1732\":{}},\"comment\":{}}],[\"applied\",{\"_index\":422,\"name\":{\"975\":{}},\"comment\":{}}],[\"asfaccounttxnid\",{\"_index\":643,\"name\":{\"1760\":{}},\"comment\":{}}],[\"asfallowtrustlineclawback\",{\"_index\":653,\"name\":{\"1770\":{}},\"comment\":{}}],[\"asfauthorizednftokenminter\",{\"_index\":648,\"name\":{\"1765\":{}},\"comment\":{}}],[\"asfdefaultripple\",{\"_index\":646,\"name\":{\"1763\":{}},\"comment\":{}}],[\"asfdepositauth\",{\"_index\":647,\"name\":{\"1764\":{}},\"comment\":{}}],[\"asfdisablemaster\",{\"_index\":642,\"name\":{\"1759\":{}},\"comment\":{}}],[\"asfdisallowincomingcheck\",{\"_index\":650,\"name\":{\"1767\":{}},\"comment\":{}}],[\"asfdisallowincomingnftokenoffer\",{\"_index\":649,\"name\":{\"1766\":{}},\"comment\":{}}],[\"asfdisallowincomingpaychan\",{\"_index\":651,\"name\":{\"1768\":{}},\"comment\":{}}],[\"asfdisallowincomingtrustline\",{\"_index\":652,\"name\":{\"1769\":{}},\"comment\":{}}],[\"asfdisallowxrp\",{\"_index\":641,\"name\":{\"1758\":{}},\"comment\":{}}],[\"asfglobalfreeze\",{\"_index\":645,\"name\":{\"1762\":{}},\"comment\":{}}],[\"asfnofreeze\",{\"_index\":644,\"name\":{\"1761\":{}},\"comment\":{}}],[\"asfrequireauth\",{\"_index\":640,\"name\":{\"1757\":{}},\"comment\":{}}],[\"asfrequiredest\",{\"_index\":639,\"name\":{\"1756\":{}},\"comment\":{}}],[\"asset\",{\"_index\":108,\"name\":{\"136\":{},\"911\":{},\"1698\":{},\"1827\":{},\"1847\":{},\"1876\":{},\"1915\":{},\"1949\":{}},\"comment\":{}}],[\"asset2\",{\"_index\":109,\"name\":{\"137\":{},\"915\":{},\"1699\":{},\"1828\":{},\"1848\":{},\"1877\":{},\"1916\":{},\"1950\":{}},\"comment\":{}}],[\"asset2_frozen\",{\"_index\":620,\"name\":{\"1711\":{}},\"comment\":{}}],[\"asset_frozen\",{\"_index\":619,\"name\":{\"1710\":{}},\"comment\":{}}],[\"assets\",{\"_index\":370,\"name\":{\"761\":{}},\"comment\":{}}],[\"attestationrewardaccount\",{\"_index\":768,\"name\":{\"2547\":{},\"2573\":{}},\"comment\":{}}],[\"attestationsigneraccount\",{\"_index\":769,\"name\":{\"2548\":{},\"2574\":{}},\"comment\":{}}],[\"auction_slot\",{\"_index\":621,\"name\":{\"1712\":{}},\"comment\":{}}],[\"auctionslot\",{\"_index\":110,\"name\":{\"138\":{}},\"comment\":{}}],[\"auth_accounts\",{\"_index\":622,\"name\":{\"1715\":{}},\"comment\":{}}],[\"auth_change\",{\"_index\":316,\"name\":{\"564\":{},\"825\":{}},\"comment\":{}}],[\"auth_change_queued\",{\"_index\":311,\"name\":{\"558\":{}},\"comment\":{}}],[\"authaccount\",{\"_index\":819,\"name\":{\"2811\":{},\"2812\":{}},\"comment\":{}}],[\"authaccounts\",{\"_index\":111,\"name\":{\"141\":{},\"1831\":{}},\"comment\":{}}],[\"authorization\",{\"_index\":31,\"name\":{\"33\":{}},\"comment\":{}}],[\"authorize\",{\"_index\":134,\"name\":{\"185\":{},\"2073\":{}},\"comment\":{}}],[\"authorized\",{\"_index\":332,\"name\":{\"605\":{}},\"comment\":{}}],[\"autofill\",{\"_index\":16,\"name\":{\"16\":{}},\"comment\":{}}],[\"avg_time\",{\"_index\":588,\"name\":{\"1558\":{}},\"comment\":{}}],[\"balance\",{\"_index\":66,\"name\":{\"71\":{},\"338\":{},\"354\":{},\"455\":{},\"597\":{},\"2354\":{},\"2760\":{}},\"comment\":{}}],[\"balances\",{\"_index\":369,\"name\":{\"759\":{}},\"comment\":{}}],[\"base_fee\",{\"_index\":495,\"name\":{\"1269\":{},\"1360\":{},\"1505\":{},\"1539\":{}},\"comment\":{}}],[\"base_fee_xrp\",{\"_index\":541,\"name\":{\"1431\":{},\"1471\":{}},\"comment\":{}}],[\"basefee\",{\"_index\":156,\"name\":{\"241\":{},\"2411\":{}},\"comment\":{}}],[\"basefeedrops\",{\"_index\":161,\"name\":{\"246\":{},\"2430\":{}},\"comment\":{}}],[\"baserequest\",{\"_index\":251,\"name\":{\"432\":{}},\"comment\":{}}],[\"baseresponse\",{\"_index\":255,\"name\":{\"436\":{}},\"comment\":{}}],[\"basetransaction\",{\"_index\":628,\"name\":{\"1733\":{}},\"comment\":{}}],[\"bidmax\",{\"_index\":668,\"name\":{\"1830\":{}},\"comment\":{}}],[\"bidmin\",{\"_index\":667,\"name\":{\"1829\":{}},\"comment\":{}}],[\"binary\",{\"_index\":357,\"name\":{\"710\":{},\"803\":{},\"880\":{},\"919\":{},\"1034\":{},\"1664\":{}},\"comment\":{}}],[\"bookdirectory\",{\"_index\":204,\"name\":{\"323\":{},\"1070\":{}},\"comment\":{}}],[\"booknode\",{\"_index\":205,\"name\":{\"324\":{},\"1071\":{}},\"comment\":{}}],[\"bookoffer\",{\"_index\":441,\"name\":{\"1059\":{}},\"comment\":{}}],[\"bookoffercurrency\",{\"_index\":444,\"name\":{\"1077\":{}},\"comment\":{}}],[\"bookoffersrequest\",{\"_index\":439,\"name\":{\"1049\":{}},\"comment\":{}}],[\"bookoffersresponse\",{\"_index\":445,\"name\":{\"1080\":{}},\"comment\":{}}],[\"books\",{\"_index\":477,\"name\":{\"1223\":{},\"1333\":{}},\"comment\":{}}],[\"bookssnapshot\",{\"_index\":485,\"name\":{\"1245\":{}},\"comment\":{}}],[\"both\",{\"_index\":483,\"name\":{\"1243\":{},\"1348\":{}},\"comment\":{}}],[\"bridge\",{\"_index\":118,\"name\":{\"152\":{},\"936\":{}},\"comment\":{}}],[\"bridge_account\",{\"_index\":406,\"name\":{\"935\":{}},\"comment\":{}}],[\"broadcast\",{\"_index\":423,\"name\":{\"976\":{}},\"comment\":{}}],[\"build_version\",{\"_index\":538,\"name\":{\"1427\":{},\"1500\":{}},\"comment\":{}}],[\"buildversion\",{\"_index\":6,\"name\":{\"6\":{}},\"comment\":{}}],[\"burnednftokens\",{\"_index\":80,\"name\":{\"85\":{}},\"comment\":{}}],[\"cancel_after\",{\"_index\":272,\"name\":{\"462\":{}},\"comment\":{}}],[\"cancelafter\",{\"_index\":151,\"name\":{\"223\":{},\"344\":{},\"2109\":{},\"2376\":{}},\"comment\":{}}],[\"channel\",{\"_index\":266,\"name\":{\"452\":{},\"2353\":{},\"2393\":{}},\"comment\":{}}],[\"channel_id\",{\"_index\":267,\"name\":{\"456\":{},\"1202\":{}},\"comment\":{}}],[\"channels\",{\"_index\":279,\"name\":{\"479\":{}},\"comment\":{}}],[\"channelverifyrequest\",{\"_index\":470,\"name\":{\"1199\":{}},\"comment\":{}}],[\"channelverifyresponse\",{\"_index\":472,\"name\":{\"1207\":{}},\"comment\":{}}],[\"check\",{\"_index\":126,\"name\":{\"166\":{},\"922\":{}},\"comment\":{}}],[\"checkcancel\",{\"_index\":688,\"name\":{\"1968\":{}},\"comment\":{}}],[\"checkcash\",{\"_index\":690,\"name\":{\"1984\":{}},\"comment\":{}}],[\"checkcreate\",{\"_index\":692,\"name\":{\"2002\":{}},\"comment\":{}}],[\"checkid\",{\"_index\":689,\"name\":{\"1970\":{},\"1986\":{}},\"comment\":{}}],[\"classicaddress\",{\"_index\":51,\"name\":{\"55\":{}},\"comment\":{}}],[\"clawback\",{\"_index\":693,\"name\":{\"2022\":{}},\"comment\":{}}],[\"clearflag\",{\"_index\":663,\"name\":{\"1788\":{}},\"comment\":{}}],[\"client\",{\"_index\":0,\"name\":{\"0\":{}},\"comment\":{}}],[\"clientoptions\",{\"_index\":25,\"name\":{\"25\":{}},\"comment\":{}}],[\"close_flags\",{\"_index\":167,\"name\":{\"252\":{},\"836\":{}},\"comment\":{}}],[\"close_time\",{\"_index\":168,\"name\":{\"253\":{},\"837\":{},\"1540\":{}},\"comment\":{}}],[\"close_time_human\",{\"_index\":169,\"name\":{\"254\":{},\"838\":{}},\"comment\":{}}],[\"close_time_resolution\",{\"_index\":170,\"name\":{\"255\":{},\"839\":{}},\"comment\":{}}],[\"closed\",{\"_index\":171,\"name\":{\"256\":{},\"832\":{},\"1154\":{}},\"comment\":{}}],[\"closed_ledger\",{\"_index\":539,\"name\":{\"1428\":{},\"1502\":{}},\"comment\":{}}],[\"closetime\",{\"_index\":185,\"name\":{\"278\":{}},\"comment\":{}}],[\"command\",{\"_index\":253,\"name\":{\"434\":{},\"466\":{},\"493\":{},\"531\":{},\"570\":{},\"617\":{},\"644\":{},\"680\":{},\"706\":{},\"745\":{},\"774\":{},\"797\":{},\"848\":{},\"864\":{},\"879\":{},\"908\":{},\"959\":{},\"989\":{},\"1010\":{},\"1031\":{},\"1050\":{},\"1096\":{},\"1128\":{},\"1133\":{},\"1142\":{},\"1167\":{},\"1200\":{},\"1219\":{},\"1329\":{},\"1350\":{},\"1381\":{},\"1404\":{},\"1418\":{},\"1491\":{},\"1566\":{},\"1582\":{},\"1606\":{},\"1625\":{},\"1644\":{},\"1660\":{},\"1696\":{}},\"comment\":{}}],[\"complete_ledgers\",{\"_index\":544,\"name\":{\"1436\":{},\"1501\":{}},\"comment\":{}}],[\"condition\",{\"_index\":150,\"name\":{\"222\":{},\"2111\":{},\"2130\":{}},\"comment\":{}}],[\"connect\",{\"_index\":13,\"name\":{\"13\":{}},\"comment\":{}}],[\"connection\",{\"_index\":2,\"name\":{\"2\":{}},\"comment\":{}}],[\"connectionerror\",{\"_index\":871,\"name\":{\"2896\":{}},\"comment\":{}}],[\"connectiontimeout\",{\"_index\":32,\"name\":{\"34\":{}},\"comment\":{}}],[\"consensus\",{\"_index\":508,\"name\":{\"1327\":{}},\"comment\":{}}],[\"consensusstream\",{\"_index\":507,\"name\":{\"1325\":{}},\"comment\":{}}],[\"constructor\",{\"_index\":1,\"name\":{\"1\":{},\"52\":{},\"2883\":{},\"2890\":{},\"2897\":{},\"2904\":{},\"2911\":{},\"2918\":{},\"2925\":{},\"2932\":{},\"2939\":{},\"2946\":{},\"2953\":{},\"2960\":{}},\"comment\":{}}],[\"converge_time\",{\"_index\":581,\"name\":{\"1514\":{}},\"comment\":{}}],[\"converge_time_s\",{\"_index\":549,\"name\":{\"1442\":{}},\"comment\":{}}],[\"converthextostring\",{\"_index\":856,\"name\":{\"2866\":{}},\"comment\":{}}],[\"convertstringtohex\",{\"_index\":855,\"name\":{\"2865\":{}},\"comment\":{}}],[\"cookie\",{\"_index\":496,\"name\":{\"1270\":{}},\"comment\":{}}],[\"count\",{\"_index\":578,\"name\":{\"1480\":{}},\"comment\":{}}],[\"creatednode\",{\"_index\":785,\"name\":{\"2714\":{},\"2715\":{}},\"comment\":{}}],[\"ctid\",{\"_index\":434,\"name\":{\"1033\":{}},\"comment\":{}}],[\"currency\",{\"_index\":326,\"name\":{\"598\":{},\"742\":{},\"913\":{},\"917\":{},\"932\":{},\"1078\":{},\"1197\":{},\"2749\":{},\"2752\":{},\"2754\":{},\"2757\":{},\"2761\":{},\"2779\":{}},\"comment\":{}}],[\"current_ledger_size\",{\"_index\":514,\"name\":{\"1356\":{}},\"comment\":{}}],[\"current_queue_size\",{\"_index\":515,\"name\":{\"1357\":{}},\"comment\":{}}],[\"data\",{\"_index\":146,\"name\":{\"209\":{},\"890\":{},\"1271\":{},\"2055\":{},\"2886\":{},\"2893\":{},\"2900\":{},\"2907\":{},\"2914\":{},\"2921\":{},\"2928\":{},\"2935\":{},\"2942\":{},\"2949\":{},\"2956\":{},\"2963\":{}},\"comment\":{}}],[\"date\",{\"_index\":505,\"name\":{\"1308\":{},\"2789\":{}},\"comment\":{}}],[\"decimaltoquality\",{\"_index\":833,\"name\":{\"2829\":{}},\"comment\":{}}],[\"decimaltotransferrate\",{\"_index\":835,\"name\":{\"2831\":{}},\"comment\":{}}],[\"decode\",{\"_index\":858,\"name\":{\"2868\":{}},\"comment\":{}}],[\"defaultripple\",{\"_index\":287,\"name\":{\"516\":{}},\"comment\":{}}],[\"deletednode\",{\"_index\":791,\"name\":{\"2732\":{},\"2733\":{}},\"comment\":{}}],[\"deletion_blockers_only\",{\"_index\":344,\"name\":{\"647\":{}},\"comment\":{}}],[\"delivered_amount\",{\"_index\":795,\"name\":{\"2743\":{}},\"comment\":{}}],[\"deliveredamount\",{\"_index\":794,\"name\":{\"2742\":{}},\"comment\":{}}],[\"delivermin\",{\"_index\":691,\"name\":{\"1988\":{},\"2330\":{}},\"comment\":{}}],[\"deposit_authorized\",{\"_index\":449,\"name\":{\"1106\":{}},\"comment\":{}}],[\"deposit_preauth\",{\"_index\":401,\"name\":{\"923\":{}},\"comment\":{}}],[\"depositauth\",{\"_index\":288,\"name\":{\"517\":{}},\"comment\":{}}],[\"depositauthorizedrequest\",{\"_index\":446,\"name\":{\"1095\":{}},\"comment\":{}}],[\"depositauthorizedresponse\",{\"_index\":448,\"name\":{\"1103\":{}},\"comment\":{}}],[\"depositpreauth\",{\"_index\":133,\"name\":{\"182\":{},\"2071\":{}},\"comment\":{}}],[\"derivewallet\",{\"_index\":48,\"name\":{\"51\":{}},\"comment\":{}}],[\"derivexaddress\",{\"_index\":852,\"name\":{\"2862\":{}},\"comment\":{}}],[\"destination\",{\"_index\":127,\"name\":{\"169\":{},\"220\":{},\"291\":{},\"336\":{},\"1810\":{},\"2004\":{},\"2108\":{},\"2222\":{},\"2325\":{},\"2373\":{},\"2549\":{},\"2575\":{},\"2599\":{},\"2674\":{},\"2798\":{}},\"comment\":{}}],[\"destination_account\",{\"_index\":268,\"name\":{\"457\":{},\"468\":{},\"1098\":{},\"1107\":{},\"1124\":{},\"1149\":{},\"1169\":{},\"1181\":{},\"1299\":{}},\"comment\":{}}],[\"destination_amount\",{\"_index\":453,\"name\":{\"1125\":{},\"1139\":{},\"1150\":{},\"1170\":{},\"1183\":{},\"1300\":{}},\"comment\":{}}],[\"destination_currencies\",{\"_index\":468,\"name\":{\"1182\":{}},\"comment\":{}}],[\"destination_tag\",{\"_index\":274,\"name\":{\"464\":{}},\"comment\":{}}],[\"destinationnode\",{\"_index\":129,\"name\":{\"176\":{},\"229\":{},\"347\":{}},\"comment\":{}}],[\"destinationtag\",{\"_index\":130,\"name\":{\"177\":{},\"227\":{},\"346\":{},\"1811\":{},\"2006\":{},\"2112\":{},\"2326\":{},\"2377\":{},\"2600\":{}},\"comment\":{}}],[\"details\",{\"_index\":265,\"name\":{\"450\":{},\"1388\":{}},\"comment\":{}}],[\"did\",{\"_index\":145,\"name\":{\"206\":{},\"924\":{}},\"comment\":{}}],[\"diddelete\",{\"_index\":694,\"name\":{\"2038\":{}},\"comment\":{}}],[\"diddocument\",{\"_index\":147,\"name\":{\"210\":{},\"2056\":{}},\"comment\":{}}],[\"didset\",{\"_index\":695,\"name\":{\"2053\":{}},\"comment\":{}}],[\"directory\",{\"_index\":402,\"name\":{\"925\":{}},\"comment\":{}}],[\"directorynode\",{\"_index\":135,\"name\":{\"191\":{}},\"comment\":{}}],[\"disabledvalidators\",{\"_index\":188,\"name\":{\"282\":{}},\"comment\":{}}],[\"disablemasterkey\",{\"_index\":289,\"name\":{\"518\":{}},\"comment\":{}}],[\"disallowincomingcheck\",{\"_index\":290,\"name\":{\"519\":{}},\"comment\":{}}],[\"disallowincomingnftokenoffer\",{\"_index\":291,\"name\":{\"520\":{}},\"comment\":{}}],[\"disallowincomingpaychan\",{\"_index\":292,\"name\":{\"521\":{}},\"comment\":{}}],[\"disallowincomingtrustline\",{\"_index\":293,\"name\":{\"522\":{}},\"comment\":{}}],[\"disallowincomingxrp\",{\"_index\":294,\"name\":{\"523\":{}},\"comment\":{}}],[\"disconnect\",{\"_index\":14,\"name\":{\"14\":{}},\"comment\":{}}],[\"disconnectederror\",{\"_index\":874,\"name\":{\"2917\":{}},\"comment\":{}}],[\"discounted_fee\",{\"_index\":623,\"name\":{\"1716\":{}},\"comment\":{}}],[\"discountedfee\",{\"_index\":112,\"name\":{\"142\":{}},\"comment\":{}}],[\"domain\",{\"_index\":72,\"name\":{\"77\":{},\"1390\":{},\"1789\":{}},\"comment\":{}}],[\"drops\",{\"_index\":516,\"name\":{\"1358\":{}},\"comment\":{}}],[\"dropstoxrp\",{\"_index\":825,\"name\":{\"2821\":{}},\"comment\":{}}],[\"duration_us\",{\"_index\":593,\"name\":{\"1563\":{}},\"comment\":{}}],[\"ecdsa\",{\"_index\":33,\"name\":{\"35\":{}},\"comment\":{}}],[\"ed25519\",{\"_index\":34,\"name\":{\"36\":{}},\"comment\":{}}],[\"emailhash\",{\"_index\":73,\"name\":{\"78\":{},\"1790\":{}},\"comment\":{}}],[\"enableamendment\",{\"_index\":702,\"name\":{\"2145\":{}},\"comment\":{}}],[\"enableamendmentflags\",{\"_index\":704,\"name\":{\"2162\":{}},\"comment\":{}}],[\"encode\",{\"_index\":857,\"name\":{\"2867\":{}},\"comment\":{}}],[\"encodeformultisigning\",{\"_index\":859,\"name\":{\"2869\":{}},\"comment\":{}}],[\"encodeforsigning\",{\"_index\":860,\"name\":{\"2870\":{}},\"comment\":{}}],[\"encodeforsigningclaim\",{\"_index\":861,\"name\":{\"2871\":{}},\"comment\":{}}],[\"engine_result\",{\"_index\":415,\"name\":{\"967\":{},\"997\":{},\"1286\":{},\"1316\":{}},\"comment\":{}}],[\"engine_result_code\",{\"_index\":416,\"name\":{\"968\":{},\"998\":{},\"1287\":{},\"1317\":{}},\"comment\":{}}],[\"engine_result_message\",{\"_index\":417,\"name\":{\"969\":{},\"999\":{},\"1288\":{},\"1318\":{}},\"comment\":{}}],[\"ephemeral_key\",{\"_index\":529,\"name\":{\"1391\":{}},\"comment\":{}}],[\"eprice\",{\"_index\":678,\"name\":{\"1880\":{},\"1953\":{}},\"comment\":{}}],[\"error\",{\"_index\":602,\"name\":{\"1600\":{}},\"comment\":{}}],[\"error_code\",{\"_index\":603,\"name\":{\"1601\":{}},\"comment\":{}}],[\"error_message\",{\"_index\":604,\"name\":{\"1602\":{}},\"comment\":{}}],[\"errorresponse\",{\"_index\":601,\"name\":{\"1596\":{}},\"comment\":{}}],[\"escrow\",{\"_index\":149,\"name\":{\"217\":{},\"926\":{}},\"comment\":{}}],[\"escrowcancel\",{\"_index\":697,\"name\":{\"2088\":{}},\"comment\":{}}],[\"escrowcreate\",{\"_index\":699,\"name\":{\"2105\":{}},\"comment\":{}}],[\"escrowfinish\",{\"_index\":700,\"name\":{\"2126\":{}},\"comment\":{}}],[\"expand\",{\"_index\":378,\"name\":{\"801\":{}},\"comment\":{}}],[\"expected_ledger_size\",{\"_index\":520,\"name\":{\"1364\":{}},\"comment\":{}}],[\"expiration\",{\"_index\":113,\"name\":{\"143\":{},\"178\":{},\"292\":{},\"326\":{},\"343\":{},\"461\":{},\"678\":{},\"1073\":{},\"1481\":{},\"1717\":{},\"2007\":{},\"2221\":{},\"2298\":{},\"2395\":{},\"2799\":{}},\"comment\":{}}],[\"fail_hard\",{\"_index\":413,\"name\":{\"961\":{},\"991\":{}},\"comment\":{}}],[\"faucethost\",{\"_index\":38,\"name\":{\"40\":{}},\"comment\":{}}],[\"faucetpath\",{\"_index\":39,\"name\":{\"41\":{}},\"comment\":{}}],[\"fee\",{\"_index\":317,\"name\":{\"565\":{},\"826\":{},\"1736\":{},\"1797\":{},\"1813\":{},\"1833\":{},\"1850\":{},\"1883\":{},\"1901\":{},\"1919\":{},\"1956\":{},\"1972\":{},\"1990\":{},\"2010\":{},\"2026\":{},\"2041\":{},\"2059\":{},\"2076\":{},\"2093\":{},\"2114\":{},\"2133\":{},\"2150\":{},\"2171\":{},\"2188\":{},\"2204\":{},\"2225\":{},\"2248\":{},\"2273\":{},\"2303\":{},\"2333\":{},\"2359\":{},\"2379\":{},\"2397\":{},\"2417\":{},\"2435\":{},\"2451\":{},\"2468\":{},\"2484\":{},\"2515\":{},\"2532\":{},\"2558\":{},\"2583\":{},\"2603\":{},\"2622\":{},\"2640\":{},\"2658\":{},\"2677\":{},\"2696\":{}},\"comment\":{}}],[\"fee_base\",{\"_index\":487,\"name\":{\"1248\":{},\"1258\":{}},\"comment\":{}}],[\"fee_level\",{\"_index\":318,\"name\":{\"566\":{},\"827\":{}},\"comment\":{}}],[\"fee_ref\",{\"_index\":488,\"name\":{\"1249\":{},\"1259\":{}},\"comment\":{}}],[\"fee_settings_id\",{\"_index\":153,\"name\":{\"233\":{}},\"comment\":{}}],[\"feecushion\",{\"_index\":3,\"name\":{\"3\":{},\"26\":{}},\"comment\":{}}],[\"feerequest\",{\"_index\":512,\"name\":{\"1349\":{}},\"comment\":{}}],[\"feeresponse\",{\"_index\":513,\"name\":{\"1353\":{}},\"comment\":{}}],[\"feesettings\",{\"_index\":154,\"name\":{\"234\":{}},\"comment\":{}}],[\"feesettingspostamendmentfields\",{\"_index\":160,\"name\":{\"245\":{}},\"comment\":{}}],[\"feesettingspreamendmentfields\",{\"_index\":155,\"name\":{\"240\":{}},\"comment\":{}}],[\"finalfields\",{\"_index\":789,\"name\":{\"2726\":{},\"2737\":{}},\"comment\":{}}],[\"finishafter\",{\"_index\":152,\"name\":{\"224\":{},\"2110\":{}},\"comment\":{}}],[\"firstnftsequence\",{\"_index\":81,\"name\":{\"86\":{}},\"comment\":{}}],[\"flags\",{\"_index\":67,\"name\":{\"72\":{},\"129\":{},\"148\":{},\"161\":{},\"170\":{},\"186\":{},\"193\":{},\"212\":{},\"225\":{},\"236\":{},\"270\":{},\"293\":{},\"311\":{},\"318\":{},\"342\":{},\"353\":{},\"377\":{},\"390\":{},\"404\":{},\"415\":{},\"610\":{},\"673\":{},\"1065\":{},\"1272\":{},\"1739\":{},\"1787\":{},\"1816\":{},\"1836\":{},\"1853\":{},\"1886\":{},\"1904\":{},\"1922\":{},\"1959\":{},\"1975\":{},\"1993\":{},\"2013\":{},\"2029\":{},\"2044\":{},\"2062\":{},\"2079\":{},\"2096\":{},\"2117\":{},\"2136\":{},\"2153\":{},\"2174\":{},\"2191\":{},\"2207\":{},\"2223\":{},\"2246\":{},\"2276\":{},\"2297\":{},\"2331\":{},\"2352\":{},\"2382\":{},\"2400\":{},\"2420\":{},\"2438\":{},\"2454\":{},\"2471\":{},\"2487\":{},\"2513\":{},\"2535\":{},\"2561\":{},\"2586\":{},\"2606\":{},\"2625\":{},\"2643\":{},\"2661\":{},\"2680\":{},\"2694\":{},\"2795\":{},\"2805\":{},\"2876\":{}},\"comment\":{}}],[\"forward\",{\"_index\":358,\"name\":{\"711\":{},\"1665\":{}},\"comment\":{}}],[\"forwarded\",{\"_index\":261,\"name\":{\"443\":{},\"490\":{},\"513\":{},\"554\":{},\"593\":{},\"639\":{},\"670\":{},\"703\":{},\"733\":{},\"771\":{},\"794\":{},\"817\":{},\"861\":{},\"876\":{},\"904\":{},\"956\":{},\"986\":{},\"1007\":{},\"1028\":{},\"1047\":{},\"1093\":{},\"1118\":{},\"1161\":{},\"1194\":{},\"1216\":{},\"1236\":{},\"1343\":{},\"1378\":{},\"1401\":{},\"1415\":{},\"1488\":{},\"1552\":{},\"1579\":{},\"1594\":{},\"1622\":{},\"1641\":{},\"1657\":{},\"1687\":{},\"1731\":{}},\"comment\":{}}],[\"freeze\",{\"_index\":334,\"name\":{\"607\":{}},\"comment\":{}}],[\"freeze_peer\",{\"_index\":335,\"name\":{\"608\":{}},\"comment\":{}}],[\"fromentropy\",{\"_index\":45,\"name\":{\"48\":{}},\"comment\":{}}],[\"frommnemonic\",{\"_index\":46,\"name\":{\"49\":{}},\"comment\":{}}],[\"fromrfc1751mnemonic\",{\"_index\":47,\"name\":{\"50\":{}},\"comment\":{}}],[\"fromsecret\",{\"_index\":44,\"name\":{\"46\":{}},\"comment\":{}}],[\"fromseed\",{\"_index\":43,\"name\":{\"45\":{}},\"comment\":{}}],[\"fulfillment\",{\"_index\":701,\"name\":{\"2131\":{}},\"comment\":{}}],[\"full\",{\"_index\":376,\"name\":{\"798\":{},\"1273\":{}},\"comment\":{}}],[\"full_reply\",{\"_index\":463,\"name\":{\"1152\":{},\"1184\":{},\"1301\":{}},\"comment\":{}}],[\"fundingoptions\",{\"_index\":36,\"name\":{\"38\":{}},\"comment\":{}}],[\"fundwallet\",{\"_index\":24,\"name\":{\"24\":{}},\"comment\":{}}],[\"gatewaybalance\",{\"_index\":363,\"name\":{\"741\":{}},\"comment\":{}}],[\"gatewaybalancesrequest\",{\"_index\":365,\"name\":{\"744\":{}},\"comment\":{}}],[\"gatewaybalancesresponse\",{\"_index\":367,\"name\":{\"753\":{}},\"comment\":{}}],[\"generate\",{\"_index\":42,\"name\":{\"44\":{}},\"comment\":{}}],[\"getbalancechanges\",{\"_index\":824,\"name\":{\"2820\":{}},\"comment\":{}}],[\"getbalances\",{\"_index\":21,\"name\":{\"21\":{}},\"comment\":{}}],[\"getledgerindex\",{\"_index\":23,\"name\":{\"23\":{}},\"comment\":{}}],[\"getnftokenid\",{\"_index\":862,\"name\":{\"2872\":{}},\"comment\":{}}],[\"getorderbook\",{\"_index\":22,\"name\":{\"22\":{}},\"comment\":{}}],[\"getserverinfo\",{\"_index\":12,\"name\":{\"12\":{}},\"comment\":{}}],[\"getxaddress\",{\"_index\":58,\"name\":{\"63\":{}},\"comment\":{}}],[\"getxchainclaimid\",{\"_index\":865,\"name\":{\"2881\":{}},\"comment\":{}}],[\"getxrpbalance\",{\"_index\":20,\"name\":{\"20\":{}},\"comment\":{}}],[\"globalfreeze\",{\"_index\":295,\"name\":{\"524\":{}},\"comment\":{}}],[\"hash\",{\"_index\":56,\"name\":{\"61\":{},\"1405\":{},\"1432\":{},\"1472\":{},\"1506\":{},\"1541\":{},\"2790\":{}},\"comment\":{}}],[\"hashaccountroot\",{\"_index\":842,\"name\":{\"2842\":{}},\"comment\":{}}],[\"hashes\",{\"_index\":182,\"name\":{\"269\":{},\"2836\":{}},\"comment\":{}}],[\"hashescrow\",{\"_index\":850,\"name\":{\"2858\":{}},\"comment\":{}}],[\"hashledger\",{\"_index\":848,\"name\":{\"2854\":{}},\"comment\":{}}],[\"hashledgerheader\",{\"_index\":849,\"name\":{\"2856\":{}},\"comment\":{}}],[\"hashofferid\",{\"_index\":844,\"name\":{\"2846\":{}},\"comment\":{}}],[\"hashpaymentchannel\",{\"_index\":851,\"name\":{\"2860\":{}},\"comment\":{}}],[\"hashsignedtx\",{\"_index\":840,\"name\":{\"2838\":{}},\"comment\":{}}],[\"hashsignerlistid\",{\"_index\":843,\"name\":{\"2844\":{}},\"comment\":{}}],[\"hashstatetree\",{\"_index\":847,\"name\":{\"2852\":{}},\"comment\":{}}],[\"hashtrustline\",{\"_index\":845,\"name\":{\"2848\":{}},\"comment\":{}}],[\"hashtx\",{\"_index\":841,\"name\":{\"2840\":{}},\"comment\":{}}],[\"hashtxtree\",{\"_index\":846,\"name\":{\"2850\":{}},\"comment\":{}}],[\"hasnextpage\",{\"_index\":827,\"name\":{\"2823\":{}},\"comment\":{}}],[\"headers\",{\"_index\":28,\"name\":{\"30\":{}},\"comment\":{}}],[\"highest_sequence\",{\"_index\":313,\"name\":{\"560\":{}},\"comment\":{}}],[\"highlimit\",{\"_index\":213,\"name\":{\"356\":{}},\"comment\":{}}],[\"highnode\",{\"_index\":215,\"name\":{\"358\":{}},\"comment\":{}}],[\"highqualityin\",{\"_index\":218,\"name\":{\"361\":{}},\"comment\":{}}],[\"highqualityout\",{\"_index\":219,\"name\":{\"362\":{}},\"comment\":{}}],[\"hostid\",{\"_index\":545,\"name\":{\"1437\":{}},\"comment\":{}}],[\"hotwallet\",{\"_index\":366,\"name\":{\"748\":{}},\"comment\":{}}],[\"id\",{\"_index\":252,\"name\":{\"433\":{},\"437\":{},\"448\":{},\"471\":{},\"485\":{},\"496\":{},\"508\":{},\"536\":{},\"549\":{},\"575\":{},\"588\":{},\"621\":{},\"634\":{},\"650\":{},\"665\":{},\"685\":{},\"698\":{},\"714\":{},\"728\":{},\"749\":{},\"766\":{},\"781\":{},\"789\":{},\"806\":{},\"812\":{},\"849\":{},\"856\":{},\"865\":{},\"871\":{},\"884\":{},\"899\":{},\"939\":{},\"951\":{},\"962\":{},\"981\":{},\"992\":{},\"1002\":{},\"1012\":{},\"1023\":{},\"1037\":{},\"1042\":{},\"1055\":{},\"1088\":{},\"1099\":{},\"1113\":{},\"1129\":{},\"1134\":{},\"1143\":{},\"1153\":{},\"1156\":{},\"1173\":{},\"1185\":{},\"1189\":{},\"1205\":{},\"1211\":{},\"1227\":{},\"1231\":{},\"1302\":{},\"1334\":{},\"1338\":{},\"1351\":{},\"1373\":{},\"1383\":{},\"1396\":{},\"1406\":{},\"1410\":{},\"1419\":{},\"1483\":{},\"1492\":{},\"1547\":{},\"1567\":{},\"1574\":{},\"1583\":{},\"1589\":{},\"1597\":{},\"1608\":{},\"1617\":{},\"1627\":{},\"1636\":{},\"1646\":{},\"1652\":{},\"1668\":{},\"1682\":{},\"1700\":{},\"1726\":{}},\"comment\":{}}],[\"in_progress\",{\"_index\":589,\"name\":{\"1559\":{}},\"comment\":{}}],[\"index\",{\"_index\":84,\"name\":{\"89\":{},\"130\":{},\"149\":{},\"163\":{},\"181\":{},\"188\":{},\"203\":{},\"214\":{},\"230\":{},\"237\":{},\"271\":{},\"285\":{},\"297\":{},\"305\":{},\"327\":{},\"348\":{},\"363\":{},\"382\":{},\"393\":{},\"406\":{},\"417\":{},\"920\":{},\"946\":{},\"1074\":{}},\"comment\":{}}],[\"indexes\",{\"_index\":137,\"name\":{\"195\":{}},\"comment\":{}}],[\"indexnext\",{\"_index\":138,\"name\":{\"196\":{}},\"comment\":{}}],[\"indexprevious\",{\"_index\":139,\"name\":{\"197\":{}},\"comment\":{}}],[\"info\",{\"_index\":536,\"name\":{\"1424\":{}},\"comment\":{}}],[\"inledger\",{\"_index\":813,\"name\":{\"2792\":{}},\"comment\":{}}],[\"inspect\",{\"_index\":869,\"name\":{\"2888\":{},\"2895\":{},\"2902\":{},\"2909\":{},\"2916\":{},\"2923\":{},\"2930\":{},\"2937\":{},\"2944\":{},\"2951\":{},\"2958\":{},\"2965\":{}},\"comment\":{}}],[\"invoiceid\",{\"_index\":131,\"name\":{\"179\":{},\"2008\":{},\"2327\":{}},\"comment\":{}}],[\"io_latency_ms\",{\"_index\":546,\"name\":{\"1438\":{},\"1510\":{}},\"comment\":{}}],[\"is_burned\",{\"_index\":816,\"name\":{\"2804\":{}},\"comment\":{}}],[\"isconnected\",{\"_index\":15,\"name\":{\"15\":{}},\"comment\":{}}],[\"iscreatednode\",{\"_index\":782,\"name\":{\"2711\":{}},\"comment\":{}}],[\"isdeletednode\",{\"_index\":784,\"name\":{\"2713\":{}},\"comment\":{}}],[\"ismodifiednode\",{\"_index\":783,\"name\":{\"2712\":{}},\"comment\":{}}],[\"isotimetorippletime\",{\"_index\":829,\"name\":{\"2825\":{}},\"comment\":{}}],[\"issuedcurrency\",{\"_index\":800,\"name\":{\"2751\":{}},\"comment\":{}}],[\"issuedcurrencyamount\",{\"_index\":801,\"name\":{\"2755\":{}},\"comment\":{}}],[\"issuer\",{\"_index\":198,\"name\":{\"312\":{},\"611\":{},\"914\":{},\"918\":{},\"1079\":{},\"1198\":{},\"2243\":{},\"2750\":{},\"2753\":{},\"2758\":{},\"2762\":{},\"2780\":{},\"2807\":{},\"2878\":{}},\"comment\":{}}],[\"issuingchaindoor\",{\"_index\":822,\"name\":{\"2818\":{}},\"comment\":{}}],[\"issuingchainissue\",{\"_index\":823,\"name\":{\"2819\":{}},\"comment\":{}}],[\"isvalidaddress\",{\"_index\":839,\"name\":{\"2835\":{}},\"comment\":{}}],[\"isvalidsecret\",{\"_index\":838,\"name\":{\"2834\":{}},\"comment\":{}}],[\"job_type\",{\"_index\":585,\"name\":{\"1555\":{}},\"comment\":{}}],[\"job_types\",{\"_index\":552,\"name\":{\"1446\":{},\"1518\":{}},\"comment\":{}}],[\"jobtype\",{\"_index\":584,\"name\":{\"1554\":{}},\"comment\":{}}],[\"jq_trans_overflow\",{\"_index\":547,\"name\":{\"1439\":{},\"1511\":{}},\"comment\":{}}],[\"kept\",{\"_index\":424,\"name\":{\"977\":{}},\"comment\":{}}],[\"keytorfc1751mnemonic\",{\"_index\":60,\"name\":{\"65\":{}},\"comment\":{}}],[\"last_close\",{\"_index\":548,\"name\":{\"1440\":{},\"1512\":{}},\"comment\":{}}],[\"last_result\",{\"_index\":384,\"name\":{\"824\":{}},\"comment\":{}}],[\"lastledgersequence\",{\"_index\":181,\"name\":{\"268\":{},\"1740\":{},\"1800\":{},\"1817\":{},\"1837\":{},\"1854\":{},\"1887\":{},\"1905\":{},\"1923\":{},\"1960\":{},\"1976\":{},\"1994\":{},\"2014\":{},\"2030\":{},\"2045\":{},\"2063\":{},\"2080\":{},\"2097\":{},\"2118\":{},\"2137\":{},\"2154\":{},\"2175\":{},\"2192\":{},\"2208\":{},\"2228\":{},\"2251\":{},\"2277\":{},\"2306\":{},\"2336\":{},\"2362\":{},\"2383\":{},\"2401\":{},\"2421\":{},\"2439\":{},\"2455\":{},\"2472\":{},\"2488\":{},\"2518\":{},\"2536\":{},\"2562\":{},\"2587\":{},\"2607\":{},\"2626\":{},\"2644\":{},\"2662\":{},\"2681\":{},\"2699\":{}},\"comment\":{}}],[\"ledger\",{\"_index\":164,\"name\":{\"249\":{}},\"comment\":{}}],[\"ledger_current_index\",{\"_index\":307,\"name\":{\"545\":{},\"584\":{},\"630\":{},\"661\":{},\"694\":{},\"764\":{},\"786\":{},\"870\":{},\"947\":{},\"1083\":{},\"1110\":{},\"1186\":{},\"1289\":{},\"1319\":{},\"1365\":{}},\"comment\":{}}],[\"ledger_hash\",{\"_index\":172,\"name\":{\"257\":{},\"473\":{},\"480\":{},\"498\":{},\"503\":{},\"538\":{},\"577\":{},\"586\":{},\"623\":{},\"652\":{},\"659\":{},\"687\":{},\"696\":{},\"716\":{},\"751\":{},\"763\":{},\"779\":{},\"808\":{},\"833\":{},\"854\":{},\"886\":{},\"895\":{},\"941\":{},\"1014\":{},\"1019\":{},\"1057\":{},\"1085\":{},\"1101\":{},\"1108\":{},\"1175\":{},\"1250\":{},\"1260\":{},\"1274\":{},\"1290\":{},\"1309\":{},\"1320\":{},\"1610\":{},\"1629\":{},\"1648\":{},\"1670\":{},\"1723\":{}},\"comment\":{}}],[\"ledger_index\",{\"_index\":173,\"name\":{\"258\":{},\"474\":{},\"481\":{},\"499\":{},\"504\":{},\"539\":{},\"546\":{},\"578\":{},\"585\":{},\"624\":{},\"653\":{},\"660\":{},\"688\":{},\"695\":{},\"717\":{},\"736\":{},\"752\":{},\"765\":{},\"780\":{},\"809\":{},\"834\":{},\"855\":{},\"887\":{},\"894\":{},\"942\":{},\"1015\":{},\"1020\":{},\"1058\":{},\"1084\":{},\"1102\":{},\"1109\":{},\"1176\":{},\"1251\":{},\"1261\":{},\"1275\":{},\"1291\":{},\"1310\":{},\"1321\":{},\"1611\":{},\"1630\":{},\"1649\":{},\"1671\":{},\"1690\":{},\"1724\":{},\"2791\":{},\"2802\":{}},\"comment\":{}}],[\"ledger_index_max\",{\"_index\":356,\"name\":{\"709\":{},\"723\":{},\"1311\":{},\"1663\":{},\"1677\":{}},\"comment\":{}}],[\"ledger_index_min\",{\"_index\":355,\"name\":{\"708\":{},\"722\":{},\"1312\":{},\"1662\":{},\"1676\":{}},\"comment\":{}}],[\"ledger_time\",{\"_index\":489,\"name\":{\"1252\":{},\"1262\":{}},\"comment\":{}}],[\"ledgerbinary\",{\"_index\":385,\"name\":{\"829\":{}},\"comment\":{}}],[\"ledgerclosedrequest\",{\"_index\":389,\"name\":{\"847\":{}},\"comment\":{}}],[\"ledgerclosedresponse\",{\"_index\":390,\"name\":{\"851\":{}},\"comment\":{}}],[\"ledgercurrentrequest\",{\"_index\":391,\"name\":{\"863\":{}},\"comment\":{}}],[\"ledgercurrentresponse\",{\"_index\":392,\"name\":{\"867\":{}},\"comment\":{}}],[\"ledgerdatabinaryledgerentry\",{\"_index\":395,\"name\":{\"889\":{}},\"comment\":{}}],[\"ledgerdatalabeledledgerentry\",{\"_index\":394,\"name\":{\"888\":{}},\"comment\":{}}],[\"ledgerdataledgerstate\",{\"_index\":398,\"name\":{\"906\":{}},\"comment\":{}}],[\"ledgerdatarequest\",{\"_index\":393,\"name\":{\"878\":{}},\"comment\":{}}],[\"ledgerdataresponse\",{\"_index\":396,\"name\":{\"891\":{}},\"comment\":{}}],[\"ledgerentry\",{\"_index\":62,\"name\":{\"67\":{},\"265\":{}},\"comment\":{}}],[\"ledgerentryfilter\",{\"_index\":179,\"name\":{\"264\":{}},\"comment\":{}}],[\"ledgerentryrequest\",{\"_index\":399,\"name\":{\"907\":{}},\"comment\":{}}],[\"ledgerentryresponse\",{\"_index\":409,\"name\":{\"943\":{}},\"comment\":{}}],[\"ledgerentrytype\",{\"_index\":64,\"name\":{\"69\":{},\"126\":{},\"134\":{},\"153\":{},\"167\":{},\"183\":{},\"192\":{},\"207\":{},\"218\":{},\"235\":{},\"267\":{},\"281\":{},\"289\":{},\"301\":{},\"317\":{},\"334\":{},\"352\":{},\"376\":{},\"388\":{},\"397\":{},\"410\":{},\"1064\":{},\"2717\":{},\"2724\":{},\"2735\":{}},\"comment\":{}}],[\"ledgerhashes\",{\"_index\":180,\"name\":{\"266\":{}},\"comment\":{}}],[\"ledgerindex\",{\"_index\":786,\"name\":{\"2718\":{},\"2725\":{},\"2736\":{},\"2747\":{}},\"comment\":{}}],[\"ledgermodifiedoffercreatetransaction\",{\"_index\":386,\"name\":{\"844\":{}},\"comment\":{}}],[\"ledgerqueuedata\",{\"_index\":381,\"name\":{\"819\":{}},\"comment\":{}}],[\"ledgerrequest\",{\"_index\":375,\"name\":{\"796\":{}},\"comment\":{}}],[\"ledgerresponse\",{\"_index\":380,\"name\":{\"810\":{}},\"comment\":{}}],[\"ledgersequence\",{\"_index\":703,\"name\":{\"2148\":{},\"2528\":{}},\"comment\":{}}],[\"ledgerstream\",{\"_index\":486,\"name\":{\"1246\":{}},\"comment\":{}}],[\"ledgerstreamresponse\",{\"_index\":493,\"name\":{\"1257\":{}},\"comment\":{}}],[\"levels\",{\"_index\":521,\"name\":{\"1366\":{}},\"comment\":{}}],[\"limit\",{\"_index\":276,\"name\":{\"469\":{},\"483\":{},\"573\":{},\"599\":{},\"619\":{},\"633\":{},\"648\":{},\"662\":{},\"682\":{},\"712\":{},\"724\":{},\"778\":{},\"881\":{},\"1051\":{},\"1666\":{},\"1678\":{}},\"comment\":{}}],[\"limit_peer\",{\"_index\":327,\"name\":{\"600\":{}},\"comment\":{}}],[\"limitamount\",{\"_index\":761,\"name\":{\"2510\":{}},\"comment\":{}}],[\"lines\",{\"_index\":324,\"name\":{\"583\":{}},\"comment\":{}}],[\"load\",{\"_index\":551,\"name\":{\"1444\":{},\"1516\":{}},\"comment\":{}}],[\"load_base\",{\"_index\":582,\"name\":{\"1520\":{}},\"comment\":{}}],[\"load_factor\",{\"_index\":554,\"name\":{\"1448\":{},\"1521\":{}},\"comment\":{}}],[\"load_factor_cluster\",{\"_index\":558,\"name\":{\"1452\":{}},\"comment\":{}}],[\"load_factor_fee_escalation\",{\"_index\":559,\"name\":{\"1453\":{},\"1522\":{}},\"comment\":{}}],[\"load_factor_fee_queue\",{\"_index\":560,\"name\":{\"1454\":{},\"1523\":{}},\"comment\":{}}],[\"load_factor_fee_reference\",{\"_index\":583,\"name\":{\"1524\":{}},\"comment\":{}}],[\"load_factor_local\",{\"_index\":556,\"name\":{\"1450\":{}},\"comment\":{}}],[\"load_factor_net\",{\"_index\":557,\"name\":{\"1451\":{}},\"comment\":{}}],[\"load_factor_server\",{\"_index\":561,\"name\":{\"1455\":{},\"1525\":{}},\"comment\":{}}],[\"load_fee\",{\"_index\":497,\"name\":{\"1276\":{}},\"comment\":{}}],[\"lockingchaindoor\",{\"_index\":820,\"name\":{\"2816\":{}},\"comment\":{}}],[\"lockingchainissue\",{\"_index\":821,\"name\":{\"2817\":{}},\"comment\":{}}],[\"lowest_sequence\",{\"_index\":312,\"name\":{\"559\":{}},\"comment\":{}}],[\"lowlimit\",{\"_index\":212,\"name\":{\"355\":{}},\"comment\":{}}],[\"lownode\",{\"_index\":214,\"name\":{\"357\":{}},\"comment\":{}}],[\"lowqualityin\",{\"_index\":216,\"name\":{\"359\":{}},\"comment\":{}}],[\"lowqualityout\",{\"_index\":217,\"name\":{\"360\":{}},\"comment\":{}}],[\"lp_token\",{\"_index\":625,\"name\":{\"1720\":{}},\"comment\":{}}],[\"lptokenbalance\",{\"_index\":115,\"name\":{\"145\":{}},\"comment\":{}}],[\"lptokenin\",{\"_index\":687,\"name\":{\"1954\":{}},\"comment\":{}}],[\"lptokenout\",{\"_index\":679,\"name\":{\"1881\":{}},\"comment\":{}}],[\"lsfallowtrustlineclawback\",{\"_index\":102,\"name\":{\"107\":{},\"123\":{}},\"comment\":{}}],[\"lsfamm\",{\"_index\":97,\"name\":{\"102\":{},\"118\":{}},\"comment\":{}}],[\"lsfdefaultripple\",{\"_index\":95,\"name\":{\"100\":{},\"116\":{}},\"comment\":{}}],[\"lsfdepositauth\",{\"_index\":96,\"name\":{\"101\":{},\"117\":{}},\"comment\":{}}],[\"lsfdisablemaster\",{\"_index\":92,\"name\":{\"97\":{},\"113\":{}},\"comment\":{}}],[\"lsfdisallowincomingcheck\",{\"_index\":99,\"name\":{\"104\":{},\"120\":{}},\"comment\":{}}],[\"lsfdisallowincomingnftokenoffer\",{\"_index\":98,\"name\":{\"103\":{},\"119\":{}},\"comment\":{}}],[\"lsfdisallowincomingpaychan\",{\"_index\":100,\"name\":{\"105\":{},\"121\":{}},\"comment\":{}}],[\"lsfdisallowincomingtrustline\",{\"_index\":101,\"name\":{\"106\":{},\"122\":{}},\"comment\":{}}],[\"lsfdisallowxrp\",{\"_index\":91,\"name\":{\"96\":{},\"112\":{}},\"comment\":{}}],[\"lsfglobalfreeze\",{\"_index\":94,\"name\":{\"99\":{},\"115\":{}},\"comment\":{}}],[\"lsfhighauth\",{\"_index\":224,\"name\":{\"370\":{}},\"comment\":{}}],[\"lsfhighfreeze\",{\"_index\":228,\"name\":{\"374\":{}},\"comment\":{}}],[\"lsfhighnoripple\",{\"_index\":226,\"name\":{\"372\":{}},\"comment\":{}}],[\"lsfhighreserve\",{\"_index\":222,\"name\":{\"368\":{}},\"comment\":{}}],[\"lsflowauth\",{\"_index\":223,\"name\":{\"369\":{}},\"comment\":{}}],[\"lsflowfreeze\",{\"_index\":227,\"name\":{\"373\":{}},\"comment\":{}}],[\"lsflownoripple\",{\"_index\":225,\"name\":{\"371\":{}},\"comment\":{}}],[\"lsflowreserve\",{\"_index\":221,\"name\":{\"367\":{}},\"comment\":{}}],[\"lsfnofreeze\",{\"_index\":93,\"name\":{\"98\":{},\"114\":{}},\"comment\":{}}],[\"lsfoneownercount\",{\"_index\":234,\"name\":{\"386\":{}},\"comment\":{}}],[\"lsfpassive\",{\"_index\":207,\"name\":{\"331\":{}},\"comment\":{}}],[\"lsfpasswordspent\",{\"_index\":88,\"name\":{\"93\":{},\"109\":{}},\"comment\":{}}],[\"lsfrequireauth\",{\"_index\":90,\"name\":{\"95\":{},\"111\":{}},\"comment\":{}}],[\"lsfrequiredesttag\",{\"_index\":89,\"name\":{\"94\":{},\"110\":{}},\"comment\":{}}],[\"lsfsell\",{\"_index\":208,\"name\":{\"332\":{}},\"comment\":{}}],[\"majorities\",{\"_index\":106,\"name\":{\"128\":{}},\"comment\":{}}],[\"majority\",{\"_index\":183,\"name\":{\"274\":{},\"275\":{}},\"comment\":{}}],[\"manifest\",{\"_index\":530,\"name\":{\"1394\":{}},\"comment\":{}}],[\"manifestrequest\",{\"_index\":527,\"name\":{\"1380\":{}},\"comment\":{}}],[\"manifestresponse\",{\"_index\":528,\"name\":{\"1385\":{}},\"comment\":{}}],[\"marker\",{\"_index\":277,\"name\":{\"470\":{},\"484\":{},\"574\":{},\"587\":{},\"620\":{},\"632\":{},\"649\":{},\"663\":{},\"683\":{},\"697\":{},\"713\":{},\"725\":{},\"882\":{},\"897\":{},\"1667\":{},\"1679\":{}},\"comment\":{}}],[\"markerrequest\",{\"_index\":248,\"name\":{\"429\":{}},\"comment\":{}}],[\"markerresponse\",{\"_index\":249,\"name\":{\"430\":{}},\"comment\":{}}],[\"master_key\",{\"_index\":498,\"name\":{\"1277\":{},\"1392\":{}},\"comment\":{}}],[\"max_ledger\",{\"_index\":436,\"name\":{\"1036\":{}},\"comment\":{}}],[\"max_queue_size\",{\"_index\":526,\"name\":{\"1372\":{}},\"comment\":{}}],[\"max_spend_drops\",{\"_index\":319,\"name\":{\"567\":{},\"828\":{}},\"comment\":{}}],[\"max_spend_drops_total\",{\"_index\":314,\"name\":{\"561\":{}},\"comment\":{}}],[\"maxfeexrp\",{\"_index\":4,\"name\":{\"4\":{},\"27\":{}},\"comment\":{}}],[\"median_fee\",{\"_index\":517,\"name\":{\"1361\":{}},\"comment\":{}}],[\"median_level\",{\"_index\":522,\"name\":{\"1368\":{}},\"comment\":{}}],[\"memo\",{\"_index\":803,\"name\":{\"2770\":{},\"2771\":{}},\"comment\":{}}],[\"memodata\",{\"_index\":804,\"name\":{\"2773\":{}},\"comment\":{}}],[\"memoformat\",{\"_index\":806,\"name\":{\"2775\":{}},\"comment\":{}}],[\"memos\",{\"_index\":630,\"name\":{\"1741\":{},\"1801\":{},\"1818\":{},\"1838\":{},\"1855\":{},\"1888\":{},\"1906\":{},\"1924\":{},\"1961\":{},\"1977\":{},\"1995\":{},\"2015\":{},\"2031\":{},\"2046\":{},\"2064\":{},\"2081\":{},\"2098\":{},\"2119\":{},\"2138\":{},\"2155\":{},\"2176\":{},\"2193\":{},\"2209\":{},\"2229\":{},\"2252\":{},\"2278\":{},\"2307\":{},\"2337\":{},\"2363\":{},\"2384\":{},\"2402\":{},\"2422\":{},\"2440\":{},\"2456\":{},\"2473\":{},\"2489\":{},\"2519\":{},\"2537\":{},\"2563\":{},\"2588\":{},\"2608\":{},\"2627\":{},\"2645\":{},\"2663\":{},\"2682\":{},\"2700\":{}},\"comment\":{}}],[\"memotype\",{\"_index\":805,\"name\":{\"2774\":{}},\"comment\":{}}],[\"message\",{\"_index\":264,\"name\":{\"449\":{},\"2885\":{},\"2892\":{},\"2899\":{},\"2906\":{},\"2913\":{},\"2920\":{},\"2927\":{},\"2934\":{},\"2941\":{},\"2948\":{},\"2955\":{},\"2962\":{}},\"comment\":{}}],[\"messagekey\",{\"_index\":74,\"name\":{\"79\":{},\"1791\":{}},\"comment\":{}}],[\"meta\",{\"_index\":361,\"name\":{\"737\":{},\"1292\":{},\"1322\":{},\"1691\":{}},\"comment\":{}}],[\"metadata\",{\"_index\":388,\"name\":{\"846\":{},\"1021\":{},\"1753\":{}},\"comment\":{}}],[\"min_ledger\",{\"_index\":435,\"name\":{\"1035\":{}},\"comment\":{}}],[\"minaccountcreateamount\",{\"_index\":124,\"name\":{\"160\":{},\"2638\":{},\"2693\":{}},\"comment\":{}}],[\"minimum_fee\",{\"_index\":518,\"name\":{\"1362\":{}},\"comment\":{}}],[\"minimum_level\",{\"_index\":523,\"name\":{\"1369\":{}},\"comment\":{}}],[\"mintednftokens\",{\"_index\":82,\"name\":{\"87\":{}},\"comment\":{}}],[\"modifiednode\",{\"_index\":788,\"name\":{\"2721\":{},\"2722\":{}},\"comment\":{}}],[\"multisign\",{\"_index\":882,\"name\":{\"2967\":{}},\"comment\":{}}],[\"name\",{\"_index\":867,\"name\":{\"2884\":{},\"2891\":{},\"2898\":{},\"2905\":{},\"2912\":{},\"2919\":{},\"2926\":{},\"2933\":{},\"2940\":{},\"2947\":{},\"2954\":{},\"2961\":{}},\"comment\":{}}],[\"negative_unl_id\",{\"_index\":186,\"name\":{\"279\":{}},\"comment\":{}}],[\"negativeunl\",{\"_index\":187,\"name\":{\"280\":{}},\"comment\":{}}],[\"network_id\",{\"_index\":555,\"name\":{\"1449\":{}},\"comment\":{}}],[\"network_ledger\",{\"_index\":564,\"name\":{\"1458\":{}},\"comment\":{}}],[\"networkid\",{\"_index\":5,\"name\":{\"5\":{},\"1747\":{},\"1807\":{},\"1824\":{},\"1844\":{},\"1861\":{},\"1894\":{},\"1912\":{},\"1930\":{},\"1967\":{},\"1983\":{},\"2001\":{},\"2021\":{},\"2037\":{},\"2052\":{},\"2070\":{},\"2087\":{},\"2104\":{},\"2125\":{},\"2144\":{},\"2161\":{},\"2182\":{},\"2199\":{},\"2215\":{},\"2235\":{},\"2258\":{},\"2284\":{},\"2313\":{},\"2343\":{},\"2369\":{},\"2390\":{},\"2408\":{},\"2428\":{},\"2446\":{},\"2462\":{},\"2479\":{},\"2495\":{},\"2525\":{},\"2543\":{},\"2569\":{},\"2594\":{},\"2614\":{},\"2633\":{},\"2651\":{},\"2669\":{},\"2688\":{},\"2706\":{}},\"comment\":{}}],[\"newfields\",{\"_index\":787,\"name\":{\"2719\":{}},\"comment\":{}}],[\"nextpagemin\",{\"_index\":194,\"name\":{\"302\":{}},\"comment\":{}}],[\"nft_id\",{\"_index\":606,\"name\":{\"1607\":{},\"1616\":{},\"1626\":{},\"1635\":{},\"1645\":{},\"1661\":{},\"1675\":{},\"2801\":{}},\"comment\":{}}],[\"nft_offer_index\",{\"_index\":815,\"name\":{\"2796\":{}},\"comment\":{}}],[\"nft_page\",{\"_index\":405,\"name\":{\"934\":{}},\"comment\":{}}],[\"nft_serial\",{\"_index\":337,\"name\":{\"615\":{},\"2809\":{}},\"comment\":{}}],[\"nft_taxon\",{\"_index\":818,\"name\":{\"2808\":{}},\"comment\":{}}],[\"nftbuyoffersrequest\",{\"_index\":605,\"name\":{\"1605\":{}},\"comment\":{}}],[\"nftbuyoffersresponse\",{\"_index\":607,\"name\":{\"1612\":{}},\"comment\":{}}],[\"nfthistoryrequest\",{\"_index\":612,\"name\":{\"1659\":{}},\"comment\":{}}],[\"nfthistoryresponse\",{\"_index\":613,\"name\":{\"1672\":{}},\"comment\":{}}],[\"nfthistorytransaction\",{\"_index\":614,\"name\":{\"1689\":{}},\"comment\":{}}],[\"nftinforequest\",{\"_index\":610,\"name\":{\"1643\":{}},\"comment\":{}}],[\"nftinforesponse\",{\"_index\":611,\"name\":{\"1650\":{}},\"comment\":{}}],[\"nftoffer\",{\"_index\":814,\"name\":{\"2793\":{}},\"comment\":{}}],[\"nftoken\",{\"_index\":197,\"name\":{\"308\":{},\"309\":{},\"2800\":{}},\"comment\":{}}],[\"nftokenacceptoffer\",{\"_index\":707,\"name\":{\"2165\":{}},\"comment\":{}}],[\"nftokenbrokerfee\",{\"_index\":710,\"name\":{\"2169\":{}},\"comment\":{}}],[\"nftokenburn\",{\"_index\":711,\"name\":{\"2183\":{}},\"comment\":{}}],[\"nftokenbuyoffer\",{\"_index\":709,\"name\":{\"2168\":{}},\"comment\":{}}],[\"nftokencanceloffer\",{\"_index\":712,\"name\":{\"2200\":{}},\"comment\":{}}],[\"nftokencreateoffer\",{\"_index\":714,\"name\":{\"2216\":{}},\"comment\":{}}],[\"nftokencreateofferflags\",{\"_index\":715,\"name\":{\"2236\":{}},\"comment\":{}}],[\"nftokencreateofferflagsinterface\",{\"_index\":717,\"name\":{\"2238\":{}},\"comment\":{}}],[\"nftokenid\",{\"_index\":199,\"name\":{\"313\":{},\"612\":{},\"2186\":{},\"2218\":{},\"2875\":{}},\"comment\":{}}],[\"nftokenmint\",{\"_index\":718,\"name\":{\"2240\":{}},\"comment\":{}}],[\"nftokenminter\",{\"_index\":83,\"name\":{\"88\":{},\"1795\":{}},\"comment\":{}}],[\"nftokenmintflags\",{\"_index\":720,\"name\":{\"2259\":{}},\"comment\":{}}],[\"nftokenmintflagsinterface\",{\"_index\":725,\"name\":{\"2264\":{}},\"comment\":{}}],[\"nftokenoffer\",{\"_index\":191,\"name\":{\"288\":{}},\"comment\":{}}],[\"nftokenoffernode\",{\"_index\":192,\"name\":{\"294\":{}},\"comment\":{}}],[\"nftokenoffers\",{\"_index\":713,\"name\":{\"2202\":{}},\"comment\":{}}],[\"nftokenpage\",{\"_index\":193,\"name\":{\"300\":{}},\"comment\":{}}],[\"nftokens\",{\"_index\":195,\"name\":{\"303\":{}},\"comment\":{}}],[\"nftokenselloffer\",{\"_index\":708,\"name\":{\"2167\":{}},\"comment\":{}}],[\"nftokentaxon\",{\"_index\":200,\"name\":{\"314\":{},\"613\":{},\"2242\":{}},\"comment\":{}}],[\"nftselloffersrequest\",{\"_index\":608,\"name\":{\"1624\":{}},\"comment\":{}}],[\"nftselloffersresponse\",{\"_index\":609,\"name\":{\"1631\":{}},\"comment\":{}}],[\"no_ripple\",{\"_index\":330,\"name\":{\"603\":{}},\"comment\":{}}],[\"no_ripple_peer\",{\"_index\":331,\"name\":{\"604\":{}},\"comment\":{}}],[\"node\",{\"_index\":410,\"name\":{\"948\":{},\"2739\":{}},\"comment\":{}}],[\"node_binary\",{\"_index\":411,\"name\":{\"949\":{}},\"comment\":{}}],[\"nofreeze\",{\"_index\":296,\"name\":{\"525\":{}},\"comment\":{}}],[\"noripplecheckrequest\",{\"_index\":371,\"name\":{\"773\":{}},\"comment\":{}}],[\"noripplecheckresponse\",{\"_index\":373,\"name\":{\"783\":{}},\"comment\":{}}],[\"notconnectederror\",{\"_index\":873,\"name\":{\"2910\":{}},\"comment\":{}}],[\"notfounderror\",{\"_index\":879,\"name\":{\"2952\":{}},\"comment\":{}}],[\"obligations\",{\"_index\":368,\"name\":{\"757\":{}},\"comment\":{}}],[\"offer\",{\"_index\":201,\"name\":{\"316\":{},\"927\":{}},\"comment\":{}}],[\"offercancel\",{\"_index\":726,\"name\":{\"2269\":{}},\"comment\":{}}],[\"offercreate\",{\"_index\":733,\"name\":{\"2295\":{}},\"comment\":{}}],[\"offercreateflags\",{\"_index\":727,\"name\":{\"2285\":{}},\"comment\":{}}],[\"offercreateflagsinterface\",{\"_index\":732,\"name\":{\"2290\":{}},\"comment\":{}}],[\"offerflags\",{\"_index\":206,\"name\":{\"330\":{}},\"comment\":{}}],[\"offers\",{\"_index\":353,\"name\":{\"693\":{},\"1086\":{},\"1615\":{},\"1634\":{}},\"comment\":{}}],[\"offersequence\",{\"_index\":698,\"name\":{\"2091\":{},\"2129\":{},\"2271\":{},\"2299\":{}},\"comment\":{}}],[\"on\",{\"_index\":10,\"name\":{\"10\":{}},\"comment\":{}}],[\"open_ledger_cost\",{\"_index\":426,\"name\":{\"979\":{}},\"comment\":{}}],[\"open_ledger_fee\",{\"_index\":519,\"name\":{\"1363\":{}},\"comment\":{}}],[\"open_ledger_level\",{\"_index\":524,\"name\":{\"1370\":{}},\"comment\":{}}],[\"orderbookstream\",{\"_index\":506,\"name\":{\"1313\":{}},\"comment\":{}}],[\"otherchaindestination\",{\"_index\":774,\"name\":{\"2619\":{}},\"comment\":{}}],[\"otherchainsource\",{\"_index\":238,\"name\":{\"401\":{},\"2550\":{},\"2576\":{},\"2656\":{}},\"comment\":{}}],[\"owner\",{\"_index\":140,\"name\":{\"198\":{},\"295\":{},\"2090\":{},\"2128\":{},\"2187\":{},\"2220\":{},\"2797\":{},\"2803\":{}},\"comment\":{}}],[\"owner_funds\",{\"_index\":379,\"name\":{\"802\":{},\"1060\":{}},\"comment\":{}}],[\"ownercount\",{\"_index\":68,\"name\":{\"73\":{}},\"comment\":{}}],[\"ownernode\",{\"_index\":125,\"name\":{\"162\":{},\"171\":{},\"187\":{},\"213\":{},\"228\":{},\"296\":{},\"325\":{},\"341\":{},\"378\":{},\"391\":{},\"405\":{},\"416\":{},\"1072\":{}},\"comment\":{}}],[\"parent_close_time\",{\"_index\":174,\"name\":{\"259\":{},\"840\":{}},\"comment\":{}}],[\"parent_hash\",{\"_index\":175,\"name\":{\"260\":{},\"841\":{}},\"comment\":{}}],[\"parseaccountrootflags\",{\"_index\":246,\"name\":{\"427\":{}},\"comment\":{}}],[\"parsenftokenid\",{\"_index\":863,\"name\":{\"2873\":{}},\"comment\":{}}],[\"passwordspent\",{\"_index\":297,\"name\":{\"526\":{}},\"comment\":{}}],[\"path\",{\"_index\":809,\"name\":{\"2781\":{}},\"comment\":{}}],[\"pathfindcloserequest\",{\"_index\":456,\"name\":{\"1131\":{}},\"comment\":{}}],[\"pathfindcreaterequest\",{\"_index\":451,\"name\":{\"1121\":{}},\"comment\":{}}],[\"pathfindpathoption\",{\"_index\":457,\"name\":{\"1136\":{}},\"comment\":{}}],[\"pathfindrequest\",{\"_index\":450,\"name\":{\"1120\":{}},\"comment\":{}}],[\"pathfindresponse\",{\"_index\":461,\"name\":{\"1145\":{}},\"comment\":{}}],[\"pathfindstatusrequest\",{\"_index\":460,\"name\":{\"1140\":{}},\"comment\":{}}],[\"pathfindstream\",{\"_index\":502,\"name\":{\"1296\":{}},\"comment\":{}}],[\"paths\",{\"_index\":455,\"name\":{\"1127\":{},\"2328\":{}},\"comment\":{}}],[\"paths_computed\",{\"_index\":458,\"name\":{\"1137\":{},\"1164\":{}},\"comment\":{}}],[\"pathstep\",{\"_index\":808,\"name\":{\"2777\":{}},\"comment\":{}}],[\"paychannel\",{\"_index\":209,\"name\":{\"333\":{}},\"comment\":{}}],[\"payment\",{\"_index\":739,\"name\":{\"2322\":{}},\"comment\":{}}],[\"payment_channel\",{\"_index\":403,\"name\":{\"928\":{}},\"comment\":{}}],[\"paymentchannelclaim\",{\"_index\":744,\"name\":{\"2350\":{}},\"comment\":{}}],[\"paymentchannelclaimflags\",{\"_index\":740,\"name\":{\"2344\":{}},\"comment\":{}}],[\"paymentchannelclaimflagsinterface\",{\"_index\":743,\"name\":{\"2347\":{}},\"comment\":{}}],[\"paymentchannelcreate\",{\"_index\":745,\"name\":{\"2370\":{}},\"comment\":{}}],[\"paymentchannelfund\",{\"_index\":746,\"name\":{\"2391\":{}},\"comment\":{}}],[\"paymentflags\",{\"_index\":734,\"name\":{\"2314\":{}},\"comment\":{}}],[\"paymentflagsinterface\",{\"_index\":738,\"name\":{\"2318\":{}},\"comment\":{}}],[\"peak_time\",{\"_index\":587,\"name\":{\"1557\":{}},\"comment\":{}}],[\"peer\",{\"_index\":322,\"name\":{\"572\":{}},\"comment\":{}}],[\"peer_authorized\",{\"_index\":333,\"name\":{\"606\":{}},\"comment\":{}}],[\"peer_disconnects\",{\"_index\":562,\"name\":{\"1456\":{},\"1526\":{}},\"comment\":{}}],[\"peer_disconnects_resources\",{\"_index\":563,\"name\":{\"1457\":{},\"1527\":{}},\"comment\":{}}],[\"peers\",{\"_index\":565,\"name\":{\"1459\":{},\"1528\":{}},\"comment\":{}}],[\"peerstatusstream\",{\"_index\":503,\"name\":{\"1305\":{}},\"comment\":{}}],[\"per_second\",{\"_index\":586,\"name\":{\"1556\":{}},\"comment\":{}}],[\"percenttoquality\",{\"_index\":832,\"name\":{\"2828\":{}},\"comment\":{}}],[\"percenttotransferrate\",{\"_index\":834,\"name\":{\"2830\":{}},\"comment\":{}}],[\"pingrequest\",{\"_index\":595,\"name\":{\"1565\":{}},\"comment\":{}}],[\"pingresponse\",{\"_index\":596,\"name\":{\"1569\":{}},\"comment\":{}}],[\"ports\",{\"_index\":566,\"name\":{\"1460\":{}},\"comment\":{}}],[\"preflight_result\",{\"_index\":383,\"name\":{\"823\":{}},\"comment\":{}}],[\"preparetransaction\",{\"_index\":19,\"name\":{\"19\":{}},\"comment\":{}}],[\"previousfields\",{\"_index\":790,\"name\":{\"2728\":{}},\"comment\":{}}],[\"previouspagemin\",{\"_index\":196,\"name\":{\"304\":{}},\"comment\":{}}],[\"previoustxnid\",{\"_index\":85,\"name\":{\"90\":{},\"131\":{},\"150\":{},\"164\":{},\"172\":{},\"189\":{},\"204\":{},\"215\":{},\"231\":{},\"238\":{},\"272\":{},\"286\":{},\"298\":{},\"306\":{},\"328\":{},\"349\":{},\"364\":{},\"383\":{},\"394\":{},\"407\":{},\"418\":{},\"1075\":{},\"2730\":{}},\"comment\":{}}],[\"previoustxnlgrseq\",{\"_index\":86,\"name\":{\"91\":{},\"132\":{},\"151\":{},\"165\":{},\"173\":{},\"190\":{},\"205\":{},\"216\":{},\"232\":{},\"239\":{},\"273\":{},\"287\":{},\"299\":{},\"307\":{},\"329\":{},\"350\":{},\"365\":{},\"384\":{},\"395\":{},\"408\":{},\"419\":{},\"1076\":{},\"2731\":{}},\"comment\":{}}],[\"price\",{\"_index\":114,\"name\":{\"144\":{},\"1718\":{}},\"comment\":{}}],[\"privatekey\",{\"_index\":50,\"name\":{\"54\":{}},\"comment\":{}}],[\"problems\",{\"_index\":374,\"name\":{\"787\":{}},\"comment\":{}}],[\"proposers\",{\"_index\":550,\"name\":{\"1443\":{},\"1515\":{}},\"comment\":{}}],[\"pseudotransaction\",{\"_index\":635,\"name\":{\"1749\":{}},\"comment\":{}}],[\"pubkey_node\",{\"_index\":567,\"name\":{\"1461\":{},\"1529\":{}},\"comment\":{}}],[\"pubkey_validator\",{\"_index\":568,\"name\":{\"1462\":{},\"1530\":{}},\"comment\":{}}],[\"public_key\",{\"_index\":270,\"name\":{\"459\":{},\"1203\":{},\"1382\":{}},\"comment\":{}}],[\"public_key_hex\",{\"_index\":271,\"name\":{\"460\":{}},\"comment\":{}}],[\"publickey\",{\"_index\":49,\"name\":{\"53\":{},\"339\":{},\"2357\":{},\"2375\":{},\"2551\":{},\"2577\":{}},\"comment\":{}}],[\"quality\",{\"_index\":350,\"name\":{\"677\":{},\"1063\":{}},\"comment\":{}}],[\"quality_in\",{\"_index\":328,\"name\":{\"601\":{}},\"comment\":{}}],[\"quality_out\",{\"_index\":329,\"name\":{\"602\":{}},\"comment\":{}}],[\"qualityin\",{\"_index\":762,\"name\":{\"2511\":{}},\"comment\":{}}],[\"qualityout\",{\"_index\":763,\"name\":{\"2512\":{}},\"comment\":{}}],[\"qualitytodecimal\",{\"_index\":837,\"name\":{\"2833\":{}},\"comment\":{}}],[\"queue\",{\"_index\":302,\"name\":{\"533\":{},\"804\":{}},\"comment\":{}}],[\"queue_data\",{\"_index\":308,\"name\":{\"547\":{}},\"comment\":{}}],[\"queued\",{\"_index\":425,\"name\":{\"978\":{}},\"comment\":{}}],[\"random\",{\"_index\":600,\"name\":{\"1588\":{}},\"comment\":{}}],[\"randomrequest\",{\"_index\":598,\"name\":{\"1581\":{}},\"comment\":{}}],[\"randomresponse\",{\"_index\":599,\"name\":{\"1585\":{}},\"comment\":{}}],[\"receive_currencies\",{\"_index\":284,\"name\":{\"505\":{}},\"comment\":{}}],[\"reference_level\",{\"_index\":525,\"name\":{\"1371\":{}},\"comment\":{}}],[\"referencefeeunits\",{\"_index\":157,\"name\":{\"242\":{},\"2412\":{}},\"comment\":{}}],[\"regularkey\",{\"_index\":75,\"name\":{\"80\":{},\"2449\":{}},\"comment\":{}}],[\"request\",{\"_index\":8,\"name\":{\"8\":{},\"445\":{},\"1603\":{}},\"comment\":{}}],[\"requestall\",{\"_index\":11,\"name\":{\"11\":{}},\"comment\":{}}],[\"requestallresponsemap\",{\"_index\":250,\"name\":{\"431\":{}},\"comment\":{}}],[\"requested\",{\"_index\":531,\"name\":{\"1395\":{}},\"comment\":{}}],[\"requestnextpage\",{\"_index\":9,\"name\":{\"9\":{}},\"comment\":{}}],[\"requestresponsemap\",{\"_index\":247,\"name\":{\"428\":{}},\"comment\":{}}],[\"requireauthorization\",{\"_index\":298,\"name\":{\"527\":{}},\"comment\":{}}],[\"requiredestinationtag\",{\"_index\":299,\"name\":{\"528\":{}},\"comment\":{}}],[\"reserve_base\",{\"_index\":490,\"name\":{\"1253\":{},\"1263\":{},\"1278\":{},\"1507\":{},\"1542\":{}},\"comment\":{}}],[\"reserve_base_xrp\",{\"_index\":542,\"name\":{\"1433\":{},\"1473\":{}},\"comment\":{}}],[\"reserve_inc\",{\"_index\":491,\"name\":{\"1254\":{},\"1264\":{},\"1279\":{},\"1508\":{},\"1543\":{}},\"comment\":{}}],[\"reserve_inc_xrp\",{\"_index\":543,\"name\":{\"1434\":{},\"1474\":{}},\"comment\":{}}],[\"reservebase\",{\"_index\":158,\"name\":{\"243\":{},\"2413\":{}},\"comment\":{}}],[\"reservebasedrops\",{\"_index\":162,\"name\":{\"247\":{},\"2431\":{}},\"comment\":{}}],[\"reserveincrement\",{\"_index\":159,\"name\":{\"244\":{},\"2414\":{}},\"comment\":{}}],[\"reserveincrementdrops\",{\"_index\":163,\"name\":{\"248\":{},\"2432\":{}},\"comment\":{}}],[\"response\",{\"_index\":262,\"name\":{\"446\":{}},\"comment\":{}}],[\"responseformaterror\",{\"_index\":877,\"name\":{\"2938\":{}},\"comment\":{}}],[\"responseonlytxinfo\",{\"_index\":812,\"name\":{\"2788\":{}},\"comment\":{}}],[\"responsewarning\",{\"_index\":263,\"name\":{\"447\":{}},\"comment\":{}}],[\"result\",{\"_index\":258,\"name\":{\"440\":{},\"476\":{},\"501\":{},\"541\":{},\"580\":{},\"626\":{},\"655\":{},\"690\":{},\"719\":{},\"754\":{},\"784\":{},\"811\":{},\"852\":{},\"868\":{},\"892\":{},\"944\":{},\"965\":{},\"995\":{},\"1017\":{},\"1040\":{},\"1081\":{},\"1104\":{},\"1146\":{},\"1178\":{},\"1208\":{},\"1230\":{},\"1337\":{},\"1354\":{},\"1386\":{},\"1409\":{},\"1422\":{},\"1495\":{},\"1570\":{},\"1586\":{},\"1613\":{},\"1632\":{},\"1651\":{},\"1673\":{},\"1703\":{}},\"comment\":{}}],[\"retries_remaining\",{\"_index\":382,\"name\":{\"822\":{}},\"comment\":{}}],[\"rfc1751mnemonictokey\",{\"_index\":61,\"name\":{\"66\":{}},\"comment\":{}}],[\"ripple_state\",{\"_index\":404,\"name\":{\"929\":{}},\"comment\":{}}],[\"ripplederror\",{\"_index\":872,\"name\":{\"2903\":{}},\"comment\":{}}],[\"ripplednotinitializederror\",{\"_index\":875,\"name\":{\"2924\":{}},\"comment\":{}}],[\"ripplepathfindpathoption\",{\"_index\":464,\"name\":{\"1163\":{}},\"comment\":{}}],[\"ripplepathfindrequest\",{\"_index\":465,\"name\":{\"1166\":{}},\"comment\":{}}],[\"ripplepathfindresponse\",{\"_index\":467,\"name\":{\"1177\":{}},\"comment\":{}}],[\"ripplestate\",{\"_index\":211,\"name\":{\"351\":{}},\"comment\":{}}],[\"ripplestateflags\",{\"_index\":220,\"name\":{\"366\":{}},\"comment\":{}}],[\"rippletimetoisotime\",{\"_index\":828,\"name\":{\"2824\":{}},\"comment\":{}}],[\"rippletimetounixtime\",{\"_index\":830,\"name\":{\"2826\":{}},\"comment\":{}}],[\"role\",{\"_index\":372,\"name\":{\"776\":{},\"1572\":{}},\"comment\":{}}],[\"rootindex\",{\"_index\":136,\"name\":{\"194\":{}},\"comment\":{}}],[\"searched_all\",{\"_index\":438,\"name\":{\"1041\":{}},\"comment\":{}}],[\"secp256k1\",{\"_index\":35,\"name\":{\"37\":{}},\"comment\":{}}],[\"seed\",{\"_index\":52,\"name\":{\"56\":{}},\"comment\":{}}],[\"send_currencies\",{\"_index\":285,\"name\":{\"506\":{}},\"comment\":{}}],[\"send_max\",{\"_index\":454,\"name\":{\"1126\":{},\"1171\":{},\"1303\":{}},\"comment\":{}}],[\"sendmax\",{\"_index\":128,\"name\":{\"174\":{},\"2005\":{},\"2329\":{}},\"comment\":{}}],[\"seq\",{\"_index\":320,\"name\":{\"568\":{},\"674\":{},\"1393\":{},\"1435\":{},\"1475\":{},\"1509\":{},\"1544\":{}},\"comment\":{}}],[\"sequence\",{\"_index\":69,\"name\":{\"74\":{},\"175\":{},\"320\":{},\"1067\":{},\"1737\":{},\"1798\":{},\"1814\":{},\"1834\":{},\"1851\":{},\"1884\":{},\"1902\":{},\"1920\":{},\"1957\":{},\"1973\":{},\"1991\":{},\"2011\":{},\"2027\":{},\"2042\":{},\"2060\":{},\"2077\":{},\"2094\":{},\"2115\":{},\"2134\":{},\"2151\":{},\"2172\":{},\"2189\":{},\"2205\":{},\"2226\":{},\"2249\":{},\"2274\":{},\"2304\":{},\"2334\":{},\"2360\":{},\"2380\":{},\"2398\":{},\"2418\":{},\"2436\":{},\"2452\":{},\"2469\":{},\"2485\":{},\"2516\":{},\"2533\":{},\"2559\":{},\"2584\":{},\"2604\":{},\"2623\":{},\"2641\":{},\"2659\":{},\"2678\":{},\"2697\":{},\"2880\":{}},\"comment\":{}}],[\"server_state\",{\"_index\":569,\"name\":{\"1463\":{},\"1531\":{}},\"comment\":{}}],[\"server_state_duration_us\",{\"_index\":570,\"name\":{\"1464\":{},\"1532\":{}},\"comment\":{}}],[\"serverdefinitionsrequest\",{\"_index\":532,\"name\":{\"1403\":{}},\"comment\":{}}],[\"serverdefinitionsresponse\",{\"_index\":533,\"name\":{\"1408\":{}},\"comment\":{}}],[\"serverinforequest\",{\"_index\":534,\"name\":{\"1417\":{}},\"comment\":{}}],[\"serverinforesponse\",{\"_index\":535,\"name\":{\"1421\":{}},\"comment\":{}}],[\"serverstate\",{\"_index\":590,\"name\":{\"1560\":{}},\"comment\":{}}],[\"serverstaterequest\",{\"_index\":579,\"name\":{\"1490\":{}},\"comment\":{}}],[\"serverstateresponse\",{\"_index\":580,\"name\":{\"1494\":{}},\"comment\":{}}],[\"setfee\",{\"_index\":747,\"name\":{\"2409\":{}},\"comment\":{}}],[\"setfeepostamendment\",{\"_index\":749,\"name\":{\"2429\":{}},\"comment\":{}}],[\"setfeepreamendment\",{\"_index\":748,\"name\":{\"2410\":{}},\"comment\":{}}],[\"setflag\",{\"_index\":664,\"name\":{\"1792\":{}},\"comment\":{}}],[\"setregularkey\",{\"_index\":750,\"name\":{\"2447\":{}},\"comment\":{}}],[\"settle_delay\",{\"_index\":269,\"name\":{\"458\":{}},\"comment\":{}}],[\"settledelay\",{\"_index\":210,\"name\":{\"340\":{},\"2374\":{}},\"comment\":{}}],[\"settransactionflagstonumber\",{\"_index\":245,\"name\":{\"426\":{}},\"comment\":{}}],[\"sign\",{\"_index\":54,\"name\":{\"58\":{}},\"comment\":{}}],[\"signature\",{\"_index\":471,\"name\":{\"1204\":{},\"1280\":{},\"2356\":{},\"2552\":{},\"2578\":{}},\"comment\":{}}],[\"signature_verified\",{\"_index\":473,\"name\":{\"1210\":{}},\"comment\":{}}],[\"signaturereward\",{\"_index\":119,\"name\":{\"155\":{},\"403\":{},\"2553\":{},\"2637\":{},\"2655\":{},\"2673\":{},\"2692\":{}},\"comment\":{}}],[\"signer\",{\"_index\":802,\"name\":{\"2764\":{},\"2765\":{}},\"comment\":{}}],[\"signer_lists\",{\"_index\":303,\"name\":{\"534\":{}},\"comment\":{}}],[\"signerentries\",{\"_index\":230,\"name\":{\"379\":{},\"2466\":{}},\"comment\":{}}],[\"signerentry\",{\"_index\":810,\"name\":{\"2782\":{},\"2783\":{}},\"comment\":{}}],[\"signerlist\",{\"_index\":229,\"name\":{\"375\":{}},\"comment\":{}}],[\"signerlistflags\",{\"_index\":233,\"name\":{\"385\":{}},\"comment\":{}}],[\"signerlistid\",{\"_index\":231,\"name\":{\"380\":{}},\"comment\":{}}],[\"signerlistset\",{\"_index\":751,\"name\":{\"2463\":{}},\"comment\":{}}],[\"signerquorum\",{\"_index\":232,\"name\":{\"381\":{},\"2465\":{}},\"comment\":{}}],[\"signers\",{\"_index\":631,\"name\":{\"1742\":{},\"1802\":{},\"1819\":{},\"1839\":{},\"1856\":{},\"1889\":{},\"1907\":{},\"1925\":{},\"1962\":{},\"1978\":{},\"1996\":{},\"2016\":{},\"2032\":{},\"2047\":{},\"2065\":{},\"2082\":{},\"2099\":{},\"2120\":{},\"2139\":{},\"2156\":{},\"2177\":{},\"2194\":{},\"2210\":{},\"2230\":{},\"2253\":{},\"2279\":{},\"2308\":{},\"2338\":{},\"2364\":{},\"2385\":{},\"2403\":{},\"2423\":{},\"2441\":{},\"2457\":{},\"2474\":{},\"2490\":{},\"2520\":{},\"2538\":{},\"2564\":{},\"2589\":{},\"2609\":{},\"2628\":{},\"2646\":{},\"2664\":{},\"2683\":{},\"2701\":{}},\"comment\":{}}],[\"signerweight\",{\"_index\":811,\"name\":{\"2786\":{}},\"comment\":{}}],[\"signing_time\",{\"_index\":499,\"name\":{\"1281\":{}},\"comment\":{}}],[\"signingpubkey\",{\"_index\":632,\"name\":{\"1744\":{},\"1804\":{},\"1821\":{},\"1841\":{},\"1858\":{},\"1891\":{},\"1909\":{},\"1927\":{},\"1964\":{},\"1980\":{},\"1998\":{},\"2018\":{},\"2034\":{},\"2049\":{},\"2067\":{},\"2084\":{},\"2101\":{},\"2122\":{},\"2141\":{},\"2158\":{},\"2179\":{},\"2196\":{},\"2212\":{},\"2232\":{},\"2255\":{},\"2281\":{},\"2310\":{},\"2340\":{},\"2366\":{},\"2387\":{},\"2405\":{},\"2425\":{},\"2443\":{},\"2459\":{},\"2476\":{},\"2492\":{},\"2522\":{},\"2540\":{},\"2566\":{},\"2591\":{},\"2611\":{},\"2630\":{},\"2648\":{},\"2666\":{},\"2685\":{},\"2703\":{},\"2769\":{}},\"comment\":{}}],[\"signpaymentchannelclaim\",{\"_index\":853,\"name\":{\"2863\":{}},\"comment\":{}}],[\"snapshot\",{\"_index\":482,\"name\":{\"1242\":{}},\"comment\":{}}],[\"source_account\",{\"_index\":447,\"name\":{\"1097\":{},\"1111\":{},\"1123\":{},\"1151\":{},\"1168\":{},\"1187\":{},\"1298\":{}},\"comment\":{}}],[\"source_amount\",{\"_index\":459,\"name\":{\"1138\":{},\"1165\":{}},\"comment\":{}}],[\"source_currencies\",{\"_index\":466,\"name\":{\"1172\":{}},\"comment\":{}}],[\"source_tab\",{\"_index\":273,\"name\":{\"463\":{}},\"comment\":{}}],[\"sourcecurrencyamount\",{\"_index\":469,\"name\":{\"1196\":{}},\"comment\":{}}],[\"sourcetag\",{\"_index\":132,\"name\":{\"180\":{},\"226\":{},\"345\":{},\"1743\":{},\"1803\":{},\"1820\":{},\"1840\":{},\"1857\":{},\"1890\":{},\"1908\":{},\"1926\":{},\"1963\":{},\"1979\":{},\"1997\":{},\"2017\":{},\"2033\":{},\"2048\":{},\"2066\":{},\"2083\":{},\"2100\":{},\"2121\":{},\"2140\":{},\"2157\":{},\"2178\":{},\"2195\":{},\"2211\":{},\"2231\":{},\"2254\":{},\"2280\":{},\"2309\":{},\"2339\":{},\"2365\":{},\"2386\":{},\"2404\":{},\"2424\":{},\"2442\":{},\"2458\":{},\"2475\":{},\"2491\":{},\"2521\":{},\"2539\":{},\"2565\":{},\"2590\":{},\"2610\":{},\"2629\":{},\"2647\":{},\"2665\":{},\"2684\":{},\"2702\":{}},\"comment\":{}}],[\"state\",{\"_index\":397,\"name\":{\"896\":{},\"1497\":{}},\"comment\":{}}],[\"state_accounting\",{\"_index\":571,\"name\":{\"1465\":{},\"1533\":{}},\"comment\":{}}],[\"stateaccounting\",{\"_index\":592,\"name\":{\"1562\":{}},\"comment\":{}}],[\"stateaccountingfinal\",{\"_index\":591,\"name\":{\"1561\":{}},\"comment\":{}}],[\"status\",{\"_index\":256,\"name\":{\"438\":{},\"486\":{},\"509\":{},\"550\":{},\"589\":{},\"635\":{},\"666\":{},\"699\":{},\"729\":{},\"767\":{},\"790\":{},\"813\":{},\"857\":{},\"872\":{},\"900\":{},\"952\":{},\"982\":{},\"1003\":{},\"1024\":{},\"1043\":{},\"1089\":{},\"1114\":{},\"1155\":{},\"1157\":{},\"1190\":{},\"1212\":{},\"1232\":{},\"1284\":{},\"1314\":{},\"1339\":{},\"1374\":{},\"1397\":{},\"1411\":{},\"1482\":{},\"1484\":{},\"1548\":{},\"1575\":{},\"1590\":{},\"1598\":{},\"1618\":{},\"1637\":{},\"1653\":{},\"1683\":{},\"1727\":{}},\"comment\":{}}],[\"stream\",{\"_index\":484,\"name\":{\"1244\":{}},\"comment\":{}}],[\"streams\",{\"_index\":475,\"name\":{\"1220\":{},\"1330\":{}},\"comment\":{}}],[\"streamtype\",{\"_index\":807,\"name\":{\"2776\":{}},\"comment\":{}}],[\"strict\",{\"_index\":282,\"name\":{\"495\":{},\"535\":{},\"684\":{},\"747\":{}},\"comment\":{}}],[\"subcommand\",{\"_index\":452,\"name\":{\"1122\":{},\"1132\":{},\"1141\":{}},\"comment\":{}}],[\"submit\",{\"_index\":17,\"name\":{\"17\":{}},\"comment\":{}}],[\"submitandwait\",{\"_index\":18,\"name\":{\"18\":{}},\"comment\":{}}],[\"submitmultisignedrequest\",{\"_index\":428,\"name\":{\"988\":{}},\"comment\":{}}],[\"submitmultisignedresponse\",{\"_index\":429,\"name\":{\"994\":{}},\"comment\":{}}],[\"submitrequest\",{\"_index\":412,\"name\":{\"958\":{}},\"comment\":{}}],[\"submitresponse\",{\"_index\":414,\"name\":{\"964\":{}},\"comment\":{}}],[\"submittabletransaction\",{\"_index\":636,\"name\":{\"1750\":{}},\"comment\":{}}],[\"subscribebook\",{\"_index\":481,\"name\":{\"1238\":{}},\"comment\":{}}],[\"subscriberequest\",{\"_index\":474,\"name\":{\"1218\":{}},\"comment\":{}}],[\"subscriberesponse\",{\"_index\":480,\"name\":{\"1229\":{}},\"comment\":{}}],[\"taker\",{\"_index\":440,\"name\":{\"1052\":{},\"1241\":{}},\"comment\":{}}],[\"taker_gets\",{\"_index\":348,\"name\":{\"675\":{},\"1053\":{},\"1239\":{},\"1346\":{}},\"comment\":{}}],[\"taker_gets_funded\",{\"_index\":442,\"name\":{\"1061\":{}},\"comment\":{}}],[\"taker_pays\",{\"_index\":349,\"name\":{\"676\":{},\"1054\":{},\"1240\":{},\"1347\":{}},\"comment\":{}}],[\"taker_pays_funded\",{\"_index\":443,\"name\":{\"1062\":{}},\"comment\":{}}],[\"takergets\",{\"_index\":203,\"name\":{\"322\":{},\"1069\":{},\"2300\":{}},\"comment\":{}}],[\"takergetscurrency\",{\"_index\":143,\"name\":{\"201\":{}},\"comment\":{}}],[\"takergetsissuer\",{\"_index\":144,\"name\":{\"202\":{}},\"comment\":{}}],[\"takerpays\",{\"_index\":202,\"name\":{\"321\":{},\"1068\":{},\"2301\":{}},\"comment\":{}}],[\"takerpayscurrency\",{\"_index\":141,\"name\":{\"199\":{}},\"comment\":{}}],[\"takerpaysissuer\",{\"_index\":142,\"name\":{\"200\":{}},\"comment\":{}}],[\"taxon\",{\"_index\":864,\"name\":{\"2879\":{}},\"comment\":{}}],[\"tfallowxrp\",{\"_index\":660,\"name\":{\"1777\":{},\"1784\":{}},\"comment\":{}}],[\"tfburnable\",{\"_index\":721,\"name\":{\"2260\":{},\"2265\":{}},\"comment\":{}}],[\"tfclearaccountcreateamount\",{\"_index\":780,\"name\":{\"2708\":{},\"2710\":{}},\"comment\":{}}],[\"tfclearfreeze\",{\"_index\":758,\"name\":{\"2501\":{},\"2507\":{}},\"comment\":{}}],[\"tfclearnoripple\",{\"_index\":756,\"name\":{\"2499\":{},\"2505\":{}},\"comment\":{}}],[\"tfclose\",{\"_index\":742,\"name\":{\"2346\":{},\"2349\":{}},\"comment\":{}}],[\"tfdisallowxrp\",{\"_index\":659,\"name\":{\"1776\":{},\"1783\":{}},\"comment\":{}}],[\"tffillorkill\",{\"_index\":730,\"name\":{\"2288\":{},\"2293\":{}},\"comment\":{}}],[\"tfgotmajority\",{\"_index\":705,\"name\":{\"2163\":{}},\"comment\":{}}],[\"tfimmediateorcancel\",{\"_index\":729,\"name\":{\"2287\":{},\"2292\":{}},\"comment\":{}}],[\"tflimitlptoken\",{\"_index\":675,\"name\":{\"1867\":{},\"1873\":{},\"1938\":{},\"1946\":{}},\"comment\":{}}],[\"tflimitquality\",{\"_index\":737,\"name\":{\"2317\":{},\"2321\":{}},\"comment\":{}}],[\"tflostmajority\",{\"_index\":706,\"name\":{\"2164\":{}},\"comment\":{}}],[\"tflptoken\",{\"_index\":671,\"name\":{\"1863\":{},\"1869\":{},\"1932\":{},\"1940\":{}},\"comment\":{}}],[\"tfnodirectripple\",{\"_index\":735,\"name\":{\"2315\":{},\"2319\":{}},\"comment\":{}}],[\"tfoneassetlptoken\",{\"_index\":674,\"name\":{\"1866\":{},\"1872\":{},\"1937\":{},\"1945\":{}},\"comment\":{}}],[\"tfoneassetwithdrawall\",{\"_index\":684,\"name\":{\"1934\":{},\"1942\":{}},\"comment\":{}}],[\"tfonlyxrp\",{\"_index\":722,\"name\":{\"2261\":{},\"2266\":{}},\"comment\":{}}],[\"tfoptionalauth\",{\"_index\":658,\"name\":{\"1775\":{},\"1782\":{}},\"comment\":{}}],[\"tfoptionaldesttag\",{\"_index\":656,\"name\":{\"1773\":{},\"1780\":{}},\"comment\":{}}],[\"tfpartialpayment\",{\"_index\":736,\"name\":{\"2316\":{},\"2320\":{}},\"comment\":{}}],[\"tfpassive\",{\"_index\":728,\"name\":{\"2286\":{},\"2291\":{}},\"comment\":{}}],[\"tfrenew\",{\"_index\":741,\"name\":{\"2345\":{},\"2348\":{}},\"comment\":{}}],[\"tfrequireauth\",{\"_index\":657,\"name\":{\"1774\":{},\"1781\":{}},\"comment\":{}}],[\"tfrequiredesttag\",{\"_index\":655,\"name\":{\"1772\":{},\"1779\":{}},\"comment\":{}}],[\"tfsell\",{\"_index\":731,\"name\":{\"2289\":{},\"2294\":{}},\"comment\":{}}],[\"tfsellnftoken\",{\"_index\":716,\"name\":{\"2237\":{},\"2239\":{}},\"comment\":{}}],[\"tfsetfauth\",{\"_index\":754,\"name\":{\"2497\":{},\"2503\":{}},\"comment\":{}}],[\"tfsetfreeze\",{\"_index\":757,\"name\":{\"2500\":{},\"2506\":{}},\"comment\":{}}],[\"tfsetnoripple\",{\"_index\":755,\"name\":{\"2498\":{},\"2504\":{}},\"comment\":{}}],[\"tfsingleasset\",{\"_index\":672,\"name\":{\"1864\":{},\"1870\":{},\"1935\":{},\"1943\":{}},\"comment\":{}}],[\"tftransferable\",{\"_index\":724,\"name\":{\"2263\":{},\"2268\":{}},\"comment\":{}}],[\"tftrustline\",{\"_index\":723,\"name\":{\"2262\":{},\"2267\":{}},\"comment\":{}}],[\"tftwoasset\",{\"_index\":673,\"name\":{\"1865\":{},\"1871\":{},\"1936\":{},\"1944\":{}},\"comment\":{}}],[\"tfwithdrawall\",{\"_index\":683,\"name\":{\"1933\":{},\"1941\":{}},\"comment\":{}}],[\"threads\",{\"_index\":553,\"name\":{\"1447\":{},\"1519\":{}},\"comment\":{}}],[\"ticket\",{\"_index\":235,\"name\":{\"387\":{},\"933\":{}},\"comment\":{}}],[\"ticketcount\",{\"_index\":76,\"name\":{\"81\":{},\"2482\":{}},\"comment\":{}}],[\"ticketcreate\",{\"_index\":752,\"name\":{\"2480\":{}},\"comment\":{}}],[\"ticketsequence\",{\"_index\":236,\"name\":{\"392\":{},\"1745\":{},\"1805\":{},\"1822\":{},\"1842\":{},\"1859\":{},\"1892\":{},\"1910\":{},\"1928\":{},\"1965\":{},\"1981\":{},\"1999\":{},\"2019\":{},\"2035\":{},\"2050\":{},\"2068\":{},\"2085\":{},\"2102\":{},\"2123\":{},\"2142\":{},\"2159\":{},\"2180\":{},\"2197\":{},\"2213\":{},\"2233\":{},\"2256\":{},\"2282\":{},\"2311\":{},\"2341\":{},\"2367\":{},\"2388\":{},\"2406\":{},\"2426\":{},\"2444\":{},\"2460\":{},\"2477\":{},\"2493\":{},\"2523\":{},\"2541\":{},\"2567\":{},\"2592\":{},\"2612\":{},\"2631\":{},\"2649\":{},\"2667\":{},\"2686\":{},\"2704\":{}},\"comment\":{}}],[\"ticksize\",{\"_index\":77,\"name\":{\"82\":{},\"1794\":{}},\"comment\":{}}],[\"time\",{\"_index\":572,\"name\":{\"1466\":{},\"1534\":{}},\"comment\":{}}],[\"time_interval\",{\"_index\":624,\"name\":{\"1719\":{}},\"comment\":{}}],[\"timeout\",{\"_index\":26,\"name\":{\"28\":{}},\"comment\":{}}],[\"timeouterror\",{\"_index\":876,\"name\":{\"2931\":{}},\"comment\":{}}],[\"tostring\",{\"_index\":868,\"name\":{\"2887\":{},\"2894\":{},\"2901\":{},\"2908\":{},\"2915\":{},\"2922\":{},\"2929\":{},\"2936\":{},\"2943\":{},\"2950\":{},\"2957\":{},\"2964\":{}},\"comment\":{}}],[\"total_coins\",{\"_index\":176,\"name\":{\"261\":{},\"842\":{}},\"comment\":{}}],[\"trace\",{\"_index\":27,\"name\":{\"29\":{}},\"comment\":{}}],[\"trading_fee\",{\"_index\":626,\"name\":{\"1721\":{}},\"comment\":{}}],[\"tradingfee\",{\"_index\":116,\"name\":{\"146\":{},\"424\":{},\"1899\":{},\"1917\":{}},\"comment\":{}}],[\"transaction\",{\"_index\":387,\"name\":{\"845\":{},\"1032\":{},\"1293\":{},\"1323\":{},\"1752\":{},\"1754\":{}},\"comment\":{}}],[\"transaction_hash\",{\"_index\":177,\"name\":{\"262\":{},\"843\":{}},\"comment\":{}}],[\"transactionandmetadata\",{\"_index\":637,\"name\":{\"1751\":{}},\"comment\":{}}],[\"transactionentryrequest\",{\"_index\":430,\"name\":{\"1009\":{}},\"comment\":{}}],[\"transactionentryresponse\",{\"_index\":432,\"name\":{\"1016\":{}},\"comment\":{}}],[\"transactionindex\",{\"_index\":796,\"name\":{\"2744\":{}},\"comment\":{}}],[\"transactionmetadata\",{\"_index\":798,\"name\":{\"2746\":{}},\"comment\":{}}],[\"transactionmetadatabase\",{\"_index\":792,\"name\":{\"2740\":{}},\"comment\":{}}],[\"transactionresult\",{\"_index\":797,\"name\":{\"2745\":{}},\"comment\":{}}],[\"transactions\",{\"_index\":178,\"name\":{\"263\":{},\"562\":{},\"726\":{},\"777\":{},\"788\":{},\"800\":{},\"831\":{},\"1680\":{}},\"comment\":{}}],[\"transactionstream\",{\"_index\":501,\"name\":{\"1283\":{}},\"comment\":{}}],[\"transactiontype\",{\"_index\":629,\"name\":{\"1735\":{},\"1786\":{},\"1809\":{},\"1826\":{},\"1846\":{},\"1875\":{},\"1896\":{},\"1914\":{},\"1948\":{},\"1969\":{},\"1985\":{},\"2003\":{},\"2023\":{},\"2039\":{},\"2054\":{},\"2072\":{},\"2089\":{},\"2106\":{},\"2127\":{},\"2146\":{},\"2166\":{},\"2184\":{},\"2201\":{},\"2217\":{},\"2241\":{},\"2270\":{},\"2296\":{},\"2323\":{},\"2351\":{},\"2371\":{},\"2392\":{},\"2416\":{},\"2434\":{},\"2448\":{},\"2464\":{},\"2481\":{},\"2509\":{},\"2527\":{},\"2545\":{},\"2571\":{},\"2596\":{},\"2616\":{},\"2635\":{},\"2653\":{},\"2671\":{},\"2690\":{}},\"comment\":{}}],[\"transfer_fee\",{\"_index\":817,\"name\":{\"2806\":{}},\"comment\":{}}],[\"transferfee\",{\"_index\":719,\"name\":{\"2244\":{},\"2877\":{}},\"comment\":{}}],[\"transferrate\",{\"_index\":78,\"name\":{\"83\":{},\"1793\":{}},\"comment\":{}}],[\"transferratetodecimal\",{\"_index\":836,\"name\":{\"2832\":{}},\"comment\":{}}],[\"transitions\",{\"_index\":594,\"name\":{\"1564\":{}},\"comment\":{}}],[\"trustset\",{\"_index\":760,\"name\":{\"2508\":{}},\"comment\":{}}],[\"trustsetflags\",{\"_index\":759,\"name\":{\"2502\":{}},\"comment\":{}}],[\"trustsetflagsinterface\",{\"_index\":753,\"name\":{\"2496\":{}},\"comment\":{}}],[\"tx\",{\"_index\":362,\"name\":{\"738\":{},\"821\":{},\"1692\":{}},\"comment\":{}}],[\"tx_blob\",{\"_index\":55,\"name\":{\"60\":{},\"739\":{},\"960\":{},\"970\":{},\"1000\":{},\"1693\":{}},\"comment\":{}}],[\"tx_hash\",{\"_index\":431,\"name\":{\"1011\":{}},\"comment\":{}}],[\"tx_json\",{\"_index\":418,\"name\":{\"971\":{},\"990\":{},\"1001\":{},\"1022\":{}},\"comment\":{}}],[\"txn_count\",{\"_index\":310,\"name\":{\"557\":{},\"1255\":{}},\"comment\":{}}],[\"txnsignature\",{\"_index\":633,\"name\":{\"1746\":{},\"1806\":{},\"1823\":{},\"1843\":{},\"1860\":{},\"1893\":{},\"1911\":{},\"1929\":{},\"1966\":{},\"1982\":{},\"2000\":{},\"2020\":{},\"2036\":{},\"2051\":{},\"2069\":{},\"2086\":{},\"2103\":{},\"2124\":{},\"2143\":{},\"2160\":{},\"2181\":{},\"2198\":{},\"2214\":{},\"2234\":{},\"2257\":{},\"2283\":{},\"2312\":{},\"2342\":{},\"2368\":{},\"2389\":{},\"2407\":{},\"2427\":{},\"2445\":{},\"2461\":{},\"2478\":{},\"2494\":{},\"2524\":{},\"2542\":{},\"2568\":{},\"2593\":{},\"2613\":{},\"2632\":{},\"2650\":{},\"2668\":{},\"2687\":{},\"2705\":{},\"2768\":{}},\"comment\":{}}],[\"txrequest\",{\"_index\":433,\"name\":{\"1030\":{}},\"comment\":{}}],[\"txresponse\",{\"_index\":437,\"name\":{\"1039\":{}},\"comment\":{}}],[\"type\",{\"_index\":257,\"name\":{\"439\":{},\"487\":{},\"510\":{},\"551\":{},\"590\":{},\"636\":{},\"646\":{},\"667\":{},\"700\":{},\"730\":{},\"768\":{},\"791\":{},\"805\":{},\"814\":{},\"858\":{},\"873\":{},\"883\":{},\"901\":{},\"953\":{},\"983\":{},\"1004\":{},\"1025\":{},\"1044\":{},\"1090\":{},\"1115\":{},\"1158\":{},\"1191\":{},\"1213\":{},\"1233\":{},\"1247\":{},\"1267\":{},\"1285\":{},\"1297\":{},\"1306\":{},\"1315\":{},\"1326\":{},\"1340\":{},\"1375\":{},\"1398\":{},\"1412\":{},\"1485\":{},\"1549\":{},\"1576\":{},\"1591\":{},\"1599\":{},\"1619\":{},\"1638\":{},\"1654\":{},\"1684\":{},\"1728\":{}},\"comment\":{}}],[\"unauthorize\",{\"_index\":696,\"name\":{\"2074\":{}},\"comment\":{}}],[\"unexpectederror\",{\"_index\":870,\"name\":{\"2889\":{}},\"comment\":{}}],[\"unixtimetorippletime\",{\"_index\":831,\"name\":{\"2827\":{}},\"comment\":{}}],[\"unlimited\",{\"_index\":597,\"name\":{\"1573\":{}},\"comment\":{}}],[\"unlmodify\",{\"_index\":764,\"name\":{\"2526\":{}},\"comment\":{}}],[\"unlmodifydisabling\",{\"_index\":765,\"name\":{\"2529\":{}},\"comment\":{}}],[\"unlmodifyvalidator\",{\"_index\":766,\"name\":{\"2530\":{}},\"comment\":{}}],[\"unsubscribebook\",{\"_index\":511,\"name\":{\"1345\":{}},\"comment\":{}}],[\"unsubscriberequest\",{\"_index\":509,\"name\":{\"1328\":{}},\"comment\":{}}],[\"unsubscriberesponse\",{\"_index\":510,\"name\":{\"1336\":{}},\"comment\":{}}],[\"uptime\",{\"_index\":573,\"name\":{\"1467\":{},\"1535\":{}},\"comment\":{}}],[\"uri\",{\"_index\":148,\"name\":{\"211\":{},\"315\":{},\"614\":{},\"2057\":{},\"2245\":{},\"2810\":{}},\"comment\":{}}],[\"url\",{\"_index\":7,\"name\":{\"7\":{},\"1224\":{}},\"comment\":{}}],[\"url_password\",{\"_index\":479,\"name\":{\"1226\":{}},\"comment\":{}}],[\"url_username\",{\"_index\":478,\"name\":{\"1225\":{}},\"comment\":{}}],[\"usagecontext\",{\"_index\":40,\"name\":{\"42\":{}},\"comment\":{}}],[\"validate\",{\"_index\":634,\"name\":{\"1748\":{}},\"comment\":{}}],[\"validated\",{\"_index\":280,\"name\":{\"482\":{},\"507\":{},\"548\":{},\"631\":{},\"664\":{},\"727\":{},\"740\":{},\"898\":{},\"950\":{},\"1087\":{},\"1112\":{},\"1188\":{},\"1294\":{},\"1324\":{},\"1681\":{},\"1694\":{},\"1725\":{}},\"comment\":{}}],[\"validated_ledger\",{\"_index\":574,\"name\":{\"1468\":{},\"1536\":{}},\"comment\":{}}],[\"validated_ledger_index\",{\"_index\":427,\"name\":{\"980\":{}},\"comment\":{}}],[\"validated_ledgers\",{\"_index\":492,\"name\":{\"1256\":{},\"1265\":{}},\"comment\":{}}],[\"validation_public_key\",{\"_index\":500,\"name\":{\"1282\":{}},\"comment\":{}}],[\"validation_quorum\",{\"_index\":575,\"name\":{\"1476\":{},\"1545\":{}},\"comment\":{}}],[\"validationerror\",{\"_index\":878,\"name\":{\"2945\":{}},\"comment\":{}}],[\"validationstream\",{\"_index\":494,\"name\":{\"1266\":{}},\"comment\":{}}],[\"validator_list\",{\"_index\":577,\"name\":{\"1478\":{}},\"comment\":{}}],[\"validator_list_expires\",{\"_index\":576,\"name\":{\"1477\":{},\"1546\":{}},\"comment\":{}}],[\"validatortodisable\",{\"_index\":189,\"name\":{\"283\":{}},\"comment\":{}}],[\"validatortoreenable\",{\"_index\":190,\"name\":{\"284\":{}},\"comment\":{}}],[\"value\",{\"_index\":364,\"name\":{\"743\":{},\"2756\":{},\"2763\":{}},\"comment\":{}}],[\"verifypaymentchannelclaim\",{\"_index\":854,\"name\":{\"2864\":{}},\"comment\":{}}],[\"verifysignature\",{\"_index\":881,\"name\":{\"2966\":{}},\"comment\":{}}],[\"verifytransaction\",{\"_index\":57,\"name\":{\"62\":{}},\"comment\":{}}],[\"vote_slots\",{\"_index\":627,\"name\":{\"1722\":{}},\"comment\":{}}],[\"voteentry\",{\"_index\":243,\"name\":{\"421\":{}},\"comment\":{}}],[\"voteslot\",{\"_index\":242,\"name\":{\"420\":{}},\"comment\":{}}],[\"voteslots\",{\"_index\":117,\"name\":{\"147\":{}},\"comment\":{}}],[\"voteweight\",{\"_index\":244,\"name\":{\"425\":{}},\"comment\":{}}],[\"wallet\",{\"_index\":41,\"name\":{\"43\":{}},\"comment\":{}}],[\"walletfromsecretnumbers\",{\"_index\":59,\"name\":{\"64\":{}},\"comment\":{}}],[\"walletlocator\",{\"_index\":79,\"name\":{\"84\":{},\"2787\":{}},\"comment\":{}}],[\"warning\",{\"_index\":259,\"name\":{\"441\":{},\"488\":{},\"511\":{},\"552\":{},\"591\":{},\"637\":{},\"668\":{},\"701\":{},\"731\":{},\"769\":{},\"792\":{},\"815\":{},\"859\":{},\"874\":{},\"902\":{},\"954\":{},\"984\":{},\"1005\":{},\"1026\":{},\"1045\":{},\"1091\":{},\"1116\":{},\"1159\":{},\"1192\":{},\"1214\":{},\"1234\":{},\"1341\":{},\"1376\":{},\"1399\":{},\"1413\":{},\"1486\":{},\"1550\":{},\"1577\":{},\"1592\":{},\"1620\":{},\"1639\":{},\"1655\":{},\"1685\":{},\"1729\":{}},\"comment\":{}}],[\"warnings\",{\"_index\":260,\"name\":{\"442\":{},\"489\":{},\"512\":{},\"553\":{},\"592\":{},\"638\":{},\"669\":{},\"702\":{},\"732\":{},\"770\":{},\"793\":{},\"816\":{},\"860\":{},\"875\":{},\"903\":{},\"955\":{},\"985\":{},\"1006\":{},\"1027\":{},\"1046\":{},\"1092\":{},\"1117\":{},\"1160\":{},\"1193\":{},\"1215\":{},\"1235\":{},\"1295\":{},\"1342\":{},\"1377\":{},\"1400\":{},\"1414\":{},\"1487\":{},\"1551\":{},\"1578\":{},\"1593\":{},\"1621\":{},\"1640\":{},\"1656\":{},\"1686\":{},\"1730\":{}},\"comment\":{}}],[\"waslockingchainsend\",{\"_index\":770,\"name\":{\"2554\":{},\"2579\":{}},\"comment\":{}}],[\"xchain_owned_claim_id\",{\"_index\":407,\"name\":{\"937\":{}},\"comment\":{}}],[\"xchain_owned_create_account_claim_id\",{\"_index\":408,\"name\":{\"938\":{}},\"comment\":{}}],[\"xchainaccountclaimcount\",{\"_index\":123,\"name\":{\"159\":{}},\"comment\":{}}],[\"xchainaccountcreatecommit\",{\"_index\":777,\"name\":{\"2670\":{}},\"comment\":{}}],[\"xchainaccountcreatecount\",{\"_index\":122,\"name\":{\"158\":{},\"413\":{},\"2555\":{}},\"comment\":{}}],[\"xchainaddaccountcreateattestation\",{\"_index\":767,\"name\":{\"2544\":{}},\"comment\":{}}],[\"xchainaddclaimattestation\",{\"_index\":771,\"name\":{\"2570\":{}},\"comment\":{}}],[\"xchainbridge\",{\"_index\":120,\"name\":{\"156\":{},\"399\":{},\"412\":{},\"2556\":{},\"2580\":{},\"2597\":{},\"2617\":{},\"2636\":{},\"2654\":{},\"2672\":{},\"2691\":{},\"2815\":{}},\"comment\":{}}],[\"xchainclaim\",{\"_index\":772,\"name\":{\"2595\":{}},\"comment\":{}}],[\"xchainclaimattestations\",{\"_index\":239,\"name\":{\"402\":{}},\"comment\":{}}],[\"xchainclaimid\",{\"_index\":121,\"name\":{\"157\":{},\"400\":{},\"2581\":{},\"2598\":{},\"2618\":{}},\"comment\":{}}],[\"xchaincommit\",{\"_index\":773,\"name\":{\"2615\":{}},\"comment\":{}}],[\"xchaincreateaccountattestations\",{\"_index\":241,\"name\":{\"414\":{}},\"comment\":{}}],[\"xchaincreatebridge\",{\"_index\":775,\"name\":{\"2634\":{}},\"comment\":{}}],[\"xchaincreateclaimid\",{\"_index\":776,\"name\":{\"2652\":{}},\"comment\":{}}],[\"xchainmodifybridge\",{\"_index\":778,\"name\":{\"2689\":{}},\"comment\":{}}],[\"xchainmodifybridgeflags\",{\"_index\":779,\"name\":{\"2707\":{}},\"comment\":{}}],[\"xchainmodifybridgeflagsinterface\",{\"_index\":781,\"name\":{\"2709\":{}},\"comment\":{}}],[\"xchainownedclaimid\",{\"_index\":237,\"name\":{\"396\":{}},\"comment\":{}}],[\"xchainownedcreateaccountclaimid\",{\"_index\":240,\"name\":{\"409\":{}},\"comment\":{}}],[\"xrp\",{\"_index\":799,\"name\":{\"2748\":{}},\"comment\":{}}],[\"xrplerror\",{\"_index\":866,\"name\":{\"2882\":{}},\"comment\":{}}],[\"xrplfauceterror\",{\"_index\":880,\"name\":{\"2959\":{}},\"comment\":{}}],[\"xrptodrops\",{\"_index\":826,\"name\":{\"2822\":{}},\"comment\":{}}]],\"pipeline\":[]}}"); \ No newline at end of file diff --git a/docs/assets/style.css b/docs/assets/style.css index 2d02570d01..258146fc05 100644 --- a/docs/assets/style.css +++ b/docs/assets/style.css @@ -6,17 +6,35 @@ --light-color-background-warning: #e6e600; --light-color-icon-background: var(--light-color-background); --light-color-accent: #c5c7c9; + --light-color-active-menu-item: var(--light-color-accent); --light-color-text: #222; - --light-color-text-aside: #707070; - --light-color-link: #4da6ff; - --light-color-ts: #db1373; - --light-color-ts-interface: #139d2c; - --light-color-ts-enum: #9c891a; - --light-color-ts-class: #2484e5; + --light-color-text-aside: #6e6e6e; + --light-color-link: #1f70c2; + + --light-color-ts-project: #b111c9; + --light-color-ts-module: var(--light-color-ts-project); + --light-color-ts-namespace: var(--light-color-ts-project); + --light-color-ts-enum: #7e6f15; + --light-color-ts-enum-member: var(--light-color-ts-enum); + --light-color-ts-variable: #4760ec; --light-color-ts-function: #572be7; - --light-color-ts-namespace: #b111c9; - --light-color-ts-private: #707070; - --light-color-ts-variable: #4d68ff; + --light-color-ts-class: #1f70c2; + --light-color-ts-interface: #108024; + --light-color-ts-constructor: var(--light-color-ts-class); + --light-color-ts-property: var(--light-color-ts-variable); + --light-color-ts-method: var(--light-color-ts-function); + --light-color-ts-call-signature: var(--light-color-ts-method); + --light-color-ts-index-signature: var(--light-color-ts-property); + --light-color-ts-constructor-signature: var(--light-color-ts-constructor); + --light-color-ts-parameter: var(--light-color-ts-variable); + /* type literal not included as links will never be generated to it */ + --light-color-ts-type-parameter: var(--light-color-ts-type-alias); + --light-color-ts-accessor: var(--light-color-ts-property); + --light-color-ts-get-signature: var(--light-color-ts-accessor); + --light-color-ts-set-signature: var(--light-color-ts-accessor); + --light-color-ts-type-alias: #d51270; + /* reference not included as links will be colored with the kind that it points to */ + --light-external-icon: url("data:image/svg+xml;utf8,"); --light-color-scheme: light; @@ -27,17 +45,35 @@ --dark-color-warning-text: #222; --dark-color-icon-background: var(--dark-color-background-secondary); --dark-color-accent: #9096a2; + --dark-color-active-menu-item: #5d5d6a; --dark-color-text: #f5f5f5; --dark-color-text-aside: #dddddd; --dark-color-link: #00aff4; - --dark-color-ts: #ff6492; - --dark-color-ts-interface: #6cff87; + + --dark-color-ts-project: #e358ff; + --dark-color-ts-module: var(--dark-color-ts-project); + --dark-color-ts-namespace: var(--dark-color-ts-project); --dark-color-ts-enum: #f4d93e; - --dark-color-ts-class: #61b0ff; - --dark-color-ts-function: #9772ff; - --dark-color-ts-namespace: #e14dff; - --dark-color-ts-private: #e2e2e2; - --dark-color-ts-variable: #4d68ff; + --dark-color-ts-enum-member: var(--dark-color-ts-enum); + --dark-color-ts-variable: #798dff; + --dark-color-ts-function: #a280ff; + --dark-color-ts-class: #8ac4ff; + --dark-color-ts-interface: #6cff87; + --dark-color-ts-constructor: var(--dark-color-ts-class); + --dark-color-ts-property: var(--dark-color-ts-variable); + --dark-color-ts-method: var(--dark-color-ts-function); + --dark-color-ts-call-signature: var(--dark-color-ts-method); + --dark-color-ts-index-signature: var(--dark-color-ts-property); + --dark-color-ts-constructor-signature: var(--dark-color-ts-constructor); + --dark-color-ts-parameter: var(--dark-color-ts-variable); + /* type literal not included as links will never be generated to it */ + --dark-color-ts-type-parameter: var(--dark-color-ts-type-alias); + --dark-color-ts-accessor: var(--dark-color-ts-property); + --dark-color-ts-get-signature: var(--dark-color-ts-accessor); + --dark-color-ts-set-signature: var(--dark-color-ts-accessor); + --dark-color-ts-type-alias: #ff6492; + /* reference not included as links will be colored with the kind that it points to */ + --dark-external-icon: url("data:image/svg+xml;utf8,"); --dark-color-scheme: dark; } @@ -50,17 +86,34 @@ --color-warning-text: var(--light-color-warning-text); --color-icon-background: var(--light-color-icon-background); --color-accent: var(--light-color-accent); + --color-active-menu-item: var(--light-color-active-menu-item); --color-text: var(--light-color-text); --color-text-aside: var(--light-color-text-aside); --color-link: var(--light-color-link); - --color-ts: var(--light-color-ts); - --color-ts-interface: var(--light-color-ts-interface); - --color-ts-enum: var(--light-color-ts-enum); - --color-ts-class: var(--light-color-ts-class); - --color-ts-function: var(--light-color-ts-function); + + --color-ts-module: var(--light-color-ts-module); --color-ts-namespace: var(--light-color-ts-namespace); - --color-ts-private: var(--light-color-ts-private); + --color-ts-enum: var(--light-color-ts-enum); + --color-ts-enum-member: var(--light-color-ts-enum-member); --color-ts-variable: var(--light-color-ts-variable); + --color-ts-function: var(--light-color-ts-function); + --color-ts-class: var(--light-color-ts-class); + --color-ts-interface: var(--light-color-ts-interface); + --color-ts-constructor: var(--light-color-ts-constructor); + --color-ts-property: var(--light-color-ts-property); + --color-ts-method: var(--light-color-ts-method); + --color-ts-call-signature: var(--light-color-ts-call-signature); + --color-ts-index-signature: var(--light-color-ts-index-signature); + --color-ts-constructor-signature: var( + --light-color-ts-constructor-signature + ); + --color-ts-parameter: var(--light-color-ts-parameter); + --color-ts-type-parameter: var(--light-color-ts-type-parameter); + --color-ts-accessor: var(--light-color-ts-accessor); + --color-ts-get-signature: var(--light-color-ts-get-signature); + --color-ts-set-signature: var(--light-color-ts-set-signature); + --color-ts-type-alias: var(--light-color-ts-type-alias); + --external-icon: var(--light-external-icon); --color-scheme: var(--light-color-scheme); } @@ -74,17 +127,34 @@ --color-warning-text: var(--dark-color-warning-text); --color-icon-background: var(--dark-color-icon-background); --color-accent: var(--dark-color-accent); + --color-active-menu-item: var(--dark-color-active-menu-item); --color-text: var(--dark-color-text); --color-text-aside: var(--dark-color-text-aside); --color-link: var(--dark-color-link); - --color-ts: var(--dark-color-ts); - --color-ts-interface: var(--dark-color-ts-interface); - --color-ts-enum: var(--dark-color-ts-enum); - --color-ts-class: var(--dark-color-ts-class); - --color-ts-function: var(--dark-color-ts-function); + + --color-ts-module: var(--dark-color-ts-module); --color-ts-namespace: var(--dark-color-ts-namespace); - --color-ts-private: var(--dark-color-ts-private); + --color-ts-enum: var(--dark-color-ts-enum); + --color-ts-enum-member: var(--dark-color-ts-enum-member); --color-ts-variable: var(--dark-color-ts-variable); + --color-ts-function: var(--dark-color-ts-function); + --color-ts-class: var(--dark-color-ts-class); + --color-ts-interface: var(--dark-color-ts-interface); + --color-ts-constructor: var(--dark-color-ts-constructor); + --color-ts-property: var(--dark-color-ts-property); + --color-ts-method: var(--dark-color-ts-method); + --color-ts-call-signature: var(--dark-color-ts-call-signature); + --color-ts-index-signature: var(--dark-color-ts-index-signature); + --color-ts-constructor-signature: var( + --dark-color-ts-constructor-signature + ); + --color-ts-parameter: var(--dark-color-ts-parameter); + --color-ts-type-parameter: var(--dark-color-ts-type-parameter); + --color-ts-accessor: var(--dark-color-ts-accessor); + --color-ts-get-signature: var(--dark-color-ts-get-signature); + --color-ts-set-signature: var(--dark-color-ts-set-signature); + --color-ts-type-alias: var(--dark-color-ts-type-alias); + --external-icon: var(--dark-external-icon); --color-scheme: var(--dark-color-scheme); } @@ -105,17 +175,34 @@ body { --color-warning-text: var(--light-color-warning-text); --color-icon-background: var(--light-color-icon-background); --color-accent: var(--light-color-accent); + --color-active-menu-item: var(--light-color-active-menu-item); --color-text: var(--light-color-text); --color-text-aside: var(--light-color-text-aside); --color-link: var(--light-color-link); - --color-ts: var(--light-color-ts); - --color-ts-interface: var(--light-color-ts-interface); - --color-ts-enum: var(--light-color-ts-enum); - --color-ts-class: var(--light-color-ts-class); - --color-ts-function: var(--light-color-ts-function); + + --color-ts-module: var(--light-color-ts-module); --color-ts-namespace: var(--light-color-ts-namespace); - --color-ts-private: var(--light-color-ts-private); + --color-ts-enum: var(--light-color-ts-enum); + --color-ts-enum-member: var(--light-color-ts-enum-member); --color-ts-variable: var(--light-color-ts-variable); + --color-ts-function: var(--light-color-ts-function); + --color-ts-class: var(--light-color-ts-class); + --color-ts-interface: var(--light-color-ts-interface); + --color-ts-constructor: var(--light-color-ts-constructor); + --color-ts-property: var(--light-color-ts-property); + --color-ts-method: var(--light-color-ts-method); + --color-ts-call-signature: var(--light-color-ts-call-signature); + --color-ts-index-signature: var(--light-color-ts-index-signature); + --color-ts-constructor-signature: var( + --light-color-ts-constructor-signature + ); + --color-ts-parameter: var(--light-color-ts-parameter); + --color-ts-type-parameter: var(--light-color-ts-type-parameter); + --color-ts-accessor: var(--light-color-ts-accessor); + --color-ts-get-signature: var(--light-color-ts-get-signature); + --color-ts-set-signature: var(--light-color-ts-set-signature); + --color-ts-type-alias: var(--light-color-ts-type-alias); + --external-icon: var(--light-external-icon); --color-scheme: var(--light-color-scheme); } @@ -127,17 +214,34 @@ body { --color-warning-text: var(--dark-color-warning-text); --color-icon-background: var(--dark-color-icon-background); --color-accent: var(--dark-color-accent); + --color-active-menu-item: var(--dark-color-active-menu-item); --color-text: var(--dark-color-text); --color-text-aside: var(--dark-color-text-aside); --color-link: var(--dark-color-link); - --color-ts: var(--dark-color-ts); - --color-ts-interface: var(--dark-color-ts-interface); - --color-ts-enum: var(--dark-color-ts-enum); - --color-ts-class: var(--dark-color-ts-class); - --color-ts-function: var(--dark-color-ts-function); + + --color-ts-module: var(--dark-color-ts-module); --color-ts-namespace: var(--dark-color-ts-namespace); - --color-ts-private: var(--dark-color-ts-private); + --color-ts-enum: var(--dark-color-ts-enum); + --color-ts-enum-member: var(--dark-color-ts-enum-member); --color-ts-variable: var(--dark-color-ts-variable); + --color-ts-function: var(--dark-color-ts-function); + --color-ts-class: var(--dark-color-ts-class); + --color-ts-interface: var(--dark-color-ts-interface); + --color-ts-constructor: var(--dark-color-ts-constructor); + --color-ts-property: var(--dark-color-ts-property); + --color-ts-method: var(--dark-color-ts-method); + --color-ts-call-signature: var(--dark-color-ts-call-signature); + --color-ts-index-signature: var(--dark-color-ts-index-signature); + --color-ts-constructor-signature: var( + --dark-color-ts-constructor-signature + ); + --color-ts-parameter: var(--dark-color-ts-parameter); + --color-ts-type-parameter: var(--dark-color-ts-type-parameter); + --color-ts-accessor: var(--dark-color-ts-accessor); + --color-ts-get-signature: var(--dark-color-ts-get-signature); + --color-ts-set-signature: var(--dark-color-ts-set-signature); + --color-ts-type-alias: var(--dark-color-ts-type-alias); + --external-icon: var(--dark-external-icon); --color-scheme: var(--dark-color-scheme); } @@ -156,6 +260,16 @@ h6 { line-height: 1.2; } +h1 > a, +h2 > a, +h3 > a, +h4 > a, +h5 > a, +h6 > a { + text-decoration: none; + color: var(--color-text); +} + h1 { font-size: 1.875rem; margin: 0.67rem 0; @@ -190,12 +304,6 @@ h6 { text-transform: uppercase; } -pre { - white-space: pre; - white-space: pre-wrap; - word-wrap: break-word; -} - dl, menu, ol, @@ -208,26 +316,10 @@ dd { } .container { - max-width: 1600px; + max-width: 1700px; padding: 0 2rem; } -@media (min-width: 640px) { - .container { - padding: 0 4rem; - } -} -@media (min-width: 1200px) { - .container { - padding: 0 8rem; - } -} -@media (min-width: 1600px) { - .container { - padding: 0 12rem; - } -} - /* Footer */ .tsd-generator { border-top: 1px solid var(--color-accent); @@ -243,26 +335,9 @@ dd { } .container-main { - display: flex; - justify-content: space-between; - position: relative; margin: 0 auto; -} - -.col-4, -.col-8 { - box-sizing: border-box; - float: left; - padding: 2rem 1rem; -} - -.col-4 { - flex: 0 0 25%; -} -.col-8 { - flex: 1 0; - flex-wrap: wrap; - padding-left: 0; + /* toolbar, footer, margin */ + min-height: calc(100vh - 41px - 56px - 4rem); } @keyframes fade-in { @@ -305,22 +380,6 @@ dd { opacity: 0; } } -@keyframes shift-to-left { - from { - transform: translate(0, 0); - } - to { - transform: translate(-25%, 0); - } -} -@keyframes unshift-to-left { - from { - transform: translate(-25%, 0); - } - to { - transform: translate(0, 0); - } -} @keyframes pop-in-from-right { from { transform: translate(100%, 0); @@ -369,13 +428,29 @@ pre { } pre { + position: relative; + white-space: pre; + white-space: pre-wrap; + word-wrap: break-word; padding: 10px; - border: 0.1em solid var(--color-accent); + border: 1px solid var(--color-accent); } pre code { padding: 0; font-size: 100%; } +pre > button { + position: absolute; + top: 10px; + right: 10px; + opacity: 0; + transition: opacity 0.1s; + box-sizing: border-box; +} +pre:hover > button, +pre > button.visible { + opacity: 1; +} blockquote { margin: 1em 0; @@ -391,13 +466,12 @@ blockquote { padding: 0 0 0 20px; margin: 0; } -.tsd-typography h4, .tsd-typography .tsd-index-panel h3, .tsd-index-panel .tsd-typography h3, +.tsd-typography h4, .tsd-typography h5, .tsd-typography h6 { font-size: 1em; - margin: 0; } .tsd-typography h5, .tsd-typography h6 { @@ -408,91 +482,18 @@ blockquote { .tsd-typography ol { margin: 1em 0; } - -@media (max-width: 1024px) { - html .col-content { - float: none; - max-width: 100%; - width: 100%; - padding-top: 3rem; - } - html .col-menu { - position: fixed !important; - overflow-y: auto; - -webkit-overflow-scrolling: touch; - z-index: 1024; - top: 0 !important; - bottom: 0 !important; - left: auto !important; - right: 0 !important; - padding: 1.5rem 1.5rem 0 0; - max-width: 25rem; - visibility: hidden; - background-color: var(--color-background); - transform: translate(100%, 0); - } - html .col-menu > *:last-child { - padding-bottom: 20px; - } - html .overlay { - content: ""; - display: block; - position: fixed; - z-index: 1023; - top: 0; - left: 0; - right: 0; - bottom: 0; - background-color: rgba(0, 0, 0, 0.75); - visibility: hidden; - } - - .to-has-menu .overlay { - animation: fade-in 0.4s; - } - - .to-has-menu :is(header, footer, .col-content) { - animation: shift-to-left 0.4s; - } - - .to-has-menu .col-menu { - animation: pop-in-from-right 0.4s; - } - - .from-has-menu .overlay { - animation: fade-out 0.4s; - } - - .from-has-menu :is(header, footer, .col-content) { - animation: unshift-to-left 0.4s; - } - - .from-has-menu .col-menu { - animation: pop-out-to-right 0.4s; - } - - .has-menu body { - overflow: hidden; - } - .has-menu .overlay { - visibility: visible; - } - .has-menu :is(header, footer, .col-content) { - transform: translate(-25%, 0); - } - .has-menu .col-menu { - visibility: visible; - transform: translate(0, 0); - display: grid; - align-items: center; - grid-template-rows: auto 1fr; - grid-gap: 1.5rem; - max-height: 100vh; - padding: 1rem 2rem; - } - .has-menu .tsd-navigation { - max-height: 100%; - } +.tsd-typography table { + border-collapse: collapse; + border: none; +} +.tsd-typography td, +.tsd-typography th { + padding: 6px 13px; + border: 1px solid var(--color-accent); +} +.tsd-typography thead, +.tsd-typography tr:nth-child(even) { + background-color: var(--color-background-secondary); } .tsd-breadcrumb { @@ -673,43 +674,6 @@ input[type="checkbox"]:checked ~ svg .tsd-checkbox-checkmark { -o-page-break-inside: avoid; page-break-inside: avoid; } -.tsd-index-panel a, -.tsd-index-panel a.tsd-parent-kind-module { - color: var(--color-ts); -} -.tsd-index-panel a.tsd-parent-kind-interface { - color: var(--color-ts-interface); -} -.tsd-index-panel a.tsd-parent-kind-enum { - color: var(--color-ts-enum); -} -.tsd-index-panel a.tsd-parent-kind-class { - color: var(--color-ts-class); -} -.tsd-index-panel a.tsd-kind-module { - color: var(--color-ts-namespace); -} -.tsd-index-panel a.tsd-kind-interface { - color: var(--color-ts-interface); -} -.tsd-index-panel a.tsd-kind-enum { - color: var(--color-ts-enum); -} -.tsd-index-panel a.tsd-kind-class { - color: var(--color-ts-class); -} -.tsd-index-panel a.tsd-kind-function { - color: var(--color-ts-function); -} -.tsd-index-panel a.tsd-kind-namespace { - color: var(--color-ts-namespace); -} -.tsd-index-panel a.tsd-kind-variable { - color: var(--color-ts-variable); -} -.tsd-index-panel a.tsd-is-private { - color: var(--color-ts-private); -} .tsd-flag { display: inline-block; @@ -724,7 +688,7 @@ input[type="checkbox"]:checked ~ svg .tsd-checkbox-checkmark { } .tsd-anchor { - position: absolute; + position: relative; top: -100px; } @@ -738,108 +702,64 @@ input[type="checkbox"]:checked ~ svg .tsd-checkbox-checkmark { margin-bottom: 0; border-bottom: none; } -.tsd-member [data-tsd-kind] { - color: var(--color-ts); -} -.tsd-member [data-tsd-kind="Interface"] { - color: var(--color-ts-interface); -} -.tsd-member [data-tsd-kind="Enum"] { - color: var(--color-ts-enum); -} -.tsd-member [data-tsd-kind="Class"] { - color: var(--color-ts-class); + +.tsd-navigation.settings { + margin: 1rem 0; } -.tsd-member [data-tsd-kind="Private"] { - color: var(--color-ts-private); +.tsd-navigation > a, +.tsd-navigation .tsd-accordion-summary { + width: calc(100% - 0.5rem); } - -.tsd-navigation a { - display: block; - margin: 0.4rem 0; - border-left: 2px solid transparent; +.tsd-navigation a, +.tsd-navigation summary > span, +.tsd-page-navigation a { + display: inline-flex; + align-items: center; + padding: 0.25rem; color: var(--color-text); text-decoration: none; - transition: border-left-color 0.1s; + box-sizing: border-box; } -.tsd-navigation a:hover { +.tsd-navigation a.current, +.tsd-page-navigation a.current { + background: var(--color-active-menu-item); +} +.tsd-navigation a:hover, +.tsd-page-navigation a:hover { text-decoration: underline; } -.tsd-navigation ul { - margin: 0; +.tsd-navigation ul, +.tsd-page-navigation ul { + margin-top: 0; + margin-bottom: 0; padding: 0; list-style: none; } -.tsd-navigation li { +.tsd-navigation li, +.tsd-page-navigation li { padding: 0; + max-width: 100%; } - -.tsd-navigation.primary .tsd-accordion-details > ul { - margin-top: 0.75rem; -} -.tsd-navigation.primary a { - padding: 0.75rem 0.5rem; - margin: 0; +.tsd-nested-navigation { + margin-left: 3rem; } -.tsd-navigation.primary ul li a { - margin-left: 0.5rem; +.tsd-nested-navigation > li > details { + margin-left: -1.5rem; } -.tsd-navigation.primary ul li li a { +.tsd-small-nested-navigation { margin-left: 1.5rem; } -.tsd-navigation.primary ul li li li a { - margin-left: 2.5rem; -} -.tsd-navigation.primary ul li li li li a { - margin-left: 3.5rem; -} -.tsd-navigation.primary ul li li li li li a { - margin-left: 4.5rem; -} -.tsd-navigation.primary ul li li li li li li a { - margin-left: 5.5rem; -} -.tsd-navigation.primary li.current > a { - border-left: 0.15rem var(--color-text) solid; -} -.tsd-navigation.primary li.selected > a { - font-weight: bold; - border-left: 0.2rem var(--color-text) solid; -} -.tsd-navigation.primary ul li a:hover { - border-left: 0.2rem var(--color-text-aside) solid; -} -.tsd-navigation.primary li.globals + li > span, -.tsd-navigation.primary li.globals + li > a { - padding-top: 20px; +.tsd-small-nested-navigation > li > details { + margin-left: -1.5rem; } -.tsd-navigation.secondary.tsd-navigation--toolbar-hide { - max-height: calc(100vh - 1rem); - top: 0.5rem; +.tsd-nested-navigation > li > a, +.tsd-nested-navigation > li > span { + width: calc(100% - 1.75rem - 0.5rem); } -.tsd-navigation.secondary > ul { - display: inline; - padding-right: 0.5rem; - transition: opacity 0.2s; -} -.tsd-navigation.secondary ul li a { - padding-left: 0; -} -.tsd-navigation.secondary ul li li a { - padding-left: 1.1rem; -} -.tsd-navigation.secondary ul li li li a { - padding-left: 2.2rem; -} -.tsd-navigation.secondary ul li li li li a { - padding-left: 3.3rem; -} -.tsd-navigation.secondary ul li li li li li a { - padding-left: 4.4rem; -} -.tsd-navigation.secondary ul li li li li li li a { - padding-left: 5.5rem; + +.tsd-page-navigation ul { + padding-left: 1.75rem; } #tsd-sidebar-links a { @@ -852,41 +772,40 @@ input[type="checkbox"]:checked ~ svg .tsd-checkbox-checkmark { } a.tsd-index-link { - margin: 0.25rem 0; + padding: 0.25rem 0 !important; font-size: 1rem; line-height: 1.25rem; display: inline-flex; align-items: center; + color: var(--color-text); } -.tsd-accordion-summary > h1, -.tsd-accordion-summary > h2, -.tsd-accordion-summary > h3, -.tsd-accordion-summary > h4, -.tsd-accordion-summary > h5 { - display: inline-flex; - align-items: center; - vertical-align: middle; - margin-bottom: 0; +.tsd-accordion-summary { + list-style-type: none; /* hide marker on non-safari */ + outline: none; /* broken on safari, so just hide it */ +} +.tsd-accordion-summary::-webkit-details-marker { + display: none; /* hide marker on safari */ +} +.tsd-accordion-summary, +.tsd-accordion-summary a { user-select: none; -moz-user-select: none; -webkit-user-select: none; -ms-user-select: none; -} -.tsd-accordion-summary { - display: block; + cursor: pointer; } +.tsd-accordion-summary a { + width: calc(100% - 1.5rem); +} .tsd-accordion-summary > * { margin-top: 0; margin-bottom: 0; padding-top: 0; padding-bottom: 0; } -.tsd-accordion-summary::-webkit-details-marker { - display: none; -} -.tsd-index-accordion .tsd-accordion-summary svg { - margin-right: 0.25rem; +.tsd-index-accordion .tsd-accordion-summary > svg { + margin-left: 0.25rem; } .tsd-index-content > :not(:first-child) { margin-top: 0.75rem; @@ -911,34 +830,6 @@ a.tsd-index-link { margin-right: 0.8rem; } -@media (min-width: 1024px) { - .col-content { - margin: 2rem auto; - } - - .menu-sticky-wrap { - position: sticky; - height: calc(100vh - 2rem); - top: 4rem; - right: 0; - padding: 0 1.5rem; - padding-top: 1rem; - margin-top: 3rem; - transition: 0.3s ease-in-out; - transition-property: top, padding-top, padding, height; - overflow-y: auto; - } - .col-menu { - border-left: 1px solid var(--color-accent); - } - .col-menu--hide { - top: 1rem; - } - .col-menu .tsd-navigation:not(:last-child) { - padding-bottom: 1.75rem; - } -} - .tsd-panel { margin-bottom: 2.5rem; } @@ -1028,8 +919,8 @@ a.tsd-index-link { #tsd-search .results li.state { display: none; } -#tsd-search .results li.current, -#tsd-search .results li:hover { +#tsd-search .results li.current:not(.no-results), +#tsd-search .results li:hover:not(.no-results) { background-color: var(--color-accent); } #tsd-search .results a { @@ -1144,7 +1035,7 @@ ul.tsd-type-parameter-list h5 { } .tsd-page-toolbar { - position: fixed; + position: sticky; z-index: 1; top: 0; left: 0; @@ -1184,16 +1075,14 @@ ul.tsd-type-parameter-list h5 { padding: 12px 0; } -.tsd-page-toolbar--hide { - transform: translateY(-100%); -} - .tsd-widget { display: inline-block; overflow: hidden; opacity: 0.8; height: 40px; - transition: opacity 0.1s, background-color 0.2s; + transition: + opacity 0.1s, + background-color 0.2s; vertical-align: bottom; cursor: pointer; } @@ -1215,12 +1104,6 @@ ul.tsd-type-parameter-list h5 { .tsd-widget.menu { display: none; } -@media (max-width: 1024px) { - .tsd-widget.options, - .tsd-widget.menu { - display: inline-block; - } -} input[type="checkbox"] + .tsd-widget:before { background-position: -120px 0; } @@ -1260,6 +1143,78 @@ img { background: var(--color-background-warning); } +.tsd-kind-project { + color: var(--color-ts-project); +} +.tsd-kind-module { + color: var(--color-ts-module); +} +.tsd-kind-namespace { + color: var(--color-ts-namespace); +} +.tsd-kind-enum { + color: var(--color-ts-enum); +} +.tsd-kind-enum-member { + color: var(--color-ts-enum-member); +} +.tsd-kind-variable { + color: var(--color-ts-variable); +} +.tsd-kind-function { + color: var(--color-ts-function); +} +.tsd-kind-class { + color: var(--color-ts-class); +} +.tsd-kind-interface { + color: var(--color-ts-interface); +} +.tsd-kind-constructor { + color: var(--color-ts-constructor); +} +.tsd-kind-property { + color: var(--color-ts-property); +} +.tsd-kind-method { + color: var(--color-ts-method); +} +.tsd-kind-call-signature { + color: var(--color-ts-call-signature); +} +.tsd-kind-index-signature { + color: var(--color-ts-index-signature); +} +.tsd-kind-constructor-signature { + color: var(--color-ts-constructor-signature); +} +.tsd-kind-parameter { + color: var(--color-ts-parameter); +} +.tsd-kind-type-literal { + color: var(--color-ts-type-literal); +} +.tsd-kind-type-parameter { + color: var(--color-ts-type-parameter); +} +.tsd-kind-accessor { + color: var(--color-ts-accessor); +} +.tsd-kind-get-signature { + color: var(--color-ts-get-signature); +} +.tsd-kind-set-signature { + color: var(--color-ts-set-signature); +} +.tsd-kind-type-alias { + color: var(--color-ts-type-alias); +} + +/* if we have a kind icon, don't color the text by kind */ +.tsd-kind-icon ~ span { + color: var(--color-text); +} + * { scrollbar-width: thin; scrollbar-color: var(--color-accent) var(--color-icon-background); @@ -1278,3 +1233,147 @@ img { border-radius: 999rem; border: 0.25rem solid var(--color-icon-background); } + +/* mobile */ +@media (max-width: 769px) { + .tsd-widget.options, + .tsd-widget.menu { + display: inline-block; + } + + .container-main { + display: flex; + } + html .col-content { + float: none; + max-width: 100%; + width: 100%; + } + html .col-sidebar { + position: fixed !important; + overflow-y: auto; + -webkit-overflow-scrolling: touch; + z-index: 1024; + top: 0 !important; + bottom: 0 !important; + left: auto !important; + right: 0 !important; + padding: 1.5rem 1.5rem 0 0; + width: 75vw; + visibility: hidden; + background-color: var(--color-background); + transform: translate(100%, 0); + } + html .col-sidebar > *:last-child { + padding-bottom: 20px; + } + html .overlay { + content: ""; + display: block; + position: fixed; + z-index: 1023; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: rgba(0, 0, 0, 0.75); + visibility: hidden; + } + + .to-has-menu .overlay { + animation: fade-in 0.4s; + } + + .to-has-menu .col-sidebar { + animation: pop-in-from-right 0.4s; + } + + .from-has-menu .overlay { + animation: fade-out 0.4s; + } + + .from-has-menu .col-sidebar { + animation: pop-out-to-right 0.4s; + } + + .has-menu body { + overflow: hidden; + } + .has-menu .overlay { + visibility: visible; + } + .has-menu .col-sidebar { + visibility: visible; + transform: translate(0, 0); + display: flex; + flex-direction: column; + gap: 1.5rem; + max-height: 100vh; + padding: 1rem 2rem; + } + .has-menu .tsd-navigation { + max-height: 100%; + } +} + +/* one sidebar */ +@media (min-width: 770px) { + .container-main { + display: grid; + grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); + grid-template-areas: "sidebar content"; + margin: 2rem auto; + } + + .col-sidebar { + grid-area: sidebar; + } + .col-content { + grid-area: content; + padding: 0 1rem; + } +} +@media (min-width: 770px) and (max-width: 1399px) { + .col-sidebar { + max-height: calc(100vh - 2rem - 42px); + overflow: auto; + position: sticky; + top: 42px; + padding-top: 1rem; + } + .site-menu { + margin-top: 1rem; + } +} + +/* two sidebars */ +@media (min-width: 1200px) { + .container-main { + grid-template-columns: minmax(0, 1fr) minmax(0, 2.5fr) minmax(0, 20rem); + grid-template-areas: "sidebar content toc"; + } + + .col-sidebar { + display: contents; + } + + .page-menu { + grid-area: toc; + padding-left: 1rem; + } + .site-menu { + grid-area: sidebar; + } + + .site-menu { + margin-top: 1rem 0; + } + + .page-menu, + .site-menu { + max-height: calc(100vh - 2rem - 42px); + overflow: auto; + position: sticky; + top: 42px; + } +} diff --git a/docs/classes/BroadcastClient.html b/docs/classes/BroadcastClient.html deleted file mode 100644 index 2ff884244d..0000000000 --- a/docs/classes/BroadcastClient.html +++ /dev/null @@ -1,2086 +0,0 @@ -BroadcastClient | xrpl
-
- -
-
-
-
- -

Class BroadcastClient

-
-

Client that can rely on multiple different servers.

- -

Deprecated

since version 2.2.0. -Will be deleted in version 3.0.0.

-

Currently this implementation does not provide better reliability. -To get better reliability, implement reconnect/error handling logic -and choose a reliable endpoint.

-

If you need the ability to fall-back to different endpoints, consider -using xrpl-client

-
-
-

Hierarchy

-
-
-
-
- -
-
-

Constructor

-
- -
-
-

Abstraction

-
- -
getBalances: ((this: Client, address: string, options?: {
    ledger_hash?: string;
    ledger_index?: LedgerIndex;
    limit?: number;
    peer?: string;
}) => Promise<{
    currency: string;
    issuer?: string;
    value: string;
}[]>) = getBalances
-
-

Type declaration

-
    -
  • -
      -
    • (this: Client, address: string, options?: {
          ledger_hash?: string;
          ledger_index?: LedgerIndex;
          limit?: number;
          peer?: string;
      }): Promise<{
          currency: string;
          issuer?: string;
          value: string;
      }[]>
    • -
    • -
      -

      Parameters

      -
        -
      • -
        this: Client
      • -
      • -
        address: string
      • -
      • -
        options: {
            ledger_hash?: string;
            ledger_index?: LedgerIndex;
            limit?: number;
            peer?: string;
        } = {}
        -
          -
        • -
          Optional ledger_hash?: string
        • -
        • -
          Optional ledger_index?: LedgerIndex
        • -
        • -
          Optional limit?: number
        • -
        • -
          Optional peer?: string
      -

      Returns Promise<{
          currency: string;
          issuer?: string;
          value: string;
      }[]>

-
- -
getLedgerIndex: ((this: Client) => Promise<number>) = getLedgerIndex
-
-

Type declaration

-
    -
  • -
      -
    • (this: Client): Promise<number>
    • -
    • -
      -

      Parameters

      -
      -

      Returns Promise<number>

-
- -
getOrderbook: ((this: Client, takerPays: TakerAmount, takerGets: TakerAmount, options?: {
    ledger_hash?: null | string;
    ledger_index?: LedgerIndex;
    limit?: number;
    taker?: null | string;
}) => Promise<{
    buy: BookOffer[];
    sell: BookOffer[];
}>) = getOrderbook
-
-

Type declaration

-
    -
  • -
      -
    • (this: Client, takerPays: TakerAmount, takerGets: TakerAmount, options?: {
          ledger_hash?: null | string;
          ledger_index?: LedgerIndex;
          limit?: number;
          taker?: null | string;
      }): Promise<{
          buy: BookOffer[];
          sell: BookOffer[];
      }>
    • -
    • -
      -

      Parameters

      -
        -
      • -
        this: Client
      • -
      • -
        takerPays: TakerAmount
      • -
      • -
        takerGets: TakerAmount
      • -
      • -
        options: {
            ledger_hash?: null | string;
            ledger_index?: LedgerIndex;
            limit?: number;
            taker?: null | string;
        } = {}
        -
          -
        • -
          Optional ledger_hash?: null | string
        • -
        • -
          Optional ledger_index?: LedgerIndex
        • -
        • -
          Optional limit?: number
        • -
        • -
          Optional taker?: null | string
      -

      Returns Promise<{
          buy: BookOffer[];
          sell: BookOffer[];
      }>

-
- -
getXrpBalance: ((this: Client, address: string, options?: {
    ledger_hash?: string;
    ledger_index?: LedgerIndex;
}) => Promise<string>) = getXrpBalance
-
-

Type declaration

-
    -
  • -
      -
    • (this: Client, address: string, options?: {
          ledger_hash?: string;
          ledger_index?: LedgerIndex;
      }): Promise<string>
    • -
    • -
      -

      Parameters

      -
        -
      • -
        this: Client
      • -
      • -
        address: string
      • -
      • -
        options: {
            ledger_hash?: string;
            ledger_index?: LedgerIndex;
        } = {}
        -
          -
        • -
          Optional ledger_hash?: string
        • -
        • -
          Optional ledger_index?: LedgerIndex
      -

      Returns Promise<string>

-
-

Core

-
- -
autofill: (<T>(this: Client, transaction: T, signersCount?: number) => Promise<T>) = autofill
-
-

Type declaration

-
    -
  • -
      -
    • <T>(this: Client, transaction: T, signersCount?: number): Promise<T>
    • -
    • -
      -

      Type Parameters

      -
      -
      -

      Parameters

      -
        -
      • -
        this: Client
      • -
      • -
        transaction: T
      • -
      • -
        Optional signersCount: number
      -

      Returns Promise<T>

-
- -
submit: ((this: Client, transaction: string | Transaction, opts?: {
    autofill?: boolean;
    failHard?: boolean;
    wallet?: Wallet;
}) => Promise<SubmitResponse>) = submit
-
-

Type declaration

-
    -
  • -
      -
    • (this: Client, transaction: string | Transaction, opts?: {
          autofill?: boolean;
          failHard?: boolean;
          wallet?: Wallet;
      }): Promise<SubmitResponse>
    • -
    • -
      -

      Parameters

      -
        -
      • -
        this: Client
      • -
      • -
        transaction: string | Transaction
      • -
      • -
        Optional opts: {
            autofill?: boolean;
            failHard?: boolean;
            wallet?: Wallet;
        }
        -
          -
        • -
          Optional autofill?: boolean
        • -
        • -
          Optional failHard?: boolean
        • -
        • -
          Optional wallet?: Wallet
      -

      Returns Promise<SubmitResponse>

-
- -
submitAndWait: ((this: Client, transaction: string | Transaction, opts?: {
    autofill?: boolean;
    failHard?: boolean;
    wallet?: Wallet;
}) => Promise<TxResponse>) = submitAndWait
-
-

Type declaration

-
    -
  • -
      -
    • (this: Client, transaction: string | Transaction, opts?: {
          autofill?: boolean;
          failHard?: boolean;
          wallet?: Wallet;
      }): Promise<TxResponse>
    • -
    • -
      -

      Parameters

      -
        -
      • -
        this: Client
      • -
      • -
        transaction: string | Transaction
      • -
      • -
        Optional opts: {
            autofill?: boolean;
            failHard?: boolean;
            wallet?: Wallet;
        }
        -
          -
        • -
          Optional autofill?: boolean
        • -
        • -
          Optional failHard?: boolean
        • -
        • -
          Optional wallet?: Wallet
      -

      Returns Promise<TxResponse>

-
-

Faucet

-
- -
fundWallet: ((this: Client, wallet?: null | Wallet, options?: {
    amount?: string;
    faucetHost?: string;
    faucetPath?: string;
}) => Promise<{
    balance: number;
    wallet: Wallet;
}>) = fundWallet
-
-

Type declaration

-
    -
  • -
      -
    • (this: Client, wallet?: null | Wallet, options?: {
          amount?: string;
          faucetHost?: string;
          faucetPath?: string;
      }): Promise<{
          balance: number;
          wallet: Wallet;
      }>
    • -
    • -
      -

      Parameters

      -
        -
      • -
        this: Client
      • -
      • -
        Optional wallet: null | Wallet
      • -
      • -
        Optional options: {
            amount?: string;
            faucetHost?: string;
            faucetPath?: string;
        }
        -
          -
        • -
          Optional amount?: string
        • -
        • -
          Optional faucetHost?: string
        • -
        • -
          Optional faucetPath?: string
      -

      Returns Promise<{
          balance: number;
          wallet: Wallet;
      }>

-
-

Fee

-
- -
feeCushion: number
-

Factor to multiply estimated fee by to provide a cushion in case the -required fee rises during submission of a transaction. Defaults to 1.2.

-
-
- -
maxFeeXRP: string
-

Maximum transaction cost to allow, in decimal XRP. Must be a string-encoded -number. Defaults to '2'.

-
-
-

Network

-
- -
    -
  • get url(): string
  • -
  • -

    Get the url that the client is connected to.

    - -

    Returns

    The URL of the server this client is connected to.

    -
    -

    Returns string

-
- -
    - -
  • -

    Tells the Client instance to connect to its rippled server.

    - -

    Returns

    A promise that resolves with a void value when a connection is established.

    -
    -

    Returns Promise<void>

-
- -
    - -
  • -

    Tells the Client instance to disconnect from it's rippled server.

    - -

    Returns

    A promise that resolves with a void value when a connection is destroyed.

    -
    -

    Returns Promise<void>

-
- -
-
- -
-
- -
-
- -
    - -
  • -
    -

    Parameters

    -
    -

    Returns Promise<AccountChannelsResponse[]>

  • - -
  • -

    Makes multiple paged requests to the client to return a given number of -resources. Multiple paged requests will be made until the limit -number of resources is reached (if no limit is provided, a single request -will be made).

    -

    If the command is unknown, an additional collect property is required to -know which response key contains the array of resources.

    -

    NOTE: This command is used by existing methods and is not recommended for -general use. Instead, use rippled's built-in pagination and make multiple -requests as needed.

    - -

    Returns

    The array of all responses.

    - -

    Throws

    ValidationError if there is no collection key (either from a known command or for the unknown command).

    -
    -
    -

    Parameters

    -
    -

    Returns Promise<AccountLinesResponse[]>

  • - -
  • -

    Makes multiple paged requests to the client to return a given number of -resources. Multiple paged requests will be made until the limit -number of resources is reached (if no limit is provided, a single request -will be made).

    -

    If the command is unknown, an additional collect property is required to -know which response key contains the array of resources.

    -

    NOTE: This command is used by existing methods and is not recommended for -general use. Instead, use rippled's built-in pagination and make multiple -requests as needed.

    - -

    Returns

    The array of all responses.

    - -

    Throws

    ValidationError if there is no collection key (either from a known command or for the unknown command).

    -
    -
    -

    Parameters

    -
    -

    Returns Promise<AccountObjectsResponse[]>

  • - -
  • -

    Makes multiple paged requests to the client to return a given number of -resources. Multiple paged requests will be made until the limit -number of resources is reached (if no limit is provided, a single request -will be made).

    -

    If the command is unknown, an additional collect property is required to -know which response key contains the array of resources.

    -

    NOTE: This command is used by existing methods and is not recommended for -general use. Instead, use rippled's built-in pagination and make multiple -requests as needed.

    - -

    Returns

    The array of all responses.

    - -

    Throws

    ValidationError if there is no collection key (either from a known command or for the unknown command).

    -
    -
    -

    Parameters

    -
    -

    Returns Promise<AccountOffersResponse[]>

  • - -
  • -

    Makes multiple paged requests to the client to return a given number of -resources. Multiple paged requests will be made until the limit -number of resources is reached (if no limit is provided, a single request -will be made).

    -

    If the command is unknown, an additional collect property is required to -know which response key contains the array of resources.

    -

    NOTE: This command is used by existing methods and is not recommended for -general use. Instead, use rippled's built-in pagination and make multiple -requests as needed.

    - -

    Returns

    The array of all responses.

    - -

    Throws

    ValidationError if there is no collection key (either from a known command or for the unknown command).

    -
    -
    -

    Parameters

    -
    -

    Returns Promise<AccountTxResponse[]>

  • - -
  • -

    Makes multiple paged requests to the client to return a given number of -resources. Multiple paged requests will be made until the limit -number of resources is reached (if no limit is provided, a single request -will be made).

    -

    If the command is unknown, an additional collect property is required to -know which response key contains the array of resources.

    -

    NOTE: This command is used by existing methods and is not recommended for -general use. Instead, use rippled's built-in pagination and make multiple -requests as needed.

    - -

    Returns

    The array of all responses.

    - -

    Throws

    ValidationError if there is no collection key (either from a known command or for the unknown command).

    -
    -
    -

    Parameters

    -
    -

    Returns Promise<BookOffersResponse[]>

  • - -
  • -

    Makes multiple paged requests to the client to return a given number of -resources. Multiple paged requests will be made until the limit -number of resources is reached (if no limit is provided, a single request -will be made).

    -

    If the command is unknown, an additional collect property is required to -know which response key contains the array of resources.

    -

    NOTE: This command is used by existing methods and is not recommended for -general use. Instead, use rippled's built-in pagination and make multiple -requests as needed.

    - -

    Returns

    The array of all responses.

    - -

    Throws

    ValidationError if there is no collection key (either from a known command or for the unknown command).

    -
    -
    -

    Parameters

    -
    -

    Returns Promise<LedgerDataResponse[]>

-
- -
-
-

Other

-
- -
clients: Client[]
-
- -
connection: Connection
-
- -
prepareTransaction: (<T>(this: Client, transaction: T, signersCount?: number) => Promise<T>) = autofill
-
-

Type declaration

-
    -
  • -
      -
    • <T>(this: Client, transaction: T, signersCount?: number): Promise<T>
    • -
    • -
      -

      Deprecated

      Use autofill instead, provided for users familiar with v1

      -
      -
      -

      Type Parameters

      -
      -
      -

      Parameters

      -
        -
      • -
        this: Client
      • -
      • -
        transaction: T
      • -
      • -
        Optional signersCount: number
      -

      Returns Promise<T>

-
- -
captureRejectionSymbol: typeof captureRejectionSymbol
-
- -
captureRejections: boolean
-

Sets or gets the default captureRejection value for all emitters.

-
-
- -
defaultMaxListeners: number
-
- -
errorMonitor: typeof errorMonitor
-

This symbol shall be used to install a listener for only monitoring 'error' -events. Listeners installed using this symbol are called before the regular -'error' listeners are called.

-

Installing a listener using this symbol does not change the behavior once an -'error' event is emitted, therefore the process will still crash if no -regular 'error' listener is installed.

-
-
- -
    - -
  • -
    -

    Parameters

    -
      -
    • -
      event: string | symbol
    • -
    • -
      listener: ((...args: any[]) => void)
      -
        -
      • -
          -
        • (...args: any[]): void
        • -
        • -
          -

          Parameters

          -
            -
          • -
            Rest ...args: any[]
          -

          Returns void

    -

    Returns BroadcastClient

-
- -
    - -
  • -
    -

    Parameters

    -
      -
    • -
      event: string | symbol
    • -
    • -
      Rest ...args: any[]
    -

    Returns boolean

-
- -
    - -
  • -

    Returns (string | symbol)[]

-
- -
    - -
  • -

    Returns number

-
- -
    - -
  • -

    Gets the method names of all the methods of the client.

    - -

    Returns

    A list of the names of all the methods of the client.

    -
    -

    Returns string[]

-
- -
    - -
  • -
    -

    Parameters

    -
      -
    • -
      event: string | symbol
    -

    Returns number

-
- -
    - -
  • -
    -

    Parameters

    -
      -
    • -
      event: string | symbol
    -

    Returns Function[]

-
- -
    - -
  • -
    -

    Parameters

    -
      -
    • -
      event: string | symbol
    • -
    • -
      listener: ((...args: any[]) => void)
      -
        -
      • -
          -
        • (...args: any[]): void
        • -
        • -
          -

          Parameters

          -
            -
          • -
            Rest ...args: any[]
          -

          Returns void

    -

    Returns BroadcastClient

-
- -
    - -
  • -
    -

    Parameters

    -
      -
    • -
      event: string | symbol
    • -
    • -
      listener: ((...args: any[]) => void)
      -
        -
      • -
          -
        • (...args: any[]): void
        • -
        • -
          -

          Parameters

          -
            -
          • -
            Rest ...args: any[]
          -

          Returns void

    -

    Returns BroadcastClient

-
- -
    - -
  • -
    -

    Parameters

    -
      -
    • -
      event: string | symbol
    • -
    • -
      listener: ((...args: any[]) => void)
      -
        -
      • -
          -
        • (...args: any[]): void
        • -
        • -
          -

          Parameters

          -
            -
          • -
            Rest ...args: any[]
          -

          Returns void

    -

    Returns BroadcastClient

-
- -
    - -
  • -
    -

    Parameters

    -
      -
    • -
      event: string | symbol
    • -
    • -
      listener: ((...args: any[]) => void)
      -
        -
      • -
          -
        • (...args: any[]): void
        • -
        • -
          -

          Parameters

          -
            -
          • -
            Rest ...args: any[]
          -

          Returns void

    -

    Returns BroadcastClient

-
- -
    - -
  • -
    -

    Parameters

    -
      -
    • -
      event: string | symbol
    -

    Returns Function[]

-
- -
-
- -
    - -
  • -
    -

    Parameters

    -
      -
    • -
      event: string | symbol
    • -
    • -
      listener: ((...args: any[]) => void)
      -
        -
      • -
          -
        • (...args: any[]): void
        • -
        • -
          -

          Parameters

          -
            -
          • -
            Rest ...args: any[]
          -

          Returns void

    -

    Returns BroadcastClient

-
- -
-
- -
    - -
  • -
    -

    Deprecated

    since v4.0.0

    -
    -
    -

    Parameters

    -
      -
    • -
      emitter: EventEmitter
    • -
    • -
      event: string | symbol
    -

    Returns number

-
- -
    - -
  • -
    -

    Parameters

    -
      -
    • -
      emitter: EventEmitter
    • -
    • -
      event: string
    -

    Returns AsyncIterableIterator<any>

-
- -
    - -
  • -
    -

    Parameters

    -
      -
    • -
      emitter: NodeEventTarget
    • -
    • -
      event: string | symbol
    -

    Returns Promise<any[]>

  • - -
  • -
    -

    Parameters

    -
      -
    • -
      emitter: DOMEventTarget
    • -
    • -
      event: string
    -

    Returns Promise<any[]>

-
-
-

Generated using TypeDoc

-
\ No newline at end of file diff --git a/docs/classes/Client.html b/docs/classes/Client.html index db14c30000..571cb9a286 100644 --- a/docs/classes/Client.html +++ b/docs/classes/Client.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -Client | xrpl
+Client | xrpl
- -
+

Constructor

-
- -
-

Returns Client

+

Abstraction

-
- -
getBalances: ((this: Client, address: string, options?: {
    ledger_hash?: string;
    ledger_index?: LedgerIndex;
    limit?: number;
    peer?: string;
}) => Promise<{
    currency: string;
    issuer?: string;
    value: string;
}[]>) = getBalances
-
-

Type declaration

-
    -
  • -
      -
    • (this: Client, address: string, options?: {
          ledger_hash?: string;
          ledger_index?: LedgerIndex;
          limit?: number;
          peer?: string;
      }): Promise<{
          currency: string;
          issuer?: string;
          value: string;
      }[]>
    • +
      + +
        +
      • +

        Get XRP/non-XRP balances for an account.

        +

        Parameters

        • -
          this: Client
        • -
        • -
          address: string
        • +
          address: string
          +

          Address of the account to retrieve balances for.

          +
        • -
          options: {
              ledger_hash?: string;
              ledger_index?: LedgerIndex;
              limit?: number;
              peer?: string;
          } = {}
          +
          options: {
              ledger_hash?: string;
              ledger_index?: LedgerIndex;
              limit?: number;
              peer?: string;
          } = {}
          +

          Allows the client to specify a ledger_hash, ledger_index, +filter by peer, and/or limit number of balances.

          +
          • -
            Optional ledger_hash?: string
          • +
            Optional ledger_hash?: string
            +

            Retrieve the account balances at the ledger with +a given ledger_hash.

            +
            +
          • -
            Optional ledger_index?: LedgerIndex
          • +
            Optional ledger_index?: LedgerIndex
            +

            Retrieve the account balances at a given +ledger_index.

            +
            +
          • -
            Optional limit?: number
          • +
            Optional limit?: number
            +

            Limit number of balances to return.

            +
            +
          • -
            Optional peer?: string
        -

        Returns Promise<{
            currency: string;
            issuer?: string;
            value: string;
        }[]>

-
- -
getLedgerIndex: ((this: Client) => Promise<number>) = getLedgerIndex
-
-

Type declaration

-
+
+ +
    +
  • -
    -

    Parameters

    -
    -

    Returns Promise<number>

-
- -
getOrderbook: ((this: Client, takerPays: TakerAmount, takerGets: TakerAmount, options?: {
    ledger_hash?: null | string;
    ledger_index?: LedgerIndex;
    limit?: number;
    taker?: null | string;
}) => Promise<{
    buy: BookOffer[];
    sell: BookOffer[];
}>) = getOrderbook
-
-

Type declaration

-
    -
  • -
      -
    • (this: Client, takerPays: TakerAmount, takerGets: TakerAmount, options?: {
          ledger_hash?: null | string;
          ledger_index?: LedgerIndex;
          limit?: number;
          taker?: null | string;
      }): Promise<{
          buy: BookOffer[];
          sell: BookOffer[];
      }>
    • +
    • Defined in packages/xrpl/src/client/index.ts:1028
+
+ +
    +
  • +

    Fetch orderbook (buy/sell orders) between two currency pairs. This checks both sides of the orderbook +by making two order_book requests (with the second reversing takerPays and takerGets). Returned offers are +not normalized in this function, so either currency could be takerGets or takerPays.

    +

    Parameters

    • -
      this: Client
    • -
    • -
      takerPays: TakerAmount
    • +
      currency1: BookOfferCurrency
      +

      Specification of one currency involved. (With a currency code and optionally an issuer)

      +
    • -
      takerGets: TakerAmount
    • +
      currency2: BookOfferCurrency
      +

      Specification of a second currency involved. (With a currency code and optionally an issuer)

      +
    • -
      options: {
          ledger_hash?: null | string;
          ledger_index?: LedgerIndex;
          limit?: number;
          taker?: null | string;
      } = {}
      +
      options: {
          ledger_hash?: null | string;
          ledger_index?: LedgerIndex;
          limit?: number;
          taker?: null | string;
      } = {}
      +

      Options allowing the client to specify ledger_index, +ledger_hash, filter by taker, and/or limit number of orders.

      +
      • -
        Optional ledger_hash?: null | string
      • +
        Optional ledger_hash?: null | string
        +

        Retrieve the orderbook at the ledger with a +given ledger_hash.

        +
        +
      • -
        Optional ledger_index?: LedgerIndex
      • +
        Optional ledger_index?: LedgerIndex
        +

        Retrieve the orderbook at a given ledger_index.

        +
        +
      • -
        Optional limit?: number
      • +
        Optional limit?: number
        +

        The limit passed into each book_offers request. +Can return more than this due to two calls being made. Defaults to 20.

        +
        +
      • -
        Optional taker?: null | string
    -

    Returns Promise<{
        buy: BookOffer[];
        sell: BookOffer[];
    }>

-
- -
getXrpBalance: ((this: Client, address: string, options?: {
    ledger_hash?: string;
    ledger_index?: LedgerIndex;
}) => Promise<string>) = getXrpBalance
-
-

Type declaration

-
+
+ +
    +
  • +

    Retrieves the XRP balance of a given account address.

    +

    Parameters

    • -
      this: Client
    • -
    • -
      address: string
    • +
      address: string
      +

      The XRP address to retrieve the balance for.

      +
    • -
      options: {
          ledger_hash?: string;
          ledger_index?: LedgerIndex;
      } = {}
      +
      Optional options: {
          ledger_hash?: string;
          ledger_index?: LedgerIndex;
      } = {}
      +

      Additional options for fetching the balance (optional).

      +
      Optional
      • -
        Optional ledger_hash?: string
      • +
        Optional ledger_hash?: string
        +

        The hash of the ledger to retrieve the balance from (optional).

        +
        +
      • -
        Optional ledger_index?: LedgerIndex
    -

    Returns Promise<string>

-
+
  • Defined in packages/xrpl/src/client/index.ts:836
  • +

    Core

    -
    - -
    autofill: (<T>(this: Client, transaction: T, signersCount?: number) => Promise<T>) = autofill
    -
    -

    Type declaration

    -
      -
    • -
        -
      • <T>(this: Client, transaction: T, signersCount?: number): Promise<T>
      • +
        + +
          +
        • -
          +

          Autofills fields in a transaction. This will set Sequence, Fee, +lastLedgerSequence according to the current state of the server this Client +is connected to. It also converts all X-Addresses to classic addresses and +flags interfaces into numbers.

          +
          +

          Type Parameters

          -
          +

          T extends SubmittableTransaction

          +

        Parameters

        -

        Returns Promise<T>

    -
    - -
    submit: ((this: Client, transaction: string | Transaction, opts?: {
        autofill?: boolean;
        failHard?: boolean;
        wallet?: Wallet;
    }) => Promise<SubmitResponse>) = submit
    -
    -

    Type declaration

    -
    +
    + +
      +
    • +

      Submits a signed/unsigned transaction. +Steps performed on a transaction:

      +
        +
      1. Autofill.
      2. +
      3. Sign & Encode.
      4. +
      5. Submit.
      6. +
      +

      Parameters

      • -
        this: Client
      • -
      • -
        transaction: string | Transaction
      • +
        transaction: string | SubmittableTransaction
        +

        A transaction to autofill, sign & encode, and submit.

        +
      • -
        Optional opts: {
            autofill?: boolean;
            failHard?: boolean;
            wallet?: Wallet;
        }
        +
        Optional opts: {
            autofill?: boolean;
            failHard?: boolean;
            wallet?: Wallet;
        }
        +

        (Optional) Options used to sign and submit a transaction.

        +
        Optional
        • -
          Optional autofill?: boolean
        • +
          Optional autofill?: boolean
          +

          If true, autofill a transaction.

          +
          +
        • -
          Optional failHard?: boolean
        • +
          Optional failHard?: boolean
          +

          If true, and the transaction fails locally, do not retry or relay the transaction to other servers.

          +
          +
        • -
          Optional wallet?: Wallet
      -

      Returns Promise<SubmitResponse>

    -
    - -
    submitAndWait: ((this: Client, transaction: string | Transaction, opts?: {
        autofill?: boolean;
        failHard?: boolean;
        wallet?: Wallet;
    }) => Promise<TxResponse>) = submitAndWait
    -
    -

    Type declaration

    -
    +
    + +
      +
    • +

      Asynchronously submits a transaction and verifies that it has been included in a +validated ledger (or has errored/will not be included for some reason). +See Reliable Transaction Submission.

      +
      +
      +

      Type Parameters

      +

      Parameters

      • -
        this: Client
      • -
      • -
        transaction: string | Transaction
      • +
        transaction: string | T
        +

        A transaction to autofill, sign & encode, and submit.

        +
      • -
        Optional opts: {
            autofill?: boolean;
            failHard?: boolean;
            wallet?: Wallet;
        }
        +
        Optional opts: {
            autofill?: boolean;
            failHard?: boolean;
            wallet?: Wallet;
        }
        +

        (Optional) Options used to sign and submit a transaction.

        +
        Optional
        • -
          Optional autofill?: boolean
        • +
          Optional autofill?: boolean
          +

          If true, autofill a transaction.

          +
          +
        • -
          Optional failHard?: boolean
        • +
          Optional failHard?: boolean
          +

          If true, and the transaction fails locally, do not retry or relay the transaction to other servers.

          +
          +
        • -
          Optional wallet?: Wallet
      -

      Returns Promise<TxResponse>

    -
    +
  • Defined in packages/xrpl/src/client/index.ts:767
  • +

    Faucet

    -
    - -
    fundWallet: ((this: Client, wallet?: null | Wallet, options?: {
        amount?: string;
        faucetHost?: string;
        faucetPath?: string;
    }) => Promise<{
        balance: number;
        wallet: Wallet;
    }>) = fundWallet
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (this: Client, wallet?: null | Wallet, options?: {
            amount?: string;
            faucetHost?: string;
            faucetPath?: string;
        }): Promise<{
            balance: number;
            wallet: Wallet;
        }>
      • +
        + +
          +
        • +

          The fundWallet() method is used to send an amount of XRP (usually 1000) to a new (randomly generated) +or existing XRP Ledger wallet.

          +

          Parameters

          • -
            this: Client
          • +
            this: Client
          • -
            Optional wallet: null | Wallet
          • +
            Optional wallet: null | Wallet
            +

            An existing XRPL Wallet to fund. If undefined or null, a new Wallet will be created.

            +
            Optional
          • -
            Optional options: {
                amount?: string;
                faucetHost?: string;
                faucetPath?: string;
            }
            -
              -
            • -
              Optional amount?: string
            • -
            • -
              Optional faucetHost?: string
            • -
            • -
              Optional faucetPath?: string
          -

          Returns Promise<{
              balance: number;
              wallet: Wallet;
          }>

    -
    +
  • Defined in packages/xrpl/src/client/index.ts:1101
  • +

    Fee

    -
    - -
    feeCushion: number
    +
    + +
    feeCushion: number

    Factor to multiply estimated fee by to provide a cushion in case the required fee rises during submission of a transaction. Defaults to 1.2.

    -
    -
    - -
    maxFeeXRP: string
    +
  • Defined in packages/xrpl/src/client/index.ts:179
  • +
    + +
    maxFeeXRP: string

    Maximum transaction cost to allow, in decimal XRP. Must be a string-encoded number. Defaults to '2'.

    -
    -
    +
  • Defined in packages/xrpl/src/client/index.ts:187
  • +

    Network

    -
    - -
    +
    + +
      +
    • Tells the Client instance to connect to its rippled server.

      - -

      Returns

      A promise that resolves with a void value when a connection is established.

      -

      Returns Promise<void>

    -
    - -
    +
    + +
      +
    • -

      Tells the Client instance to disconnect from it's rippled server.

      - -

      Returns

      A promise that resolves with a void value when a connection is destroyed.

      +

      Disconnects the XRPL client from the server and cancels all pending requests and subscriptions. Call when +you want to disconnect the client from the server, such as when you're finished using the client or when you +need to switch to a different server.

      -

      Returns Promise<void>

    -
    - -
    +
    + +
      +
    • Checks if the Client instance is connected to its rippled server.

      - -

      Returns

      Whether the client instance is connected.

      -

      Returns boolean

    -
    - -
    +
    + +
      +
    • Event handler for subscription streams.

      - -

      Example

      const api = new Client('wss://s.altnet.rippletest.net:51233')

      api.on('transactions', (tx: TransactionStream) => {
      console.log("Received Transaction")
      console.log(tx)
      })

      await api.connect()
      const response = await api.request({
      command: 'subscribe',
      streams: ['transactions_proposed']
      }) -
      +
      +

      Type Parameters

      +
        +
      • +

        T extends EventTypes

      • +
      • +

        U extends ((...args) => void) = OnEventToListenerMap<T>

      Parameters

      • -
        event: "connected"
      • +
        eventName: T
        +

        Name of the event. Only forwards streams.

        +
      • -
        listener: (() => void)
        -
          -
        • -
            -
          • (): void
          • -
          • -

            Returns void

      -

      Returns Client

    +

    Returns Client

    This, because it inherits from EventEmitter.

    +
      +
    • +
    + +
    +

    Example

    const api = new Client('wss://s.altnet.rippletest.net:51233')

    api.on('transaction', (tx: TransactionStream) => {
    console.log("Received Transaction")
    console.log(tx)
    })

    await api.connect()
    const response = await api.request({
    command: 'subscribe',
    streams: ['transactions_proposed']
    }) +
    +
    - +
  • Defined in packages/xrpl/src/client/index.ts:387
  • +
    + +
      +
    • -

      Event handler for subscription streams.

      - -

      Returns

      This, because it inherits from EventEmitter.

      +

      Makes a request to the client with the given command and +additional request body parameters.

      -
      -

      Parameters

      -
        +
        +

        Type Parameters

        +
        • -
          event: "disconnected"
        • +

          R extends Request

        • -
          listener: ((code: number) => void)
          -

          Function to run on event.

          -
          -

        Parameters

        • -
          code: number
        -

        Returns void

    -

    Returns Client

    +
    + +
      +
    • -

      Event handler for subscription streams.

      - -

      Returns

      This, because it inherits from EventEmitter.

      +

      Makes multiple paged requests to the client to return a given number of +resources. Multiple paged requests will be made until the limit +number of resources is reached (if no limit is provided, a single request +will be made).

      +

      If the command is unknown, an additional collect property is required to +know which response key contains the array of resources.

      +

      NOTE: This command is used by existing methods and is not recommended for +general use. Instead, use rippled's built-in pagination and make multiple +requests as needed.

      +
      +

      Type Parameters

      +

      Parameters

      • -
        event: "ledgerClosed"
      • +
        request: T
        +

        The initial request to send to the server.

        +
      • -
        listener: ((ledger: LedgerStream) => void)
        -

        Function to run on event.

        -
        -
          -
        • -
            -
          • (ledger: LedgerStream): void
          • +
            Optional collect: string
            +

            (Optional) the param to use to collect the array of resources (only needed if command is unknown).

            +
            Optional
      +

      Returns Promise<U[]>

      The array of all responses.

      + +
      +

      Throws

      ValidationError if there is no collection key (either from a known command or for the unknown command).

      + +

      Example

      // Request all ledger data pages
      const allResponses = await client.requestAll({ command: 'ledger_data' });
      console.log(allResponses); +
      + +

      Example

      // Request all transaction data pages
      const allResponses = await client.requestAll({ command: 'transaction_data' });
      console.log(allResponses); +
      +
    +
    + + -

    Returns Client

    - -
  • -

    Event handler for subscription streams.

    +
    req: T
    +

    Request to send.

    +
  • +
  • +
    resp: U
    +

    Response with the marker to use in the request.

    +
  • +

    Returns Promise<RequestNextPageReturnMap<T>>

    The response with the next page of data.

    -

    Returns

    This, because it inherits from EventEmitter.

    - +
    +

    Example

    const response = await client.request({
    command: 'account_tx',
    account: 'r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59',
    })
    console.log(response)
    const nextResponse = await client.requestNextPage({
    command: 'account_tx',
    account: 'r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59',
    },
    response)
    console.log(nextResponse) +
    +
    +
    +

    Other

    +
    + +
    buildVersion: undefined | string
    +

    Rippled Version used by the server this client is connected to

    +
    +
    +
    + +
    connection: Connection
    +
    + +
    networkID: undefined | number
    +

    Network ID of the server this client is connected to

    +
    +
    +
    + +
    prefixed: string | boolean
    +
    + +
      + +
    • +
      +

      Type Parameters

      +
        +
      • +

        T extends EventTypes

      Parameters

      • -
        event: "validationReceived"
      • +
        event: T
      • -
        listener: ((validation: ValidationStream) => void)
        -

        Function to run on event.

        -
        +
        fn: ((...args) => void)
      -

      Returns Client

    +

    Returns void

    +
  • +
    Optional context: any
    Optional
  • +

    Returns Client

    - +
  • Defined in node_modules/eventemitter3/index.d.ts:45
  • +
    + +
      +
    • -

      Event handler for subscription streams.

      - -

      Returns

      This, because it inherits from EventEmitter.

      +

      Calls each of the listeners registered for a given event.

      +
      +

      Type Parameters

      +
        +
      • +

        T extends EventTypes

      Parameters

      +

      Returns boolean

      +
    +
    + + -

    Returns Client

    +
    + +
      +
    • -

      Event handler for subscription streams.

      +

      Get networkID and buildVersion from server_info

      +
      +

      Returns Promise<void>

      void

      -

      Returns

      This, because it inherits from EventEmitter.

      +
      +

      Example

      const { Client } = require('xrpl')
      const client = new Client('wss://s.altnet.rippletest.net:51233')
      await client.getServerInfo()
      console.log(client.networkID)
      console.log(client.buildVersion) +
      +
    +
    + +
      + +
    • +

      Return the number of listeners listening to a given event.

      Parameters

      • -
        event: "peerStatusChange"
      • -
      • -
        listener: ((status: PeerStatusStream) => void)
        -

        Function to run on event.

        -
        -
      +

      Returns number

      +
    +
    + +
      +
    • +

      Return the listeners registered for a given event.

      +
      +
      +

      Type Parameters

      +
        +
      • +

        T extends EventTypes

      Parameters

      -

      Returns void

    -

    Returns Client

    +
    + +
      +
    • -

      Event handler for subscription streams.

      - -

      Returns

      This, because it inherits from EventEmitter.

      -
      +
      +

      Type Parameters

      +
        +
      • +

        T extends EventTypes

      Parameters

      • -
        event: "consensusPhase"
      • +
        event: T
      • -
        listener: ((phase: ConsensusStream) => void)
        -

        Function to run on event.

        -
        +
        Optional fn: ((...args) => void)
        Optional
      -

      Returns Client

    +

    Returns void

    +
  • +
    Optional context: any
    Optional
  • +
  • +
    Optional once: boolean
    Optional
  • +

    Returns Client

    - +
  • Defined in node_modules/eventemitter3/index.d.ts:69
  • +
    + +
      +
    • -

      Event handler for subscription streams.

      - -

      Returns

      This, because it inherits from EventEmitter.

      +

      Add a one-time listener for a given event.

      +
      +

      Type Parameters

      +
        +
      • +

        T extends EventTypes

      Parameters

      • -
        event: "manifestReceived"
      • +
        event: T
      • -
        listener: ((manifest: ManifestResponse) => void)
        -

        Function to run on event.

        -
        +
        fn: ((...args) => void)
      -

      Returns Client

    +

    Returns void

    +
  • +
    Optional context: any
    Optional
  • +

    Returns Client

    +
    - +
  • Defined in node_modules/eventemitter3/index.d.ts:54
  • +
    + +
      +
    • -

      Event handler for subscription streams.

      - -

      Returns

      This, because it inherits from EventEmitter.

      +

      Deprecated: Use autofill instead, provided for users familiar with v1

      Parameters

      -

      Returns Client

    • - -
    • -

      Event handler for subscription streams.

      - -

      Returns

      This, because it inherits from EventEmitter.

      -
      -
      -

      Parameters

      -
        -
      • -
        event: "error"
      • -
      • -
        listener: ((...err: any[]) => void)
        -

        Function to run on event.

        -
        -
          -
        • -
            -
          • (...err: any[]): void
          • -
          • -
            -

            Parameters

            -
              -
            • -
              Rest ...err: any[]
            -

            Returns void

      -

      Returns Client

    -
    - -
    -
    - -
      - -
    • -
      -

      Parameters

      -
      -

      Returns Promise<AccountChannelsResponse[]>

    • - -
    • -

      Makes multiple paged requests to the client to return a given number of -resources. Multiple paged requests will be made until the limit -number of resources is reached (if no limit is provided, a single request -will be made).

      -

      If the command is unknown, an additional collect property is required to -know which response key contains the array of resources.

      -

      NOTE: This command is used by existing methods and is not recommended for -general use. Instead, use rippled's built-in pagination and make multiple -requests as needed.

      - -

      Returns

      The array of all responses.

      - -

      Throws

      ValidationError if there is no collection key (either from a known command or for the unknown command).

      -
      -
      -

      Parameters

      -
      -

      Returns Promise<AccountLinesResponse[]>

    • - -
    • -

      Makes multiple paged requests to the client to return a given number of -resources. Multiple paged requests will be made until the limit -number of resources is reached (if no limit is provided, a single request -will be made).

      -

      If the command is unknown, an additional collect property is required to -know which response key contains the array of resources.

      -

      NOTE: This command is used by existing methods and is not recommended for -general use. Instead, use rippled's built-in pagination and make multiple -requests as needed.

      - -

      Returns

      The array of all responses.

      - -

      Throws

      ValidationError if there is no collection key (either from a known command or for the unknown command).

      -
      -
      -

      Parameters

      -
      -

      Returns Promise<AccountObjectsResponse[]>

    • - -
    • -

      Makes multiple paged requests to the client to return a given number of -resources. Multiple paged requests will be made until the limit -number of resources is reached (if no limit is provided, a single request -will be made).

      -

      If the command is unknown, an additional collect property is required to -know which response key contains the array of resources.

      -

      NOTE: This command is used by existing methods and is not recommended for -general use. Instead, use rippled's built-in pagination and make multiple -requests as needed.

      - -

      Returns

      The array of all responses.

      - -

      Throws

      ValidationError if there is no collection key (either from a known command or for the unknown command).

      -
      -
      -

      Parameters

      -
      -

      Returns Promise<AccountOffersResponse[]>

    • - -
    • -

      Makes multiple paged requests to the client to return a given number of -resources. Multiple paged requests will be made until the limit -number of resources is reached (if no limit is provided, a single request -will be made).

      -

      If the command is unknown, an additional collect property is required to -know which response key contains the array of resources.

      -

      NOTE: This command is used by existing methods and is not recommended for -general use. Instead, use rippled's built-in pagination and make multiple -requests as needed.

      - -

      Returns

      The array of all responses.

      - -

      Throws

      ValidationError if there is no collection key (either from a known command or for the unknown command).

      -
      -
      -

      Parameters

      -
      -

      Returns Promise<AccountTxResponse[]>

    • - -
    • -

      Makes multiple paged requests to the client to return a given number of -resources. Multiple paged requests will be made until the limit -number of resources is reached (if no limit is provided, a single request -will be made).

      -

      If the command is unknown, an additional collect property is required to -know which response key contains the array of resources.

      -

      NOTE: This command is used by existing methods and is not recommended for -general use. Instead, use rippled's built-in pagination and make multiple -requests as needed.

      - -

      Returns

      The array of all responses.

      - -

      Throws

      ValidationError if there is no collection key (either from a known command or for the unknown command).

      -
      -
      -

      Parameters

      -
      -

      Returns Promise<BookOffersResponse[]>

    • - -
    • -

      Makes multiple paged requests to the client to return a given number of -resources. Multiple paged requests will be made until the limit -number of resources is reached (if no limit is provided, a single request -will be made).

      -

      If the command is unknown, an additional collect property is required to -know which response key contains the array of resources.

      -

      NOTE: This command is used by existing methods and is not recommended for -general use. Instead, use rippled's built-in pagination and make multiple -requests as needed.

      - -

      Returns

      The array of all responses.

      - -

      Throws

      ValidationError if there is no collection key (either from a known command or for the unknown command).

      -
      -
      -

      Parameters

      -
      -

      Returns Promise<LedgerDataResponse[]>

    -
    - - +

    Returns Promise<SubmittableTransaction>

    +
    +

    Deprecated

    Use autofill instead, provided for users familiar with v1

    +
    - +
  • Defined in packages/xrpl/src/client/index.ts:808
  • +
    + +
    -
    -

    Other

    -
    - -
    connection: Connection
    -
    - -
    prepareTransaction: (<T>(this: Client, transaction: T, signersCount?: number) => Promise<T>) = autofill
    -
    -

    Type declaration

    -
      -
    • -
        -
      • <T>(this: Client, transaction: T, signersCount?: number): Promise<T>
      • +
      • Defined in node_modules/eventemitter3/index.d.ts:79
    +
    + +
      +
    • -
      -

      Deprecated

      Use autofill instead, provided for users familiar with v1

      +

      Remove the listeners of a given event.

      -
      +

      Type Parameters

      -
      -
      -

      Parameters

      -
        -
      • -
        this: Client
      • -
      • -
        transaction: T
      • -
      • -
        Optional signersCount: number
      -

      Returns Promise<T>

    -
    - -
    captureRejectionSymbol: typeof captureRejectionSymbol
    -
    - -
    captureRejections: boolean
    -

    Sets or gets the default captureRejection value for all emitters.

    -
    -
    - -
    defaultMaxListeners: number
    -
    - -
    errorMonitor: typeof errorMonitor
    -

    This symbol shall be used to install a listener for only monitoring 'error' -events. Listeners installed using this symbol are called before the regular -'error' listeners are called.

    -

    Installing a listener using this symbol does not change the behavior once an -'error' event is emitted, therefore the process will still crash if no -regular 'error' listener is installed.

    -
    -
    - -
      - -
    • -
      -

      Parameters

      -
        -
      • -
        event: string | symbol
      • -
      • -
        listener: ((...args: any[]) => void)
        -
          -
        • -
            -
          • (...args: any[]): void
          • -
          • -
            -

            Parameters

            -
              -
            • -
              Rest ...args: any[]
            -

            Returns void

      -

      Returns Client

    -
    - -
      - -
    • -
      -

      Parameters

      -
        -
      • -
        event: string | symbol
      • -
      • -
        Rest ...args: any[]
      -

      Returns boolean

    -
    - -
      - -
    • -

      Returns (string | symbol)[]

    -
    - -
      - -
    • -

      Returns number

    -
    - -
      - -
    • -
      -

      Parameters

      -
        -
      • -
        event: string | symbol
      -

      Returns number

    -
    - -
      - -
    • -
      -

      Parameters

      -
        -
      • -
        event: string | symbol
      -

      Returns Function[]

    -
    - -
      - -
    • -
      -

      Parameters

      -
        -
      • -
        event: string | symbol
      • -
      • -
        listener: ((...args: any[]) => void)
        -
          -
        • -
            -
          • (...args: any[]): void
          • -
          • -
            -

            Parameters

            -
              -
            • -
              Rest ...args: any[]
            -

            Returns void

      -

      Returns Client

    -
    - -
      - -
    • -
      -

      Parameters

      -
        -
      • -
        event: string | symbol
      • -
      • -
        listener: ((...args: any[]) => void)
        -
          -
        • -
            -
          • (...args: any[]): void
          • -
          • -
            -

            Parameters

            -
              -
            • -
              Rest ...args: any[]
            -

            Returns void

      -

      Returns Client

    -
    - -
      - -
    • -
      -

      Parameters

      -
        -
      • -
        event: string | symbol
      • -
      • -
        listener: ((...args: any[]) => void)
        -
          -
        • -
            -
          • (...args: any[]): void
          • -
          • -
            -

            Parameters

            -
              +
              • -
                Rest ...args: any[]
            -

            Returns void

      -

      Returns Client

    -
    - -
      - -
    • +

      T extends EventTypes

    Parameters

    • -
      event: string | symbol
    • +
      event: T
    • -
      listener: ((...args: any[]) => void)
      +
      Optional fn: ((...args) => void)
      Optional
      • -
          -
        • (...args: any[]): void
        • -
        • -
          -

          Parameters

          -
            -
          • -
            Rest ...args: any[]
          -

          Returns void

    -

    Returns Client

    -
    - -
      - -
    • -
      -

      Parameters

      -
        -
      • -
        event: string | symbol
      -

      Returns Function[]

    -
    - -
      - -
    • -
      -

      Parameters

      -
        -
      • -
        Optional event: string | symbol
      -

      Returns Client

    -
    - -
      - +
        +
      • (...args): void
      • Parameters

        • -
          event: string | symbol
        • +
          Rest ...args: any[]
          Rest
        +

        Returns void

  • -
    listener: ((...args: any[]) => void)
    -
      -
    • -
        -
      • (...args: any[]): void
      • -
      • -
        -

        Parameters

        -
          +
          Optional context: any
          Optional
        • -
          Rest ...args: any[]
        -

        Returns void

  • -

    Returns Client

    -
    - -
      - -
    • -
      -

      Parameters

      -
        -
      • -
        n: number
      -

      Returns Client

    -
    - -
      - -
    • -
      -

      Deprecated

      since v4.0.0

      -
      -
      -

      Parameters

      -
        -
      • -
        emitter: EventEmitter
      • -
      • -
        event: string | symbol
      -

      Returns number

    -
    - -
      - -
    • -
      -

      Parameters

      -
        -
      • -
        emitter: EventEmitter
      • -
      • -
        event: string
      -

      Returns AsyncIterableIterator<any>

    -
    - -
      - -
    • -
      -

      Parameters

      -
        -
      • -
        emitter: NodeEventTarget
      • -
      • -
        event: string | symbol
      -

      Returns Promise<any[]>

    • - -
    • -
      -

      Parameters

      -
        -
      • -
        emitter: DOMEventTarget
      • -
      • -
        event: string
      -

      Returns Promise<any[]>

    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • constructor
  • +
  • getBalances
  • +
  • getLedgerIndex
  • +
  • getOrderbook
  • +
  • getXrpBalance
  • +
  • autofill
  • +
  • submit
  • +
  • submitAndWait
  • +
  • fundWallet
  • +
  • feeCushion
  • +
  • maxFeeXRP
  • +
  • url
  • +
  • connect
  • +
  • disconnect
  • +
  • isConnected
  • +
  • on
  • +
  • request
  • +
  • requestAll
  • +
  • requestNextPage
  • +
  • buildVersion
  • +
  • connection
  • +
  • networkID
  • +
  • prefixed
  • +
  • addListener
  • +
  • emit
  • +
  • eventNames
  • +
  • getServerInfo
  • +
  • listenerCount
  • +
  • listeners
  • +
  • off
  • +
  • once
  • +
  • prepareTransaction
  • +
  • removeAllListeners
  • +
  • removeListener
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/classes/ConnectionError.html b/docs/classes/ConnectionError.html index 96cf566455..46d6862979 100644 --- a/docs/classes/ConnectionError.html +++ b/docs/classes/ConnectionError.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -ConnectionError | xrpl
    +ConnectionError | xrpl
    -

    Constructors

    -
    - -
    -

    Returns ConnectionError

    Properties

    -
    - -
    data?: unknown
    +
    + +
    prepareStackTrace?: ((err, stackTraces) => any)

    Type declaration

    -
    - -
    stackTraceLimit: number

    Methods

    -
    - -
    +
    + +
      +
    • Converts the Error to a human-readable String form.

      - -

      Returns

      The String output of the Error.

      -

      Returns string

    -
    - -
    +
    + +
      +
    • Create .stack property on a target object

      @@ -184,17 +187,19 @@
      • -
        targetObject: object
      • +
        targetObject: object
      • -
        Optional constructorOpt: Function
      -

      Returns void

    +

    Returns void

    +
    - +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • constructor
  • +
  • data
  • +
  • message
  • +
  • name
  • +
  • stack
  • +
  • prepareStackTrace
  • +
  • stackTraceLimit
  • +
  • inspect
  • +
  • toString
  • +
  • captureStackTrace
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/classes/DisconnectedError.html b/docs/classes/DisconnectedError.html index 1641ebe9f1..6574b17506 100644 --- a/docs/classes/DisconnectedError.html +++ b/docs/classes/DisconnectedError.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -DisconnectedError | xrpl
    +DisconnectedError | xrpl
    -
    +
    • xrpl
    • @@ -23,15 +23,16 @@

      Class DisconnectedError

    Error thrown when xrpl.js has disconnected from rippled server.

    -
    +
    +

    Hierarchy

    +
  • Defined in packages/xrpl/src/errors.ts:90
  • @@ -39,29 +40,29 @@

    Constructors

    -
    - -
    +
  • Defined in packages/xrpl/src/errors.ts:19
  • Properties

    -
    - -
    data?: unknown
    +
    + +
    prepareStackTrace?: ((err, stackTraces) => any)

    Type declaration

    -
    - -
    stackTraceLimit: number

    Methods

    -
    - -
    +
    + +
    -
    - -
    +
    + +
      +
    • Create .stack property on a target object

      @@ -178,17 +181,19 @@
      • -
        targetObject: object
      • +
        targetObject: object
      • -
        Optional constructorOpt: Function
      -

      Returns void

    +

    Returns void

    +
    - +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • constructor
  • +
  • data
  • +
  • message
  • +
  • name
  • +
  • stack
  • +
  • prepareStackTrace
  • +
  • stackTraceLimit
  • +
  • inspect
  • +
  • toString
  • +
  • captureStackTrace
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/classes/NotConnectedError.html b/docs/classes/NotConnectedError.html index 4109e71ccd..45c24e7b10 100644 --- a/docs/classes/NotConnectedError.html +++ b/docs/classes/NotConnectedError.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -NotConnectedError | xrpl
    +NotConnectedError | xrpl
    -
    +
    • xrpl
    • @@ -23,15 +23,16 @@

      Class NotConnectedError

    Error thrown when xrpl.js is not connected to rippled server.

    -
    +
    +

    Hierarchy

    +
  • Defined in packages/xrpl/src/errors.ts:83
  • @@ -39,29 +40,29 @@

    Constructors

    -
    - -
    +
  • Defined in packages/xrpl/src/errors.ts:19
  • Properties

    -
    - -
    data?: unknown
    +
    + +
    prepareStackTrace?: ((err, stackTraces) => any)

    Type declaration

    -
    - -
    stackTraceLimit: number

    Methods

    -
    - -
    +
    + +
    -
    - -
    +
    + +
      +
    • Create .stack property on a target object

      @@ -178,17 +181,19 @@
      • -
        targetObject: object
      • +
        targetObject: object
      • -
        Optional constructorOpt: Function
      -

      Returns void

    +

    Returns void

    +
    - +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • constructor
  • +
  • data
  • +
  • message
  • +
  • name
  • +
  • stack
  • +
  • prepareStackTrace
  • +
  • stackTraceLimit
  • +
  • inspect
  • +
  • toString
  • +
  • captureStackTrace
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/classes/NotFoundError.html b/docs/classes/NotFoundError.html index 93deaf2b99..87b4f6754c 100644 --- a/docs/classes/NotFoundError.html +++ b/docs/classes/NotFoundError.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -NotFoundError | xrpl
    +NotFoundError | xrpl
    -
    +
    • xrpl
    • @@ -24,15 +24,16 @@

      Class NotFoundError

    Error thrown when xrpl.js cannot retrieve a transaction, ledger, account, etc. From rippled.

    -
    +
    +

    Hierarchy

    +
  • Defined in packages/xrpl/src/errors.ts:135
  • @@ -40,29 +41,29 @@

    Constructors

    -
    - -
    +
  • Defined in packages/xrpl/src/errors.ts:141
  • Properties

    -
    - -
    data?: unknown
    +
    + +
    prepareStackTrace?: ((err, stackTraces) => any)

    Type declaration

    -
    - -
    stackTraceLimit: number

    Methods

    -
    - -
    +
    + +
      +
    • Converts the Error to a human-readable String form.

      - -

      Returns

      The String output of the Error.

      -

      Returns string

    -
    - -
    +
    + +
      +
    • Create .stack property on a target object

      @@ -175,17 +178,19 @@
      • -
        targetObject: object
      • +
        targetObject: object
      • -
        Optional constructorOpt: Function
      -

      Returns void

    +

    Returns void

    +
    - +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • constructor
  • +
  • data
  • +
  • message
  • +
  • name
  • +
  • stack
  • +
  • prepareStackTrace
  • +
  • stackTraceLimit
  • +
  • inspect
  • +
  • toString
  • +
  • captureStackTrace
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/classes/ResponseFormatError.html b/docs/classes/ResponseFormatError.html index 4a2ea538a6..cc03488bb4 100644 --- a/docs/classes/ResponseFormatError.html +++ b/docs/classes/ResponseFormatError.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -ResponseFormatError | xrpl
    +ResponseFormatError | xrpl
    -
    +
    • xrpl
    • @@ -23,15 +23,16 @@

      Class ResponseFormatError

    Error thrown when xrpl.js sees a response in the wrong format.

    -
    +
    +

    Hierarchy

    +
  • Defined in packages/xrpl/src/errors.ts:111
  • @@ -39,29 +40,29 @@

    Constructors

    -
    - -
    +
  • Defined in packages/xrpl/src/errors.ts:19
  • Properties

    -
    - -
    data?: unknown
    +
    + +
    prepareStackTrace?: ((err, stackTraces) => any)

    Type declaration

    -
    - -
    stackTraceLimit: number

    Methods

    -
    - -
    +
    + +
    -
    - -
    +
    + +
      +
    • Create .stack property on a target object

      @@ -178,17 +181,19 @@
      • -
        targetObject: object
      • +
        targetObject: object
      • -
        Optional constructorOpt: Function
      -

      Returns void

    +

    Returns void

    +
    - +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • constructor
  • +
  • data
  • +
  • message
  • +
  • name
  • +
  • stack
  • +
  • prepareStackTrace
  • +
  • stackTraceLimit
  • +
  • inspect
  • +
  • toString
  • +
  • captureStackTrace
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/classes/RippledError.html b/docs/classes/RippledError.html index 92c5493a85..02107d3288 100644 --- a/docs/classes/RippledError.html +++ b/docs/classes/RippledError.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -RippledError | xrpl
    +RippledError | xrpl
    -
    +
    • xrpl
    • @@ -23,15 +23,16 @@

      Class RippledError

    Error thrown when rippled responds with an error.

    -
    +
    +

    Hierarchy

    +
  • Defined in packages/xrpl/src/errors.ts:62
  • @@ -39,29 +40,29 @@

    Constructors

    -
    - -
    +
  • Defined in packages/xrpl/src/errors.ts:19
  • Properties

    -
    - -
    data?: unknown
    +
    + +
    prepareStackTrace?: ((err, stackTraces) => any)

    Type declaration

    -
    - -
    stackTraceLimit: number

    Methods

    -
    - -
    +
    + +
      +
    • Converts the Error to a human-readable String form.

      - -

      Returns

      The String output of the Error.

      -

      Returns string

    -
    - -
    +
    + +
      +
    • Create .stack property on a target object

      @@ -178,17 +181,19 @@
      • -
        targetObject: object
      • +
        targetObject: object
      • -
        Optional constructorOpt: Function
      -

      Returns void

    +

    Returns void

    +
    - +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • constructor
  • +
  • data
  • +
  • message
  • +
  • name
  • +
  • stack
  • +
  • prepareStackTrace
  • +
  • stackTraceLimit
  • +
  • inspect
  • +
  • toString
  • +
  • captureStackTrace
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/classes/RippledNotInitializedError.html b/docs/classes/RippledNotInitializedError.html index 6d8d802f8e..b974a5e525 100644 --- a/docs/classes/RippledNotInitializedError.html +++ b/docs/classes/RippledNotInitializedError.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -RippledNotInitializedError | xrpl
    +RippledNotInitializedError | xrpl
    -
    +
    • xrpl
    • @@ -23,15 +23,16 @@

      Class RippledNotInitializedError

    Error thrown when rippled is not initialized.

    -
    +
    +

    Hierarchy

    +
  • Defined in packages/xrpl/src/errors.ts:97
  • @@ -39,29 +40,29 @@

    Constructors

    -
    - -
    +
  • Defined in packages/xrpl/src/errors.ts:19
  • Properties

    -
    - -
    data?: unknown
    +
    + +
    prepareStackTrace?: ((err, stackTraces) => any)

    Type declaration

    -
    - -
    stackTraceLimit: number

    Methods

    -
    - -
    +
    + +
    -
    - -
    +
    + +
      +
    • Create .stack property on a target object

      @@ -178,17 +181,19 @@
      • -
        targetObject: object
      • +
        targetObject: object
      • -
        Optional constructorOpt: Function
      -

      Returns void

    +

    Returns void

    +
    - +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • constructor
  • +
  • data
  • +
  • message
  • +
  • name
  • +
  • stack
  • +
  • prepareStackTrace
  • +
  • stackTraceLimit
  • +
  • inspect
  • +
  • toString
  • +
  • captureStackTrace
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/classes/TimeoutError.html b/docs/classes/TimeoutError.html index f04613aadf..edb9adc9df 100644 --- a/docs/classes/TimeoutError.html +++ b/docs/classes/TimeoutError.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -TimeoutError | xrpl
    +TimeoutError | xrpl
    -
    +
    • xrpl
    • @@ -23,15 +23,16 @@

      Class TimeoutError

    Error thrown when xrpl.js times out.

    -
    +
    +

    Hierarchy

    +
  • Defined in packages/xrpl/src/errors.ts:104
  • @@ -39,29 +40,29 @@

    Constructors

    -
    - -
    +
  • Defined in packages/xrpl/src/errors.ts:19
  • Properties

    -
    - -
    data?: unknown
    +
    + +
    prepareStackTrace?: ((err, stackTraces) => any)

    Type declaration

    -
    - -
    stackTraceLimit: number

    Methods

    -
    - -
    +
    + +
    -
    - -
    +
    + +
      +
    • Create .stack property on a target object

      @@ -178,17 +181,19 @@
      • -
        targetObject: object
      • +
        targetObject: object
      • -
        Optional constructorOpt: Function
      -

      Returns void

    +

    Returns void

    +
    - +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • constructor
  • +
  • data
  • +
  • message
  • +
  • name
  • +
  • stack
  • +
  • prepareStackTrace
  • +
  • stackTraceLimit
  • +
  • inspect
  • +
  • toString
  • +
  • captureStackTrace
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/classes/UnexpectedError.html b/docs/classes/UnexpectedError.html index 3854356d10..8adf265995 100644 --- a/docs/classes/UnexpectedError.html +++ b/docs/classes/UnexpectedError.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -UnexpectedError | xrpl
    +UnexpectedError | xrpl
    -
    +
    • xrpl
    • @@ -23,15 +23,16 @@

      Class UnexpectedError

    Error thrown when xrpl.js cannot specify error type.

    -
    +
    +

    Hierarchy

    +
  • Defined in packages/xrpl/src/errors.ts:69
  • @@ -39,29 +40,29 @@

    Constructors

    -
    - -
    +
  • Defined in packages/xrpl/src/errors.ts:19
  • Properties

    -
    - -
    data?: unknown
    +
    + +
    prepareStackTrace?: ((err, stackTraces) => any)

    Type declaration

    -
    - -
    stackTraceLimit: number

    Methods

    -
    - -
    +
    + +
      +
    • Converts the Error to a human-readable String form.

      - -

      Returns

      The String output of the Error.

      -

      Returns string

    -
    - -
    +
    + +
      +
    • Create .stack property on a target object

      @@ -178,17 +181,19 @@
      • -
        targetObject: object
      • +
        targetObject: object
      • -
        Optional constructorOpt: Function
      -

      Returns void

    +

    Returns void

    +
    - +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • constructor
  • +
  • data
  • +
  • message
  • +
  • name
  • +
  • stack
  • +
  • prepareStackTrace
  • +
  • stackTraceLimit
  • +
  • inspect
  • +
  • toString
  • +
  • captureStackTrace
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/classes/ValidationError.html b/docs/classes/ValidationError.html index 2bf192b4d7..60bc31c544 100644 --- a/docs/classes/ValidationError.html +++ b/docs/classes/ValidationError.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -ValidationError | xrpl
    +ValidationError | xrpl
    -
    +
    • xrpl
    • @@ -23,15 +23,16 @@

      Class ValidationError

    Error thrown when xrpl.js sees a malformed transaction.

    -
    +
    +

    Hierarchy

    +
  • Defined in packages/xrpl/src/errors.ts:118
  • @@ -39,29 +40,29 @@

    Constructors

    -
    - -
    +
  • Defined in packages/xrpl/src/errors.ts:19
  • Properties

    -
    - -
    data?: unknown
    +
    + +
    prepareStackTrace?: ((err, stackTraces) => any)

    Type declaration

    -
    - -
    stackTraceLimit: number

    Methods

    -
    - -
    +
    + +
      +
    • Converts the Error to a human-readable String form.

      - -

      Returns

      The String output of the Error.

      -

      Returns string

    -
    - -
    +
    + +
      +
    • Create .stack property on a target object

      @@ -178,17 +181,19 @@
      • -
        targetObject: object
      • +
        targetObject: object
      • -
        Optional constructorOpt: Function
      -

      Returns void

    +

    Returns void

    +
    - +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • constructor
  • +
  • data
  • +
  • message
  • +
  • name
  • +
  • stack
  • +
  • prepareStackTrace
  • +
  • stackTraceLimit
  • +
  • inspect
  • +
  • toString
  • +
  • captureStackTrace
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/classes/Wallet.html b/docs/classes/Wallet.html index 59d2d54f75..fcaa90e6d3 100644 --- a/docs/classes/Wallet.html +++ b/docs/classes/Wallet.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -Wallet | xrpl
    +Wallet | xrpl
    -
    +
    • xrpl
    • @@ -25,16 +25,17 @@

      Class Wallet

    A utility for deriving a wallet composed of a keypair (publicKey/privateKey). A wallet can be derived from either a seed, mnemonic, or entropy (array of random numbers). It provides functionality to sign/verify transactions offline.

    - -

    Example


    // Derive a wallet from a base58 encoded seed.
    const seedWallet = Wallet.fromSeed('ssZkdwURFMBXenJPbrpE14b6noJSu')
    console.log(seedWallet)
    // Wallet {
    // publicKey: '02FE9932A9C4AA2AC9F0ED0F2B89302DE7C2C95F91D782DA3CF06E64E1C1216449',
    // privateKey: '00445D0A16DD05EFAF6D5AF45E6B8A6DE4170D93C0627021A0B8E705786CBCCFF7',
    // classicAddress: 'rG88FVLjvYiQaGftSa1cKuE2qNx7aK5ivo',
    // seed: 'ssZkdwURFMBXenJPbrpE14b6noJSu'
    // }.

    // Sign a JSON Transaction
    const signed = seedWallet.signTransaction({
    TransactionType: 'Payment',
    Account: 'rG88FVLjvYiQaGftSa1cKuE2qNx7aK5ivo'
    ...........
    }).

    console.log(signed)
    // '1200007321......B01BE1DFF3'.
    console.log(decode(signed))
    // {
    // TransactionType: 'Payment',
    // SigningPubKey: '02FE9932A9C4AA2AC9F0ED0F2B89302DE7C2C95F91D782DA3CF06E64E1C1216449',
    // TxnSignature: '3045022100AAD......5B631ABD21171B61B07D304',
    // Account: 'rG88FVLjvYiQaGftSa1cKuE2qNx7aK5ivo'
    // ...........
    // } -
    +
    +
    +

    Example


    // Derive a wallet from a base58 encoded seed.
    const seedWallet = Wallet.fromSeed('ssZkdwURFMBXenJPbrpE14b6noJSu')
    console.log(seedWallet)
    // Wallet {
    // publicKey: '02FE9932A9C4AA2AC9F0ED0F2B89302DE7C2C95F91D782DA3CF06E64E1C1216449',
    // privateKey: '00445D0A16DD05EFAF6D5AF45E6B8A6DE4170D93C0627021A0B8E705786CBCCFF7',
    // classicAddress: 'rG88FVLjvYiQaGftSa1cKuE2qNx7aK5ivo',
    // seed: 'ssZkdwURFMBXenJPbrpE14b6noJSu'
    // }.

    // Sign a JSON Transaction
    const signed = seedWallet.signTransaction({
    TransactionType: 'Payment',
    Account: 'rG88FVLjvYiQaGftSa1cKuE2qNx7aK5ivo'
    ...........
    }).

    console.log(signed)
    // '1200007321......B01BE1DFF3'.
    console.log(decode(signed))
    // {
    // TransactionType: 'Payment',
    // SigningPubKey: '02FE9932A9C4AA2AC9F0ED0F2B89302DE7C2C95F91D782DA3CF06E64E1C1216449',
    // TxnSignature: '3045022100AAD......5B631ABD21171B61B07D304',
    // Account: 'rG88FVLjvYiQaGftSa1cKuE2qNx7aK5ivo'
    // ...........
    // } +

    Hierarchy

    • Wallet
    +
  • Defined in packages/xrpl/src/Wallet/index.ts:91
  • @@ -42,39 +43,38 @@

    Constructors

    -
    - - +

    Returns Wallet

    +
    +
  • Defined in packages/xrpl/src/Wallet/index.ts:106
  • Properties

    -
    - -
    classicAddress: string
    +
    + +
    fromSecret: ((seed, opts?) => Wallet) = Wallet.fromSeed

    Type declaration

    • -
        -
      • (seed: string, opts?: {
            algorithm?: ECDSA;
            masterAddress?: string;
        }): Wallet
      • +
          +
        • (seed, opts?): Wallet
        • Derives a wallet from a secret (AKA a seed).

          - -

          Returns

          A Wallet derived from a secret (AKA a seed).

          Parameters

          • -
            seed: string
          • +
            seed: string
          • -
            opts: {
                algorithm?: ECDSA;
                masterAddress?: string;
            } = {}
            +
            opts: {
                algorithm?: ECDSA;
                masterAddress?: string;
            } = {}

            (Optional) Options to derive a Wallet.

            • -
              Optional algorithm?: ECDSA
              +
              Optional algorithm?: ECDSA

              The digital signature algorithm to generate an address for.

              -
            • +
          +
        • -
          Optional masterAddress?: string
          +
          Optional masterAddress?: string

          Include if a Wallet uses a Regular Key Pair. It must be the master address of the account.

          -
    -

    Returns Wallet

    +
  • Defined in packages/xrpl/src/Wallet/index.ts:184
  • Accessors

    -
    - -
      +
      + +
      • get address(): string
      • Alias for wallet.classicAddress.

        - -

        Returns

        The wallet's classic address.

        -

        Returns string

    +
  • Defined in packages/xrpl/src/Wallet/index.ts:127
  • Methods

    -
    - -
      - -
    • -

      Decode a serialized transaction, remove the fields that are added during the signing process, - and verify that it matches the transaction prior to signing. This gives the user a sanity check - to ensure that what they try to encode matches the message that will be recieved by rippled.

      - -

      Throws

      A ValidationError if the transaction does not have a TxnSignature/Signers property, or if -the serialized Transaction desn't match the original transaction.

      - -

      Throws

      XrplError if the transaction includes an issued currency which is equivalent to XRP ignoring case.

      -
      -
      -

      Parameters

      -
        -
      • -
        serialized: string
        -

        A signed and serialized transaction.

        -
      • -
      • -
        tx: Transaction
        -

        The transaction prior to signing.

        -
      -

      Returns void

    -
    - -
      - +
      + +
        +
      • Gets an X-address in Testnet/Mainnet format.

        - -

        Returns

        An X-address.

        Parameters

        • -
          tag: number | false = false
          +
          tag: number | false = false

          A tag to be included within the X-address.

        • -
          isTestnet: boolean = false
          +
          isTestnet: boolean = false

          A boolean to indicate if X-address should be in Testnet (true) or Mainnet (false) format.

        -

        Returns string

      -
      - -
    +
    + +
      +
    • Signs a transaction offline.

      - -

      Returns

      A signed transaction.

      - -

      Throws

      ValidationError if the transaction is already signed or does not encode/decode to same result.

      - -

      Throws

      XrplError if the issued currency being signed is XRP ignoring case.

      Parameters

      • -
        this: Wallet
        +
        this: Wallet

        Wallet instance.

      • -
        transaction: Transaction
        +
        transaction: Transaction

        A transaction to be signed offline.

      • -
        Optional multisign: string | boolean
        +
        Optional multisign: string | boolean

        Specify true/false to use multisign or actual address (classic/x-address) to make multisign tx request.

        -
      -

      Returns {
          hash: string;
          tx_blob: string;
      }

      +Optional
    +

    Returns {
        hash: string;
        tx_blob: string;
    }

    A signed transaction.

    +
    • -
      hash: string
    • +
      hash: string
    • -
      tx_blob: string
    -
    - -
    +
    + +
      +
    • Verifies a signed transaction offline.

      - -

      Returns

      Returns true if a signedTransaction is valid.

      Parameters

      • -
        signedTransaction: string | Transaction
        +
        signedTransaction: string | Transaction

        A signed transaction (hex string of signTransaction result) to be verified offline.

      -

      Returns boolean

    -
    - -
    +
    + +
      +
    • Derive a Wallet from a seed.

      - -

      Returns

      A Wallet derived from the seed.

      Parameters

      • -
        seed: string
        +
        seed: string

        The seed used to derive the wallet.

      • -
        opts: {
            algorithm?: ECDSA;
            masterAddress?: string;
        } = {}
        +
        opts: {
            algorithm?: ECDSA;
            masterAddress?: string;
        } = {}

        (Optional) Options to derive a Wallet.

        • -
          Optional algorithm?: ECDSA
          +
          Optional algorithm?: ECDSA

          The digital signature algorithm to generate an address for.

          -
        • +
      +
    • -
      Optional masterAddress?: string
      +
      Optional masterAddress?: string

      Include if a Wallet uses a Regular Key Pair. It must be the master address of the account.

      -
    -

    Returns Wallet

    -
    - -
    +
    + +
      +
    • Derives a wallet from an entropy (array of random numbers).

      - -

      Returns

      A Wallet derived from an entropy.

      Parameters

      • -
        entropy: number[] | Uint8Array
        +
        entropy: number[] | Uint8Array

        An array of random numbers to generate a seed used to derive a wallet.

      • -
        opts: {
            algorithm?: ECDSA;
            masterAddress?: string;
        } = {}
        +
        opts: {
            algorithm?: ECDSA;
            masterAddress?: string;
        } = {}

        (Optional) Options to derive a Wallet.

        • -
          Optional algorithm?: ECDSA
          +
          Optional algorithm?: ECDSA

          The digital signature algorithm to generate an address for.

          -
        • +
      +
    • -
      Optional masterAddress?: string
      +
      Optional masterAddress?: string

      Include if a Wallet uses a Regular Key Pair. It must be the master address of the account.

      -
    -

    Returns Wallet

    -
    - -
      - +
    • Defined in packages/xrpl/src/Wallet/index.ts:195
    +
    + +
      +
    • Derives a wallet from a bip39 or RFC1751 mnemonic (Defaults to bip39).

      - -

      Deprecated

      since version 2.6.1. -Will be deleted in version 3.0.0. -This representation is currently deprecated in rippled. -You should use another method to represent your keys such as a seed or public/private keypair.

      - -

      Returns

      A Wallet derived from a mnemonic.

      - -

      Throws

      ValidationError if unable to derive private key from mnemonic input.

      Parameters

      • -
        mnemonic: string
        +
        mnemonic: string

        A string consisting of words (whitespace delimited) used to derive a wallet.

      • -
        opts: {
            algorithm?: ECDSA;
            derivationPath?: string;
            masterAddress?: string;
            mnemonicEncoding?: "bip39" | "rfc1751";
        } = {}
        +
        opts: {
            algorithm?: ECDSA;
            derivationPath?: string;
            masterAddress?: string;
            mnemonicEncoding?: "bip39" | "rfc1751";
        } = {}

        (Optional) Options to derive a Wallet.

        • -
          Optional algorithm?: ECDSA
          +
          Optional algorithm?: ECDSA

          Only used if opts.mnemonicEncoding is 'rfc1751'. Allows the mnemonic to generate its secp256k1 seed, or its ed25519 seed. By default, it will generate the secp256k1 seed to match the rippled wallet_propose default algorithm.

          -
        • +
      +
    • -
      Optional derivationPath?: string
      +
      Optional derivationPath?: string

      The path to derive a keypair (publicKey/privateKey). Only used for bip39 conversions.

      -
    • + +
    • -
      Optional masterAddress?: string
      +
      Optional masterAddress?: string

      Include if a Wallet uses a Regular Key Pair. It must be the master address of the account.

      -
    • + +
    • -
      Optional mnemonicEncoding?: "bip39" | "rfc1751"
      +
      Optional mnemonicEncoding?: "bip39" | "rfc1751"

      If set to 'rfc1751', this interprets the mnemonic as a rippled RFC1751 mnemonic like wallet_propose generates in rippled. Otherwise the function defaults to bip39 decoding.

      -
    -

    Returns Wallet

    -
    - -
    +
    + +
      +
    • Derives a wallet from a RFC1751 mnemonic, which is how wallet_propose encodes mnemonics.

      - -

      Returns

      A Wallet derived from a mnemonic.

      Parameters

      • -
        mnemonic: string
        +
        mnemonic: string

        A string consisting of words (whitespace delimited) used to derive a wallet.

      • -
        opts: {
            algorithm?: ECDSA;
            masterAddress?: string;
        }
        +
        opts: {
            algorithm?: ECDSA;
            masterAddress?: string;
        }

        (Optional) Options to derive a Wallet.

        • -
          Optional algorithm?: ECDSA
          +
          Optional algorithm?: ECDSA

          The digital signature algorithm to generate an address for.

          -
        • +
      +
    • -
      Optional masterAddress?: string
      +
      Optional masterAddress?: string

      Include if a Wallet uses a Regular Key Pair. It must be the master address of the account.

      -
    -

    Returns Wallet

    -
    - -
    +
    + +
      +
    • Derives a wallet from a seed.

      - -

      Returns

      A Wallet derived from a seed.

      Parameters

      • -
        seed: string
        +
        seed: string

        A string used to generate a keypair (publicKey/privateKey) to derive a wallet.

      • -
        opts: {
            algorithm?: ECDSA;
            masterAddress?: string;
        } = {}
        +
        opts: {
            algorithm?: ECDSA;
            masterAddress?: string;
        } = {}

        (Optional) Options to derive a Wallet.

        • -
          Optional algorithm?: ECDSA
          +
          Optional algorithm?: ECDSA

          The digital signature algorithm to generate an address for.

          -
        • +
      +
    • -
      Optional masterAddress?: string
      +
      Optional masterAddress?: string

      Include if a Wallet uses a Regular Key Pair. It must be the master address of the account.

      -
    -

    Returns Wallet

    -
    - -
    +
    + +
      +
    • -

      Generates a new Wallet using a generated seed.

      - -

      Returns

      A new Wallet derived from a generated seed.

      +

      generate() creates a new random Wallet. In order to make this a valid account on ledger, you must +Send XRP to it. On test networks that can be done with "faucets" which send XRP to any account which asks +For it. You can call client.fundWallet() in order to generate credentials and fund the account on test networks.

      Parameters

      • -
        algorithm: ECDSA = DEFAULT_ALGORITHM
        +
        algorithm: ECDSA = DEFAULT_ALGORITHM

        The digital signature algorithm to generate an address for.

      -

      Returns Wallet

    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • constructor
  • +
  • classicAddress
  • +
  • privateKey
  • +
  • publicKey
  • +
  • seed
  • +
  • fromSecret
  • +
  • address
  • +
  • getXAddress
  • +
  • sign
  • +
  • verifyTransaction
  • +
  • deriveWallet
  • +
  • fromEntropy
  • +
  • fromMnemonic
  • +
  • fromRFC1751Mnemonic
  • +
  • fromSeed
  • +
  • generate
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/classes/XRPLFaucetError.html b/docs/classes/XRPLFaucetError.html index 6d9bbf317d..0abd3d5255 100644 --- a/docs/classes/XRPLFaucetError.html +++ b/docs/classes/XRPLFaucetError.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -XRPLFaucetError | xrpl
    +XRPLFaucetError | xrpl
    -
    +
    • xrpl
    • @@ -25,15 +25,16 @@

      Class XRPLFaucetError

    Error thrown when a client cannot generate a wallet from the testnet/devnet faucets, or when the client cannot infer the faucet URL (i.e. when the Client is connected to mainnet).

    -
    +
    +

    Hierarchy

    +
  • Defined in packages/xrpl/src/errors.ts:127
  • @@ -41,29 +42,29 @@

    Constructors

    -
    - -
    -

    Returns XRPLFaucetError

    Properties

    -
    - -
    data?: unknown
    +
    + +
    prepareStackTrace?: ((err, stackTraces) => any)

    Type declaration

    -
    - -
    stackTraceLimit: number

    Methods

    -
    - -
    +
    + +
      +
    • Converts the Error to a human-readable String form.

      - -

      Returns

      The String output of the Error.

      -

      Returns string

    -
    - -
    +
    + +
      +
    • Create .stack property on a target object

      @@ -180,17 +183,19 @@
      • -
        targetObject: object
      • +
        targetObject: object
      • -
        Optional constructorOpt: Function
      -

      Returns void

    +

    Returns void

    +
    - +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • constructor
  • +
  • data
  • +
  • message
  • +
  • name
  • +
  • stack
  • +
  • prepareStackTrace
  • +
  • stackTraceLimit
  • +
  • inspect
  • +
  • toString
  • +
  • captureStackTrace
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/classes/XrplError.html b/docs/classes/XrplError.html index 6a1ce8f599..665a95f9c7 100644 --- a/docs/classes/XrplError.html +++ b/docs/classes/XrplError.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -XrplError | xrpl
    +XrplError | xrpl
    -
    +
    • xrpl
    • @@ -24,22 +24,23 @@

      Class XrplError

    Base Error class for xrpl.js. All Errors thrown by xrpl.js should throw XrplErrors.

    -
    +
    +

    Hierarchy

    @@ -47,29 +48,29 @@

    Constructors

    -
    - -
    +
  • Defined in packages/xrpl/src/errors.ts:19
  • Properties

    -
    - -
    data?: unknown
    +
    + +
    prepareStackTrace?: ((err, stackTraces) => any)

    Type declaration

    -
    - -
    stackTraceLimit: number

    Methods

    -
    - -
    +
    + +
      +
    • Converts the Error to a human-readable String form.

      - -

      Returns

      The String output of the Error.

      -

      Returns string

    -
    - -
    +
    + +
      +
    • Create .stack property on a target object

      @@ -183,17 +186,19 @@
      • -
        targetObject: object
      • +
        targetObject: object
      • -
        Optional constructorOpt: Function
      -

      Returns void

    +

    Returns void

    +
    - +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • constructor
  • +
  • data
  • +
  • message
  • +
  • name
  • +
  • stack
  • +
  • prepareStackTrace
  • +
  • stackTraceLimit
  • +
  • inspect
  • +
  • toString
  • +
  • captureStackTrace
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/enums/AMMDepositFlags.html b/docs/enums/AMMDepositFlags.html new file mode 100644 index 0000000000..9bc6d6fe0e --- /dev/null +++ b/docs/enums/AMMDepositFlags.html @@ -0,0 +1,400 @@ +AMMDepositFlags | xrpl
    +
    + +
    +
    +
    +
    + +

    Enumeration AMMDepositFlags

    +
    +

    Enum representing values for AMMDeposit Transaction Flags.

    +
    +
    +
    +
    +
    + +
    +
    +

    Enumeration Members

    +
    + +
    tfLPToken: 65536
    +
    + +
    tfLimitLPToken: 4194304
    +
    + +
    tfOneAssetLPToken: 2097152
    +
    + +
    tfSingleAsset: 524288
    +
    + +
    tfTwoAsset: 1048576
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/enums/AMMWithdrawFlags.html b/docs/enums/AMMWithdrawFlags.html new file mode 100644 index 0000000000..9dcc29dfe1 --- /dev/null +++ b/docs/enums/AMMWithdrawFlags.html @@ -0,0 +1,414 @@ +AMMWithdrawFlags | xrpl
    +
    + +
    +
    +
    +
    + +

    Enumeration AMMWithdrawFlags

    +
    +

    Enum representing values for AMMWithdrawFlags Transaction Flags.

    +
    +
    +
    +
    +
    + +
    +
    +

    Enumeration Members

    +
    + +
    tfLPToken: 65536
    +
    + +
    tfLimitLPToken: 4194304
    +
    + +
    tfOneAssetLPToken: 2097152
    +
    + +
    tfOneAssetWithdrawAll: 262144
    +
    + +
    tfSingleAsset: 524288
    +
    + +
    tfTwoAsset: 1048576
    +
    + +
    tfWithdrawAll: 131072
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/enums/AccountSetAsfFlags.html b/docs/enums/AccountSetAsfFlags.html index 67a335e68c..452c741ed7 100644 --- a/docs/enums/AccountSetAsfFlags.html +++ b/docs/enums/AccountSetAsfFlags.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -AccountSetAsfFlags | xrpl
    +AccountSetAsfFlags | xrpl
    -
    +
    • xrpl
    • @@ -23,9 +23,10 @@

      Enumeration AccountSetAsfFlags

    Enum for AccountSet Flags.

    -
    +
    +
  • Defined in packages/xrpl/src/models/transactions/accountSet.ts:16
  • @@ -33,130 +34,154 @@

    Enumeration Members

    -
    - -
    asfAccountTxnID: 5
    +
    + +
    asfAccountTxnID: 5

    Track the ID of this account's most recent transaction. Required for AccountTxnID.

    -
    -
    - -
    asfAuthorizedNFTokenMinter: 10
    +
  • Defined in packages/xrpl/src/models/transactions/accountSet.ts:36
  • +
    + +
    asfAllowTrustLineClawback: 16
    +

    Permanently gain the ability to claw back issued IOUs

    +
    +
    +
    + +
    asfAuthorizedNFTokenMinter: 10

    Allow another account to mint and burn tokens on behalf of this account.

    -
    -
    - -
    asfDefaultRipple: 8
    +
  • Defined in packages/xrpl/src/models/transactions/accountSet.ts:51
  • +
    + +
    asfDefaultRipple: 8

    Enable rippling on this account's trust lines by default.

    -
    -
    - -
    asfDepositAuth: 9
    +
  • Defined in packages/xrpl/src/models/transactions/accountSet.ts:45
  • +
    + +
    asfDepositAuth: 9

    Enable Deposit Authorization on this account.

    -
    -
    - -
    asfDisableMaster: 4
    +
  • Defined in packages/xrpl/src/models/transactions/accountSet.ts:47
  • +
    + +
    asfDisableMaster: 4

    Disallow use of the master key pair. Can only be enabled if the account has configured another way to sign transactions, such as a Regular Key or a Signer List.

    -
    -
    - -
    asfDisallowIncomingCheck: 13
    +
  • Defined in packages/xrpl/src/models/transactions/accountSet.ts:31
  • +
    + +
    asfDisallowIncomingCheck: 13

    Disallow other accounts from creating incoming Checks

    -
    -
    - -
    asfDisallowIncomingNFTokenOffer: 12
    +
  • Defined in packages/xrpl/src/models/transactions/accountSet.ts:56
  • +
    + +
    asfDisallowIncomingNFTokenOffer: 12

    Disallow other accounts from creating incoming NFTOffers

    -
    -
    - -
    asfDisallowIncomingPayChan: 14
    +
  • Defined in packages/xrpl/src/models/transactions/accountSet.ts:54
  • +
    + +
    asfDisallowIncomingPayChan: 14

    Disallow other accounts from creating incoming PayChannels

    -
    -
    - -
    asfDisallowIncomingTrustline: 15
    +
  • Defined in packages/xrpl/src/models/transactions/accountSet.ts:58
  • +
    + +
    asfDisallowIncomingTrustline: 15

    Disallow other accounts from creating incoming Trustlines

    -
    -
    - -
    asfDisallowXRP: 3
    +
  • Defined in packages/xrpl/src/models/transactions/accountSet.ts:60
  • +
    + +
    asfDisallowXRP: 3

    XRP should not be sent to this account.

    -
    -
    - -
    asfGlobalFreeze: 7
    +
  • Defined in packages/xrpl/src/models/transactions/accountSet.ts:25
  • +
    + +
    asfGlobalFreeze: 7

    Freeze all assets issued by this account.

    -
    -
    - -
    asfNoFreeze: 6
    +
  • Defined in packages/xrpl/src/models/transactions/accountSet.ts:43
  • +
    + +
    asfNoFreeze: 6

    Permanently give up the ability to freeze individual trust lines or disable Global Freeze. This flag can never be disabled after being enabled.

    -
    -
    - -
    asfRequireAuth: 2
    +
  • Defined in packages/xrpl/src/models/transactions/accountSet.ts:41
  • +
    + +
    asfRequireAuth: 2

    Require authorization for users to hold balances issued by this address can only be enabled if the address has no trust lines connected to it.

    -
    -
    - -
    asfRequireDest: 1
    +
  • Defined in packages/xrpl/src/models/transactions/accountSet.ts:23
  • +
    + +
    asfRequireDest: 1

    Require a destination tag to send transactions to this account.

    -
    -
    +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • asfAccountTxnID
  • +
  • asfAllowTrustLineClawback
  • +
  • asfAuthorizedNFTokenMinter
  • +
  • asfDefaultRipple
  • +
  • asfDepositAuth
  • +
  • asfDisableMaster
  • +
  • asfDisallowIncomingCheck
  • +
  • asfDisallowIncomingNFTokenOffer
  • +
  • asfDisallowIncomingPayChan
  • +
  • asfDisallowIncomingTrustline
  • +
  • asfDisallowXRP
  • +
  • asfGlobalFreeze
  • +
  • asfNoFreeze
  • +
  • asfRequireAuth
  • +
  • asfRequireDest
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/enums/AccountSetTfFlags.html b/docs/enums/AccountSetTfFlags.html index 963d62dd67..6e2190554a 100644 --- a/docs/enums/AccountSetTfFlags.html +++ b/docs/enums/AccountSetTfFlags.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -AccountSetTfFlags | xrpl
    +AccountSetTfFlags | xrpl
    -
    +
    • xrpl
    • @@ -23,9 +23,10 @@

      Enumeration AccountSetTfFlags

    Enum for AccountSet Transaction Flags.

    -
    +
    +
  • Defined in packages/xrpl/src/models/transactions/accountSet.ts:70
  • @@ -33,61 +34,68 @@

    Enumeration Members

    -
    - -
    tfAllowXRP: 2097152
    +
    + +
    tfAllowXRP: 2097152

    The same as ClearFlag: asfDisallowXRP.

    -
    +
    -
    - -
    tfDisallowXRP: 1048576
    +
  • Defined in packages/xrpl/src/models/transactions/accountSet.ts:82
  • +
    + +
    tfDisallowXRP: 1048576

    The same as SetFlag: asfDisallowXRP.

    -
    -
    - -
    tfOptionalAuth: 524288
    +
  • Defined in packages/xrpl/src/models/transactions/accountSet.ts:80
  • +
    + +
    tfOptionalAuth: 524288

    The same as ClearFlag: asfRequireAuth.

    -
    -
    - -
    tfOptionalDestTag: 131072
    +
  • Defined in packages/xrpl/src/models/transactions/accountSet.ts:78
  • +
    + +
    tfOptionalDestTag: 131072

    The same as ClearFlag: asfRequireDest.

    -
    -
    - -
    tfRequireAuth: 262144
    +
  • Defined in packages/xrpl/src/models/transactions/accountSet.ts:74
  • +
    + +
    tfRequireAuth: 262144

    The same as SetFlag: asfRequireAuth.

    -
    -
    - -
    tfRequireDestTag: 65536
    +
  • Defined in packages/xrpl/src/models/transactions/accountSet.ts:76
  • +
    + +
    tfRequireDestTag: 65536

    The same as SetFlag: asfRequireDest.

    -
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • tfAllowXRP
  • +
  • tfDisallowXRP
  • +
  • tfOptionalAuth
  • +
  • tfOptionalDestTag
  • +
  • tfRequireAuth
  • +
  • tfRequireDestTag
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/enums/ECDSA.html b/docs/enums/ECDSA.html new file mode 100644 index 0000000000..1cbb20c030 --- /dev/null +++ b/docs/enums/ECDSA.html @@ -0,0 +1,375 @@ +ECDSA | xrpl
    +
    + +
    +
    +
    +
    + +

    Enumeration ECDSA

    +
    +
    +
    + +
    +
    +

    Enumeration Members

    +
    +
    +

    Enumeration Members

    +
    + +
    ed25519: "ed25519"
    +
    + +
    secp256k1: "ecdsa-secp256k1"
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/enums/EnableAmendmentFlags.html b/docs/enums/EnableAmendmentFlags.html new file mode 100644 index 0000000000..c9ff9a12c9 --- /dev/null +++ b/docs/enums/EnableAmendmentFlags.html @@ -0,0 +1,385 @@ +EnableAmendmentFlags | xrpl
    +
    + +
    +
    +
    +
    + +

    Enumeration EnableAmendmentFlags

    +
    +

    Transaction Flags for an EnableAmendment Transaction.

    +
    +
    +
    +
    +
    + +
    +
    +

    Enumeration Members

    +
    +
    +

    Enumeration Members

    +
    + +
    tfGotMajority: 65536
    +

    Support for this amendment increased to at least 80% of trusted validators starting with this ledger version.

    +
    +
    +
    + +
    tfLostMajority: 131072
    +

    Support for this amendment decreased to less than 80% of trusted validators starting with this ledger version.

    +
    +
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/enums/LedgerEntry.AccountRootFlags.html b/docs/enums/LedgerEntry.AccountRootFlags.html index 29c66dc6d9..c328f3e6ab 100644 --- a/docs/enums/LedgerEntry.AccountRootFlags.html +++ b/docs/enums/LedgerEntry.AccountRootFlags.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -AccountRootFlags | xrpl
    +AccountRootFlags | xrpl
    -
    +

    Enumeration Members

    -
    - -
    lsfDefaultRipple: 8388608
    +
    + +
    lsfAMM: 33554432
    +

    This account is an Automated Market Maker (AMM) instance.

    +
    +
    +
    + +
    lsfAllowTrustLineClawback: 2147483648
    +

    This address can claw back issued IOUs. Once enabled, cannot be disabled.

    +
    +
    +
    + +
    lsfDefaultRipple: 8388608

    Enable rippling on this address's trust lines by default. Required for issuing addresses; discouraged for others.

    -
    +
    -
    - -
    lsfDepositAuth: 16777216
    +
  • Defined in packages/xrpl/src/models/ledger/AccountRoot.ts:183
  • +
    + +
    lsfDepositAuth: 16777216

    This account can only receive funds from transactions it sends, and from preauthorized accounts. (It has DepositAuth enabled.)

    -
    +
    -
    - -
    lsfDisableMaster: 1048576
    +
  • Defined in packages/xrpl/src/models/ledger/AccountRoot.ts:188
  • +
    + +
    lsfDisableMaster: 1048576

    Disallows use of the master key to sign transactions for this account.

    -
    -
    - -
    lsfDisallowIncomingCheck: 134217728
    +
  • Defined in packages/xrpl/src/models/ledger/AccountRoot.ts:171
  • +
    + +
    lsfDisallowIncomingCheck: 134217728

    Disallow incoming Checks from other accounts.

    -
    -
    - -
    lsfDisallowIncomingNFTokenOffer: 67108864
    +
  • Defined in packages/xrpl/src/models/ledger/AccountRoot.ts:200
  • +
    + +
    lsfDisallowIncomingNFTokenOffer: 67108864

    Disallow incoming NFTOffers from other accounts.

    -
    -
    - -
    lsfDisallowIncomingPayChan: 268435456
    +
  • Defined in packages/xrpl/src/models/ledger/AccountRoot.ts:196
  • +
    + +
    lsfDisallowIncomingPayChan: 268435456

    Disallow incoming PayChannels from other accounts.

    -
    -
    - -
    lsfDisallowIncomingTrustline: 536870912
    +
  • Defined in packages/xrpl/src/models/ledger/AccountRoot.ts:204
  • +
    + +
    lsfDisallowIncomingTrustline: 536870912

    Disallow incoming Trustlines from other accounts.

    -
    -
    - -
    lsfDisallowXRP: 524288
    +
  • Defined in packages/xrpl/src/models/ledger/AccountRoot.ts:208
  • +
    + +
    lsfDisallowXRP: 524288

    Client applications should not send XRP to this account. Not enforced by rippled.

    -
    -
    - -
    lsfGlobalFreeze: 4194304
    +
  • Defined in packages/xrpl/src/models/ledger/AccountRoot.ts:167
  • +
    + +
    lsfGlobalFreeze: 4194304

    All assets issued by this address are frozen.

    -
    -
    - -
    lsfNoFreeze: 2097152
    +
  • Defined in packages/xrpl/src/models/ledger/AccountRoot.ts:179
  • +
    + +
    lsfNoFreeze: 2097152

    This address cannot freeze trust lines connected to it. Once enabled, cannot be disabled.

    -
    -
    - -
    lsfPasswordSpent: 65536
    +
  • Defined in packages/xrpl/src/models/ledger/AccountRoot.ts:175
  • +
    + +
    lsfPasswordSpent: 65536

    The account has used its free SetRegularKey transaction.

    -
    -
    - -
    lsfRequireAuth: 262144
    +
  • Defined in packages/xrpl/src/models/ledger/AccountRoot.ts:155
  • +
    + +
    lsfRequireAuth: 262144

    This account must individually approve other users for those users to hold this account's issued currencies.

    -
    -
    - -
    lsfRequireDestTag: 131072
    +
  • Defined in packages/xrpl/src/models/ledger/AccountRoot.ts:163
  • +
    + +
    lsfRequireDestTag: 131072

    Requires incoming payments to specify a Destination Tag.

    -
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • lsfAMM
  • +
  • lsfAllowTrustLineClawback
  • +
  • lsfDefaultRipple
  • +
  • lsfDepositAuth
  • +
  • lsfDisableMaster
  • +
  • lsfDisallowIncomingCheck
  • +
  • lsfDisallowIncomingNFTokenOffer
  • +
  • lsfDisallowIncomingPayChan
  • +
  • lsfDisallowIncomingTrustline
  • +
  • lsfDisallowXRP
  • +
  • lsfGlobalFreeze
  • +
  • lsfNoFreeze
  • +
  • lsfPasswordSpent
  • +
  • lsfRequireAuth
  • +
  • lsfRequireDestTag
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/enums/LedgerEntry.OfferFlags.html b/docs/enums/LedgerEntry.OfferFlags.html index 99effdb734..5977657358 100644 --- a/docs/enums/LedgerEntry.OfferFlags.html +++ b/docs/enums/LedgerEntry.OfferFlags.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -OfferFlags | xrpl
    +OfferFlags | xrpl
    -
    +

    Enumeration OfferFlags

    +
  • Defined in packages/xrpl/src/models/ledger/Offer.ts:39
  • @@ -31,25 +31,26 @@

    Enumeration Members

    -
    - -
    lsfPassive: 65536
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • lsfPassive
  • +
  • lsfSell
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/enums/LedgerEntry.RippleStateFlags.html b/docs/enums/LedgerEntry.RippleStateFlags.html index 0def183988..683e5fa610 100644 --- a/docs/enums/LedgerEntry.RippleStateFlags.html +++ b/docs/enums/LedgerEntry.RippleStateFlags.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -RippleStateFlags | xrpl
    +RippleStateFlags | xrpl
    -
    +

    Enumeration Members

    -
    - -
    lsfHighAuth: 524288
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • lsfHighAuth
  • +
  • lsfHighFreeze
  • +
  • lsfHighNoRipple
  • +
  • lsfHighReserve
  • +
  • lsfLowAuth
  • +
  • lsfLowFreeze
  • +
  • lsfLowNoRipple
  • +
  • lsfLowReserve
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/enums/LedgerEntry.SignerListFlags.html b/docs/enums/LedgerEntry.SignerListFlags.html index 35bbc141d3..9d25a9f052 100644 --- a/docs/enums/LedgerEntry.SignerListFlags.html +++ b/docs/enums/LedgerEntry.SignerListFlags.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -SignerListFlags | xrpl
    +SignerListFlags | xrpl
    -
    +

    Enumeration SignerListFlags

    +
  • Defined in packages/xrpl/src/models/ledger/SignerList.ts:43
  • @@ -31,19 +31,20 @@

    Enumeration Members

    -
    - -
    lsfOneOwnerCount: 65536
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • lsfOneOwnerCount
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/enums/NFTokenCreateOfferFlags.html b/docs/enums/NFTokenCreateOfferFlags.html index 01e8dd3373..0a62b71df5 100644 --- a/docs/enums/NFTokenCreateOfferFlags.html +++ b/docs/enums/NFTokenCreateOfferFlags.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -NFTokenCreateOfferFlags | xrpl
    +NFTokenCreateOfferFlags | xrpl
    -
    +
    • xrpl
    • @@ -23,9 +23,10 @@

      Enumeration NFTokenCreateOfferFlags

    Transaction Flags for an NFTokenCreateOffer Transaction.

    -
    +
    +
  • Defined in packages/xrpl/src/models/transactions/NFTokenCreateOffer.ts:22
  • @@ -33,22 +34,24 @@

    Enumeration Members

    -
    - -
    tfSellNFToken: 1
    +
    + +
    tfSellNFToken: 1

    If set, indicates that the offer is a sell offer. Otherwise, it is a buy offer.

    -
    +
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • tfSellNFToken
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/enums/NFTokenMintFlags.html b/docs/enums/NFTokenMintFlags.html index c7e06a5016..54a14d4d49 100644 --- a/docs/enums/NFTokenMintFlags.html +++ b/docs/enums/NFTokenMintFlags.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -NFTokenMintFlags | xrpl
    +NFTokenMintFlags | xrpl
    -
    +
    • xrpl
    • @@ -23,9 +23,10 @@

      Enumeration NFTokenMintFlags

    Transaction Flags for an NFTokenMint Transaction.

    -
    +
    +
  • Defined in packages/xrpl/src/models/transactions/NFTokenMint.ts:19
  • @@ -33,50 +34,55 @@

    Enumeration Members

    -
    - -
    tfBurnable: 1
    +
    + +
    tfBurnable: 1

    If set, indicates that the minted token may be burned by the issuer even if the issuer does not currently hold the token. The current holder of the token may always burn it.

    -
    +
    -
    - -
    tfOnlyXRP: 2
    +
  • Defined in packages/xrpl/src/models/transactions/NFTokenMint.ts:25
  • +
    + +
    tfOnlyXRP: 2

    If set, indicates that the token may only be offered or sold for XRP.

    -
    -
    - -
    tfTransferable: 8
    +
  • Defined in packages/xrpl/src/models/transactions/NFTokenMint.ts:29
  • +
    + +
    tfTransferable: 8

    If set, indicates that this NFT can be transferred. This flag has no effect if the token is being transferred from the issuer or to the issuer.

    -
    -
    - -
    tfTrustLine: 4
    +
  • Defined in packages/xrpl/src/models/transactions/NFTokenMint.ts:40
  • +
    + +
    tfTrustLine: 4

    If set, indicates that the issuer wants a trustline to be automatically created.

    -
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • tfBurnable
  • +
  • tfOnlyXRP
  • +
  • tfTransferable
  • +
  • tfTrustLine
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/enums/OfferCreateFlags.html b/docs/enums/OfferCreateFlags.html index ff8c2cfe96..431d338b95 100644 --- a/docs/enums/OfferCreateFlags.html +++ b/docs/enums/OfferCreateFlags.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -OfferCreateFlags | xrpl
    +OfferCreateFlags | xrpl
    -
    +
    • xrpl
    • @@ -23,9 +23,10 @@

      Enumeration OfferCreateFlags

    Transaction Flags for an OfferCreate Transaction.

    -
    +
    +
  • Defined in packages/xrpl/src/models/transactions/offerCreate.ts:16
  • @@ -33,57 +34,62 @@

    Enumeration Members

    -
    - -
    tfFillOrKill: 262144
    +
    + +
    tfFillOrKill: 262144

    Treat the offer as a Fill or Kill order . Only try to match existing offers in the ledger, and only do so if the entire TakerPays quantity can be obtained. If the fix1578 amendment is enabled and the offer cannot be executed when placed, the transaction has the result code tecKILLED; otherwise, the transaction uses the result code tesSUCCESS even when it was killed without trading any currency.

    -
    +
    -
    - -
    tfImmediateOrCancel: 131072
    +
  • Defined in packages/xrpl/src/models/transactions/offerCreate.ts:39
  • +
    + +
    tfImmediateOrCancel: 131072

    Treat the offer as an Immediate or Cancel order. If enabled, the offer never becomes a ledger object: it only tries to match existing offers in the ledger. If the offer cannot match any offers immediately, it executes "successfully" without trading any currency. In this case, the transaction has the result code tesSUCCESS, but creates no Offer objects in the ledger.

    -
    -
    - -
    tfPassive: 65536
    +
  • Defined in packages/xrpl/src/models/transactions/offerCreate.ts:30
  • +
    + +
    tfPassive: 65536

    If enabled, the offer does not consume offers that exactly match it, and instead becomes an Offer object in the ledger. It still consumes offers that cross it.

    -
    -
    - -
    tfSell: 524288
    +
  • Defined in packages/xrpl/src/models/transactions/offerCreate.ts:22
  • +
    + +
    tfSell: 524288

    Exchange the entire TakerGets amount, even if it means obtaining more than the TakerPays amount in exchange.

    -
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • tfFillOrKill
  • +
  • tfImmediateOrCancel
  • +
  • tfPassive
  • +
  • tfSell
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/enums/PaymentChannelClaimFlags.html b/docs/enums/PaymentChannelClaimFlags.html index d2d2eef71d..842c295ad0 100644 --- a/docs/enums/PaymentChannelClaimFlags.html +++ b/docs/enums/PaymentChannelClaimFlags.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -PaymentChannelClaimFlags | xrpl
    +PaymentChannelClaimFlags | xrpl
    -
    +
    • xrpl
    • @@ -23,9 +23,10 @@

      Enumeration PaymentChannelClaimFlags

    Enum representing values for PaymentChannelClaim transaction flags.

    -
    +
    +
  • Defined in packages/xrpl/src/models/transactions/paymentChannelClaim.ts:10
  • @@ -33,14 +34,14 @@

    Enumeration Members

    -
    - -
    tfClose: 131072
    +
    + +
    tfClose: 131072

    Request to close the channel. Only the channel source and destination addresses can use this flag. This flag closes the channel immediately if it has no more XRP allocated to it after processing the current claim, or if @@ -52,22 +53,25 @@

    +
    -
    - -
    tfRenew: 65536
    +
  • Defined in packages/xrpl/src/models/transactions/paymentChannelClaim.ts:30
  • +
    + +
    tfRenew: 65536

    Clear the channel's Expiration time. (Expiration is different from the channel's immutable CancelAfter time.) Only the source address of the payment channel can use this flag.

    -
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • tfClose
  • +
  • tfRenew
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/enums/PaymentFlags.html b/docs/enums/PaymentFlags.html index 6fddaa27fc..19767c79ce 100644 --- a/docs/enums/PaymentFlags.html +++ b/docs/enums/PaymentFlags.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -PaymentFlags | xrpl
    +PaymentFlags | xrpl
    -
    +
    • xrpl
    • @@ -23,9 +23,10 @@

      Enumeration PaymentFlags

    Enum representing values for Payment Transaction Flags.

    -
    +
    +
  • Defined in packages/xrpl/src/models/transactions/payment.ts:23
  • @@ -33,43 +34,47 @@

    Enumeration Members

    -
    - -
    tfLimitQuality: 262144
    +
    + +
    tfLimitQuality: 262144

    Only take paths where all the conversions have an input:output ratio that is equal or better than the ratio of Amount:SendMax. See Limit Quality for details.

    -
    +
    -
    - -
    tfNoDirectRipple: 65536
    +
  • Defined in packages/xrpl/src/models/transactions/payment.ts:41
  • +
    + +
    tfNoDirectRipple: 65536

    Do not use the default path; only use paths included in the Paths field. This is intended to force the transaction to take arbitrage opportunities. Most clients do not need this.

    -
    -
    - -
    tfPartialPayment: 131072
    +
  • Defined in packages/xrpl/src/models/transactions/payment.ts:29
  • +
    + +
    tfPartialPayment: 131072

    If the specified Amount cannot be sent without spending more than SendMax, reduce the received amount instead of failing outright. See Partial. Payments for more details.

    -
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • tfLimitQuality
  • +
  • tfNoDirectRipple
  • +
  • tfPartialPayment
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/enums/TrustSetFlags.html b/docs/enums/TrustSetFlags.html index 156720241a..2fc33ea7c1 100644 --- a/docs/enums/TrustSetFlags.html +++ b/docs/enums/TrustSetFlags.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -TrustSetFlags | xrpl
    +TrustSetFlags | xrpl
    -
    +

    Enumeration TrustSetFlags

    -

    Enum representing values of TrustSet transaction flags.

    -
    @@ -33,55 +34,61 @@

    Enumeration Members

    -
    - -
    tfClearFreeze: 2097152
    +
    + +
    tfClearFreeze: 2097152

    Unfreeze the trust line.

    -
    +
    -
    - -
    tfClearNoRipple: 262144
    +
  • Defined in packages/xrpl/src/models/transactions/trustSet.ts:32
  • +
    + +
    tfClearNoRipple: 262144

    Disable the No Ripple flag, allowing rippling on this trust line.

    -
    +
    -
    - -
    tfSetFreeze: 1048576
    +
  • Defined in packages/xrpl/src/models/transactions/trustSet.ts:28
  • +
    + +
    tfSetFreeze: 1048576

    Freeze the trust line.

    -
    -
    - -
    tfSetNoRipple: 131072
    +
  • Defined in packages/xrpl/src/models/transactions/trustSet.ts:30
  • +
    + +
    tfSetNoRipple: 131072

    Enable the No Ripple flag, which blocks rippling between two trust lines. of the same currency if this flag is enabled on both.

    -
    -
    - -
    tfSetfAuth: 65536
    +
  • Defined in packages/xrpl/src/models/transactions/trustSet.ts:26
  • +
    + +
    tfSetfAuth: 65536

    Authorize the other party to hold currency issued by this account. (No effect unless using the asfRequireAuth AccountSet flag.) Cannot be unset.

    -
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • tfClearFreeze
  • +
  • tfClearNoRipple
  • +
  • tfSetFreeze
  • +
  • tfSetNoRipple
  • +
  • tfSetfAuth
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/enums/XChainModifyBridgeFlags.html b/docs/enums/XChainModifyBridgeFlags.html new file mode 100644 index 0000000000..1d8745faee --- /dev/null +++ b/docs/enums/XChainModifyBridgeFlags.html @@ -0,0 +1,375 @@ +XChainModifyBridgeFlags | xrpl
    +
    + +
    +
    +
    +
    + +

    Enumeration XChainModifyBridgeFlags

    +
    +

    Enum representing values of XChainModifyBridge transaction flags.

    +
    +
    +
    +
    +
    + +
    +
    +

    Enumeration Members

    +
    +
    +

    Enumeration Members

    +
    + +
    tfClearAccountCreateAmount: 65536
    +

    Clears the MinAccountCreateAmount of the bridge.

    +
    +
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/functions/authorizeChannel.html b/docs/functions/authorizeChannel.html deleted file mode 100644 index 964b21155c..0000000000 --- a/docs/functions/authorizeChannel.html +++ /dev/null @@ -1,275 +0,0 @@ -authorizeChannel | xrpl
    -
    - -
    -
    -
    -
    - -

    Function authorizeChannel

    -
    -
      - -
    • -

      Creates a signature that can be used to redeem a specific amount of XRP from a payment channel.

      - -

      Returns

      A signature that can be used to redeem a specific amount of XRP from a payment channel.

      -
      -
      -

      Parameters

      -
        -
      • -
        wallet: Wallet
        -

        The account that will sign for this payment channel.

        -
      • -
      • -
        channelId: string
        -

        An id for the payment channel to redeem XRP from.

        -
      • -
      • -
        amount: string
        -

        The amount in drops to redeem.

        -
      -

      Returns string

    -
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file diff --git a/docs/functions/classicAddressToXAddress.html b/docs/functions/classicAddressToXAddress.html index a327af200e..7eaf5626a7 100644 --- a/docs/functions/classicAddressToXAddress.html +++ b/docs/functions/classicAddressToXAddress.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -classicAddressToXAddress | xrpl
    +classicAddressToXAddress | xrpl
    -
    +

    Function classicAddressToXAddress

    -
      - +
        +
      • Parameters

        • -
          classicAddress: string
        • +
          classicAddress: string
        • -
          tag: number | false
        • +
          tag: number | false
        • -
          test: boolean
        +
        test: boolean

    Returns string

    - +
    +
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +

    Theme

    + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/functions/convertHexToString.html b/docs/functions/convertHexToString.html index 9a1d123654..642dc78472 100644 --- a/docs/functions/convertHexToString.html +++ b/docs/functions/convertHexToString.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -convertHexToString | xrpl
    +convertHexToString | xrpl
    -
    +

    Function convertHexToString

    -
      - +
        +
      • Converts hex to its string equivalent. Useful to read the Domain field and some Memos.

        - -

        Returns

        The converted string.

        Parameters

        • -
          hex: string
          +
          hex: string

          The hex to convert to a string.

        • -
          encoding: BufferEncoding = 'utf8'
          +
          encoding: string = 'utf8'

          The encoding to use. Defaults to 'utf8' (UTF-8). 'ascii' is also allowed.

        -

        Returns string

    - +
    +
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +

    Theme

    + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/functions/convertStringToHex.html b/docs/functions/convertStringToHex.html index bd880614ff..3d5da765ec 100644 --- a/docs/functions/convertStringToHex.html +++ b/docs/functions/convertStringToHex.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -convertStringToHex | xrpl
    +convertStringToHex | xrpl
    -
    +

    Function convertStringToHex

    -
      - +
        +
      • Converts a string to its hex equivalent. Useful for Memos.

        - -

        Returns

        The Hex equivalent of the string.

        Parameters

        • -
          string: string
          +
          string: string

          The string to convert to Hex.

        -

        Returns string

    - +
    +
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +

    Theme

    + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/functions/createCrossChainPayment.html b/docs/functions/createCrossChainPayment.html deleted file mode 100644 index 6ba44b0804..0000000000 --- a/docs/functions/createCrossChainPayment.html +++ /dev/null @@ -1,278 +0,0 @@ -createCrossChainPayment | xrpl
    -
    - -
    -
    -
    -
    - -

    Function createCrossChainPayment

    -
    -
      - -
    • -

      Creates a cross-chain payment transaction.

      - -

      Returns

      A cross-chain payment transaction, where the mainchain door account -is the Destination and the destination account on the sidechain is encoded -in the memos.

      - -

      Throws

      XrplError - if there are more than 2 memos.

      -
      -
      -

      Parameters

      -
        -
      • -
        payment: Payment
        -

        The initial payment transaction. If the transaction is -signed, then it will need to be re-signed. There must be no more than 2 -memos, since one memo is used for the sidechain destination account. The -destination must be the sidechain's door account.

        -
      • -
      • -
        destAccount: string
        -

        the destination account on the sidechain.

        -
      -

      Returns Payment

    -
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file diff --git a/docs/functions/decimalToQuality.html b/docs/functions/decimalToQuality.html index 70cb45574b..5dd8d04cb5 100644 --- a/docs/functions/decimalToQuality.html +++ b/docs/functions/decimalToQuality.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -decimalToQuality | xrpl
    +decimalToQuality | xrpl
    -
    +

    Function decimalToQuality

    -
      - +
        +
      • Converts a string decimal to the "billionths" format for use with QualityIn/ QualityOut

        - -

        Returns

        A number in the "billionths" format.

        - -

        Throws

        ValidationError when the parameter is not convertible to -"billionths" format.

        Parameters

        • -
          decimal: string
          +
          decimal: string

          A string decimal (i.e. ".00034").

        -

        Returns number

    - +
    +
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +

    Theme

    + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/functions/decimalToTransferRate.html b/docs/functions/decimalToTransferRate.html index 2603f52cb2..e3e10c793f 100644 --- a/docs/functions/decimalToTransferRate.html +++ b/docs/functions/decimalToTransferRate.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -decimalToTransferRate | xrpl
    +decimalToTransferRate | xrpl
    -
    +

    Function decimalToTransferRate

    -
      - +
        +
      • Converts a string decimal to "billionths" format for use with TransferRate.

        - -

        Returns

        A number in the "billionths" format.

        - -

        Throws

        ValidationError when the parameter is not convertible to -"billionths" format.

        Parameters

        • -
          decimal: string
          +
          decimal: string

          A string decimal between 0 and 1.00

        -

        Returns number

    - +
    +
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +

    Theme

    + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/functions/decode.html b/docs/functions/decode.html index 99f29cfc05..d3e81d5d6f 100644 --- a/docs/functions/decode.html +++ b/docs/functions/decode.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -decode | xrpl
    +decode | xrpl
    -
    +

    Function decode

    -
      - +
        +
      • Decodes a hex string into a transaction | ledger entry

        - -

        Returns

        The hex string decoded according to XRPL serialization format.

        Parameters

        • -
          hex: string
          +
          hex: string

          hex string in the XRPL serialization format.

        -

        Returns Record<string, unknown>

    - +
    +
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +

    Theme

    + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/functions/decodeAccountID.html b/docs/functions/decodeAccountID.html index e3c7e4f9ab..461127cb0b 100644 --- a/docs/functions/decodeAccountID.html +++ b/docs/functions/decodeAccountID.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -decodeAccountID | xrpl
    +decodeAccountID | xrpl
    -
    +

    Function decodeAccountID

    -
      - +
        +
      • Parameters

        • -
          accountId: string
        -

        Returns Buffer

    +

    Returns Uint8Array

    - +
    +
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +

    Theme

    + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/functions/decodeAccountPublic.html b/docs/functions/decodeAccountPublic.html index 5351042d0b..7a8d8c121b 100644 --- a/docs/functions/decodeAccountPublic.html +++ b/docs/functions/decodeAccountPublic.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -decodeAccountPublic | xrpl
    +decodeAccountPublic | xrpl
    -
    +

    Function decodeAccountPublic

    -
      - +
        +
      • Parameters

        • -
          base58string: string
        -

        Returns Buffer

    +

    Returns Uint8Array

    - +
    +
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +

    Theme

    + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/functions/decodeNodePublic.html b/docs/functions/decodeNodePublic.html index 4890d2b6da..a251251fc0 100644 --- a/docs/functions/decodeNodePublic.html +++ b/docs/functions/decodeNodePublic.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -decodeNodePublic | xrpl
    +decodeNodePublic | xrpl
    -
    +

    Function decodeNodePublic

    -
      - +
        +
      • Parameters

        • -
          base58string: string
        -

        Returns Buffer

    +

    Returns Uint8Array

    - +
    +
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +

    Theme

    + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/functions/decodeSeed.html b/docs/functions/decodeSeed.html index 28dd78cb2a..322287a4ed 100644 --- a/docs/functions/decodeSeed.html +++ b/docs/functions/decodeSeed.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -decodeSeed | xrpl
    +decodeSeed | xrpl
    -
    +

    Function decodeSeed

    -
      - +
        +
      • Parameters

        • -
          seed: string
        • +
          seed: string
        • -
          Optional opts: {
              expectedLength: number;
              versionTypes: ["ed25519", "secp256k1"];
              versions: (number | number[])[];
          }
          +
          Optional opts: {
              expectedLength: number;
              versionTypes: ["ed25519", "secp256k1"];
              versions: (number | number[])[];
          }
          Optional
          • -
            expectedLength: number
          • +
            expectedLength: number
          • -
            versionTypes: ["ed25519", "secp256k1"]
          • +
            versionTypes: ["ed25519", "secp256k1"]
          • -
            versions: (number | number[])[]
        -

        Returns {
            bytes: Buffer;
            type: "ed25519" | "secp256k1" | null;
            version: number[];
        }

        +
        versions: (number | number[])[]
    +

    Returns {
        bytes: Uint8Array;
        type: "ed25519" | "secp256k1" | null;
        version: number[];
    }

    • -
      bytes: Buffer
    • +
      bytes: Uint8Array
    • -
      type: "ed25519" | "secp256k1" | null
    • +
      type: "ed25519" | "secp256k1" | null
    • -
      version: number[]
    - +
    +
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +

    Theme

    + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/functions/decodeXAddress.html b/docs/functions/decodeXAddress.html index 4b225f3de6..f3109df295 100644 --- a/docs/functions/decodeXAddress.html +++ b/docs/functions/decodeXAddress.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -decodeXAddress | xrpl
    +decodeXAddress | xrpl
    -
    +

    Function decodeXAddress

    -
      - +
        +
      • Parameters

        • -
          xAddress: string
        -

        Returns {
            accountId: Buffer;
            tag: number | false;
            test: boolean;
        }

        +
        xAddress: string
    +

    Returns {
        accountId: Uint8Array;
        tag: number | false;
        test: boolean;
    }

    • -
      accountId: Buffer
    • +
      accountId: Uint8Array
    • -
      tag: number | false
    • +
      tag: number | false
    • -
      test: boolean
    - +
    +
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +

    Theme

    + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/functions/deriveAddress.html b/docs/functions/deriveAddress.html index 0de0247d2f..4044c387fa 100644 --- a/docs/functions/deriveAddress.html +++ b/docs/functions/deriveAddress.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -deriveAddress | xrpl
    +deriveAddress | xrpl
    -
    +

    Function deriveAddress

    -
      - +
        +
      • Parameters

        • -
          publicKey: any
        +
        publicKey: string

    Returns string

    - +
    +
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +

    Theme

    + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/functions/deriveKeypair.html b/docs/functions/deriveKeypair.html index e93fbd1df9..447c64b4de 100644 --- a/docs/functions/deriveKeypair.html +++ b/docs/functions/deriveKeypair.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -deriveKeypair | xrpl
    +deriveKeypair | xrpl
    -
    +

    Function deriveKeypair

    -
      - +
        +
      • Parameters

        • -
          seed: string
        • +
          seed: string
        • -
          Optional options: object
        -

        Returns {
            privateKey: string;
            publicKey: string;
        }

        +
        Optional options: {
            accountIndex?: number;
            algorithm?: Algorithm;
            validator?: boolean;
        }
        Optional
        • -
          privateKey: string
        • +
          Optional accountIndex?: number
        • -
          publicKey: string
      • +
      • +
        Optional validator?: boolean
    +

    Returns KeyPair

    - +
    +
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +

    Theme

    + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/functions/deriveXAddress.html b/docs/functions/deriveXAddress.html index 2167170b30..cb4171a305 100644 --- a/docs/functions/deriveXAddress.html +++ b/docs/functions/deriveXAddress.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -deriveXAddress | xrpl
    +deriveXAddress | xrpl
    -
    +

    Function deriveXAddress

    -
      - +
        +
      • Derive an X-Address from a public key and a destination tag.

        - -

        Returns

        X-Address.

        Parameters

        • -
          options: {
              publicKey: string;
              tag: number | false;
              test: boolean;
          }
          +
          options: {
              publicKey: string;
              tag: number | false;
              test: boolean;
          }

          Public key and destination tag to encode as an X-Address.

          • -
            publicKey: string
            +
            publicKey: string

            The public key corresponding to an address.

            -
          • +
        +
      • -
        tag: number | false
        +
        tag: number | false

        A destination tag to encode into an X-address. False indicates no destination tag.

        -
      • +
    +
  • -
    test: boolean
    +
    test: boolean

    Whether this address is for use in Testnet.

    -
  • -

    Returns string

    +
    +

    Returns string

    X-Address.

    + +
    - +
    +
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +

    Theme

    + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/functions/dropsToXrp.html b/docs/functions/dropsToXrp.html index b54c93bf8f..daba9222bf 100644 --- a/docs/functions/dropsToXrp.html +++ b/docs/functions/dropsToXrp.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -dropsToXrp | xrpl
    +dropsToXrp | xrpl
    -
    +

    Function dropsToXrp

    -
      - +
        +
      • Convert Drops to XRP.

        - -

        Returns

        Amount in XRP.

        - -

        Throws

        When drops amount is invalid.

        Parameters

        • -
          dropsToConvert: Value
          +
          dropsToConvert: Value

          Drops to convert to XRP. This can be a string, number, or BigNumber.

        -

        Returns string

    - +
    +
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +

    Theme

    + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/functions/encode.html b/docs/functions/encode.html index bb0104524c..a07d312d1b 100644 --- a/docs/functions/encode.html +++ b/docs/functions/encode.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -encode | xrpl
    +encode | xrpl
    -
    +

    Function encode

    -
    - +
    +
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +

    Theme

    + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/functions/encodeAccountID.html b/docs/functions/encodeAccountID.html index a246965493..67c67217ad 100644 --- a/docs/functions/encodeAccountID.html +++ b/docs/functions/encodeAccountID.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -encodeAccountID | xrpl
    +encodeAccountID | xrpl
    -
    +

    Function encodeAccountID

    -
      - +
        +
      • Parameters

        • -
          bytes: Buffer
        +
        bytes: ByteArray

    Returns string

    - +
    +
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +

    Theme

    + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/functions/encodeAccountPublic.html b/docs/functions/encodeAccountPublic.html index c8f3a3f1a4..f0ffb424ff 100644 --- a/docs/functions/encodeAccountPublic.html +++ b/docs/functions/encodeAccountPublic.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -encodeAccountPublic | xrpl
    +encodeAccountPublic | xrpl
    -
    +

    Function encodeAccountPublic

    -
      - +
        +
      • Parameters

        • -
          bytes: Buffer
        +
        bytes: ByteArray

    Returns string

    - +
    +
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +

    Theme

    + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/functions/encodeForMultiSigning.html b/docs/functions/encodeForMultiSigning.html index 3acadf3a3a..9d01b75de3 100644 --- a/docs/functions/encodeForMultiSigning.html +++ b/docs/functions/encodeForMultiSigning.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -encodeForMultiSigning | xrpl
    +encodeForMultiSigning | xrpl
    -
    +

    Function encodeForMultiSigning

    -
      - +
        +
      • Encodes a Transaction for multi-signing

        - -

        Returns

        A hex string representing the encoded object.

        Parameters

        • -
          object: Transaction
          +
          object: Transaction

          Transaction in JSON format.

        • -
          signer: string
          +
          signer: string

          The address of the account signing this transaction

        -

        Returns string

    - +
    +
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +

    Theme

    + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/functions/encodeForSigning.html b/docs/functions/encodeForSigning.html index e175208bbd..a42d60250a 100644 --- a/docs/functions/encodeForSigning.html +++ b/docs/functions/encodeForSigning.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -encodeForSigning | xrpl
    +encodeForSigning | xrpl
    -
    +

    Function encodeForSigning

    -
      - +
        +
      • Encodes a Transaction for signing

        - -

        Returns

        A hex string representing the encoded object.

        Parameters

        -

        Returns string

    - +
    +
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +

    Theme

    + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/functions/encodeForSigningClaim.html b/docs/functions/encodeForSigningClaim.html index 95c2cf8941..4c0a4a535c 100644 --- a/docs/functions/encodeForSigningClaim.html +++ b/docs/functions/encodeForSigningClaim.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -encodeForSigningClaim | xrpl
    +encodeForSigningClaim | xrpl
    -
    +

    Function encodeForSigningClaim

    -
    - +
    +
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +

    Theme

    + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/functions/encodeNodePublic.html b/docs/functions/encodeNodePublic.html index 229118a98b..e389b3dc87 100644 --- a/docs/functions/encodeNodePublic.html +++ b/docs/functions/encodeNodePublic.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -encodeNodePublic | xrpl
    +encodeNodePublic | xrpl
    -
    +

    Function encodeNodePublic

    -
      - +
        +
      • Parameters

        • -
          bytes: Buffer
        +
        bytes: ByteArray

    Returns string

    - +
    +
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +

    Theme

    + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/functions/encodeSeed.html b/docs/functions/encodeSeed.html index f4476fc986..186f894f8b 100644 --- a/docs/functions/encodeSeed.html +++ b/docs/functions/encodeSeed.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -encodeSeed | xrpl
    +encodeSeed | xrpl
    -
    +

    Function encodeSeed

    -
      - +
        +
      • Parameters

        • -
          entropy: Buffer
        • +
          entropy: ByteArray
        • -
          type: "ed25519" | "secp256k1"
        +
        type: "ed25519" | "secp256k1"

    Returns string

    - +
    +
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +

    Theme

    + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/functions/encodeXAddress.html b/docs/functions/encodeXAddress.html index f1e46c690a..0e64c4433d 100644 --- a/docs/functions/encodeXAddress.html +++ b/docs/functions/encodeXAddress.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -encodeXAddress | xrpl
    +encodeXAddress | xrpl
    -
    +

    Function encodeXAddress

    -
      - +
        +
      • Parameters

        • -
          accountId: Buffer
        • +
          accountId: Uint8Array
        • -
          tag: number | false
        • +
          tag: number | false
        • -
          test: boolean
        +
        test: boolean

    Returns string

    - +
    +
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +

    Theme

    + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/functions/getBalanceChanges.html b/docs/functions/getBalanceChanges.html index d1a428328c..be86549d51 100644 --- a/docs/functions/getBalanceChanges.html +++ b/docs/functions/getBalanceChanges.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -getBalanceChanges | xrpl
    +getBalanceChanges | xrpl
    -
    +

    Function getBalanceChanges

    -
      - +
        +
      • Computes the complete list of every balance that changed in the ledger as a result of the given transaction.

        - -

        Returns

        Parsed balance changes.

        Parameters

        -

        Returns {
            account: string;
            balances: {
                currency: string;
                issuer?: string;
                value: string;
            }[];
        }[]

    - +
    +
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +

    Theme

    + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/functions/getNFTokenID.html b/docs/functions/getNFTokenID.html index c11386413d..7531da9154 100644 --- a/docs/functions/getNFTokenID.html +++ b/docs/functions/getNFTokenID.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -getNFTokenID | xrpl
    +getNFTokenID | xrpl
    -
    +

    Function getNFTokenID

    -
      - +
        +
      • Gets the NFTokenID for an NFT recently minted with NFTokenMint.

        - -

        Returns

        The NFTokenID for the minted NFT.

        - -

        Throws

        if meta is not TransactionMetadata.

        Parameters

        • -
          meta: TransactionMetadata
          -

          Metadata from the response to submitting an NFTokenMint transaction.

          +
          meta: undefined | string | TransactionMetadata
          +

          Metadata from the response to submitting and waiting for an NFTokenMint transaction or from a tx method call.

        -

        Returns string | undefined

    - +
    +
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +

    Theme

    + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/functions/getXChainClaimID.html b/docs/functions/getXChainClaimID.html new file mode 100644 index 0000000000..d242228cbb --- /dev/null +++ b/docs/functions/getXChainClaimID.html @@ -0,0 +1,366 @@ +getXChainClaimID | xrpl
    +
    + +
    +
    +
    +
    + +

    Function getXChainClaimID

    +
    +
      + +
    • +

      Gets the XChainClaimID value from the metadata of an XChainCreateClaimID transaction.

      +
      +
      +

      Parameters

      +
        +
      • +
        meta: undefined | string | TransactionMetadata
        +

        Metadata from the response to submitting and waiting for an XChainCreateClaimID transaction + or from a tx method call.

        +
      +

      Returns string | undefined

      The XChainClaimID for the minted NFT.

      + +
      +

      Throws

      if meta is not TransactionMetadata.

      +
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/functions/hasNextPage.html b/docs/functions/hasNextPage.html index e767441d14..4bbe082dd2 100644 --- a/docs/functions/hasNextPage.html +++ b/docs/functions/hasNextPage.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -hasNextPage | xrpl
    +hasNextPage | xrpl
    -
    +

    Function hasNextPage

    -
    - +
    +
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +

    Theme

    + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/functions/isCreatedNode.html b/docs/functions/isCreatedNode.html new file mode 100644 index 0000000000..2d65dd11fc --- /dev/null +++ b/docs/functions/isCreatedNode.html @@ -0,0 +1,363 @@ +isCreatedNode | xrpl
    +
    + +
    +
    +
    +
    + +

    Function isCreatedNode

    +
    +
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/functions/isDeletedNode.html b/docs/functions/isDeletedNode.html new file mode 100644 index 0000000000..b7fc52d530 --- /dev/null +++ b/docs/functions/isDeletedNode.html @@ -0,0 +1,363 @@ +isDeletedNode | xrpl
    +
    + +
    +
    +
    +
    + +

    Function isDeletedNode

    +
    +
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/functions/isModifiedNode.html b/docs/functions/isModifiedNode.html new file mode 100644 index 0000000000..89a4acec31 --- /dev/null +++ b/docs/functions/isModifiedNode.html @@ -0,0 +1,363 @@ +isModifiedNode | xrpl
    +
    + +
    +
    +
    +
    + +

    Function isModifiedNode

    +
    +
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/functions/isValidAddress.html b/docs/functions/isValidAddress.html index 810d993ec4..8db3c15735 100644 --- a/docs/functions/isValidAddress.html +++ b/docs/functions/isValidAddress.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -isValidAddress | xrpl
    +isValidAddress | xrpl
    -
    +

    Function isValidAddress

    -
      - +
        +
      • Validates that a given address is a valid X-Address or a valid classic address.

        - -

        Returns

        True if address is a valid X-Address or classic address.

        Parameters

        • -
          address: string
          +
          address: string

          Address to validate.

        -

        Returns boolean

    - +
    +
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +

    Theme

    + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/functions/isValidClassicAddress.html b/docs/functions/isValidClassicAddress.html index 6781fc36bf..9abd07269c 100644 --- a/docs/functions/isValidClassicAddress.html +++ b/docs/functions/isValidClassicAddress.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -isValidClassicAddress | xrpl
    +isValidClassicAddress | xrpl
    -
    +

    Function isValidClassicAddress

    -
      - +
        +
      • Parameters

        • -
          address: string
        +
        address: string

    Returns boolean

    - +
    +
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +

    Theme

    + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/functions/isValidSecret.html b/docs/functions/isValidSecret.html index b78eaae4fb..fe1284f894 100644 --- a/docs/functions/isValidSecret.html +++ b/docs/functions/isValidSecret.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -isValidSecret | xrpl
    +isValidSecret | xrpl
    -
    +

    Function isValidSecret

    -
      - +
        +
      • Check if a secret is valid.

        - -

        Returns

        True if secret can be derived into a keypair.

        Parameters

        • -
          secret: string
          +
          secret: string

          Secret to test for validity.

        -

        Returns boolean

    - +
    +
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +

    Theme

    + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/functions/isValidXAddress.html b/docs/functions/isValidXAddress.html index d295d3b478..96b789ac8e 100644 --- a/docs/functions/isValidXAddress.html +++ b/docs/functions/isValidXAddress.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -isValidXAddress | xrpl
    +isValidXAddress | xrpl
    -
    +

    Function isValidXAddress

    -
      - +
        +
      • Parameters

        • -
          xAddress: string
        +
        xAddress: string

    Returns boolean

    - +
    +
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +

    Theme

    + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/functions/isoTimeToRippleTime.html b/docs/functions/isoTimeToRippleTime.html index d5dba0273c..1b6c9488e6 100644 --- a/docs/functions/isoTimeToRippleTime.html +++ b/docs/functions/isoTimeToRippleTime.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -isoTimeToRippleTime | xrpl
    +isoTimeToRippleTime | xrpl
    -
    +

    Function isoTimeToRippleTime

    -
      - +
        +
      • Convert an ISO8601 timestmap to a ripple timestamp.

        - -

        Returns

        Seconds since ripple epoch (1/1/2000 GMT).

        Parameters

        • -
          iso8601: string | Date
          +
          iso8601: string | Date

          International standard date format.

        -

        Returns number

    - +
    +
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +

    Theme

    + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/functions/keyToRFC1751Mnemonic.html b/docs/functions/keyToRFC1751Mnemonic.html index cdd526eb40..d421aa08cb 100644 --- a/docs/functions/keyToRFC1751Mnemonic.html +++ b/docs/functions/keyToRFC1751Mnemonic.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -keyToRFC1751Mnemonic | xrpl
    +keyToRFC1751Mnemonic | xrpl
    -
    +

    Function keyToRFC1751Mnemonic

    -
      - +
        +
      • Generates a modified RFC1751 mnemonic in the same way rippled's wallet_propose does.

        - -

        Returns

        A mnemonic following rippled's modified RFC1751 mnemonic standard.

        Parameters

        • -
          hex_key: string
          +
          hex_key: string

          An encoded secret in hex format.

        -

        Returns string

    - +
    +
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +

    Theme

    + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/functions/multisign.html b/docs/functions/multisign.html index c4ff1196d2..54a62806fb 100644 --- a/docs/functions/multisign.html +++ b/docs/functions/multisign.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -multisign | xrpl
    +multisign | xrpl
    -
    +

    Function multisign

    -
      - +
        +
      • Takes several transactions with Signer fields (in object or blob form) and creates a single transaction with all Signers that then gets signed and returned.

        - -

        Returns

        A single signed Transaction which has all Signers from transactions within it.

        - -

        Throws

        ValidationError if:

        -
          -
        • There were no transactions given to sign
        • -
        • The SigningPubKey field is not the empty string in any given transaction
        • -
        • Any transaction is missing a Signers field.
        • -

        Parameters

        • -
          transactions: (string | Transaction)[]
          +
          transactions: (string | Transaction)[]

          An array of signed Transactions (in object or blob form) to combine into a single signed Transaction.

        -

        Returns string

    -
    +
    +
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +

    Theme

    + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/functions/parseAccountRootFlags.html b/docs/functions/parseAccountRootFlags.html index b5789906ce..905dfaa402 100644 --- a/docs/functions/parseAccountRootFlags.html +++ b/docs/functions/parseAccountRootFlags.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -parseAccountRootFlags | xrpl
    +parseAccountRootFlags | xrpl
    -
    +

    Function parseAccountRootFlags

    -
    - +
    +
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +

    Theme

    + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/functions/parseNFTokenID.html b/docs/functions/parseNFTokenID.html index c41cce74a2..fcb4f48b4e 100644 --- a/docs/functions/parseNFTokenID.html +++ b/docs/functions/parseNFTokenID.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -parseNFTokenID | xrpl
    +parseNFTokenID | xrpl
    -
    +

    Function parseNFTokenID

    -
      - +
        +
      • Parses an NFTokenID into the information it is encoding.

        Example decoding:

        @@ -36,38 +36,39 @@

        Function parseNFTokenID

        | | ---> Issuer: rJoxBSzpXhPtAuqFmqxQtGKjA13jUJWthE | | | ---> TransferFee: 1337.0 bps or 13.37% | `---> Flags: 11 -> lsfBurnable, lsfOnlyXRP and lsfTransferable

        - -

        Throws

        XrplError when given an invalid nftokenID.

        - -

        Returns

        a decoded nftokenID with all fields encoded within.

    Parameters

    • -
      nftokenID: string
      +
      nftokenID: string

      A hex string which identifies an NFToken on the ledger.

    -

    Returns {
        Flags: number;
        Issuer: string;
        NFTokenID: string;
        Sequence: number;
        Taxon: number;
        TransferFee: number;
    }

    +

    Returns {
        Flags: number;
        Issuer: string;
        NFTokenID: string;
        Sequence: number;
        Taxon: number;
        TransferFee: number;
    }

    a decoded nftokenID with all fields encoded within.

    +
    • -
      Flags: number
    • +
      Flags: number
    • -
      Issuer: string
    • +
      Issuer: string
    • -
      NFTokenID: string
    • +
      NFTokenID: string
    • -
      Sequence: number
    • +
      Sequence: number
    • -
      Taxon: number
    • +
      Taxon: number
    • -
      TransferFee: number
    - +
    +
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +

    Theme

    + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/functions/percentToQuality.html b/docs/functions/percentToQuality.html index 4aeecf3519..51a5af7162 100644 --- a/docs/functions/percentToQuality.html +++ b/docs/functions/percentToQuality.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -percentToQuality | xrpl
    +percentToQuality | xrpl
    -
    +

    Function percentToQuality

    -
      - +
        +
      • Converts a string percent to the "billionths" format for use with QualityIn/ QualityOut

        - -

        Returns

        A number in the "billionths" format.

        - -

        Throws

        ValidationError when the percent parameter is not convertible to -"billionths" format.

        Parameters

        • -
          percent: string
          +
          percent: string

          A string percent (i.e. ".034%").

        -

        Returns number

    - +
    +
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +

    Theme

    + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/functions/percentToTransferRate.html b/docs/functions/percentToTransferRate.html index 7a0d13b29c..6e89490c62 100644 --- a/docs/functions/percentToTransferRate.html +++ b/docs/functions/percentToTransferRate.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -percentToTransferRate | xrpl
    +percentToTransferRate | xrpl
    -
    +

    Function percentToTransferRate

    -
      - +
        +
      • Converts a string percent to "billionths" format for use with TransferRate.

        - -

        Returns

        A number in the "billionths" format.

        - -

        Throws

        ValidationError when the percent parameter is not convertible to -"billionths" format.

        Parameters

        • -
          percent: string
          +
          percent: string

          A string percent between 0% and 100%.

        -

        Returns number

    - +
    +
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +

    Theme

    + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/functions/qualityToDecimal.html b/docs/functions/qualityToDecimal.html index bcac3fa855..254c66233b 100644 --- a/docs/functions/qualityToDecimal.html +++ b/docs/functions/qualityToDecimal.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -qualityToDecimal | xrpl
    +qualityToDecimal | xrpl
    -
    +

    Function qualityToDecimal

    -
      - +
        +
      • Converts a quality in "billionths" format to a decimal.

        - -

        Returns

        decimal representation of quality.

        - -

        Throws

        ValidationError when quality is not convertible to decimal format.

        Parameters

        • -
          quality: number
          +
          quality: number

          Quality to convert to decimal.

        -

        Returns string

    - +
    +
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +

    Theme

    + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/functions/rfc1751MnemonicToKey.html b/docs/functions/rfc1751MnemonicToKey.html index 20a3ef1245..9267b4f9a0 100644 --- a/docs/functions/rfc1751MnemonicToKey.html +++ b/docs/functions/rfc1751MnemonicToKey.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -rfc1751MnemonicToKey | xrpl
    +rfc1751MnemonicToKey | xrpl
    -
    +

    Function rfc1751MnemonicToKey

    -
      - +
        +
      • Converts an english mnemonic following rippled's modified RFC1751 standard to an encoded hex secret.

        - -

        Throws

        Error if the parity after decoding does not match.

        - -

        Returns

        A Buffer containing an encoded secret.

        Parameters

        • -
          english: string
          +
          english: string

          A mnemonic generated using ripple's modified RFC1751 standard.

        -

        Returns Buffer

    - +
    +
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +

    Theme

    + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/functions/rippleTimeToISOTime.html b/docs/functions/rippleTimeToISOTime.html index 56ed77f7a5..8d1bf237df 100644 --- a/docs/functions/rippleTimeToISOTime.html +++ b/docs/functions/rippleTimeToISOTime.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -rippleTimeToISOTime | xrpl
    +rippleTimeToISOTime | xrpl
    -
    +

    Function rippleTimeToISOTime

    -
      - +
        +
      • Convert a ripple timestamp to an Iso8601 timestamp.

        - -

        Returns

        Iso8601 international standard date format.

        Parameters

        • -
          rippleTime: number
          +
          rippleTime: number

          Is the number of seconds since Ripple Epoch (1/1/2000 GMT).

        -

        Returns string

    - +
    +
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +

    Theme

    + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/functions/rippleTimeToUnixTime.html b/docs/functions/rippleTimeToUnixTime.html index ffc260dd08..9b0b856c93 100644 --- a/docs/functions/rippleTimeToUnixTime.html +++ b/docs/functions/rippleTimeToUnixTime.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -rippleTimeToUnixTime | xrpl
    +rippleTimeToUnixTime | xrpl
    -
    +

    Function rippleTimeToUnixTime

    -
      - +
        +
      • Convert a ripple timestamp to a unix timestamp.

        - -

        Returns

        Milliseconds since unix epoch.

        Parameters

        • -
          rpepoch: number
          +
          rpepoch: number

          (seconds since 1/1/2000 GMT).

        -

        Returns number

    - +
    +
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +

    Theme

    + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/functions/setTransactionFlagsToNumber.html b/docs/functions/setTransactionFlagsToNumber.html index b47fdd405a..93233f9089 100644 --- a/docs/functions/setTransactionFlagsToNumber.html +++ b/docs/functions/setTransactionFlagsToNumber.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -setTransactionFlagsToNumber | xrpl
    +setTransactionFlagsToNumber | xrpl
    -
    +

    Function setTransactionFlagsToNumber

    -
      - +
        +
      • Sets a transaction's flags to its numeric representation.

        @@ -31,16 +31,18 @@

        Function setTransactionFlagsToNumber

    Parameters

    -

    Returns void

    - +
    +
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +

    Theme

    + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/functions/signPaymentChannelClaim.html b/docs/functions/signPaymentChannelClaim.html index 291ba16738..d304ac2d0d 100644 --- a/docs/functions/signPaymentChannelClaim.html +++ b/docs/functions/signPaymentChannelClaim.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -signPaymentChannelClaim | xrpl
    +signPaymentChannelClaim | xrpl
    -
    +

    Function signPaymentChannelClaim

    -
      - +
        +
      • Sign a payment channel claim.

        - -

        Returns

        True if the channel is valid.

        Parameters

        • -
          channel: string
          +
          channel: string

          Channel identifier specified by the paymentChannelClaim.

        • -
          amount: string
          -

          Amount specified by the paymentChannelClaim.

          +
          xrpAmount: string
          +

          XRP Amount specified by the paymentChannelClaim.

        • -
          privateKey: string
          +
          privateKey: string

          Private Key to sign paymentChannelClaim with.

        -

        Returns string

    - +
    +
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +

    Theme

    + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/functions/transferRateToDecimal.html b/docs/functions/transferRateToDecimal.html index e350f15506..cdef366231 100644 --- a/docs/functions/transferRateToDecimal.html +++ b/docs/functions/transferRateToDecimal.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -transferRateToDecimal | xrpl
    +transferRateToDecimal | xrpl
    -
    +

    Function transferRateToDecimal

    -
      - +
        +
      • Converts a transfer rate in "billionths" format to a decimal.

        - -

        Returns

        decimal representation of transfer Rate.

        - -

        Throws

        ValidationError when it cannot convert from billionths format.

        Parameters

        • -
          rate: number
          +
          rate: number

          TransferRate to convert to decimal.

        -

        Returns string

    - +
    +
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +

    Theme

    + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/functions/unixTimeToRippleTime.html b/docs/functions/unixTimeToRippleTime.html index ec59d37f0f..ec51245885 100644 --- a/docs/functions/unixTimeToRippleTime.html +++ b/docs/functions/unixTimeToRippleTime.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -unixTimeToRippleTime | xrpl
    +unixTimeToRippleTime | xrpl
    -
    +

    Function unixTimeToRippleTime

    -
      - +
        +
      • Convert a unix timestamp to a ripple timestamp.

        - -

        Returns

        Seconds since Ripple Epoch (1/1/2000 GMT).

        Parameters

        • -
          timestamp: number
          +
          timestamp: number

          (ms since unix epoch).

        -

        Returns number

    - +
    +
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +

    Theme

    + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/functions/validate.html b/docs/functions/validate.html index 1d8a4d8dc1..d5117b5d7a 100644 --- a/docs/functions/validate.html +++ b/docs/functions/validate.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -validate | xrpl
    +validate | xrpl
    -
    +

    Function validate

    -
      - +
        +
      • Verifies various Transaction Types. Encode/decode and individual type validation.

        - -

        Throws

        ValidationError When the Transaction is malformed.

        Parameters

        • -
          transaction: Record<string, unknown>
          +
          transaction: Record<string, unknown>

          A Transaction.

        -

        Returns void

    - +
    +
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +

    Theme

    + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/functions/verifyKeypairSignature.html b/docs/functions/verifyKeypairSignature.html index 8021bc5f83..22559cc700 100644 --- a/docs/functions/verifyKeypairSignature.html +++ b/docs/functions/verifyKeypairSignature.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -verifyKeypairSignature | xrpl
    +verifyKeypairSignature | xrpl
    -
    +

    Function verifyKeypairSignature

    -
      - +
        +
      • Parameters

        • -
          messageHex: any
        • +
          messageHex: string
        • -
          signature: any
        • +
          signature: string
        • -
          publicKey: any
        +
        publicKey: string

    Returns boolean

    - +
    +
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +

    Theme

    + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/functions/verifyPaymentChannelClaim.html b/docs/functions/verifyPaymentChannelClaim.html index 189d559b42..1ea4e8440b 100644 --- a/docs/functions/verifyPaymentChannelClaim.html +++ b/docs/functions/verifyPaymentChannelClaim.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -verifyPaymentChannelClaim | xrpl
    +verifyPaymentChannelClaim | xrpl
    -
    +

    Function verifyPaymentChannelClaim

    -
      - +
        +
      • Verify the signature of a payment channel claim.

        - -

        Returns

        True if the channel is valid.

        Parameters

        • -
          channel: string
          +
          channel: string

          Channel identifier specified by the paymentChannelClaim.

        • -
          amount: string
          -

          Amount specified by the paymentChannelClaim.

          +
          xrpAmount: string
          +

          XRP Amount specified by the paymentChannelClaim.

        • -
          signature: string
          +
          signature: string

          Signature produced from signing paymentChannelClaim.

        • -
          publicKey: string
          +
          publicKey: string

          Public key that signed the paymentChannelClaim.

        -

        Returns boolean

    - +
    +
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +

    Theme

    + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/functions/verifySignature.html b/docs/functions/verifySignature.html index 7e9da44103..77a166f3e6 100644 --- a/docs/functions/verifySignature.html +++ b/docs/functions/verifySignature.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -verifySignature | xrpl
    +verifySignature | xrpl
    -
    +

    Function verifySignature

    -
      - +
        +
      • Verifies that the given transaction has a valid signature based on public-key encryption.

        - -

        Returns

        Returns true if tx has a valid signature, and returns false otherwise.

        Parameters

        • -
          tx: string | Transaction
          +
          tx: string | Transaction

          A transaction to verify the signature of. (Can be in object or encoded string format).

          -
        -

        Returns boolean

    +
  • +
    Optional publicKey: string
    +

    Specific public key to use to verify. If not specified the SigningPublicKey of tx will be used.

    +
    Optional
  • +

    Returns boolean

    Returns true if tx has a valid signature, and returns false otherwise.

    + +
    +

    Throws

    Error when transaction is missing TxnSignature

    + +

    Throws

    Error when publicKey is not provided and transaction is missing SigningPubKey

    +
    - +
    +
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +

    Theme

    + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/functions/walletFromSecretNumbers.html b/docs/functions/walletFromSecretNumbers.html new file mode 100644 index 0000000000..063dd7b571 --- /dev/null +++ b/docs/functions/walletFromSecretNumbers.html @@ -0,0 +1,383 @@ +walletFromSecretNumbers | xrpl
    +
    + +
    +
    +
    +
    + +

    Function walletFromSecretNumbers

    +
    +
      + +
    • +

      Derives a wallet from secret numbers. +NOTE: This uses a default encoding algorithm of secp256k1 to match the popular wallet +Xumm (aka Xaman)'s behavior. +This may be different from the DEFAULT_ALGORITHM for other ways to generate a Wallet.

      +
      +
      +

      Parameters

      +
        +
      • +
        secretNumbers: string | string[]
        +

        A string consisting of 8 times 6 numbers (whitespace delimited) used to derive a wallet.

        +
      • +
      • +
        Optional opts: {
            algorithm?: ECDSA;
            masterAddress?: string;
        }
        +

        (Optional) Options to derive a Wallet.

        +
        Optional +
          +
        • +
          Optional algorithm?: ECDSA
          +

          The digital signature algorithm to generate an address for.

          +
          +
        • +
        • +
          Optional masterAddress?: string
          +

          Include if a Wallet uses a Regular Key Pair. It must be the master address of the account.

          +
          +
      +

      Returns Wallet

      A Wallet derived from secret numbers.

      + +
      +

      Throws

      ValidationError if unable to derive private key from secret number input.

      +
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/functions/xAddressToClassicAddress.html b/docs/functions/xAddressToClassicAddress.html index 974db2887c..a0fd45f2f5 100644 --- a/docs/functions/xAddressToClassicAddress.html +++ b/docs/functions/xAddressToClassicAddress.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -xAddressToClassicAddress | xrpl
    +xAddressToClassicAddress | xrpl
    -
    +

    Function xAddressToClassicAddress

    -
      - +
        +
      • Parameters

        • -
          xAddress: string
        -

        Returns {
            classicAddress: string;
            tag: number | false;
            test: boolean;
        }

        +
        xAddress: string
    +

    Returns {
        classicAddress: string;
        tag: number | false;
        test: boolean;
    }

    • -
      classicAddress: string
    • +
      classicAddress: string
    • -
      tag: number | false
    • +
      tag: number | false
    • -
      test: boolean
    - +
    +
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +

    Theme

    + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/functions/xrpToDrops.html b/docs/functions/xrpToDrops.html index f74707b769..eadaba46bf 100644 --- a/docs/functions/xrpToDrops.html +++ b/docs/functions/xrpToDrops.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -xrpToDrops | xrpl
    +xrpToDrops | xrpl
    -
    +

    Function xrpToDrops

    -
      - +
        +
      • Convert an amount in XRP to an amount in drops.

        - -

        Returns

        Amount in drops.

        - -

        Throws

        When amount in xrp is invalid.

        Parameters

        • -
          xrpToConvert: Value
          +
          xrpToConvert: Value

          Amount in XRP.

        -

        Returns string

    - +
    +
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +

    Theme

    + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/index.html b/docs/index.html index cbb84fa46d..3d4cf043f5 100644 --- a/docs/index.html +++ b/docs/index.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -xrpl
    +xrpl
    -
    +

    xrpl

    -
    - -

    xrpl.js

    -
    -

    A JavaScript/TypeScript library for interacting with the XRP Ledger

    +

    xrpl.js

    A JavaScript/TypeScript library for interacting with the XRP Ledger

    NPM npm bundle size

    This is the recommended library for integrating a JavaScript/TypeScript app with the XRP Ledger, especially if you intend to use advanced functionality such as IOUs, payment paths, the decentralized exchange, account settings, payment channels, escrows, multi-signing, and more.

    - - -

    ➡️ Reference Documentation

    - -

    See the full reference documentation for all classes, methods, and utilities.

    - - -

    Features

    -
    -
      +

      ➡️ Reference Documentation

      See the full reference documentation for all classes, methods, and utilities.

      +

      Features

      1. Managing keys & creating test credentials (Wallet && Client.fundWallet())
      2. Submitting transactions to the XRP Ledger (Client.submit(...) & transaction types)
      3. Sending requests to observe the ledger (Client.request(...) using public API methods)
      4. Subscribing to changes in the ledger (Ex. ledger, transactions, & more...)
      5. Parsing ledger data into more convenient formats (xrpToDrops and rippleTimeToISOTime)
      -

      All of which works in Node.js (tested for v14+) & web browsers (tested for Chrome).

      - - -

      Quickstart

      -
      - - -

      Requirements

      -
      -
        -
      • Node.js v14 is recommended. We also support v16 and v18. Other versions may work but are not frequently tested.
      • +

        All of which works in Node.js (tested for v16+) & web browsers (tested for Chrome).

        +

        Quickstart

        Requirements

          +
        • Node.js v16 is recommended. We also support v18 and v20. Other versions may work but are not frequently tested.
        - - -

        Installing xrpl.js

        -
        -

        In an existing project (with package.json), install xrpl.js with:

        +

        Installing xrpl.js

        In an existing project (with package.json), install xrpl.js with:

        $ npm install --save xrpl
        -
        +

        Or with yarn:

        $ yarn add xrpl
        -
        +

        Example usage:

        const xrpl = require("xrpl");
        async function main() {
        const client = new xrpl.Client("wss://s.altnet.rippletest.net:51233");
        await client.connect();

        const response = await client.request({
        command: "account_info",
        account: "rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe",
        ledger_index: "validated",
        });
        console.log(response);

        client.disconnect();
        }
        main(); -
        +

        For a more in-depth example, you can copy/forking this Code Sandbox template!
        https://codesandbox.io/s/xrpl-intro-pxgdjr?file=/src/App.js

        It goes through:

        @@ -75,22 +51,15 @@

        Installing xrpl.js

      • Sending a payment transaction
      • And sending requests to see your account balance!
    - - -

    Case by Case Setup Steps

    -
    -

    If you're using xrpl.js with React or Deno, you'll need to do a couple extra steps to set it up:

    +

    Case by Case Setup Steps

    If you're using xrpl.js with React or Deno, you'll need to do a couple extra steps to set it up:

    - - -

    Documentation

    -
    -

    As you develop with xrpl.js, there's two sites you'll use extensively:

    +

    Documentation

    As you develop with xrpl.js, there's two sites you'll use extensively:

    1. xrpl.org is the primary source for:
      • How the ledger works (See Concepts)
      • @@ -101,11 +70,7 @@

        Documentation

      • js.xrpl.org has the reference docs for this library
    - - -

    Mailing Lists

    -
    -

    If you want to hear when we release new versions of xrpl.js, you can join our low-traffic mailing list (About 1 email per week):

    +

    Mailing Lists

    If you want to hear when we release new versions of xrpl.js, you can join our low-traffic mailing list (About 1 email per week):

    @@ -113,17 +78,9 @@

    Mailing Lists

    - - -

    Asking for help

    -
    -

    One of the best spots to ask for help is in the XRPL Developer Discord - There's a channel for xrpl.js where other community members can help you figure out how to accomplish your goals.

    +

    Asking for help

    One of the best spots to ask for help is in the XRPL Developer Discord - There's a channel for xrpl.js where other community members can help you figure out how to accomplish your goals.

    You are also welcome to create an issue here and we'll do our best to respond within 3 days.

    - - -

    Key Links

    -
    -
    - +
    +

    On This Page

    -
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • Mailing Lists
  • +
  • Asking for help
  • +
  • Key Links
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/AMMBid.html b/docs/interfaces/AMMBid.html new file mode 100644 index 0000000000..4c9ca2416e --- /dev/null +++ b/docs/interfaces/AMMBid.html @@ -0,0 +1,602 @@ +AMMBid | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface AMMBid

    +
    +

    Bid on an Automated Market Maker's (AMM's) auction slot.

    +

    If you win, you can trade against the AMM at a discounted fee until you are outbid or 24 hours have passed. +If you are outbid before 24 hours have passed, you are refunded part of the cost of your bid based on how much time remains. +You bid using the AMM's LP Tokens; the amount of a winning bid is returned to the AMM, +decreasing the outstanding balance of LP Tokens.

    +
    +
    +
    +

    Hierarchy

    +
    +
    +
    +
    + +
    +
    +

    Properties

    +
    + +
    Account: string
    +

    The unique address of the transaction sender.

    +
    +
    +
    + +
    AccountTxnID?: string
    +

    Hash value identifying another transaction. If provided, this transaction +is only valid if the sending account's previously-sent transaction matches +the provided hash.

    +
    +
    +
    + +
    Asset: Currency
    +

    The definition for one of the assets in the AMM's pool.

    +
    +
    +
    + +
    Asset2: Currency
    +

    The definition for the other asset in the AMM's pool.

    +
    +
    +
    + +
    AuthAccounts?: AuthAccount[]
    +

    A list of up to 4 additional accounts that you allow to trade at the discounted fee. +This cannot include the address of the transaction sender.

    +
    +
    +
    + + +

    Pay at most this LPToken amount for the slot. +If the cost to win the bid is higher than this amount, the transaction fails. +If omitted, pay as much as necessary to win the bid.

    +
    +
    +
    + + +

    Pay at least this LPToken amount for the slot. +Setting this value higher makes it harder for others to outbid you. +If omitted, pay the minimum necessary to win the bid.

    +
    +
    +
    + +
    Fee?: string
    +

    Integer amount of XRP, in drops, to be destroyed as a cost for +distributing this transaction to the network. Some transaction types have +different minimum requirements.

    +
    +
    +
    + +
    Flags?: number | GlobalFlags
    +

    Set of bit-flags for this transaction.

    +
    +
    +
    + +
    LastLedgerSequence?: number
    +

    Highest ledger index this transaction can appear in. Specifying this field +places a strict upper limit on how long the transaction can wait to be +validated or rejected.

    +
    +
    +
    + +
    Memos?: Memo[]
    +

    Additional arbitrary information used to identify this transaction.

    +
    +
    +
    + +
    NetworkID?: number
    +

    The network id of the transaction.

    +
    +
    +
    + +
    Sequence?: number
    +

    The sequence number of the account sending the transaction. A transaction +is only valid if the Sequence number is exactly 1 greater than the previous +transaction from the same account. The special case 0 means the transaction +is using a Ticket instead.

    +
    +
    +
    + +
    Signers?: Signer[]
    +

    Array of objects that represent a multi-signature which authorizes this +transaction.

    +
    +
    +
    + +
    SigningPubKey?: string
    +

    Hex representation of the public key that corresponds to the private key +used to sign this transaction. If an empty string, indicates a +multi-signature is present in the Signers field instead.

    +
    +
    +
    + +
    SourceTag?: number
    +

    Arbitrary integer used to identify the reason for this payment, or a sender +on whose behalf this transaction is made. Conventionally, a refund should +specify the initial payment's SourceTag as the refund payment's +DestinationTag.

    +
    +
    +
    + +
    TicketSequence?: number
    +

    The sequence number of the ticket to use in place of a Sequence number. If +this is provided, Sequence must be 0. Cannot be used with AccountTxnID.

    +
    +
    +
    + +
    TransactionType: "AMMBid"
    +

    The type of transaction. Valid types include: Payment, OfferCreate, +TrustSet, and many others.

    +
    +
    +
    + +
    TxnSignature?: string
    +

    The signature that verifies this transaction as originating from the +account it says it is from.

    +
    +
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/AMMCreate.html b/docs/interfaces/AMMCreate.html new file mode 100644 index 0000000000..f15f381f7c --- /dev/null +++ b/docs/interfaces/AMMCreate.html @@ -0,0 +1,583 @@ +AMMCreate | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface AMMCreate

    +
    +

    Create a new Automated Market Maker (AMM) instance for trading a pair of assets (fungible tokens or XRP).

    +

    Creates both an AMM object and a special AccountRoot object to represent the AMM. +Also transfers ownership of the starting balance of both assets from the sender to the created AccountRoot +and issues an initial balance of liquidity provider tokens (LP Tokens) from the AMM account to the sender.

    +

    CAUTION: When you create the AMM, you should fund it with (approximately) equal-value amounts of each asset. +Otherwise, other users can profit at your expense by trading with this AMM (performing arbitrage). +The currency risk that liquidity providers take on increases with the volatility (potential for imbalance) of the asset pair. +The higher the trading fee, the more it offsets this risk, +so it's best to set the trading fee based on the volatility of the asset pair.

    +
    +
    +
    +

    Hierarchy

    +
    +
    +
    +
    + +
    +
    +

    Properties

    +
    + +
    Account: string
    +

    The unique address of the transaction sender.

    +
    +
    +
    + +
    AccountTxnID?: string
    +

    Hash value identifying another transaction. If provided, this transaction +is only valid if the sending account's previously-sent transaction matches +the provided hash.

    +
    +
    +
    + +
    Amount: Amount
    +

    The first of the two assets to fund this AMM with. This must be a positive amount.

    +
    +
    +
    + +
    Amount2: Amount
    +

    The second of the two assets to fund this AMM with. This must be a positive amount.

    +
    +
    +
    + +
    Fee?: string
    +

    Integer amount of XRP, in drops, to be destroyed as a cost for +distributing this transaction to the network. Some transaction types have +different minimum requirements.

    +
    +
    +
    + +
    Flags?: number | GlobalFlags
    +

    Set of bit-flags for this transaction.

    +
    +
    +
    + +
    LastLedgerSequence?: number
    +

    Highest ledger index this transaction can appear in. Specifying this field +places a strict upper limit on how long the transaction can wait to be +validated or rejected.

    +
    +
    +
    + +
    Memos?: Memo[]
    +

    Additional arbitrary information used to identify this transaction.

    +
    +
    +
    + +
    NetworkID?: number
    +

    The network id of the transaction.

    +
    +
    +
    + +
    Sequence?: number
    +

    The sequence number of the account sending the transaction. A transaction +is only valid if the Sequence number is exactly 1 greater than the previous +transaction from the same account. The special case 0 means the transaction +is using a Ticket instead.

    +
    +
    +
    + +
    Signers?: Signer[]
    +

    Array of objects that represent a multi-signature which authorizes this +transaction.

    +
    +
    +
    + +
    SigningPubKey?: string
    +

    Hex representation of the public key that corresponds to the private key +used to sign this transaction. If an empty string, indicates a +multi-signature is present in the Signers field instead.

    +
    +
    +
    + +
    SourceTag?: number
    +

    Arbitrary integer used to identify the reason for this payment, or a sender +on whose behalf this transaction is made. Conventionally, a refund should +specify the initial payment's SourceTag as the refund payment's +DestinationTag.

    +
    +
    +
    + +
    TicketSequence?: number
    +

    The sequence number of the ticket to use in place of a Sequence number. If +this is provided, Sequence must be 0. Cannot be used with AccountTxnID.

    +
    +
    +
    + +
    TradingFee: number
    +

    The fee to charge for trades against this AMM instance, in units of 1/100,000; a value of 1 is equivalent to 0.001%. +The maximum value is 1000, indicating a 1% fee. +The minimum value is 0.

    +
    +
    +
    + +
    TransactionType: "AMMCreate"
    +

    The type of transaction. Valid types include: Payment, OfferCreate, +TrustSet, and many others.

    +
    +
    +
    + +
    TxnSignature?: string
    +

    The signature that verifies this transaction as originating from the +account it says it is from.

    +
    +
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/AMMDelete.html b/docs/interfaces/AMMDelete.html new file mode 100644 index 0000000000..56c7c2006f --- /dev/null +++ b/docs/interfaces/AMMDelete.html @@ -0,0 +1,570 @@ +AMMDelete | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface AMMDelete

    +
    +

    Delete an empty Automated Market Maker (AMM) instance that could not be fully deleted automatically.

    +

    Tip: The AMMWithdraw transaction automatically tries to delete an AMM, along with associated ledger +entries such as empty trust lines, if it withdrew all the assets from the AMM's pool. +However, if there are too many trust lines to the AMM account to remove in one transaction, +it may stop before fully removing the AMM. Similarly, an AMMDelete transaction removes up to +a maximum number of trust lines; in extreme cases, it may take several AMMDelete transactions +to fully delete the trust lines and the associated AMM. +In all cases, the AMM ledger entry and AMM account are deleted by the last such transaction.

    +
    +
    +
    +

    Hierarchy

    +
    +
    +
    +
    + +
    +
    +

    Properties

    +
    + +
    Account: string
    +

    The unique address of the transaction sender.

    +
    +
    +
    + +
    AccountTxnID?: string
    +

    Hash value identifying another transaction. If provided, this transaction +is only valid if the sending account's previously-sent transaction matches +the provided hash.

    +
    +
    +
    + +
    Asset: Currency
    +

    The definition for one of the assets in the AMM's pool.

    +
    +
    +
    + +
    Asset2: Currency
    +

    The definition for the other asset in the AMM's pool.

    +
    +
    +
    + +
    Fee?: string
    +

    Integer amount of XRP, in drops, to be destroyed as a cost for +distributing this transaction to the network. Some transaction types have +different minimum requirements.

    +
    +
    +
    + +
    Flags?: number | GlobalFlags
    +

    Set of bit-flags for this transaction.

    +
    +
    +
    + +
    LastLedgerSequence?: number
    +

    Highest ledger index this transaction can appear in. Specifying this field +places a strict upper limit on how long the transaction can wait to be +validated or rejected.

    +
    +
    +
    + +
    Memos?: Memo[]
    +

    Additional arbitrary information used to identify this transaction.

    +
    +
    +
    + +
    NetworkID?: number
    +

    The network id of the transaction.

    +
    +
    +
    + +
    Sequence?: number
    +

    The sequence number of the account sending the transaction. A transaction +is only valid if the Sequence number is exactly 1 greater than the previous +transaction from the same account. The special case 0 means the transaction +is using a Ticket instead.

    +
    +
    +
    + +
    Signers?: Signer[]
    +

    Array of objects that represent a multi-signature which authorizes this +transaction.

    +
    +
    +
    + +
    SigningPubKey?: string
    +

    Hex representation of the public key that corresponds to the private key +used to sign this transaction. If an empty string, indicates a +multi-signature is present in the Signers field instead.

    +
    +
    +
    + +
    SourceTag?: number
    +

    Arbitrary integer used to identify the reason for this payment, or a sender +on whose behalf this transaction is made. Conventionally, a refund should +specify the initial payment's SourceTag as the refund payment's +DestinationTag.

    +
    +
    +
    + +
    TicketSequence?: number
    +

    The sequence number of the ticket to use in place of a Sequence number. If +this is provided, Sequence must be 0. Cannot be used with AccountTxnID.

    +
    +
    +
    + +
    TransactionType: "AMMDelete"
    +

    The type of transaction. Valid types include: Payment, OfferCreate, +TrustSet, and many others.

    +
    +
    +
    + +
    TxnSignature?: string
    +

    The signature that verifies this transaction as originating from the +account it says it is from.

    +
    +
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/AMMDeposit.html b/docs/interfaces/AMMDeposit.html new file mode 100644 index 0000000000..9ba4c3f8fe --- /dev/null +++ b/docs/interfaces/AMMDeposit.html @@ -0,0 +1,608 @@ +AMMDeposit | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface AMMDeposit

    +
    +

    Deposit funds into an Automated Market Maker (AMM) instance +and receive the AMM's liquidity provider tokens (LP Tokens) in exchange.

    +

    You can deposit one or both of the assets in the AMM's pool. +If successful, this transaction creates a trust line to the AMM Account (limit 0) to hold the LP Tokens.

    +
    +
    +
    +

    Hierarchy

    +
    +
    +
    +
    + +
    +
    +

    Properties

    +
    + +
    Account: string
    +

    The unique address of the transaction sender.

    +
    +
    +
    + +
    AccountTxnID?: string
    +

    Hash value identifying another transaction. If provided, this transaction +is only valid if the sending account's previously-sent transaction matches +the provided hash.

    +
    +
    +
    + +
    Amount?: Amount
    +

    The amount of one asset to deposit to the AMM. +If present, this must match the type of one of the assets (tokens or XRP) in the AMM's pool.

    +
    +
    +
    + +
    Amount2?: Amount
    +

    The amount of another asset to add to the AMM. +If present, this must match the type of the other asset in the AMM's pool and cannot be the same asset as Amount.

    +
    +
    +
    + +
    Asset: Currency
    +

    The definition for one of the assets in the AMM's pool.

    +
    +
    +
    + +
    Asset2: Currency
    +

    The definition for the other asset in the AMM's pool.

    +
    +
    +
    + +
    EPrice?: Amount
    +

    The maximum effective price, in the deposit asset, to pay for each LP Token received.

    +
    +
    +
    + +
    Fee?: string
    +

    Integer amount of XRP, in drops, to be destroyed as a cost for +distributing this transaction to the network. Some transaction types have +different minimum requirements.

    +
    +
    +
    + +
    Flags?: number | GlobalFlags
    +

    Set of bit-flags for this transaction.

    +
    +
    +
    + + +

    How many of the AMM's LP Tokens to buy.

    +
    +
    +
    + +
    LastLedgerSequence?: number
    +

    Highest ledger index this transaction can appear in. Specifying this field +places a strict upper limit on how long the transaction can wait to be +validated or rejected.

    +
    +
    +
    + +
    Memos?: Memo[]
    +

    Additional arbitrary information used to identify this transaction.

    +
    +
    +
    + +
    NetworkID?: number
    +

    The network id of the transaction.

    +
    +
    +
    + +
    Sequence?: number
    +

    The sequence number of the account sending the transaction. A transaction +is only valid if the Sequence number is exactly 1 greater than the previous +transaction from the same account. The special case 0 means the transaction +is using a Ticket instead.

    +
    +
    +
    + +
    Signers?: Signer[]
    +

    Array of objects that represent a multi-signature which authorizes this +transaction.

    +
    +
    +
    + +
    SigningPubKey?: string
    +

    Hex representation of the public key that corresponds to the private key +used to sign this transaction. If an empty string, indicates a +multi-signature is present in the Signers field instead.

    +
    +
    +
    + +
    SourceTag?: number
    +

    Arbitrary integer used to identify the reason for this payment, or a sender +on whose behalf this transaction is made. Conventionally, a refund should +specify the initial payment's SourceTag as the refund payment's +DestinationTag.

    +
    +
    +
    + +
    TicketSequence?: number
    +

    The sequence number of the ticket to use in place of a Sequence number. If +this is provided, Sequence must be 0. Cannot be used with AccountTxnID.

    +
    +
    +
    + +
    TransactionType: "AMMDeposit"
    +

    The type of transaction. Valid types include: Payment, OfferCreate, +TrustSet, and many others.

    +
    +
    +
    + +
    TxnSignature?: string
    +

    The signature that verifies this transaction as originating from the +account it says it is from.

    +
    +
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/AMMDepositFlagsInterface.html b/docs/interfaces/AMMDepositFlagsInterface.html new file mode 100644 index 0000000000..3edf142fac --- /dev/null +++ b/docs/interfaces/AMMDepositFlagsInterface.html @@ -0,0 +1,402 @@ +AMMDepositFlagsInterface | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface AMMDepositFlagsInterface

    +
    +

    Hierarchy

    +
      +
    • GlobalFlags +
        +
      • AMMDepositFlagsInterface
    +
    +
    +
    + +
    +
    +

    Properties

    +
    + +
    tfLPToken?: boolean
    +
    + +
    tfLimitLPToken?: boolean
    +
    + +
    tfOneAssetLPToken?: boolean
    +
    + +
    tfSingleAsset?: boolean
    +
    + +
    tfTwoAsset?: boolean
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/AMMInfoRequest.html b/docs/interfaces/AMMInfoRequest.html new file mode 100644 index 0000000000..17bdaab118 --- /dev/null +++ b/docs/interfaces/AMMInfoRequest.html @@ -0,0 +1,437 @@ +AMMInfoRequest | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface AMMInfoRequest

    +
    +

    The amm_info method gets information about an Automated Market Maker (AMM) instance. +Returns an AMMInfoResponse.

    +
    +
    +
    +

    Hierarchy

    +
    +
    +
    +
    + +
    +
    +

    Properties

    +
    + +
    amm_account?: string
    +

    The address of the AMM Account to look up.

    +
    +
    +
    + +
    api_version?: number
    +

    The API version to use. If omitted, use version 1.

    +
    +
    +
    + +
    asset?: Currency
    +

    One of the assets of the AMM pool to look up.

    +
    +
    +
    + +
    asset2?: Currency
    +

    The other asset of the AMM pool.

    +
    +
    +
    + +
    command: "amm_info"
    +

    The name of the API method.

    +
    +
    +
    + +
    id?: string | number
    +

    A unique value to identify this request. The response to this request uses +the same id field. This way, even if responses arrive out of order, you +know which request prompted which response.

    +
    +
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/AMMInfoResponse.html b/docs/interfaces/AMMInfoResponse.html new file mode 100644 index 0000000000..54f5d25b15 --- /dev/null +++ b/docs/interfaces/AMMInfoResponse.html @@ -0,0 +1,547 @@ +AMMInfoResponse | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface AMMInfoResponse

    +
    +

    Response expected from an AMMInfoRequest.

    +
    +
    +
    +

    Hierarchy

    +
    +
    +
    +
    + +
    +
    +

    Properties

    +
    + +
    api_version?: number
    +
    + +
    forwarded?: boolean
    +
    + +
    id: string | number
    +
    + +
    result: {
        amm: {
            account: string;
            amount: Amount;
            amount2: Amount;
            asset2_frozen?: boolean;
            asset_frozen?: boolean;
            auction_slot?: {
                account: string;
                auth_accounts: {
                    account: string;
                }[];
                discounted_fee: number;
                expiration: string;
                price: IssuedCurrencyAmount;
                time_interval: number;
            };
            lp_token: IssuedCurrencyAmount;
            trading_fee: number;
            vote_slots?: {
                account: string;
                trading_fee: number;
                vote_weight: number;
            }[];
        };
        ledger_hash?: string;
        ledger_index?: number;
        validated?: boolean;
    }
    +
    +

    Type declaration

    +
      +
    • +
      amm: {
          account: string;
          amount: Amount;
          amount2: Amount;
          asset2_frozen?: boolean;
          asset_frozen?: boolean;
          auction_slot?: {
              account: string;
              auth_accounts: {
                  account: string;
              }[];
              discounted_fee: number;
              expiration: string;
              price: IssuedCurrencyAmount;
              time_interval: number;
          };
          lp_token: IssuedCurrencyAmount;
          trading_fee: number;
          vote_slots?: {
              account: string;
              trading_fee: number;
              vote_weight: number;
          }[];
      }
      +
        +
      • +
        account: string
        +

        The address of the AMM Account.

        +
        +
      • +
      • +
        amount: Amount
        +

        The total amount of one asset in the AMM's pool. +(Note: This could be asset or asset2 from the request)

        +
        +
      • +
      • +
        amount2: Amount
        +

        The total amount of the other asset in the AMM's pool. +(Note: This could be asset or asset2 from the request)

        +
        +
      • +
      • +
        Optional asset2_frozen?: boolean
        +

        (Omitted for XRP) If true, the amount currency is currently frozen for asset2.

        +
        +
      • +
      • +
        Optional asset_frozen?: boolean
        +

        (Omitted for XRP) If true, the amount currency is currently frozen for asset.

        +
        +
      • +
      • +
        Optional auction_slot?: {
            account: string;
            auth_accounts: {
                account: string;
            }[];
            discounted_fee: number;
            expiration: string;
            price: IssuedCurrencyAmount;
            time_interval: number;
        }
        +

        (May be omitted) An Auction Slot Object describing the current auction slot holder, if there is one.

        +
        +
        +
          +
        • +
          account: string
          +

          The address of the account that owns the auction slot.

          +
          +
        • +
        • +
          auth_accounts: {
              account: string;
          }[]
          +

          A list of additional accounts that the auction slot holder has designated as being eligible +of the discounted trading fee. +Each member of this array is an object with one field, account, containing the address of the designated account.

          +
          +
        • +
        • +
          discounted_fee: number
          +

          The discounted trading fee that applies to the auction slot holder, and any eligible accounts +when trading against this AMM. +This is always 0.

          +
          +
        • +
        • +
          expiration: string
          +

          The ISO 8601 UTC timestamp after which this auction slot expires. +After expired, the auction slot does not apply (but the data can remain in the ledger +until another transaction replaces it or cleans it up).

          +
          +
        • +
        • +
          price: IssuedCurrencyAmount
          +

          The amount, in LP Tokens, that the auction slot holder paid to win the auction slot. +This affects the price to outbid the current slot holder.

          +
          +
        • +
        • +
          time_interval: number
          +

          The current 72-minute time interval this auction slot is in, from 0 to 19. +The auction slot expires after 24 hours (20 intervals of 72 minutes) +and affects the cost to outbid the current holder and how much the current holder is refunded if someone outbids them.

          +
          +
      • +
      • +
        lp_token: IssuedCurrencyAmount
        +

        The total amount of this AMM's LP Tokens outstanding.

        +
        +
      • +
      • +
        trading_fee: number
        +

        The AMM's current trading fee, in units of 1/100,000; a value of 1 is equivalent to a 0.001% fee.

        +
        +
      • +
      • +
        Optional vote_slots?: {
            account: string;
            trading_fee: number;
            vote_weight: number;
        }[]
        +

        (May be omitted) The current votes for the AMM's trading fee, as Vote Slot Objects.

        +
        +
    • +
    • +
      Optional ledger_hash?: string
      +

      The identifying hash of the ledger that was used to generate this +response.

      +
      +
    • +
    • +
      Optional ledger_index?: number
      +

      The ledger index of the ledger version that was used to generate this +response.

      +
      +
    • +
    • +
      Optional validated?: boolean
      +

      If included and set to true, the information in this response comes from +a validated ledger version. Otherwise, the information is subject to +change.

      +
      +
    +
    + +
    status?: string
    +
    + +
    type: string
    +
    + +
    warning?: "load"
    +
    + +
    warnings?: ResponseWarning[]
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/AMMVote.html b/docs/interfaces/AMMVote.html new file mode 100644 index 0000000000..33f891753b --- /dev/null +++ b/docs/interfaces/AMMVote.html @@ -0,0 +1,576 @@ +AMMVote | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface AMMVote

    +
    +

    Vote on the trading fee for an Automated Market Maker (AMM) instance.

    +

    Up to 8 accounts can vote in proportion to the amount of the AMM's LP Tokens they hold. +Each new vote re-calculates the AMM's trading fee based on a weighted average of the votes.

    +
    +
    +
    +

    Hierarchy

    +
    +
    +
    +
    + +
    +
    +

    Properties

    +
    + +
    Account: string
    +

    The unique address of the transaction sender.

    +
    +
    +
    + +
    AccountTxnID?: string
    +

    Hash value identifying another transaction. If provided, this transaction +is only valid if the sending account's previously-sent transaction matches +the provided hash.

    +
    +
    +
    + +
    Asset: Currency
    +

    The definition for one of the assets in the AMM's pool.

    +
    +
    +
    + +
    Asset2: Currency
    +

    The definition for the other asset in the AMM's pool.

    +
    +
    +
    + +
    Fee?: string
    +

    Integer amount of XRP, in drops, to be destroyed as a cost for +distributing this transaction to the network. Some transaction types have +different minimum requirements.

    +
    +
    +
    + +
    Flags?: number | GlobalFlags
    +

    Set of bit-flags for this transaction.

    +
    +
    +
    + +
    LastLedgerSequence?: number
    +

    Highest ledger index this transaction can appear in. Specifying this field +places a strict upper limit on how long the transaction can wait to be +validated or rejected.

    +
    +
    +
    + +
    Memos?: Memo[]
    +

    Additional arbitrary information used to identify this transaction.

    +
    +
    +
    + +
    NetworkID?: number
    +

    The network id of the transaction.

    +
    +
    +
    + +
    Sequence?: number
    +

    The sequence number of the account sending the transaction. A transaction +is only valid if the Sequence number is exactly 1 greater than the previous +transaction from the same account. The special case 0 means the transaction +is using a Ticket instead.

    +
    +
    +
    + +
    Signers?: Signer[]
    +

    Array of objects that represent a multi-signature which authorizes this +transaction.

    +
    +
    +
    + +
    SigningPubKey?: string
    +

    Hex representation of the public key that corresponds to the private key +used to sign this transaction. If an empty string, indicates a +multi-signature is present in the Signers field instead.

    +
    +
    +
    + +
    SourceTag?: number
    +

    Arbitrary integer used to identify the reason for this payment, or a sender +on whose behalf this transaction is made. Conventionally, a refund should +specify the initial payment's SourceTag as the refund payment's +DestinationTag.

    +
    +
    +
    + +
    TicketSequence?: number
    +

    The sequence number of the ticket to use in place of a Sequence number. If +this is provided, Sequence must be 0. Cannot be used with AccountTxnID.

    +
    +
    +
    + +
    TradingFee: number
    +

    The proposed fee to vote for, in units of 1/100,000; a value of 1 is equivalent to 0.001%. +The maximum value is 1000, indicating a 1% fee.

    +
    +
    +
    + +
    TransactionType: "AMMVote"
    +

    The type of transaction. Valid types include: Payment, OfferCreate, +TrustSet, and many others.

    +
    +
    +
    + +
    TxnSignature?: string
    +

    The signature that verifies this transaction as originating from the +account it says it is from.

    +
    +
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/AMMWithdraw.html b/docs/interfaces/AMMWithdraw.html new file mode 100644 index 0000000000..f47fd0ff1b --- /dev/null +++ b/docs/interfaces/AMMWithdraw.html @@ -0,0 +1,605 @@ +AMMWithdraw | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface AMMWithdraw

    +
    +

    Withdraw assets from an Automated Market Maker (AMM) instance by returning the AMM's liquidity provider tokens (LP Tokens).

    +
    +
    +
    +

    Hierarchy

    +
    +
    +
    +
    + +
    +
    +

    Properties

    +
    + +
    Account: string
    +

    The unique address of the transaction sender.

    +
    +
    +
    + +
    AccountTxnID?: string
    +

    Hash value identifying another transaction. If provided, this transaction +is only valid if the sending account's previously-sent transaction matches +the provided hash.

    +
    +
    +
    + +
    Amount?: Amount
    +

    The amount of one asset to withdraw from the AMM. +This must match the type of one of the assets (tokens or XRP) in the AMM's pool.

    +
    +
    +
    + +
    Amount2?: Amount
    +

    The amount of another asset to withdraw from the AMM. +If present, this must match the type of the other asset in the AMM's pool and cannot be the same type as Amount.

    +
    +
    +
    + +
    Asset: Currency
    +

    The definition for one of the assets in the AMM's pool.

    +
    +
    +
    + +
    Asset2: Currency
    +

    The definition for the other asset in the AMM's pool.

    +
    +
    +
    + +
    EPrice?: Amount
    +

    The minimum effective price, in LP Token returned, to pay per unit of the asset to withdraw.

    +
    +
    +
    + +
    Fee?: string
    +

    Integer amount of XRP, in drops, to be destroyed as a cost for +distributing this transaction to the network. Some transaction types have +different minimum requirements.

    +
    +
    +
    + +
    Flags?: number | GlobalFlags
    +

    Set of bit-flags for this transaction.

    +
    +
    +
    + + +

    How many of the AMM's LP Tokens to redeem.

    +
    +
    +
    + +
    LastLedgerSequence?: number
    +

    Highest ledger index this transaction can appear in. Specifying this field +places a strict upper limit on how long the transaction can wait to be +validated or rejected.

    +
    +
    +
    + +
    Memos?: Memo[]
    +

    Additional arbitrary information used to identify this transaction.

    +
    +
    +
    + +
    NetworkID?: number
    +

    The network id of the transaction.

    +
    +
    +
    + +
    Sequence?: number
    +

    The sequence number of the account sending the transaction. A transaction +is only valid if the Sequence number is exactly 1 greater than the previous +transaction from the same account. The special case 0 means the transaction +is using a Ticket instead.

    +
    +
    +
    + +
    Signers?: Signer[]
    +

    Array of objects that represent a multi-signature which authorizes this +transaction.

    +
    +
    +
    + +
    SigningPubKey?: string
    +

    Hex representation of the public key that corresponds to the private key +used to sign this transaction. If an empty string, indicates a +multi-signature is present in the Signers field instead.

    +
    +
    +
    + +
    SourceTag?: number
    +

    Arbitrary integer used to identify the reason for this payment, or a sender +on whose behalf this transaction is made. Conventionally, a refund should +specify the initial payment's SourceTag as the refund payment's +DestinationTag.

    +
    +
    +
    + +
    TicketSequence?: number
    +

    The sequence number of the ticket to use in place of a Sequence number. If +this is provided, Sequence must be 0. Cannot be used with AccountTxnID.

    +
    +
    +
    + +
    TransactionType: "AMMWithdraw"
    +

    The type of transaction. Valid types include: Payment, OfferCreate, +TrustSet, and many others.

    +
    +
    +
    + +
    TxnSignature?: string
    +

    The signature that verifies this transaction as originating from the +account it says it is from.

    +
    +
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/AMMWithdrawFlagsInterface.html b/docs/interfaces/AMMWithdrawFlagsInterface.html new file mode 100644 index 0000000000..073111d446 --- /dev/null +++ b/docs/interfaces/AMMWithdrawFlagsInterface.html @@ -0,0 +1,416 @@ +AMMWithdrawFlagsInterface | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface AMMWithdrawFlagsInterface

    +
    +

    Hierarchy

    +
      +
    • GlobalFlags +
        +
      • AMMWithdrawFlagsInterface
    +
    +
    +
    + +
    +
    +

    Properties

    +
    + +
    tfLPToken?: boolean
    +
    + +
    tfLimitLPToken?: boolean
    +
    + +
    tfOneAssetLPToken?: boolean
    +
    + +
    tfOneAssetWithdrawAll?: boolean
    +
    + +
    tfSingleAsset?: boolean
    +
    + +
    tfTwoAsset?: boolean
    +
    + +
    tfWithdrawAll?: boolean
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/AccountChannelsRequest.html b/docs/interfaces/AccountChannelsRequest.html index 19c608a66f..1655810686 100644 --- a/docs/interfaces/AccountChannelsRequest.html +++ b/docs/interfaces/AccountChannelsRequest.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -AccountChannelsRequest | xrpl
    +AccountChannelsRequest | xrpl
    -
    +
    • xrpl
    • @@ -26,16 +26,18 @@

      Interface AccountChannelsRequest

    Channels. This includes only channels where the specified account is the channel's source, not the destination. (A channel's "source" and "owner" are the same.) All information retrieved is relative to a particular version of -the ledger. Returns an AccountChannelsResponse.

    -
    +the ledger. Returns an AccountChannelsResponse.

    +
    +

    Hierarchy

      -
    • BaseRequest +
    • BaseRequest
    • +
    • LookupByLedgerRequest
      • AccountChannelsRequest
    +
  • Defined in packages/xrpl/src/models/methods/accountChannels.ts:27
  • @@ -43,94 +45,107 @@

    Properties

    -
    - -
    account: string
    +
    + +
    account: string

    The unique identifier of an account, typically the account's address. The request returns channels where this account is the channel's owner/source.

    -
    -
    - -
    api_version?: number
    +
  • Defined in packages/xrpl/src/models/methods/accountChannels.ts:36
  • +
    + +
    api_version?: number

    The API version to use. If omitted, use version 1.

    -
    -
    - -
    command: "account_channels"
    +
    + +
    command: "account_channels"
    +

    The name of the API method.

    +
    +
    -
    - -
    destination_account?: string
    +
  • Defined in packages/xrpl/src/models/methods/accountChannels.ts:30
  • +
    + +
    destination_account?: string

    The unique identifier of an account, typically the account's address. If provided, filter results to payment channels whose destination is this account.

    -
    -
    - -
    id?: string | number
    +
  • Defined in packages/xrpl/src/models/methods/accountChannels.ts:42
  • +
    + +
    id?: string | number

    A unique value to identify this request. The response to this request uses the same id field. This way, even if responses arrive out of order, you know which request prompted which response.

    -
    -
    - -
    ledger_hash?: string
    -

    20-byte hex string for the ledger version to use.

    -
    +
    + +
    ledger_hash?: string
    +

    A 20-byte hex string for the ledger version to use.

    +
    +
    -
    - -
    ledger_index?: LedgerIndex
    -

    The ledger index of the ledger to use, or a shortcut string to choose a -ledger automatically.

    -
    +
    + +
    ledger_index?: LedgerIndex
    +

    The ledger index of the ledger to use, or a shortcut string.

    +
    +
    -
    - -
    limit?: number
    +
  • Defined in packages/xrpl/src/models/methods/baseMethod.ts:23
  • +
    + +
    limit?: number

    Limit the number of transactions to retrieve. Cannot be less than 10 or more than 400. The default is 200.

    -
    -
    - -
    marker?: unknown
    +
  • Defined in packages/xrpl/src/models/methods/accountChannels.ts:47
  • +
    + +
    marker?: unknown

    Value from a previous paginated response. Resume retrieving data where that response left off.

    -
    -
    +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • account
  • +
  • api_version
  • +
  • command
  • +
  • destination_account
  • +
  • id
  • +
  • ledger_hash
  • +
  • ledger_index
  • +
  • limit
  • +
  • marker
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/AccountChannelsResponse.html b/docs/interfaces/AccountChannelsResponse.html index b3f1e8bdcd..642e7630d0 100644 --- a/docs/interfaces/AccountChannelsResponse.html +++ b/docs/interfaces/AccountChannelsResponse.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -AccountChannelsResponse | xrpl
    +AccountChannelsResponse | xrpl
    -
    +

    Interface AccountChannelsResponse

    -

    The expected response from an AccountChannelsRequest.

    -
    +

    The expected response from an AccountChannelsRequest.

    +
    +

    Hierarchy

    +
  • Defined in packages/xrpl/src/models/methods/accountChannels.ts:60
  • @@ -39,106 +40,114 @@

    Properties

    -
    - -
    api_version?: number
    +
    + +
    result: {
        account: string;
        channels: Channel[];
        ledger_hash: string;
        ledger_index: number;
        limit?: number;
        marker?: unknown;
        validated?: boolean;
    }

    Type declaration

    • -
      account: string
      +
      account: string

      The address of the source/owner of the payment channels. This corresponds to the account field of the request.

      -
    • +
    +
  • -
    channels: Channel[]
    +
    channels: Channel[]

    Payment channels owned by this account.

    -
  • +
    +
  • -
    ledger_hash: string
    +
    ledger_hash: string

    The identifying hash of the ledger version used to generate this response.

    -
  • +
    +
  • -
    ledger_index: number
    +
    ledger_index: number

    The ledger index of the ledger version used to generate this response.

    -
  • + +
  • -
    Optional limit?: number
    +
    Optional limit?: number

    The limit to how many channel objects were actually returned by this request.

    -
  • + +
  • -
    Optional marker?: unknown
    +
    Optional marker?: unknown

    Server-defined value for pagination. Pass this to the next call to resume getting results where this call left off. Omitted when there are no additional pages after this one.

    -
  • + +
  • -
    Optional validated?: boolean
    +
    Optional validated?: boolean

    If true, the information in this response comes from a validated ledger version. Otherwise, the information is subject to change.

    -
  • +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • api_version
  • +
  • forwarded
  • +
  • id
  • +
  • result
  • +
  • status
  • +
  • type
  • +
  • warning
  • +
  • warnings
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/AccountCurrenciesRequest.html b/docs/interfaces/AccountCurrenciesRequest.html index f7ba9af9f4..d33f69b619 100644 --- a/docs/interfaces/AccountCurrenciesRequest.html +++ b/docs/interfaces/AccountCurrenciesRequest.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -AccountCurrenciesRequest | xrpl
    +AccountCurrenciesRequest | xrpl
    -
    +
    • xrpl
    • @@ -24,16 +24,18 @@

      Interface AccountCurrenciesRequest

    The account_currencies command retrieves a list of currencies that an account can send or receive, based on its trust lines. Expects an -AccountCurrenciesResponse.

    -
    +AccountCurrenciesResponse.

    +
    +

    Hierarchy

      -
    • BaseRequest +
    • BaseRequest
    • +
    • LookupByLedgerRequest
      • AccountCurrenciesRequest
    +
  • Defined in packages/xrpl/src/models/methods/accountCurrencies.ts:10
  • @@ -41,75 +43,86 @@

    Properties

    -
    - -
    account: string
    +
    + +
    account: string

    A unique identifier for the account, most commonly the account's address.

    -
    +
    -
    - -
    api_version?: number
    +
  • Defined in packages/xrpl/src/models/methods/accountCurrencies.ts:15
  • +
    + +
    api_version?: number

    The API version to use. If omitted, use version 1.

    -
    -
    - -
    command: "account_currencies"
    +
    + +
    command: "account_currencies"
    +

    The name of the API method.

    +
    +
    -
    - -
    id?: string | number
    +
  • Defined in packages/xrpl/src/models/methods/accountCurrencies.ts:13
  • +
    + +
    id?: string | number

    A unique value to identify this request. The response to this request uses the same id field. This way, even if responses arrive out of order, you know which request prompted which response.

    -
    -
    - -
    ledger_hash?: string
    +
  • Defined in packages/xrpl/src/models/methods/baseMethod.ts:12
  • +
    + +
    ledger_hash?: string

    A 20-byte hex string for the ledger version to use.

    -
    -
    - -
    ledger_index?: LedgerIndex
    -

    The ledger index of the ledger to use, or a shortcut string to choose a -ledger automatically.

    -
    +
    + +
    ledger_index?: LedgerIndex
    +

    The ledger index of the ledger to use, or a shortcut string.

    +
    +
    -
    - -
    strict?: boolean
    +
  • Defined in packages/xrpl/src/models/methods/baseMethod.ts:23
  • +
    + +
    strict?: boolean

    If true, then the account field only accepts a public key or XRP Ledger address. Otherwise, account can be a secret or passphrase (not recommended). The default is false.

    -
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • account
  • +
  • api_version
  • +
  • command
  • +
  • id
  • +
  • ledger_hash
  • +
  • ledger_index
  • +
  • strict
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/AccountCurrenciesResponse.html b/docs/interfaces/AccountCurrenciesResponse.html index a8049a7a8d..1a13f50105 100644 --- a/docs/interfaces/AccountCurrenciesResponse.html +++ b/docs/interfaces/AccountCurrenciesResponse.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -AccountCurrenciesResponse | xrpl
    +AccountCurrenciesResponse | xrpl
    -
    +

    Interface AccountCurrenciesResponse

    -

    The expected response from an AccountCurrenciesRequest.

    -
    +

    The expected response from an AccountCurrenciesRequest.

    +
    +

    Hierarchy

    +
  • Defined in packages/xrpl/src/models/methods/accountCurrencies.ts:29
  • @@ -39,93 +40,99 @@

    Properties

    -
    - -
    api_version?: number
    +
    + +
    result: {
        ledger_hash?: string;
        ledger_index: number;
        receive_currencies: string[];
        send_currencies: string[];
        validated: boolean;
    }

    Type declaration

    • -
      Optional ledger_hash?: string
      +
      Optional ledger_hash?: string

      The identifying hash of the ledger version used to retrieve this data, as hex.

      -
    • +
    +
  • -
    ledger_index: number
    +
    ledger_index: number

    The ledger index of the ledger version used to retrieve this data.

    -
  • +
    +
  • -
    receive_currencies: string[]
    +
    receive_currencies: string[]

    Array of Currency Codes for currencies that this account can receive.

    -
  • +
    +
  • -
    send_currencies: string[]
    +
    send_currencies: string[]

    Array of Currency Codes for currencies that this account can send.

    -
  • + +
  • -
    validated: boolean
    +
    validated: boolean

    If true, this data comes from a validated ledger.

    -
  • +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • api_version
  • +
  • forwarded
  • +
  • id
  • +
  • result
  • +
  • status
  • +
  • type
  • +
  • warning
  • +
  • warnings
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/AccountDelete.html b/docs/interfaces/AccountDelete.html index 0074a53527..0756e22ea0 100644 --- a/docs/interfaces/AccountDelete.html +++ b/docs/interfaces/AccountDelete.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -AccountDelete | xrpl
    +AccountDelete | xrpl
    -
    +
    • xrpl
    • @@ -25,15 +25,16 @@

      Interface AccountDelete

    An AccountDelete transaction deletes an account and any objects it owns in the XRP Ledger, if possible, sending the account's remaining XRP to a specified destination account.

    -
    +
    +

    Hierarchy

    +
  • Defined in packages/xrpl/src/models/transactions/accountDelete.ts:18
  • @@ -41,164 +42,193 @@

    Properties

    -
    - -
    Account: string
    -

    The unique address of the account that initiated the transaction.

    -
    -
    - -
    AccountTxnID?: string
    +
    + +
    Account: string
    +

    The unique address of the transaction sender.

    +
    +
    +
    + +
    AccountTxnID?: string

    Hash value identifying another transaction. If provided, this transaction is only valid if the sending account's previously-sent transaction matches the provided hash.

    -
    +
    -
    - -
    Destination: string
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:249
  • +
    + +
    Destination: string

    The address of an account to receive any leftover XRP after deleting the sending account. Must be a funded account in the ledger, and must not be. the sending account.

    -
    -
    - -
    DestinationTag?: number
    +
  • Defined in packages/xrpl/src/models/transactions/accountDelete.ts:25
  • +
    + +
    DestinationTag?: number

    Arbitrary destination tag that identifies a hosted recipient or other. information for the recipient of the deleted account's leftover XRP.

    -
    -
    - -
    Fee?: string
    +
  • Defined in packages/xrpl/src/models/transactions/accountDelete.ts:30
  • +
    + +
    Fee?: string

    Integer amount of XRP, in drops, to be destroyed as a cost for distributing this transaction to the network. Some transaction types have different minimum requirements.

    -
    -
    - -
    Flags?: number | GlobalFlags
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:236
  • +
    + +
    Flags?: number | GlobalFlags

    Set of bit-flags for this transaction.

    -
    -
    - -
    LastLedgerSequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:251
  • +
    + +
    LastLedgerSequence?: number

    Highest ledger index this transaction can appear in. Specifying this field places a strict upper limit on how long the transaction can wait to be validated or rejected.

    -
    -
    - -
    Memos?: Memo[]
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:257
  • +
    + +
    Memos?: Memo[]

    Additional arbitrary information used to identify this transaction.

    -
    +
    + +
    NetworkID?: number
    +

    The network id of the transaction.

    +
    +
    -
    - -
    Sequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:293
  • +
    + +
    Sequence?: number

    The sequence number of the account sending the transaction. A transaction is only valid if the Sequence number is exactly 1 greater than the previous transaction from the same account. The special case 0 means the transaction is using a Ticket instead.

    -
    -
    - -
    Signers?: Signer[]
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:243
  • +
    + +
    Signers?: Signer[]

    Array of objects that represent a multi-signature which authorizes this transaction.

    -
    -
    - -
    SigningPubKey?: string
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:266
  • +
    + +
    SigningPubKey?: string

    Hex representation of the public key that corresponds to the private key used to sign this transaction. If an empty string, indicates a multi-signature is present in the Signers field instead.

    -
    -
    - -
    SourceTag?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:279
  • +
    + +
    SourceTag?: number

    Arbitrary integer used to identify the reason for this payment, or a sender on whose behalf this transaction is made. Conventionally, a refund should specify the initial payment's SourceTag as the refund payment's DestinationTag.

    -
    -
    - -
    TicketSequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:273
  • +
    + +
    TicketSequence?: number

    The sequence number of the ticket to use in place of a Sequence number. If this is provided, Sequence must be 0. Cannot be used with AccountTxnID.

    -
    -
    - -
    TransactionType: "AccountDelete"
    -
    - -
    TxnSignature?: string
    + +
    +
    + +
    TransactionType: "AccountDelete"
    +

    The type of transaction. Valid types include: Payment, OfferCreate, +TrustSet, and many others.

    +
    +
    +
    + +
    TxnSignature?: string

    The signature that verifies this transaction as originating from the account it says it is from.

    -
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • Account
  • +
  • AccountTxnID
  • +
  • Destination
  • +
  • DestinationTag
  • +
  • Fee
  • +
  • Flags
  • +
  • LastLedgerSequence
  • +
  • Memos
  • +
  • NetworkID
  • +
  • Sequence
  • +
  • Signers
  • +
  • SigningPubKey
  • +
  • SourceTag
  • +
  • TicketSequence
  • +
  • TransactionType
  • +
  • TxnSignature
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/AccountInfoAccountFlags.html b/docs/interfaces/AccountInfoAccountFlags.html new file mode 100644 index 0000000000..c7eedb5158 --- /dev/null +++ b/docs/interfaces/AccountInfoAccountFlags.html @@ -0,0 +1,506 @@ +AccountInfoAccountFlags | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface AccountInfoAccountFlags

    +
    +

    Hierarchy

    +
      +
    • AccountInfoAccountFlags
    +
    +
    +
    + +
    +
    +

    Properties

    +
    + +
    allowTrustLineClawback: boolean
    +

    This address can claw back issued IOUs. Once enabled, cannot be disabled.

    +
    +
    +
    + +
    defaultRipple: boolean
    +

    Enable rippling on this address's trust lines by default. Required for issuing addresses; discouraged for others.

    +
    +
    +
    + +
    depositAuth: boolean
    +

    This account can only receive funds from transactions it sends, and from preauthorized accounts. +(It has DepositAuth enabled.)

    +
    +
    +
    + +
    disableMasterKey: boolean
    +

    Disallows use of the master key to sign transactions for this account.

    +
    +
    +
    + +
    disallowIncomingCheck?: boolean
    +

    Disallow incoming Checks from other accounts.

    +
    +
    +
    + +
    disallowIncomingNFTokenOffer?: boolean
    +

    Disallow incoming NFTOffers from other accounts. Part of the DisallowIncoming amendment.

    +
    +
    +
    + +
    disallowIncomingPayChan?: boolean
    +

    Disallow incoming PayChannels from other accounts. Part of the DisallowIncoming amendment.

    +
    +
    +
    + +
    disallowIncomingTrustline?: boolean
    +

    Disallow incoming Trustlines from other accounts. Part of the DisallowIncoming amendment.

    +
    +
    +
    + +
    disallowIncomingXRP: boolean
    +

    Client applications should not send XRP to this account. Not enforced by rippled.

    +
    +
    +
    + +
    globalFreeze: boolean
    +

    All assets issued by this address are frozen.

    +
    +
    +
    + +
    noFreeze: boolean
    +

    This address cannot freeze trust lines connected to it. Once enabled, cannot be disabled.

    +
    +
    +
    + +
    passwordSpent: boolean
    +

    The account has used its free SetRegularKey transaction.

    +
    +
    +
    + +
    requireAuthorization: boolean
    +

    This account must individually approve other users for those users to hold this account's issued currencies.

    +
    +
    +
    + +
    requireDestinationTag: boolean
    +

    Requires incoming payments to specify a Destination Tag.

    +
    +
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/AccountInfoRequest.html b/docs/interfaces/AccountInfoRequest.html index 1b153b8e60..84bd44946b 100644 --- a/docs/interfaces/AccountInfoRequest.html +++ b/docs/interfaces/AccountInfoRequest.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -AccountInfoRequest | xrpl
    +AccountInfoRequest | xrpl
    -
    +
    • xrpl
    • @@ -24,16 +24,18 @@

      Interface AccountInfoRequest

    The account_info command retrieves information about an account, its activity, and its XRP balance. All information retrieved is relative to a -particular version of the ledger. Returns an AccountInfoResponse.

    -
    +particular version of the ledger. Returns an AccountInfoResponse.

    +
    +

    Hierarchy

      -
    • BaseRequest +
    • BaseRequest
    • +
    • LookupByLedgerRequest
      • AccountInfoRequest
    +
  • Defined in packages/xrpl/src/models/methods/accountInfo.ts:12
  • @@ -41,93 +43,106 @@

    Properties

    -
    - -
    account: string
    +
    + +
    account: string

    A unique identifier for the account, most commonly the account's address.

    -
    +
    -
    - -
    api_version?: number
    +
  • Defined in packages/xrpl/src/models/methods/accountInfo.ts:15
  • +
    + +
    api_version?: number

    The API version to use. If omitted, use version 1.

    -
    -
    - -
    command: "account_info"
    +
    + +
    command: "account_info"
    +

    The name of the API method.

    +
    +
    -
    - -
    id?: string | number
    +
  • Defined in packages/xrpl/src/models/methods/accountInfo.ts:13
  • +
    + +
    id?: string | number

    A unique value to identify this request. The response to this request uses the same id field. This way, even if responses arrive out of order, you know which request prompted which response.

    -
    -
    - -
    ledger_hash?: string
    +
  • Defined in packages/xrpl/src/models/methods/baseMethod.ts:12
  • +
    + +
    ledger_hash?: string

    A 20-byte hex string for the ledger version to use.

    -
    -
    - -
    ledger_index?: LedgerIndex
    -

    The ledger index of the ledger to use, or a shortcut string to choose a -ledger automatically.

    -
    +
    + +
    ledger_index?: LedgerIndex
    +

    The ledger index of the ledger to use, or a shortcut string.

    +
    +
    -
    - -
    queue?: boolean
    +
  • Defined in packages/xrpl/src/models/methods/baseMethod.ts:23
  • +
    + +
    queue?: boolean

    Whether to get info about this account's queued transactions. Can only be used when querying for the data from the current open ledger. Not available from servers in Reporting Mode.

    -
    -
    - -
    signer_lists?: boolean
    +
  • Defined in packages/xrpl/src/models/methods/accountInfo.ts:21
  • +
    + +
    signer_lists?: boolean

    Request SignerList objects associated with this account.

    -
    -
    - -
    strict?: boolean
    +
  • Defined in packages/xrpl/src/models/methods/accountInfo.ts:25
  • +
    + +
    strict?: boolean

    If true, then the account field only accepts a public key or XRP Ledger address. Otherwise, account can be a secret or passphrase (not recommended). The default is false.

    -
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • account
  • +
  • api_version
  • +
  • command
  • +
  • id
  • +
  • ledger_hash
  • +
  • ledger_index
  • +
  • queue
  • +
  • signer_lists
  • +
  • strict
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/AccountInfoResponse.html b/docs/interfaces/AccountInfoResponse.html index 56a4af42f3..1e146c04a8 100644 --- a/docs/interfaces/AccountInfoResponse.html +++ b/docs/interfaces/AccountInfoResponse.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -AccountInfoResponse | xrpl
    +AccountInfoResponse | xrpl
    -
    +

    Interface AccountInfoResponse

    -

    Response expected from an AccountInfoRequest.

    -
    +

    Response expected from an AccountInfoRequest.

    +
    +

    Hierarchy

    +
  • Defined in packages/xrpl/src/models/methods/accountInfo.ts:141
  • @@ -39,107 +40,116 @@

    Properties

    -
    - -
    api_version?: number
    +
    + +
    result: {
        account_data: AccountRoot & {
            signer_lists?: SignerList[];
        };
        account_flags?: AccountInfoAccountFlags;
        ledger_current_index?: number;
        ledger_index?: number;
        queue_data?: AccountQueueData;
        validated?: boolean;
    }

    Type declaration

    • -
      account_data: AccountRoot
      +
      account_data: AccountRoot & {
          signer_lists?: SignerList[];
      }

      The AccountRoot ledger object with this account's information, as stored -in the ledger.

      -
    • +in the ledger. +If requested, also includes Array of SignerList ledger objects +associated with this account for Multi-Signing. Since an account can own +at most one SignerList, this array must have exactly one member if it is +present.

      +
    +
  • -
    Optional ledger_current_index?: number
    +
    Optional account_flags?: AccountInfoAccountFlags
    +

    A map of account flags parsed out. This will only be available for rippled nodes 1.11.0 and higher.

    +
    +
  • +
  • +
    Optional ledger_current_index?: number

    The ledger index of the current in-progress ledger, which was used when retrieving this information.

    -
  • +
    +
  • -
    Optional ledger_index?: number
    +
    Optional ledger_index?: number

    The ledger index of the ledger version used when retrieving this information. The information does not contain any changes from ledger versions newer than this one.

    -
  • +
    +
  • -
    Optional queue_data?: QueueData
    +
    Optional queue_data?: AccountQueueData

    Information about queued transactions sent by this account. This information describes the state of the local rippled server, which may be different from other servers in the peer-to-peer XRP Ledger network. Some fields may be omitted because the values are calculated "lazily" by the queuing mechanism.

    -
  • -
  • -
    Optional signer_lists?: SignerList[]
    -

    Array of SignerList ledger objects associated with this account for -Multi-Signing. Since an account can own at most one SignerList, this -array must have exactly one member if it is present.

    -
  • + +
  • -
    Optional validated?: boolean
    +
    Optional validated?: boolean

    True if this data is from a validated ledger version; if omitted or set to false, this data is not final.

    -
  • +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • api_version
  • +
  • forwarded
  • +
  • id
  • +
  • result
  • +
  • status
  • +
  • type
  • +
  • warning
  • +
  • warnings
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/AccountLinesRequest.html b/docs/interfaces/AccountLinesRequest.html index cf441d6c90..19deaea724 100644 --- a/docs/interfaces/AccountLinesRequest.html +++ b/docs/interfaces/AccountLinesRequest.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -AccountLinesRequest | xrpl
    +AccountLinesRequest | xrpl
    -
    +
    • xrpl
    • @@ -25,16 +25,18 @@

      Interface AccountLinesRequest

    The account_lines method returns information about an account's trust lines, including balances in all non-XRP currencies and assets. All information retrieved is relative to a particular version of the ledger. Expects an -AccountLinesResponse.

    -
    +AccountLinesResponse.

    +
    +

    Hierarchy

      -
    • BaseRequest +
    • BaseRequest
    • +
    • LookupByLedgerRequest
      • AccountLinesRequest
    +
  • Defined in packages/xrpl/src/models/methods/accountLines.ts:75
  • @@ -42,92 +44,105 @@

    Properties

    -
    - -
    account: string
    +
    + +
    account: string

    A unique identifier for the account, most commonly the account's Address.

    -
    +
    -
    - -
    api_version?: number
    +
  • Defined in packages/xrpl/src/models/methods/accountLines.ts:80
  • +
    + +
    api_version?: number

    The API version to use. If omitted, use version 1.

    -
    -
    - -
    command: "account_lines"
    +
    + +
    command: "account_lines"
    +

    The name of the API method.

    +
    +
    -
    - -
    id?: string | number
    +
  • Defined in packages/xrpl/src/models/methods/accountLines.ts:78
  • +
    + +
    id?: string | number

    A unique value to identify this request. The response to this request uses the same id field. This way, even if responses arrive out of order, you know which request prompted which response.

    -
    -
    - -
    ledger_hash?: string
    +
  • Defined in packages/xrpl/src/models/methods/baseMethod.ts:12
  • +
    + +
    ledger_hash?: string

    A 20-byte hex string for the ledger version to use.

    -
    -
    - -
    ledger_index?: LedgerIndex
    -

    The ledger index of the ledger to use, or a shortcut string to choose a -ledger automatically.

    -
    +
    + +
    ledger_index?: LedgerIndex
    +

    The ledger index of the ledger to use, or a shortcut string.

    +
    +
    -
    - -
    limit?: number
    +
  • Defined in packages/xrpl/src/models/methods/baseMethod.ts:23
  • +
    + +
    limit?: number

    Limit the number of trust lines to retrieve. The server is not required to honor this value. Must be within the inclusive range 10 to 400.

    -
    -
    - -
    marker?: unknown
    +
  • Defined in packages/xrpl/src/models/methods/accountLines.ts:90
  • +
    + +
    marker?: unknown

    Value from a previous paginated response. Resume retrieving data where that response left off.

    -
    -
    - -
    peer?: string
    +
  • Defined in packages/xrpl/src/models/methods/accountLines.ts:95
  • +
    + +
    peer?: string

    The Address of a second account. If provided, show only lines of trust connecting the two accounts.

    -
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • account
  • +
  • api_version
  • +
  • command
  • +
  • id
  • +
  • ledger_hash
  • +
  • ledger_index
  • +
  • limit
  • +
  • marker
  • +
  • peer
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/AccountLinesResponse.html b/docs/interfaces/AccountLinesResponse.html index cec9bbc97d..8a0c306588 100644 --- a/docs/interfaces/AccountLinesResponse.html +++ b/docs/interfaces/AccountLinesResponse.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -AccountLinesResponse | xrpl
    +AccountLinesResponse | xrpl
    -
    +

    Interface AccountLinesResponse

    -

    Response expected from an AccountLinesRequest.

    -
    +

    Response expected from an AccountLinesRequest.

    +
    +

    Hierarchy

    +
  • Defined in packages/xrpl/src/models/methods/accountLines.ts:103
  • @@ -39,103 +40,110 @@

    Properties

    -
    - -
    api_version?: number
    +
    + +
    result: {
        account: string;
        ledger_current_index?: number;
        ledger_hash?: string;
        ledger_index?: number;
        lines: AccountLinesTrustline[];
        marker?: unknown;
    }

    Type declaration

    • -
      account: string
      +
      account: string

      Unique Address of the account this request corresponds to. This is the "perspective account" for purpose of the trust lines.

      -
    • +
    +
  • -
    Optional ledger_current_index?: number
    +
    Optional ledger_current_index?: number

    The ledger index of the current open ledger, which was used when retrieving this information.

    -
  • +
    +
  • -
    Optional ledger_hash?: string
    +
    Optional ledger_hash?: string

    The identifying hash the ledger version that was used when retrieving this data.

    -
  • +
    +
  • -
    Optional ledger_index?: number
    +
    Optional ledger_index?: number

    The ledger index of the ledger version that was used when retrieving this data.

    -
  • + +
  • -
    lines: Trustline[]
    +
    lines: AccountLinesTrustline[]

    Array of trust line objects. If the number of trust lines is large, only returns up to the limit at a time.

    -
  • + +
  • -
    Optional marker?: unknown
    +
    Optional marker?: unknown

    Server-defined value indicating the response is paginated. Pass this to the next call to resume where this call left off. Omitted when there are No additional pages after this one.

    -
  • +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • api_version
  • +
  • forwarded
  • +
  • id
  • +
  • result
  • +
  • status
  • +
  • type
  • +
  • warning
  • +
  • warnings
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/AccountLinesTrustline.html b/docs/interfaces/AccountLinesTrustline.html new file mode 100644 index 0000000000..13ea940003 --- /dev/null +++ b/docs/interfaces/AccountLinesTrustline.html @@ -0,0 +1,514 @@ +AccountLinesTrustline | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface AccountLinesTrustline

    +
    +

    Hierarchy

    +
      +
    • AccountLinesTrustline
    +
    +
    +
    + +
    +
    +

    Properties

    +
    + +
    account: string
    +

    The unique Address of the counterparty to this trust line.

    +
    +
    +
    + +
    authorized?: boolean
    +

    If true, this account has authorized this trust line. The default is false.

    +
    +
    +
    + +
    balance: string
    +

    Representation of the numeric balance currently held against this line. A +positive balance means that the perspective account holds value; a negative +Balance means that the perspective account owes value.

    +
    +
    +
    + +
    currency: string
    +

    A Currency Code identifying what currency this trust line can hold.

    +
    +
    +
    + +
    freeze?: boolean
    +

    If true, this account has frozen this trust line. The default is false.

    +
    +
    +
    + +
    freeze_peer?: boolean
    +

    If true, the peer account has frozen this trust line. The default is +false.

    +
    +
    +
    + +
    limit: string
    +

    The maximum amount of the given currency that this account is willing to +owe the peer account.

    +
    +
    +
    + +
    limit_peer: string
    +

    The maximum amount of currency that the issuer account is willing to owe +the perspective account.

    +
    +
    +
    + +
    no_ripple?: boolean
    +

    If true, this account has enabled the No Ripple flag for this trust line. +If present and false, this account has disabled the No Ripple flag, but, +because the account also has the Default Ripple flag enabled, that is not +considered the default state. If omitted, the account has the No Ripple +flag disabled for this trust line and Default Ripple disabled.

    +
    +
    +
    + +
    no_ripple_peer?: boolean
    +

    If true, the peer account has enabled the No Ripple flag for this trust +line. If present and false, this account has disabled the No Ripple flag, +but, because the account also has the Default Ripple flag enabled, that is +not considered the default state. If omitted, the account has the No Ripple +flag disabled for this trust line and Default Ripple disabled.

    +
    +
    +
    + +
    peer_authorized?: boolean
    +

    If true, the peer account has authorized this trust line. The default is false.

    +
    +
    +
    + +
    quality_in: number
    +

    Rate at which the account values incoming balances on this trust line, as +a ratio of this value per 1 billion units. (For example, a value of 500 +million represents a 0.5:1 ratio.) As a special case, 0 is treated as a +1:1 ratio.

    +
    +
    +
    + +
    quality_out: number
    +

    Rate at which the account values outgoing balances on this trust line, as +a ratio of this value per 1 billion units. (For example, a value of 500 +million represents a 0.5:1 ratio.) As a special case, 0 is treated as a 1:1 +ratio.

    +
    +
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/AccountNFToken.html b/docs/interfaces/AccountNFToken.html new file mode 100644 index 0000000000..9d77e5e77c --- /dev/null +++ b/docs/interfaces/AccountNFToken.html @@ -0,0 +1,411 @@ +AccountNFToken | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface AccountNFToken

    +
    +

    One NFToken that might be returned from an AccountNFTsRequest.

    +
    +
    +
    +

    Hierarchy

    +
      +
    • AccountNFToken
    +
    +
    +
    + +
    +
    +

    Properties

    +
    + +
    Flags: number
    +
    + +
    Issuer: string
    +
    + +
    NFTokenID: string
    +
    + +
    NFTokenTaxon: number
    +
    + +
    URI?: string
    +
    + +
    nft_serial: number
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/AccountNFTsRequest.html b/docs/interfaces/AccountNFTsRequest.html index 6f81076014..52bf1680c9 100644 --- a/docs/interfaces/AccountNFTsRequest.html +++ b/docs/interfaces/AccountNFTsRequest.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -AccountNFTsRequest | xrpl
    +AccountNFTsRequest | xrpl
    -
    +
    • xrpl
    • @@ -24,15 +24,17 @@

      Interface AccountNFTsRequest

    The account_nfts method retrieves all of the NFTs currently owned by the specified account.

    -
    +
    +

    Hierarchy

      -
    • BaseRequest +
    • BaseRequest
    • +
    • LookupByLedgerRequest
      • AccountNFTsRequest
    +
  • Defined in packages/xrpl/src/models/methods/accountNFTs.ts:9
  • @@ -40,66 +42,95 @@

    Properties

    -
    - -
    account: string
    +
    + +
    account: string

    The unique identifier of an account, typically the account's address. The request returns NFTs owned by this account.

    -
    +
    -
    - -
    api_version?: number
    +
  • Defined in packages/xrpl/src/models/methods/accountNFTs.ts:15
  • +
    + +
    api_version?: number

    The API version to use. If omitted, use version 1.

    -
    -
    - -
    command: "account_nfts"
    +
    + +
    command: "account_nfts"
    +

    The name of the API method.

    +
    +
    -
    - -
    id?: string | number
    +
  • Defined in packages/xrpl/src/models/methods/accountNFTs.ts:10
  • +
    + +
    id?: string | number

    A unique value to identify this request. The response to this request uses the same id field. This way, even if responses arrive out of order, you know which request prompted which response.

    -
    -
    - -
    limit?: number
    +
  • Defined in packages/xrpl/src/models/methods/baseMethod.ts:12
  • +
    + +
    ledger_hash?: string
    +

    A 20-byte hex string for the ledger version to use.

    +
    +
    +
    + +
    ledger_index?: LedgerIndex
    +

    The ledger index of the ledger to use, or a shortcut string.

    +
    +
    +
    + +
    limit?: number

    Limit the number of NFTokens to retrieve.

    -
    -
    - -
    marker?: unknown
    +
  • Defined in packages/xrpl/src/models/methods/accountNFTs.ts:19
  • +
    + +
    marker?: unknown

    Value from a previous paginated response. Resume retrieving data where that response left off.

    -
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • account
  • +
  • api_version
  • +
  • command
  • +
  • id
  • +
  • ledger_hash
  • +
  • ledger_index
  • +
  • limit
  • +
  • marker
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/AccountNFTsResponse.html b/docs/interfaces/AccountNFTsResponse.html index 61d3908502..a82f27f5dc 100644 --- a/docs/interfaces/AccountNFTsResponse.html +++ b/docs/interfaces/AccountNFTsResponse.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -AccountNFTsResponse | xrpl
    +AccountNFTsResponse | xrpl
    -
    +

    Interface AccountNFTsResponse

    -

    Response expected from an AccountNFTsRequest.

    -
    +

    Response expected from an AccountNFTsRequest.

    +
    +

    Hierarchy

    +
  • Defined in packages/xrpl/src/models/methods/accountNFTs.ts:46
  • @@ -39,99 +40,106 @@

    Properties

    -
    - -
    api_version?: number
    +
    + +
    result: {
        account: string;
        account_nfts: AccountNFToken[];
        ledger_current_index: number;
        limit?: number;
        marker?: unknown;
        validated: boolean;
    }

    Type declaration

    • -
      account: string
      +
      account: string

      The account requested.

      -
    • +
    +
  • -
    account_nfts: AccountNFToken[]
    +
    account_nfts: AccountNFToken[]

    A list of NFTs owned by the specified account.

    -
  • +
    +
  • -
    ledger_current_index: number
    +
    ledger_current_index: number

    The ledger index of the current open ledger, which was used when retrieving this information.

    -
  • +
    +
  • -
    Optional limit?: number
    +
    Optional limit?: number

    The limit that was used to fulfill this request.

    -
  • + +
  • -
    Optional marker?: unknown
    +
    Optional marker?: unknown

    Server-defined value indicating the response is paginated. Pass this to the next call to resume where this call left off. Omitted when there are No additional pages after this one.

    -
  • + +
  • -
    validated: boolean
    +
    validated: boolean

    If true, this data comes from a validated ledger.

    -
  • +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • api_version
  • +
  • forwarded
  • +
  • id
  • +
  • result
  • +
  • status
  • +
  • type
  • +
  • warning
  • +
  • warnings
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/AccountObjectsRequest.html b/docs/interfaces/AccountObjectsRequest.html index a735a67334..39f30f8308 100644 --- a/docs/interfaces/AccountObjectsRequest.html +++ b/docs/interfaces/AccountObjectsRequest.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -AccountObjectsRequest | xrpl
    +AccountObjectsRequest | xrpl
    -
    +
    • xrpl
    • @@ -25,16 +25,18 @@

      Interface AccountObjectsRequest

    The account_objects command returns the raw ledger format for all objects owned by an account. For a higher-level view of an account's trust lines and balances, see the account_lines method instead. Expects a response in the -form of an AccountObjectsResponse.

    -
    +form of an AccountObjectsResponse.

    +
    +

    Hierarchy

      -
    • BaseRequest +
    • BaseRequest
    • +
    • LookupByLedgerRequest
      • AccountObjectsRequest
    +
  • Defined in packages/xrpl/src/models/methods/accountObjects.ts:18
  • @@ -42,102 +44,114 @@

    Properties

    -
    - -
    account: string
    +
    + +
    account: string

    A unique identifier for the account, most commonly the account's address.

    -
    +
    -
    - -
    api_version?: number
    +
  • Defined in packages/xrpl/src/models/methods/accountObjects.ts:23
  • +
    + +
    api_version?: number

    The API version to use. If omitted, use version 1.

    -
    -
    - -
    command: "account_objects"
    +
    + +
    command: "account_objects"
    +

    The name of the API method.

    +
    +
    -
    - -
    deletion_blockers_only?: boolean
    +
  • Defined in packages/xrpl/src/models/methods/accountObjects.ts:21
  • +
    + +
    deletion_blockers_only?: boolean

    If true, the response only includes objects that would block this account from being deleted. The default is false.

    -
    -
    - -
    id?: string | number
    +
  • Defined in packages/xrpl/src/models/methods/accountObjects.ts:32
  • +
    + +
    id?: string | number

    A unique value to identify this request. The response to this request uses the same id field. This way, even if responses arrive out of order, you know which request prompted which response.

    -
    -
    - -
    ledger_hash?: string
    +
  • Defined in packages/xrpl/src/models/methods/baseMethod.ts:12
  • +
    + +
    ledger_hash?: string

    A 20-byte hex string for the ledger version to use.

    -
    -
    - -
    ledger_index?: LedgerIndex
    -

    The ledger index of the ledger to use, or a shortcut string to choose a -Ledger automatically.

    -
    +
    + +
    ledger_index?: LedgerIndex
    +

    The ledger index of the ledger to use, or a shortcut string.

    +
    +
    -
    - -
    limit?: number
    +
  • Defined in packages/xrpl/src/models/methods/baseMethod.ts:23
  • +
    + +
    limit?: number

    The maximum number of objects to include in the results. Must be within the inclusive range 10 to 400 on non-admin connections. The default is 200.

    -
    -
    - -
    marker?: unknown
    +
  • Defined in packages/xrpl/src/models/methods/accountObjects.ts:37
  • +
    + +
    marker?: unknown

    Value from a previous paginated response. Resume retrieving data where that response left off.

    -
    -
    - -
    type?: AccountObjectType
    -

    If included, filter results to include only this type of ledger object. -The valid types are: Check , DepositPreauth, Escrow, Offer, PayChannel, -SignerList, Ticket, and RippleState (trust line).

    -
    +
    + + +

    If included, filter results to include only this type of ledger object.

    +
    +
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • account
  • +
  • api_version
  • +
  • command
  • +
  • deletion_blockers_only
  • +
  • id
  • +
  • ledger_hash
  • +
  • ledger_index
  • +
  • limit
  • +
  • marker
  • +
  • type
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/AccountObjectsResponse.html b/docs/interfaces/AccountObjectsResponse.html index 48e90775f8..233d1eafe7 100644 --- a/docs/interfaces/AccountObjectsResponse.html +++ b/docs/interfaces/AccountObjectsResponse.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -AccountObjectsResponse | xrpl
    +AccountObjectsResponse | xrpl
    -
    +

    Interface AccountObjectsResponse

    -

    Response expected from an AccountObjectsRequest.

    -
    +

    Response expected from an AccountObjectsRequest.

    +
    +

    Hierarchy

    +
  • Defined in packages/xrpl/src/models/methods/accountObjects.ts:59
  • @@ -39,112 +40,121 @@

    Properties

    -
    - -
    api_version?: number
    +
    + +
    result: {
        account: string;
        account_objects: AccountObject[];
        ledger_current_index?: number;
        ledger_hash?: string;
        ledger_index?: number;
        limit?: number;
        marker?: string;
        validated?: boolean;
    }

    Type declaration

    • -
      account: string
      +
      account: string

      Unique Address of the account this request corresponds to.

      -
    • +
    +
  • -
    account_objects: AccountObject[]
    +
    account_objects: AccountObject[]

    Array of objects owned by this account. Each object is in its raw ledger format.

    -
  • +
    +
  • -
    Optional ledger_current_index?: number
    +
    Optional ledger_current_index?: number

    The ledger index of the current in-progress ledger version, which was used to generate this response.

    -
  • +
    +
  • -
    Optional ledger_hash?: string
    +
    Optional ledger_hash?: string

    The identifying hash of the ledger that was used to generate this response.

    -
  • + +
  • -
    Optional ledger_index?: number
    +
    Optional ledger_index?: number

    The ledger index of the ledger version that was used to generate this response.

    -
  • + +
  • -
    Optional limit?: number
    +
    Optional limit?: number

    The limit that was used in this request, if any.

    -
  • + +
  • -
    Optional marker?: string
    +
    Optional marker?: string

    Server-defined value indicating the response is paginated. Pass this to the next call to resume where this call left off. Omitted when there are no additional pages after this one.

    -
  • + +
  • -
    Optional validated?: boolean
    +
    Optional validated?: boolean

    If included and set to true, the information in this response comes from a validated ledger version. Otherwise, the information is subject to change.

    -
  • +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • api_version
  • +
  • forwarded
  • +
  • id
  • +
  • result
  • +
  • status
  • +
  • type
  • +
  • warning
  • +
  • warnings
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/AccountOffer.html b/docs/interfaces/AccountOffer.html index 22a9ef92dc..0dfe75b67d 100644 --- a/docs/interfaces/AccountOffer.html +++ b/docs/interfaces/AccountOffer.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -AccountOffer | xrpl
    +AccountOffer | xrpl
    -
    +

    Properties

    -
    - -
    expiration?: number
    +
    + +
    expiration?: number

    A time after which this offer is considered unfunded, as the number of seconds since the Ripple Epoch. See also: Offer Expiration.

    -
    +
    -
    - -
    flags: number
    +
  • Defined in packages/xrpl/src/models/methods/accountOffers.ts:60
  • +
    + +
    flags: number

    Options set for this offer entry as bit-flags.

    -
    +
    -
    - -
    quality: string
    +
  • Defined in packages/xrpl/src/models/methods/accountOffers.ts:38
  • +
    + +
    quality: string

    The exchange rate of the Offer, as the ratio of the original taker_pays divided by the original taker_gets. When executing offers, the offer with the most favorable (lowest) quality is consumed first; offers with the same quality are executed from oldest to newest.

    -
    +
    -
    - -
    seq: number
    +
  • Defined in packages/xrpl/src/models/methods/accountOffers.ts:55
  • +
    + +
    seq: number

    Sequence number of the transaction that created this entry.

    -
    -
    - -
    taker_gets: Amount
    +
  • Defined in packages/xrpl/src/models/methods/accountOffers.ts:40
  • +
    + +
    taker_gets: Amount

    The amount the account placing this Offer receives.

    -
    -
    - -
    taker_pays: Amount
    +
  • Defined in packages/xrpl/src/models/methods/accountOffers.ts:44
  • +
    + +
    taker_pays: Amount

    The amount the account placing this Offer pays.

    -
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • expiration
  • +
  • flags
  • +
  • quality
  • +
  • seq
  • +
  • taker_gets
  • +
  • taker_pays
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/AccountOffersRequest.html b/docs/interfaces/AccountOffersRequest.html index ee55741a87..8b209b969d 100644 --- a/docs/interfaces/AccountOffersRequest.html +++ b/docs/interfaces/AccountOffersRequest.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -AccountOffersRequest | xrpl
    +AccountOffersRequest | xrpl
    -
    +
    • xrpl
    • @@ -24,16 +24,18 @@

      Interface AccountOffersRequest

    The account_offers method retrieves a list of offers made by a given account that are outstanding as of a particular ledger version. Expects a response in -the form of a AccountOffersResponse.

    -
    +the form of a AccountOffersResponse.

    +
    +

    Hierarchy

      -
    • BaseRequest +
    • BaseRequest
    • +
    • LookupByLedgerRequest
      • AccountOffersRequest
    +
  • Defined in packages/xrpl/src/models/methods/accountOffers.ts:12
  • @@ -41,93 +43,106 @@

    Properties

    -
    - -
    account: string
    +
    + +
    account: string

    A unique identifier for the account, most commonly the account's Address.

    -
    +
    -
    - -
    api_version?: number
    +
  • Defined in packages/xrpl/src/models/methods/accountOffers.ts:17
  • +
    + +
    api_version?: number

    The API version to use. If omitted, use version 1.

    -
    -
    - -
    command: "account_offers"
    +
    + +
    command: "account_offers"
    +

    The name of the API method.

    +
    +
    -
    - -
    id?: string | number
    +
  • Defined in packages/xrpl/src/models/methods/accountOffers.ts:15
  • +
    + +
    id?: string | number

    A unique value to identify this request. The response to this request uses the same id field. This way, even if responses arrive out of order, you know which request prompted which response.

    -
    -
    - -
    ledger_hash?: string
    -

    A 20-byte hex string identifying the ledger version to use.

    -
    +
    + +
    ledger_hash?: string
    +

    A 20-byte hex string for the ledger version to use.

    +
    +
    -
    - -
    ledger_index?: LedgerIndex
    -

    The ledger index of the ledger to use, or "current", "closed", or -"validated" to select a ledger dynamically.

    -
    +
    + +
    ledger_index?: LedgerIndex
    +

    The ledger index of the ledger to use, or a shortcut string.

    +
    +
    -
    - -
    limit?: number
    +
  • Defined in packages/xrpl/src/models/methods/baseMethod.ts:23
  • +
    + +
    limit?: number

    Limit the number of transactions to retrieve. The server is not required to honor this value. Must be within the inclusive range 10 to 400.

    -
    -
    - -
    marker?: unknown
    +
  • Defined in packages/xrpl/src/models/methods/accountOffers.ts:22
  • +
    + +
    marker?: unknown

    Value from a previous paginated response. Resume retrieving data where that response left off.

    -
    -
    - -
    strict?: boolean
    +
  • Defined in packages/xrpl/src/models/methods/accountOffers.ts:27
  • +
    + +
    strict?: boolean

    If true, then the account field only accepts a public key or XRP Ledger address. Otherwise, account can be a secret or passphrase (not recommended). The default is false.

    -
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • account
  • +
  • api_version
  • +
  • command
  • +
  • id
  • +
  • ledger_hash
  • +
  • ledger_index
  • +
  • limit
  • +
  • marker
  • +
  • strict
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/AccountOffersResponse.html b/docs/interfaces/AccountOffersResponse.html index 1e7e283ee8..41a75740ca 100644 --- a/docs/interfaces/AccountOffersResponse.html +++ b/docs/interfaces/AccountOffersResponse.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -AccountOffersResponse | xrpl
    +AccountOffersResponse | xrpl
    -
    +

    Interface AccountOffersResponse

    -

    Response expected from an AccountOffersRequest.

    -
    +

    Response expected from an AccountOffersRequest.

    +
    +

    Hierarchy

    +
  • Defined in packages/xrpl/src/models/methods/accountOffers.ts:68
  • @@ -39,103 +40,110 @@

    Properties

    -
    - -
    api_version?: number
    +
    + +
    result: {
        account: string;
        ledger_current_index?: number;
        ledger_hash?: string;
        ledger_index?: number;
        marker?: unknown;
        offers?: AccountOffer[];
    }

    Type declaration

    • -
      account: string
      +
      account: string

      Unique Address identifying the account that made the offers.

      -
    • +
    +
  • -
    Optional ledger_current_index?: number
    +
    Optional ledger_current_index?: number

    The ledger index of the current in-progress ledger version, which was used when retrieving this data.

    -
  • +
    +
  • -
    Optional ledger_hash?: string
    +
    Optional ledger_hash?: string

    The identifying hash of the ledger version that was used when retrieving this data.

    -
  • +
    +
  • -
    Optional ledger_index?: number
    +
    Optional ledger_index?: number

    The ledger index of the ledger version that was used when retrieving this data, as requested.

    -
  • + +
  • -
    Optional marker?: unknown
    +
    Optional marker?: unknown

    Server-defined value indicating the response is paginated. Pass this to the next call to resume where this call left off. Omitted when there are no pages of information after this one.

    -
  • + +
  • -
    Optional offers?: AccountOffer[]
    +
    Optional offers?: AccountOffer[]

    Array of objects, where each object represents an offer made by this account that is outstanding as of the requested ledger version. If the number of offers is large, only returns up to limit at a time.

    -
  • +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • api_version
  • +
  • forwarded
  • +
  • id
  • +
  • result
  • +
  • status
  • +
  • type
  • +
  • warning
  • +
  • warnings
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/AccountQueueData.html b/docs/interfaces/AccountQueueData.html new file mode 100644 index 0000000000..e46cd415ef --- /dev/null +++ b/docs/interfaces/AccountQueueData.html @@ -0,0 +1,429 @@ +AccountQueueData | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface AccountQueueData

    +
    +

    Hierarchy

    +
      +
    • AccountQueueData
    +
    +
    +
    + +
    +
    +

    Properties

    +
    + +
    auth_change_queued?: boolean
    +

    Whether a transaction in the queue changes this address's ways of +authorizing transactions. If true, this address can queue no further +transactions until that transaction has been executed or dropped from the +queue.

    +
    +
    +
    + +
    highest_sequence?: number
    +

    The highest Sequence Number among transactions queued by this address.

    +
    +
    +
    + +
    lowest_sequence?: number
    +

    The lowest Sequence Number among transactions queued by this address.

    +
    +
    +
    + +
    max_spend_drops_total?: string
    +

    Integer amount of drops of XRP that could be debited from this address if +every transaction in the queue consumes the maximum amount of XRP possible.

    +
    +
    +
    + +
    transactions?: AccountQueueTransaction[]
    +

    Information about each queued transaction from this address.

    +
    +
    +
    + +
    txn_count: number
    +

    Number of queued transactions from this address.

    +
    +
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/AccountQueueTransaction.html b/docs/interfaces/AccountQueueTransaction.html new file mode 100644 index 0000000000..11a2de3a19 --- /dev/null +++ b/docs/interfaces/AccountQueueTransaction.html @@ -0,0 +1,417 @@ +AccountQueueTransaction | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface AccountQueueTransaction

    +
    +

    Hierarchy

    +
      +
    • AccountQueueTransaction
    +
    +
    +
    + +
    +
    +

    Properties

    +
    + +
    auth_change: boolean
    +

    Whether this transaction changes this address's ways of authorizing +transactions.

    +
    +
    +
    + +
    fee: string
    +

    The Transaction Cost of this transaction, in drops of XRP.

    +
    +
    +
    + +
    fee_level: string
    +

    The transaction cost of this transaction, relative to the minimum cost for +this type of transaction, in fee levels.

    +
    +
    +
    + +
    max_spend_drops: string
    +

    The maximum amount of XRP, in drops, this transaction could send or destroy.

    +
    +
    +
    + +
    seq: number
    +

    The Sequence Number of this transaction.

    +
    +
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/AccountSet.html b/docs/interfaces/AccountSet.html index 43f8d7f95f..fc32d9d996 100644 --- a/docs/interfaces/AccountSet.html +++ b/docs/interfaces/AccountSet.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -AccountSet | xrpl
    +AccountSet | xrpl
    -

    Properties

    -
    - -
    Account: string
    -

    The unique address of the account that initiated the transaction.

    -
    +
    + +
    AccountTxnID?: string

    Hash value identifying another transaction. If provided, this transaction is only valid if the sending account's previously-sent transaction matches the provided hash.

    -
    +
    -
    - -
    ClearFlag?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:249
  • +
    + +
    ClearFlag?: number

    Unique identifier of a flag to disable for this account.

    -
    -
    - -
    Domain?: string
    +
  • Defined in packages/xrpl/src/models/transactions/accountSet.ts:134
  • +
    + +
    Domain?: string

    The domain that owns this account, as a string of hex representing the. ASCII for the domain in lowercase.

    -
    -
    - -
    EmailHash?: string
    +
  • Defined in packages/xrpl/src/models/transactions/accountSet.ts:139
  • +
    + +
    EmailHash?: string

    Hash of an email address to be used for generating an avatar image.

    -
    -
    - -
    Fee?: string
    +
  • Defined in packages/xrpl/src/models/transactions/accountSet.ts:141
  • +
    + +
    Fee?: string

    Integer amount of XRP, in drops, to be destroyed as a cost for distributing this transaction to the network. Some transaction types have different minimum requirements.

    -
    -
    - -
    Flags?: number | AccountSetFlagsInterface
    +
    + +
    Flags?: number | AccountSetFlagsInterface
    +

    Set of bit-flags for this transaction.

    +
    +
    -
    - -
    LastLedgerSequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/accountSet.ts:132
  • +
    + +
    LastLedgerSequence?: number

    Highest ledger index this transaction can appear in. Specifying this field places a strict upper limit on how long the transaction can wait to be validated or rejected.

    -
    -
    - -
    Memos?: Memo[]
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:257
  • +
    + +
    Memos?: Memo[]

    Additional arbitrary information used to identify this transaction.

    -
    -
    - -
    MessageKey?: string
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:261
  • +
    + +
    MessageKey?: string

    Public key for sending encrypted messages to this account.

    -
    -
    - -
    NFTokenMinter?: string
    +
  • Defined in packages/xrpl/src/models/transactions/accountSet.ts:143
  • +
    + +
    NFTokenMinter?: string

    Sets an alternate account that is allowed to mint NFTokens on this account's behalf using NFTokenMint's Issuer field.

    -
    -
    - -
    Sequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/accountSet.ts:162
  • +
    + +
    NetworkID?: number
    +

    The network id of the transaction.

    +
    +
    +
    + +
    Sequence?: number

    The sequence number of the account sending the transaction. A transaction is only valid if the Sequence number is exactly 1 greater than the previous transaction from the same account. The special case 0 means the transaction is using a Ticket instead.

    -
    -
    - - +
  • Defined in packages/xrpl/src/models/transactions/common.ts:243
  • +
    + +

    Integer flag to enable for this account.

    -
    -
    - -
    Signers?: Signer[]
    +
  • Defined in packages/xrpl/src/models/transactions/accountSet.ts:145
  • +
    + +
    Signers?: Signer[]

    Array of objects that represent a multi-signature which authorizes this transaction.

    -
    -
    - -
    SigningPubKey?: string
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:266
  • +
    + +
    SigningPubKey?: string

    Hex representation of the public key that corresponds to the private key used to sign this transaction. If an empty string, indicates a multi-signature is present in the Signers field instead.

    -
    -
    - -
    SourceTag?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:279
  • +
    + +
    SourceTag?: number

    Arbitrary integer used to identify the reason for this payment, or a sender on whose behalf this transaction is made. Conventionally, a refund should specify the initial payment's SourceTag as the refund payment's DestinationTag.

    -
    -
    - -
    TickSize?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:273
  • +
    + +
    TickSize?: number

    Tick size to use for offers involving a currency issued by this address. The exchange rates of those offers is rounded to this many significant digits. Valid values are 3 to 15 inclusive, or 0 to disable.

    -
    -
    - -
    TicketSequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/accountSet.ts:157
  • +
    + +
    TicketSequence?: number

    The sequence number of the ticket to use in place of a Sequence number. If this is provided, Sequence must be 0. Cannot be used with AccountTxnID.

    -
    -
    - -
    TransactionType: "AccountSet"
    +
    + +
    TransactionType: "AccountSet"
    +

    The type of transaction. Valid types include: Payment, OfferCreate, +TrustSet, and many others.

    +
    +
    -
    - -
    TransferRate?: number
    +
  • Defined in packages/xrpl/src/models/transactions/accountSet.ts:131
  • +
    + +
    TransferRate?: number

    The fee to charge when users transfer this account's issued currencies, represented as billionths of a unit. Cannot be more than 2000000000 or less than 1000000000, except for the special case 0 meaning no fee.

    -
    -
    - -
    TxnSignature?: string
    +
  • Defined in packages/xrpl/src/models/transactions/accountSet.ts:151
  • +
    + +
    TxnSignature?: string

    The signature that verifies this transaction as originating from the account it says it is from.

    -
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • Account
  • +
  • AccountTxnID
  • +
  • ClearFlag
  • +
  • Domain
  • +
  • EmailHash
  • +
  • Fee
  • +
  • Flags
  • +
  • LastLedgerSequence
  • +
  • Memos
  • +
  • MessageKey
  • +
  • NFTokenMinter
  • +
  • NetworkID
  • +
  • Sequence
  • +
  • SetFlag
  • +
  • Signers
  • +
  • SigningPubKey
  • +
  • SourceTag
  • +
  • TickSize
  • +
  • TicketSequence
  • +
  • TransactionType
  • +
  • TransferRate
  • +
  • TxnSignature
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/AccountSetFlagsInterface.html b/docs/interfaces/AccountSetFlagsInterface.html index f4c78b7aec..edc8b8f06c 100644 --- a/docs/interfaces/AccountSetFlagsInterface.html +++ b/docs/interfaces/AccountSetFlagsInterface.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -AccountSetFlagsInterface | xrpl
    +AccountSetFlagsInterface | xrpl
    -
    +

    Interface AccountSetFlagsInterface

    -

    Map of flags to boolean values representing AccountSet transaction +

    Map of flags to boolean values representing AccountSet transaction flags.

    - -

    Example

     const accountSetTx: AccountSet = {
    TransactionType: 'AccountSet',
    Account: 'rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn',
    Flags: {
    tfOptionalDestTag: true,
    tfRequireAuth: true
    },
    }

    // Autofill the tx to see how flags actually look compared to the interface usage.
    const autofilledTx = await client.autofill(accountSetTx)
    console.log(autofilledTx)
    // {
    // TransactionType: 'AccountSet',
    // Account: 'rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn',
    // Flags: 393216,
    // Sequence: 1,
    // Fee: '12',
    // LastLedgerSequence: 21971793
    // } -
    +
    +
    +

    Example

     const accountSetTx: AccountSet = {
    TransactionType: 'AccountSet',
    Account: 'rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn',
    Flags: {
    tfOptionalDestTag: true,
    tfRequireAuth: true
    },
    }

    // Autofill the tx to see how flags actually look compared to the interface usage.
    const autofilledTx = await client.autofill(accountSetTx)
    console.log(autofilledTx)
    // {
    // TransactionType: 'AccountSet',
    // Account: 'rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn',
    // Flags: 393216,
    // Sequence: 1,
    // Fee: '12',
    // LastLedgerSequence: 21971793
    // } +

    Hierarchy

    • AccountSetFlagsInterface
    +
  • Defined in packages/xrpl/src/models/transactions/accountSet.ts:115
  • @@ -41,49 +42,50 @@

    Properties

    -
    - -
    tfAllowXRP?: boolean
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • tfAllowXRP
  • +
  • tfDisallowXRP
  • +
  • tfOptionalAuth
  • +
  • tfOptionalDestTag
  • +
  • tfRequireAuth
  • +
  • tfRequireDestTag
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/AccountTxRequest.html b/docs/interfaces/AccountTxRequest.html index ac2d417b4b..4c9e0fbb6d 100644 --- a/docs/interfaces/AccountTxRequest.html +++ b/docs/interfaces/AccountTxRequest.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -AccountTxRequest | xrpl
    +AccountTxRequest | xrpl
    -
    +
    • xrpl
    • @@ -23,16 +23,18 @@

      Interface AccountTxRequest

    The account_tx method retrieves a list of transactions that involved the -specified account. Expects a response in the form of a AccountTxResponse.

    -
    +specified account. Expects a response in the form of a AccountTxResponse.

    +
    +

    Hierarchy

      -
    • BaseRequest +
    • BaseRequest
    • +
    • LookupByLedgerRequest
      • AccountTxRequest
    +
  • Defined in packages/xrpl/src/models/methods/accountTx.ts:13
  • @@ -40,121 +42,138 @@

    Properties

    -
    - -
    account: string
    +
    + +
    account: string

    A unique identifier for the account, most commonly the account's address.

    -
    +
    -
    - -
    api_version?: number
    +
  • Defined in packages/xrpl/src/models/methods/accountTx.ts:16
  • +
    + +
    api_version?: number

    The API version to use. If omitted, use version 1.

    -
    -
    - -
    binary?: boolean
    +
  • Defined in packages/xrpl/src/models/methods/baseMethod.ts:16
  • +
    + +
    binary?: boolean

    If true, return transactions as hex strings instead of JSON. The default is false.

    -
    -
    - -
    command: "account_tx"
    +
    + +
    command: "account_tx"
    +

    The name of the API method.

    +
    +
    -
    - -
    forward?: boolean
    +
  • Defined in packages/xrpl/src/models/methods/accountTx.ts:14
  • +
    + +
    forward?: boolean

    If true, returns values indexed with the oldest ledger first. Otherwise, the results are indexed with the newest ledger first.

    -
    -
    - -
    id?: string | number
    +
  • Defined in packages/xrpl/src/models/methods/accountTx.ts:38
  • +
    + +
    id?: string | number

    A unique value to identify this request. The response to this request uses the same id field. This way, even if responses arrive out of order, you know which request prompted which response.

    -
    -
    - -
    ledger_hash?: string
    -

    Use to look for transactions from a single ledger only.

    -
    +
    + +
    ledger_hash?: string
    +

    A 20-byte hex string for the ledger version to use.

    +
    +
    -
    - -
    ledger_index?: LedgerIndex
    -

    Use to look for transactions from a single ledger only.

    -
    +
    + +
    ledger_index?: LedgerIndex
    +

    The ledger index of the ledger to use, or a shortcut string.

    +
    +
    -
    - -
    ledger_index_max?: number
    +
  • Defined in packages/xrpl/src/models/methods/baseMethod.ts:23
  • +
    + +
    ledger_index_max?: number

    Use to specify the most recent ledger to include transactions from. A value of -1 instructs the server to use the most recent validated ledger version available.

    -
    -
    - -
    ledger_index_min?: number
    +
  • Defined in packages/xrpl/src/models/methods/accountTx.ts:28
  • +
    + +
    ledger_index_min?: number

    Use to specify the earliest ledger to include transactions from. A value of -1 instructs the server to use the earliest validated ledger version available.

    -
    -
    - -
    limit?: number
    +
  • Defined in packages/xrpl/src/models/methods/accountTx.ts:22
  • +
    + +
    limit?: number

    Default varies. Limit the number of transactions to retrieve. The server is not required to honor this value.

    -
    -
    - -
    marker?: unknown
    +
  • Defined in packages/xrpl/src/models/methods/accountTx.ts:43
  • +
    + +
    marker?: unknown

    Value from a previous paginated response. Resume retrieving data where that response left off. This value is stable even if there is a change in the server's range of available ledgers.

    -
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • account
  • +
  • api_version
  • +
  • binary
  • +
  • command
  • +
  • forward
  • +
  • id
  • +
  • ledger_hash
  • +
  • ledger_index
  • +
  • ledger_index_max
  • +
  • ledger_index_min
  • +
  • limit
  • +
  • marker
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/AccountTxResponse.html b/docs/interfaces/AccountTxResponse.html index c21b47d95b..a659528e14 100644 --- a/docs/interfaces/AccountTxResponse.html +++ b/docs/interfaces/AccountTxResponse.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -AccountTxResponse | xrpl
    +AccountTxResponse | xrpl
    -
    +

    Interface AccountTxResponse

    -

    Expected response from an AccountTxRequest.

    -
    +

    Expected response from an AccountTxRequest.

    +
    +

    Hierarchy

    +
  • Defined in packages/xrpl/src/models/methods/accountTx.ts:76
  • @@ -39,106 +40,114 @@

    Properties

    -
    - -
    api_version?: number
    +
    + +
    result: {
        account: string;
        ledger_index_max: number;
        ledger_index_min: number;
        limit: number;
        marker?: unknown;
        transactions: AccountTxTransaction[];
        validated?: boolean;
    }

    Type declaration

    • -
      account: string
      +
      account: string

      Unique Address identifying the related account.

      -
    • +
    +
  • -
    ledger_index_max: number
    +
    ledger_index_max: number

    The ledger index of the most recent ledger actually searched for transactions.

    -
  • +
    +
  • -
    ledger_index_min: number
    +
    ledger_index_min: number

    The ledger index of the earliest ledger actually searched for transactions.

    -
  • +
    +
  • -
    limit: number
    +
    limit: number

    The limit value used in the request.

    -
  • + +
  • -
    Optional marker?: unknown
    +
    Optional marker?: unknown

    Server-defined value indicating the response is paginated. Pass this to the next call to resume where this call left off.

    -
  • + +
  • -
    transactions: AccountTransaction[]
    +
    transactions: AccountTxTransaction[]

    Array of transactions matching the request's criteria, as explained below.

    -
  • + +
  • -
    Optional validated?: boolean
    +
    Optional validated?: boolean

    If included and set to true, the information in this response comes from a validated ledger version. Otherwise, the information is subject to change.

    -
  • +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • api_version
  • +
  • forwarded
  • +
  • id
  • +
  • result
  • +
  • status
  • +
  • type
  • +
  • warning
  • +
  • warnings
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/AccountTxTransaction.html b/docs/interfaces/AccountTxTransaction.html new file mode 100644 index 0000000000..b0e860752e --- /dev/null +++ b/docs/interfaces/AccountTxTransaction.html @@ -0,0 +1,417 @@ +AccountTxTransaction | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface AccountTxTransaction

    +
    +

    Hierarchy

    +
      +
    • AccountTxTransaction
    +
    +
    +
    + +
    +
    +

    Properties

    +
    +
    +

    Properties

    +
    + +
    ledger_index: number
    +

    The ledger index of the ledger version that included this transaction.

    +
    +
    +
    + +
    meta: string | TransactionMetadata
    +

    If binary is True, then this is a hex string of the transaction metadata. +Otherwise, the transaction metadata is included in JSON format.

    +
    +
    +
    + +
    tx?: Object
    +

    JSON object defining the transaction.

    +
    +
    +
    + +
    tx_blob?: string
    +

    Unique hashed String representing the transaction.

    +
    +
    +
    + +
    validated: boolean
    +

    Whether or not the transaction is included in a validated ledger. Any +transaction not yet in a validated ledger is subject to change.

    +
    +
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/AuthAccount.html b/docs/interfaces/AuthAccount.html new file mode 100644 index 0000000000..83dd7dcf68 --- /dev/null +++ b/docs/interfaces/AuthAccount.html @@ -0,0 +1,377 @@ +AuthAccount | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface AuthAccount

    +
    +

    Hierarchy

    +
      +
    • AuthAccount
    +
    +
    +
    + +
    +
    +

    Properties

    +
    +
    +

    Properties

    +
    + +
    AuthAccount: {
        Account: string;
    }
    +
    +

    Type declaration

    +
      +
    • +
      Account: string
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/Balance.html b/docs/interfaces/Balance.html new file mode 100644 index 0000000000..5707a54b61 --- /dev/null +++ b/docs/interfaces/Balance.html @@ -0,0 +1,386 @@ +Balance | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface Balance

    +
    +

    Hierarchy

    +
      +
    • Balance
    +
    +
    +
    + +
    +
    +

    Properties

    +
    +
    +

    Properties

    +
    + +
    currency: string
    +
    + +
    issuer?: string
    +
    + +
    value: string
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/BaseRequest.html b/docs/interfaces/BaseRequest.html new file mode 100644 index 0000000000..953721e40a --- /dev/null +++ b/docs/interfaces/BaseRequest.html @@ -0,0 +1,438 @@ +BaseRequest | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface BaseRequest

    +
    +

    Hierarchy

    +
    +
    +

    Indexable

    +
    [x: string]: unknown
    +
    +
    +
    + +
    +
    +

    Properties

    +
    +
    +

    Properties

    +
    + +
    api_version?: number
    +

    The API version to use. If omitted, use version 1.

    +
    +
    +
    + +
    command: string
    +

    The name of the API method.

    +
    +
    +
    + +
    id?: string | number
    +

    A unique value to identify this request. The response to this request uses +the same id field. This way, even if responses arrive out of order, you +know which request prompted which response.

    +
    +
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/BaseResponse.html b/docs/interfaces/BaseResponse.html new file mode 100644 index 0000000000..b5ec401830 --- /dev/null +++ b/docs/interfaces/BaseResponse.html @@ -0,0 +1,460 @@ +BaseResponse | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface BaseResponse

    +
    +

    Hierarchy

    +
    +
    +
    +
    + +
    +
    +

    Properties

    +
    + +
    api_version?: number
    +
    + +
    forwarded?: boolean
    +
    + +
    id: string | number
    +
    + +
    result: unknown
    +
    + +
    status?: string
    +
    + +
    type: string
    +
    + +
    warning?: "load"
    +
    + +
    warnings?: ResponseWarning[]
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/BaseTransaction.html b/docs/interfaces/BaseTransaction.html new file mode 100644 index 0000000000..fcf14fbb71 --- /dev/null +++ b/docs/interfaces/BaseTransaction.html @@ -0,0 +1,573 @@ +BaseTransaction | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface BaseTransaction

    +
    +

    Every transaction has the same set of common fields.

    +
    +
    +
    +

    Hierarchy

    +
    +
    +
    +
    + +
    +
    +

    Properties

    +
    + +
    Account: string
    +

    The unique address of the transaction sender.

    +
    +
    +
    + +
    AccountTxnID?: string
    +

    Hash value identifying another transaction. If provided, this transaction +is only valid if the sending account's previously-sent transaction matches +the provided hash.

    +
    +
    +
    + +
    Fee?: string
    +

    Integer amount of XRP, in drops, to be destroyed as a cost for +distributing this transaction to the network. Some transaction types have +different minimum requirements.

    +
    +
    +
    + +
    Flags?: number | GlobalFlags
    +

    Set of bit-flags for this transaction.

    +
    +
    +
    + +
    LastLedgerSequence?: number
    +

    Highest ledger index this transaction can appear in. Specifying this field +places a strict upper limit on how long the transaction can wait to be +validated or rejected.

    +
    +
    +
    + +
    Memos?: Memo[]
    +

    Additional arbitrary information used to identify this transaction.

    +
    +
    +
    + +
    NetworkID?: number
    +

    The network id of the transaction.

    +
    +
    +
    + +
    Sequence?: number
    +

    The sequence number of the account sending the transaction. A transaction +is only valid if the Sequence number is exactly 1 greater than the previous +transaction from the same account. The special case 0 means the transaction +is using a Ticket instead.

    +
    +
    +
    + +
    Signers?: Signer[]
    +

    Array of objects that represent a multi-signature which authorizes this +transaction.

    +
    +
    +
    + +
    SigningPubKey?: string
    +

    Hex representation of the public key that corresponds to the private key +used to sign this transaction. If an empty string, indicates a +multi-signature is present in the Signers field instead.

    +
    +
    +
    + +
    SourceTag?: number
    +

    Arbitrary integer used to identify the reason for this payment, or a sender +on whose behalf this transaction is made. Conventionally, a refund should +specify the initial payment's SourceTag as the refund payment's +DestinationTag.

    +
    +
    +
    + +
    TicketSequence?: number
    +

    The sequence number of the ticket to use in place of a Sequence number. If +this is provided, Sequence must be 0. Cannot be used with AccountTxnID.

    +
    +
    +
    + +
    TransactionType: string
    +

    The type of transaction. Valid types include: Payment, OfferCreate, +TrustSet, and many others.

    +
    +
    +
    + +
    TxnSignature?: string
    +

    The signature that verifies this transaction as originating from the +account it says it is from.

    +
    +
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/BookOffer.html b/docs/interfaces/BookOffer.html index cf7c0ee182..cc2e6dab7a 100644 --- a/docs/interfaces/BookOffer.html +++ b/docs/interfaces/BookOffer.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -BookOffer | xrpl
    +BookOffer | xrpl
    - +
    -
    - -
    BookDirectory: string
    +
  • Defined in packages/xrpl/src/models/ledger/Offer.ts:10
  • +
    + +
    BookDirectory: string

    The ID of the Offer Directory that links to this Offer.

    -
    +
    -
    - -
    BookNode: string
    +
  • Defined in packages/xrpl/src/models/ledger/Offer.ts:24
  • +
    + +
    BookNode: string

    A hint indicating which page of the Offer Directory links to this object, in case the directory consists of multiple pages.

    -
    -
    - -
    Expiration?: number
    +
  • Defined in packages/xrpl/src/models/ledger/Offer.ts:29
  • +
    + +
    Expiration?: number

    The time this Offer expires, in seconds since the Ripple Epoch.

    -
    -
    - -
    Flags: number
    +
  • Defined in packages/xrpl/src/models/ledger/Offer.ts:36
  • +
    + +
    Flags: number

    A bit-map of boolean flags enabled for this Offer.

    -
    -
    - -
    LedgerEntryType: "Offer"
    +
    + +
    LedgerEntryType: "Offer"
    -
    - -
    OwnerNode: string
    +
  • Defined in packages/xrpl/src/models/ledger/Offer.ts:6
  • +
    + +
    OwnerNode: string

    A hint indicating which page of the Owner Directory links to this object, in case the directory consists of multiple pages.

    -
    -
    - -
    PreviousTxnID: string
    +
  • Defined in packages/xrpl/src/models/ledger/Offer.ts:34
  • +
    + +
    PreviousTxnID: string

    The identifying hash of the transaction that most recently modified this object.

    -
    -
    - -
    PreviousTxnLgrSeq: number
    +
  • Defined in packages/xrpl/src/models/ledger/BaseLedgerEntry.ts:10
  • +
    + +
    PreviousTxnLgrSeq: number

    The index of the ledger that contains the transaction that most recently modified this object.

    -
    -
    - -
    Sequence: number
    +
  • Defined in packages/xrpl/src/models/ledger/BaseLedgerEntry.ts:15
  • +
    + +
    Sequence: number

    The Sequence value of the OfferCreate transaction that created this Offer object. Used in combination with the Account to identify this Offer.

    -
    -
    - -
    TakerGets: Amount
    +
  • Defined in packages/xrpl/src/models/ledger/Offer.ts:15
  • +
    + +
    TakerGets: Amount

    The remaining amount and type of currency being provided by the Offer creator.

    -
    -
    - -
    TakerPays: Amount
    +
  • Defined in packages/xrpl/src/models/ledger/Offer.ts:22
  • +
    + +
    TakerPays: Amount

    The remaining amount and type of currency requested by the Offer creator.

    -
    -
    - -
    index: string
    +
    + +
    index: string
    -
    - -
    owner_funds?: string
    +
  • Defined in packages/xrpl/src/models/ledger/BaseLedgerEntry.ts:2
  • +
    + +
    owner_funds?: string

    Amount of the TakerGets currency the side placing the offer has available to be traded. (XRP is represented as drops; any other currency is represented as a decimal value.) If a trader has multiple offers in the same book, only the highest-ranked offer includes this field.

    -
    -
    - -
    quality?: string
    +
  • Defined in packages/xrpl/src/models/methods/bookOffers.ts:51
  • +
    + +
    quality?: string

    The exchange rate, as the ratio taker_pays divided by taker_gets. For fairness, offers that have the same quality are automatically taken first-in, first-out.

    -
    -
    - -
    taker_gets_funded?: Amount
    +
  • Defined in packages/xrpl/src/models/methods/bookOffers.ts:67
  • +
    + +
    taker_gets_funded?: Amount

    The maximum amount of currency that the taker can get, given the funding status of the offer.

    -
    -
    - -
    taker_pays_funded?: Amount
    +
  • Defined in packages/xrpl/src/models/methods/bookOffers.ts:56
  • +
    + +
    taker_pays_funded?: Amount

    The maximum amount of currency that the taker would pay, given the funding status of the offer.

    -
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • Account
  • +
  • BookDirectory
  • +
  • BookNode
  • +
  • Expiration
  • +
  • Flags
  • +
  • LedgerEntryType
  • +
  • OwnerNode
  • +
  • PreviousTxnID
  • +
  • PreviousTxnLgrSeq
  • +
  • Sequence
  • +
  • TakerGets
  • +
  • TakerPays
  • +
  • index
  • +
  • owner_funds
  • +
  • quality
  • +
  • taker_gets_funded
  • +
  • taker_pays_funded
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/BookOfferCurrency.html b/docs/interfaces/BookOfferCurrency.html new file mode 100644 index 0000000000..5a839048b6 --- /dev/null +++ b/docs/interfaces/BookOfferCurrency.html @@ -0,0 +1,379 @@ +BookOfferCurrency | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface BookOfferCurrency

    +
    +

    Hierarchy

    +
      +
    • BookOfferCurrency
    +
    +
    +
    + +
    +
    +

    Properties

    +
    +
    +

    Properties

    +
    + +
    currency: string
    +
    + +
    issuer?: string
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/BookOffersRequest.html b/docs/interfaces/BookOffersRequest.html index 53847215d8..840302ae47 100644 --- a/docs/interfaces/BookOffersRequest.html +++ b/docs/interfaces/BookOffersRequest.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -BookOffersRequest | xrpl
    +BookOffersRequest | xrpl
    -
    +
    • xrpl
    • @@ -23,16 +23,18 @@

      Interface BookOffersRequest

    The book_offers method retrieves a list of offers, also known as the order. -Book, between two currencies. Returns an BookOffersResponse.

    -
    +Book, between two currencies. Returns an BookOffersResponse.

    +
    +

    Hierarchy

      -
    • BaseRequest +
    • BaseRequest
    • +
    • LookupByLedgerRequest
      • BookOffersRequest
    +
  • Defined in packages/xrpl/src/models/methods/bookOffers.ts:17
  • @@ -40,96 +42,109 @@

    Properties

    -
    - -
    api_version?: number
    +
    + +
    api_version?: number

    The API version to use. If omitted, use version 1.

    -
    +
    -
    - -
    command: "book_offers"
    +
    + +
    command: "book_offers"
    +

    The name of the API method.

    +
    +
    -
    - -
    id?: string | number
    +
  • Defined in packages/xrpl/src/models/methods/bookOffers.ts:18
  • +
    + +
    id?: string | number

    A unique value to identify this request. The response to this request uses the same id field. This way, even if responses arrive out of order, you know which request prompted which response.

    -
    -
    - -
    ledger_hash?: string
    +
  • Defined in packages/xrpl/src/models/methods/baseMethod.ts:12
  • +
    + +
    ledger_hash?: string

    A 20-byte hex string for the ledger version to use.

    -
    -
    - -
    ledger_index?: LedgerIndex
    -

    The ledger index of the ledger to use, or a shortcut string to choose a -ledger automatically.

    -
    +
    + +
    ledger_index?: LedgerIndex
    +

    The ledger index of the ledger to use, or a shortcut string.

    +
    +
    -
    - -
    limit?: number
    +
  • Defined in packages/xrpl/src/models/methods/baseMethod.ts:23
  • +
    + +
    limit?: number

    If provided, the server does not provide more than this many offers in the results. The total number of results returned may be fewer than the limit, because the server omits unfunded offers.

    -
    -
    - -
    taker?: string
    +
  • Defined in packages/xrpl/src/models/methods/bookOffers.ts:24
  • +
    + +
    taker?: string

    The Address of an account to use as a perspective. Unfunded offers placed by this account are always included in the response.

    -
    -
    - -
    taker_gets: TakerAmount
    +
  • Defined in packages/xrpl/src/models/methods/bookOffers.ts:29
  • +
    + +
    taker_gets: BookOfferCurrency

    Specification of which currency the account taking the offer would receive, as an object with currency and issuer fields (omit issuer for XRP), like currency amounts.

    -
    -
    - -
    taker_pays: TakerAmount
    +
  • Defined in packages/xrpl/src/models/methods/bookOffers.ts:35
  • +
    + +
    taker_pays: BookOfferCurrency

    Specification of which currency the account taking the offer would pay, as an object with currency and issuer fields (omit issuer for XRP), like currency amounts.

    -
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • api_version
  • +
  • command
  • +
  • id
  • +
  • ledger_hash
  • +
  • ledger_index
  • +
  • limit
  • +
  • taker
  • +
  • taker_gets
  • +
  • taker_pays
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/BookOffersResponse.html b/docs/interfaces/BookOffersResponse.html index 2259cc4d0a..f8fc576b15 100644 --- a/docs/interfaces/BookOffersResponse.html +++ b/docs/interfaces/BookOffersResponse.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -BookOffersResponse | xrpl
    +BookOffersResponse | xrpl
    -
    +

    Interface BookOffersResponse

    -

    Expected response from a BookOffersRequest.

    -
    +

    Expected response from a BookOffersRequest.

    +
    +

    Hierarchy

    +
  • Defined in packages/xrpl/src/models/methods/bookOffers.ts:75
  • @@ -39,93 +40,98 @@

    Properties

    -
    - -
    api_version?: number
    +
    + +
    result: {
        ledger_current_index?: number;
        ledger_hash?: string;
        ledger_index?: number;
        offers: BookOffer[];
        validated?: boolean;
    }

    Type declaration

    • -
      Optional ledger_current_index?: number
      +
      Optional ledger_current_index?: number

      The ledger index of the current in-progress ledger version, which was used to retrieve this information.

      -
    • +
    +
  • -
    Optional ledger_hash?: string
    +
    Optional ledger_hash?: string

    The identifying hash of the ledger version that was used when retrieving this data, as requested.

    -
  • +
    +
  • -
    Optional ledger_index?: number
    +
    Optional ledger_index?: number

    The ledger index of the ledger version that was used when retrieving this data, as requested.

    -
  • +
    +
  • -
    offers: BookOffer[]
    +
    offers: BookOffer[]

    Array of offer objects, each of which has the fields of an Offer object.

    -
  • + +
  • -
    Optional validated?: boolean
  • +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • api_version
  • +
  • forwarded
  • +
  • id
  • +
  • result
  • +
  • status
  • +
  • type
  • +
  • warning
  • +
  • warnings
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/Channel.html b/docs/interfaces/Channel.html new file mode 100644 index 0000000000..dc2a9340d5 --- /dev/null +++ b/docs/interfaces/Channel.html @@ -0,0 +1,449 @@ +Channel | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface Channel

    +
    +

    Hierarchy

    +
      +
    • Channel
    +
    +
    +
    + +
    +
    +

    Properties

    +
    + +
    account: string
    +
    + +
    amount: string
    +
    + +
    balance: string
    +
    + +
    cancel_after?: number
    +
    + +
    channel_id: string
    +
    + +
    destination_account: string
    +
    + +
    destination_tag?: number
    +
    + +
    expiration?: number
    +
    + +
    public_key?: string
    +
    + +
    public_key_hex?: string
    +
    + +
    settle_delay: number
    +
    + +
    source_tab?: number
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/ChannelVerifyRequest.html b/docs/interfaces/ChannelVerifyRequest.html index 0dbdb6857c..d044a99ca1 100644 --- a/docs/interfaces/ChannelVerifyRequest.html +++ b/docs/interfaces/ChannelVerifyRequest.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -ChannelVerifyRequest | xrpl
    +ChannelVerifyRequest | xrpl
    -
    +
    • xrpl
    • @@ -24,16 +24,17 @@

      Interface ChannelVerifyRequest

    The channel_verify method checks the validity of a signature that can be used to redeem a specific amount of XRP from a payment channel. Expects a -response in the form of a ChannelVerifyResponse.

    -
    +response in the form of a ChannelVerifyResponse.

    +
    +

    Hierarchy

    +
  • Defined in packages/xrpl/src/models/methods/channelVerify.ts:10
  • @@ -41,74 +42,84 @@

    Properties

    -
    - -
    amount: string
    +
    + +
    amount: string

    The amount of XRP, in drops, the provided signature authorizes.

    -
    +
    -
    - -
    api_version?: number
    +
  • Defined in packages/xrpl/src/models/methods/channelVerify.ts:13
  • +
    + +
    api_version?: number

    The API version to use. If omitted, use version 1.

    -
    -
    - -
    channel_id: string
    +
  • Defined in packages/xrpl/src/models/methods/baseMethod.ts:16
  • +
    + +
    channel_id: string

    The Channel ID of the channel that provides the XRP. This is a 64-character hexadecimal string.

    -
    -
    - -
    command: "channel_verify"
    +
    + +
    command: "channel_verify"
    +

    The name of the API method.

    +
    +
    -
    - -
    id?: string | number
    +
  • Defined in packages/xrpl/src/models/methods/channelVerify.ts:11
  • +
    + +
    id?: string | number

    A unique value to identify this request. The response to this request uses the same id field. This way, even if responses arrive out of order, you know which request prompted which response.

    -
    -
    - -
    public_key: string
    +
  • Defined in packages/xrpl/src/models/methods/baseMethod.ts:12
  • +
    + +
    public_key: string

    The public key of the channel and the key pair that was used to create the signature, in hexadecimal or the XRP Ledger's base58 format.

    -
    -
    - -
    signature: string
    +
  • Defined in packages/xrpl/src/models/methods/channelVerify.ts:23
  • +
    + +
    signature: string

    The signature to verify, in hexadecimal.

    -
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • amount
  • +
  • api_version
  • +
  • channel_id
  • +
  • command
  • +
  • id
  • +
  • public_key
  • +
  • signature
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/ChannelVerifyResponse.html b/docs/interfaces/ChannelVerifyResponse.html index e039b968d3..7051ede29d 100644 --- a/docs/interfaces/ChannelVerifyResponse.html +++ b/docs/interfaces/ChannelVerifyResponse.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -ChannelVerifyResponse | xrpl
    +ChannelVerifyResponse | xrpl
    -
    +

    Interface ChannelVerifyResponse

    -

    Response expected from an ChannelVerifyRequest.

    -
    +

    Response expected from an ChannelVerifyRequest.

    +
    +

    Hierarchy

    +
  • Defined in packages/xrpl/src/models/methods/channelVerify.ts:33
  • @@ -39,77 +40,79 @@

    Properties

    -
    - -
    api_version?: number
    +
    + +
    result: {
        signature_verified: boolean;
    }

    Type declaration

    • -
      signature_verified: boolean
      +
      signature_verified: boolean

      If true, the signature is valid for the stated amount, channel, and public key.

      -
    +
    -
    - -
    status?: string
    +
    + +
    status?: string
    -
    - -
    type: string
    +
    + +
    type: string
    -
    - -
    warning?: "load"
    +
    + +
    warning?: "load"
    -
    - -
    warnings?: Warning[]
    +
    + +
    warnings?: ResponseWarning[]
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • api_version
  • +
  • forwarded
  • +
  • id
  • +
  • result
  • +
  • status
  • +
  • type
  • +
  • warning
  • +
  • warnings
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/CheckCancel.html b/docs/interfaces/CheckCancel.html index ea5ddf45a6..92a97ae8fc 100644 --- a/docs/interfaces/CheckCancel.html +++ b/docs/interfaces/CheckCancel.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -CheckCancel | xrpl
    +CheckCancel | xrpl
    -
    +
    • xrpl
    • @@ -26,15 +26,16 @@

      Interface CheckCancel

    money. The source or the destination of the check can cancel a Check at any time using this transaction type. If the Check has expired, any address can cancel it.

    -
    +
    +

    Hierarchy

    +
  • Defined in packages/xrpl/src/models/transactions/checkCancel.ts:13
  • @@ -42,154 +43,182 @@

    Properties

    -
    - -
    Account: string
    -

    The unique address of the account that initiated the transaction.

    -
    -
    - -
    AccountTxnID?: string
    +
    + +
    Account: string
    +

    The unique address of the transaction sender.

    +
    +
    +
    + +
    AccountTxnID?: string

    Hash value identifying another transaction. If provided, this transaction is only valid if the sending account's previously-sent transaction matches the provided hash.

    -
    -
    - -
    CheckID: string
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:249
  • +
    + +
    CheckID: string

    The ID of the Check ledger object to cancel as a 64-character hexadecimal string.

    -
    -
    - -
    Fee?: string
    +
  • Defined in packages/xrpl/src/models/transactions/checkCancel.ts:19
  • +
    + +
    Fee?: string

    Integer amount of XRP, in drops, to be destroyed as a cost for distributing this transaction to the network. Some transaction types have different minimum requirements.

    -
    -
    - -
    Flags?: number | GlobalFlags
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:236
  • +
    + +
    Flags?: number | GlobalFlags

    Set of bit-flags for this transaction.

    -
    -
    - -
    LastLedgerSequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:251
  • +
    + +
    LastLedgerSequence?: number

    Highest ledger index this transaction can appear in. Specifying this field places a strict upper limit on how long the transaction can wait to be validated or rejected.

    -
    -
    - -
    Memos?: Memo[]
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:257
  • +
    + +
    Memos?: Memo[]

    Additional arbitrary information used to identify this transaction.

    -
    +
    + +
    NetworkID?: number
    +

    The network id of the transaction.

    +
    +
    -
    - -
    Sequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:293
  • +
    + +
    Sequence?: number

    The sequence number of the account sending the transaction. A transaction is only valid if the Sequence number is exactly 1 greater than the previous transaction from the same account. The special case 0 means the transaction is using a Ticket instead.

    -
    -
    - -
    Signers?: Signer[]
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:243
  • +
    + +
    Signers?: Signer[]

    Array of objects that represent a multi-signature which authorizes this transaction.

    -
    -
    - -
    SigningPubKey?: string
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:266
  • +
    + +
    SigningPubKey?: string

    Hex representation of the public key that corresponds to the private key used to sign this transaction. If an empty string, indicates a multi-signature is present in the Signers field instead.

    -
    -
    - -
    SourceTag?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:279
  • +
    + +
    SourceTag?: number

    Arbitrary integer used to identify the reason for this payment, or a sender on whose behalf this transaction is made. Conventionally, a refund should specify the initial payment's SourceTag as the refund payment's DestinationTag.

    -
    -
    - -
    TicketSequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:273
  • +
    + +
    TicketSequence?: number

    The sequence number of the ticket to use in place of a Sequence number. If this is provided, Sequence must be 0. Cannot be used with AccountTxnID.

    -
    -
    - -
    TransactionType: "CheckCancel"
    -
    - -
    TxnSignature?: string
    + +
    +
    + +
    TransactionType: "CheckCancel"
    +

    The type of transaction. Valid types include: Payment, OfferCreate, +TrustSet, and many others.

    +
    +
    +
    + +
    TxnSignature?: string

    The signature that verifies this transaction as originating from the account it says it is from.

    -
    -
    +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • Account
  • +
  • AccountTxnID
  • +
  • CheckID
  • +
  • Fee
  • +
  • Flags
  • +
  • LastLedgerSequence
  • +
  • Memos
  • +
  • NetworkID
  • +
  • Sequence
  • +
  • Signers
  • +
  • SigningPubKey
  • +
  • SourceTag
  • +
  • TicketSequence
  • +
  • TransactionType
  • +
  • TxnSignature
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/CheckCash.html b/docs/interfaces/CheckCash.html index bd7872fe1a..cee83e87ac 100644 --- a/docs/interfaces/CheckCash.html +++ b/docs/interfaces/CheckCash.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -CheckCash | xrpl
    +CheckCash | xrpl
    -
    +
    • xrpl
    • @@ -25,15 +25,16 @@

      Interface CheckCash

    Attempts to redeem a Check object in the ledger to receive up to the amount authorized by the corresponding CheckCreate transaction. Only the Destination address of a Check can cash it with a CheckCash transaction.

    -
    +
    +

    Hierarchy

    +
  • Defined in packages/xrpl/src/models/transactions/checkCash.ts:13
  • @@ -41,174 +42,204 @@

    Properties

    -
    - -
    Account: string
    -

    The unique address of the account that initiated the transaction.

    -
    -
    - -
    AccountTxnID?: string
    +
    + +
    Account: string
    +

    The unique address of the transaction sender.

    +
    +
    +
    + +
    AccountTxnID?: string

    Hash value identifying another transaction. If provided, this transaction is only valid if the sending account's previously-sent transaction matches the provided hash.

    -
    +
    -
    - -
    Amount?: Amount
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:249
  • +
    + +
    Amount?: Amount

    Redeem the Check for exactly this amount, if possible. The currency must match that of the SendMax of the corresponding CheckCreate transaction. You. must provide either this field or DeliverMin.

    -
    -
    - -
    CheckID: string
    +
  • Defined in packages/xrpl/src/models/transactions/checkCash.ts:25
  • +
    + +
    CheckID: string

    The ID of the Check ledger object to cash as a 64-character hexadecimal string.

    -
    -
    - -
    DeliverMin?: Amount
    +
  • Defined in packages/xrpl/src/models/transactions/checkCash.ts:19
  • +
    + +
    DeliverMin?: Amount

    Redeem the Check for at least this amount and for as much as possible. The currency must match that of the SendMax of the corresponding CheckCreate. transaction. You must provide either this field or Amount.

    -
    -
    - -
    Fee?: string
    +
  • Defined in packages/xrpl/src/models/transactions/checkCash.ts:31
  • +
    + +
    Fee?: string

    Integer amount of XRP, in drops, to be destroyed as a cost for distributing this transaction to the network. Some transaction types have different minimum requirements.

    -
    -
    - -
    Flags?: number | GlobalFlags
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:236
  • +
    + +
    Flags?: number | GlobalFlags

    Set of bit-flags for this transaction.

    -
    -
    - -
    LastLedgerSequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:251
  • +
    + +
    LastLedgerSequence?: number

    Highest ledger index this transaction can appear in. Specifying this field places a strict upper limit on how long the transaction can wait to be validated or rejected.

    -
    -
    - -
    Memos?: Memo[]
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:257
  • +
    + +
    Memos?: Memo[]

    Additional arbitrary information used to identify this transaction.

    -
    +
    + +
    NetworkID?: number
    +

    The network id of the transaction.

    +
    +
    -
    - -
    Sequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:293
  • +
    + +
    Sequence?: number

    The sequence number of the account sending the transaction. A transaction is only valid if the Sequence number is exactly 1 greater than the previous transaction from the same account. The special case 0 means the transaction is using a Ticket instead.

    -
    -
    - -
    Signers?: Signer[]
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:243
  • +
    + +
    Signers?: Signer[]

    Array of objects that represent a multi-signature which authorizes this transaction.

    -
    -
    - -
    SigningPubKey?: string
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:266
  • +
    + +
    SigningPubKey?: string

    Hex representation of the public key that corresponds to the private key used to sign this transaction. If an empty string, indicates a multi-signature is present in the Signers field instead.

    -
    -
    - -
    SourceTag?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:279
  • +
    + +
    SourceTag?: number

    Arbitrary integer used to identify the reason for this payment, or a sender on whose behalf this transaction is made. Conventionally, a refund should specify the initial payment's SourceTag as the refund payment's DestinationTag.

    -
    -
    - -
    TicketSequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:273
  • +
    + +
    TicketSequence?: number

    The sequence number of the ticket to use in place of a Sequence number. If this is provided, Sequence must be 0. Cannot be used with AccountTxnID.

    -
    -
    - -
    TransactionType: "CheckCash"
    -
    - -
    TxnSignature?: string
    + +
    +
    + +
    TransactionType: "CheckCash"
    +

    The type of transaction. Valid types include: Payment, OfferCreate, +TrustSet, and many others.

    +
    +
    +
    + +
    TxnSignature?: string

    The signature that verifies this transaction as originating from the account it says it is from.

    -
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • Account
  • +
  • AccountTxnID
  • +
  • Amount
  • +
  • CheckID
  • +
  • DeliverMin
  • +
  • Fee
  • +
  • Flags
  • +
  • LastLedgerSequence
  • +
  • Memos
  • +
  • NetworkID
  • +
  • Sequence
  • +
  • Signers
  • +
  • SigningPubKey
  • +
  • SourceTag
  • +
  • TicketSequence
  • +
  • TransactionType
  • +
  • TxnSignature
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/CheckCreate.html b/docs/interfaces/CheckCreate.html index 7ea1bbb436..bcb6212b2a 100644 --- a/docs/interfaces/CheckCreate.html +++ b/docs/interfaces/CheckCreate.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -CheckCreate | xrpl
    +CheckCreate | xrpl
    -
    +
    • xrpl
    • @@ -25,15 +25,16 @@

      Interface CheckCreate

    Create a Check object in the ledger, which is a deferred payment that can be cashed by its intended destination. The sender of this transaction is the sender of the Check.

    -
    +
    +

    Hierarchy

    +
  • Defined in packages/xrpl/src/models/transactions/checkCreate.ts:22
  • @@ -41,192 +42,224 @@

    Properties

    -
    - -
    Account: string
    -

    The unique address of the account that initiated the transaction.

    -
    +
    + +
    AccountTxnID?: string

    Hash value identifying another transaction. If provided, this transaction is only valid if the sending account's previously-sent transaction matches the provided hash.

    -
    +
    -
    - -
    Destination: string
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:249
  • +
    + +
    Destination: string

    The unique address of the account that can cash the Check.

    -
    -
    - -
    DestinationTag?: number
    +
  • Defined in packages/xrpl/src/models/transactions/checkCreate.ts:25
  • +
    + +
    DestinationTag?: number

    Arbitrary tag that identifies the reason for the Check, or a hosted. recipient to pay.

    -
    -
    - -
    Expiration?: number
    +
  • Defined in packages/xrpl/src/models/transactions/checkCreate.ts:38
  • +
    + +
    Expiration?: number

    Time after which the Check is no longer valid, in seconds since the Ripple. Epoch.

    -
    -
    - -
    Fee?: string
    +
  • Defined in packages/xrpl/src/models/transactions/checkCreate.ts:43
  • +
    + +
    Fee?: string

    Integer amount of XRP, in drops, to be destroyed as a cost for distributing this transaction to the network. Some transaction types have different minimum requirements.

    -
    -
    - -
    Flags?: number | GlobalFlags
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:236
  • +
    + +
    Flags?: number | GlobalFlags

    Set of bit-flags for this transaction.

    -
    -
    - -
    InvoiceID?: string
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:251
  • +
    + +
    InvoiceID?: string

    Arbitrary 256-bit hash representing a specific reason or identifier for. this Check.

    -
    -
    - -
    LastLedgerSequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/checkCreate.ts:48
  • +
    + +
    LastLedgerSequence?: number

    Highest ledger index this transaction can appear in. Specifying this field places a strict upper limit on how long the transaction can wait to be validated or rejected.

    -
    -
    - -
    Memos?: Memo[]
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:257
  • +
    + +
    Memos?: Memo[]

    Additional arbitrary information used to identify this transaction.

    -
    -
    - -
    SendMax: Amount
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:261
  • +
    + +
    NetworkID?: number
    +

    The network id of the transaction.

    +
    +
    +
    + +
    SendMax: Amount

    Maximum amount of source currency the Check is allowed to debit the sender, including transfer fees on non-XRP currencies. The Check can only credit the destination with the same currency (from the same issuer, for non-XRP currencies). For non-XRP amounts, the nested field names MUST be. lower-case.

    -
    -
    - -
    Sequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/checkCreate.ts:33
  • +
    + +
    Sequence?: number

    The sequence number of the account sending the transaction. A transaction is only valid if the Sequence number is exactly 1 greater than the previous transaction from the same account. The special case 0 means the transaction is using a Ticket instead.

    -
    -
    - -
    Signers?: Signer[]
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:243
  • +
    + +
    Signers?: Signer[]

    Array of objects that represent a multi-signature which authorizes this transaction.

    -
    -
    - -
    SigningPubKey?: string
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:266
  • +
    + +
    SigningPubKey?: string

    Hex representation of the public key that corresponds to the private key used to sign this transaction. If an empty string, indicates a multi-signature is present in the Signers field instead.

    -
    -
    - -
    SourceTag?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:279
  • +
    + +
    SourceTag?: number

    Arbitrary integer used to identify the reason for this payment, or a sender on whose behalf this transaction is made. Conventionally, a refund should specify the initial payment's SourceTag as the refund payment's DestinationTag.

    -
    -
    - -
    TicketSequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:273
  • +
    + +
    TicketSequence?: number

    The sequence number of the ticket to use in place of a Sequence number. If this is provided, Sequence must be 0. Cannot be used with AccountTxnID.

    -
    -
    - -
    TransactionType: "CheckCreate"
    +
    + +
    TransactionType: "CheckCreate"
    +

    The type of transaction. Valid types include: Payment, OfferCreate, +TrustSet, and many others.

    +
    +
    -
    - -
    TxnSignature?: string
    +
  • Defined in packages/xrpl/src/models/transactions/checkCreate.ts:23
  • +
    + +
    TxnSignature?: string

    The signature that verifies this transaction as originating from the account it says it is from.

    -
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • Account
  • +
  • AccountTxnID
  • +
  • Destination
  • +
  • DestinationTag
  • +
  • Expiration
  • +
  • Fee
  • +
  • Flags
  • +
  • InvoiceID
  • +
  • LastLedgerSequence
  • +
  • Memos
  • +
  • NetworkID
  • +
  • SendMax
  • +
  • Sequence
  • +
  • Signers
  • +
  • SigningPubKey
  • +
  • SourceTag
  • +
  • TicketSequence
  • +
  • TransactionType
  • +
  • TxnSignature
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/Clawback.html b/docs/interfaces/Clawback.html new file mode 100644 index 0000000000..fdfca2bdf0 --- /dev/null +++ b/docs/interfaces/Clawback.html @@ -0,0 +1,557 @@ +Clawback | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface Clawback

    +
    +

    The Clawback transaction is used by the token issuer to claw back +issued tokens from a holder.

    +
    +
    +
    +

    Hierarchy

    +
    +
    +
    +
    + +
    +
    +

    Properties

    +
    + +
    Account: string
    +

    Indicates the AccountID that submitted this transaction. The account MUST +be the issuer of the currency.

    +
    +
    +
    + +
    AccountTxnID?: string
    +

    Hash value identifying another transaction. If provided, this transaction +is only valid if the sending account's previously-sent transaction matches +the provided hash.

    +
    +
    +
    + + +

    The amount of currency to deliver, and it must be non-XRP. The nested field +names MUST be lower-case. The issuer field MUST be the holder's address, +whom to be clawed back.

    +
    +
    +
    + +
    Fee?: string
    +

    Integer amount of XRP, in drops, to be destroyed as a cost for +distributing this transaction to the network. Some transaction types have +different minimum requirements.

    +
    +
    +
    + +
    Flags?: number | GlobalFlags
    +

    Set of bit-flags for this transaction.

    +
    +
    +
    + +
    LastLedgerSequence?: number
    +

    Highest ledger index this transaction can appear in. Specifying this field +places a strict upper limit on how long the transaction can wait to be +validated or rejected.

    +
    +
    +
    + +
    Memos?: Memo[]
    +

    Additional arbitrary information used to identify this transaction.

    +
    +
    +
    + +
    NetworkID?: number
    +

    The network id of the transaction.

    +
    +
    +
    + +
    Sequence?: number
    +

    The sequence number of the account sending the transaction. A transaction +is only valid if the Sequence number is exactly 1 greater than the previous +transaction from the same account. The special case 0 means the transaction +is using a Ticket instead.

    +
    +
    +
    + +
    Signers?: Signer[]
    +

    Array of objects that represent a multi-signature which authorizes this +transaction.

    +
    +
    +
    + +
    SigningPubKey?: string
    +

    Hex representation of the public key that corresponds to the private key +used to sign this transaction. If an empty string, indicates a +multi-signature is present in the Signers field instead.

    +
    +
    +
    + +
    SourceTag?: number
    +

    Arbitrary integer used to identify the reason for this payment, or a sender +on whose behalf this transaction is made. Conventionally, a refund should +specify the initial payment's SourceTag as the refund payment's +DestinationTag.

    +
    +
    +
    + +
    TicketSequence?: number
    +

    The sequence number of the ticket to use in place of a Sequence number. If +this is provided, Sequence must be 0. Cannot be used with AccountTxnID.

    +
    +
    +
    + +
    TransactionType: "Clawback"
    +

    The type of transaction. Valid types include: Payment, OfferCreate, +TrustSet, and many others.

    +
    +
    +
    + +
    TxnSignature?: string
    +

    The signature that verifies this transaction as originating from the +account it says it is from.

    +
    +
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/ClientOptions.html b/docs/interfaces/ClientOptions.html index 9f99eb3926..0bea24918f 100644 --- a/docs/interfaces/ClientOptions.html +++ b/docs/interfaces/ClientOptions.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -ClientOptions | xrpl
    +ClientOptions | xrpl
    -
    +
    • xrpl
    • @@ -24,11 +24,11 @@

      Interface ClientOptions

    Hierarchy

      -
    • ConnectionUserOptions +
    • ConnectionUserOptions
      • ClientOptions
    +
  • Defined in packages/xrpl/src/client/index.ts:90
  • @@ -36,107 +36,88 @@

    Properties

    -
    - -
    authorization?: string
    +
    + +
    headers?: {
        [key: string]: string;
    }

    Type declaration

    • -
      [key: string]: string
    -
    - -
    key?: string
    -
    - -
    maxFeeXRP?: string
    -
    - -
    passphrase?: string
    +
    + +
    maxFeeXRP?: string
    -
    - -
    proxy?: string
    -
    - -
    proxyAuthorization?: string
    -
    - -
    timeout?: number
    +
    + +
    timeout?: number
    -
    - -
    trace?: boolean | ((id: string, message: string) => void)
    +
    + +
    trace?: boolean | ((id, message) => void)
    +
    +

    Type declaration

    +
      +
    • +
        +
      • (id, message): void
      • +
      • +
        +

        Parameters

        +
          +
        • +
          id: string
        • +
        • +
          message: string
        +

        Returns void

    -
    - -
    trustedCertificates?: string[]
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • agent
  • +
  • authorization
  • +
  • connectionTimeout
  • +
  • feeCushion
  • +
  • headers
  • +
  • maxFeeXRP
  • +
  • timeout
  • +
  • trace
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/ConsensusStream.html b/docs/interfaces/ConsensusStream.html index f2f400c7d0..2b5ae11c50 100644 --- a/docs/interfaces/ConsensusStream.html +++ b/docs/interfaces/ConsensusStream.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -ConsensusStream | xrpl
    +ConsensusStream | xrpl
    -
    +
    • xrpl
    • @@ -25,15 +25,16 @@

      Interface ConsensusStream

    The consensus stream sends consensusPhase messages when the consensus process changes phase. The message contains the new phase of consensus the server is in.

    -
    +
    +

    Hierarchy

      -
    • BaseStream +
    • BaseStream
      • ConsensusStream
    +
  • Defined in packages/xrpl/src/models/methods/subscribe.ts:378
  • @@ -41,29 +42,31 @@

    Properties

    -
    - -
    consensus: "open" | "establish" | "accepted"
    +
    + +
    consensus: "open" | "establish" | "accepted"

    The new consensus phase the server is in. Possible values are open, establish, and accepted.

    -
    +
    -
    - -
    type: "consensusPhase"
    +
    + +
    type: "consensusPhase"
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • consensus
  • +
  • type
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/CreatedNode.html b/docs/interfaces/CreatedNode.html new file mode 100644 index 0000000000..09ac56a173 --- /dev/null +++ b/docs/interfaces/CreatedNode.html @@ -0,0 +1,384 @@ +CreatedNode | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface CreatedNode

    +
    +

    Hierarchy

    +
      +
    • CreatedNode
    +
    +
    +
    + +
    +
    +

    Properties

    +
    +
    +

    Properties

    +
    + +
    CreatedNode: {
        LedgerEntryType: string;
        LedgerIndex: string;
        NewFields: {
            [field: string]: unknown;
        };
    }
    +
    +

    Type declaration

    +
      +
    • +
      LedgerEntryType: string
    • +
    • +
      LedgerIndex: string
    • +
    • +
      NewFields: {
          [field: string]: unknown;
      }
      +
        +
      • +
        [field: string]: unknown
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/DIDDelete.html b/docs/interfaces/DIDDelete.html new file mode 100644 index 0000000000..bd3b2b81ce --- /dev/null +++ b/docs/interfaces/DIDDelete.html @@ -0,0 +1,539 @@ +DIDDelete | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface DIDDelete

    +
    +

    Hierarchy

    +
    +
    +
    +
    + +
    +
    +

    Properties

    +
    + +
    Account: string
    +

    The unique address of the transaction sender.

    +
    +
    +
    + +
    AccountTxnID?: string
    +

    Hash value identifying another transaction. If provided, this transaction +is only valid if the sending account's previously-sent transaction matches +the provided hash.

    +
    +
    +
    + +
    Fee?: string
    +

    Integer amount of XRP, in drops, to be destroyed as a cost for +distributing this transaction to the network. Some transaction types have +different minimum requirements.

    +
    +
    +
    + +
    Flags?: number | GlobalFlags
    +

    Set of bit-flags for this transaction.

    +
    +
    +
    + +
    LastLedgerSequence?: number
    +

    Highest ledger index this transaction can appear in. Specifying this field +places a strict upper limit on how long the transaction can wait to be +validated or rejected.

    +
    +
    +
    + +
    Memos?: Memo[]
    +

    Additional arbitrary information used to identify this transaction.

    +
    +
    +
    + +
    NetworkID?: number
    +

    The network id of the transaction.

    +
    +
    +
    + +
    Sequence?: number
    +

    The sequence number of the account sending the transaction. A transaction +is only valid if the Sequence number is exactly 1 greater than the previous +transaction from the same account. The special case 0 means the transaction +is using a Ticket instead.

    +
    +
    +
    + +
    Signers?: Signer[]
    +

    Array of objects that represent a multi-signature which authorizes this +transaction.

    +
    +
    +
    + +
    SigningPubKey?: string
    +

    Hex representation of the public key that corresponds to the private key +used to sign this transaction. If an empty string, indicates a +multi-signature is present in the Signers field instead.

    +
    +
    +
    + +
    SourceTag?: number
    +

    Arbitrary integer used to identify the reason for this payment, or a sender +on whose behalf this transaction is made. Conventionally, a refund should +specify the initial payment's SourceTag as the refund payment's +DestinationTag.

    +
    +
    +
    + +
    TicketSequence?: number
    +

    The sequence number of the ticket to use in place of a Sequence number. If +this is provided, Sequence must be 0. Cannot be used with AccountTxnID.

    +
    +
    +
    + +
    TransactionType: "DIDDelete"
    +

    The type of transaction. Valid types include: Payment, OfferCreate, +TrustSet, and many others.

    +
    +
    +
    + +
    TxnSignature?: string
    +

    The signature that verifies this transaction as originating from the +account it says it is from.

    +
    +
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/DIDSet.html b/docs/interfaces/DIDSet.html new file mode 100644 index 0000000000..28c748f16c --- /dev/null +++ b/docs/interfaces/DIDSet.html @@ -0,0 +1,560 @@ +DIDSet | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface DIDSet

    +
    +

    Hierarchy

    +
    +
    +
    +
    + +
    +
    +

    Properties

    +
    + +
    Account: string
    +

    The unique address of the transaction sender.

    +
    +
    +
    + +
    AccountTxnID?: string
    +

    Hash value identifying another transaction. If provided, this transaction +is only valid if the sending account's previously-sent transaction matches +the provided hash.

    +
    +
    +
    + +
    DIDDocument?: string
    +
    + +
    Data?: string
    +
    + +
    Fee?: string
    +

    Integer amount of XRP, in drops, to be destroyed as a cost for +distributing this transaction to the network. Some transaction types have +different minimum requirements.

    +
    +
    +
    + +
    Flags?: number | GlobalFlags
    +

    Set of bit-flags for this transaction.

    +
    +
    +
    + +
    LastLedgerSequence?: number
    +

    Highest ledger index this transaction can appear in. Specifying this field +places a strict upper limit on how long the transaction can wait to be +validated or rejected.

    +
    +
    +
    + +
    Memos?: Memo[]
    +

    Additional arbitrary information used to identify this transaction.

    +
    +
    +
    + +
    NetworkID?: number
    +

    The network id of the transaction.

    +
    +
    +
    + +
    Sequence?: number
    +

    The sequence number of the account sending the transaction. A transaction +is only valid if the Sequence number is exactly 1 greater than the previous +transaction from the same account. The special case 0 means the transaction +is using a Ticket instead.

    +
    +
    +
    + +
    Signers?: Signer[]
    +

    Array of objects that represent a multi-signature which authorizes this +transaction.

    +
    +
    +
    + +
    SigningPubKey?: string
    +

    Hex representation of the public key that corresponds to the private key +used to sign this transaction. If an empty string, indicates a +multi-signature is present in the Signers field instead.

    +
    +
    +
    + +
    SourceTag?: number
    +

    Arbitrary integer used to identify the reason for this payment, or a sender +on whose behalf this transaction is made. Conventionally, a refund should +specify the initial payment's SourceTag as the refund payment's +DestinationTag.

    +
    +
    +
    + +
    TicketSequence?: number
    +

    The sequence number of the ticket to use in place of a Sequence number. If +this is provided, Sequence must be 0. Cannot be used with AccountTxnID.

    +
    +
    +
    + +
    TransactionType: "DIDSet"
    +

    The type of transaction. Valid types include: Payment, OfferCreate, +TrustSet, and many others.

    +
    +
    +
    + +
    TxnSignature?: string
    +

    The signature that verifies this transaction as originating from the +account it says it is from.

    +
    +
    +
    + +
    URI?: string
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/DeletedNode.html b/docs/interfaces/DeletedNode.html new file mode 100644 index 0000000000..763292a3fc --- /dev/null +++ b/docs/interfaces/DeletedNode.html @@ -0,0 +1,384 @@ +DeletedNode | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface DeletedNode

    +
    +

    Hierarchy

    +
      +
    • DeletedNode
    +
    +
    +
    + +
    +
    +

    Properties

    +
    +
    +

    Properties

    +
    + +
    DeletedNode: {
        FinalFields: {
            [field: string]: unknown;
        };
        LedgerEntryType: string;
        LedgerIndex: string;
    }
    +
    +

    Type declaration

    +
      +
    • +
      FinalFields: {
          [field: string]: unknown;
      }
      +
        +
      • +
        [field: string]: unknown
    • +
    • +
      LedgerEntryType: string
    • +
    • +
      LedgerIndex: string
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/DepositAuthorizedRequest.html b/docs/interfaces/DepositAuthorizedRequest.html index c3282fae10..0c3bc3799d 100644 --- a/docs/interfaces/DepositAuthorizedRequest.html +++ b/docs/interfaces/DepositAuthorizedRequest.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -DepositAuthorizedRequest | xrpl
    +DepositAuthorizedRequest | xrpl
    -
    +
    • xrpl
    • @@ -23,16 +23,18 @@

      Interface DepositAuthorizedRequest

    The deposit_authorized command indicates whether one account is authorized to -send payments directly to another. Expects a response in the form of a DepositAuthorizedResponse.

    -
    +send payments directly to another. Expects a response in the form of a DepositAuthorizedResponse.

    +
    +

    Hierarchy

      -
    • BaseRequest +
    • BaseRequest
    • +
    • LookupByLedgerRequest
      • DepositAuthorizedRequest
    +
  • Defined in packages/xrpl/src/models/methods/depositAuthorized.ts:10
  • @@ -40,73 +42,84 @@

    Properties

    -
    - -
    api_version?: number
    +
    + +
    api_version?: number

    The API version to use. If omitted, use version 1.

    -
    +
    -
    - -
    command: "deposit_authorized"
    +
    + +
    command: "deposit_authorized"
    +

    The name of the API method.

    +
    +
    -
    - -
    destination_account: string
    +
  • Defined in packages/xrpl/src/models/methods/depositAuthorized.ts:13
  • +
    + +
    destination_account: string

    The recipient of a possible payment.

    -
    -
    - -
    id?: string | number
    +
  • Defined in packages/xrpl/src/models/methods/depositAuthorized.ts:17
  • +
    + +
    id?: string | number

    A unique value to identify this request. The response to this request uses the same id field. This way, even if responses arrive out of order, you know which request prompted which response.

    -
    -
    - -
    ledger_hash?: string
    +
  • Defined in packages/xrpl/src/models/methods/baseMethod.ts:12
  • +
    + +
    ledger_hash?: string

    A 20-byte hex string for the ledger version to use.

    -
    -
    - -
    ledger_index?: LedgerIndex
    -

    The ledger index of the ledger to use, or a shortcut string to choose a -ledger automatically.

    -
    +
    + +
    ledger_index?: LedgerIndex
    +

    The ledger index of the ledger to use, or a shortcut string.

    +
    +
    -
    - -
    source_account: string
    +
  • Defined in packages/xrpl/src/models/methods/baseMethod.ts:23
  • +
    + +
    source_account: string

    The sender of a possible payment.

    -
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • api_version
  • +
  • command
  • +
  • destination_account
  • +
  • id
  • +
  • ledger_hash
  • +
  • ledger_index
  • +
  • source_account
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/DepositAuthorizedResponse.html b/docs/interfaces/DepositAuthorizedResponse.html index f4e1febb78..672a717440 100644 --- a/docs/interfaces/DepositAuthorizedResponse.html +++ b/docs/interfaces/DepositAuthorizedResponse.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -DepositAuthorizedResponse | xrpl
    +DepositAuthorizedResponse | xrpl
    -
    +

    Interface DepositAuthorizedResponse

    -

    Expected response from a DepositAuthorizedRequest.

    -
    +

    Expected response from a DepositAuthorizedRequest.

    +
    +

    Hierarchy

    +
  • Defined in packages/xrpl/src/models/methods/depositAuthorized.ts:25
  • @@ -39,106 +40,114 @@

    Properties

    -
    - -
    api_version?: number
    +
    + +
    result: {
        deposit_authorized: boolean;
        destination_account: string;
        ledger_current_index?: number;
        ledger_hash?: string;
        ledger_index?: number;
        source_account: string;
        validated?: boolean;
    }

    Type declaration

    • -
      deposit_authorized: boolean
      +
      deposit_authorized: boolean

      Whether the specified source account is authorized to send payments directly to the destination account. If true, either the destination account does not require Deposit Authorization or the source account is preauthorized.

      -
    • +
    +
  • -
    destination_account: string
    +
    destination_account: string

    The destination account specified in the request.

    -
  • +
    +
  • -
    Optional ledger_current_index?: number
    +
    Optional ledger_current_index?: number

    The ledger index of the current in-progress ledger version, which was used to generate this response.

    -
  • +
    +
  • -
    Optional ledger_hash?: string
    +
    Optional ledger_hash?: string

    The identifying hash of the ledger that was used to generate this Response.

    -
  • + +
  • -
    Optional ledger_index?: number
    +
    Optional ledger_index?: number

    The ledger index of the ledger version that was used to generate this Response.

    -
  • + +
  • -
    source_account: string
    +
    source_account: string

    The source account specified in the request.

    -
  • + +
  • -
    Optional validated?: boolean
    +
    Optional validated?: boolean

    If true, the information comes from a validated ledger version.

    -
  • +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • api_version
  • +
  • forwarded
  • +
  • id
  • +
  • result
  • +
  • status
  • +
  • type
  • +
  • warning
  • +
  • warnings
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/DepositPreauth.html b/docs/interfaces/DepositPreauth.html index 54c0e56146..fba690c170 100644 --- a/docs/interfaces/DepositPreauth.html +++ b/docs/interfaces/DepositPreauth.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -DepositPreauth | xrpl
    +DepositPreauth | xrpl
    -
    +
    • xrpl
    • @@ -25,15 +25,16 @@

      Interface DepositPreauth

    A DepositPreauth transaction gives another account pre-approval to deliver payments to the sender of this transaction. This is only useful if the sender of this transaction is using (or plans to use) Deposit Authorization.

    -
    +
    +

    Hierarchy

    +
  • Defined in packages/xrpl/src/models/transactions/depositPreauth.ts:12
  • @@ -41,162 +42,191 @@

    Properties

    -
    - -
    Account: string
    -

    The unique address of the account that initiated the transaction.

    -
    -
    - -
    AccountTxnID?: string
    +
    + +
    Account: string
    +

    The unique address of the transaction sender.

    +
    +
    +
    + +
    AccountTxnID?: string

    Hash value identifying another transaction. If provided, this transaction is only valid if the sending account's previously-sent transaction matches the provided hash.

    -
    +
    -
    - -
    Authorize?: string
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:249
  • +
    + +
    Authorize?: string

    The XRP Ledger address of the sender to preauthorize.

    -
    -
    - -
    Fee?: string
    +
  • Defined in packages/xrpl/src/models/transactions/depositPreauth.ts:15
  • +
    + +
    Fee?: string

    Integer amount of XRP, in drops, to be destroyed as a cost for distributing this transaction to the network. Some transaction types have different minimum requirements.

    -
    -
    - -
    Flags?: number | GlobalFlags
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:236
  • +
    + +
    Flags?: number | GlobalFlags

    Set of bit-flags for this transaction.

    -
    -
    - -
    LastLedgerSequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:251
  • +
    + +
    LastLedgerSequence?: number

    Highest ledger index this transaction can appear in. Specifying this field places a strict upper limit on how long the transaction can wait to be validated or rejected.

    -
    -
    - -
    Memos?: Memo[]
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:257
  • +
    + +
    Memos?: Memo[]

    Additional arbitrary information used to identify this transaction.

    -
    +
    + +
    NetworkID?: number
    +

    The network id of the transaction.

    +
    +
    -
    - -
    Sequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:293
  • +
    + +
    Sequence?: number

    The sequence number of the account sending the transaction. A transaction is only valid if the Sequence number is exactly 1 greater than the previous transaction from the same account. The special case 0 means the transaction is using a Ticket instead.

    -
    -
    - -
    Signers?: Signer[]
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:243
  • +
    + +
    Signers?: Signer[]

    Array of objects that represent a multi-signature which authorizes this transaction.

    -
    -
    - -
    SigningPubKey?: string
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:266
  • +
    + +
    SigningPubKey?: string

    Hex representation of the public key that corresponds to the private key used to sign this transaction. If an empty string, indicates a multi-signature is present in the Signers field instead.

    -
    -
    - -
    SourceTag?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:279
  • +
    + +
    SourceTag?: number

    Arbitrary integer used to identify the reason for this payment, or a sender on whose behalf this transaction is made. Conventionally, a refund should specify the initial payment's SourceTag as the refund payment's DestinationTag.

    -
    -
    - -
    TicketSequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:273
  • +
    + +
    TicketSequence?: number

    The sequence number of the ticket to use in place of a Sequence number. If this is provided, Sequence must be 0. Cannot be used with AccountTxnID.

    -
    -
    - -
    TransactionType: "DepositPreauth"
    -
    - -
    TxnSignature?: string
    + +
    +
    + +
    TransactionType: "DepositPreauth"
    +

    The type of transaction. Valid types include: Payment, OfferCreate, +TrustSet, and many others.

    +
    +
    +
    + +
    TxnSignature?: string

    The signature that verifies this transaction as originating from the account it says it is from.

    -
    -
    - -
    Unauthorize?: string
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:289
  • +
    + +
    Unauthorize?: string

    The XRP Ledger address of a sender whose preauthorization should be. revoked.

    -
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • Account
  • +
  • AccountTxnID
  • +
  • Authorize
  • +
  • Fee
  • +
  • Flags
  • +
  • LastLedgerSequence
  • +
  • Memos
  • +
  • NetworkID
  • +
  • Sequence
  • +
  • Signers
  • +
  • SigningPubKey
  • +
  • SourceTag
  • +
  • TicketSequence
  • +
  • TransactionType
  • +
  • TxnSignature
  • +
  • Unauthorize
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/EnableAmendment.html b/docs/interfaces/EnableAmendment.html new file mode 100644 index 0000000000..fab8ec3be1 --- /dev/null +++ b/docs/interfaces/EnableAmendment.html @@ -0,0 +1,563 @@ +EnableAmendment | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface EnableAmendment

    +
    +

    Mark a change in the status of a proposed amendment when it gains majority, looses majority, or is enabled.

    +
    +
    +
    +

    Hierarchy

    +
    +
    +
    +
    + +
    +
    +

    Properties

    +
    + +
    Account: string
    +

    The unique address of the transaction sender.

    +
    +
    +
    + +
    AccountTxnID?: string
    +

    Hash value identifying another transaction. If provided, this transaction +is only valid if the sending account's previously-sent transaction matches +the provided hash.

    +
    +
    +
    + +
    Amendment: string
    +

    A unique identifier for the amendment.

    +
    +
    +
    + +
    Fee?: string
    +

    Integer amount of XRP, in drops, to be destroyed as a cost for +distributing this transaction to the network. Some transaction types have +different minimum requirements.

    +
    +
    +
    + +
    Flags?: number | GlobalFlags
    +

    Set of bit-flags for this transaction.

    +
    +
    +
    + +
    LastLedgerSequence?: number
    +

    Highest ledger index this transaction can appear in. Specifying this field +places a strict upper limit on how long the transaction can wait to be +validated or rejected.

    +
    +
    +
    + +
    LedgerSequence: number
    +

    The ledger index where this pseudo-transaction appears.

    +
    +
    +
    + +
    Memos?: Memo[]
    +

    Additional arbitrary information used to identify this transaction.

    +
    +
    +
    + +
    NetworkID?: number
    +

    The network id of the transaction.

    +
    +
    +
    + +
    Sequence?: number
    +

    The sequence number of the account sending the transaction. A transaction +is only valid if the Sequence number is exactly 1 greater than the previous +transaction from the same account. The special case 0 means the transaction +is using a Ticket instead.

    +
    +
    +
    + +
    Signers?: Signer[]
    +

    Array of objects that represent a multi-signature which authorizes this +transaction.

    +
    +
    +
    + +
    SigningPubKey?: string
    +

    Hex representation of the public key that corresponds to the private key +used to sign this transaction. If an empty string, indicates a +multi-signature is present in the Signers field instead.

    +
    +
    +
    + +
    SourceTag?: number
    +

    Arbitrary integer used to identify the reason for this payment, or a sender +on whose behalf this transaction is made. Conventionally, a refund should +specify the initial payment's SourceTag as the refund payment's +DestinationTag.

    +
    +
    +
    + +
    TicketSequence?: number
    +

    The sequence number of the ticket to use in place of a Sequence number. If +this is provided, Sequence must be 0. Cannot be used with AccountTxnID.

    +
    +
    +
    + +
    TransactionType: "EnableAmendment"
    +

    The type of transaction. Valid types include: Payment, OfferCreate, +TrustSet, and many others.

    +
    +
    +
    + +
    TxnSignature?: string
    +

    The signature that verifies this transaction as originating from the +account it says it is from.

    +
    +
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/ErrorResponse.html b/docs/interfaces/ErrorResponse.html index 90fe4a09a3..cd9821116b 100644 --- a/docs/interfaces/ErrorResponse.html +++ b/docs/interfaces/ErrorResponse.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -ErrorResponse | xrpl
    +ErrorResponse | xrpl
    -
    +
    • xrpl
    • @@ -24,13 +24,14 @@

      Interface ErrorResponse

    The shape of an error response from rippled. xrpl.js handles rejections by throwing, and allowing the user to handle in the catch block of a promise.

    -
    +
    +

    Hierarchy

    • ErrorResponse
    +
  • Defined in packages/xrpl/src/models/methods/baseMethod.ts:49
  • @@ -38,61 +39,62 @@

    Properties

    -
    - -
    api_version?: number
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • api_version
  • +
  • error
  • +
  • error_code
  • +
  • error_message
  • +
  • id
  • +
  • request
  • +
  • status
  • +
  • type
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/EscrowCancel.html b/docs/interfaces/EscrowCancel.html index 3a5988df78..56b4a9c562 100644 --- a/docs/interfaces/EscrowCancel.html +++ b/docs/interfaces/EscrowCancel.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -EscrowCancel | xrpl
    +EscrowCancel | xrpl
    -

    Properties

    -
    - -
    Account: string
    -

    The unique address of the account that initiated the transaction.

    -
    -
    - -
    AccountTxnID?: string
    +
    + +
    Account: string
    +

    The unique address of the transaction sender.

    +
    +
    +
    + +
    AccountTxnID?: string

    Hash value identifying another transaction. If provided, this transaction is only valid if the sending account's previously-sent transaction matches the provided hash.

    -
    +
    -
    - -
    Fee?: string
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:249
  • +
    + +
    Fee?: string

    Integer amount of XRP, in drops, to be destroyed as a cost for distributing this transaction to the network. Some transaction types have different minimum requirements.

    -
    -
    - -
    Flags?: number | GlobalFlags
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:236
  • +
    + +
    Flags?: number | GlobalFlags

    Set of bit-flags for this transaction.

    -
    -
    - -
    LastLedgerSequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:251
  • +
    + +
    LastLedgerSequence?: number

    Highest ledger index this transaction can appear in. Specifying this field places a strict upper limit on how long the transaction can wait to be validated or rejected.

    -
    -
    - -
    Memos?: Memo[]
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:257
  • +
    + +
    Memos?: Memo[]

    Additional arbitrary information used to identify this transaction.

    -
    +
    + +
    NetworkID?: number
    +

    The network id of the transaction.

    +
    +
    -
    - -
    OfferSequence: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:293
  • +
    + +
    OfferSequence: string | number

    Transaction sequence (or Ticket number) of EscrowCreate transaction that. created the escrow to cancel.

    -
    -
    - -
    Owner: string
    +
  • Defined in packages/xrpl/src/models/transactions/escrowCancel.ts:24
  • +
    + +
    Owner: string

    Address of the source account that funded the escrow payment.

    -
    -
    - -
    Sequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/escrowCancel.ts:19
  • +
    + +
    Sequence?: number

    The sequence number of the account sending the transaction. A transaction is only valid if the Sequence number is exactly 1 greater than the previous transaction from the same account. The special case 0 means the transaction is using a Ticket instead.

    -
    -
    - -
    Signers?: Signer[]
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:243
  • +
    + +
    Signers?: Signer[]

    Array of objects that represent a multi-signature which authorizes this transaction.

    -
    -
    - -
    SigningPubKey?: string
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:266
  • +
    + +
    SigningPubKey?: string

    Hex representation of the public key that corresponds to the private key used to sign this transaction. If an empty string, indicates a multi-signature is present in the Signers field instead.

    -
    -
    - -
    SourceTag?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:279
  • +
    + +
    SourceTag?: number

    Arbitrary integer used to identify the reason for this payment, or a sender on whose behalf this transaction is made. Conventionally, a refund should specify the initial payment's SourceTag as the refund payment's DestinationTag.

    -
    -
    - -
    TicketSequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:273
  • +
    + +
    TicketSequence?: number

    The sequence number of the ticket to use in place of a Sequence number. If this is provided, Sequence must be 0. Cannot be used with AccountTxnID.

    -
    -
    - -
    TransactionType: "EscrowCancel"
    -
    - -
    TxnSignature?: string
    + +
    +
    + +
    TransactionType: "EscrowCancel"
    +

    The type of transaction. Valid types include: Payment, OfferCreate, +TrustSet, and many others.

    +
    +
    +
    + +
    TxnSignature?: string

    The signature that verifies this transaction as originating from the account it says it is from.

    -
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • Account
  • +
  • AccountTxnID
  • +
  • Fee
  • +
  • Flags
  • +
  • LastLedgerSequence
  • +
  • Memos
  • +
  • NetworkID
  • +
  • OfferSequence
  • +
  • Owner
  • +
  • Sequence
  • +
  • Signers
  • +
  • SigningPubKey
  • +
  • SourceTag
  • +
  • TicketSequence
  • +
  • TransactionType
  • +
  • TxnSignature
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/EscrowCreate.html b/docs/interfaces/EscrowCreate.html index 5c6a8f72e5..c2afa06a8a 100644 --- a/docs/interfaces/EscrowCreate.html +++ b/docs/interfaces/EscrowCreate.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -EscrowCreate | xrpl
    +EscrowCreate | xrpl
    -

    Properties

    -
    - -
    Account: string
    -

    The unique address of the account that initiated the transaction.

    -
    +
    + +
    AccountTxnID?: string

    Hash value identifying another transaction. If provided, this transaction is only valid if the sending account's previously-sent transaction matches the provided hash.

    -
    +
    -
    - -
    Amount: string
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:249
  • +
    + +
    Amount: string

    Amount of XRP, in drops, to deduct from the sender's balance and escrow. Once escrowed, the XRP can either go to the Destination address (after the. FinishAfter time) or returned to the sender (after the CancelAfter time).

    -
    -
    - -
    CancelAfter?: number
    +
  • Defined in packages/xrpl/src/models/transactions/escrowCreate.ts:25
  • +
    + +
    CancelAfter?: number

    The time, in seconds since the Ripple Epoch, when this escrow expires. This value is immutable; the funds can only be returned the sender after. this time.

    -
    -
    - -
    Condition?: string
    +
  • Defined in packages/xrpl/src/models/transactions/escrowCreate.ts:33
  • +
    + +
    Condition?: string

    Hex value representing a PREIMAGE-SHA-256 crypto-condition . The funds can. only be delivered to the recipient if this condition is fulfilled.

    -
    -
    - -
    Destination: string
    +
  • Defined in packages/xrpl/src/models/transactions/escrowCreate.ts:44
  • +
    + +
    Destination: string

    Address to receive escrowed XRP.

    -
    -
    - -
    DestinationTag?: number
    +
  • Defined in packages/xrpl/src/models/transactions/escrowCreate.ts:27
  • +
    + +
    DestinationTag?: number

    Arbitrary tag to further specify the destination for this escrowed. payment, such as a hosted recipient at the destination address.

    -
    -
    - -
    Fee?: string
    +
  • Defined in packages/xrpl/src/models/transactions/escrowCreate.ts:49
  • +
    + +
    Fee?: string

    Integer amount of XRP, in drops, to be destroyed as a cost for distributing this transaction to the network. Some transaction types have different minimum requirements.

    -
    -
    - -
    FinishAfter?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:236
  • +
    + +
    FinishAfter?: number

    The time, in seconds since the Ripple Epoch, when the escrowed XRP can be released to the recipient. This value is immutable; the funds cannot move. until this time is reached.

    -
    -
    - -
    Flags?: number | GlobalFlags
    +
  • Defined in packages/xrpl/src/models/transactions/escrowCreate.ts:39
  • +
    + +
    Flags?: number | GlobalFlags

    Set of bit-flags for this transaction.

    -
    -
    - -
    LastLedgerSequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:251
  • +
    + +
    LastLedgerSequence?: number

    Highest ledger index this transaction can appear in. Specifying this field places a strict upper limit on how long the transaction can wait to be validated or rejected.

    -
    -
    - -
    Memos?: Memo[]
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:257
  • +
    + +
    Memos?: Memo[]

    Additional arbitrary information used to identify this transaction.

    -
    -
    - -
    Sequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:261
  • +
    + +
    NetworkID?: number
    +

    The network id of the transaction.

    +
    +
    +
    + +
    Sequence?: number

    The sequence number of the account sending the transaction. A transaction is only valid if the Sequence number is exactly 1 greater than the previous transaction from the same account. The special case 0 means the transaction is using a Ticket instead.

    -
    -
    - -
    Signers?: Signer[]
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:243
  • +
    + +
    Signers?: Signer[]

    Array of objects that represent a multi-signature which authorizes this transaction.

    -
    -
    - -
    SigningPubKey?: string
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:266
  • +
    + +
    SigningPubKey?: string

    Hex representation of the public key that corresponds to the private key used to sign this transaction. If an empty string, indicates a multi-signature is present in the Signers field instead.

    -
    -
    - -
    SourceTag?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:279
  • +
    + +
    SourceTag?: number

    Arbitrary integer used to identify the reason for this payment, or a sender on whose behalf this transaction is made. Conventionally, a refund should specify the initial payment's SourceTag as the refund payment's DestinationTag.

    -
    -
    - -
    TicketSequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:273
  • +
    + +
    TicketSequence?: number

    The sequence number of the ticket to use in place of a Sequence number. If this is provided, Sequence must be 0. Cannot be used with AccountTxnID.

    -
    -
    - -
    TransactionType: "EscrowCreate"
    +
    + +
    TransactionType: "EscrowCreate"
    +

    The type of transaction. Valid types include: Payment, OfferCreate, +TrustSet, and many others.

    +
    +
    -
    - -
    TxnSignature?: string
    +
  • Defined in packages/xrpl/src/models/transactions/escrowCreate.ts:19
  • +
    + +
    TxnSignature?: string

    The signature that verifies this transaction as originating from the account it says it is from.

    -
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • Account
  • +
  • AccountTxnID
  • +
  • Amount
  • +
  • CancelAfter
  • +
  • Condition
  • +
  • Destination
  • +
  • DestinationTag
  • +
  • Fee
  • +
  • FinishAfter
  • +
  • Flags
  • +
  • LastLedgerSequence
  • +
  • Memos
  • +
  • NetworkID
  • +
  • Sequence
  • +
  • Signers
  • +
  • SigningPubKey
  • +
  • SourceTag
  • +
  • TicketSequence
  • +
  • TransactionType
  • +
  • TxnSignature
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/EscrowFinish.html b/docs/interfaces/EscrowFinish.html index cb25d31c7a..9737c68db1 100644 --- a/docs/interfaces/EscrowFinish.html +++ b/docs/interfaces/EscrowFinish.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -EscrowFinish | xrpl
    +EscrowFinish | xrpl
    -

    Properties

    -
    - -
    Account: string
    -

    The unique address of the account that initiated the transaction.

    -
    +
    + +
    AccountTxnID?: string

    Hash value identifying another transaction. If provided, this transaction is only valid if the sending account's previously-sent transaction matches the provided hash.

    -
    +
    -
    - -
    Condition?: string
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:249
  • +
    + +
    Condition?: string

    Hex value matching the previously-supplied PREIMAGE-SHA-256. crypto-condition of the held payment.

    -
    -
    - -
    Fee?: string
    +
  • Defined in packages/xrpl/src/models/transactions/escrowFinish.ts:29
  • +
    + +
    Fee?: string

    Integer amount of XRP, in drops, to be destroyed as a cost for distributing this transaction to the network. Some transaction types have different minimum requirements.

    -
    -
    - -
    Flags?: number | GlobalFlags
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:236
  • +
    + +
    Flags?: number | GlobalFlags

    Set of bit-flags for this transaction.

    -
    -
    - -
    Fulfillment?: string
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:251
  • +
    + +
    Fulfillment?: string

    Hex value of the PREIMAGE-SHA-256 crypto-condition fulfillment matching. the held payment's Condition.

    -
    -
    - -
    LastLedgerSequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/escrowFinish.ts:34
  • +
    + +
    LastLedgerSequence?: number

    Highest ledger index this transaction can appear in. Specifying this field places a strict upper limit on how long the transaction can wait to be validated or rejected.

    -
    -
    - -
    Memos?: Memo[]
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:257
  • +
    + +
    Memos?: Memo[]

    Additional arbitrary information used to identify this transaction.

    -
    -
    - -
    OfferSequence: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:261
  • +
    + +
    NetworkID?: number
    +

    The network id of the transaction.

    +
    +
    +
    + +
    OfferSequence: string | number

    Transaction sequence of EscrowCreate transaction that created the held. payment to finish.

    -
    -
    - -
    Owner: string
    +
  • Defined in packages/xrpl/src/models/transactions/escrowFinish.ts:24
  • +
    + +
    Owner: string

    Address of the source account that funded the held payment.

    -
    -
    - -
    Sequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/escrowFinish.ts:19
  • +
    + +
    Sequence?: number

    The sequence number of the account sending the transaction. A transaction is only valid if the Sequence number is exactly 1 greater than the previous transaction from the same account. The special case 0 means the transaction is using a Ticket instead.

    -
    -
    - -
    Signers?: Signer[]
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:243
  • +
    + +
    Signers?: Signer[]

    Array of objects that represent a multi-signature which authorizes this transaction.

    -
    -
    - -
    SigningPubKey?: string
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:266
  • +
    + +
    SigningPubKey?: string

    Hex representation of the public key that corresponds to the private key used to sign this transaction. If an empty string, indicates a multi-signature is present in the Signers field instead.

    -
    -
    - -
    SourceTag?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:279
  • +
    + +
    SourceTag?: number

    Arbitrary integer used to identify the reason for this payment, or a sender on whose behalf this transaction is made. Conventionally, a refund should specify the initial payment's SourceTag as the refund payment's DestinationTag.

    -
    -
    - -
    TicketSequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:273
  • +
    + +
    TicketSequence?: number

    The sequence number of the ticket to use in place of a Sequence number. If this is provided, Sequence must be 0. Cannot be used with AccountTxnID.

    -
    -
    - -
    TransactionType: "EscrowFinish"
    +
    + +
    TransactionType: "EscrowFinish"
    +

    The type of transaction. Valid types include: Payment, OfferCreate, +TrustSet, and many others.

    +
    +
    -
    - -
    TxnSignature?: string
    +
  • Defined in packages/xrpl/src/models/transactions/escrowFinish.ts:17
  • +
    + +
    TxnSignature?: string

    The signature that verifies this transaction as originating from the account it says it is from.

    -
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • Account
  • +
  • AccountTxnID
  • +
  • Condition
  • +
  • Fee
  • +
  • Flags
  • +
  • Fulfillment
  • +
  • LastLedgerSequence
  • +
  • Memos
  • +
  • NetworkID
  • +
  • OfferSequence
  • +
  • Owner
  • +
  • Sequence
  • +
  • Signers
  • +
  • SigningPubKey
  • +
  • SourceTag
  • +
  • TicketSequence
  • +
  • TransactionType
  • +
  • TxnSignature
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/FederatorInfoRequest.html b/docs/interfaces/FederatorInfoRequest.html deleted file mode 100644 index f53366fcf3..0000000000 --- a/docs/interfaces/FederatorInfoRequest.html +++ /dev/null @@ -1,106 +0,0 @@ -FederatorInfoRequest | xrpl
    -
    - -
    -
    -
    -
    - -

    Interface FederatorInfoRequest

    -
    -

    The federator_info command asks the federator for information -about the door account and other bridge-related information. This -method only exists on sidechain federators. Expects a response in -the form of a FederatorInfoResponse.

    -
    -
    -

    Hierarchy

    -
      -
    • BaseRequest -
        -
      • FederatorInfoRequest
    -
    -
    -
    - -
    -
    -

    Properties

    -
    -
    -

    Properties

    -
    - -
    api_version?: number
    -

    The API version to use. If omitted, use version 1.

    -
    -
    - -
    command: "federator_info"
    -
    - -
    id?: string | number
    -

    A unique value to identify this request. The response to this request uses -the same id field. This way, even if responses arrive out of order, you -know which request prompted which response.

    -
    -
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file diff --git a/docs/interfaces/FederatorInfoResponse.html b/docs/interfaces/FederatorInfoResponse.html deleted file mode 100644 index a35b2c4a04..0000000000 --- a/docs/interfaces/FederatorInfoResponse.html +++ /dev/null @@ -1,201 +0,0 @@ -FederatorInfoResponse | xrpl
    -
    - -
    -
    -
    -
    - -

    Interface FederatorInfoResponse

    -
    -

    Response expected from a FederatorInfoRequest.

    -
    -
    -

    Hierarchy

    -
      -
    • BaseResponse -
        -
      • FederatorInfoResponse
    -
    -
    -
    - -
    -
    -

    Properties

    -
    - -
    api_version?: number
    -
    - -
    forwarded?: boolean
    -
    - -
    id: string | number
    -
    - -
    result: {
        info: {
            mainchain: {
                door_status: {
                    initialized: boolean;
                    status: "closed" | "open" | "closing" | "opening";
                };
                last_transaction_sent_seq: number;
                listener_info: {
                    state: "normal" | "syncing";
                };
                pending_transactions: {
                    amount: string;
                    destination_account: string;
                    signatures: {
                        public_key: string;
                        seq: number;
                    }[];
                }[];
                sequence: number;
                tickets: {
                    initialized: boolean;
                    tickets: {
                        status: "taken" | "available";
                        ticket_seq: number;
                    }[];
                };
            };
            public_key: string;
            sidechain: {
                door_status: {
                    initialized: boolean;
                    status: "closed" | "open" | "closing" | "opening";
                };
                last_transaction_sent_seq: number;
                listener_info: {
                    state: "normal" | "syncing";
                };
                pending_transactions: {
                    amount: string;
                    destination_account: string;
                    signatures: {
                        public_key: string;
                        seq: number;
                    }[];
                }[];
                sequence: number;
                tickets: {
                    initialized: boolean;
                    tickets: {
                        status: "taken" | "available";
                        ticket_seq: number;
                    }[];
                };
            };
        };
    }
    -
    -

    Type declaration

    -
      -
    • -
      info: {
          mainchain: {
              door_status: {
                  initialized: boolean;
                  status: "closed" | "open" | "closing" | "opening";
              };
              last_transaction_sent_seq: number;
              listener_info: {
                  state: "normal" | "syncing";
              };
              pending_transactions: {
                  amount: string;
                  destination_account: string;
                  signatures: {
                      public_key: string;
                      seq: number;
                  }[];
              }[];
              sequence: number;
              tickets: {
                  initialized: boolean;
                  tickets: {
                      status: "taken" | "available";
                      ticket_seq: number;
                  }[];
              };
          };
          public_key: string;
          sidechain: {
              door_status: {
                  initialized: boolean;
                  status: "closed" | "open" | "closing" | "opening";
              };
              last_transaction_sent_seq: number;
              listener_info: {
                  state: "normal" | "syncing";
              };
              pending_transactions: {
                  amount: string;
                  destination_account: string;
                  signatures: {
                      public_key: string;
                      seq: number;
                  }[];
              }[];
              sequence: number;
              tickets: {
                  initialized: boolean;
                  tickets: {
                      status: "taken" | "available";
                      ticket_seq: number;
                  }[];
              };
          };
      }
      -
        -
      • -
        mainchain: {
            door_status: {
                initialized: boolean;
                status: "closed" | "open" | "closing" | "opening";
            };
            last_transaction_sent_seq: number;
            listener_info: {
                state: "normal" | "syncing";
            };
            pending_transactions: {
                amount: string;
                destination_account: string;
                signatures: {
                    public_key: string;
                    seq: number;
                }[];
            }[];
            sequence: number;
            tickets: {
                initialized: boolean;
                tickets: {
                    status: "taken" | "available";
                    ticket_seq: number;
                }[];
            };
        }
        -
          -
        • -
          door_status: {
              initialized: boolean;
              status: "closed" | "open" | "closing" | "opening";
          }
          -
            -
          • -
            initialized: boolean
          • -
          • -
            status: "closed" | "open" | "closing" | "opening"
        • -
        • -
          last_transaction_sent_seq: number
        • -
        • -
          listener_info: {
              state: "normal" | "syncing";
          }
          -
            -
          • -
            state: "normal" | "syncing"
        • -
        • -
          pending_transactions: {
              amount: string;
              destination_account: string;
              signatures: {
                  public_key: string;
                  seq: number;
              }[];
          }[]
        • -
        • -
          sequence: number
        • -
        • -
          tickets: {
              initialized: boolean;
              tickets: {
                  status: "taken" | "available";
                  ticket_seq: number;
              }[];
          }
          -
            -
          • -
            initialized: boolean
          • -
          • -
            tickets: {
                status: "taken" | "available";
                ticket_seq: number;
            }[]
      • -
      • -
        public_key: string
      • -
      • -
        sidechain: {
            door_status: {
                initialized: boolean;
                status: "closed" | "open" | "closing" | "opening";
            };
            last_transaction_sent_seq: number;
            listener_info: {
                state: "normal" | "syncing";
            };
            pending_transactions: {
                amount: string;
                destination_account: string;
                signatures: {
                    public_key: string;
                    seq: number;
                }[];
            }[];
            sequence: number;
            tickets: {
                initialized: boolean;
                tickets: {
                    status: "taken" | "available";
                    ticket_seq: number;
                }[];
            };
        }
        -
          -
        • -
          door_status: {
              initialized: boolean;
              status: "closed" | "open" | "closing" | "opening";
          }
          -
            -
          • -
            initialized: boolean
          • -
          • -
            status: "closed" | "open" | "closing" | "opening"
        • -
        • -
          last_transaction_sent_seq: number
        • -
        • -
          listener_info: {
              state: "normal" | "syncing";
          }
          -
            -
          • -
            state: "normal" | "syncing"
        • -
        • -
          pending_transactions: {
              amount: string;
              destination_account: string;
              signatures: {
                  public_key: string;
                  seq: number;
              }[];
          }[]
        • -
        • -
          sequence: number
        • -
        • -
          tickets: {
              initialized: boolean;
              tickets: {
                  status: "taken" | "available";
                  ticket_seq: number;
              }[];
          }
          -
            -
          • -
            initialized: boolean
          • -
          • -
            tickets: {
                status: "taken" | "available";
                ticket_seq: number;
            }[]
    -
    - -
    status?: string
    -
    - -
    type: string
    -
    - -
    warning?: "load"
    -
    - -
    warnings?: Warning[]
    -
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file diff --git a/docs/interfaces/FeeRequest.html b/docs/interfaces/FeeRequest.html index 64d24b64a6..af5aa467ad 100644 --- a/docs/interfaces/FeeRequest.html +++ b/docs/interfaces/FeeRequest.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -FeeRequest | xrpl
    +FeeRequest | xrpl
    -
    +
    • xrpl
    • @@ -24,19 +24,20 @@

      Interface FeeRequest

    The fee command reports the current state of the open-ledger requirements for the transaction cost. This requires the FeeEscalation amendment to be -enabled. Expects a response in the form of a FeeResponse.

    - -

    Example

    const feeRequest: FeeRequest = {
    command: 'fee'
    } -
    +enabled. Expects a response in the form of a FeeResponse.

    +
    +
    +

    Example

    const feeRequest: FeeRequest = {
    command: 'fee'
    } +

    Hierarchy

    +
  • Defined in packages/xrpl/src/models/methods/fee.ts:17
  • @@ -44,40 +45,46 @@

    Properties

    -
    - -
    api_version?: number
    +
    + +
    api_version?: number

    The API version to use. If omitted, use version 1.

    -
    +
    -
    - -
    command: "fee"
    +
    + +
    command: "fee"
    +

    The name of the API method.

    +
    +
    -
    - -
    id?: string | number
    +
  • Defined in packages/xrpl/src/models/methods/fee.ts:18
  • +
    + +
    id?: string | number

    A unique value to identify this request. The response to this request uses the same id field. This way, even if responses arrive out of order, you know which request prompted which response.

    -
    +
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • api_version
  • +
  • command
  • +
  • id
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/FeeResponse.html b/docs/interfaces/FeeResponse.html index 0529baff2e..47a7c3810c 100644 --- a/docs/interfaces/FeeResponse.html +++ b/docs/interfaces/FeeResponse.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -FeeResponse | xrpl
    +FeeResponse | xrpl
    -
    +

    Interface FeeResponse

    -

    Response expected from a FeeRequest.

    -
    +

    Response expected from a FeeRequest.

    +
    +

    Hierarchy

    +
  • Defined in packages/xrpl/src/models/methods/fee.ts:26
  • @@ -39,142 +40,156 @@

    Properties

    -
    - -
    api_version?: number
    +
    + +
    result: {
        current_ledger_size: string;
        current_queue_size: string;
        drops: {
            base_fee: string;
            median_fee: string;
            minimum_fee: string;
            open_ledger_fee: string;
        };
        expected_ledger_size: string;
        ledger_current_index: number;
        levels: {
            median_level: string;
            minimum_level: string;
            open_ledger_level: string;
            reference_level: string;
        };
        max_queue_size: string;
    }

    Type declaration

    • -
      current_ledger_size: string
      +
      current_ledger_size: string

      Number of transactions provisionally included in the in-progress ledger.

      -
    • +
    +
  • -
    current_queue_size: string
    +
    current_queue_size: string

    Number of transactions currently queued for the next ledger.

    -
  • +
    +
  • -
    drops: {
        base_fee: string;
        median_fee: string;
        minimum_fee: string;
        open_ledger_fee: string;
    }
    +
    drops: {
        base_fee: string;
        median_fee: string;
        minimum_fee: string;
        open_ledger_fee: string;
    }
    • -
      base_fee: string
      +
      base_fee: string

      The transaction cost required for a reference transaction to be included in a ledger under minimum load, represented in drops of XRP.

      -
    • +
  • +
  • -
    median_fee: string
    +
    median_fee: string

    An approximation of the median transaction cost among transactions. Included in the previous validated ledger, represented in drops of XRP.

    -
  • + +
  • -
    minimum_fee: string
    +
    minimum_fee: string

    The minimum transaction cost for a reference transaction to be queued for a later ledger, represented in drops of XRP. If greater than base_fee, the transaction queue is full.

    -
  • + +
  • -
    open_ledger_fee: string
    +
    open_ledger_fee: string

    The minimum transaction cost that a reference transaction must pay to be included in the current open ledger, represented in drops of XRP.

    -
  • + +
  • -
    expected_ledger_size: string
    +
    expected_ledger_size: string

    The approximate number of transactions expected to be included in the current ledger. This is based on the number of transactions in the previous ledger.

    -
  • + +
  • -
    ledger_current_index: number
    +
    ledger_current_index: number

    The Ledger Index of the current open ledger these stats describe.

    -
  • + +
  • -
    levels: {
        median_level: string;
        minimum_level: string;
        open_ledger_level: string;
        reference_level: string;
    }
    +
    levels: {
        median_level: string;
        minimum_level: string;
        open_ledger_level: string;
        reference_level: string;
    }
    • -
      median_level: string
      +
      median_level: string

      The median transaction cost among transactions in the previous validated ledger, represented in fee levels.

      -
    • + +
    • -
      minimum_level: string
      +
      minimum_level: string

      The minimum transaction cost required to be queued for a future ledger, represented in fee levels.

      -
    • + +
    • -
      open_ledger_level: string
      +
      open_ledger_level: string

      The minimum transaction cost required to be included in the current open ledger, represented in fee levels.

      -
    • + +
    • -
      reference_level: string
      +
      reference_level: string

      The equivalent of the minimum transaction cost, represented in fee levels.

      -
  • + +
  • -
    max_queue_size: string
    +
    max_queue_size: string

    The maximum number of transactions that the transaction queue can currently hold.

    -
  • +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • api_version
  • +
  • forwarded
  • +
  • id
  • +
  • result
  • +
  • status
  • +
  • type
  • +
  • warning
  • +
  • warnings
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/FundingOptions.html b/docs/interfaces/FundingOptions.html new file mode 100644 index 0000000000..0fa9664168 --- /dev/null +++ b/docs/interfaces/FundingOptions.html @@ -0,0 +1,414 @@ +FundingOptions | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface FundingOptions

    +
    +

    Hierarchy

    +
      +
    • FundingOptions
    +
    +
    +
    + +
    +
    +

    Properties

    +
    + +
    amount?: string
    +

    A custom amount to fund, if undefined or null, the default amount will be 1000.

    +
    +
    +
    + +
    faucetHost?: string
    +

    A custom host for a faucet server. On devnet, testnet, AMM devnet, and HooksV3 testnet, fundWallet will +attempt to determine the correct server automatically. In other environments, or if you would like to customize +the faucet host in devnet or testnet, you should provide the host using this option.

    +
    +
    +
    + +
    faucetPath?: string
    +

    A custom path for a faucet server. On devnet, +testnet, AMM devnet, and HooksV3 testnet, fundWallet will +attempt to determine the correct path automatically. In other environments, +or if you would like to customize the faucet path in devnet or testnet, +you should provide the path using this option. +Ex: client.fundWallet(null,{'faucet.altnet.rippletest.net', '/accounts'}) +specifies a request to 'faucet.altnet.rippletest.net/accounts' to fund a new wallet.

    +
    +
    +
    + +
    usageContext?: string
    +

    An optional field to indicate the use case context of the faucet transaction +Ex: integration test, code snippets.

    +
    +
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/GatewayBalance.html b/docs/interfaces/GatewayBalance.html new file mode 100644 index 0000000000..4b2d6900ae --- /dev/null +++ b/docs/interfaces/GatewayBalance.html @@ -0,0 +1,379 @@ +GatewayBalance | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface GatewayBalance

    +
    +

    Hierarchy

    +
      +
    • GatewayBalance
    +
    +
    +
    + +
    +
    +

    Properties

    +
    +
    +

    Properties

    +
    + +
    currency: string
    +
    + +
    value: string
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/GatewayBalancesRequest.html b/docs/interfaces/GatewayBalancesRequest.html index 9af21ea26d..bbbb18788d 100644 --- a/docs/interfaces/GatewayBalancesRequest.html +++ b/docs/interfaces/GatewayBalancesRequest.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -GatewayBalancesRequest | xrpl
    +GatewayBalancesRequest | xrpl
    -
    +
    • xrpl
    • @@ -24,19 +24,21 @@

      Interface GatewayBalancesRequest

    The gateway_balances command calculates the total balances issued by a given account, optionally excluding amounts held by operational addresses. Expects -a response in the form of a GatewayBalancesResponse.

    - -

    Example

    const gatewayBalances: GatewayBalanceRequest = {
    "id": "example_gateway_balances_1",
    "command": "gateway_balances",
    "account": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q",
    "strict": true,
    "hotwallet": ["rKm4uWpg9tfwbVSeATv4KxDe6mpE9yPkgJ","ra7JkEzrgeKHdzKgo4EUUVBnxggY4z37kt"],
    "ledger_index": "validated"
    } -
    +a response in the form of a GatewayBalancesResponse.

    +
    +
    +

    Example

    const gatewayBalances: GatewayBalanceRequest = {
    "id": "example_gateway_balances_1",
    "command": "gateway_balances",
    "account": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q",
    "strict": true,
    "hotwallet": ["rKm4uWpg9tfwbVSeATv4KxDe6mpE9yPkgJ","ra7JkEzrgeKHdzKgo4EUUVBnxggY4z37kt"],
    "ledger_index": "validated"
    } +

    Hierarchy

      -
    • BaseRequest +
    • BaseRequest
    • +
    • LookupByLedgerRequest
      • GatewayBalancesRequest
    +
  • Defined in packages/xrpl/src/models/methods/gatewayBalances.ts:22
  • @@ -44,83 +46,95 @@

    Properties

    -
    - -
    account: string
    +
    + +
    account: string

    The Address to check. This should be the issuing address.

    -
    +
    -
    - -
    api_version?: number
    +
  • Defined in packages/xrpl/src/models/methods/gatewayBalances.ts:27
  • +
    + +
    api_version?: number

    The API version to use. If omitted, use version 1.

    -
    +
    -
    - -
    command: "gateway_balances"
    +
    + +
    command: "gateway_balances"
    +

    The name of the API method.

    +
    +
    -
    - -
    hotwallet?: string | string[]
    +
  • Defined in packages/xrpl/src/models/methods/gatewayBalances.ts:25
  • +
    + +
    hotwallet?: string | string[]

    An operational address to exclude from the balances issued, or an array of Such addresses.

    -
    -
    - -
    id?: string | number
    +
  • Defined in packages/xrpl/src/models/methods/gatewayBalances.ts:37
  • +
    + +
    id?: string | number

    A unique value to identify this request. The response to this request uses the same id field. This way, even if responses arrive out of order, you know which request prompted which response.

    -
    -
    - -
    ledger_hash?: string
    +
  • Defined in packages/xrpl/src/models/methods/baseMethod.ts:12
  • +
    + +
    ledger_hash?: string

    A 20-byte hex string for the ledger version to use.

    -
    -
    - -
    ledger_index?: LedgerIndex
    -

    The ledger index of the ledger version to use, or a shortcut string to -choose a ledger automatically.

    -
    +
    + +
    ledger_index?: LedgerIndex
    +

    The ledger index of the ledger to use, or a shortcut string.

    +
    +
    -
    - -
    strict?: boolean
    +
  • Defined in packages/xrpl/src/models/methods/baseMethod.ts:23
  • +
    + +
    strict?: boolean

    If true, only accept an address or public key for the account parameter. Defaults to false.

    -
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • account
  • +
  • api_version
  • +
  • command
  • +
  • hotwallet
  • +
  • id
  • +
  • ledger_hash
  • +
  • ledger_index
  • +
  • strict
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/GatewayBalancesResponse.html b/docs/interfaces/GatewayBalancesResponse.html index b562db8a49..2ecc28880b 100644 --- a/docs/interfaces/GatewayBalancesResponse.html +++ b/docs/interfaces/GatewayBalancesResponse.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -GatewayBalancesResponse | xrpl
    +GatewayBalancesResponse | xrpl
    -
    +

    Interface GatewayBalancesResponse

    -

    Expected response from a GatewayBalancesRequest.

    -
    +

    Expected response from a GatewayBalancesRequest.

    +
    +

    Hierarchy

    +
  • Defined in packages/xrpl/src/models/methods/gatewayBalances.ts:50
  • @@ -39,115 +40,123 @@

    Properties

    -
    - -
    api_version?: number
    +
    + +
    result: {
        account: string;
        assets?: {
            [address: string]: GatewayBalance[];
        };
        balances?: {
            [address: string]: GatewayBalance[];
        };
        ledger_current_index?: number;
        ledger_hash?: string;
        ledger_index?: number;
        obligations?: {
            [currency: string]: string;
        };
    }

    Type declaration

    • -
      account: string
      +
      account: string

      The address of the account that issued the balances.

      -
    • +
    +
  • -
    Optional assets?: {
        [address: string]: Balance[];
    }
    +
    Optional assets?: {
        [address: string]: GatewayBalance[];
    }

    Total amounts held that are issued by others. In the recommended configuration, the issuing address should have none.

    +
    • -
      [address: string]: Balance[]
  • +
    [address: string]: GatewayBalance[]
  • -
    Optional balances?: {
        [address: string]: Balance[];
    }
    +
    Optional balances?: {
        [address: string]: GatewayBalance[];
    }

    Amounts issued to the hotwallet addresses from the request. The keys are addresses and the values are arrays of currency amounts they hold.

    +
    • -
      [address: string]: Balance[]
  • +
    [address: string]: GatewayBalance[]
  • -
    Optional ledger_current_index?: number
    +
    Optional ledger_current_index?: number

    The ledger index of the ledger version that was used to generate this response.

    -
  • +
    +
  • -
    Optional ledger_hash?: string
    +
    Optional ledger_hash?: string

    The identifying hash of the ledger version that was used to generate this response.

    -
  • +
    +
  • -
    Optional ledger_index?: number
    +
    Optional ledger_index?: number

    The ledger index of the current in-progress ledger version, which was used to retrieve this information.

    -
  • + +
  • -
    Optional obligations?: {
        [currency: string]: string;
    }
    +
    Optional obligations?: {
        [currency: string]: string;
    }

    Total amounts issued to addresses not excluded, as a map of currencies to the total value issued.

    +
    • -
      [currency: string]: string
  • +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • api_version
  • +
  • forwarded
  • +
  • id
  • +
  • result
  • +
  • status
  • +
  • type
  • +
  • warning
  • +
  • warnings
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/IssuedCurrency.html b/docs/interfaces/IssuedCurrency.html new file mode 100644 index 0000000000..1952326d44 --- /dev/null +++ b/docs/interfaces/IssuedCurrency.html @@ -0,0 +1,381 @@ +IssuedCurrency | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface IssuedCurrency

    +
    +

    Hierarchy

    +
    +
    +
    +
    + +
    +
    +

    Properties

    +
    +
    +

    Properties

    +
    + +
    currency: string
    +
    + +
    issuer: string
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/IssuedCurrencyAmount.html b/docs/interfaces/IssuedCurrencyAmount.html new file mode 100644 index 0000000000..5d99955265 --- /dev/null +++ b/docs/interfaces/IssuedCurrencyAmount.html @@ -0,0 +1,390 @@ +IssuedCurrencyAmount | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface IssuedCurrencyAmount

    +
    +

    Hierarchy

    +
    +
    +
    +
    + +
    +
    +

    Properties

    +
    +
    +

    Properties

    +
    + +
    currency: string
    +
    + +
    issuer: string
    +
    + +
    value: string
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/JobType.html b/docs/interfaces/JobType.html new file mode 100644 index 0000000000..35a40557ee --- /dev/null +++ b/docs/interfaces/JobType.html @@ -0,0 +1,400 @@ +JobType | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface JobType

    +
    +

    Hierarchy

    +
      +
    • JobType
    +
    +
    +
    + +
    +
    +

    Properties

    +
    + +
    avg_time?: number
    +
    + +
    in_progress?: number
    +
    + +
    job_type: string
    +
    + +
    peak_time?: number
    +
    + +
    per_second: number
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/LedgerBinary.html b/docs/interfaces/LedgerBinary.html new file mode 100644 index 0000000000..45f71e3b18 --- /dev/null +++ b/docs/interfaces/LedgerBinary.html @@ -0,0 +1,520 @@ +LedgerBinary | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface LedgerBinary

    +
    +

    Hierarchy

    +
      +
    • Omit<Omit<Ledger, "transactions">, "accountState"> +
        +
      • LedgerBinary
    +
    +
    +
    + +
    +
    +

    Properties

    +
    + +
    accountState?: string[]
    +
    + +
    account_hash: string
    +

    The SHA-512Half of this ledger's state tree information.

    +
    +
    +
    + +
    close_flags: number
    +

    A bit-map of flags relating to the closing of this ledger.

    +
    +
    +
    + +
    close_time: number
    +

    The approximate time this ledger version closed, as the number of seconds +since the Ripple Epoch of 2000-01-01 00:00:00. This value is rounded based +on the close_time_resolution.

    +
    +
    +
    + +
    close_time_human: string
    +

    The approximate time this ledger was closed, in human-readable format. +Always uses the UTC time zone.

    +
    +
    +
    + +
    close_time_resolution: number
    +

    An integer in the range [2,120] indicating the maximum number of seconds +by which the close_time could be rounded.

    +
    +
    +
    + +
    closed: boolean
    +

    Whether or not this ledger has been closed.

    +
    +
    +
    + +
    ledger_hash: string
    +

    The SHA-512Half of this ledger version. This serves as a unique identifier +for this ledger and all its contents.

    +
    +
    +
    + +
    ledger_index: string
    +

    The ledger index of the ledger. Some API methods display this as a quoted +integer; some display it as a native JSON number.

    +
    +
    +
    + +
    parent_close_time: number
    +

    The approximate time at which the previous ledger was closed.

    +
    +
    +
    + +
    parent_hash: string
    +

    Unique identifying hash of the ledger that came immediately before this +one.

    +
    +
    +
    + +
    total_coins: string
    +

    Total number of XRP drops in the network, as a quoted integer.

    +
    +
    +
    + +
    transaction_hash: string
    +

    Hash of the transaction information included in this ledger, as hex.

    +
    +
    +
    + +
    transactions?: string[]
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/LedgerClosedRequest.html b/docs/interfaces/LedgerClosedRequest.html index 031d123124..2388098888 100644 --- a/docs/interfaces/LedgerClosedRequest.html +++ b/docs/interfaces/LedgerClosedRequest.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -LedgerClosedRequest | xrpl
    +LedgerClosedRequest | xrpl
    -
    +
    • xrpl
    • @@ -23,22 +23,23 @@

      Interface LedgerClosedRequest

    The ledger_closed method returns the unique identifiers of the most recently -closed ledger. Expects a response in the form of a LedgerClosedResponse.

    - -

    Example

    +
    +

    Example

    -
    const ledgerClosed: LedgerClosedRequest = {
    "command": "ledger_closed"
    } -
    +
    const ledgerClosed: LedgerClosedRequest = {
    "command": "ledger_closed"
    } +

    Hierarchy

    +
  • Defined in packages/xrpl/src/models/methods/ledgerClosed.ts:18
  • @@ -46,40 +47,46 @@

    Properties

    -
    - -
    api_version?: number
    +
    + +
    api_version?: number

    The API version to use. If omitted, use version 1.

    -
    +
    -
    - -
    command: "ledger_closed"
    +
    + +
    command: "ledger_closed"
    +

    The name of the API method.

    +
    +
    -
    - -
    id?: string | number
    +
  • Defined in packages/xrpl/src/models/methods/ledgerClosed.ts:19
  • +
    + +
    id?: string | number

    A unique value to identify this request. The response to this request uses the same id field. This way, even if responses arrive out of order, you know which request prompted which response.

    -
    +
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • api_version
  • +
  • command
  • +
  • id
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/LedgerClosedResponse.html b/docs/interfaces/LedgerClosedResponse.html index 2bee57e157..1f17fbf55d 100644 --- a/docs/interfaces/LedgerClosedResponse.html +++ b/docs/interfaces/LedgerClosedResponse.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -LedgerClosedResponse | xrpl
    +LedgerClosedResponse | xrpl
    -
    +

    Interface LedgerClosedResponse

    -

    The response expected from a LedgerClosedRequest.

    -
    +

    The response expected from a LedgerClosedRequest.

    +
    +

    Hierarchy

    +
  • Defined in packages/xrpl/src/models/methods/ledgerClosed.ts:27
  • @@ -39,76 +40,77 @@

    Properties

    -
    - -
    api_version?: number
    +
    + +
    result: {
        ledger_hash: string;
        ledger_index: number;
    }

    Type declaration

    • -
      ledger_hash: string
    • +
      ledger_hash: string
    • -
      ledger_index: number
    -
    - -
    status?: string
    +
    + +
    status?: string
    -
    - -
    type: string
    +
    + +
    type: string
    -
    - -
    warning?: "load"
    +
    + +
    warning?: "load"
    -
    - -
    warnings?: Warning[]
    +
    + +
    warnings?: ResponseWarning[]
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • api_version
  • +
  • forwarded
  • +
  • id
  • +
  • result
  • +
  • status
  • +
  • type
  • +
  • warning
  • +
  • warnings
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/LedgerCurrentRequest.html b/docs/interfaces/LedgerCurrentRequest.html index a892fdfdb3..a69b489274 100644 --- a/docs/interfaces/LedgerCurrentRequest.html +++ b/docs/interfaces/LedgerCurrentRequest.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -LedgerCurrentRequest | xrpl
    +LedgerCurrentRequest | xrpl
    -
    +
    • xrpl
    • @@ -23,19 +23,20 @@

      Interface LedgerCurrentRequest

    The ledger_current method returns the unique identifiers of the current -in-progress ledger. Expects a response in the form of a LedgerCurrentResponse.

    - -

    Example

    const ledgerCurrent: LedgerCurrentRequest = {
    "command": "ledger_current"
    } -
    +in-progress ledger. Expects a response in the form of a LedgerCurrentResponse.

    +
    +
    +

    Example

    const ledgerCurrent: LedgerCurrentRequest = {
    "command": "ledger_current"
    } +

    Hierarchy

    +
  • Defined in packages/xrpl/src/models/methods/ledgerCurrent.ts:17
  • @@ -43,40 +44,46 @@

    Properties

    -
    - -
    api_version?: number
    +
    + +
    api_version?: number

    The API version to use. If omitted, use version 1.

    -
    +
    -
    - -
    command: "ledger_current"
    +
    + +
    command: "ledger_current"
    +

    The name of the API method.

    +
    +
    -
    - -
    id?: string | number
    +
  • Defined in packages/xrpl/src/models/methods/ledgerCurrent.ts:18
  • +
    + +
    id?: string | number

    A unique value to identify this request. The response to this request uses the same id field. This way, even if responses arrive out of order, you know which request prompted which response.

    -
    +
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • api_version
  • +
  • command
  • +
  • id
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/LedgerCurrentResponse.html b/docs/interfaces/LedgerCurrentResponse.html index 53803eeb78..9506b6e56d 100644 --- a/docs/interfaces/LedgerCurrentResponse.html +++ b/docs/interfaces/LedgerCurrentResponse.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -LedgerCurrentResponse | xrpl
    +LedgerCurrentResponse | xrpl
    -
    +

    Interface LedgerCurrentResponse

    -

    Response expected from a LedgerCurrentRequest.

    -
    +

    Response expected from a LedgerCurrentRequest.

    +
    +

    Hierarchy

    +
  • Defined in packages/xrpl/src/models/methods/ledgerCurrent.ts:26
  • @@ -39,76 +40,78 @@

    Properties

    -
    - -
    api_version?: number
    +
    + +
    result: {
        ledger_current_index: number;
    }

    Type declaration

    • -
      ledger_current_index: number
      +
      ledger_current_index: number

      The ledger index of this ledger version.

      -
    +
    -
    - -
    status?: string
    +
    + +
    status?: string
    -
    - -
    type: string
    +
    + +
    type: string
    -
    - -
    warning?: "load"
    +
    + +
    warning?: "load"
    -
    - -
    warnings?: Warning[]
    +
    + +
    warnings?: ResponseWarning[]
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • api_version
  • +
  • forwarded
  • +
  • id
  • +
  • result
  • +
  • status
  • +
  • type
  • +
  • warning
  • +
  • warnings
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/LedgerDataBinaryLedgerEntry.html b/docs/interfaces/LedgerDataBinaryLedgerEntry.html new file mode 100644 index 0000000000..453fe1da80 --- /dev/null +++ b/docs/interfaces/LedgerDataBinaryLedgerEntry.html @@ -0,0 +1,372 @@ +LedgerDataBinaryLedgerEntry | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface LedgerDataBinaryLedgerEntry

    +
    +

    Hierarchy

    +
      +
    • LedgerDataBinaryLedgerEntry
    +
    +
    +
    + +
    +
    +

    Properties

    +
    +
    +

    Properties

    +
    + +
    data: string
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/LedgerDataRequest.html b/docs/interfaces/LedgerDataRequest.html index 60dfe199de..7d15f6fdef 100644 --- a/docs/interfaces/LedgerDataRequest.html +++ b/docs/interfaces/LedgerDataRequest.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -LedgerDataRequest | xrpl
    +LedgerDataRequest | xrpl
    -
    +
    • xrpl
    • @@ -25,18 +25,20 @@

      Interface LedgerDataRequest

    The ledger_data method retrieves contents of the specified ledger. You can iterate through several calls to retrieve the entire contents of a single ledger version.

    - -

    Example

    const ledgerData: LedgerDataRequest = {
    "id": 2,
    "ledger_hash": "842B57C1CC0613299A686D3E9F310EC0422C84D3911E5056389AA7E5808A93C8",
    "command": "ledger_data",
    "limit": 5,
    "binary": true
    } -
    +
    +
    +

    Example

    const ledgerData: LedgerDataRequest = {
    "id": 2,
    "ledger_hash": "842B57C1CC0613299A686D3E9F310EC0422C84D3911E5056389AA7E5808A93C8",
    "command": "ledger_data",
    "limit": 5,
    "binary": true
    } +

    Hierarchy

      -
    • BaseRequest +
    • BaseRequest
    • +
    • LookupByLedgerRequest
      • LedgerDataRequest
    +
  • Defined in packages/xrpl/src/models/methods/ledgerData.ts:23
  • @@ -44,84 +46,105 @@

    Properties

    -
    - -
    api_version?: number
    +
    + +
    api_version?: number

    The API version to use. If omitted, use version 1.

    -
    +
    -
    - -
    binary?: boolean
    +
  • Defined in packages/xrpl/src/models/methods/baseMethod.ts:16
  • +
    + +
    binary?: boolean

    If set to true, return ledger objects as hashed hex strings instead of JSON.

    -
    +
    -
    - -
    command: "ledger_data"
    +
    + +
    command: "ledger_data"
    +

    The name of the API method.

    +
    +
    -
    - -
    id?: string | number
    +
  • Defined in packages/xrpl/src/models/methods/ledgerData.ts:24
  • +
    + +
    id?: string | number

    A unique value to identify this request. The response to this request uses the same id field. This way, even if responses arrive out of order, you know which request prompted which response.

    -
    -
    - -
    ledger_hash?: string
    +
  • Defined in packages/xrpl/src/models/methods/baseMethod.ts:12
  • +
    + +
    ledger_hash?: string

    A 20-byte hex string for the ledger version to use.

    -
    -
    - -
    ledger_index?: LedgerIndex
    -

    The ledger index of the ledger to use, or a shortcut string to choose a -ledger automatically.

    -
    +
    + +
    ledger_index?: LedgerIndex
    +

    The ledger index of the ledger to use, or a shortcut string.

    +
    +
    -
    - -
    limit?: number
    +
  • Defined in packages/xrpl/src/models/methods/baseMethod.ts:23
  • +
    + +
    limit?: number

    Limit the number of ledger objects to retrieve. The server is not required to honor this value.

    -
    -
    - -
    marker?: unknown
    +
  • Defined in packages/xrpl/src/models/methods/ledgerData.ts:34
  • +
    + +
    marker?: unknown

    Value from a previous paginated response. Resume retrieving data where that response left off.

    -
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • api_version
  • +
  • binary
  • +
  • command
  • +
  • id
  • +
  • ledger_hash
  • +
  • ledger_index
  • +
  • limit
  • +
  • marker
  • +
  • type
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/LedgerDataResponse.html b/docs/interfaces/LedgerDataResponse.html index d7ba6306b9..6d8c0c1f7f 100644 --- a/docs/interfaces/LedgerDataResponse.html +++ b/docs/interfaces/LedgerDataResponse.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -LedgerDataResponse | xrpl
    +LedgerDataResponse | xrpl
    -
    +

    Interface LedgerDataResponse

    -

    The response expected from a LedgerDataRequest.

    -
    +

    The response expected from a LedgerDataRequest.

    +
    +

    Hierarchy

    +
  • Defined in packages/xrpl/src/models/methods/ledgerData.ts:64
  • @@ -39,92 +40,97 @@

    Properties

    -
    - -
    api_version?: number
    +
    + +
    result: {
        ledger_hash: string;
        ledger_index: number;
        marker?: unknown;
        state: LedgerDataLedgerState[];
        validated?: boolean;
    }

    Type declaration

    • -
      ledger_hash: string
      +
      ledger_hash: string

      Unique identifying hash of this ledger version.

      -
    • +
    +
  • -
    ledger_index: number
    +
    ledger_index: number

    The ledger index of this ledger version.

    -
  • +
    +
  • -
    Optional marker?: unknown
    +
    Optional marker?: unknown

    Server-defined value indicating the response is paginated. Pass this to the next call to resume where this call left off.

    -
  • +
    +
  • -
    state: State[]
    +
    state: LedgerDataLedgerState[]

    Array of JSON objects containing data from the ledger's state tree, as defined below.

    -
  • + +
  • -
    Optional validated?: boolean
  • +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • api_version
  • +
  • forwarded
  • +
  • id
  • +
  • result
  • +
  • status
  • +
  • type
  • +
  • warning
  • +
  • warnings
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/LedgerEntry.AMM.html b/docs/interfaces/LedgerEntry.AMM.html new file mode 100644 index 0000000000..dcdff7a1bf --- /dev/null +++ b/docs/interfaces/LedgerEntry.AMM.html @@ -0,0 +1,563 @@ +AMM | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface AMM

    +
    +

    The AMM object type describes a single Automated Market Maker (AMM) instance.

    +
    +
    +
    +

    Hierarchy

    +
      +
    • BaseLedgerEntry
    • +
    • MissingPreviousTxnID +
        +
      • AMM
    +
    +
    +
    + +
    +
    +

    Properties

    +
    + +
    Account: string
    +

    The address of the special account that holds this AMM's assets.

    +
    +
    +
    + +
    Asset: Currency
    +

    The definition for one of the two assets this AMM holds.

    +
    +
    +
    + +
    Asset2: Currency
    +

    The definition for the other asset this AMM holds.

    +
    +
    +
    + +
    AuctionSlot?: {
        Account: string;
        AuthAccounts?: AuthAccount[];
        DiscountedFee: number;
        Expiration: number;
        Price: IssuedCurrencyAmount;
    }
    +

    Details of the current owner of the auction slot.

    +
    +
    +

    Type declaration

    +
      +
    • +
      Account: string
      +

      The current owner of this auction slot.

      +
      +
    • +
    • +
      Optional AuthAccounts?: AuthAccount[]
      +

      A list of at most 4 additional accounts that are authorized to trade at the discounted fee for this AMM instance.

      +
      +
    • +
    • +
      DiscountedFee: number
      +

      The trading fee to be charged to the auction owner, in the same format as TradingFee. +By default this is 0, meaning that the auction owner can trade at no fee instead of the standard fee for this AMM.

      +
      +
    • +
    • +
      Expiration: number
      +

      The time when this slot expires, in seconds since the Ripple Epoch.

      +
      +
    • +
    • +
      Price: IssuedCurrencyAmount
      +

      The amount the auction owner paid to win this slot, in LP Tokens.

      +
      +
    +
    +
    + +
    Flags: 0
    +

    A bit-map of boolean flags. No flags are defined for the AMM object +type, so this value is always 0.

    +
    +
    +
    + +
    LPTokenBalance: IssuedCurrencyAmount
    +

    The total outstanding balance of liquidity provider tokens from this AMM instance. +The holders of these tokens can vote on the AMM's trading fee in proportion to their holdings, +or redeem the tokens for a share of the AMM's assets which grows with the trading fees collected.

    +
    +
    +
    + +
    LedgerEntryType: "AMM"
    +
    + +
    PreviousTxnID: never
    +

    This field is missing on this object but is present on most other returned objects.

    +
    +
    +
    + +
    PreviousTxnLgrSeq: never
    +

    This field is missing on this object but is present on most other returned objects.

    +
    +
    +
    + +
    TradingFee: number
    +

    The percentage fee to be charged for trades against this AMM instance, in units of 1/100,000. +The maximum value is 1000, for a 1% fee.

    +
    +
    +
    + +
    VoteSlots?: VoteSlot[]
    +

    A list of vote objects, representing votes on the pool's trading fee.

    +
    +
    +
    + +
    index: string
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/LedgerEntry.AccountRoot.html b/docs/interfaces/LedgerEntry.AccountRoot.html index 4e9a4ff2ee..19ed938af7 100644 --- a/docs/interfaces/LedgerEntry.AccountRoot.html +++ b/docs/interfaces/LedgerEntry.AccountRoot.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -AccountRoot | xrpl
    +AccountRoot | xrpl
    -

    Properties

    -
    - -
    Account: string
    +
    + +
    AMMID?: string
    +

    The ledger entry ID of the corresponding AMM ledger entry. +Set during account creation; cannot be modified. +If present, indicates that this is a special AMM AccountRoot; always omitted on non-AMM accounts.

    +
    +
    +
    + +
    Account: string

    The identifying (classic) address of this account.

    -
    +
    -
    - -
    AccountTxnID?: string
    +
  • Defined in packages/xrpl/src/models/ledger/AccountRoot.ts:12
  • +
    + +
    AccountTxnID?: string

    The identifying hash of the transaction most recently sent by this account. This field must be enabled to use the AccountTxnID transaction field. To enable it, send an AccountSet transaction with the. asfAccountTxnID flag enabled.

    -
    -
    - -
    Balance: string
    +
  • Defined in packages/xrpl/src/models/ledger/AccountRoot.ts:30
  • +
    + +
    Balance: string

    The account's current XRP balance in drops, represented as a string.

    -
    +
    + +
    BurnedNFTokens?: number
    +

    Total NFTokens this account's issued that have been burned. This number is always equal or less than MintedNFTokens.

    +
    +
    -
    - -
    Domain?: string
    +
  • Defined in packages/xrpl/src/models/ledger/AccountRoot.ts:74
  • +
    + +
    Domain?: string

    A domain associated with this account. In JSON, this is the hexadecimal for the ASCII representation of the domain.

    -
    -
    - -
    EmailHash?: string
    +
  • Defined in packages/xrpl/src/models/ledger/AccountRoot.ts:41
  • +
    + +
    EmailHash?: string

    The md5 hash of an email address.

    -
    -
    - -
    Flags: number
    +
  • Defined in packages/xrpl/src/models/ledger/AccountRoot.ts:43
  • +
    + +
    FirstNFTSequence: number
    +

    The sequence that the account first minted an NFToken

    +
    +
    +
    + +
    Flags: number

    A bit-map of boolean flags enabled for this account.

    -
    -
    - -
    LedgerEntryType: "AccountRoot"
    +
    + +
    LedgerEntryType: "AccountRoot"
    -
    - -
    MessageKey?: string
    +
  • Defined in packages/xrpl/src/models/ledger/AccountRoot.ts:10
  • +
    + +
    MessageKey?: string

    A public key that may be used to send encrypted messages to this account in JSON, uses hexadecimal.

    -
    +
    + +
    MintedNFTokens?: number
    +

    Total NFTokens have been minted by and on behalf of this account.

    +
    +
    -
    - -
    OwnerCount: number
    +
  • Defined in packages/xrpl/src/models/ledger/AccountRoot.ts:78
  • +
    + +
    NFTokenMinter?: string
    +

    Another account that can mint NFTokens on behalf of this account.

    +
    +
    +
    + +
    OwnerCount: number

    The number of objects this account owns in the ledger, which contributes to its owner reserve.

    -
    -
    - -
    PreviousTxnID: string
    +
  • Defined in packages/xrpl/src/models/ledger/AccountRoot.ts:21
  • +
    + +
    PreviousTxnID: string

    The identifying hash of the transaction that most recently modified this object.

    -
    -
    - -
    PreviousTxnLgrSeq: number
    +
  • Defined in packages/xrpl/src/models/ledger/BaseLedgerEntry.ts:10
  • +
    + +
    PreviousTxnLgrSeq: number

    The index of the ledger that contains the transaction that most recently modified this object.

    -
    -
    - -
    RegularKey?: string
    +
  • Defined in packages/xrpl/src/models/ledger/BaseLedgerEntry.ts:15
  • +
    + +
    RegularKey?: string

    The address of a key pair that can be used to sign transactions for this account instead of the master key. Use a SetRegularKey transaction to change this value.

    -
    -
    - -
    Sequence: number
    +
  • Defined in packages/xrpl/src/models/ledger/AccountRoot.ts:54
  • +
    + +
    Sequence: number

    The sequence number of the next valid transaction for this account.

    -
    -
    - -
    TickSize?: number
    +
  • Defined in packages/xrpl/src/models/ledger/AccountRoot.ts:23
  • +
    + +
    TickSize?: number

    How many significant digits to use for exchange rates of Offers involving currencies issued by this address. Valid values are 3 to 15, inclusive.

    -
    -
    - -
    TicketCount?: number
    +
  • Defined in packages/xrpl/src/models/ledger/AccountRoot.ts:65
  • +
    + +
    TicketCount?: number

    How many Tickets this account owns in the ledger. This is updated automatically to ensure that the account stays within the hard limit of 250. Tickets at a time.

    -
    -
    - -
    TransferRate?: number
    +
  • Defined in packages/xrpl/src/models/ledger/AccountRoot.ts:60
  • +
    + +
    TransferRate?: number

    A transfer fee to charge other users for sending currency issued by this account to each other.

    -
    +
    + +
    WalletLocator?: string
    +

    An arbitrary 256-bit value that users can set.

    +
    +
    -
    - -
    index: string
    +
    + +
    index: string
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • AMMID
  • +
  • Account
  • +
  • AccountTxnID
  • +
  • Balance
  • +
  • BurnedNFTokens
  • +
  • Domain
  • +
  • EmailHash
  • +
  • FirstNFTSequence
  • +
  • Flags
  • +
  • LedgerEntryType
  • +
  • MessageKey
  • +
  • MintedNFTokens
  • +
  • NFTokenMinter
  • +
  • OwnerCount
  • +
  • PreviousTxnID
  • +
  • PreviousTxnLgrSeq
  • +
  • RegularKey
  • +
  • Sequence
  • +
  • TickSize
  • +
  • TicketCount
  • +
  • TransferRate
  • +
  • WalletLocator
  • +
  • index
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/LedgerEntry.AccountRootFlagsInterface.html b/docs/interfaces/LedgerEntry.AccountRootFlagsInterface.html index ebc82dd985..506b09c13d 100644 --- a/docs/interfaces/LedgerEntry.AccountRootFlagsInterface.html +++ b/docs/interfaces/LedgerEntry.AccountRootFlagsInterface.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -AccountRootFlagsInterface | xrpl
    +AccountRootFlagsInterface | xrpl
    -

    Properties

    -
    - -
    lsfDefaultRipple?: boolean
    +
    + +
    lsfAMM?: boolean
    +

    This account is an Automated Market Maker (AMM) instance.

    +
    +
    +
    + +
    lsfAllowTrustLineClawback?: boolean
    +

    This address can claw back issued IOUs. Once enabled, cannot be disabled.

    +
    +
    +
    + +
    lsfDefaultRipple?: boolean

    Enable rippling on this address's trust lines by default. Required for issuing addresses; discouraged for others.

    -
    +
    -
    - -
    lsfDepositAuth?: boolean
    +
  • Defined in packages/xrpl/src/models/ledger/AccountRoot.ts:119
  • +
    + +
    lsfDepositAuth?: boolean

    This account can only receive funds from transactions it sends, and from preauthorized accounts. (It has DepositAuth enabled.)

    -
    -
    - -
    lsfDisableMaster?: boolean
    +
  • Defined in packages/xrpl/src/models/ledger/AccountRoot.ts:124
  • +
    + +
    lsfDisableMaster?: boolean

    Disallows use of the master key to sign transactions for this account.

    -
    -
    - -
    lsfDisallowIncomingCheck?: boolean
    +
  • Defined in packages/xrpl/src/models/ledger/AccountRoot.ts:107
  • +
    + +
    lsfDisallowIncomingCheck?: boolean

    Disallow incoming Checks from other accounts.

    -
    -
    - -
    lsfDisallowIncomingNFTokenOffer?: boolean
    +
  • Defined in packages/xrpl/src/models/ledger/AccountRoot.ts:136
  • +
    + +
    lsfDisallowIncomingNFTokenOffer?: boolean

    Disallow incoming NFTOffers from other accounts.

    -
    -
    - -
    lsfDisallowIncomingPayChan?: boolean
    +
  • Defined in packages/xrpl/src/models/ledger/AccountRoot.ts:132
  • +
    + +
    lsfDisallowIncomingPayChan?: boolean

    Disallow incoming PayChannels from other accounts.

    -
    -
    - -
    lsfDisallowIncomingTrustline?: boolean
    +
  • Defined in packages/xrpl/src/models/ledger/AccountRoot.ts:140
  • +
    + +
    lsfDisallowIncomingTrustline?: boolean

    Disallow incoming Trustlines from other accounts.

    -
    -
    - -
    lsfDisallowXRP?: boolean
    +
  • Defined in packages/xrpl/src/models/ledger/AccountRoot.ts:144
  • +
    + +
    lsfDisallowXRP?: boolean

    Client applications should not send XRP to this account. Not enforced by rippled.

    -
    -
    - -
    lsfGlobalFreeze?: boolean
    +
  • Defined in packages/xrpl/src/models/ledger/AccountRoot.ts:103
  • +
    + +
    lsfGlobalFreeze?: boolean

    All assets issued by this address are frozen.

    -
    -
    - -
    lsfNoFreeze?: boolean
    +
  • Defined in packages/xrpl/src/models/ledger/AccountRoot.ts:115
  • +
    + +
    lsfNoFreeze?: boolean

    This address cannot freeze trust lines connected to it. Once enabled, cannot be disabled.

    -
    -
    - -
    lsfPasswordSpent?: boolean
    +
  • Defined in packages/xrpl/src/models/ledger/AccountRoot.ts:111
  • +
    + +
    lsfPasswordSpent?: boolean

    The account has used its free SetRegularKey transaction.

    -
    -
    - -
    lsfRequireAuth?: boolean
    +
  • Defined in packages/xrpl/src/models/ledger/AccountRoot.ts:91
  • +
    + +
    lsfRequireAuth?: boolean

    This account must individually approve other users for those users to hold this account's issued currencies.

    -
    -
    - -
    lsfRequireDestTag?: boolean
    +
  • Defined in packages/xrpl/src/models/ledger/AccountRoot.ts:99
  • +
    + +
    lsfRequireDestTag?: boolean

    Requires incoming payments to specify a Destination Tag.

    -
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • lsfAMM
  • +
  • lsfAllowTrustLineClawback
  • +
  • lsfDefaultRipple
  • +
  • lsfDepositAuth
  • +
  • lsfDisableMaster
  • +
  • lsfDisallowIncomingCheck
  • +
  • lsfDisallowIncomingNFTokenOffer
  • +
  • lsfDisallowIncomingPayChan
  • +
  • lsfDisallowIncomingTrustline
  • +
  • lsfDisallowXRP
  • +
  • lsfGlobalFreeze
  • +
  • lsfNoFreeze
  • +
  • lsfPasswordSpent
  • +
  • lsfRequireAuth
  • +
  • lsfRequireDestTag
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/LedgerEntry.Amendments.html b/docs/interfaces/LedgerEntry.Amendments.html index b27ac33d39..0e899d64e6 100644 --- a/docs/interfaces/LedgerEntry.Amendments.html +++ b/docs/interfaces/LedgerEntry.Amendments.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -Amendments | xrpl
    +Amendments | xrpl
    -
    +
    • xrpl
    • @@ -25,15 +25,17 @@

      Interface Amendments

    The Amendments object type contains a list of Amendments that are currently active.

    -
    +
    +

    Hierarchy

      -
    • default +
    • BaseLedgerEntry
    • +
    • MissingPreviousTxnID
      • Amendments
    +
  • Defined in packages/xrpl/src/models/ledger/Amendments.ts:27
  • @@ -41,54 +43,78 @@

    Properties

    -
    - -
    Amendments?: string[]
    +
    + +
    Amendments?: string[]

    Array of 256-bit amendment IDs for all currently-enabled amendments. If omitted, there are no enabled amendments.

    -
    +
    -
    - -
    Flags: 0
    +
  • Defined in packages/xrpl/src/models/ledger/Amendments.ts:35
  • +
    + +
    Flags: 0

    A bit-map of boolean flags. No flags are defined for the Amendments object type, so this value is always 0.

    -
    -
    - -
    LedgerEntryType: "Amendments"
    +
    + +
    LedgerEntryType: "Amendments"
    -
    - -
    Majorities?: Majority[]
    +
  • Defined in packages/xrpl/src/models/ledger/Amendments.ts:30
  • +
    + +
    Majorities?: Majority[]

    Array of objects describing the status of amendments that have majority support but are not yet enabled. If omitted, there are no pending amendments with majority support.

    -
    -
    - -
    index: string
    +
    + +
    PreviousTxnID: never
    +

    This field is missing on this object but is present on most other returned objects.

    +
    +
    +
    + +
    PreviousTxnLgrSeq: never
    +

    This field is missing on this object but is present on most other returned objects.

    +
    +
    +
    + +
    index: string
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • Amendments
  • +
  • Flags
  • +
  • LedgerEntryType
  • +
  • Majorities
  • +
  • PreviousTxnID
  • +
  • PreviousTxnLgrSeq
  • +
  • index
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/LedgerEntry.Bridge.html b/docs/interfaces/LedgerEntry.Bridge.html new file mode 100644 index 0000000000..adec34b633 --- /dev/null +++ b/docs/interfaces/LedgerEntry.Bridge.html @@ -0,0 +1,559 @@ +Bridge | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface Bridge

    +
    +

    A Bridge objects represents a cross-chain bridge and includes information about +the door accounts, assets, signature rewards, and the minimum account create +amount.

    +
    +
    +
    +

    Hierarchy

    +
      +
    • BaseLedgerEntry
    • +
    • HasPreviousTxnID +
        +
      • Bridge
    +
    +
    +
    + +
    +
    +

    Properties

    +
    + +
    Account: string
    +

    The door account that owns the bridge.

    +
    +
    +
    + +
    Flags: 0
    +

    A bit-map of boolean flags. No flags are defined for Bridges, so this value +is always 0.

    +
    +
    +
    + +
    LedgerEntryType: "Bridge"
    +
    + +
    MinAccountCreateAmount?: string
    +

    The minimum amount, in XRP, required for an XChainAccountCreateCommit +transaction. If this isn't present, the XChainAccountCreateCommit +transaction will fail. This field can only be present on XRP-XRP bridges.

    +
    +
    +
    + +
    OwnerNode: string
    +

    A hint indicating which page of the sender's owner directory links to this +object, in case the directory consists of multiple pages.

    +
    +
    +
    + +
    PreviousTxnID: string
    +

    The identifying hash of the transaction that most recently modified this +object.

    +
    +
    +
    + +
    PreviousTxnLgrSeq: number
    +

    The index of the ledger that contains the transaction that most recently +modified this object.

    +
    +
    +
    + +
    SignatureReward: Amount
    +

    The total amount, in XRP, to be rewarded for providing a signature for +cross-chain transfer or for signing for the cross-chain reward. This amount +will be split among the signers.

    +
    +
    +
    + +
    XChainAccountClaimCount: string
    +

    A counter used to order the execution of account create transactions. It is +incremented every time a XChainAccountCreateCommit transaction is +"claimed" on the destination chain. When the "claim" transaction is run on +the destination chain, the XChainAccountClaimCount must match the value that +the XChainAccountCreateCount had at the time the XChainAccountClaimCount was +run on the source chain. This orders the claims so that they run in the same +order that the XChainAccountCreateCommit transactions ran on the source chain, +to prevent transaction replay.

    +
    +
    +
    + +
    XChainAccountCreateCount: string
    +

    A counter used to order the execution of account create transactions. It is +incremented every time a successful XChainAccountCreateCommit +transaction is run for the source chain.

    +
    +
    +
    + +
    XChainBridge: XChainBridge
    +

    The door accounts and assets of the bridge this object correlates to.

    +
    +
    +
    + +
    XChainClaimID: string
    +

    The value of the next XChainClaimID to be created.

    +
    +
    +
    + +
    index: string
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/LedgerEntry.Check.html b/docs/interfaces/LedgerEntry.Check.html index 802eba2ea1..da0474d0ca 100644 --- a/docs/interfaces/LedgerEntry.Check.html +++ b/docs/interfaces/LedgerEntry.Check.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -Check | xrpl
    +Check | xrpl
    -
    +
    • xrpl
    • @@ -25,15 +25,17 @@

      Interface Check

    A Check object describes a check, similar to a paper personal check, which can be cashed by its destination to get money from its sender.

    -
    +
    +

    Hierarchy

      -
    • default +
    • BaseLedgerEntry
    • +
    • HasPreviousTxnID
      • Check
    +
  • Defined in packages/xrpl/src/models/ledger/Check.ts:11
  • @@ -41,141 +43,157 @@

    Properties

    -
    - -
    Account: string
    +
    + +
    Account: string

    The sender of the Check. Cashing the Check debits this address's balance.

    -
    +
    -
    - -
    Destination: string
    +
  • Defined in packages/xrpl/src/models/ledger/Check.ts:14
  • +
    + +
    Destination: string

    The intended recipient of the Check. Only this address can cash the Check, using a CheckCash transaction.

    -
    -
    - -
    DestinationNode?: string
    +
  • Defined in packages/xrpl/src/models/ledger/Check.ts:19
  • +
    + +
    DestinationNode?: string

    A hint indicating which page of the destination's owner directory links to this object, in case the directory consists of multiple pages.

    -
    -
    - -
    DestinationTag?: number
    +
  • Defined in packages/xrpl/src/models/ledger/Check.ts:52
  • +
    + +
    DestinationTag?: number

    An arbitrary tag to further specify the destination for this Check, such as a hosted recipient at the destination address.

    -
    -
    - -
    Expiration?: number
    +
  • Defined in packages/xrpl/src/models/ledger/Check.ts:57
  • +
    + +
    Expiration?: number

    Indicates the time after which this Check is considered expired.

    -
    -
    - -
    Flags: 0
    +
  • Defined in packages/xrpl/src/models/ledger/Check.ts:59
  • +
    + +
    Flags: 0

    A bit-map of boolean flags. No flags are defined for Checks, so this value is always 0.

    -
    -
    - -
    InvoiceID?: string
    +
  • Defined in packages/xrpl/src/models/ledger/Check.ts:24
  • +
    + +
    InvoiceID?: string

    Arbitrary 256-bit hash provided by the sender as a specific reason or identifier for this Check.

    -
    -
    - -
    LedgerEntryType: "Check"
    +
    + +
    LedgerEntryType: "Check"
    -
    - -
    OwnerNode: string
    +
  • Defined in packages/xrpl/src/models/ledger/Check.ts:12
  • +
    + +
    OwnerNode: string

    A hint indicating which page of the sender's owner directory links to this object, in case the directory consists of multiple pages.

    -
    -
    - -
    PreviousTxnID: string
    +
  • Defined in packages/xrpl/src/models/ledger/Check.ts:29
  • +
    + +
    PreviousTxnID: string

    The identifying hash of the transaction that most recently modified this object.

    -
    -
    - -
    PreviousTxnLgrSeq: number
    +
  • Defined in packages/xrpl/src/models/ledger/Check.ts:34
  • +
    + +
    PreviousTxnLgrSeq: number

    The index of the ledger that contains the transaction that most recently modified this object.

    -
    -
    - -
    SendMax: Amount
    +
  • Defined in packages/xrpl/src/models/ledger/Check.ts:39
  • +
    + +
    SendMax: Amount

    The maximum amount of currency this Check can debit the sender. If the Check is successfully cashed, the destination is credited in the same currency for up to this amount.

    -
    -
    - -
    Sequence: number
    +
  • Defined in packages/xrpl/src/models/ledger/Check.ts:45
  • +
    + +
    Sequence: number

    The sequence number of the CheckCreate transaction that created this check.

    -
    -
    - -
    SourceTag?: number
    +
  • Defined in packages/xrpl/src/models/ledger/Check.ts:47
  • +
    + +
    SourceTag?: number

    An arbitrary tag to further specify the source for this Check, such as a hosted recipient at the sender's address.

    -
    -
    - -
    index: string
    +
    + +
    index: string
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • Account
  • +
  • Destination
  • +
  • DestinationNode
  • +
  • DestinationTag
  • +
  • Expiration
  • +
  • Flags
  • +
  • InvoiceID
  • +
  • LedgerEntryType
  • +
  • OwnerNode
  • +
  • PreviousTxnID
  • +
  • PreviousTxnLgrSeq
  • +
  • SendMax
  • +
  • Sequence
  • +
  • SourceTag
  • +
  • index
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/LedgerEntry.DID.html b/docs/interfaces/LedgerEntry.DID.html new file mode 100644 index 0000000000..c8ad91364a --- /dev/null +++ b/docs/interfaces/LedgerEntry.DID.html @@ -0,0 +1,490 @@ +DID | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface DID

    +
    +

    Hierarchy

    +
      +
    • BaseLedgerEntry
    • +
    • HasPreviousTxnID +
        +
      • DID
    +
    +
    +
    + +
    +
    +

    Properties

    +
    + +
    Account: string
    +
    + +
    DIDDocument: string
    +
    + +
    Data: string
    +
    + +
    Flags: 0
    +
    + +
    LedgerEntryType: "DID"
    +
    + +
    OwnerNode: string
    +
    + +
    PreviousTxnID: string
    +

    The identifying hash of the transaction that most recently modified this +object.

    +
    +
    +
    + +
    PreviousTxnLgrSeq: number
    +

    The index of the ledger that contains the transaction that most recently +modified this object.

    +
    +
    +
    + +
    URI: string
    +
    + +
    index: string
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/LedgerEntry.DepositPreauth.html b/docs/interfaces/LedgerEntry.DepositPreauth.html index 8047f8eed1..b4095b1835 100644 --- a/docs/interfaces/LedgerEntry.DepositPreauth.html +++ b/docs/interfaces/LedgerEntry.DepositPreauth.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -DepositPreauth | xrpl
    +DepositPreauth | xrpl
    -
    +
    • xrpl
    • @@ -25,15 +25,17 @@

      Interface DepositPreauth

    A DepositPreauth object tracks a preauthorization from one account to another. DepositPreauth transactions create these objects.

    -
    +
    +

    Hierarchy

      -
    • default +
    • BaseLedgerEntry
    • +
    • HasPreviousTxnID
      • DepositPreauth
    +
  • Defined in packages/xrpl/src/models/ledger/DepositPreauth.ts:9
  • @@ -41,78 +43,87 @@

    Properties

    -
    - -
    Account: string
    +
    + +
    Account: string

    The account that granted the preauthorization.

    -
    +
    -
    - -
    Authorize: string
    +
  • Defined in packages/xrpl/src/models/ledger/DepositPreauth.ts:14
  • +
    + +
    Authorize: string

    The account that received the preauthorization.

    -
    -
    - -
    Flags: 0
    +
  • Defined in packages/xrpl/src/models/ledger/DepositPreauth.ts:16
  • +
    + +
    Flags: 0

    A bit-map of boolean flags. No flags are defined for DepositPreauth objects, so this value is always 0.

    -
    -
    - -
    LedgerEntryType: "DepositPreauth"
    +
    + +
    LedgerEntryType: "DepositPreauth"
    -
    - -
    OwnerNode: string
    +
  • Defined in packages/xrpl/src/models/ledger/DepositPreauth.ts:12
  • +
    + +
    OwnerNode: string

    A hint indicating which page of the sender's owner directory links to this object, in case the directory consists of multiple pages.

    -
    -
    - -
    PreviousTxnID: string
    +
  • Defined in packages/xrpl/src/models/ledger/DepositPreauth.ts:26
  • +
    + +
    PreviousTxnID: string

    The identifying hash of the transaction that most recently modified this object.

    -
    -
    - -
    PreviousTxnLgrSeq: number
    +
  • Defined in packages/xrpl/src/models/ledger/BaseLedgerEntry.ts:10
  • +
    + +
    PreviousTxnLgrSeq: number

    The index of the ledger that contains the transaction that most recently modified this object.

    -
    -
    - -
    index: string
    +
    + +
    index: string
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • Account
  • +
  • Authorize
  • +
  • Flags
  • +
  • LedgerEntryType
  • +
  • OwnerNode
  • +
  • PreviousTxnID
  • +
  • PreviousTxnLgrSeq
  • +
  • index
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/LedgerEntry.DirectoryNode.html b/docs/interfaces/LedgerEntry.DirectoryNode.html index 309bc99969..5dc1e95e81 100644 --- a/docs/interfaces/LedgerEntry.DirectoryNode.html +++ b/docs/interfaces/LedgerEntry.DirectoryNode.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -DirectoryNode | xrpl
    +DirectoryNode | xrpl
    -
    +
    • xrpl
    • @@ -25,15 +25,17 @@

      Interface DirectoryNode

    The DirectoryNode object type provides a list of links to other objects in the ledger's state tree.

    -
    +
    +

    Hierarchy

      -
    • default +
    • BaseLedgerEntry
    • +
    • MissingPreviousTxnID
      • DirectoryNode
    +
  • Defined in packages/xrpl/src/models/ledger/DirectoryNode.ts:9
  • @@ -41,111 +43,142 @@

    Properties

    -
    - -
    Flags: number
    +
    + +
    Flags: number

    A bit-map of boolean flags enabled for this directory. Currently, the protocol defines no flags for DirectoryNode objects.

    -
    +
    -
    - -
    IndexNext?: number
    +
  • Defined in packages/xrpl/src/models/ledger/DirectoryNode.ts:17
  • +
    + +
    IndexNext?: number

    If this Directory consists of multiple pages, this ID links to the next object in the chain, wrapping around at the end.

    -
    -
    - -
    IndexPrevious?: number
    +
  • Defined in packages/xrpl/src/models/ledger/DirectoryNode.ts:26
  • +
    + +
    IndexPrevious?: number

    If this Directory consists of multiple pages, this ID links to the previous object in the chain, wrapping around at the beginning.

    -
    -
    - -
    Indexes: string[]
    +
  • Defined in packages/xrpl/src/models/ledger/DirectoryNode.ts:31
  • +
    + +
    Indexes: string[]

    The contents of this Directory: an array of IDs of other objects.

    -
    -
    - -
    LedgerEntryType: "DirectoryNode"
    +
    + +
    LedgerEntryType: "DirectoryNode"
    -
    - -
    Owner?: string
    +
  • Defined in packages/xrpl/src/models/ledger/DirectoryNode.ts:12
  • +
    + +
    Owner?: string

    The address of the account that owns the objects in this directory.

    -
    -
    - -
    RootIndex: string
    +
  • Defined in packages/xrpl/src/models/ledger/DirectoryNode.ts:33
  • +
    + +
    PreviousTxnID: never
    +

    This field is missing on this object but is present on most other returned objects.

    +
    +
    +
    + +
    PreviousTxnLgrSeq: never
    +

    This field is missing on this object but is present on most other returned objects.

    +
    +
    +
    + +
    RootIndex: string

    The ID of root object for this directory.

    -
    -
    - -
    TakerGetsCurrency?: string
    +
  • Defined in packages/xrpl/src/models/ledger/DirectoryNode.ts:19
  • +
    + +
    TakerGetsCurrency?: string

    The currency code of the TakerGets amount from the offers in this directory.

    -
    -
    - -
    TakerGetsIssuer?: string
    +
  • Defined in packages/xrpl/src/models/ledger/DirectoryNode.ts:45
  • +
    + +
    TakerGetsIssuer?: string

    The issuer of the TakerGets amount from the offers in this directory.

    -
    -
    - -
    TakerPaysCurrency?: string
    +
  • Defined in packages/xrpl/src/models/ledger/DirectoryNode.ts:47
  • +
    + +
    TakerPaysCurrency?: string

    The currency code of the TakerPays amount from the offers in this directory.

    -
    -
    - -
    TakerPaysIssuer?: string
    +
  • Defined in packages/xrpl/src/models/ledger/DirectoryNode.ts:38
  • +
    + +
    TakerPaysIssuer?: string

    The issuer of the TakerPays amount from the offers in this directory.

    -
    -
    - -
    index: string
    +
    + +
    index: string
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • Flags
  • +
  • IndexNext
  • +
  • IndexPrevious
  • +
  • Indexes
  • +
  • LedgerEntryType
  • +
  • Owner
  • +
  • PreviousTxnID
  • +
  • PreviousTxnLgrSeq
  • +
  • RootIndex
  • +
  • TakerGetsCurrency
  • +
  • TakerGetsIssuer
  • +
  • TakerPaysCurrency
  • +
  • TakerPaysIssuer
  • +
  • index
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/LedgerEntry.Escrow.html b/docs/interfaces/LedgerEntry.Escrow.html index a688175570..616e58e2b8 100644 --- a/docs/interfaces/LedgerEntry.Escrow.html +++ b/docs/interfaces/LedgerEntry.Escrow.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -Escrow | xrpl
    +Escrow | xrpl
    -
    +
    • xrpl
    • @@ -25,15 +25,17 @@

      Interface Escrow

    The Escrow object type represents a held payment of XRP waiting to be executed or canceled.

    -
    +
    +

    Hierarchy

      -
    • default +
    • BaseLedgerEntry
    • +
    • HasPreviousTxnID
      • Escrow
    +
  • Defined in packages/xrpl/src/models/ledger/Escrow.ts:9
  • @@ -41,143 +43,159 @@

    Properties

    -
    - -
    Account: string
    +
    + +
    Account: string

    The address of the owner (sender) of this held payment. This is the account that provided the XRP, and gets it back if the held payment is canceled.

    -
    +
    -
    - -
    Amount: string
    +
  • Defined in packages/xrpl/src/models/ledger/Escrow.ts:16
  • +
    + +
    Amount: string

    The amount of XRP, in drops, to be delivered by the held payment.

    -
    -
    - -
    CancelAfter?: number
    +
  • Defined in packages/xrpl/src/models/ledger/Escrow.ts:23
  • +
    + +
    CancelAfter?: number

    The time after which this Escrow is considered expired.

    -
    -
    - -
    Condition?: string
    +
  • Defined in packages/xrpl/src/models/ledger/Escrow.ts:33
  • +
    + +
    Condition?: string

    A PREIMAGE-SHA-256 crypto-condition, as hexadecimal. If present, the EscrowFinish transaction must contain a fulfillment that satisfies this condition.

    -
    -
    - -
    Destination: string
    +
  • Defined in packages/xrpl/src/models/ledger/Escrow.ts:29
  • +
    + +
    Destination: string

    The destination address where the XRP is paid if the held payment is successful.

    -
    -
    - -
    DestinationNode?: string
    +
  • Defined in packages/xrpl/src/models/ledger/Escrow.ts:21
  • +
    + +
    DestinationNode?: string

    A hint indicating which page of the destination's owner directory links to this object, in case the directory consists of multiple pages.

    -
    -
    - -
    DestinationTag?: number
    +
  • Defined in packages/xrpl/src/models/ledger/Escrow.ts:63
  • +
    + +
    DestinationTag?: number

    An arbitrary tag to further specify the destination for this held payment, such as a hosted recipient at the destination address.

    -
    -
    - -
    FinishAfter?: number
    +
  • Defined in packages/xrpl/src/models/ledger/Escrow.ts:53
  • +
    + +
    FinishAfter?: number

    The time, in seconds, since the Ripple Epoch, after which this held payment can be finished. Any EscrowFinish transaction before this time fails.

    -
    -
    - -
    Flags: number
    +
  • Defined in packages/xrpl/src/models/ledger/Escrow.ts:38
  • +
    + +
    Flags: number

    A bit-map of boolean flags. No flags are defined for the Escrow type, so this value is always 0.

    -
    -
    - -
    LedgerEntryType: "Escrow"
    +
    + +
    LedgerEntryType: "Escrow"
    -
    - -
    OwnerNode: string
    +
  • Defined in packages/xrpl/src/models/ledger/Escrow.ts:10
  • +
    + +
    OwnerNode: string

    A hint indicating which page of the owner directory links to this object, in case the directory consists of multiple pages.

    -
    -
    - -
    PreviousTxnID: string
    +
  • Defined in packages/xrpl/src/models/ledger/Escrow.ts:58
  • +
    + +
    PreviousTxnID: string

    The identifying hash of the transaction that most recently modified this object.

    -
    -
    - -
    PreviousTxnLgrSeq: number
    +
  • Defined in packages/xrpl/src/models/ledger/BaseLedgerEntry.ts:10
  • +
    + +
    PreviousTxnLgrSeq: number

    The index of the ledger that contains the transaction that most recently modified this object.

    -
    -
    - -
    SourceTag?: number
    +
  • Defined in packages/xrpl/src/models/ledger/BaseLedgerEntry.ts:15
  • +
    + +
    SourceTag?: number

    An arbitrary tag to further specify the source for this held payment, such as a hosted recipient at the owner's address.

    -
    -
    - -
    index: string
    +
    + +
    index: string
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • Account
  • +
  • Amount
  • +
  • CancelAfter
  • +
  • Condition
  • +
  • Destination
  • +
  • DestinationNode
  • +
  • DestinationTag
  • +
  • FinishAfter
  • +
  • Flags
  • +
  • LedgerEntryType
  • +
  • OwnerNode
  • +
  • PreviousTxnID
  • +
  • PreviousTxnLgrSeq
  • +
  • SourceTag
  • +
  • index
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/LedgerEntry.FeeSettings.html b/docs/interfaces/LedgerEntry.FeeSettings.html index 7b83781a77..d31552f027 100644 --- a/docs/interfaces/LedgerEntry.FeeSettings.html +++ b/docs/interfaces/LedgerEntry.FeeSettings.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -FeeSettings | xrpl
    +FeeSettings | xrpl
    -
    +
    • xrpl
    • @@ -25,15 +25,19 @@

      Interface FeeSettings

    The FeeSettings object type contains the current base transaction cost and reserve amounts as determined by fee voting.

    -
    +

    The fields will be based on the status of the XRPFees amendment.

    + +
    +

    Hierarchy

      -
    • default -
        -
      • FeeSettings
    @@ -41,68 +45,53 @@

    Properties

    -
    - -
    BaseFee: string
    -

    The transaction cost of the "reference transaction" in drops of XRP as -hexadecimal.

    -
    -
    - -
    Flags: number
    -

    A bit-map of boolean flags for this object. No flags are defined for this -type.

    -
    -
    - -
    LedgerEntryType: "FeeSettings"
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • Flags
  • +
  • LedgerEntryType
  • +
  • PreviousTxnID
  • +
  • PreviousTxnLgrSeq
  • +
  • index
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/LedgerEntry.FeeSettingsPostAmendmentFields.html b/docs/interfaces/LedgerEntry.FeeSettingsPostAmendmentFields.html new file mode 100644 index 0000000000..6f409c30e3 --- /dev/null +++ b/docs/interfaces/LedgerEntry.FeeSettingsPostAmendmentFields.html @@ -0,0 +1,436 @@ +FeeSettingsPostAmendmentFields | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface FeeSettingsPostAmendmentFields

    +
    +

    Hierarchy

    +
      +
    • FeeSettingsPostAmendmentFields
    +
    +
    +
    + +
    +
    +

    Properties

    +
    + +
    BaseFeeDrops: string
    +

    The transaction cost of the "reference transaction" in drops of XRP as hexadecimal.

    +
    +
    +
    + +
    ReserveBaseDrops: string
    +

    The base reserve for an account in the XRP Ledger, as drops of XRP.

    +
    +
    +
    + +
    ReserveIncrementDrops: string
    +

    The incremental owner reserve for owning objects, as drops of XRP.

    +
    +
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/LedgerEntry.FeeSettingsPreAmendmentFields.html b/docs/interfaces/LedgerEntry.FeeSettingsPreAmendmentFields.html new file mode 100644 index 0000000000..ed57665e9b --- /dev/null +++ b/docs/interfaces/LedgerEntry.FeeSettingsPreAmendmentFields.html @@ -0,0 +1,446 @@ +FeeSettingsPreAmendmentFields | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface FeeSettingsPreAmendmentFields

    +
    +

    Hierarchy

    +
      +
    • FeeSettingsPreAmendmentFields
    +
    +
    +
    + +
    +
    +

    Properties

    +
    + +
    BaseFee: string
    +

    The transaction cost of the "reference transaction" in drops of XRP as hexadecimal.

    +
    +
    +
    + +
    ReferenceFeeUnits: number
    +

    The BaseFee translated into "fee units".

    +
    +
    +
    + +
    ReserveBase: number
    +

    The base reserve for an account in the XRP Ledger, as drops of XRP.

    +
    +
    +
    + +
    ReserveIncrement: number
    +

    The incremental owner reserve for owning objects, as drops of XRP.

    +
    +
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/LedgerEntry.Ledger.html b/docs/interfaces/LedgerEntry.Ledger.html index ba55713069..ad7fd4e808 100644 --- a/docs/interfaces/LedgerEntry.Ledger.html +++ b/docs/interfaces/LedgerEntry.Ledger.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -Ledger | xrpl
    +Ledger | xrpl
    -
    +
    • xrpl
    • @@ -25,13 +25,14 @@

      Interface Ledger

    A ledger is a block of transactions and shared state data. It has a unique header that describes its contents using cryptographic hashes.

    -
    +
    +

    Hierarchy

    • Ledger
    +
  • Defined in packages/xrpl/src/models/ledger/Ledger.ts:11
  • @@ -39,136 +40,151 @@

    Properties

    -
    - -
    accountState?: LedgerEntry[]
    -

    All the state information in this ledger.

    -
    -
    - -
    account_hash: string
    +
    + +
    accountState?: LedgerEntry[]
    +

    All the state information in this ledger. Admin only.

    +
    +
    +
    + +
    account_hash: string

    The SHA-512Half of this ledger's state tree information.

    -
    +
    -
    - -
    close_flags: number
    +
  • Defined in packages/xrpl/src/models/ledger/Ledger.ts:13
  • +
    + +
    close_flags: number

    A bit-map of flags relating to the closing of this ledger.

    -
    -
    - -
    close_time: number
    +
  • Defined in packages/xrpl/src/models/ledger/Ledger.ts:17
  • +
    + +
    close_time: number

    The approximate time this ledger version closed, as the number of seconds since the Ripple Epoch of 2000-01-01 00:00:00. This value is rounded based on the close_time_resolution.

    -
    -
    - -
    close_time_human: string
    +
  • Defined in packages/xrpl/src/models/ledger/Ledger.ts:23
  • +
    + +
    close_time_human: string

    The approximate time this ledger was closed, in human-readable format. Always uses the UTC time zone.

    -
    -
    - -
    close_time_resolution: number
    +
  • Defined in packages/xrpl/src/models/ledger/Ledger.ts:28
  • +
    + +
    close_time_resolution: number

    An integer in the range [2,120] indicating the maximum number of seconds by which the close_time could be rounded.

    -
    -
    - -
    closed: boolean
    +
  • Defined in packages/xrpl/src/models/ledger/Ledger.ts:33
  • +
    + +
    closed: boolean

    Whether or not this ledger has been closed.

    -
    -
    - -
    ledger_hash: string
    +
  • Defined in packages/xrpl/src/models/ledger/Ledger.ts:35
  • +
    + +
    ledger_hash: string

    The SHA-512Half of this ledger version. This serves as a unique identifier for this ledger and all its contents.

    -
    -
    - -
    ledger_index: string
    +
  • Defined in packages/xrpl/src/models/ledger/Ledger.ts:40
  • +
    + +
    ledger_index: string

    The ledger index of the ledger. Some API methods display this as a quoted integer; some display it as a native JSON number.

    -
    -
    - -
    parent_close_time: number
    +
  • Defined in packages/xrpl/src/models/ledger/Ledger.ts:45
  • +
    + +
    parent_close_time: number

    The approximate time at which the previous ledger was closed.

    -
    -
    - -
    parent_hash: string
    +
  • Defined in packages/xrpl/src/models/ledger/Ledger.ts:47
  • +
    + +
    parent_hash: string

    Unique identifying hash of the ledger that came immediately before this one.

    -
    -
    - -
    total_coins: string
    +
  • Defined in packages/xrpl/src/models/ledger/Ledger.ts:52
  • +
    + +
    total_coins: string

    Total number of XRP drops in the network, as a quoted integer.

    -
    -
    - -
    transaction_hash: string
    +
  • Defined in packages/xrpl/src/models/ledger/Ledger.ts:54
  • +
    + +
    transaction_hash: string

    Hash of the transaction information included in this ledger, as hex.

    -
    -
    - -
    transactions?: Object[]
    +
  • Defined in packages/xrpl/src/models/ledger/Ledger.ts:56
  • +
    + +
    transactions?: Object[]

    Transactions applied in this ledger version. By default, members are the transactions' identifying Hash strings. If the request specified expand as true, members are full representations of the transactions instead, in either JSON or binary depending on whether the request specified binary as true.

    -
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • accountState
  • +
  • account_hash
  • +
  • close_flags
  • +
  • close_time
  • +
  • close_time_human
  • +
  • close_time_resolution
  • +
  • closed
  • +
  • ledger_hash
  • +
  • ledger_index
  • +
  • parent_close_time
  • +
  • parent_hash
  • +
  • total_coins
  • +
  • transaction_hash
  • +
  • transactions
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/LedgerEntry.LedgerHashes.html b/docs/interfaces/LedgerEntry.LedgerHashes.html index a9c6e79d0d..1da66816bd 100644 --- a/docs/interfaces/LedgerEntry.LedgerHashes.html +++ b/docs/interfaces/LedgerEntry.LedgerHashes.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -LedgerHashes | xrpl
    +LedgerHashes | xrpl
    -
    +
    • xrpl
    • @@ -26,15 +26,17 @@

      Interface LedgerHashes

    The LedgerHashes objects exist to make it possible to look up a previous ledger's hash with only the current ledger version and at most one lookup of a previous ledger version.

    -
    +
    +

    Hierarchy

      -
    • default +
    • BaseLedgerEntry
    • +
    • MissingPreviousTxnID
      • LedgerHashes
    +
  • Defined in packages/xrpl/src/models/ledger/LedgerHashes.ts:10
  • @@ -42,52 +44,76 @@

    Properties

    -
    - -
    Flags: number
    +
    + +
    Flags: number

    A bit-map of boolean flags for this object. No flags are defined for this type.

    -
    +
    -
    - -
    Hashes: string[]
    +
  • Defined in packages/xrpl/src/models/ledger/LedgerHashes.ts:25
  • +
    + +
    Hashes: string[]

    An array of up to 256 ledger hashes. The contents depend on which sub-type of LedgerHashes object this is.

    -
    -
    - -
    LastLedgerSequence?: number
    +
  • Defined in packages/xrpl/src/models/ledger/LedgerHashes.ts:20
  • +
    + +
    LastLedgerSequence?: number

    The Ledger Index of the last entry in this object's Hashes array.

    -
    -
    - -
    LedgerEntryType: "LedgerHashes"
    +
    + +
    LedgerEntryType: "LedgerHashes"
    -
    - -
    index: string
    +
    + +
    PreviousTxnID: never
    +

    This field is missing on this object but is present on most other returned objects.

    +
    +
    +
    + +
    PreviousTxnLgrSeq: never
    +

    This field is missing on this object but is present on most other returned objects.

    +
    +
    +
    + +
    index: string
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • Flags
  • +
  • Hashes
  • +
  • LastLedgerSequence
  • +
  • LedgerEntryType
  • +
  • PreviousTxnID
  • +
  • PreviousTxnLgrSeq
  • +
  • index
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/LedgerEntry.Majority.html b/docs/interfaces/LedgerEntry.Majority.html new file mode 100644 index 0000000000..0fad4bd33d --- /dev/null +++ b/docs/interfaces/LedgerEntry.Majority.html @@ -0,0 +1,427 @@ +Majority | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface Majority

    +
    +

    Hierarchy

    +
      +
    • Majority
    +
    +
    +
    + +
    +
    +

    Properties

    +
    +
    +

    Properties

    +
    + +
    Majority: {
        Amendment: string;
        CloseTime: number;
    }
    +
    +

    Type declaration

    +
      +
    • +
      Amendment: string
      +

      The Amendment ID of the pending amendment.

      +
      +
    • +
    • +
      CloseTime: number
      +

      The close_time field of the ledger version where this amendment most +recently gained a majority.

      +
      +
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/LedgerEntry.NFToken.html b/docs/interfaces/LedgerEntry.NFToken.html new file mode 100644 index 0000000000..dc48c8cb78 --- /dev/null +++ b/docs/interfaces/LedgerEntry.NFToken.html @@ -0,0 +1,426 @@ +NFToken | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface NFToken

    +
    +

    Hierarchy

    +
      +
    • NFToken
    +
    +
    +
    + +
    +
    +

    Properties

    +
    +
    +

    Properties

    +
    + +
    NFToken: {
        Flags: number;
        Issuer: string;
        NFTokenID: string;
        NFTokenTaxon: number;
        URI?: string;
    }
    +
    +

    Type declaration

    +
      +
    • +
      Flags: number
    • +
    • +
      Issuer: string
    • +
    • +
      NFTokenID: string
    • +
    • +
      NFTokenTaxon: number
    • +
    • +
      Optional URI?: string
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/LedgerEntry.NFTokenOffer.html b/docs/interfaces/LedgerEntry.NFTokenOffer.html new file mode 100644 index 0000000000..8a33c98f04 --- /dev/null +++ b/docs/interfaces/LedgerEntry.NFTokenOffer.html @@ -0,0 +1,497 @@ +NFTokenOffer | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface NFTokenOffer

    +
    +

    Hierarchy

    +
      +
    • BaseLedgerEntry
    • +
    • HasPreviousTxnID +
        +
      • NFTokenOffer
    +
    +
    +
    + +
    +
    +

    Properties

    +
    + +
    Amount: Amount
    +
    + +
    Destination?: string
    +
    + +
    Expiration: number
    +
    + +
    Flags: number
    +
    + +
    LedgerEntryType: "NFTokenOffer"
    +
    + +
    NFTokenOfferNode?: string
    +
    + +
    Owner: string
    +
    + +
    OwnerNode?: string
    +
    + +
    PreviousTxnID: string
    +

    The identifying hash of the transaction that most recently modified this +object.

    +
    +
    +
    + +
    PreviousTxnLgrSeq: number
    +

    The index of the ledger that contains the transaction that most recently +modified this object.

    +
    +
    +
    + +
    index: string
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/LedgerEntry.NFTokenPage.html b/docs/interfaces/LedgerEntry.NFTokenPage.html new file mode 100644 index 0000000000..f8b59829f6 --- /dev/null +++ b/docs/interfaces/LedgerEntry.NFTokenPage.html @@ -0,0 +1,469 @@ +NFTokenPage | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface NFTokenPage

    +
    +

    Hierarchy

    +
      +
    • BaseLedgerEntry
    • +
    • HasPreviousTxnID +
        +
      • NFTokenPage
    +
    +
    +
    + +
    +
    +

    Properties

    +
    + +
    LedgerEntryType: "NFTokenPage"
    +
    + +
    NFTokens: LedgerEntry.NFToken[]
    +
    + +
    NextPageMin?: string
    +
    + +
    PreviousPageMin?: string
    +
    + +
    PreviousTxnID: string
    +

    The identifying hash of the transaction that most recently modified this +object.

    +
    +
    +
    + +
    PreviousTxnLgrSeq: number
    +

    The index of the ledger that contains the transaction that most recently +modified this object.

    +
    +
    +
    + +
    index: string
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/LedgerEntry.NegativeUNL.html b/docs/interfaces/LedgerEntry.NegativeUNL.html index 25ee1400b9..51f6d3d50a 100644 --- a/docs/interfaces/LedgerEntry.NegativeUNL.html +++ b/docs/interfaces/LedgerEntry.NegativeUNL.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -NegativeUNL | xrpl
    +NegativeUNL | xrpl
    -
    +
    • xrpl
    • @@ -25,15 +25,17 @@

      Interface NegativeUNL

    The NegativeUNL object type contains the current status of the Negative UNL, a list of trusted validators currently believed to be offline.

    -
    +
    +

    Hierarchy

      -
    • default +
    • BaseLedgerEntry
    • +
    • MissingPreviousTxnID
      • NegativeUNL
    +
  • Defined in packages/xrpl/src/models/ledger/NegativeUNL.ts:15
  • @@ -41,52 +43,83 @@

    Properties

    -
    - -
    DisabledValidators?: DisabledValidator[]
    +
    + +
    DisabledValidators?: {
        FirstLedgerSequence: number;
        PublicKey: string;
    }[]

    A list of trusted validators that are currently disabled.

    -
    +
    +

    Type declaration

    +
      +
    • +
      FirstLedgerSequence: number
    • +
    • +
      PublicKey: string
    +
    -
    - -
    LedgerEntryType: "NegativeUNL"
    +
    + +
    LedgerEntryType: "NegativeUNL"
    -
    - -
    ValidatorToDisable?: string
    +
  • Defined in packages/xrpl/src/models/ledger/NegativeUNL.ts:18
  • +
    + +
    PreviousTxnID: never
    +

    This field is missing on this object but is present on most other returned objects.

    +
    +
    +
    + +
    PreviousTxnLgrSeq: never
    +

    This field is missing on this object but is present on most other returned objects.

    +
    +
    +
    + +
    ValidatorToDisable?: string

    The public key of a trusted validator that is scheduled to be disabled in the next flag ledger.

    -
    -
    - -
    ValidatorToReEnable?: string
    +
  • Defined in packages/xrpl/src/models/ledger/NegativeUNL.ts:30
  • +
    + +
    ValidatorToReEnable?: string

    The public key of a trusted validator in the Negative UNL that is scheduled to be re-enabled in the next flag ledger.

    -
    -
    - -
    index: string
    +
    + +
    index: string
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • DisabledValidators
  • +
  • LedgerEntryType
  • +
  • PreviousTxnID
  • +
  • PreviousTxnLgrSeq
  • +
  • ValidatorToDisable
  • +
  • ValidatorToReEnable
  • +
  • index
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/LedgerEntry.Offer.html b/docs/interfaces/LedgerEntry.Offer.html index 0489f87eb2..2931ca4f8e 100644 --- a/docs/interfaces/LedgerEntry.Offer.html +++ b/docs/interfaces/LedgerEntry.Offer.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -Offer | xrpl
    +Offer | xrpl
    -
    +

    Properties

    -
    - -
    Account: string
    +
    + +
    Account: string

    The address of the account that placed this Offer.

    -
    +
    -
    - -
    BookDirectory: string
    +
  • Defined in packages/xrpl/src/models/ledger/Offer.ts:10
  • +
    + +
    BookDirectory: string

    The ID of the Offer Directory that links to this Offer.

    -
    +
    -
    - -
    BookNode: string
    +
  • Defined in packages/xrpl/src/models/ledger/Offer.ts:24
  • +
    + +
    BookNode: string

    A hint indicating which page of the Offer Directory links to this object, in case the directory consists of multiple pages.

    -
    -
    - -
    Expiration?: number
    +
  • Defined in packages/xrpl/src/models/ledger/Offer.ts:29
  • +
    + +
    Expiration?: number

    The time this Offer expires, in seconds since the Ripple Epoch.

    -
    -
    - -
    Flags: number
    +
  • Defined in packages/xrpl/src/models/ledger/Offer.ts:36
  • +
    + +
    Flags: number

    A bit-map of boolean flags enabled for this Offer.

    -
    -
    - -
    LedgerEntryType: "Offer"
    +
    + +
    LedgerEntryType: "Offer"
    -
    - -
    OwnerNode: string
    +
  • Defined in packages/xrpl/src/models/ledger/Offer.ts:6
  • +
    + +
    OwnerNode: string

    A hint indicating which page of the Owner Directory links to this object, in case the directory consists of multiple pages.

    -
    -
    - -
    PreviousTxnID: string
    +
  • Defined in packages/xrpl/src/models/ledger/Offer.ts:34
  • +
    + +
    PreviousTxnID: string

    The identifying hash of the transaction that most recently modified this object.

    -
    -
    - -
    PreviousTxnLgrSeq: number
    +
  • Defined in packages/xrpl/src/models/ledger/BaseLedgerEntry.ts:10
  • +
    + +
    PreviousTxnLgrSeq: number

    The index of the ledger that contains the transaction that most recently modified this object.

    -
    -
    - -
    Sequence: number
    +
  • Defined in packages/xrpl/src/models/ledger/BaseLedgerEntry.ts:15
  • +
    + +
    Sequence: number

    The Sequence value of the OfferCreate transaction that created this Offer object. Used in combination with the Account to identify this Offer.

    -
    -
    - -
    TakerGets: Amount
    +
  • Defined in packages/xrpl/src/models/ledger/Offer.ts:15
  • +
    + +
    TakerGets: Amount

    The remaining amount and type of currency being provided by the Offer creator.

    -
    -
    - -
    TakerPays: Amount
    +
  • Defined in packages/xrpl/src/models/ledger/Offer.ts:22
  • +
    + +
    TakerPays: Amount

    The remaining amount and type of currency requested by the Offer creator.

    -
    -
    - -
    index: string
    +
    + +
    index: string
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • Account
  • +
  • BookDirectory
  • +
  • BookNode
  • +
  • Expiration
  • +
  • Flags
  • +
  • LedgerEntryType
  • +
  • OwnerNode
  • +
  • PreviousTxnID
  • +
  • PreviousTxnLgrSeq
  • +
  • Sequence
  • +
  • TakerGets
  • +
  • TakerPays
  • +
  • index
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/LedgerEntry.PayChannel.html b/docs/interfaces/LedgerEntry.PayChannel.html index 05dbe9333a..82554f6190 100644 --- a/docs/interfaces/LedgerEntry.PayChannel.html +++ b/docs/interfaces/LedgerEntry.PayChannel.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -PayChannel | xrpl
    +PayChannel | xrpl
    -
    +
    • xrpl
    • @@ -28,15 +28,17 @@

      Interface PayChannel

    with the consensus ledger. A payment channel holds a balance of XRP that can only be paid out to a specific destination address until the channel is closed.

    -
    +
    +

    Hierarchy

      -
    • default +
    • BaseLedgerEntry
    • +
    • HasPreviousTxnID
      • PayChannel
    +
  • Defined in packages/xrpl/src/models/ledger/PayChannel.ts:12
  • @@ -44,179 +46,197 @@

    Properties

    -
    - -
    Account: string
    +
    + +
    Account: string

    The source address that owns this payment channel. This comes from the sending address of the transaction that created the channel.

    -
    -
    - -
    Amount: string
    +
  • Defined in packages/xrpl/src/models/ledger/PayChannel.ts:18
  • +
    + +
    Amount: string

    Total XRP, in drops, that has been allocated to this channel. This includes XRP that has been paid to the destination address. This is initially set by the transaction that created the channel and can be increased if the source address sends a PaymentChannelFund transaction.

    -
    -
    - -
    Balance: string
    +
  • Defined in packages/xrpl/src/models/ledger/PayChannel.ts:32
  • +
    + +
    Balance: string

    Total XRP, in drops, already paid out by the channel. The difference between this value and the Amount field is how much XRP can still be paid to the destination address with PaymentChannelClaim transactions. If the channel closes, the remaining difference is returned to the source address.

    -
    -
    - -
    CancelAfter?: number
    +
  • Defined in packages/xrpl/src/models/ledger/PayChannel.ts:39
  • +
    + +
    CancelAfter?: number

    The immutable expiration time for this payment channel, in seconds since the Ripple Epoch. This channel is expired if this value is present and smaller than the previous ledger's close_time field. This is optionally set by the transaction that created the channel, and cannot be changed.

    -
    -
    - -
    Destination: string
    +
  • Defined in packages/xrpl/src/models/ledger/PayChannel.ts:81
  • +
    + +
    Destination: string

    The destination address for this payment channel. While the payment channel is open, this address is the only one that can receive XRP from the channel. This comes from the Destination field of the transaction that created the channel.

    -
    -
    - -
    DestinationNode?: string
    +
  • Defined in packages/xrpl/src/models/ledger/PayChannel.ts:25
  • +
    + +
    DestinationNode?: string

    A hint indicating which page of the destination's owner directory links to this object, in case the directory consists of multiple pages.

    -
    -
    - -
    DestinationTag?: number
    +
  • Defined in packages/xrpl/src/models/ledger/PayChannel.ts:96
  • +
    + +
    DestinationTag?: number

    An arbitrary tag to further specify the destination for this payment channel, such as a hosted recipient at the destination address.

    -
    -
    - -
    Expiration?: number
    +
  • Defined in packages/xrpl/src/models/ledger/PayChannel.ts:91
  • +
    + +
    Expiration?: number

    The mutable expiration time for this payment channel, in seconds since the Ripple Epoch. The channel is expired if this value is present and smaller than the previous ledger's close_time field. See Setting Channel Expiration for more details.

    -
    -
    - -
    Flags: number
    +
  • Defined in packages/xrpl/src/models/ledger/PayChannel.ts:74
  • +
    + +
    Flags: number

    A bit-map of boolean flags enabled for this payment channel. Currently, the protocol defines no flags for PayChannel objects.

    -
    -
    - -
    LedgerEntryType: "PayChannel"
    +
    + +
    LedgerEntryType: "PayChannel"
    -
    - -
    OwnerNode: string
    +
  • Defined in packages/xrpl/src/models/ledger/PayChannel.ts:13
  • +
    + +
    OwnerNode: string

    A hint indicating which page of the source address's owner directory links to this object, in case the directory consists of multiple pages.

    -
    -
    - -
    PreviousTxnID: string
    +
  • Defined in packages/xrpl/src/models/ledger/PayChannel.ts:62
  • +
    + +
    PreviousTxnID: string

    The identifying hash of the transaction that most recently modified this object.

    -
    -
    - -
    PreviousTxnLgrSeq: number
    +
  • Defined in packages/xrpl/src/models/ledger/BaseLedgerEntry.ts:10
  • +
    + +
    PreviousTxnLgrSeq: number

    The index of the ledger that contains the transaction that most recently modified this object.

    -
    -
    - -
    PublicKey: string
    +
  • Defined in packages/xrpl/src/models/ledger/BaseLedgerEntry.ts:15
  • +
    + +
    PublicKey: string

    Public key, in hexadecimal, of the key pair that can be used to sign claims against this channel. This can be any valid secp256k1 or Ed25519 public key. This is set by the transaction that created the channel and must match the public key used in claims against the channel. The channel source address can also send XRP from this channel to the destination without signed claims.

    -
    -
    - -
    SettleDelay: number
    +
  • Defined in packages/xrpl/src/models/ledger/PayChannel.ts:48
  • +
    + +
    SettleDelay: number

    Number of seconds the source address must wait to close the channel if it still has any XRP in it. Smaller values mean that the destination address has less time to redeem any outstanding claims after the source address requests to close the channel. Can be any value that fits in a 32-bit unsigned integer (0 to 2^32-1). This is set by the transaction that creates the channel.

    -
    -
    - -
    SourceTag?: number
    +
  • Defined in packages/xrpl/src/models/ledger/PayChannel.ts:57
  • +
    + +
    SourceTag?: number

    An arbitrary tag to further specify the source for this payment channel useful for specifying a hosted recipient at the owner's address.

    -
    -
    - -
    index: string
    +
    + +
    index: string
    -
    +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • Account
  • +
  • Amount
  • +
  • Balance
  • +
  • CancelAfter
  • +
  • Destination
  • +
  • DestinationNode
  • +
  • DestinationTag
  • +
  • Expiration
  • +
  • Flags
  • +
  • LedgerEntryType
  • +
  • OwnerNode
  • +
  • PreviousTxnID
  • +
  • PreviousTxnLgrSeq
  • +
  • PublicKey
  • +
  • SettleDelay
  • +
  • SourceTag
  • +
  • index
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/LedgerEntry.RippleState.html b/docs/interfaces/LedgerEntry.RippleState.html index f5ad1d83ff..5a072aaec5 100644 --- a/docs/interfaces/LedgerEntry.RippleState.html +++ b/docs/interfaces/LedgerEntry.RippleState.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -RippleState | xrpl
    +RippleState | xrpl
    -
    +
    • xrpl
    • @@ -24,15 +24,17 @@

      Interface RippleState

    The RippleState object type connects two accounts in a single currency.

    -
    +
    +

    Hierarchy

      -
    • default +
    • BaseLedgerEntry
    • +
    • HasPreviousTxnID
      • RippleState
    +
  • Defined in packages/xrpl/src/models/ledger/RippleState.ts:10
  • @@ -40,138 +42,153 @@

    Properties

    -
    - -
    Balance: IssuedCurrencyAmount
    +
    + +

    The balance of the trust line, from the perspective of the low account. A negative balance indicates that the low account has issued currency to the high account. The issuer is always the neutral value ACCOUNT_ONE.

    -
    +
    -
    - -
    Flags: number
    +
  • Defined in packages/xrpl/src/models/ledger/RippleState.ts:19
  • +
    + +
    Flags: number

    A bit-map of boolean options enabled for this object.

    -
    -
    - -
    HighLimit: IssuedCurrencyAmount
    +
  • Defined in packages/xrpl/src/models/ledger/RippleState.ts:13
  • +
    + +

    The limit that the high account has set on the trust line. The issuer is the address of the high account that set this limit.

    -
    -
    - -
    HighNode?: string
    +
  • Defined in packages/xrpl/src/models/ledger/RippleState.ts:29
  • +
    + +
    HighNode?: string

    A hint indicating which page of the high account's owner directory links to this object, in case the directory consists of multiple pages.

    -
    -
    - -
    HighQualityIn?: number
    +
  • Defined in packages/xrpl/src/models/ledger/RippleState.ts:39
  • +
    + +
    HighQualityIn?: number

    The inbound quality set by the high account, as an integer in the implied ratio HighQualityIn:1,000,000,000. As a special case, the value 0 is equivalent to 1 billion, or face value.

    -
    -
    - -
    HighQualityOut?: number
    +
  • Defined in packages/xrpl/src/models/ledger/RippleState.ts:57
  • +
    + +
    HighQualityOut?: number

    The outbound quality set by the high account, as an integer in the implied ratio HighQualityOut:1,000,000,000. As a special case, the value 0 is equivalent to 1 billion, or face value.

    -
    -
    - -
    LedgerEntryType: "RippleState"
    +
    + +
    LedgerEntryType: "RippleState"
    -
    - -
    LowLimit: IssuedCurrencyAmount
    +
  • Defined in packages/xrpl/src/models/ledger/RippleState.ts:11
  • +
    + +

    The limit that the low account has set on the trust line. The issuer is the address of the low account that set this limit.

    -
    -
    - -
    LowNode?: string
    +
  • Defined in packages/xrpl/src/models/ledger/RippleState.ts:24
  • +
    + +
    LowNode?: string

    A hint indicating which page of the low account's owner directory links to this object, in case the directory consists of multiple pages.

    -
    -
    - -
    LowQualityIn?: number
    +
  • Defined in packages/xrpl/src/models/ledger/RippleState.ts:34
  • +
    + +
    LowQualityIn?: number

    The inbound quality set by the low account, as an integer in the implied ratio LowQualityIn:1,000,000,000. As a special case, the value 0 is equivalent to 1 billion, or face value.

    -
    -
    - -
    LowQualityOut?: number
    +
  • Defined in packages/xrpl/src/models/ledger/RippleState.ts:45
  • +
    + +
    LowQualityOut?: number

    The outbound quality set by the low account, as an integer in the implied ratio LowQualityOut:1,000,000,000. As a special case, the value 0 is equivalent to 1 billion, or face value.

    -
    -
    - -
    PreviousTxnID: string
    +
  • Defined in packages/xrpl/src/models/ledger/RippleState.ts:51
  • +
    + +
    PreviousTxnID: string

    The identifying hash of the transaction that most recently modified this object.

    -
    -
    - -
    PreviousTxnLgrSeq: number
    +
  • Defined in packages/xrpl/src/models/ledger/BaseLedgerEntry.ts:10
  • +
    + +
    PreviousTxnLgrSeq: number

    The index of the ledger that contains the transaction that most recently modified this object.

    -
    -
    - -
    index: string
    +
    + +
    index: string
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • Balance
  • +
  • Flags
  • +
  • HighLimit
  • +
  • HighNode
  • +
  • HighQualityIn
  • +
  • HighQualityOut
  • +
  • LedgerEntryType
  • +
  • LowLimit
  • +
  • LowNode
  • +
  • LowQualityIn
  • +
  • LowQualityOut
  • +
  • PreviousTxnID
  • +
  • PreviousTxnLgrSeq
  • +
  • index
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/LedgerEntry.SignerList.html b/docs/interfaces/LedgerEntry.SignerList.html index 7bb4804b2b..3e1ad9904c 100644 --- a/docs/interfaces/LedgerEntry.SignerList.html +++ b/docs/interfaces/LedgerEntry.SignerList.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -SignerList | xrpl
    +SignerList | xrpl
    -
    +
    • xrpl
    • @@ -27,15 +27,17 @@

      Interface SignerList

    are authorized to sign a transaction in place of an individual account. You can create, replace, or remove a signer list using a SignerListSet transaction.

    -
    +
    +

    Hierarchy

      -
    • default +
    • BaseLedgerEntry
    • +
    • HasPreviousTxnID
      • SignerList
    +
  • Defined in packages/xrpl/src/models/ledger/SignerList.ts:13
  • @@ -43,90 +45,100 @@

    Properties

    -
    - -
    Flags: number
    +
    + +
    Flags: number

    A bit-map of Boolean flags enabled for this signer list. For more information, see SignerList Flags.

    -
    -
    - -
    LedgerEntryType: "SignerList"
    +
    + +
    LedgerEntryType: "SignerList"
    -
    - -
    OwnerNode: string
    +
  • Defined in packages/xrpl/src/models/ledger/SignerList.ts:14
  • +
    + +
    OwnerNode: string

    A hint indicating which page of the owner directory links to this object, in case the directory consists of multiple pages.

    -
    -
    - -
    PreviousTxnID: string
    +
  • Defined in packages/xrpl/src/models/ledger/SignerList.ts:24
  • +
    + +
    PreviousTxnID: string

    The identifying hash of the transaction that most recently modified this object.

    -
    -
    - -
    PreviousTxnLgrSeq: number
    +
  • Defined in packages/xrpl/src/models/ledger/BaseLedgerEntry.ts:10
  • +
    + +
    PreviousTxnLgrSeq: number

    The index of the ledger that contains the transaction that most recently modified this object.

    -
    -
    - -
    SignerEntries: SignerEntry[]
    +
  • Defined in packages/xrpl/src/models/ledger/BaseLedgerEntry.ts:15
  • +
    + +
    SignerEntries: SignerEntry[]

    An array of Signer Entry objects representing the parties who are part of this signer list.

    -
    -
    - -
    SignerListID: number
    +
  • Defined in packages/xrpl/src/models/ledger/SignerList.ts:29
  • +
    + +
    SignerListID: number

    An ID for this signer list. Currently always set to 0. If a future amendment allows multiple signer lists for an account, this may change.

    -
    -
    - -
    SignerQuorum: number
    +
  • Defined in packages/xrpl/src/models/ledger/SignerList.ts:34
  • +
    + +
    SignerQuorum: number

    A target number for signer weights. To produce a valid signature for the owner of this SignerList, the signers must provide valid signatures whose weights sum to this value or more.

    -
    -
    - -
    index: string
    +
    + +
    index: string
    -
    +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • Flags
  • +
  • LedgerEntryType
  • +
  • OwnerNode
  • +
  • PreviousTxnID
  • +
  • PreviousTxnLgrSeq
  • +
  • SignerEntries
  • +
  • SignerListID
  • +
  • SignerQuorum
  • +
  • index
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/LedgerEntry.Ticket.html b/docs/interfaces/LedgerEntry.Ticket.html index f34958ebb0..25b629b914 100644 --- a/docs/interfaces/LedgerEntry.Ticket.html +++ b/docs/interfaces/LedgerEntry.Ticket.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -Ticket | xrpl
    +Ticket | xrpl
    -
    +
    • xrpl
    • @@ -26,15 +26,17 @@

      Interface Ticket

    The Ticket object type represents a Ticket, which tracks an account sequence number that has been set aside for future use. You can create new tickets with a TicketCreate transaction.

    -
    +
    +

    Hierarchy

      -
    • default +
    • BaseLedgerEntry
    • +
    • HasPreviousTxnID
      • Ticket
    +
  • Defined in packages/xrpl/src/models/ledger/Ticket.ts:10
  • @@ -42,78 +44,87 @@

    Properties

    -
    - -
    Account: string
    +
    + +
    Account: string

    The account that owns this Ticket.

    -
    +
    -
    - -
    Flags: number
    +
  • Defined in packages/xrpl/src/models/ledger/Ticket.ts:13
  • +
    + +
    Flags: number

    A bit-map of Boolean flags enabled for this Ticket. Currently, there are no flags defined for Tickets.

    -
    -
    - -
    LedgerEntryType: "Ticket"
    +
    + +
    LedgerEntryType: "Ticket"
    -
    - -
    OwnerNode: string
    +
  • Defined in packages/xrpl/src/models/ledger/Ticket.ts:11
  • +
    + +
    OwnerNode: string

    A hint indicating which page of the owner directory links to this object, in case the directory consists of multiple pages.

    -
    -
    - -
    PreviousTxnID: string
    +
  • Defined in packages/xrpl/src/models/ledger/Ticket.ts:23
  • +
    + +
    PreviousTxnID: string

    The identifying hash of the transaction that most recently modified this object.

    -
    -
    - -
    PreviousTxnLgrSeq: number
    +
  • Defined in packages/xrpl/src/models/ledger/BaseLedgerEntry.ts:10
  • +
    + +
    PreviousTxnLgrSeq: number

    The index of the ledger that contains the transaction that most recently modified this object.

    -
    -
    - -
    TicketSequence: number
    +
  • Defined in packages/xrpl/src/models/ledger/BaseLedgerEntry.ts:15
  • +
    + +
    TicketSequence: number

    The Sequence Number this Ticket sets aside.

    -
    -
    - -
    index: string
    +
    + +
    index: string
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • Account
  • +
  • Flags
  • +
  • LedgerEntryType
  • +
  • OwnerNode
  • +
  • PreviousTxnID
  • +
  • PreviousTxnLgrSeq
  • +
  • TicketSequence
  • +
  • index
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/LedgerEntry.VoteSlot.html b/docs/interfaces/LedgerEntry.VoteSlot.html new file mode 100644 index 0000000000..5fca7a062f --- /dev/null +++ b/docs/interfaces/LedgerEntry.VoteSlot.html @@ -0,0 +1,422 @@ +VoteSlot | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface VoteSlot

    +
    +

    Hierarchy

    +
      +
    • VoteSlot
    +
    +
    +
    + +
    +
    +

    Properties

    +
    +
    +

    Properties

    +
    + +
    VoteEntry: {
        Account: string;
        TradingFee: number;
        VoteWeight: number;
    }
    +
    +

    Type declaration

    +
      +
    • +
      Account: string
    • +
    • +
      TradingFee: number
    • +
    • +
      VoteWeight: number
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/LedgerEntry.XChainOwnedClaimID.html b/docs/interfaces/LedgerEntry.XChainOwnedClaimID.html new file mode 100644 index 0000000000..00b0e7b1e9 --- /dev/null +++ b/docs/interfaces/LedgerEntry.XChainOwnedClaimID.html @@ -0,0 +1,563 @@ +XChainOwnedClaimID | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface XChainOwnedClaimID

    +
    +

    An XChainOwnedClaimID object represents one cross-chain transfer of value +and includes information of the account on the source chain that locks or +burns the funds on the source chain.

    +
    +
    +
    +

    Hierarchy

    +
      +
    • BaseLedgerEntry
    • +
    • HasPreviousTxnID +
        +
      • XChainOwnedClaimID
    +
    +
    +
    + +
    +
    +

    Properties

    +
    + +
    Account: string
    +

    The account that checked out this unique claim ID value.

    +
    +
    +
    + +
    Flags: 0
    +

    A bit-map of boolean flags. No flags are defined for XChainOwnedClaimIDs, +so this value is always 0.

    +
    +
    +
    + +
    LedgerEntryType: "XChainOwnedClaimID"
    +
    + +
    OtherChainSource: string
    +

    The account that must send the corresponding XChainCommit on the +source chain. The destination may be specified in the XChainCommit +transaction, which means that if the OtherChainSource isn't specified, +another account can try to specify a different destination and steal the +funds. This also allows tracking only a single set of signatures, since we +know which account will send the XChainCommit transaction.

    +
    +
    +
    + +
    OwnerNode: string
    +

    A hint indicating which page of the sender's owner directory links to this +object, in case the directory consists of multiple pages.

    +
    +
    +
    + +
    PreviousTxnID: string
    +

    The identifying hash of the transaction that most recently modified this +object.

    +
    +
    +
    + +
    PreviousTxnLgrSeq: number
    +

    The index of the ledger that contains the transaction that most recently +modified this object.

    +
    +
    +
    + +
    SignatureReward: string
    +

    The total amount to pay the witness servers for their signatures. It must be at +least the value of the SignatureReward in the Bridge ledger object.

    +
    +
    +
    + +
    XChainBridge: XChainBridge
    +

    The door accounts and assets of the bridge this object correlates to.

    +
    +
    +
    + +
    XChainClaimAttestations: {
        XChainClaimProofSig: {
            Amount: Amount;
            AttestationRewardAccount: string;
            AttestationSignerAccount: string;
            Destination?: string;
            PublicKey: string;
            WasLockingChainSend: 0 | 1;
        };
    }[]
    +

    Attestations collected from the witness servers. This includes the parameters +needed to recreate the message that was signed, including the amount, which +chain (locking or issuing), optional destination, and reward account for that +signature.

    +
    +
    +

    Type declaration

    +
      +
    • +
      XChainClaimProofSig: {
          Amount: Amount;
          AttestationRewardAccount: string;
          AttestationSignerAccount: string;
          Destination?: string;
          PublicKey: string;
          WasLockingChainSend: 0 | 1;
      }
      +
        +
      • +
        Amount: Amount
      • +
      • +
        AttestationRewardAccount: string
      • +
      • +
        AttestationSignerAccount: string
      • +
      • +
        Optional Destination?: string
      • +
      • +
        PublicKey: string
      • +
      • +
        WasLockingChainSend: 0 | 1
    +
    +
    + +
    XChainClaimID: string
    +

    The unique sequence number for a cross-chain transfer.

    +
    +
    +
    + +
    index: string
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/LedgerEntry.XChainOwnedCreateAccountClaimID.html b/docs/interfaces/LedgerEntry.XChainOwnedCreateAccountClaimID.html new file mode 100644 index 0000000000..e8d210b17c --- /dev/null +++ b/docs/interfaces/LedgerEntry.XChainOwnedCreateAccountClaimID.html @@ -0,0 +1,539 @@ +XChainOwnedCreateAccountClaimID | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface XChainOwnedCreateAccountClaimID

    +
    +

    The XChainOwnedCreateAccountClaimID ledger object is used to collect attestations +for creating an account via a cross-chain transfer.

    +
    +
    +
    +

    Hierarchy

    +
      +
    • BaseLedgerEntry
    • +
    • HasPreviousTxnID +
        +
      • XChainOwnedCreateAccountClaimID
    +
    +
    +
    + +
    +
    +

    Properties

    +
    + +
    Account: string
    +

    The account that owns this object.

    +
    +
    +
    + +
    Flags: 0
    +

    A bit-map of boolean flags. No flags are defined for, +XChainOwnedCreateAccountClaimIDs, so this value is always 0.

    +
    +
    +
    + +
    LedgerEntryType: "XChainOwnedCreateAccountClaimID"
    +
    + +
    OwnerNode: string
    +

    A hint indicating which page of the sender's owner directory links to this +object, in case the directory consists of multiple pages.

    +
    +
    +
    + +
    PreviousTxnID: string
    +

    The identifying hash of the transaction that most recently modified this +object.

    +
    +
    +
    + +
    PreviousTxnLgrSeq: number
    +

    The index of the ledger that contains the transaction that most recently +modified this object.

    +
    +
    +
    + +
    XChainAccountCreateCount: number
    +

    An integer that determines the order that accounts created through +cross-chain transfers must be performed. Smaller numbers must execute +before larger numbers.

    +
    +
    +
    + +
    XChainBridge: XChainBridge
    +

    The door accounts and assets of the bridge this object correlates to.

    +
    +
    +
    + +
    XChainCreateAccountAttestations: {
        XChainCreateAccountProofSig: {
            Amount: string;
            AttestationRewardAccount: string;
            AttestationSignerAccount: string;
            Destination: string;
            PublicKey: string;
            WasLockingChainSend: 0 | 1;
        };
    }[]
    +

    Attestations collected from the witness servers. This includes the parameters +needed to recreate the message that was signed, including the amount, destination, +signature reward amount, and reward account for that signature. With the +exception of the reward account, all signatures must sign the message created with +common parameters.

    +
    +
    +

    Type declaration

    +
      +
    • +
      XChainCreateAccountProofSig: {
          Amount: string;
          AttestationRewardAccount: string;
          AttestationSignerAccount: string;
          Destination: string;
          PublicKey: string;
          WasLockingChainSend: 0 | 1;
      }
      +
        +
      • +
        Amount: string
      • +
      • +
        AttestationRewardAccount: string
      • +
      • +
        AttestationSignerAccount: string
      • +
      • +
        Destination: string
      • +
      • +
        PublicKey: string
      • +
      • +
        WasLockingChainSend: 0 | 1
    +
    +
    + +
    index: string
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/LedgerEntryRequest.html b/docs/interfaces/LedgerEntryRequest.html index 6289c73664..742272c282 100644 --- a/docs/interfaces/LedgerEntryRequest.html +++ b/docs/interfaces/LedgerEntryRequest.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -LedgerEntryRequest | xrpl
    +LedgerEntryRequest | xrpl
    -
    +
    • xrpl
    • @@ -23,19 +23,21 @@

      Interface LedgerEntryRequest

    The ledger_entry method returns a single ledger object from the XRP Ledger -in its raw format. Expects a response in the form of a LedgerEntryResponse.

    - -

    Example

    const ledgerEntry: LedgerEntryRequest = {
    command: "ledger_entry",
    ledger_index: 60102302,
    index: "7DB0788C020F02780A673DC74757F23823FA3014C1866E72CC4CD8B226CD6EF4"
    } -
    +in its raw format. Expects a response in the form of a LedgerEntryResponse.

    +
    +
    +

    Example

    const ledgerEntry: LedgerEntryRequest = {
    command: "ledger_entry",
    ledger_index: 60102302,
    index: "7DB0788C020F02780A673DC74757F23823FA3014C1866E72CC4CD8B226CD6EF4"
    } +

    Hierarchy

      -
    • BaseRequest +
    • BaseRequest
    • +
    • LookupByLedgerRequest
      • LedgerEntryRequest
    +
  • Defined in packages/xrpl/src/models/methods/ledgerEntry.ts:22
  • @@ -43,137 +45,271 @@

    Properties

    -
    - -
    account_root?: string
    +
    + +
    account_root?: string

    Retrieve an AccountRoot object by its address. This is roughly equivalent -to the an AccountInfoRequest.

    -
    +
    +
    + +
    amm?: {
        asset: {
            currency: string;
            issuer?: string;
        };
        asset2: {
            currency: string;
            issuer?: string;
        };
    }
    +

    Retrieve an Automated Market Maker (AMM) object from the ledger. +This is similar to amm_info method, but the ledger_entry version returns only the ledger entry as stored.

    +
    +
    +

    Type declaration

    +
      +
    • +
      asset: {
          currency: string;
          issuer?: string;
      }
      +
        +
      • +
        currency: string
      • +
      • +
        Optional issuer?: string
    • +
    • +
      asset2: {
          currency: string;
          issuer?: string;
      }
      +
        +
      • +
        currency: string
      • +
      • +
        Optional issuer?: string
    +
    -
    - -
    api_version?: number
    +
  • Defined in packages/xrpl/src/models/methods/ledgerEntry.ts:28
  • +
    + +
    api_version?: number

    The API version to use. If omitted, use version 1.

    -
    +
    -
    - -
    binary?: boolean
    +
  • Defined in packages/xrpl/src/models/methods/baseMethod.ts:16
  • +
    + +
    binary?: boolean

    If true, return the requested ledger object's contents as a hex string in the XRP Ledger's binary format. Otherwise, return data in JSON format. The default is false.

    -
    +
    + +
    bridge?: XChainBridge
    -
    - -
    check?: string
    +
  • Defined in packages/xrpl/src/models/methods/ledgerEntry.ts:165
  • +
    + +
    bridge_account?: string
    +
    + +
    check?: string

    The object ID of a Check object to retrieve.

    -
    -
    - -
    command: "ledger_entry"
    -
    - -
    deposit_preauth?: string | {
        authorized: string;
        owner: string;
    }
    + +
    +
    + +
    command: "ledger_entry"
    +

    The name of the API method.

    +
    +
    +
    + +
    deposit_preauth?: string | {
        authorized: string;
        owner: string;
    }

    Specify a DepositPreauth object to retrieve. If a string, must be the object ID of the DepositPreauth object, as hexadecimal. If an object, requires owner and authorized sub-fields.

    -
    +
    + +
    did?: string
    +

    Specify a DID object to retrieve. If a string, must be the +object ID of the DID object, as hexadecimal, or the account ID.

    +
    +
    -
    - -
    directory?: string | {
        dir_root?: string;
        owner?: string;
        sub_index?: number;
    }
    +
  • Defined in packages/xrpl/src/models/methods/ledgerEntry.ts:81
  • +
    + +
    directory?: string | {
        dir_root?: string;
        owner?: string;
        sub_index?: number;
    }

    The DirectoryNode to retrieve. If a string, must be the object ID of the directory, as hexadecimal. If an object, requires either dir_root o Owner as a sub-field, plus optionally a sub_index sub-field.

    -
    -
    - -
    escrow?: string | {
        owner: string;
        seq: number;
    }
    +
  • Defined in packages/xrpl/src/models/methods/ledgerEntry.ts:88
  • +
    + +
    escrow?: string | {
        owner: string;
        seq: number;
    }

    The Escrow object to retrieve. If a string, must be the object ID of the escrow, as hexadecimal. If an object, requires owner and seq sub-fields.

    -
    -
    - -
    id?: string | number
    +
  • Defined in packages/xrpl/src/models/methods/ledgerEntry.ts:103
  • +
    + +
    id?: string | number

    A unique value to identify this request. The response to this request uses the same id field. This way, even if responses arrive out of order, you know which request prompted which response.

    -
    -
    - -
    index?: string
    -
    - -
    ledger_hash?: string
    + +
    +
    + +
    index?: string
    +
    + +
    ledger_hash?: string

    A 20-byte hex string for the ledger version to use.

    -
    -
    - -
    ledger_index?: LedgerIndex
    +
  • Defined in packages/xrpl/src/models/methods/baseMethod.ts:21
  • +
    + +
    ledger_index?: LedgerIndex

    The ledger index of the ledger to use, or a shortcut string.

    -
    +
    + +
    nft_page?: string
    +

    Must be the object ID of the NFToken page, as hexadecimal

    +
    +
    -
    - -
    offer?: string | {
        account: string;
        seq: number;
    }
    +
  • Defined in packages/xrpl/src/models/methods/ledgerEntry.ts:161
  • +
    + +
    offer?: string | {
        account: string;
        seq: number;
    }

    The Offer object to retrieve. If a string, interpret as the unique object ID to the Offer. If an object, requires the sub-fields account and seq to uniquely identify the offer.

    -
    -
    - -
    payment_channel?: string
    +
  • Defined in packages/xrpl/src/models/methods/ledgerEntry.ts:117
  • +
    + +
    payment_channel?: string

    The object ID of a PayChannel object to retrieve.

    -
    -
    - -
    ripple_state?: {
        accounts: string[];
        currency: string;
    }
    +
  • Defined in packages/xrpl/src/models/methods/ledgerEntry.ts:127
  • +
    + +
    ripple_state?: {
        accounts: string[];
        currency: string;
    }

    Object specifying the RippleState (trust line) object to retrieve. The accounts and currency sub-fields are required to uniquely specify the rippleState entry to retrieve.

    @@ -182,29 +318,83 @@
    • -
      accounts: string[]
      +
      accounts: string[]

      2-length array of account Addresses, defining the two accounts linked by this RippleState object.

      -
    • +
    +
  • -
    currency: string
    +
    currency: string

    Currency Code of the RippleState object to retrieve.

    -
  • -
    - -
    ticket?: string | {
        owner: string;
        ticket_sequence: number;
    }
    +
  • Defined in packages/xrpl/src/models/methods/ledgerEntry.ts:134
  • +
    + +
    ticket?: string | {
        owner: string;
        ticket_sequence: number;
    }

    The Ticket object to retrieve. If a string, must be the object ID of the Ticket, as hexadecimal. If an object, the owner and ticket_sequence sub-fields are required to uniquely specify the Ticket entry.

    -
    +
    + +
    xchain_owned_claim_id?: string | {
        issuing_chain_door: string;
        issuing_chain_issue: Currency;
        locking_chain_door: string;
        locking_chain_issue: Currency;
        xchain_owned_claim_id: string | number;
    }
    +
    +

    Type declaration

    +
      +
    • +
      issuing_chain_door: string
    • +
    • +
      issuing_chain_issue: Currency
    • +
    • +
      locking_chain_door: string
    • +
    • +
      locking_chain_issue: Currency
    • +
    • +
      xchain_owned_claim_id: string | number
    +
    + +
    xchain_owned_create_account_claim_id?: string | {
        issuing_chain_door: string;
        issuing_chain_issue: Currency;
        locking_chain_door: string;
        locking_chain_issue: Currency;
        xchain_owned_create_account_claim_id: string | number;
    }
    +
    +

    Type declaration

    +
      +
    • +
      issuing_chain_door: string
    • +
    • +
      issuing_chain_issue: Currency
    • +
    • +
      locking_chain_door: string
    • +
    • +
      locking_chain_issue: Currency
    • +
    • +
      xchain_owned_create_account_claim_id: string | number
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • account_root
  • +
  • amm
  • +
  • api_version
  • +
  • binary
  • +
  • bridge
  • +
  • bridge_account
  • +
  • check
  • +
  • command
  • +
  • deposit_preauth
  • +
  • did
  • +
  • directory
  • +
  • escrow
  • +
  • id
  • +
  • index
  • +
  • ledger_hash
  • +
  • ledger_index
  • +
  • nft_page
  • +
  • offer
  • +
  • payment_channel
  • +
  • ripple_state
  • +
  • ticket
  • +
  • xchain_owned_claim_id
  • +
  • xchain_owned_create_account_claim_id
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/LedgerEntryResponse.html b/docs/interfaces/LedgerEntryResponse.html index 4f1622b137..8e1f31ea7b 100644 --- a/docs/interfaces/LedgerEntryResponse.html +++ b/docs/interfaces/LedgerEntryResponse.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -LedgerEntryResponse | xrpl
    +LedgerEntryResponse | xrpl
    -
    +
    -

    Interface LedgerEntryResponse

    +

    Interface LedgerEntryResponse<T>

    -

    Response expected from a LedgerEntryRequest.

    -
    +

    Response expected from a LedgerEntryRequest.

    +
    +
    +
    +

    Type Parameters

    +

    Hierarchy

    +
  • Defined in packages/xrpl/src/models/methods/ledgerEntry.ts:193
  • @@ -39,91 +45,96 @@

    Properties

    -
    - -
    api_version?: number
    +
    + +
    result: {
        index: string;
        ledger_current_index: number;
        node?: T;
        node_binary?: string;
        validated?: boolean;
    }

    Type declaration

    • -
      index: string
      +
      index: string

      The unique ID of this ledger object.

      -
    • +
    +
  • -
    ledger_current_index: number
    +
    ledger_current_index: number

    The ledger index of the ledger that was used when retrieving this data.

    -
  • +
    +
  • -
    Optional node?: LedgerEntry
    +
    Optional node?: T

    Object containing the data of this ledger object, according to the ledger format.

    -
  • + +
  • -
    Optional node_binary?: string
    +
    Optional node_binary?: string

    The binary representation of the ledger object, as hexadecimal.

    -
  • + +
  • -
    Optional validated?: boolean
  • +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • api_version
  • +
  • forwarded
  • +
  • id
  • +
  • result
  • +
  • status
  • +
  • type
  • +
  • warning
  • +
  • warnings
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/LedgerModifiedOfferCreateTransaction.html b/docs/interfaces/LedgerModifiedOfferCreateTransaction.html new file mode 100644 index 0000000000..4b1dd2c9c7 --- /dev/null +++ b/docs/interfaces/LedgerModifiedOfferCreateTransaction.html @@ -0,0 +1,383 @@ +LedgerModifiedOfferCreateTransaction | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface LedgerModifiedOfferCreateTransaction

    +
    +

    Special case transaction definition when the request contains owner_funds: true.

    +
    +
    +
    +

    Hierarchy

    +
      +
    • LedgerModifiedOfferCreateTransaction
    +
    +
    +
    + +
    +
    +

    Properties

    +
    +
    +

    Properties

    +
    + +
    metadata: Object
    +
    + +
    transaction: Transaction
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/LedgerQueueData.html b/docs/interfaces/LedgerQueueData.html new file mode 100644 index 0000000000..60d70bfb91 --- /dev/null +++ b/docs/interfaces/LedgerQueueData.html @@ -0,0 +1,433 @@ +LedgerQueueData | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface LedgerQueueData

    +
    +

    Hierarchy

    +
      +
    • LedgerQueueData
    +
    +
    +
    + +
    +
    +

    Properties

    +
    + +
    account: string
    +
    + +
    auth_change?: boolean
    +
    + +
    fee?: string
    +
    + +
    fee_level?: string
    +
    + +
    last_result?: string
    +
    + +
    max_spend_drops?: string
    +
    + +
    preflight_result: string
    +
    + +
    retries_remaining: number
    +
    + + +
    +

    Type declaration

    +
      +
    • +
      tx_blob: string
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/LedgerRequest.html b/docs/interfaces/LedgerRequest.html index 0f7247e5cb..89fb78c940 100644 --- a/docs/interfaces/LedgerRequest.html +++ b/docs/interfaces/LedgerRequest.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -LedgerRequest | xrpl
    +LedgerRequest | xrpl
    -
    +
    • xrpl
    • @@ -23,19 +23,21 @@

      Interface LedgerRequest

    Retrieve information about the public ledger. Expects a response in the form -of a LedgerResponse.

    - -

    Example

    const ledger: LedgerRequest = {
    "id": 14,
    "command": "ledger",
    "ledger_index": "validated",
    "full": false,
    "accounts": false,
    "transactions": false,
    "expand": false,
    "owner_funds": false
    } -
    +of a LedgerResponse.

    +
    +
    +

    Example

    const ledger: LedgerRequest = {
    "id": 14,
    "command": "ledger",
    "ledger_index": "validated",
    "full": false,
    "accounts": false,
    "transactions": false,
    "expand": false,
    "owner_funds": false
    } +

    Hierarchy

      -
    • BaseRequest +
    • BaseRequest
    • +
    • LookupByLedgerRequest
      • LedgerRequest
    +
  • Defined in packages/xrpl/src/models/methods/ledger.ts:28
  • @@ -43,124 +45,149 @@

    Properties

    -
    - -
    accounts?: boolean
    +
    + +
    accounts?: boolean

    Admin required. If true, return information on accounts in the ledger. Ignored if you did not specify a ledger version. Defaults to false.

    -
    +
    -
    - -
    api_version?: number
    +
  • Defined in packages/xrpl/src/models/methods/ledger.ts:39
  • +
    + +
    api_version?: number

    The API version to use. If omitted, use version 1.

    -
    +
    -
    - -
    binary?: boolean
    +
  • Defined in packages/xrpl/src/models/methods/baseMethod.ts:16
  • +
    + +
    binary?: boolean

    If true, and transactions and expand are both also true, return transaction information in binary format (hexadecimal string) instead of JSON format.

    -
    -
    - -
    command: "ledger"
    +
    + +
    command: "ledger"
    +

    The name of the API method.

    +
    +
    -
    - -
    expand?: boolean
    +
  • Defined in packages/xrpl/src/models/methods/ledger.ts:29
  • +
    + +
    expand?: boolean

    Provide full JSON-formatted information for transaction/account information instead of only hashes. Defaults to false. Ignored unless you request transactions, accounts, or both.

    -
    -
    - -
    full?: boolean
    +
  • Defined in packages/xrpl/src/models/methods/ledger.ts:51
  • +
    + +
    full?: boolean

    Admin required If true, return full information on the entire ledger. Ignored if you did not specify a ledger version. Defaults to false.

    -
    -
    - -
    id?: string | number
    +
  • Defined in packages/xrpl/src/models/methods/ledger.ts:34
  • +
    + +
    id?: string | number

    A unique value to identify this request. The response to this request uses the same id field. This way, even if responses arrive out of order, you know which request prompted which response.

    -
    -
    - -
    ledger_hash?: string
    +
  • Defined in packages/xrpl/src/models/methods/baseMethod.ts:12
  • +
    + +
    ledger_hash?: string

    A 20-byte hex string for the ledger version to use.

    -
    -
    - -
    ledger_index?: LedgerIndex
    -

    The ledger index of the ledger to use, or a shortcut string to choose a -ledger automatically.

    -
    +
    + +
    ledger_index?: LedgerIndex
    +

    The ledger index of the ledger to use, or a shortcut string.

    +
    +
    -
    - -
    owner_funds?: boolean
    +
  • Defined in packages/xrpl/src/models/methods/baseMethod.ts:23
  • +
    + +
    owner_funds?: boolean

    If true, include owner_funds field in the metadata of OfferCreate transactions in the response. Defaults to false. Ignored unless transactions are included and expand is true.

    -
    -
    - -
    queue?: boolean
    +
  • Defined in packages/xrpl/src/models/methods/ledger.ts:57
  • +
    + +
    queue?: boolean

    If true, and the command is requesting the current ledger, includes an array of queued transactions in the results.

    -
    -
    - -
    transactions?: boolean
    +
  • Defined in packages/xrpl/src/models/methods/ledger.ts:68
  • +
    + +
    transactions?: boolean

    If true, return information on transactions in the specified ledger version. Defaults to false. Ignored if you did not specify a ledger version.

    -
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • accounts
  • +
  • api_version
  • +
  • binary
  • +
  • command
  • +
  • expand
  • +
  • full
  • +
  • id
  • +
  • ledger_hash
  • +
  • ledger_index
  • +
  • owner_funds
  • +
  • queue
  • +
  • transactions
  • +
  • type
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/LedgerResponse.html b/docs/interfaces/LedgerResponse.html index 55c129c1c5..b80b2d678d 100644 --- a/docs/interfaces/LedgerResponse.html +++ b/docs/interfaces/LedgerResponse.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -LedgerResponse | xrpl
    +LedgerResponse | xrpl
    -
    +

    Interface LedgerResponse

    -

    Response expected from a LedgerRequest.

    -
    +

    Response expected from a LedgerRequest. +This is the default request response, triggered when expand and binary are both false.

    +
    +

    Hierarchy

    +
  • Defined in packages/xrpl/src/models/methods/ledger.ts:240
  • @@ -39,96 +41,70 @@

    Properties

    -
    - -
    api_version?: number
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • api_version
  • +
  • forwarded
  • +
  • id
  • +
  • result
  • +
  • status
  • +
  • type
  • +
  • warning
  • +
  • warnings
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/LedgerStream.html b/docs/interfaces/LedgerStream.html index d72355181f..6f199d38dd 100644 --- a/docs/interfaces/LedgerStream.html +++ b/docs/interfaces/LedgerStream.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -LedgerStream | xrpl
    +LedgerStream | xrpl
    -
    +
    • xrpl
    • @@ -25,15 +25,16 @@

      Interface LedgerStream

    The ledger stream only sends ledgerClosed messages when the consensus process declares a new validated ledger. The message identifies the ledger And provides some information about its contents.

    -
    +
    +

    Hierarchy

      -
    • BaseStream +
    • BaseStream
      • LedgerStream
    +
  • Defined in packages/xrpl/src/models/methods/subscribe.ts:98
  • @@ -41,101 +42,111 @@

    Properties

    -
    - -
    fee_base: number
    +
    + +
    fee_base: number

    The reference transaction cost as of this ledger version, in drops of XRP. If this ledger version includes a SetFee pseudo-transaction the new. Transaction cost applies starting with the following ledger version.

    -
    +
    -
    - -
    fee_ref: number
    -

    The reference transaction cost in "fee units".

    -
    +
    + +
    fee_ref?: number
    +

    The reference transaction cost in "fee units". This is not returned after the SetFees amendment is enabled.

    +
    +
    -
    - -
    ledger_hash: string
    +
  • Defined in packages/xrpl/src/models/methods/subscribe.ts:107
  • +
    + +
    ledger_hash: string

    The identifying hash of the ledger version that was closed.

    -
    -
    - -
    ledger_index: number
    +
  • Defined in packages/xrpl/src/models/methods/subscribe.ts:109
  • +
    + +
    ledger_index: number

    The ledger index of the ledger that was closed.

    -
    -
    - -
    ledger_time: number
    +
  • Defined in packages/xrpl/src/models/methods/subscribe.ts:111
  • +
    + +
    ledger_time: number

    The time this ledger was closed, in seconds since the Ripple Epoch.

    -
    -
    - -
    reserve_base: number
    +
  • Defined in packages/xrpl/src/models/methods/subscribe.ts:113
  • +
    + +
    reserve_base: number

    The minimum reserve, in drops of XRP, that is required for an account. If this ledger version includes a SetFee pseudo-transaction the new base reserve applies starting with the following ledger version.

    -
    -
    - -
    reserve_inc: number
    +
  • Defined in packages/xrpl/src/models/methods/subscribe.ts:119
  • +
    + +
    reserve_inc: number

    The owner reserve for each object an account owns in the ledger, in drops of XRP. If the ledger includes a SetFee pseudo-transaction the new owner reserve applies after this ledger.

    -
    -
    - -
    txn_count: number
    +
  • Defined in packages/xrpl/src/models/methods/subscribe.ts:125
  • +
    + +
    txn_count: number

    Number of new transactions included in this ledger version.

    -
    -
    - -
    type: "ledgerClosed"
    +
    + +
    type: "ledgerClosed"
    -
    - -
    validated_ledgers?: string
    +
  • Defined in packages/xrpl/src/models/methods/subscribe.ts:99
  • +
    + +
    validated_ledgers?: string

    Range of ledgers that the server has available. This may be a disjoint sequence such as 24900901-24900984,24901116-24901158. This field is not returned if the server is not connected to the network, or if it is connected but has not yet obtained a ledger from the network.

    -
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • fee_base
  • +
  • fee_ref
  • +
  • ledger_hash
  • +
  • ledger_index
  • +
  • ledger_time
  • +
  • reserve_base
  • +
  • reserve_inc
  • +
  • txn_count
  • +
  • type
  • +
  • validated_ledgers
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/LedgerStreamResponse.html b/docs/interfaces/LedgerStreamResponse.html new file mode 100644 index 0000000000..d9825633b3 --- /dev/null +++ b/docs/interfaces/LedgerStreamResponse.html @@ -0,0 +1,458 @@ +LedgerStreamResponse | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface LedgerStreamResponse

    +
    +

    This response mirrors the LedgerStream, except it does NOT include the 'type' nor 'txn_count' fields.

    +
    +
    +
    +

    Hierarchy

    +
      +
    • LedgerStreamResponse
    +
    +
    +
    + +
    +
    +

    Properties

    +
    + +
    fee_base: number
    +

    The reference transaction cost as of this ledger version, in drops of XRP. +If this ledger version includes a SetFee pseudo-transaction the new. +Transaction cost applies starting with the following ledger version.

    +
    +
    +
    + +
    fee_ref?: number
    +

    The reference transaction cost in "fee units". This is not returned after the SetFees amendment is enabled.

    +
    +
    +
    + +
    ledger_hash: string
    +

    The identifying hash of the ledger version that was closed.

    +
    +
    +
    + +
    ledger_index: number
    +

    The ledger index of the ledger that was closed.

    +
    +
    +
    + +
    ledger_time: number
    +

    The time this ledger was closed, in seconds since the Ripple Epoch.

    +
    +
    +
    + +
    reserve_base: number
    +

    The minimum reserve, in drops of XRP, that is required for an account. If +this ledger version includes a SetFee pseudo-transaction the new base reserve +applies starting with the following ledger version.

    +
    +
    +
    + +
    reserve_inc: number
    +

    The owner reserve for each object an account owns in the ledger, in drops +of XRP. If the ledger includes a SetFee pseudo-transaction the new owner +reserve applies after this ledger.

    +
    +
    +
    + +
    validated_ledgers?: string
    +

    Range of ledgers that the server has available. This may be a disjoint +sequence such as 24900901-24900984,24901116-24901158. This field is not +returned if the server is not connected to the network, or if it is +connected but has not yet obtained a ledger from the network.

    +
    +
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/ManifestRequest.html b/docs/interfaces/ManifestRequest.html index 815e6c1db0..2b6a04f73a 100644 --- a/docs/interfaces/ManifestRequest.html +++ b/docs/interfaces/ManifestRequest.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -ManifestRequest | xrpl
    +ManifestRequest | xrpl
    -
    +
    • xrpl
    • @@ -24,19 +24,20 @@

      Interface ManifestRequest

    The manifest method reports the current "manifest" information for a given validator public key. The "manifest" is the public portion of that -validator's configured token. Expects a response in the form of a ManifestResponse.

    - -

    Example

    const manifest: ManifestRequest = {
    "command": "manifest",
    "public_key": "nHUFE9prPXPrHcG3SkwP1UzAQbSphqyQkQK9ATXLZsfkezhhda3p"
    } -
    +validator's configured token. Expects a response in the form of a ManifestResponse.

    +
    +
    +

    Example

    const manifest: ManifestRequest = {
    "command": "manifest",
    "public_key": "nHUFE9prPXPrHcG3SkwP1UzAQbSphqyQkQK9ATXLZsfkezhhda3p"
    } +

    Hierarchy

    +
  • Defined in packages/xrpl/src/models/methods/manifest.ts:19
  • @@ -44,49 +45,56 @@

    Properties

    -
    - -
    api_version?: number
    +
    + +
    api_version?: number

    The API version to use. If omitted, use version 1.

    -
    +
    -
    - -
    command: "manifest"
    +
    + +
    command: "manifest"
    +

    The name of the API method.

    +
    +
    -
    - -
    id?: string | number
    +
  • Defined in packages/xrpl/src/models/methods/manifest.ts:20
  • +
    + +
    id?: string | number

    A unique value to identify this request. The response to this request uses the same id field. This way, even if responses arrive out of order, you know which request prompted which response.

    -
    +
    -
    - -
    public_key: string
    +
  • Defined in packages/xrpl/src/models/methods/baseMethod.ts:12
  • +
    + +
    public_key: string

    The base58-encoded public key of the validator to look up. This can be the master public key or ephemeral public key.

    -
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • api_version
  • +
  • command
  • +
  • id
  • +
  • public_key
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/ManifestResponse.html b/docs/interfaces/ManifestResponse.html index d533855481..c27965996e 100644 --- a/docs/interfaces/ManifestResponse.html +++ b/docs/interfaces/ManifestResponse.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -ManifestResponse | xrpl
    +ManifestResponse | xrpl
    -
    +

    Interface ManifestResponse

    -

    Response expected from a ManifestRequest.

    -
    +

    Response expected from a ManifestRequest.

    +
    +

    Hierarchy

    +
  • Defined in packages/xrpl/src/models/methods/manifest.ts:33
  • @@ -39,96 +40,100 @@

    Properties

    -
    - -
    api_version?: number
    +
    + +
    result: {
        details?: {
            domain: string;
            ephemeral_key: string;
            master_key: string;
            seq: number;
        };
        manifest?: string;
        requested: string;
    }

    Type declaration

    • -
      Optional details?: {
          domain: string;
          ephemeral_key: string;
          master_key: string;
          seq: number;
      }
      +
      Optional details?: {
          domain: string;
          ephemeral_key: string;
          master_key: string;
          seq: number;
      }

      The data contained in this manifest. Omitted if the server does not have A manifest for the public_key from the request.

      +
      • -
        domain: string
      • +
        domain: string
      • -
        ephemeral_key: string
      • +
        ephemeral_key: string
      • -
        master_key: string
      • +
        master_key: string
      • -
        seq: number
    • +
      seq: number
  • -
    Optional manifest?: string
    +
    Optional manifest?: string

    The full manifest data in base64 format. This data is serialized to binary before being base64-encoded. Omitted if the server does not have a manifest for the public_key from the request.

    -
  • +
    +
  • -
    requested: string
    +
    requested: string

    The public_key from the request.

    -
  • +
    -
    - -
    status?: string
    +
    + +
    status?: string
    -
    - -
    type: string
    +
    + +
    type: string
    -
    - -
    warning?: "load"
    +
    + +
    warning?: "load"
    -
    - -
    warnings?: Warning[]
    +
    + +
    warnings?: ResponseWarning[]
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • api_version
  • +
  • forwarded
  • +
  • id
  • +
  • result
  • +
  • status
  • +
  • type
  • +
  • warning
  • +
  • warnings
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/Memo.html b/docs/interfaces/Memo.html new file mode 100644 index 0000000000..9178dc2712 --- /dev/null +++ b/docs/interfaces/Memo.html @@ -0,0 +1,381 @@ +Memo | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface Memo

    +
    +

    Hierarchy

    +
      +
    • Memo
    +
    +
    +
    + +
    +
    +

    Properties

    +
    +
    +

    Properties

    +
    + +
    Memo: {
        MemoData?: string;
        MemoFormat?: string;
        MemoType?: string;
    }
    +
    +

    Type declaration

    +
      +
    • +
      Optional MemoData?: string
    • +
    • +
      Optional MemoFormat?: string
    • +
    • +
      Optional MemoType?: string
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/ModifiedNode.html b/docs/interfaces/ModifiedNode.html new file mode 100644 index 0000000000..78b618a59a --- /dev/null +++ b/docs/interfaces/ModifiedNode.html @@ -0,0 +1,393 @@ +ModifiedNode | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface ModifiedNode

    +
    +

    Hierarchy

    +
      +
    • ModifiedNode
    +
    +
    +
    + +
    +
    +

    Properties

    +
    +
    +

    Properties

    +
    + +
    ModifiedNode: {
        FinalFields?: {
            [field: string]: unknown;
        };
        LedgerEntryType: string;
        LedgerIndex: string;
        PreviousFields?: {
            [field: string]: unknown;
        };
        PreviousTxnID?: string;
        PreviousTxnLgrSeq?: number;
    }
    +
    +

    Type declaration

    +
      +
    • +
      Optional FinalFields?: {
          [field: string]: unknown;
      }
      +
        +
      • +
        [field: string]: unknown
    • +
    • +
      LedgerEntryType: string
    • +
    • +
      LedgerIndex: string
    • +
    • +
      Optional PreviousFields?: {
          [field: string]: unknown;
      }
      +
        +
      • +
        [field: string]: unknown
    • +
    • +
      Optional PreviousTxnID?: string
    • +
    • +
      Optional PreviousTxnLgrSeq?: number
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/NFTBuyOffersRequest.html b/docs/interfaces/NFTBuyOffersRequest.html index 79882a7701..a4ca294ff2 100644 --- a/docs/interfaces/NFTBuyOffersRequest.html +++ b/docs/interfaces/NFTBuyOffersRequest.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -NFTBuyOffersRequest | xrpl
    +NFTBuyOffersRequest | xrpl
    -
    +
    • xrpl
    • @@ -24,15 +24,17 @@

      Interface NFTBuyOffersRequest

    The nft_buy_offers method retrieves all of buy offers for the specified NFToken.

    -
    +
    +

    Hierarchy

      -
    • BaseRequest +
    • BaseRequest
    • +
    • LookupByLedgerRequest
      • NFTBuyOffersRequest
    +
  • Defined in packages/xrpl/src/models/methods/nftBuyOffers.ts:11
  • @@ -40,48 +42,75 @@

    Properties

    -
    - -
    api_version?: number
    +
    + +
    api_version?: number

    The API version to use. If omitted, use version 1.

    -
    +
    -
    - -
    command: "nft_buy_offers"
    +
    + +
    command: "nft_buy_offers"
    +

    The name of the API method.

    +
    +
    -
    - -
    id?: string | number
    +
  • Defined in packages/xrpl/src/models/methods/nftBuyOffers.ts:14
  • +
    + +
    id?: string | number

    A unique value to identify this request. The response to this request uses the same id field. This way, even if responses arrive out of order, you know which request prompted which response.

    -
    -
    - -
    nft_id: string
    +
  • Defined in packages/xrpl/src/models/methods/baseMethod.ts:12
  • +
    + +
    ledger_hash?: string
    +

    A 20-byte hex string for the ledger version to use.

    +
    +
    +
    + +
    ledger_index?: LedgerIndex
    +

    The ledger index of the ledger to use, or a shortcut string.

    +
    +
    +
    + +
    nft_id: string

    The unique identifier of an NFToken. The request returns buy offers for this NFToken.

    -
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • api_version
  • +
  • command
  • +
  • id
  • +
  • ledger_hash
  • +
  • ledger_index
  • +
  • nft_id
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/NFTBuyOffersResponse.html b/docs/interfaces/NFTBuyOffersResponse.html index cb63a4a193..aa755a3122 100644 --- a/docs/interfaces/NFTBuyOffersResponse.html +++ b/docs/interfaces/NFTBuyOffersResponse.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -NFTBuyOffersResponse | xrpl
    +NFTBuyOffersResponse | xrpl
    -
    +

    Interface NFTBuyOffersResponse

    -

    Response expected from an NFTBuyOffersRequest.

    -
    +

    Response expected from an NFTBuyOffersRequest.

    +
    +

    Hierarchy

    +
  • Defined in packages/xrpl/src/models/methods/nftBuyOffers.ts:26
  • @@ -39,80 +40,83 @@

    Properties

    -
    - -
    api_version?: number
    +
    + +
    result: {
        nft_id: string;
        offers: NFTOffer[];
    }

    Type declaration

    • -
      nft_id: string
      +
      nft_id: string

      The token ID of the NFToken to which these offers pertain.

      -
    • +
    +
  • -
    offers: NFTOffer[]
    +
    offers: NFTOffer[]

    A list of buy offers for the specified NFToken.

    -
  • +
    -
    - -
    status?: string
    +
    + +
    status?: string
    -
    - -
    type: string
    +
    + +
    type: string
    -
    - -
    warning?: "load"
    +
    + +
    warning?: "load"
    -
    - -
    warnings?: Warning[]
    +
    + +
    warnings?: ResponseWarning[]
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • api_version
  • +
  • forwarded
  • +
  • id
  • +
  • result
  • +
  • status
  • +
  • type
  • +
  • warning
  • +
  • warnings
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/NFTHistoryRequest.html b/docs/interfaces/NFTHistoryRequest.html new file mode 100644 index 0000000000..2a3f3804a5 --- /dev/null +++ b/docs/interfaces/NFTHistoryRequest.html @@ -0,0 +1,509 @@ +NFTHistoryRequest | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface NFTHistoryRequest

    +
    +

    The nft_history method retrieves a list of transactions that involved the +specified NFToken. Expects a response in the form of a NFTHistoryResponse.

    +
    +
    +
    +

    Hierarchy

    +
      +
    • BaseRequest
    • +
    • LookupByLedgerRequest +
        +
      • NFTHistoryRequest
    +
    +
    +
    + +
    +
    +

    Properties

    +
    + +
    api_version?: number
    +

    The API version to use. If omitted, use version 1.

    +
    +
    +
    + +
    binary?: boolean
    +

    If true, return transactions as hex strings instead of JSON. The default is +false.

    +
    +
    +
    + +
    command: "nft_history"
    +

    The name of the API method.

    +
    +
    +
    + +
    forward?: boolean
    +

    If true, returns values indexed with the oldest ledger first. Otherwise, +the results are indexed with the newest ledger first.

    +
    +
    +
    + +
    id?: string | number
    +

    A unique value to identify this request. The response to this request uses +the same id field. This way, even if responses arrive out of order, you +know which request prompted which response.

    +
    +
    +
    + +
    ledger_hash?: string
    +

    A 20-byte hex string for the ledger version to use.

    +
    +
    +
    + +
    ledger_index?: LedgerIndex
    +

    The ledger index of the ledger to use, or a shortcut string.

    +
    +
    +
    + +
    ledger_index_max?: number
    +

    Use to specify the most recent ledger to include transactions from. A +value of -1 instructs the server to use the most recent validated ledger +version available.

    +
    +
    +
    + +
    ledger_index_min?: number
    +

    Use to specify the earliest ledger to include transactions from. A value +of -1 instructs the server to use the earliest validated ledger version +available.

    +
    +
    +
    + +
    limit?: number
    +

    Default varies. Limit the number of transactions to retrieve. The server +is not required to honor this value.

    +
    +
    +
    + +
    marker?: unknown
    +

    Value from a previous paginated response. Resume retrieving data where +that response left off. This value is stable even if there is a change in +the server's range of available ledgers.

    +
    +
    +
    + +
    nft_id: string
    +

    The unique identifier of an NFToken.

    +
    +
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/NFTHistoryResponse.html b/docs/interfaces/NFTHistoryResponse.html new file mode 100644 index 0000000000..9e9fb8e3c6 --- /dev/null +++ b/docs/interfaces/NFTHistoryResponse.html @@ -0,0 +1,479 @@ +NFTHistoryResponse | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface NFTHistoryResponse

    +
    +

    Expected response from an NFTHistoryRequest.

    +
    +
    +
    +

    Hierarchy

    +
    +
    +
    +
    + +
    +
    +

    Properties

    +
    + +
    api_version?: number
    +
    + +
    forwarded?: boolean
    +
    + +
    id: string | number
    +
    + +
    result: {
        ledger_index_max: number;
        ledger_index_min: number;
        limit?: number;
        marker?: unknown;
        nft_id: string;
        transactions: NFTHistoryTransaction[];
        validated?: boolean;
    }
    +
    +

    Type declaration

    +
      +
    • +
      ledger_index_max: number
      +

      The ledger index of the most recent ledger actually searched for +transactions.

      +
      +
    • +
    • +
      ledger_index_min: number
      +

      The ledger index of the earliest ledger actually searched for +transactions.

      +
      +
    • +
    • +
      Optional limit?: number
      +

      The limit value used in the request.

      +
      +
    • +
    • +
      Optional marker?: unknown
      +

      Server-defined value indicating the response is paginated. Pass this +to the next call to resume where this call left off.

      +
      +
    • +
    • +
      nft_id: string
      +

      The unique identifier of an NFToken.

      +
      +
    • +
    • +
      transactions: NFTHistoryTransaction[]
      +

      Array of transactions matching the request's criteria, as explained +below.

      +
      +
    • +
    • +
      Optional validated?: boolean
      +

      If included and set to true, the information in this response comes from +a validated ledger version. Otherwise, the information is subject to +change.

      +
      +
    +
    + +
    status?: string
    +
    + +
    type: string
    +
    + +
    warning?: "load"
    +
    + +
    warnings?: ResponseWarning[]
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/NFTHistoryTransaction.html b/docs/interfaces/NFTHistoryTransaction.html new file mode 100644 index 0000000000..52b7bab047 --- /dev/null +++ b/docs/interfaces/NFTHistoryTransaction.html @@ -0,0 +1,417 @@ +NFTHistoryTransaction | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface NFTHistoryTransaction

    +
    +

    Hierarchy

    +
      +
    • NFTHistoryTransaction
    +
    +
    +
    + +
    +
    +

    Properties

    +
    +
    +

    Properties

    +
    + +
    ledger_index: number
    +

    The ledger index of the ledger version that included this transaction.

    +
    +
    +
    + +
    meta: string | TransactionMetadata
    +

    If binary is True, then this is a hex string of the transaction metadata. +Otherwise, the transaction metadata is included in JSON format.

    +
    +
    +
    + +
    tx?: Object
    +

    JSON object defining the transaction.

    +
    +
    +
    + +
    tx_blob?: string
    +

    Unique hashed String representing the transaction.

    +
    +
    +
    + +
    validated: boolean
    +

    Whether or not the transaction is included in a validated ledger. Any +transaction not yet in a validated ledger is subject to change.

    +
    +
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/NFTInfoRequest.html b/docs/interfaces/NFTInfoRequest.html new file mode 100644 index 0000000000..5017ddf1e7 --- /dev/null +++ b/docs/interfaces/NFTInfoRequest.html @@ -0,0 +1,439 @@ +NFTInfoRequest | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface NFTInfoRequest

    +
    +

    The nft_info method retrieves information about an NFToken.

    +
    +
    +
    +

    Hierarchy

    +
    +
    +
    +
    + +
    +
    +

    Properties

    +
    + +
    api_version?: number
    +

    The API version to use. If omitted, use version 1.

    +
    +
    +
    + +
    command: "nft_info"
    +

    The name of the API method.

    +
    +
    +
    + +
    id?: string | number
    +

    A unique value to identify this request. The response to this request uses +the same id field. This way, even if responses arrive out of order, you +know which request prompted which response.

    +
    +
    +
    + +
    ledger_hash?: string
    +

    A 20-byte hex string for the ledger version to use.

    +
    +
    +
    + +
    ledger_index?: LedgerIndex
    +

    The ledger index of the ledger to use, or a shortcut string.

    +
    +
    +
    + +
    nft_id: string
    +

    The unique identifier of an NFToken.

    +
    +
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/NFTInfoResponse.html b/docs/interfaces/NFTInfoResponse.html new file mode 100644 index 0000000000..a8bbc6221c --- /dev/null +++ b/docs/interfaces/NFTInfoResponse.html @@ -0,0 +1,435 @@ +NFTInfoResponse | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface NFTInfoResponse

    +
    +

    Response expected from an NFTInfoRequest.

    +
    +
    +
    +

    Hierarchy

    +
    +
    +
    +
    + +
    +
    +

    Properties

    +
    + +
    api_version?: number
    +
    + +
    forwarded?: boolean
    +
    + +
    id: string | number
    +
    + +
    result: NFToken
    +
    + +
    status?: string
    +
    + +
    type: string
    +
    + +
    warning?: "load"
    +
    + +
    warnings?: ResponseWarning[]
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/NFTOffer.html b/docs/interfaces/NFTOffer.html new file mode 100644 index 0000000000..8e30959f70 --- /dev/null +++ b/docs/interfaces/NFTOffer.html @@ -0,0 +1,412 @@ +NFTOffer | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface NFTOffer

    +
    +

    One offer that might be returned from either an NFTBuyOffersRequest +or an NFTSellOffersRequest.

    +
    +
    +
    +

    Hierarchy

    +
      +
    • NFTOffer
    +
    +
    +
    + +
    +
    +

    Properties

    +
    + +
    amount: Amount
    +
    + +
    destination?: string
    +
    + +
    expiration?: number
    +
    + +
    flags: number
    +
    + +
    nft_offer_index: string
    +
    + +
    owner: string
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/NFTSellOffersRequest.html b/docs/interfaces/NFTSellOffersRequest.html index 5f9961979b..4ef9eafb04 100644 --- a/docs/interfaces/NFTSellOffersRequest.html +++ b/docs/interfaces/NFTSellOffersRequest.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -NFTSellOffersRequest | xrpl
    +NFTSellOffersRequest | xrpl
    -
    +
    • xrpl
    • @@ -24,15 +24,17 @@

      Interface NFTSellOffersRequest

    The nft_sell_offers method retrieves all of sell offers for the specified NFToken.

    -
    +
    +

    Hierarchy

      -
    • BaseRequest +
    • BaseRequest
    • +
    • LookupByLedgerRequest
      • NFTSellOffersRequest
    +
  • Defined in packages/xrpl/src/models/methods/nftSellOffers.ts:11
  • @@ -40,48 +42,75 @@

    Properties

    -
    - -
    api_version?: number
    +
    + +
    api_version?: number

    The API version to use. If omitted, use version 1.

    -
    +
    -
    - -
    command: "nft_sell_offers"
    +
    + +
    command: "nft_sell_offers"
    +

    The name of the API method.

    +
    +
    -
    - -
    id?: string | number
    +
  • Defined in packages/xrpl/src/models/methods/nftSellOffers.ts:14
  • +
    + +
    id?: string | number

    A unique value to identify this request. The response to this request uses the same id field. This way, even if responses arrive out of order, you know which request prompted which response.

    -
    -
    - -
    nft_id: string
    +
  • Defined in packages/xrpl/src/models/methods/baseMethod.ts:12
  • +
    + +
    ledger_hash?: string
    +

    A 20-byte hex string for the ledger version to use.

    +
    +
    +
    + +
    ledger_index?: LedgerIndex
    +

    The ledger index of the ledger to use, or a shortcut string.

    +
    +
    +
    + +
    nft_id: string

    The unique identifier of an NFToken. The request returns sell offers for this NFToken.

    -
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • api_version
  • +
  • command
  • +
  • id
  • +
  • ledger_hash
  • +
  • ledger_index
  • +
  • nft_id
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/NFTSellOffersResponse.html b/docs/interfaces/NFTSellOffersResponse.html index e290ce8d98..efe0a6bb03 100644 --- a/docs/interfaces/NFTSellOffersResponse.html +++ b/docs/interfaces/NFTSellOffersResponse.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -NFTSellOffersResponse | xrpl
    +NFTSellOffersResponse | xrpl
    -
    +

    Interface NFTSellOffersResponse

    -

    Response expected from an NFTSellOffersRequest.

    -
    +

    Response expected from an NFTSellOffersRequest.

    +
    +

    Hierarchy

    +
  • Defined in packages/xrpl/src/models/methods/nftSellOffers.ts:26
  • @@ -39,80 +40,83 @@

    Properties

    -
    - -
    api_version?: number
    +
    + +
    result: {
        nft_id: string;
        offers: NFTOffer[];
    }

    Type declaration

    • -
      nft_id: string
      +
      nft_id: string

      The token ID of the NFToken to which these offers pertain.

      -
    • +
    +
  • -
    offers: NFTOffer[]
    +
    offers: NFTOffer[]

    A list of sell offers for the specified NFToken.

    -
  • +
    -
    - -
    status?: string
    +
    + +
    status?: string
    -
    - -
    type: string
    +
    + +
    type: string
    -
    - -
    warning?: "load"
    +
    + +
    warning?: "load"
    -
    - -
    warnings?: Warning[]
    +
    + +
    warnings?: ResponseWarning[]
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • api_version
  • +
  • forwarded
  • +
  • id
  • +
  • result
  • +
  • status
  • +
  • type
  • +
  • warning
  • +
  • warnings
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/NFToken.html b/docs/interfaces/NFToken.html new file mode 100644 index 0000000000..35aab1f3c6 --- /dev/null +++ b/docs/interfaces/NFToken.html @@ -0,0 +1,439 @@ +NFToken | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface NFToken

    +
    +

    One NFToken that might be returned from an NFTInfoResponse

    +
    +
    +
    +

    Hierarchy

    +
      +
    • NFToken
    +
    +
    +
    + +
    +
    +

    Properties

    +
    + +
    flags: number
    +
    + +
    is_burned: boolean
    +
    + +
    issuer: string
    +
    + +
    ledger_index: number
    +
    + +
    nft_id: string
    +
    + +
    nft_serial: number
    +
    + +
    nft_taxon: number
    +
    + +
    owner: string
    +
    + +
    transfer_fee: number
    +
    + +
    uri: string
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/NFTokenAcceptOffer.html b/docs/interfaces/NFTokenAcceptOffer.html index a21a508ca3..8193352b2c 100644 --- a/docs/interfaces/NFTokenAcceptOffer.html +++ b/docs/interfaces/NFTokenAcceptOffer.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -NFTokenAcceptOffer | xrpl
    +NFTokenAcceptOffer | xrpl
    -
    +
    • xrpl
    • @@ -36,15 +36,16 @@

      Interface NFTokenAcceptOffer

    buy_offer fields, but not both. To indicate brokered mode, use both the sell_offer and buy_offer fields. If you use neither sell_offer nor buy_offer, the transaction is invalid.

    -
    +
    +

    Hierarchy

    +
  • Defined in packages/xrpl/src/models/transactions/NFTokenAcceptOffer.ts:27
  • @@ -52,82 +53,89 @@

    Properties

    -
    - -
    Account: string
    -

    The unique address of the account that initiated the transaction.

    -
    +
    + +
    AccountTxnID?: string

    Hash value identifying another transaction. If provided, this transaction is only valid if the sending account's previously-sent transaction matches the provided hash.

    -
    -
    - -
    Fee?: string
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:249
  • +
    + +
    Fee?: string

    Integer amount of XRP, in drops, to be destroyed as a cost for distributing this transaction to the network. Some transaction types have different minimum requirements.

    -
    -
    - -
    Flags?: number | GlobalFlags
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:236
  • +
    + +
    Flags?: number | GlobalFlags

    Set of bit-flags for this transaction.

    -
    -
    - -
    LastLedgerSequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:251
  • +
    + +
    LastLedgerSequence?: number

    Highest ledger index this transaction can appear in. Specifying this field places a strict upper limit on how long the transaction can wait to be validated or rejected.

    -
    -
    - -
    Memos?: Memo[]
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:257
  • +
    + +
    Memos?: Memo[]

    Additional arbitrary information used to identify this transaction.

    -
    -
    - -
    NFTokenBrokerFee?: Amount
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:261
  • +
    + +
    NFTokenBrokerFee?: Amount

    This field is only valid in brokered mode. It specifies the amount that the broker will keep as part of their fee for bringing the two offers together; the remaining amount will @@ -144,98 +152,121 @@

    -
    - -
    NFTokenBuyOffer?: string
    +
  • Defined in packages/xrpl/src/models/transactions/NFTokenAcceptOffer.ts:65
  • +
    + +
    NFTokenBuyOffer?: string

    Identifies the NFTokenOffer that offers to buy the NFToken.

    In direct mode this field is optional, but either NFTokenSellOffer or NFTokenBuyOffer must be specified. In brokered mode, both NFTokenSellOffer and NFTokenBuyOffer must be specified.

    -
    -
    - -
    NFTokenSellOffer?: string
    +
  • Defined in packages/xrpl/src/models/transactions/NFTokenAcceptOffer.ts:44
  • +
    + +
    NFTokenSellOffer?: string

    Identifies the NFTokenOffer that offers to sell the NFToken.

    In direct mode this field is optional, but either NFTokenSellOffer or NFTokenBuyOffer must be specified. In brokered mode, both NFTokenSellOffer and NFTokenBuyOffer must be specified.

    -
    -
    - -
    Sequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/NFTokenAcceptOffer.ts:36
  • +
    + +
    NetworkID?: number
    +

    The network id of the transaction.

    +
    +
    +
    + +
    Sequence?: number

    The sequence number of the account sending the transaction. A transaction is only valid if the Sequence number is exactly 1 greater than the previous transaction from the same account. The special case 0 means the transaction is using a Ticket instead.

    -
    -
    - -
    Signers?: Signer[]
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:243
  • +
    + +
    Signers?: Signer[]

    Array of objects that represent a multi-signature which authorizes this transaction.

    -
    -
    - -
    SigningPubKey?: string
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:266
  • +
    + +
    SigningPubKey?: string

    Hex representation of the public key that corresponds to the private key used to sign this transaction. If an empty string, indicates a multi-signature is present in the Signers field instead.

    -
    -
    - -
    SourceTag?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:279
  • +
    + +
    SourceTag?: number

    Arbitrary integer used to identify the reason for this payment, or a sender on whose behalf this transaction is made. Conventionally, a refund should specify the initial payment's SourceTag as the refund payment's DestinationTag.

    -
    -
    - -
    TicketSequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:273
  • +
    + +
    TicketSequence?: number

    The sequence number of the ticket to use in place of a Sequence number. If this is provided, Sequence must be 0. Cannot be used with AccountTxnID.

    -
    -
    - -
    TransactionType: "NFTokenAcceptOffer"
    +
    + +
    TransactionType: "NFTokenAcceptOffer"
    +

    The type of transaction. Valid types include: Payment, OfferCreate, +TrustSet, and many others.

    +
    +
    -
    - -
    TxnSignature?: string
    +
  • Defined in packages/xrpl/src/models/transactions/NFTokenAcceptOffer.ts:28
  • +
    + +
    TxnSignature?: string

    The signature that verifies this transaction as originating from the account it says it is from.

    -
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • Account
  • +
  • AccountTxnID
  • +
  • Fee
  • +
  • Flags
  • +
  • LastLedgerSequence
  • +
  • Memos
  • +
  • NFTokenBrokerFee
  • +
  • NFTokenBuyOffer
  • +
  • NFTokenSellOffer
  • +
  • NetworkID
  • +
  • Sequence
  • +
  • Signers
  • +
  • SigningPubKey
  • +
  • SourceTag
  • +
  • TicketSequence
  • +
  • TransactionType
  • +
  • TxnSignature
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/NFTokenBurn.html b/docs/interfaces/NFTokenBurn.html index 5da7abcd7d..d07e0f720a 100644 --- a/docs/interfaces/NFTokenBurn.html +++ b/docs/interfaces/NFTokenBurn.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -NFTokenBurn | xrpl
    +NFTokenBurn | xrpl
    -
    +
    • xrpl
    • @@ -29,15 +29,16 @@

      Interface NFTokenBurn

    operation empties the NFTokenPage holding the NFToken or results in the consolidation, thus removing an NFTokenPage, the owner’s reserve requirement is reduced by one.

    -
    +
    +

    Hierarchy

    +
  • Defined in packages/xrpl/src/models/transactions/NFTokenBurn.ts:21
  • @@ -45,166 +46,195 @@

    Properties

    -
    - -
    Account: string
    +
    + +
    Account: string

    Indicates the AccountID that submitted this transaction. The account MUST be either the present owner of the token or, if the lsfBurnable flag is set in the NFToken, either the issuer account or an account authorized by the issuer, i.e. MintAccount.

    -
    -
    - -
    AccountTxnID?: string
    +
  • Defined in packages/xrpl/src/models/transactions/NFTokenBurn.ts:29
  • +
    + +
    AccountTxnID?: string

    Hash value identifying another transaction. If provided, this transaction is only valid if the sending account's previously-sent transaction matches the provided hash.

    -
    -
    - -
    Fee?: string
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:249
  • +
    + +
    Fee?: string

    Integer amount of XRP, in drops, to be destroyed as a cost for distributing this transaction to the network. Some transaction types have different minimum requirements.

    -
    -
    - -
    Flags?: number | GlobalFlags
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:236
  • +
    + +
    Flags?: number | GlobalFlags

    Set of bit-flags for this transaction.

    -
    -
    - -
    LastLedgerSequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:251
  • +
    + +
    LastLedgerSequence?: number

    Highest ledger index this transaction can appear in. Specifying this field places a strict upper limit on how long the transaction can wait to be validated or rejected.

    -
    -
    - -
    Memos?: Memo[]
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:257
  • +
    + +
    Memos?: Memo[]

    Additional arbitrary information used to identify this transaction.

    -
    -
    - -
    NFTokenID: string
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:261
  • +
    + +
    NFTokenID: string

    Identifies the NFToken object to be removed by the transaction.

    -
    -
    - -
    Owner?: string
    +
  • Defined in packages/xrpl/src/models/transactions/NFTokenBurn.ts:33
  • +
    + +
    NetworkID?: number
    +

    The network id of the transaction.

    +
    +
    +
    + +
    Owner?: string

    Indicates which account currently owns the token if it is different than Account. Only used to burn tokens which have the lsfBurnable flag enabled and are not owned by the signing account.

    -
    -
    - -
    Sequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/NFTokenBurn.ts:39
  • +
    + +
    Sequence?: number

    The sequence number of the account sending the transaction. A transaction is only valid if the Sequence number is exactly 1 greater than the previous transaction from the same account. The special case 0 means the transaction is using a Ticket instead.

    -
    -
    - -
    Signers?: Signer[]
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:243
  • +
    + +
    Signers?: Signer[]

    Array of objects that represent a multi-signature which authorizes this transaction.

    -
    -
    - -
    SigningPubKey?: string
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:266
  • +
    + +
    SigningPubKey?: string

    Hex representation of the public key that corresponds to the private key used to sign this transaction. If an empty string, indicates a multi-signature is present in the Signers field instead.

    -
    -
    - -
    SourceTag?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:279
  • +
    + +
    SourceTag?: number

    Arbitrary integer used to identify the reason for this payment, or a sender on whose behalf this transaction is made. Conventionally, a refund should specify the initial payment's SourceTag as the refund payment's DestinationTag.

    -
    -
    - -
    TicketSequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:273
  • +
    + +
    TicketSequence?: number

    The sequence number of the ticket to use in place of a Sequence number. If this is provided, Sequence must be 0. Cannot be used with AccountTxnID.

    -
    -
    - -
    TransactionType: "NFTokenBurn"
    -
    - -
    TxnSignature?: string
    + +
    +
    + +
    TransactionType: "NFTokenBurn"
    +

    The type of transaction. Valid types include: Payment, OfferCreate, +TrustSet, and many others.

    +
    +
    +
    + +
    TxnSignature?: string

    The signature that verifies this transaction as originating from the account it says it is from.

    -
    -
    +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • Account
  • +
  • AccountTxnID
  • +
  • Fee
  • +
  • Flags
  • +
  • LastLedgerSequence
  • +
  • Memos
  • +
  • NFTokenID
  • +
  • NetworkID
  • +
  • Owner
  • +
  • Sequence
  • +
  • Signers
  • +
  • SigningPubKey
  • +
  • SourceTag
  • +
  • TicketSequence
  • +
  • TransactionType
  • +
  • TxnSignature
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/NFTokenCancelOffer.html b/docs/interfaces/NFTokenCancelOffer.html index 1453d8b908..833755c4b6 100644 --- a/docs/interfaces/NFTokenCancelOffer.html +++ b/docs/interfaces/NFTokenCancelOffer.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -NFTokenCancelOffer | xrpl
    +NFTokenCancelOffer | xrpl
    -
    +
    • xrpl
    • @@ -29,15 +29,16 @@

      Interface NFTokenCancelOffer

    the NFTokenOffer, the account in the Recipient field of the NFTokenOffer (if present), or any account if the NFTokenOffer has an Expiration and the NFTokenOffer has already expired.

    -
    +
    +

    Hierarchy

    +
  • Defined in packages/xrpl/src/models/transactions/NFTokenCancelOffer.ts:16
  • @@ -45,158 +46,186 @@

    Properties

    -
    - -
    Account: string
    -

    The unique address of the account that initiated the transaction.

    -
    -
    - -
    AccountTxnID?: string
    +
    + +
    Account: string
    +

    The unique address of the transaction sender.

    +
    +
    +
    + +
    AccountTxnID?: string

    Hash value identifying another transaction. If provided, this transaction is only valid if the sending account's previously-sent transaction matches the provided hash.

    -
    -
    - -
    Fee?: string
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:249
  • +
    + +
    Fee?: string

    Integer amount of XRP, in drops, to be destroyed as a cost for distributing this transaction to the network. Some transaction types have different minimum requirements.

    -
    -
    - -
    Flags?: number | GlobalFlags
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:236
  • +
    + +
    Flags?: number | GlobalFlags

    Set of bit-flags for this transaction.

    -
    -
    - -
    LastLedgerSequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:251
  • +
    + +
    LastLedgerSequence?: number

    Highest ledger index this transaction can appear in. Specifying this field places a strict upper limit on how long the transaction can wait to be validated or rejected.

    -
    -
    - -
    Memos?: Memo[]
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:257
  • +
    + +
    Memos?: Memo[]

    Additional arbitrary information used to identify this transaction.

    -
    -
    - -
    NFTokenOffers: string[]
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:261
  • +
    + +
    NFTokenOffers: string[]

    An array of identifiers of NFTokenOffer objects that should be cancelled by this transaction.

    It is an error if an entry in this list points to an object that is not an NFTokenOffer object. It is not an error if an entry in this list points to an object that does not exist. This field is required.

    -
    +
    + +
    NetworkID?: number
    +

    The network id of the transaction.

    +
    +
    -
    - -
    Sequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:293
  • +
    + +
    Sequence?: number

    The sequence number of the account sending the transaction. A transaction is only valid if the Sequence number is exactly 1 greater than the previous transaction from the same account. The special case 0 means the transaction is using a Ticket instead.

    -
    -
    - -
    Signers?: Signer[]
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:243
  • +
    + +
    Signers?: Signer[]

    Array of objects that represent a multi-signature which authorizes this transaction.

    -
    -
    - -
    SigningPubKey?: string
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:266
  • +
    + +
    SigningPubKey?: string

    Hex representation of the public key that corresponds to the private key used to sign this transaction. If an empty string, indicates a multi-signature is present in the Signers field instead.

    -
    -
    - -
    SourceTag?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:279
  • +
    + +
    SourceTag?: number

    Arbitrary integer used to identify the reason for this payment, or a sender on whose behalf this transaction is made. Conventionally, a refund should specify the initial payment's SourceTag as the refund payment's DestinationTag.

    -
    -
    - -
    TicketSequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:273
  • +
    + +
    TicketSequence?: number

    The sequence number of the ticket to use in place of a Sequence number. If this is provided, Sequence must be 0. Cannot be used with AccountTxnID.

    -
    -
    - -
    TransactionType: "NFTokenCancelOffer"
    -
    - -
    TxnSignature?: string
    + +
    +
    + +
    TransactionType: "NFTokenCancelOffer"
    +

    The type of transaction. Valid types include: Payment, OfferCreate, +TrustSet, and many others.

    +
    +
    +
    + +
    TxnSignature?: string

    The signature that verifies this transaction as originating from the account it says it is from.

    -
    -
    +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • Account
  • +
  • AccountTxnID
  • +
  • Fee
  • +
  • Flags
  • +
  • LastLedgerSequence
  • +
  • Memos
  • +
  • NFTokenOffers
  • +
  • NetworkID
  • +
  • Sequence
  • +
  • Signers
  • +
  • SigningPubKey
  • +
  • SourceTag
  • +
  • TicketSequence
  • +
  • TransactionType
  • +
  • TxnSignature
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/NFTokenCreateOffer.html b/docs/interfaces/NFTokenCreateOffer.html index d78345b1f4..fbffd6fbaa 100644 --- a/docs/interfaces/NFTokenCreateOffer.html +++ b/docs/interfaces/NFTokenCreateOffer.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -NFTokenCreateOffer | xrpl
    +NFTokenCreateOffer | xrpl
    -
    +
    • xrpl
    • @@ -25,15 +25,16 @@

      Interface NFTokenCreateOffer

    The NFTokenCreateOffer transaction creates either an offer to buy an NFT the submitting account does not own, or an offer to sell an NFT the submitting account does own.

    -
    +
    +

    Hierarchy

    +
  • Defined in packages/xrpl/src/models/transactions/NFTokenCreateOffer.ts:45
  • @@ -41,119 +42,141 @@

    Properties

    -
    - -
    Account: string
    -

    The unique address of the account that initiated the transaction.

    -
    +
    + +
    AccountTxnID?: string

    Hash value identifying another transaction. If provided, this transaction is only valid if the sending account's previously-sent transaction matches the provided hash.

    -
    +
    -
    - -
    Amount: Amount
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:249
  • +
    + +
    Amount: Amount

    Indicates the amount expected or offered for the Token.

    The amount must be non-zero, except when this is a sell offer and the asset is XRP. This would indicate that the current owner of the token is giving it away free, either to anyone at all, or to the account identified by the Destination field.

    -
    -
    - -
    Destination?: string
    +
  • Defined in packages/xrpl/src/models/transactions/NFTokenCreateOffer.ts:60
  • +
    + +
    Destination?: string

    If present, indicates that this offer may only be accepted by the specified account. Attempts by other accounts to accept this offer MUST fail.

    -
    -
    - -
    Expiration?: number
    +
  • Defined in packages/xrpl/src/models/transactions/NFTokenCreateOffer.ts:86
  • +
    + +
    Expiration?: number

    Indicates the time after which the offer will no longer be valid. The value is the number of seconds since the Ripple Epoch.

    -
    -
    - -
    Fee?: string
    +
  • Defined in packages/xrpl/src/models/transactions/NFTokenCreateOffer.ts:80
  • +
    + +
    Fee?: string

    Integer amount of XRP, in drops, to be destroyed as a cost for distributing this transaction to the network. Some transaction types have different minimum requirements.

    -
    -
    - -
    +
    + + +

    Set of bit-flags for this transaction.

    +
    +
    -
    - -
    LastLedgerSequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/NFTokenCreateOffer.ts:87
  • +
    + +
    LastLedgerSequence?: number

    Highest ledger index this transaction can appear in. Specifying this field places a strict upper limit on how long the transaction can wait to be validated or rejected.

    -
    -
    - -
    Memos?: Memo[]
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:257
  • +
    + +
    Memos?: Memo[]

    Additional arbitrary information used to identify this transaction.

    -
    -
    - -
    NFTokenID: string
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:261
  • +
    + +
    NFTokenID: string

    Identifies the NFTokenID of the NFToken object that the offer references.

    -
    -
    - -
    Owner?: string
    +
  • Defined in packages/xrpl/src/models/transactions/NFTokenCreateOffer.ts:51
  • +
    + +
    NetworkID?: number
    +

    The network id of the transaction.

    +
    +
    +
    + +
    Owner?: string

    Indicates the AccountID of the account that owns the corresponding NFToken.

    If the offer is to buy a token, this field must be present @@ -163,78 +186,90 @@

    -
    - -
    Sequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/NFTokenCreateOffer.ts:74
  • +
    + +
    Sequence?: number

    The sequence number of the account sending the transaction. A transaction is only valid if the Sequence number is exactly 1 greater than the previous transaction from the same account. The special case 0 means the transaction is using a Ticket instead.

    -
    -
    - -
    Signers?: Signer[]
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:243
  • +
    + +
    Signers?: Signer[]

    Array of objects that represent a multi-signature which authorizes this transaction.

    -
    -
    - -
    SigningPubKey?: string
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:266
  • +
    + +
    SigningPubKey?: string

    Hex representation of the public key that corresponds to the private key used to sign this transaction. If an empty string, indicates a multi-signature is present in the Signers field instead.

    -
    -
    - -
    SourceTag?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:279
  • +
    + +
    SourceTag?: number

    Arbitrary integer used to identify the reason for this payment, or a sender on whose behalf this transaction is made. Conventionally, a refund should specify the initial payment's SourceTag as the refund payment's DestinationTag.

    -
    -
    - -
    TicketSequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:273
  • +
    + +
    TicketSequence?: number

    The sequence number of the ticket to use in place of a Sequence number. If this is provided, Sequence must be 0. Cannot be used with AccountTxnID.

    -
    -
    - -
    TransactionType: "NFTokenCreateOffer"
    +
    + +
    TransactionType: "NFTokenCreateOffer"
    +

    The type of transaction. Valid types include: Payment, OfferCreate, +TrustSet, and many others.

    +
    +
    -
    - -
    TxnSignature?: string
    +
  • Defined in packages/xrpl/src/models/transactions/NFTokenCreateOffer.ts:46
  • +
    + +
    TxnSignature?: string

    The signature that verifies this transaction as originating from the account it says it is from.

    -
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • Account
  • +
  • AccountTxnID
  • +
  • Amount
  • +
  • Destination
  • +
  • Expiration
  • +
  • Fee
  • +
  • Flags
  • +
  • LastLedgerSequence
  • +
  • Memos
  • +
  • NFTokenID
  • +
  • NetworkID
  • +
  • Owner
  • +
  • Sequence
  • +
  • Signers
  • +
  • SigningPubKey
  • +
  • SourceTag
  • +
  • TicketSequence
  • +
  • TransactionType
  • +
  • TxnSignature
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/NFTokenCreateOfferFlagsInterface.html b/docs/interfaces/NFTokenCreateOfferFlagsInterface.html index 72d552714d..6cc17af9a0 100644 --- a/docs/interfaces/NFTokenCreateOfferFlagsInterface.html +++ b/docs/interfaces/NFTokenCreateOfferFlagsInterface.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -NFTokenCreateOfferFlagsInterface | xrpl
    +NFTokenCreateOfferFlagsInterface | xrpl
    -
    +

    Interface NFTokenCreateOfferFlagsInterface

    -

    Map of flags to boolean values representing NFTokenCreateOffer transaction +

    Map of flags to boolean values representing NFTokenCreateOffer transaction flags.

    -
    +
    +

    Hierarchy

      -
    • GlobalFlags +
    • GlobalFlags
      • NFTokenCreateOfferFlagsInterface
    +
  • Defined in packages/xrpl/src/models/transactions/NFTokenCreateOffer.ts:36
  • @@ -40,19 +41,20 @@

    Properties

    -
    - -
    tfSellNFToken?: boolean
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • tfSellNFToken
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/NFTokenMint.html b/docs/interfaces/NFTokenMint.html index d51840ba08..e12177c09e 100644 --- a/docs/interfaces/NFTokenMint.html +++ b/docs/interfaces/NFTokenMint.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -NFTokenMint | xrpl
    +NFTokenMint | xrpl
    -
    +
    • xrpl
    • @@ -26,15 +26,16 @@

      Interface NFTokenMint

    relevant NFTokenPage object of the minter. If the transaction is successful, the newly minted token will be owned by the minter account specified by the transaction.

    -
    +
    +

    Hierarchy

    +
  • Defined in packages/xrpl/src/models/transactions/NFTokenMint.ts:62
  • @@ -42,179 +43,210 @@

    Properties

    -
    - -
    Account: string
    -

    The unique address of the account that initiated the transaction.

    -
    +
    + +
    AccountTxnID?: string

    Hash value identifying another transaction. If provided, this transaction is only valid if the sending account's previously-sent transaction matches the provided hash.

    -
    -
    - -
    Fee?: string
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:249
  • +
    + +
    Fee?: string

    Integer amount of XRP, in drops, to be destroyed as a cost for distributing this transaction to the network. Some transaction types have different minimum requirements.

    -
    -
    - -
    Flags?: number | NFTokenMintFlagsInterface
    +
    + +
    Flags?: number | NFTokenMintFlagsInterface
    +

    Set of bit-flags for this transaction.

    +
    +
    -
    - -
    Issuer?: string
    +
  • Defined in packages/xrpl/src/models/transactions/NFTokenMint.ts:102
  • +
    + +
    Issuer?: string

    Indicates the account that should be the issuer of this token. This value is optional and should only be specified if the account executing the transaction is not the Issuer of the NFToken object. If it is present, the MintAccount field in the AccountRoot of the Issuer field must match the Account, otherwise the transaction will fail.

    -
    -
    - -
    LastLedgerSequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/NFTokenMint.ts:79
  • +
    + +
    LastLedgerSequence?: number

    Highest ledger index this transaction can appear in. Specifying this field places a strict upper limit on how long the transaction can wait to be validated or rejected.

    -
    -
    - -
    Memos?: Memo[]
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:257
  • +
    + +
    Memos?: Memo[]

    Additional arbitrary information used to identify this transaction.

    -
    -
    - -
    NFTokenTaxon: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:261
  • +
    + +
    NFTokenTaxon: number

    Indicates the taxon associated with this token. The taxon is generally a value chosen by the minter of the token and a given taxon may be used for multiple tokens. The implementation reserves taxon identifiers greater than or equal to 2147483648 (0x80000000). If you have no use for this field, set it to 0.

    -
    -
    - -
    Sequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/NFTokenMint.ts:71
  • +
    + +
    NetworkID?: number
    +

    The network id of the transaction.

    +
    +
    +
    + +
    Sequence?: number

    The sequence number of the account sending the transaction. A transaction is only valid if the Sequence number is exactly 1 greater than the previous transaction from the same account. The special case 0 means the transaction is using a Ticket instead.

    -
    -
    - -
    Signers?: Signer[]
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:243
  • +
    + +
    Signers?: Signer[]

    Array of objects that represent a multi-signature which authorizes this transaction.

    -
    -
    - -
    SigningPubKey?: string
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:266
  • +
    + +
    SigningPubKey?: string

    Hex representation of the public key that corresponds to the private key used to sign this transaction. If an empty string, indicates a multi-signature is present in the Signers field instead.

    -
    -
    - -
    SourceTag?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:279
  • +
    + +
    SourceTag?: number

    Arbitrary integer used to identify the reason for this payment, or a sender on whose behalf this transaction is made. Conventionally, a refund should specify the initial payment's SourceTag as the refund payment's DestinationTag.

    -
    -
    - -
    TicketSequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:273
  • +
    + +
    TicketSequence?: number

    The sequence number of the ticket to use in place of a Sequence number. If this is provided, Sequence must be 0. Cannot be used with AccountTxnID.

    -
    -
    - -
    TransactionType: "NFTokenMint"
    +
    + +
    TransactionType: "NFTokenMint"
    +

    The type of transaction. Valid types include: Payment, OfferCreate, +TrustSet, and many others.

    +
    +
    -
    - -
    TransferFee?: number
    +
  • Defined in packages/xrpl/src/models/transactions/NFTokenMint.ts:63
  • +
    + +
    TransferFee?: number

    Specifies the fee charged by the issuer for secondary sales of the Token, if such sales are allowed. Valid values for this field are between 0 and 50000 inclusive, allowing transfer rates between 0.000% and 50.000% in increments of 0.001%. This field must NOT be present if the tfTransferable flag is not set.

    -
    -
    - -
    TxnSignature?: string
    +
  • Defined in packages/xrpl/src/models/transactions/NFTokenMint.ts:87
  • +
    + +
    TxnSignature?: string

    The signature that verifies this transaction as originating from the account it says it is from.

    -
    -
    - -
    URI?: string
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:289
  • +
    + +
    URI?: null | string

    URI that points to the data and/or metadata associated with the NFT. This field need not be an HTTP or HTTPS URL; it could be an IPFS URI, a magnet link, immediate data encoded as an RFC2379 "data" URL, or even an @@ -222,13 +254,17 @@

    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • Account
  • +
  • AccountTxnID
  • +
  • Fee
  • +
  • Flags
  • +
  • Issuer
  • +
  • LastLedgerSequence
  • +
  • Memos
  • +
  • NFTokenTaxon
  • +
  • NetworkID
  • +
  • Sequence
  • +
  • Signers
  • +
  • SigningPubKey
  • +
  • SourceTag
  • +
  • TicketSequence
  • +
  • TransactionType
  • +
  • TransferFee
  • +
  • TxnSignature
  • +
  • URI
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/NFTokenMintFlagsInterface.html b/docs/interfaces/NFTokenMintFlagsInterface.html index 44c32f54a4..3f1aba3718 100644 --- a/docs/interfaces/NFTokenMintFlagsInterface.html +++ b/docs/interfaces/NFTokenMintFlagsInterface.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -NFTokenMintFlagsInterface | xrpl
    +NFTokenMintFlagsInterface | xrpl
    -
    +

    Interface NFTokenMintFlagsInterface

    -

    Map of flags to boolean values representing NFTokenMint transaction +

    Map of flags to boolean values representing NFTokenMint transaction flags.

    -
    +
    +

    Hierarchy

      -
    • GlobalFlags +
    • GlobalFlags
      • NFTokenMintFlagsInterface
    +
  • Defined in packages/xrpl/src/models/transactions/NFTokenMint.ts:49
  • @@ -40,37 +41,38 @@

    Properties

    -
    - -
    tfBurnable?: boolean
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • tfBurnable
  • +
  • tfOnlyXRP
  • +
  • tfTransferable
  • +
  • tfTrustLine
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/NoRippleCheckRequest.html b/docs/interfaces/NoRippleCheckRequest.html index ab17bb7eb4..2437e1ba4b 100644 --- a/docs/interfaces/NoRippleCheckRequest.html +++ b/docs/interfaces/NoRippleCheckRequest.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -NoRippleCheckRequest | xrpl
    +NoRippleCheckRequest | xrpl
    -
    +
    • xrpl
    • @@ -25,19 +25,20 @@

      Interface NoRippleCheckRequest

    The noripple_check command provides a quick way to check the status of th default ripple field for an account and the No Ripple flag of its trust lines, compared with the recommended settings. Expects a response in the form -of an NoRippleCheckResponse.

    - -

    Example

    const noRipple: NoRippleCheckRequest = {
    "id": 0,
    "command": "noripple_check",
    "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59",
    "role": "gateway",
    "ledger_index": "current",
    "limit": 2,
    "transactions": true
    } -
    +of an NoRippleCheckResponse.

    +
    +
    +

    Example

    const noRipple: NoRippleCheckRequest = {
    "id": 0,
    "command": "noripple_check",
    "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59",
    "role": "gateway",
    "ledger_index": "current",
    "limit": 2,
    "transactions": true
    } +

    Hierarchy

    +
  • Defined in packages/xrpl/src/models/methods/norippleCheck.ts:27
  • @@ -45,94 +46,106 @@

    Properties

    -
    - -
    account: string
    +
    + +
    account: string

    A unique identifier for the account, most commonly the account's address.

    -
    +
    -
    - -
    api_version?: number
    +
  • Defined in packages/xrpl/src/models/methods/norippleCheck.ts:30
  • +
    + +
    api_version?: number

    The API version to use. If omitted, use version 1.

    -
    +
    -
    - -
    command: "noripple_check"
    +
    + +
    command: "noripple_check"
    +

    The name of the API method.

    +
    +
    -
    - -
    id?: string | number
    +
  • Defined in packages/xrpl/src/models/methods/norippleCheck.ts:28
  • +
    + +
    id?: string | number

    A unique value to identify this request. The response to this request uses the same id field. This way, even if responses arrive out of order, you know which request prompted which response.

    -
    -
    - -
    ledger_hash?: string
    +
  • Defined in packages/xrpl/src/models/methods/baseMethod.ts:12
  • +
    + +
    ledger_hash?: string

    A 20-byte hex string for the ledger version to use.

    -
    -
    - -
    ledger_index?: LedgerIndex
    +
  • Defined in packages/xrpl/src/models/methods/norippleCheck.ts:49
  • +
    + +
    ledger_index?: LedgerIndex

    The ledger index of the ledger to use, or a shortcut string to choose a ledger automatically.

    -
    -
    - -
    limit?: number
    +
  • Defined in packages/xrpl/src/models/methods/norippleCheck.ts:54
  • +
    + +
    limit?: number

    The maximum number of trust line problems to include in the results. Defaults to 300.

    -
    -
    - -
    role: "user" | "gateway"
    +
  • Defined in packages/xrpl/src/models/methods/norippleCheck.ts:47
  • +
    + +
    role: "user" | "gateway"

    Whether the address refers to a gateway or user. Recommendations depend on the role of the account. Issuers must have Default Ripple enabled and must disable No Ripple on all trust lines. Users should have Default Ripple disabled, and should enable No Ripple on all trust lines.

    -
    -
    - -
    transactions?: boolean
    +
  • Defined in packages/xrpl/src/models/methods/norippleCheck.ts:37
  • +
    + +
    transactions?: boolean

    If true, include an array of suggested transactions, as JSON objects, that you can sign and submit to fix the problems. Defaults to false.

    -
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • account
  • +
  • api_version
  • +
  • command
  • +
  • id
  • +
  • ledger_hash
  • +
  • ledger_index
  • +
  • limit
  • +
  • role
  • +
  • transactions
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/NoRippleCheckResponse.html b/docs/interfaces/NoRippleCheckResponse.html index 96a055e367..c6a1ede8fd 100644 --- a/docs/interfaces/NoRippleCheckResponse.html +++ b/docs/interfaces/NoRippleCheckResponse.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -NoRippleCheckResponse | xrpl
    +NoRippleCheckResponse | xrpl
    -
    +

    Interface NoRippleCheckResponse

    -

    Response expected by a NoRippleCheckRequest.

    -
    +

    Response expected by a NoRippleCheckRequest.

    +
    +

    Hierarchy

    +
  • Defined in packages/xrpl/src/models/methods/norippleCheck.ts:62
  • @@ -39,91 +40,95 @@

    Properties

    -
    - -
    api_version?: number
    +
    + +
    result: {
        ledger_current_index: number;
        problems: string[];
        transactions: Object[];
    }

    Type declaration

    • -
      ledger_current_index: number
      +
      ledger_current_index: number

      The ledger index of the ledger used to calculate these results.

      -
    • +
    +
  • -
    problems: string[]
    +
    problems: string[]

    Array of strings with human-readable descriptions of the problems. This includes up to one entry if the account's Default Ripple setting is not as recommended, plus up to limit entries for trust lines whose no ripple setting is not as recommended.

    -
  • +
    +
  • -
    transactions: Object[]
    +
    transactions: Object[]

    If the request specified transactions as true, this is an array of JSON objects, each of which is the JSON form of a transaction that should fix one of the described problems. The length of this array is the same as the problems array, and each entry is intended to fix the problem described at the same index into that array.

    -
  • +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • api_version
  • +
  • forwarded
  • +
  • id
  • +
  • result
  • +
  • status
  • +
  • type
  • +
  • warning
  • +
  • warnings
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/OfferCancel.html b/docs/interfaces/OfferCancel.html index 3714ae079a..a160b01946 100644 --- a/docs/interfaces/OfferCancel.html +++ b/docs/interfaces/OfferCancel.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -OfferCancel | xrpl
    +OfferCancel | xrpl
    -

    Properties

    -
    - -
    Account: string
    -

    The unique address of the account that initiated the transaction.

    -
    -
    - -
    AccountTxnID?: string
    +
    + +
    Account: string
    +

    The unique address of the transaction sender.

    +
    +
    +
    + +
    AccountTxnID?: string

    Hash value identifying another transaction. If provided, this transaction is only valid if the sending account's previously-sent transaction matches the provided hash.

    -
    +
    -
    - -
    Fee?: string
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:249
  • +
    + +
    Fee?: string

    Integer amount of XRP, in drops, to be destroyed as a cost for distributing this transaction to the network. Some transaction types have different minimum requirements.

    -
    -
    - -
    Flags?: number | GlobalFlags
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:236
  • +
    + +
    Flags?: number | GlobalFlags

    Set of bit-flags for this transaction.

    -
    -
    - -
    LastLedgerSequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:251
  • +
    + +
    LastLedgerSequence?: number

    Highest ledger index this transaction can appear in. Specifying this field places a strict upper limit on how long the transaction can wait to be validated or rejected.

    -
    -
    - -
    Memos?: Memo[]
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:257
  • +
    + +
    Memos?: Memo[]

    Additional arbitrary information used to identify this transaction.

    -
    +
    + +
    NetworkID?: number
    +

    The network id of the transaction.

    +
    +
    -
    - -
    OfferSequence: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:293
  • +
    + +
    OfferSequence: number

    The sequence number (or Ticket number) of a previous OfferCreate transaction. If specified, cancel any offer object in the ledger that was created by that transaction. It is not considered an error if the offer. specified does not exist.

    -
    -
    - -
    Sequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/offerCancel.ts:18
  • +
    + +
    Sequence?: number

    The sequence number of the account sending the transaction. A transaction is only valid if the Sequence number is exactly 1 greater than the previous transaction from the same account. The special case 0 means the transaction is using a Ticket instead.

    -
    -
    - -
    Signers?: Signer[]
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:243
  • +
    + +
    Signers?: Signer[]

    Array of objects that represent a multi-signature which authorizes this transaction.

    -
    -
    - -
    SigningPubKey?: string
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:266
  • +
    + +
    SigningPubKey?: string

    Hex representation of the public key that corresponds to the private key used to sign this transaction. If an empty string, indicates a multi-signature is present in the Signers field instead.

    -
    -
    - -
    SourceTag?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:279
  • +
    + +
    SourceTag?: number

    Arbitrary integer used to identify the reason for this payment, or a sender on whose behalf this transaction is made. Conventionally, a refund should specify the initial payment's SourceTag as the refund payment's DestinationTag.

    -
    -
    - -
    TicketSequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:273
  • +
    + +
    TicketSequence?: number

    The sequence number of the ticket to use in place of a Sequence number. If this is provided, Sequence must be 0. Cannot be used with AccountTxnID.

    -
    -
    - -
    TransactionType: "OfferCancel"
    -
    - -
    TxnSignature?: string
    + +
    +
    + +
    TransactionType: "OfferCancel"
    +

    The type of transaction. Valid types include: Payment, OfferCreate, +TrustSet, and many others.

    +
    +
    +
    + +
    TxnSignature?: string

    The signature that verifies this transaction as originating from the account it says it is from.

    -
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • Account
  • +
  • AccountTxnID
  • +
  • Fee
  • +
  • Flags
  • +
  • LastLedgerSequence
  • +
  • Memos
  • +
  • NetworkID
  • +
  • OfferSequence
  • +
  • Sequence
  • +
  • Signers
  • +
  • SigningPubKey
  • +
  • SourceTag
  • +
  • TicketSequence
  • +
  • TransactionType
  • +
  • TxnSignature
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/OfferCreate.html b/docs/interfaces/OfferCreate.html index c2c0d519d2..9dc251e8fb 100644 --- a/docs/interfaces/OfferCreate.html +++ b/docs/interfaces/OfferCreate.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -OfferCreate | xrpl
    +OfferCreate | xrpl
    -
    +
    • xrpl
    • @@ -25,15 +25,16 @@

      Interface OfferCreate

    An OfferCreate transaction is effectively a limit order . It defines an intent to exchange currencies, and creates an Offer object if not completely. Fulfilled when placed. Offers can be partially fulfilled.

    -
    +
    +

    Hierarchy

    +
  • Defined in packages/xrpl/src/models/transactions/offerCreate.ts:95
  • @@ -41,176 +42,209 @@

    Properties

    -
    - -
    Account: string
    -

    The unique address of the account that initiated the transaction.

    -
    -
    - -
    AccountTxnID?: string
    +
    + +
    Account: string
    +

    The unique address of the transaction sender.

    +
    +
    +
    + +
    AccountTxnID?: string

    Hash value identifying another transaction. If provided, this transaction is only valid if the sending account's previously-sent transaction matches the provided hash.

    -
    +
    -
    - -
    Expiration?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:249
  • +
    + +
    Expiration?: number

    Time after which the offer is no longer active, in seconds since the. Ripple Epoch.

    -
    -
    - -
    Fee?: string
    +
  • Defined in packages/xrpl/src/models/transactions/offerCreate.ts:102
  • +
    + +
    Fee?: string

    Integer amount of XRP, in drops, to be destroyed as a cost for distributing this transaction to the network. Some transaction types have different minimum requirements.

    -
    -
    - -
    Flags?: number | OfferCreateFlagsInterface
    -
    - -
    LastLedgerSequence?: number
    + +
    +
    + +
    Flags?: number | OfferCreateFlagsInterface
    +

    Set of bit-flags for this transaction.

    +
    +
    +
    + +
    LastLedgerSequence?: number

    Highest ledger index this transaction can appear in. Specifying this field places a strict upper limit on how long the transaction can wait to be validated or rejected.

    -
    -
    - -
    Memos?: Memo[]
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:257
  • +
    + +
    Memos?: Memo[]

    Additional arbitrary information used to identify this transaction.

    -
    -
    - -
    OfferSequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:261
  • +
    + +
    NetworkID?: number
    +

    The network id of the transaction.

    +
    +
    +
    + +
    OfferSequence?: number

    An offer to delete first, specified in the same way as OfferCancel.

    -
    -
    - -
    Sequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/offerCreate.ts:104
  • +
    + +
    Sequence?: number

    The sequence number of the account sending the transaction. A transaction is only valid if the Sequence number is exactly 1 greater than the previous transaction from the same account. The special case 0 means the transaction is using a Ticket instead.

    -
    -
    - -
    Signers?: Signer[]
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:243
  • +
    + +
    Signers?: Signer[]

    Array of objects that represent a multi-signature which authorizes this transaction.

    -
    -
    - -
    SigningPubKey?: string
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:266
  • +
    + +
    SigningPubKey?: string

    Hex representation of the public key that corresponds to the private key used to sign this transaction. If an empty string, indicates a multi-signature is present in the Signers field instead.

    -
    -
    - -
    SourceTag?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:279
  • +
    + +
    SourceTag?: number

    Arbitrary integer used to identify the reason for this payment, or a sender on whose behalf this transaction is made. Conventionally, a refund should specify the initial payment's SourceTag as the refund payment's DestinationTag.

    -
    -
    - -
    TakerGets: Amount
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:273
  • +
    + +
    TakerGets: Amount

    The amount and type of currency being provided by the offer creator.

    -
    -
    - -
    TakerPays: Amount
    +
  • Defined in packages/xrpl/src/models/transactions/offerCreate.ts:106
  • +
    + +
    TakerPays: Amount

    The amount and type of currency being requested by the offer creator.

    -
    -
    - -
    TicketSequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/offerCreate.ts:108
  • +
    + +
    TicketSequence?: number

    The sequence number of the ticket to use in place of a Sequence number. If this is provided, Sequence must be 0. Cannot be used with AccountTxnID.

    -
    -
    - -
    TransactionType: "OfferCreate"
    -
    - -
    TxnSignature?: string
    + +
    +
    + +
    TransactionType: "OfferCreate"
    +

    The type of transaction. Valid types include: Payment, OfferCreate, +TrustSet, and many others.

    +
    +
    +
    + +
    TxnSignature?: string

    The signature that verifies this transaction as originating from the account it says it is from.

    -
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • Account
  • +
  • AccountTxnID
  • +
  • Expiration
  • +
  • Fee
  • +
  • Flags
  • +
  • LastLedgerSequence
  • +
  • Memos
  • +
  • NetworkID
  • +
  • OfferSequence
  • +
  • Sequence
  • +
  • Signers
  • +
  • SigningPubKey
  • +
  • SourceTag
  • +
  • TakerGets
  • +
  • TakerPays
  • +
  • TicketSequence
  • +
  • TransactionType
  • +
  • TxnSignature
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/OfferCreateFlagsInterface.html b/docs/interfaces/OfferCreateFlagsInterface.html index d1570fbe51..eb2029aa2b 100644 --- a/docs/interfaces/OfferCreateFlagsInterface.html +++ b/docs/interfaces/OfferCreateFlagsInterface.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -OfferCreateFlagsInterface | xrpl
    +OfferCreateFlagsInterface | xrpl
    -
    +

    Interface OfferCreateFlagsInterface

    -

    Map of flags to boolean values representing OfferCreate transaction +

    Map of flags to boolean values representing OfferCreate transaction flags.

    - -

    Example

    const tx: OfferCreate = {
    Account: 'rhFcpWDHLqpBmX4ezWiA5VLSS4e1BHqhHd',
    TakerGets: '43000.51',
    TakerPays: '12928290425',
    TransactionType: 'OfferCreate',
    Flags: {
    tfPassive: true,
    tfFillOrKill: true,
    },
    }

    // Autofill the tx to see how flags actually look compared to the interface usage.
    const autofilledTx = await client.autofill(tx)
    console.log(autofilledTx)
    // {
    // Account: 'rhFcpWDHLqpBmX4ezWiA5VLSS4e1BHqhHd',
    // TakerGets: '43000.51',
    // TakerPays: '12928290425',
    // TransactionType: 'OfferCreate',
    // Flags: 327680,
    // Sequence: 21970384,
    // Fee: '12',
    // LastLedgerSequence: 21970404
    // } -
    +
    +
    +

    Example

    const tx: OfferCreate = {
    Account: 'rhFcpWDHLqpBmX4ezWiA5VLSS4e1BHqhHd',
    TakerGets: '43000.51',
    TakerPays: '12928290425',
    TransactionType: 'OfferCreate',
    Flags: {
    tfPassive: true,
    tfFillOrKill: true,
    },
    }

    // Autofill the tx to see how flags actually look compared to the interface usage.
    const autofilledTx = await client.autofill(tx)
    console.log(autofilledTx)
    // {
    // Account: 'rhFcpWDHLqpBmX4ezWiA5VLSS4e1BHqhHd',
    // TakerGets: '43000.51',
    // TakerPays: '12928290425',
    // TransactionType: 'OfferCreate',
    // Flags: 327680,
    // Sequence: 21970384,
    // Fee: '12',
    // LastLedgerSequence: 21970404
    // } +

    Hierarchy

      -
    • GlobalFlags +
    • GlobalFlags
      • OfferCreateFlagsInterface
    +
  • Defined in packages/xrpl/src/models/transactions/offerCreate.ts:81
  • @@ -43,37 +44,38 @@

    Properties

    -
    - -
    tfFillOrKill?: boolean
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • tfFillOrKill
  • +
  • tfImmediateOrCancel
  • +
  • tfPassive
  • +
  • tfSell
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/OrderBookStream.html b/docs/interfaces/OrderBookStream.html index 2b050b63ca..92c1e38309 100644 --- a/docs/interfaces/OrderBookStream.html +++ b/docs/interfaces/OrderBookStream.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -OrderBookStream | xrpl
    +OrderBookStream | xrpl
    -
    +
    • xrpl
    • @@ -24,17 +24,18 @@

      Interface OrderBookStream

    When you subscribe to one or more order books with the books field, you get back any transactions that affect those order books. Has the same format -as a TransactionStream but the transaction can have a owner_funds +as a TransactionStream but the transaction can have a owner_funds field.

    -
    +
    +

    Hierarchy

      -
    • BaseStream +
    • BaseStream
      • OrderBookStream
    +
  • Defined in packages/xrpl/src/models/methods/subscribe.ts:347
  • @@ -42,80 +43,81 @@

    Properties

    -
    - -
    engine_result: string
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • engine_result
  • +
  • engine_result_code
  • +
  • engine_result_message
  • +
  • ledger_current_index
  • +
  • ledger_hash
  • +
  • ledger_index
  • +
  • meta
  • +
  • status
  • +
  • transaction
  • +
  • type
  • +
  • validated
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/PathFindCloseRequest.html b/docs/interfaces/PathFindCloseRequest.html index ac34bada00..6e1d8b0a79 100644 --- a/docs/interfaces/PathFindCloseRequest.html +++ b/docs/interfaces/PathFindCloseRequest.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -PathFindCloseRequest | xrpl
    +PathFindCloseRequest | xrpl
    -
    +
    • xrpl
    • @@ -23,15 +23,16 @@

      Interface PathFindCloseRequest

    Stop sending pathfinding information.

    -
    +
    +

    Hierarchy

      -
    • BasePathFindRequest +
    • BasePathFindRequest
      • PathFindCloseRequest
    +
  • Defined in packages/xrpl/src/models/methods/pathFind.ts:36
  • @@ -39,47 +40,50 @@

    Properties

    -
    - -
    api_version?: number
    +
    + +
    api_version?: number

    The API version to use. If omitted, use version 1.

    -
    +
    -
    - -
    command: "path_find"
    +
    + +
    command: "path_find"
    -
    - -
    id?: string | number
    +
  • Defined in packages/xrpl/src/models/methods/pathFind.ts:6
  • +
    + +
    id?: string | number

    A unique value to identify this request. The response to this request uses the same id field. This way, even if responses arrive out of order, you know which request prompted which response.

    -
    -
    - -
    subcommand: "close"
    +
    + +
    subcommand: "close"
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • api_version
  • +
  • command
  • +
  • id
  • +
  • subcommand
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/PathFindCreateRequest.html b/docs/interfaces/PathFindCreateRequest.html index c02762cc8f..3d00c619cf 100644 --- a/docs/interfaces/PathFindCreateRequest.html +++ b/docs/interfaces/PathFindCreateRequest.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -PathFindCreateRequest | xrpl
    +PathFindCreateRequest | xrpl
    -
    +
    • xrpl
    • @@ -23,15 +23,16 @@

      Interface PathFindCreateRequest

    Start sending pathfinding information.

    -
    +
    +

    Hierarchy

      -
    • BasePathFindRequest +
    • BasePathFindRequest
      • PathFindCreateRequest
    +
  • Defined in packages/xrpl/src/models/methods/pathFind.ts:11
  • @@ -39,91 +40,99 @@

    Properties

    -
    - -
    api_version?: number
    +
    + +
    api_version?: number

    The API version to use. If omitted, use version 1.

    -
    +
    -
    - -
    command: "path_find"
    +
    + +
    command: "path_find"
    -
    - -
    destination_account: string
    +
  • Defined in packages/xrpl/src/models/methods/pathFind.ts:6
  • +
    + +
    destination_account: string

    Unique address of the account to find a path to.

    -
    -
    - -
    destination_amount: Amount
    +
  • Defined in packages/xrpl/src/models/methods/pathFind.ts:19
  • +
    + +
    destination_amount: Amount

    Currency Amount that the destination account would receive in a transaction.

    -
    -
    - -
    id?: string | number
    +
  • Defined in packages/xrpl/src/models/methods/pathFind.ts:24
  • +
    + +
    id?: string | number

    A unique value to identify this request. The response to this request uses the same id field. This way, even if responses arrive out of order, you know which request prompted which response.

    -
    -
    - -
    paths?: Path[]
    +
  • Defined in packages/xrpl/src/models/methods/baseMethod.ts:12
  • +
    + +
    paths?: Path[]

    Array of arrays of objects, representing payment paths to check. You can use this to keep updated on changes to particular paths you already know about, or to check the overall cost to make a payment along a certain path.

    -
    -
    - -
    send_max?: Amount
    +
  • Defined in packages/xrpl/src/models/methods/pathFind.ts:32
  • +
    + +
    send_max?: Amount

    Currency amount that would be spent in the transaction.

    -
    -
    - -
    source_account: string
    +
  • Defined in packages/xrpl/src/models/methods/pathFind.ts:26
  • +
    + +
    source_account: string

    Unique address of the account to find a path from. In other words, the. Account that would be sending a payment.

    -
    -
    - -
    subcommand: "create"
    +
    + +
    subcommand: "create"
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • api_version
  • +
  • command
  • +
  • destination_account
  • +
  • destination_amount
  • +
  • id
  • +
  • paths
  • +
  • send_max
  • +
  • source_account
  • +
  • subcommand
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/PathFindPathOption.html b/docs/interfaces/PathFindPathOption.html new file mode 100644 index 0000000000..6e845c7c74 --- /dev/null +++ b/docs/interfaces/PathFindPathOption.html @@ -0,0 +1,397 @@ +PathFindPathOption | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface PathFindPathOption

    +
    +

    Hierarchy

    +
      +
    • PathFindPathOption
    +
    +
    +
    + +
    +
    +

    Properties

    +
    + +
    destination_amount?: Amount
    +

    Destination Amount that the destination would receive along this path. +If the send_max field is set, this field will be set.

    +
    +
    +
    + +
    paths_computed: Path[]
    +

    Array of arrays of objects defining payment paths.

    +
    +
    +
    + +
    source_amount: Amount
    +

    Currency Amount that the source would have to send along this path for the. +Destination to receive the desired amount.

    +
    +
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/PathFindResponse.html b/docs/interfaces/PathFindResponse.html index 1b1566757d..fa64ecf681 100644 --- a/docs/interfaces/PathFindResponse.html +++ b/docs/interfaces/PathFindResponse.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -PathFindResponse | xrpl
    +PathFindResponse | xrpl
    -
    +

    Interface PathFindResponse

    -

    Response expected from a PathFindRequest.

    -
    +

    Response expected from a PathFindRequest.

    +
    +

    Hierarchy

    +
  • Defined in packages/xrpl/src/models/methods/pathFind.ts:78
  • @@ -39,113 +40,122 @@

    Properties

    -
    - -
    api_version?: number
    +
    + +
    result: {
        alternatives: PathFindPathOption[];
        closed?: true;
        destination_account: string;
        destination_amount: Amount;
        full_reply: boolean;
        id?: string | number;
        source_account: string;
        status?: true;
    }

    Type declaration

    • -
      alternatives: PathOption[]
      +
      alternatives: PathFindPathOption[]

      Array of objects with suggested paths to take, as described below. If empty, then no paths were found connecting the source and destination accounts.

      -
    • +
    +
  • -
    Optional closed?: true
    +
    Optional closed?: true

    The value true indicates this reply is in response to a path_find close command.

    -
  • +
    +
  • -
    destination_account: string
    +
    destination_account: string

    Unique address of the account that would receive a transaction.

    -
  • +
    +
  • -
    destination_amount: Amount
    -

    Currency amount that the destination would receive in a transaction.

    -
  • +
    destination_amount: Amount
    +

    Currency amount provided in the WebSocket request.

    +
    +
  • -
    full_reply: boolean
    +
    full_reply: boolean

    If false, this is the result of an incomplete search. A later reply may have a better path. If true, then this is the best path found. (It is still theoretically possible that a better path could exist, but rippled won't find it.) Until you close the pathfinding request, rippled. Continues to send updates each time a new ledger closes.

    -
  • + +
  • -
    Optional id?: string | number
    +
    Optional id?: string | number

    The ID provided in the WebSocket request is included again at this level.

    -
  • + +
  • -
    source_account: string
    +
    source_account: string

    Unique address that would send a transaction.

    -
  • + +
  • -
    Optional status?: true
    +
    Optional status?: true

    The value true indicates this reply is in response to a path_find status command.

    -
  • +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • api_version
  • +
  • forwarded
  • +
  • id
  • +
  • result
  • +
  • status
  • +
  • type
  • +
  • warning
  • +
  • warnings
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/PathFindStatusRequest.html b/docs/interfaces/PathFindStatusRequest.html index f5653757c9..70cea66792 100644 --- a/docs/interfaces/PathFindStatusRequest.html +++ b/docs/interfaces/PathFindStatusRequest.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -PathFindStatusRequest | xrpl
    +PathFindStatusRequest | xrpl
    -
    +
    • xrpl
    • @@ -23,15 +23,16 @@

      Interface PathFindStatusRequest

    Get the information of the currently-open pathfinding request.

    -
    +
    +

    Hierarchy

      -
    • BasePathFindRequest +
    • BasePathFindRequest
      • PathFindStatusRequest
    +
  • Defined in packages/xrpl/src/models/methods/pathFind.ts:41
  • @@ -39,47 +40,50 @@

    Properties

    -
    - -
    api_version?: number
    +
    + +
    api_version?: number

    The API version to use. If omitted, use version 1.

    -
    +
    -
    - -
    command: "path_find"
    +
    + +
    command: "path_find"
    -
    - -
    id?: string | number
    +
  • Defined in packages/xrpl/src/models/methods/pathFind.ts:6
  • +
    + +
    id?: string | number

    A unique value to identify this request. The response to this request uses the same id field. This way, even if responses arrive out of order, you know which request prompted which response.

    -
    -
    - -
    subcommand: "status"
    +
    + +
    subcommand: "status"
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • api_version
  • +
  • command
  • +
  • id
  • +
  • subcommand
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/PathFindStream.html b/docs/interfaces/PathFindStream.html index 0c00712563..0ecb574169 100644 --- a/docs/interfaces/PathFindStream.html +++ b/docs/interfaces/PathFindStream.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -PathFindStream | xrpl
    +PathFindStream | xrpl
    -
    +
    • xrpl
    • @@ -25,15 +25,16 @@

      Interface PathFindStream

    The path_find method searches for a path along which a transaction can possibly be made, and periodically sends updates when the path changes over time.

    -
    +
    +

    Hierarchy

      -
    • BaseStream +
    • BaseStream
      • PathFindStream
    +
  • Defined in packages/xrpl/src/models/methods/subscribe.ts:394
  • @@ -41,81 +42,96 @@

    Properties

    -
    - -
    alternatives: [] | {
        paths_computed: Path[];
        source_amount: Amount;
    }
    +
    + +
    alternatives: [] | {
        paths_computed: Path[];
        source_amount: Amount;
    }

    Array of objects with suggested paths to take. If empty, then no paths were found connecting the source and destination accounts.

    -
    +
    +

    Type declaration

    +
      +
    • +
      paths_computed: Path[]
    • +
    • +
      source_amount: Amount
    +
    -
    - -
    destination_account: string
    +
  • Defined in packages/xrpl/src/models/methods/subscribe.ts:418
  • +
    + +
    destination_account: string

    Unique address of the account that would receive a transaction.

    -
    -
    - -
    destination_amount: Amount
    +
  • Defined in packages/xrpl/src/models/methods/subscribe.ts:399
  • +
    + +
    destination_amount: Amount

    Currency Amount that the destination would receive in a transaction.

    -
    -
    - -
    full_reply: boolean
    +
  • Defined in packages/xrpl/src/models/methods/subscribe.ts:401
  • +
    + +
    full_reply: boolean

    If false, this is the result of an incomplete search. A later reply may have a better path. If true, then this is the best path found. (It is still theoretically possible that a better path could exist, but rippled won't find it.) Until you close the pathfinding request, rippled continues to send updates each time a new ledger closes.

    -
    -
    - -
    id: string | number
    +
  • Defined in packages/xrpl/src/models/methods/subscribe.ts:409
  • +
    + +
    id: string | number

    The ID provided in the WebSocket request is included again at this level.

    -
    -
    - -
    send_max?: Amount
    +
  • Defined in packages/xrpl/src/models/methods/subscribe.ts:411
  • +
    + +
    send_max?: Amount

    Currency Amount that would be spent in the transaction.

    -
    -
    - -
    source_account: string
    +
  • Defined in packages/xrpl/src/models/methods/subscribe.ts:413
  • +
    + +
    source_account: string

    Unique address that would send a transaction.

    -
    -
    - -
    type: "path_find"
    +
    + +
    type: "path_find"
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • alternatives
  • +
  • destination_account
  • +
  • destination_amount
  • +
  • full_reply
  • +
  • id
  • +
  • send_max
  • +
  • source_account
  • +
  • type
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/PathStep.html b/docs/interfaces/PathStep.html new file mode 100644 index 0000000000..7111ca6755 --- /dev/null +++ b/docs/interfaces/PathStep.html @@ -0,0 +1,386 @@ +PathStep | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface PathStep

    +
    +

    Hierarchy

    +
      +
    • PathStep
    +
    +
    +
    + +
    +
    +

    Properties

    +
    +
    +

    Properties

    +
    + +
    account?: string
    +
    + +
    currency?: string
    +
    + +
    issuer?: string
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/Payment.html b/docs/interfaces/Payment.html index 3ed8c8b1b2..7fc56fa113 100644 --- a/docs/interfaces/Payment.html +++ b/docs/interfaces/Payment.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -Payment | xrpl
    +Payment | xrpl
    -

    Properties

    -
    - -
    Account: string
    -

    The unique address of the account that initiated the transaction.

    -
    +
    + +
    AccountTxnID?: string

    Hash value identifying another transaction. If provided, this transaction is only valid if the sending account's previously-sent transaction matches the provided hash.

    -
    +
    -
    - -
    Amount: Amount
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:249
  • +
    + +
    Amount: Amount

    The amount of currency to deliver. For non-XRP amounts, the nested field names MUST be lower-case. If the tfPartialPayment flag is set, deliver up to this amount instead.

    -
    -
    - -
    DeliverMin?: Amount
    +
  • Defined in packages/xrpl/src/models/transactions/payment.ts:119
  • +
    + +
    DeliverMin?: Amount

    Minimum amount of destination currency this transaction should deliver. Only valid if this is a partial payment. For non-XRP amounts, the nested field names are lower-case.

    -
    -
    - -
    Destination: string
    +
  • Defined in packages/xrpl/src/models/transactions/payment.ts:151
  • +
    + +
    Destination: string

    The unique address of the account receiving the payment.

    -
    -
    - -
    DestinationTag?: number
    +
  • Defined in packages/xrpl/src/models/transactions/payment.ts:121
  • +
    + +
    DestinationTag?: number

    Arbitrary tag that identifies the reason for the payment to the destination, or a hosted recipient to pay.

    -
    -
    - -
    Fee?: string
    +
  • Defined in packages/xrpl/src/models/transactions/payment.ts:126
  • +
    + +
    Fee?: string

    Integer amount of XRP, in drops, to be destroyed as a cost for distributing this transaction to the network. Some transaction types have different minimum requirements.

    -
    -
    - -
    Flags?: number | PaymentFlagsInterface
    +
    + +
    Flags?: number | PaymentFlagsInterface
    +

    Set of bit-flags for this transaction.

    +
    +
    -
    - -
    InvoiceID?: string
    +
  • Defined in packages/xrpl/src/models/transactions/payment.ts:152
  • +
    + +
    InvoiceID?: string

    Arbitrary 256-bit hash representing a specific reason or identifier for this payment.

    -
    -
    - -
    LastLedgerSequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/payment.ts:131
  • +
    + +
    LastLedgerSequence?: number

    Highest ledger index this transaction can appear in. Specifying this field places a strict upper limit on how long the transaction can wait to be validated or rejected.

    -
    -
    - -
    Memos?: Memo[]
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:257
  • +
    + +
    Memos?: Memo[]

    Additional arbitrary information used to identify this transaction.

    -
    -
    - -
    Paths?: Path[]
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:261
  • +
    + +
    NetworkID?: number
    +

    The network id of the transaction.

    +
    +
    +
    + +
    Paths?: Path[]

    Array of payment paths to be used for this transaction. Must be omitted for XRP-to-XRP transactions.

    -
    -
    - -
    SendMax?: Amount
    +
  • Defined in packages/xrpl/src/models/transactions/payment.ts:136
  • +
    + +
    SendMax?: Amount

    Highest amount of source currency this transaction is allowed to cost, including transfer fees, exchange rates, and slippage . Does not include the XRP destroyed as a cost for submitting the transaction. For non-XRP amounts, the nested field names MUST be lower-case. Must be supplied for cross-currency/cross-issue payments. Must be omitted for XRP-to-XRP Payments.

    -
    -
    - -
    Sequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/payment.ts:145
  • +
    + +
    Sequence?: number

    The sequence number of the account sending the transaction. A transaction is only valid if the Sequence number is exactly 1 greater than the previous transaction from the same account. The special case 0 means the transaction is using a Ticket instead.

    -
    -
    - -
    Signers?: Signer[]
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:243
  • +
    + +
    Signers?: Signer[]

    Array of objects that represent a multi-signature which authorizes this transaction.

    -
    -
    - -
    SigningPubKey?: string
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:266
  • +
    + +
    SigningPubKey?: string

    Hex representation of the public key that corresponds to the private key used to sign this transaction. If an empty string, indicates a multi-signature is present in the Signers field instead.

    -
    -
    - -
    SourceTag?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:279
  • +
    + +
    SourceTag?: number

    Arbitrary integer used to identify the reason for this payment, or a sender on whose behalf this transaction is made. Conventionally, a refund should specify the initial payment's SourceTag as the refund payment's DestinationTag.

    -
    -
    - -
    TicketSequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:273
  • +
    + +
    TicketSequence?: number

    The sequence number of the ticket to use in place of a Sequence number. If this is provided, Sequence must be 0. Cannot be used with AccountTxnID.

    -
    -
    - -
    TransactionType: "Payment"
    +
    + +
    TransactionType: "Payment"
    +

    The type of transaction. Valid types include: Payment, OfferCreate, +TrustSet, and many others.

    +
    +
    -
    - -
    TxnSignature?: string
    +
  • Defined in packages/xrpl/src/models/transactions/payment.ts:113
  • +
    + +
    TxnSignature?: string

    The signature that verifies this transaction as originating from the account it says it is from.

    -
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • Account
  • +
  • AccountTxnID
  • +
  • Amount
  • +
  • DeliverMin
  • +
  • Destination
  • +
  • DestinationTag
  • +
  • Fee
  • +
  • Flags
  • +
  • InvoiceID
  • +
  • LastLedgerSequence
  • +
  • Memos
  • +
  • NetworkID
  • +
  • Paths
  • +
  • SendMax
  • +
  • Sequence
  • +
  • Signers
  • +
  • SigningPubKey
  • +
  • SourceTag
  • +
  • TicketSequence
  • +
  • TransactionType
  • +
  • TxnSignature
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/PaymentChannelClaim.html b/docs/interfaces/PaymentChannelClaim.html index 497f3d61ed..077020201e 100644 --- a/docs/interfaces/PaymentChannelClaim.html +++ b/docs/interfaces/PaymentChannelClaim.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -PaymentChannelClaim | xrpl
    +PaymentChannelClaim | xrpl
    -

    Properties

    -
    - -
    Account: string
    -

    The unique address of the account that initiated the transaction.

    -
    +
    + +
    AccountTxnID?: string

    Hash value identifying another transaction. If provided, this transaction is only valid if the sending account's previously-sent transaction matches the provided hash.

    -
    +
    -
    - -
    Amount?: string
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:249
  • +
    + +
    Amount?: string

    The amount of XRP, in drops, authorized by the Signature. This must match the amount in the signed message. This is the cumulative amount of XRP that can be dispensed by the channel, including XRP previously redeemed.

    -
    -
    - -
    Balance?: string
    +
  • Defined in packages/xrpl/src/models/transactions/paymentChannelClaim.ts:116
  • +
    + +
    Balance?: string

    Total amount of XRP, in drops, delivered by this channel after processing this claim. Required to deliver XRP. Must be more than the total amount delivered by the channel so far, but not greater than the Amount of the signed claim. Must be provided except when closing the channel.

    -
    -
    - -
    Channel: string
    +
  • Defined in packages/xrpl/src/models/transactions/paymentChannelClaim.ts:110
  • +
    + +
    Channel: string

    The unique ID of the channel as a 64-character hexadecimal string.

    -
    -
    - -
    Fee?: string
    +
  • Defined in packages/xrpl/src/models/transactions/paymentChannelClaim.ts:103
  • +
    + +
    Fee?: string

    Integer amount of XRP, in drops, to be destroyed as a cost for distributing this transaction to the network. Some transaction types have different minimum requirements.

    -
    -
    - -
    +
    + + +

    Set of bit-flags for this transaction.

    +
    +
    -
    - -
    LastLedgerSequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/paymentChannelClaim.ts:101
  • +
    + +
    LastLedgerSequence?: number

    Highest ledger index this transaction can appear in. Specifying this field places a strict upper limit on how long the transaction can wait to be validated or rejected.

    -
    -
    - -
    Memos?: Memo[]
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:257
  • +
    + +
    Memos?: Memo[]

    Additional arbitrary information used to identify this transaction.

    -
    -
    - -
    PublicKey?: string
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:261
  • +
    + +
    NetworkID?: number
    +

    The network id of the transaction.

    +
    +
    +
    + +
    PublicKey?: string

    The public key used for the signature, as hexadecimal. This must match the PublicKey stored in the ledger for the channel. Required unless the sender of the transaction is the source address of the channel and the Signature field is omitted.

    -
    -
    - -
    Sequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/paymentChannelClaim.ts:129
  • +
    + +
    Sequence?: number

    The sequence number of the account sending the transaction. A transaction is only valid if the Sequence number is exactly 1 greater than the previous transaction from the same account. The special case 0 means the transaction is using a Ticket instead.

    -
    -
    - -
    Signature?: string
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:243
  • +
    + +
    Signature?: string

    The signature of this claim, as hexadecimal. The signed message contains the channel ID and the amount of the claim. Required unless the sender of the transaction is the source address of the channel.

    -
    -
    - -
    Signers?: Signer[]
    +
  • Defined in packages/xrpl/src/models/transactions/paymentChannelClaim.ts:122
  • +
    + +
    Signers?: Signer[]

    Array of objects that represent a multi-signature which authorizes this transaction.

    -
    -
    - -
    SigningPubKey?: string
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:266
  • +
    + +
    SigningPubKey?: string

    Hex representation of the public key that corresponds to the private key used to sign this transaction. If an empty string, indicates a multi-signature is present in the Signers field instead.

    -
    -
    - -
    SourceTag?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:279
  • +
    + +
    SourceTag?: number

    Arbitrary integer used to identify the reason for this payment, or a sender on whose behalf this transaction is made. Conventionally, a refund should specify the initial payment's SourceTag as the refund payment's DestinationTag.

    -
    -
    - -
    TicketSequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:273
  • +
    + +
    TicketSequence?: number

    The sequence number of the ticket to use in place of a Sequence number. If this is provided, Sequence must be 0. Cannot be used with AccountTxnID.

    -
    -
    - -
    TransactionType: "PaymentChannelClaim"
    +
    + +
    TransactionType: "PaymentChannelClaim"
    +

    The type of transaction. Valid types include: Payment, OfferCreate, +TrustSet, and many others.

    +
    +
    -
    - -
    TxnSignature?: string
    +
  • Defined in packages/xrpl/src/models/transactions/paymentChannelClaim.ts:100
  • +
    + +
    TxnSignature?: string

    The signature that verifies this transaction as originating from the account it says it is from.

    -
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • Account
  • +
  • AccountTxnID
  • +
  • Amount
  • +
  • Balance
  • +
  • Channel
  • +
  • Fee
  • +
  • Flags
  • +
  • LastLedgerSequence
  • +
  • Memos
  • +
  • NetworkID
  • +
  • PublicKey
  • +
  • Sequence
  • +
  • Signature
  • +
  • Signers
  • +
  • SigningPubKey
  • +
  • SourceTag
  • +
  • TicketSequence
  • +
  • TransactionType
  • +
  • TxnSignature
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/PaymentChannelClaimFlagsInterface.html b/docs/interfaces/PaymentChannelClaimFlagsInterface.html index 1415eec91e..4263b85003 100644 --- a/docs/interfaces/PaymentChannelClaimFlagsInterface.html +++ b/docs/interfaces/PaymentChannelClaimFlagsInterface.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -PaymentChannelClaimFlagsInterface | xrpl
    +PaymentChannelClaimFlagsInterface | xrpl
    -
    +

    Interface PaymentChannelClaimFlagsInterface

    -

    Map of flags to boolean values representing PaymentChannelClaim +

    Map of flags to boolean values representing PaymentChannelClaim transaction flags.

    - -

    Example

    const paymentChannelClaim: PaymentChannelClaim = {
    Account: 'rMpxZpuy5RBSP47oK2hDWUtk3B5BNQHfGj,
    TransactionType: 'PaymentChannelClaim',
    Channel: hashes.hashPaymentChannel(
    'rMpxZpuy5RBSP47oK2hDWUtk3B5BNQHfGj',
    'rQGYqiyH5Ue9J96p4E6Qt6AvqxK4sDhnS5',
    21970712,
    ),
    Amount: '100',
    Flags: {
    tfClose: true
    }
    }

    // Autofill the tx to see how flags actually look compared to the interface usage.
    const autofilledTx = await client.autofill(paymentChannelClaim)
    console.log(autofilledTx)
    // {
    // Account: 'rMpxZpuy5RBSP47oK2hDWUtk3B5BNQHfGj',
    // TransactionType: 'PaymentChannelClaim',
    // Channel: 'FC14BF9245D731DC1749EE0F070765E4EB4E993F8ECEE3D00F7E6E26D6EF98CF',
    // Amount: '100',
    // Flags: 131072,
    // Sequence: 21970713,
    // Fee: '12',
    // LastLedgerSequence: 21970658
    // } -
    +
    +
    +

    Example

    const paymentChannelClaim: PaymentChannelClaim = {
    Account: 'rMpxZpuy5RBSP47oK2hDWUtk3B5BNQHfGj,
    TransactionType: 'PaymentChannelClaim',
    Channel: hashes.hashPaymentChannel(
    'rMpxZpuy5RBSP47oK2hDWUtk3B5BNQHfGj',
    'rQGYqiyH5Ue9J96p4E6Qt6AvqxK4sDhnS5',
    21970712,
    ),
    Amount: '100',
    Flags: {
    tfClose: true
    }
    }

    // Autofill the tx to see how flags actually look compared to the interface usage.
    const autofilledTx = await client.autofill(paymentChannelClaim)
    console.log(autofilledTx)
    // {
    // Account: 'rMpxZpuy5RBSP47oK2hDWUtk3B5BNQHfGj',
    // TransactionType: 'PaymentChannelClaim',
    // Channel: 'FC14BF9245D731DC1749EE0F070765E4EB4E993F8ECEE3D00F7E6E26D6EF98CF',
    // Amount: '100',
    // Flags: 131072,
    // Sequence: 21970713,
    // Fee: '12',
    // LastLedgerSequence: 21970658
    // } +

    Hierarchy

      -
    • GlobalFlags +
    • GlobalFlags
      • PaymentChannelClaimFlagsInterface
    +
  • Defined in packages/xrpl/src/models/transactions/paymentChannelClaim.ts:70
  • @@ -43,14 +44,14 @@

    Properties

    -
    - -
    tfClose?: boolean
    +
    + +
    tfClose?: boolean

    Request to close the channel. Only the channel source and destination addresses can use this flag. This flag closes the channel immediately if it has no more XRP allocated to it after processing the current claim, or if @@ -62,22 +63,25 @@

    +
    -
    - -
    tfRenew?: boolean
    +
  • Defined in packages/xrpl/src/models/transactions/paymentChannelClaim.ts:90
  • +
    + +
    tfRenew?: boolean

    Clear the channel's Expiration time. (Expiration is different from the channel's immutable CancelAfter time.) Only the source address of the payment channel can use this flag.

    -
    +
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • tfClose
  • +
  • tfRenew
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/PaymentChannelCreate.html b/docs/interfaces/PaymentChannelCreate.html index fb68e7f39d..9c2c2176d8 100644 --- a/docs/interfaces/PaymentChannelCreate.html +++ b/docs/interfaces/PaymentChannelCreate.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -PaymentChannelCreate | xrpl
    +PaymentChannelCreate | xrpl
    -
    +
    • xrpl
    • @@ -24,15 +24,16 @@

      Interface PaymentChannelCreate

    Create a unidirectional channel and fund it with XRP. The address sending this transaction becomes the "source address" of the payment channel.

    -
    +
    +

    Hierarchy

    +
  • Defined in packages/xrpl/src/models/transactions/paymentChannelCreate.ts:19
  • @@ -40,205 +41,238 @@

    Properties

    -
    - -
    Account: string
    -

    The unique address of the account that initiated the transaction.

    -
    +
    + +
    AccountTxnID?: string

    Hash value identifying another transaction. If provided, this transaction is only valid if the sending account's previously-sent transaction matches the provided hash.

    -
    +
    -
    - -
    Amount: string
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:249
  • +
    + +
    Amount: string

    Amount of XRP, in drops, to deduct from the sender's balance and set aside in this channel. While the channel is open, the XRP can only go to the Destination address. When the channel closes, any unclaimed XRP is returned to the source address's balance.

    -
    -
    - -
    CancelAfter?: number
    +
  • Defined in packages/xrpl/src/models/transactions/paymentChannelCreate.ts:27
  • +
    + +
    CancelAfter?: number

    The time, in seconds since the Ripple Epoch, when this channel expires. Any transaction that would modify the channel after this time closes the channel without otherwise affecting it. This value is immutable; the channel can be closed earlier than this time but cannot remain open after this time.

    -
    -
    - -
    Destination: string
    +
  • Defined in packages/xrpl/src/models/transactions/paymentChannelCreate.ts:51
  • +
    + +
    Destination: string

    Address to receive XRP claims against this channel. This is also known as the "destination address" for the channel.

    -
    -
    - -
    DestinationTag?: number
    +
  • Defined in packages/xrpl/src/models/transactions/paymentChannelCreate.ts:32
  • +
    + +
    DestinationTag?: number

    Arbitrary tag to further specify the destination for this payment channel, such as a hosted recipient at the destination address.

    -
    -
    - -
    Fee?: string
    +
  • Defined in packages/xrpl/src/models/transactions/paymentChannelCreate.ts:56
  • +
    + +
    Fee?: string

    Integer amount of XRP, in drops, to be destroyed as a cost for distributing this transaction to the network. Some transaction types have different minimum requirements.

    -
    -
    - -
    Flags?: number | GlobalFlags
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:236
  • +
    + +
    Flags?: number | GlobalFlags

    Set of bit-flags for this transaction.

    -
    -
    - -
    LastLedgerSequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:251
  • +
    + +
    LastLedgerSequence?: number

    Highest ledger index this transaction can appear in. Specifying this field places a strict upper limit on how long the transaction can wait to be validated or rejected.

    -
    -
    - -
    Memos?: Memo[]
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:257
  • +
    + +
    Memos?: Memo[]

    Additional arbitrary information used to identify this transaction.

    -
    -
    - -
    PublicKey: string
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:261
  • +
    + +
    NetworkID?: number
    +

    The network id of the transaction.

    +
    +
    +
    + +
    PublicKey: string

    The public key of the key pair the source will use to sign claims against this channel in hexadecimal. This can be any secp256k1 or ed25519 public key.

    -
    -
    - -
    Sequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/paymentChannelCreate.ts:43
  • +
    + +
    Sequence?: number

    The sequence number of the account sending the transaction. A transaction is only valid if the Sequence number is exactly 1 greater than the previous transaction from the same account. The special case 0 means the transaction is using a Ticket instead.

    -
    -
    - -
    SettleDelay: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:243
  • +
    + +
    SettleDelay: number

    Amount of time the source address must wait before closing the channel if it has unclaimed XRP.

    -
    -
    - -
    Signers?: Signer[]
    +
  • Defined in packages/xrpl/src/models/transactions/paymentChannelCreate.ts:37
  • +
    + +
    Signers?: Signer[]

    Array of objects that represent a multi-signature which authorizes this transaction.

    -
    -
    - -
    SigningPubKey?: string
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:266
  • +
    + +
    SigningPubKey?: string

    Hex representation of the public key that corresponds to the private key used to sign this transaction. If an empty string, indicates a multi-signature is present in the Signers field instead.

    -
    -
    - -
    SourceTag?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:279
  • +
    + +
    SourceTag?: number

    Arbitrary integer used to identify the reason for this payment, or a sender on whose behalf this transaction is made. Conventionally, a refund should specify the initial payment's SourceTag as the refund payment's DestinationTag.

    -
    -
    - -
    TicketSequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:273
  • +
    + +
    TicketSequence?: number

    The sequence number of the ticket to use in place of a Sequence number. If this is provided, Sequence must be 0. Cannot be used with AccountTxnID.

    -
    -
    - -
    TransactionType: "PaymentChannelCreate"
    +
    + +
    TransactionType: "PaymentChannelCreate"
    +

    The type of transaction. Valid types include: Payment, OfferCreate, +TrustSet, and many others.

    +
    +
    -
    - -
    TxnSignature?: string
    +
  • Defined in packages/xrpl/src/models/transactions/paymentChannelCreate.ts:20
  • +
    + +
    TxnSignature?: string

    The signature that verifies this transaction as originating from the account it says it is from.

    -
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • Account
  • +
  • AccountTxnID
  • +
  • Amount
  • +
  • CancelAfter
  • +
  • Destination
  • +
  • DestinationTag
  • +
  • Fee
  • +
  • Flags
  • +
  • LastLedgerSequence
  • +
  • Memos
  • +
  • NetworkID
  • +
  • PublicKey
  • +
  • Sequence
  • +
  • SettleDelay
  • +
  • Signers
  • +
  • SigningPubKey
  • +
  • SourceTag
  • +
  • TicketSequence
  • +
  • TransactionType
  • +
  • TxnSignature
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/PaymentChannelFund.html b/docs/interfaces/PaymentChannelFund.html index c8157a9e68..b88dd2cc67 100644 --- a/docs/interfaces/PaymentChannelFund.html +++ b/docs/interfaces/PaymentChannelFund.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -PaymentChannelFund | xrpl
    +PaymentChannelFund | xrpl
    -
    +
    • xrpl
    • @@ -25,15 +25,16 @@

      Interface PaymentChannelFund

    Add additional XRP to an open payment channel, and optionally update the expiration time of the channel. Only the source address of the channel can use this transaction.

    -
    +
    +

    Hierarchy

    +
  • Defined in packages/xrpl/src/models/transactions/paymentChannelFund.ts:12
  • @@ -41,62 +42,67 @@

    Properties

    -
    - -
    Account: string
    -

    The unique address of the account that initiated the transaction.

    -
    +
    + +
    AccountTxnID?: string

    Hash value identifying another transaction. If provided, this transaction is only valid if the sending account's previously-sent transaction matches the provided hash.

    -
    +
    -
    - -
    Amount: string
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:249
  • +
    + +
    Amount: string

    Amount of XRP in drops to add to the channel. Must be a positive amount of XRP.

    -
    -
    - -
    Channel: string
    +
  • Defined in packages/xrpl/src/models/transactions/paymentChannelFund.ts:23
  • +
    + +
    Channel: string

    The unique ID of the channel to fund as a 64-character hexadecimal string.

    -
    -
    - -
    Expiration?: number
    +
  • Defined in packages/xrpl/src/models/transactions/paymentChannelFund.ts:18
  • +
    + +
    Expiration?: number

    New Expiration time to set for the channel in seconds since the Ripple Epoch. This must be later than either the current time plus the SettleDelay of the channel, or the existing Expiration of the channel. After the @@ -105,114 +111,139 @@

    -
    - -
    Fee?: string
    +
  • Defined in packages/xrpl/src/models/transactions/paymentChannelFund.ts:34
  • +
    + +
    Fee?: string

    Integer amount of XRP, in drops, to be destroyed as a cost for distributing this transaction to the network. Some transaction types have different minimum requirements.

    -
    -
    - -
    Flags?: number | GlobalFlags
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:236
  • +
    + +
    Flags?: number | GlobalFlags

    Set of bit-flags for this transaction.

    -
    -
    - -
    LastLedgerSequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:251
  • +
    + +
    LastLedgerSequence?: number

    Highest ledger index this transaction can appear in. Specifying this field places a strict upper limit on how long the transaction can wait to be validated or rejected.

    -
    -
    - -
    Memos?: Memo[]
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:257
  • +
    + +
    Memos?: Memo[]

    Additional arbitrary information used to identify this transaction.

    -
    -
    - -
    Sequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:261
  • +
    + +
    NetworkID?: number
    +

    The network id of the transaction.

    +
    +
    +
    + +
    Sequence?: number

    The sequence number of the account sending the transaction. A transaction is only valid if the Sequence number is exactly 1 greater than the previous transaction from the same account. The special case 0 means the transaction is using a Ticket instead.

    -
    -
    - -
    Signers?: Signer[]
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:243
  • +
    + +
    Signers?: Signer[]

    Array of objects that represent a multi-signature which authorizes this transaction.

    -
    -
    - -
    SigningPubKey?: string
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:266
  • +
    + +
    SigningPubKey?: string

    Hex representation of the public key that corresponds to the private key used to sign this transaction. If an empty string, indicates a multi-signature is present in the Signers field instead.

    -
    -
    - -
    SourceTag?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:279
  • +
    + +
    SourceTag?: number

    Arbitrary integer used to identify the reason for this payment, or a sender on whose behalf this transaction is made. Conventionally, a refund should specify the initial payment's SourceTag as the refund payment's DestinationTag.

    -
    -
    - -
    TicketSequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:273
  • +
    + +
    TicketSequence?: number

    The sequence number of the ticket to use in place of a Sequence number. If this is provided, Sequence must be 0. Cannot be used with AccountTxnID.

    -
    -
    - -
    TransactionType: "PaymentChannelFund"
    +
    + +
    TransactionType: "PaymentChannelFund"
    +

    The type of transaction. Valid types include: Payment, OfferCreate, +TrustSet, and many others.

    +
    +
    -
    - -
    TxnSignature?: string
    +
  • Defined in packages/xrpl/src/models/transactions/paymentChannelFund.ts:13
  • +
    + +
    TxnSignature?: string

    The signature that verifies this transaction as originating from the account it says it is from.

    -
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • Account
  • +
  • AccountTxnID
  • +
  • Amount
  • +
  • Channel
  • +
  • Expiration
  • +
  • Fee
  • +
  • Flags
  • +
  • LastLedgerSequence
  • +
  • Memos
  • +
  • NetworkID
  • +
  • Sequence
  • +
  • Signers
  • +
  • SigningPubKey
  • +
  • SourceTag
  • +
  • TicketSequence
  • +
  • TransactionType
  • +
  • TxnSignature
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/PaymentFlagsInterface.html b/docs/interfaces/PaymentFlagsInterface.html index 3b5b6cb651..db63bd0104 100644 --- a/docs/interfaces/PaymentFlagsInterface.html +++ b/docs/interfaces/PaymentFlagsInterface.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -PaymentFlagsInterface | xrpl
    +PaymentFlagsInterface | xrpl
    -
    +

    Interface PaymentFlagsInterface

    -

    Map of flags to boolean values representing Payment transaction +

    Map of flags to boolean values representing Payment transaction flags.

    - -

    Example

    const partialPayment: Payment = {
    TransactionType: 'Payment',
    Account: 'rM9WCfJU6udpFkvKThRaFHDMsp7L8rpgN',
    Amount: {
    currency: 'FOO',
    value: '4000',
    issuer: 'rPzwM2JfCSDjhbesdTCqFjWWdK7eFtTwZz',
    },
    Destination: 'rPzwM2JfCSDjhbesdTCqFjWWdK7eFtTwZz',
    Flags: {
    tfPartialPayment: true
    }
    }

    // Autofill the tx to see how flags actually look compared to the interface usage.
    const autofilledTx = await client.autofill(partialPayment)
    console.log(autofilledTx)
    // {
    // TransactionType: 'Payment',
    // Account: 'rM9WCfJU6udpFkvKThRaFHDMsp7L8rpgN',
    // Amount: {
    // currency: 'FOO',
    // value: '4000',
    // issuer: 'rPzwM2JfCSDjhbesdTCqFjWWdK7eFtTwZz'
    // },
    // Destination: 'rPzwM2JfCSDjhbesdTCqFjWWdK7eFtTwZz',
    // Flags: 131072,
    // Sequence: 21970996,
    // Fee: '12',
    // LastLedgerSequence: 21971016
    // } -
    +
    +
    +

    Example

    const partialPayment: Payment = {
    TransactionType: 'Payment',
    Account: 'rM9WCfJU6udpFkvKThRaFHDMsp7L8rpgN',
    Amount: {
    currency: 'FOO',
    value: '4000',
    issuer: 'rPzwM2JfCSDjhbesdTCqFjWWdK7eFtTwZz',
    },
    Destination: 'rPzwM2JfCSDjhbesdTCqFjWWdK7eFtTwZz',
    Flags: {
    tfPartialPayment: true
    }
    }

    // Autofill the tx to see how flags actually look compared to the interface usage.
    const autofilledTx = await client.autofill(partialPayment)
    console.log(autofilledTx)
    // {
    // TransactionType: 'Payment',
    // Account: 'rM9WCfJU6udpFkvKThRaFHDMsp7L8rpgN',
    // Amount: {
    // currency: 'FOO',
    // value: '4000',
    // issuer: 'rPzwM2JfCSDjhbesdTCqFjWWdK7eFtTwZz'
    // },
    // Destination: 'rPzwM2JfCSDjhbesdTCqFjWWdK7eFtTwZz',
    // Flags: 131072,
    // Sequence: 21970996,
    // Fee: '12',
    // LastLedgerSequence: 21971016
    // } +

    Hierarchy

      -
    • GlobalFlags +
    • GlobalFlags
      • PaymentFlagsInterface
    +
  • Defined in packages/xrpl/src/models/transactions/payment.ts:85
  • @@ -43,43 +44,47 @@

    Properties

    -
    - -
    tfLimitQuality?: boolean
    +
    + +
    tfLimitQuality?: boolean

    Only take paths where all the conversions have an input:output ratio that is equal or better than the ratio of Amount:SendMax. See Limit Quality for details.

    -
    +
    -
    - -
    tfNoDirectRipple?: boolean
    +
  • Defined in packages/xrpl/src/models/transactions/payment.ts:103
  • +
    + +
    tfNoDirectRipple?: boolean

    Do not use the default path; only use paths included in the Paths field. This is intended to force the transaction to take arbitrage opportunities. Most clients do not need this.

    -
    +
    -
    - -
    tfPartialPayment?: boolean
    +
  • Defined in packages/xrpl/src/models/transactions/payment.ts:91
  • +
    + +
    tfPartialPayment?: boolean

    If the specified Amount cannot be sent without spending more than SendMax, reduce the received amount instead of failing outright. See Partial. Payments for more details.

    -
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • tfLimitQuality
  • +
  • tfNoDirectRipple
  • +
  • tfPartialPayment
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/PeerStatusStream.html b/docs/interfaces/PeerStatusStream.html index f171c10032..d9febd6610 100644 --- a/docs/interfaces/PeerStatusStream.html +++ b/docs/interfaces/PeerStatusStream.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -PeerStatusStream | xrpl
    +PeerStatusStream | xrpl
    -
    +
    • xrpl
    • @@ -25,15 +25,16 @@

      Interface PeerStatusStream

    The admin-only peer_status stream reports a large amount of information on the activities of other rippled servers to which this server is connected, in particular their status in the consensus process.

    -
    +
    +

    Hierarchy

      -
    • BaseStream +
    • BaseStream
      • PeerStatusStream
    +
  • Defined in packages/xrpl/src/models/methods/subscribe.ts:306
  • @@ -41,69 +42,76 @@

    Properties

    -
    - -
    action: "CLOSING_LEDGER" | "ACCEPTED_LEDGER" | "SWITCHED_LEDGER" | "LOST_SYNC"
    +
    + +
    action: "CLOSING_LEDGER" | "ACCEPTED_LEDGER" | "SWITCHED_LEDGER" | "LOST_SYNC"

    The type of event that prompted this message. See Peer Status Events for possible values.

    -
    +
    -
    - -
    date: number
    +
  • Defined in packages/xrpl/src/models/methods/subscribe.ts:312
  • +
    + +
    date: number

    The time this event occurred, in seconds since the Ripple Epoch.

    -
    -
    - -
    ledger_hash?: string
    +
  • Defined in packages/xrpl/src/models/methods/subscribe.ts:314
  • +
    + +
    ledger_hash?: string

    The identifying Hash of a ledger version to which this message pertains.

    -
    -
    - -
    ledger_index?: number
    +
  • Defined in packages/xrpl/src/models/methods/subscribe.ts:316
  • +
    + +
    ledger_index?: number

    The Ledger Index of a ledger version to which this message pertains.

    -
    -
    - -
    ledger_index_max?: number
    +
  • Defined in packages/xrpl/src/models/methods/subscribe.ts:318
  • +
    + +
    ledger_index_max?: number

    The largest Ledger Index the peer has currently available.

    -
    -
    - -
    ledger_index_min?: number
    +
  • Defined in packages/xrpl/src/models/methods/subscribe.ts:320
  • +
    + +
    ledger_index_min?: number

    The smallest Ledger Index the peer has currently available.

    -
    -
    - -
    type: "peerStatusChange"
    +
    + +
    type: "peerStatusChange"
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • action
  • +
  • date
  • +
  • ledger_hash
  • +
  • ledger_index
  • +
  • ledger_index_max
  • +
  • ledger_index_min
  • +
  • type
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/PingRequest.html b/docs/interfaces/PingRequest.html index 3378fe0c64..cbf615d71e 100644 --- a/docs/interfaces/PingRequest.html +++ b/docs/interfaces/PingRequest.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -PingRequest | xrpl
    +PingRequest | xrpl
    -
    +
    • xrpl
    • @@ -23,16 +23,17 @@

      Interface PingRequest

    The ping command returns an acknowledgement, so that clients can test the -connection status and latency. Expects a response in the form of a PingResponse.

    -
    +connection status and latency. Expects a response in the form of a PingResponse.

    +
    +

    Hierarchy

    +
  • Defined in packages/xrpl/src/models/methods/ping.ts:10
  • @@ -40,40 +41,46 @@

    Properties

    -
    - -
    api_version?: number
    +
    + +
    api_version?: number

    The API version to use. If omitted, use version 1.

    -
    +
    -
    - -
    command: "ping"
    +
    + +
    command: "ping"
    +

    The name of the API method.

    +
    +
    -
    - -
    id?: string | number
    +
  • Defined in packages/xrpl/src/models/methods/ping.ts:11
  • +
    + +
    id?: string | number

    A unique value to identify this request. The response to this request uses the same id field. This way, even if responses arrive out of order, you know which request prompted which response.

    -
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • api_version
  • +
  • command
  • +
  • id
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/PingResponse.html b/docs/interfaces/PingResponse.html index 610d704633..fafc2bb068 100644 --- a/docs/interfaces/PingResponse.html +++ b/docs/interfaces/PingResponse.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -PingResponse | xrpl
    +PingResponse | xrpl
    -
    +

    Interface PingResponse

    -

    Response expected from a PingRequest.

    -
    +

    Response expected from a PingRequest.

    +
    +

    Hierarchy

    +
  • Defined in packages/xrpl/src/models/methods/ping.ts:19
  • @@ -39,76 +40,77 @@

    Properties

    -
    - -
    api_version?: number
    +
    + +
    result: {
        role?: string;
        unlimited?: boolean;
    }

    Type declaration

    • -
      Optional role?: string
    • +
      Optional role?: string
    • -
      Optional unlimited?: boolean
    -
    - -
    status?: string
    +
    + +
    status?: string
    -
    - -
    type: string
    +
    + +
    type: string
    -
    - -
    warning?: "load"
    +
    + +
    warning?: "load"
    -
    - -
    warnings?: Warning[]
    +
    + +
    warnings?: ResponseWarning[]
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • api_version
  • +
  • forwarded
  • +
  • id
  • +
  • result
  • +
  • status
  • +
  • type
  • +
  • warning
  • +
  • warnings
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/RandomRequest.html b/docs/interfaces/RandomRequest.html index 97e03969a3..e62c25c373 100644 --- a/docs/interfaces/RandomRequest.html +++ b/docs/interfaces/RandomRequest.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -RandomRequest | xrpl
    +RandomRequest | xrpl
    -
    +
    • xrpl
    • @@ -24,16 +24,17 @@

      Interface RandomRequest

    The random command provides a random number to be used as a source of entropy for random number generation by clients. Expects a response in the -form of a RandomResponse.

    -
    +form of a RandomResponse.

    +
    +

    Hierarchy

    +
  • Defined in packages/xrpl/src/models/methods/random.ts:10
  • @@ -41,40 +42,46 @@

    Properties

    -
    - -
    api_version?: number
    +
    + +
    api_version?: number

    The API version to use. If omitted, use version 1.

    -
    +
    -
    - -
    command: "random"
    +
    + +
    command: "random"
    +

    The name of the API method.

    +
    +
    -
    - -
    id?: string | number
    +
  • Defined in packages/xrpl/src/models/methods/random.ts:11
  • +
    + +
    id?: string | number

    A unique value to identify this request. The response to this request uses the same id field. This way, even if responses arrive out of order, you know which request prompted which response.

    -
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • api_version
  • +
  • command
  • +
  • id
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/RandomResponse.html b/docs/interfaces/RandomResponse.html index d20870b236..4fade95d98 100644 --- a/docs/interfaces/RandomResponse.html +++ b/docs/interfaces/RandomResponse.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -RandomResponse | xrpl
    +RandomResponse | xrpl
    -
    +

    Interface RandomResponse

    -

    Response expected from a RandomRequest.

    -
    +

    Response expected from a RandomRequest.

    +
    +

    Hierarchy

    +
  • Defined in packages/xrpl/src/models/methods/random.ts:19
  • @@ -39,74 +40,75 @@

    Properties

    -
    - -
    api_version?: number
    +
    + +
    result: {
        random: string;
    }

    Type declaration

    • -
      random: string
    -
    - -
    status?: string
    +
    + +
    status?: string
    -
    - -
    type: string
    +
    + +
    type: string
    -
    - -
    warning?: "load"
    +
    + +
    warning?: "load"
    -
    - -
    warnings?: Warning[]
    +
    + +
    warnings?: ResponseWarning[]
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • api_version
  • +
  • forwarded
  • +
  • id
  • +
  • result
  • +
  • status
  • +
  • type
  • +
  • warning
  • +
  • warnings
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/ResponseOnlyTxInfo.html b/docs/interfaces/ResponseOnlyTxInfo.html new file mode 100644 index 0000000000..4b19a42a37 --- /dev/null +++ b/docs/interfaces/ResponseOnlyTxInfo.html @@ -0,0 +1,411 @@ +ResponseOnlyTxInfo | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface ResponseOnlyTxInfo

    +
    +

    This information is added to Transactions in request responses, but is not part +of the canonical Transaction information on ledger. These fields are denoted with +lowercase letters to indicate this in the rippled responses.

    +
    +
    +
    +

    Hierarchy

    +
      +
    • ResponseOnlyTxInfo
    +
    +
    +
    + +
    +
    +

    Properties

    +
    +
    +

    Properties

    +
    + +
    date?: number
    +

    The date/time when this transaction was included in a validated ledger.

    +
    +
    +
    + +
    hash?: string
    +

    An identifying hash value unique to this transaction, as a hex string.

    +
    +
    +
    + +
    inLedger?: number
    +
    +

    Deprecated

    Alias for ledger_index.

    +
    +
    + +
    ledger_index?: number
    +

    The sequence number of the ledger that included this transaction.

    +
    +
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/ResponseWarning.html b/docs/interfaces/ResponseWarning.html new file mode 100644 index 0000000000..ae70726ad9 --- /dev/null +++ b/docs/interfaces/ResponseWarning.html @@ -0,0 +1,391 @@ +ResponseWarning | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface ResponseWarning

    +
    +

    Hierarchy

    +
      +
    • ResponseWarning
    +
    +
    +
    + +
    +
    +

    Properties

    +
    +
    +

    Properties

    +
    + +
    details?: {
        [key: string]: string;
    }
    +
    +

    Type declaration

    +
      +
    • +
      [key: string]: string
    +
    + +
    id: number
    +
    + +
    message: string
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/RipplePathFindPathOption.html b/docs/interfaces/RipplePathFindPathOption.html new file mode 100644 index 0000000000..07e1ecb5ad --- /dev/null +++ b/docs/interfaces/RipplePathFindPathOption.html @@ -0,0 +1,386 @@ +RipplePathFindPathOption | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface RipplePathFindPathOption

    +
    +

    Hierarchy

    +
      +
    • RipplePathFindPathOption
    +
    +
    +
    + +
    +
    +

    Properties

    +
    +
    +

    Properties

    +
    + +
    paths_computed: Path[]
    +

    Array of arrays of objects defining payment paths.

    +
    +
    +
    + +
    source_amount: Amount
    +

    Currency amount that the source would have to send along this path for the +destination to receive the desired amount.

    +
    +
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/RipplePathFindRequest.html b/docs/interfaces/RipplePathFindRequest.html index 607a2dfa4f..6e3677d28b 100644 --- a/docs/interfaces/RipplePathFindRequest.html +++ b/docs/interfaces/RipplePathFindRequest.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -RipplePathFindRequest | xrpl
    +RipplePathFindRequest | xrpl
    -
    +
    • xrpl
    • @@ -24,16 +24,18 @@

      Interface RipplePathFindRequest

    The ripple_path_find method is a simplified version of the path_find method that provides a single response with a payment path you can use right away. -Expects a response in the form of a RipplePathFindResponse.

    -
    +Expects a response in the form of a RipplePathFindResponse.

    +
    +

    Hierarchy

      -
    • BaseRequest +
    • BaseRequest
    • +
    • LookupByLedgerRequest
      • RipplePathFindRequest
    +
  • Defined in packages/xrpl/src/models/methods/ripplePathFind.ts:17
  • @@ -41,101 +43,115 @@

    Properties

    -
    - -
    api_version?: number
    +
    + +
    api_version?: number

    The API version to use. If omitted, use version 1.

    -
    +
    -
    - -
    command: "ripple_path_find"
    +
    + +
    command: "ripple_path_find"
    +

    The name of the API method.

    +
    +
    -
    - -
    destination_account: string
    +
  • Defined in packages/xrpl/src/models/methods/ripplePathFind.ts:20
  • +
    + +
    destination_account: string

    Unique address of the account that would receive funds in a transaction.

    -
    -
    - -
    destination_amount: Amount
    +
  • Defined in packages/xrpl/src/models/methods/ripplePathFind.ts:24
  • +
    + +
    destination_amount: Amount

    Currency Amount that the destination account would receive in a transaction.

    -
    -
    - -
    id?: string | number
    +
  • Defined in packages/xrpl/src/models/methods/ripplePathFind.ts:29
  • +
    + +
    id?: string | number

    A unique value to identify this request. The response to this request uses the same id field. This way, even if responses arrive out of order, you know which request prompted which response.

    -
    -
    - -
    ledger_hash?: string
    +
  • Defined in packages/xrpl/src/models/methods/baseMethod.ts:12
  • +
    + +
    ledger_hash?: string

    A 20-byte hex string for the ledger version to use.

    -
    -
    - -
    ledger_index?: LedgerIndex
    -

    The ledger index of the ledger to use, or a shortcut string to choose a -ledger automatically.

    -
    +
    + +
    ledger_index?: LedgerIndex
    +

    The ledger index of the ledger to use, or a shortcut string.

    +
    +
    -
    - -
    send_max?: Amount
    +
  • Defined in packages/xrpl/src/models/methods/baseMethod.ts:23
  • +
    + +
    send_max?: Amount

    Currency Amount that would be spent in the transaction. Cannot be used with source_currencies.

    -
    -
    - -
    source_account: string
    +
  • Defined in packages/xrpl/src/models/methods/ripplePathFind.ts:34
  • +
    + +
    source_account: string

    Unique address of the account that would send funds in a transaction.

    -
    -
    - -
    source_currencies?: SourceCurrencyAmount
    +
  • Defined in packages/xrpl/src/models/methods/ripplePathFind.ts:22
  • +
    + +
    source_currencies?: SourceCurrencyAmount[]

    Array of currencies that the source account might want to spend. Each entry in the array should be a JSON object with a mandatory currency field and optional issuer field, like how currency amounts are specified.

    -
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • api_version
  • +
  • command
  • +
  • destination_account
  • +
  • destination_amount
  • +
  • id
  • +
  • ledger_hash
  • +
  • ledger_index
  • +
  • send_max
  • +
  • source_account
  • +
  • source_currencies
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/RipplePathFindResponse.html b/docs/interfaces/RipplePathFindResponse.html index f5ad55b7f5..759cb92a6e 100644 --- a/docs/interfaces/RipplePathFindResponse.html +++ b/docs/interfaces/RipplePathFindResponse.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -RipplePathFindResponse | xrpl
    +RipplePathFindResponse | xrpl
    -
    +

    Interface RipplePathFindResponse

    -

    Response expected from a RipplePathFindRequest.

    -
    +

    Response expected from a RipplePathFindRequest.

    +
    +

    Hierarchy

    +
  • Defined in packages/xrpl/src/models/methods/ripplePathFind.ts:58
  • @@ -39,100 +40,104 @@

    Properties

    -
    - -
    api_version?: number
    +
    + +
    result: {
        alternatives: RipplePathFindPathOption[];
        destination_account: string;
        destination_amount: Amount;
        destination_currencies: string[];
        full_reply?: boolean;
        id?: string | number;
        ledger_current_index?: number;
        source_account: string;
        validated: boolean;
    }

    Type declaration

    • -
      alternatives: PathOption[]
      +
      alternatives: RipplePathFindPathOption[]

      Array of objects with possible paths to take, as described below. If empty, then there are no paths connecting the source and destination accounts.

      -
    • +
    +
  • -
    destination_account: string
    +
    destination_account: string

    Unique address of the account that would receive a payment transaction.

    -
  • +
    +
  • -
    destination_amount: Amount
  • +
    destination_amount: Amount
  • -
    destination_currencies: string[]
    +
    destination_currencies: string[]

    Array of strings representing the currencies that the destination accepts, as 3-letter codes like "USD" or as 40-character hex like "015841551A748AD2C1F76FF6ECB0CCCD00000000".

    -
  • +
    +
  • -
    Optional full_reply?: boolean
  • +
    Optional full_reply?: boolean
  • -
    Optional id?: string | number
  • +
    Optional id?: string | number
  • -
    Optional ledger_current_index?: number
  • +
    Optional ledger_current_index?: number
  • -
    source_account: string
  • +
    source_account: string
  • -
    validated: boolean
  • +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • api_version
  • +
  • forwarded
  • +
  • id
  • +
  • result
  • +
  • status
  • +
  • type
  • +
  • warning
  • +
  • warnings
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/ServerDefinitionsRequest.html b/docs/interfaces/ServerDefinitionsRequest.html new file mode 100644 index 0000000000..134f016097 --- /dev/null +++ b/docs/interfaces/ServerDefinitionsRequest.html @@ -0,0 +1,418 @@ +ServerDefinitionsRequest | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface ServerDefinitionsRequest

    +
    +

    The server_definitions method retrieves information about the definition +enums available in this rippled node. Expects a response in the form of a +ServerDefinitionsResponse.

    +
    +
    +
    +

    Hierarchy

    +
    +
    +
    +
    + +
    +
    +

    Properties

    +
    +
    +

    Properties

    +
    + +
    api_version?: number
    +

    The API version to use. If omitted, use version 1.

    +
    +
    +
    + +
    command: "server_definitions"
    +

    The name of the API method.

    +
    +
    +
    + +
    hash?: string
    +

    The hash of a server_definitions response.

    +
    +
    +
    + +
    id?: string | number
    +

    A unique value to identify this request. The response to this request uses +the same id field. This way, even if responses arrive out of order, you +know which request prompted which response.

    +
    +
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/ServerDefinitionsResponse.html b/docs/interfaces/ServerDefinitionsResponse.html new file mode 100644 index 0000000000..1fff77f4b1 --- /dev/null +++ b/docs/interfaces/ServerDefinitionsResponse.html @@ -0,0 +1,435 @@ +ServerDefinitionsResponse | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface ServerDefinitionsResponse

    +
    +

    Response expected from an ServerDefinitionsRequest.

    +
    +
    +
    +

    Hierarchy

    +
    +
    +
    +
    + +
    +
    +

    Properties

    +
    + +
    api_version?: number
    +
    + +
    forwarded?: boolean
    +
    + +
    id: string | number
    +
    + +
    result: Object
    +
    + +
    status?: string
    +
    + +
    type: string
    +
    + +
    warning?: "load"
    +
    + +
    warnings?: ResponseWarning[]
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/ServerInfoRequest.html b/docs/interfaces/ServerInfoRequest.html index b5deed6d8b..a4009452f0 100644 --- a/docs/interfaces/ServerInfoRequest.html +++ b/docs/interfaces/ServerInfoRequest.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -ServerInfoRequest | xrpl
    +ServerInfoRequest | xrpl
    -
    +
    • xrpl
    • @@ -24,16 +24,17 @@

      Interface ServerInfoRequest

    The server_info command asks the server for a human-readable version of various information about the rippled server being queried. Expects a -response in the form of a ServerInfoResponse.

    -
    +response in the form of a ServerInfoResponse.

    +
    +

    Hierarchy

    +
  • Defined in packages/xrpl/src/models/methods/serverInfo.ts:10
  • @@ -41,40 +42,46 @@

    Properties

    -
    - -
    api_version?: number
    +
    + +
    api_version?: number

    The API version to use. If omitted, use version 1.

    -
    +
    -
    - -
    command: "server_info"
    +
    + +
    command: "server_info"
    +

    The name of the API method.

    +
    +
    -
    - -
    id?: string | number
    +
  • Defined in packages/xrpl/src/models/methods/serverInfo.ts:11
  • +
    + +
    id?: string | number

    A unique value to identify this request. The response to this request uses the same id field. This way, even if responses arrive out of order, you know which request prompted which response.

    -
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • api_version
  • +
  • command
  • +
  • id
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/ServerInfoResponse.html b/docs/interfaces/ServerInfoResponse.html index f5c6fa6dd0..62e478209d 100644 --- a/docs/interfaces/ServerInfoResponse.html +++ b/docs/interfaces/ServerInfoResponse.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -ServerInfoResponse | xrpl
    +ServerInfoResponse | xrpl
    -
    +

    Interface ServerInfoResponse

    -

    Response expected from a ServerInfoRequest.

    -
    +

    Response expected from a ServerInfoRequest.

    +
    +

    Hierarchy

    +
  • Defined in packages/xrpl/src/models/methods/serverInfo.ts:65
  • @@ -39,133 +40,146 @@

    Properties

    -
    - -
    api_version?: number
    +
    + +
    result: {
        info: {
            amendment_blocked?: boolean;
            build_version: string;
            closed_ledger?: {
                age: number;
                base_fee_xrp: number;
                hash: string;
                reserve_base_xrp: number;
                reserve_inc_xrp: number;
                seq: number;
            };
            complete_ledgers: string;
            hostid: string;
            io_latency_ms: number;
            jq_trans_overflow: string;
            last_close: {
                converge_time_s: number;
                proposers: number;
            };
            load?: {
                job_types: JobType[];
                threads: number;
            };
            load_factor?: number;
            load_factor_cluster?: number;
            load_factor_fee_escalation?: number;
            load_factor_fee_queue?: number;
            load_factor_local?: number;
            load_factor_net?: number;
            load_factor_server?: number;
            network_id?: number;
            network_ledger?: "waiting";
            peer_disconnects?: string;
            peer_disconnects_resources?: string;
            peers: number;
            ports: ServerPort[];
            pubkey_node: string;
            pubkey_validator?: string;
            server_state: ServerState;
            server_state_duration_us: string;
            state_accounting: StateAccountingFinal;
            time: string;
            uptime: number;
            validated_ledger?: {
                age: number;
                base_fee_xrp: number;
                hash: string;
                reserve_base_xrp: number;
                reserve_inc_xrp: number;
                seq: number;
            };
            validation_quorum: number;
            validator_list?: {
                count: number;
                expiration: string;
                status: "active" | "expired" | "unknown";
            };
            validator_list_expires?: string;
        };
    }

    Type declaration

    • -
      info: {
          amendment_blocked?: boolean;
          build_version: string;
          closed_ledger?: {
              age: number;
              base_fee_xrp: number;
              hash: string;
              reserve_base_xrp: number;
              reserve_inc_xrp: number;
              seq: number;
          };
          complete_ledgers: string;
          hostid: string;
          io_latency_ms: number;
          jq_trans_overflow: string;
          last_close: {
              converge_time_s: number;
              proposers: number;
          };
          load?: {
              job_types: JobType[];
              threads: number;
          };
          load_factor?: number;
          load_factor_cluster?: number;
          load_factor_fee_escalation?: number;
          load_factor_fee_queue?: number;
          load_factor_local?: number;
          load_factor_net?: number;
          load_factor_server?: number;
          network_ledger?: "waiting";
          peer_disconnects?: string;
          peer_disconnects_resources?: string;
          peers: number;
          pubkey_node: string;
          pubkey_validator?: string;
          server_state: ServerState;
          server_state_duration_us: string;
          state_accounting: StateAccountingFinal;
          time: string;
          uptime: number;
          validated_ledger?: {
              age: number;
              base_fee_xrp: number;
              hash: string;
              reserve_base_xrp: number;
              reserve_inc_xrp: number;
              seq: number;
          };
          validation_quorum: number;
          validator_list?: {
              count: number;
              expiration: string;
              status: "active" | "expired" | "unknown";
          };
          validator_list_expires?: string;
      }
      +
      info: {
          amendment_blocked?: boolean;
          build_version: string;
          closed_ledger?: {
              age: number;
              base_fee_xrp: number;
              hash: string;
              reserve_base_xrp: number;
              reserve_inc_xrp: number;
              seq: number;
          };
          complete_ledgers: string;
          hostid: string;
          io_latency_ms: number;
          jq_trans_overflow: string;
          last_close: {
              converge_time_s: number;
              proposers: number;
          };
          load?: {
              job_types: JobType[];
              threads: number;
          };
          load_factor?: number;
          load_factor_cluster?: number;
          load_factor_fee_escalation?: number;
          load_factor_fee_queue?: number;
          load_factor_local?: number;
          load_factor_net?: number;
          load_factor_server?: number;
          network_id?: number;
          network_ledger?: "waiting";
          peer_disconnects?: string;
          peer_disconnects_resources?: string;
          peers: number;
          ports: ServerPort[];
          pubkey_node: string;
          pubkey_validator?: string;
          server_state: ServerState;
          server_state_duration_us: string;
          state_accounting: StateAccountingFinal;
          time: string;
          uptime: number;
          validated_ledger?: {
              age: number;
              base_fee_xrp: number;
              hash: string;
              reserve_base_xrp: number;
              reserve_inc_xrp: number;
              seq: number;
          };
          validation_quorum: number;
          validator_list?: {
              count: number;
              expiration: string;
              status: "active" | "expired" | "unknown";
          };
          validator_list_expires?: string;
      }
      • -
        Optional amendment_blocked?: boolean
        +
        Optional amendment_blocked?: boolean

        If true, this server is amendment blocked. If the server is not amendment blocked, the response omits this field.

        -
      • +
    +
  • -
    build_version: string
    +
    build_version: string

    The version number of the running rippled version.

    -
  • +
    +
  • -
    Optional closed_ledger?: {
        age: number;
        base_fee_xrp: number;
        hash: string;
        reserve_base_xrp: number;
        reserve_inc_xrp: number;
        seq: number;
    }
    +
    Optional closed_ledger?: {
        age: number;
        base_fee_xrp: number;
        hash: string;
        reserve_base_xrp: number;
        reserve_inc_xrp: number;
        seq: number;
    }

    Information on the most recently closed ledger that has not been validated by consensus. If the most recently validated ledger is available, the response omits this field and includes validated_ledger instead. The member fields are the same as the. validated_ledger field.

    +
    • -
      age: number
    • +
      age: number
    • -
      base_fee_xrp: number
    • +
      base_fee_xrp: number
    • -
      hash: string
    • +
      hash: string
    • -
      reserve_base_xrp: number
    • +
      reserve_base_xrp: number
    • -
      reserve_inc_xrp: number
    • +
      reserve_inc_xrp: number
    • -
      seq: number
  • +
    seq: number
  • -
    complete_ledgers: string
    +
    complete_ledgers: string

    Range expression indicating the sequence numbers of the ledger versions the local rippled has in its database.

    -
  • +
    +
  • -
    hostid: string
    +
    hostid: string

    On an admin request, returns the hostname of the server running the rippled instance; otherwise, returns a single RFC-1751 word based on the node public key.

    -
  • + +
  • -
    io_latency_ms: number
    +
    io_latency_ms: number

    Amount of time spent waiting for I/O operations, in milliseconds. If this number is not very, very low, then the rippled server is probably having serious load issues.

    -
  • + +
  • -
    jq_trans_overflow: string
    +
    jq_trans_overflow: string

    The number of times (since starting up) that this server has had over 250 transactions waiting to be processed at once. A large number here may mean that your server is unable to handle the transaction load of the XRP Ledger network.

    -
  • + +
  • -
    last_close: {
        converge_time_s: number;
        proposers: number;
    }
    +
    last_close: {
        converge_time_s: number;
        proposers: number;
    }

    Information about the last time the server closed a ledger, including the amount of time it took to reach a consensus and the number of trusted validators participating.

    +
    • -
      converge_time_s: number
      +
      converge_time_s: number

      The amount of time it took to reach a consensus on the most recently validated ledger version, in seconds.

      -
    • + +
    • -
      proposers: number
      +
      proposers: number

      How many trusted validators the server considered (including itself, if configured as a validator) in the consensus process for the most recently validated ledger version.

      -
  • + +
  • -
    Optional load?: {
        job_types: JobType[];
        threads: number;
    }
    +
    Optional load?: {
        job_types: JobType[];
        threads: number;
    }

    (Admin only) Detailed information about the current load state of the server.

    +
    • -
      job_types: JobType[]
      +
      job_types: JobType[]

      (Admin only) Information about the rate of different types of jobs the server is doing and how much time it spends on each.

      -
    • + +
    • -
      threads: number
      +
      threads: number

      (Admin only) The number of threads in the server's main job pool.

      -
  • + +
  • -
    Optional load_factor?: number
    +
    Optional load_factor?: number

    The load-scaled open ledger transaction cost the server is currently enforcing, as a multiplier on the base transaction cost. For example, at 1000 load factor and a reference transaction cost of 10 drops of @@ -173,171 +187,209 @@

    Optional load_factor -
  • + +
  • -
    Optional load_factor_cluster?: number
    +
    Optional load_factor_cluster?: number

    Current multiplier to the transaction cost based on load to servers in this cluster.

    -
  • + +
  • -
    Optional load_factor_fee_escalation?: number
    +
    Optional load_factor_fee_escalation?: number

    The current multiplier to the transaction cost that a transaction must pay to get into the open ledger.

    -
  • + +
  • -
    Optional load_factor_fee_queue?: number
    +
    Optional load_factor_fee_queue?: number

    The current multiplier to the transaction cost that a transaction must pay to get into the queue, if the queue is full.

    -
  • + +
  • -
    Optional load_factor_local?: number
    +
    Optional load_factor_local?: number

    Current multiplier to the transaction cost based on load to this server.

    -
  • + +
  • -
    Optional load_factor_net?: number
    +
    Optional load_factor_net?: number

    Current multiplier to the transaction cost being used by the rest of the network.

    -
  • + +
  • -
    Optional load_factor_server?: number
    +
    Optional load_factor_server?: number

    The load factor the server is enforcing, not including the open ledger cost.

    -
  • + +
    +
  • +
    Optional network_id?: number
    +

    The network id of the server.

    +
    +
  • -
    Optional network_ledger?: "waiting"
  • +
    Optional network_ledger?: "waiting"
  • -
    Optional peer_disconnects?: string
    +
    Optional peer_disconnects?: string

    The number of peer connections which were severed.

    -
  • + +
  • -
    Optional peer_disconnects_resources?: string
    +
    Optional peer_disconnects_resources?: string

    The number of peer connections which were severed due to excess resource consumption.

    -
  • + +
  • -
    peers: number
    +
    peers: number

    How many other rippled servers this one is currently connected to.

    -
  • + +
    +
  • +
    ports: ServerPort[]
    +

    What Websocket/RPC ports rippled is listening on. This allows crawlers to build a richer topology without needing to +port-scan nodes. For non-admin users (including peers), info about admin ports is excluded.

    +
    +
  • -
    pubkey_node: string
    +
    pubkey_node: string

    Public key used to verify this server for peer-to-peer communications. This node key pair is automatically generated by the server the first time it starts up. (If deleted, the server can create a new pair of Keys.).

    -
  • + +
  • -
    Optional pubkey_validator?: string
    +
    Optional pubkey_validator?: string

    Public key used by this node to sign ledger validations.

    -
  • + +
  • -
    server_state: ServerState
    +
    server_state: ServerState

    A string indicating to what extent the server is participating in the network.

    -
  • + +
  • -
    server_state_duration_us: string
    +
    server_state_duration_us: string

    The number of consecutive microseconds the server has been in the current state.

    -
  • + +
  • -
    state_accounting: StateAccountingFinal
    +
    state_accounting: StateAccountingFinal

    A map of various server states with information about the time the server spends in each. This can be useful for tracking the long-term health of your server's connectivity to the network.

    -
  • + +
  • -
    time: string
    +
    time: string

    The current time in UTC, according to the server's clock.

    -
  • + +
  • -
    uptime: number
    +
    uptime: number

    Number of consecutive seconds that the server has been operational.

    -
  • + +
  • -
    Optional validated_ledger?: {
        age: number;
        base_fee_xrp: number;
        hash: string;
        reserve_base_xrp: number;
        reserve_inc_xrp: number;
        seq: number;
    }
    +
    Optional validated_ledger?: {
        age: number;
        base_fee_xrp: number;
        hash: string;
        reserve_base_xrp: number;
        reserve_inc_xrp: number;
        seq: number;
    }

    Information about the most recent fully-validated ledger.

    +
    • -
      age: number
      +
      age: number

      The time since the ledger was closed, in seconds.

      -
    • + +
    • -
      base_fee_xrp: number
      +
      base_fee_xrp: number

      Base fee, in XRP. This may be represented in scientific notation. Such as 1e-05 for 0.00005.

      -
    • + +
    • -
      hash: string
      +
      hash: string

      Unique hash for the ledger, as hexadecimal.

      -
    • + +
    • -
      reserve_base_xrp: number
      +
      reserve_base_xrp: number

      Minimum amount of XRP (not drops) necessary for every account to. Keep in reserve .

      -
    • + +
    • -
      reserve_inc_xrp: number
      +
      reserve_inc_xrp: number

      Amount of XRP (not drops) added to the account reserve for each object an account owns in the ledger.

      -
    • + +
    • -
      seq: number
      +
      seq: number

      The ledger index of the latest validated ledger.

      -
  • + +
  • -
    validation_quorum: number
    +
    validation_quorum: number

    Minimum number of trusted validations required to validate a ledger version. Some circumstances may cause the server to require more validations.

    -
  • + +
  • -
    Optional validator_list?: {
        count: number;
        expiration: string;
        status: "active" | "expired" | "unknown";
    }
    +
    Optional validator_list?: {
        count: number;
        expiration: string;
        status: "active" | "expired" | "unknown";
    }
    • -
      count: number
    • +
      count: number
    • -
      expiration: string
    • +
      expiration: string
    • -
      status: "active" | "expired" | "unknown"
  • +
    status: "active" | "expired" | "unknown"
  • -
    Optional validator_list_expires?: string
    +
    Optional validator_list_expires?: string

    Either the human readable time, in UTC, when the current validator list will expire, the string unknown if the server has yet to load a published validator list or the string never if the server uses a static validator list.

    -
  • +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • api_version
  • +
  • forwarded
  • +
  • id
  • +
  • result
  • +
  • status
  • +
  • type
  • +
  • warning
  • +
  • warnings
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/ServerStateRequest.html b/docs/interfaces/ServerStateRequest.html index 3052234850..38778c30d0 100644 --- a/docs/interfaces/ServerStateRequest.html +++ b/docs/interfaces/ServerStateRequest.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -ServerStateRequest | xrpl
    +ServerStateRequest | xrpl
    -
    +
    • xrpl
    • @@ -26,15 +26,16 @@

      Interface ServerStateRequest

    information about the rippled server's current state. The response is almost the same as the server_info method, but uses units that are easier to process instead of easier to read.

    -
    +
    +

    Hierarchy

    +
  • Defined in packages/xrpl/src/models/methods/serverState.ts:12
  • @@ -42,40 +43,46 @@

    Properties

    -
    - -
    api_version?: number
    +
    + +
    api_version?: number

    The API version to use. If omitted, use version 1.

    -
    -
    - -
    command: "server_state"
    +
    + +
    command: "server_state"
    +

    The name of the API method.

    +
    +
    -
    - -
    id?: string | number
    +
  • Defined in packages/xrpl/src/models/methods/serverState.ts:13
  • +
    + +
    id?: string | number

    A unique value to identify this request. The response to this request uses the same id field. This way, even if responses arrive out of order, you know which request prompted which response.

    -
    -
    +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • api_version
  • +
  • command
  • +
  • id
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/ServerStateResponse.html b/docs/interfaces/ServerStateResponse.html index c58d7d3824..38c0d538f7 100644 --- a/docs/interfaces/ServerStateResponse.html +++ b/docs/interfaces/ServerStateResponse.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -ServerStateResponse | xrpl
    +ServerStateResponse | xrpl
    -
    +

    Interface ServerStateResponse

    -

    Response expected from a ServerStateRequest.

    -
    +

    Response expected from a ServerStateRequest.

    +
    +

    Hierarchy

    +
  • Defined in packages/xrpl/src/models/methods/serverState.ts:21
  • @@ -39,167 +40,168 @@

    Properties

    -
    - -
    api_version?: number
    +
    + +
    result: {
        state: {
            amendment_blocked?: boolean;
            build_version: string;
            closed_ledger?: {
                age: number;
                base_fee: number;
                hash: string;
                reserve_base: number;
                reserve_inc: number;
                seq: number;
            };
            complete_ledgers: string;
            io_latency_ms: number;
            jq_trans_overflow: string;
            last_close: {
                converge_time: number;
                proposers: number;
            };
            load?: {
                job_types: JobType[];
                threads: number;
            };
            load_base: number;
            load_factor: number;
            load_factor_fee_escalation?: number;
            load_factor_fee_queue?: number;
            load_factor_fee_reference?: number;
            load_factor_server?: number;
            peer_disconnects?: string;
            peer_disconnects_resources?: string;
            peers: number;
            pubkey_node: string;
            pubkey_validator?: string;
            server_state: ServerState;
            server_state_duration_us: string;
            state_accounting: StateAccountingFinal;
            time: string;
            uptime: number;
            validated_ledger?: {
                age?: number;
                base_fee: number;
                close_time: number;
                hash: string;
                reserve_base: number;
                reserve_inc: number;
                seq: number;
            };
            validation_quorum: number;
            validator_list_expires?: number;
        };
    }

    Type declaration

    • -
      state: {
          amendment_blocked?: boolean;
          build_version: string;
          closed_ledger?: {
              age: number;
              base_fee: number;
              hash: string;
              reserve_base: number;
              reserve_inc: number;
              seq: number;
          };
          complete_ledgers: string;
          io_latency_ms: number;
          jq_trans_overflow: string;
          last_close: {
              converge_time: number;
              proposers: number;
          };
          load?: {
              job_types: JobType[];
              threads: number;
          };
          load_base: number;
          load_factor: number;
          load_factor_fee_escalation?: number;
          load_factor_fee_queue?: number;
          load_factor_fee_reference?: number;
          load_factor_server?: number;
          peer_disconnects?: string;
          peer_disconnects_resources?: string;
          peers: number;
          pubkey_node: string;
          pubkey_validator?: string;
          server_state: ServerState;
          server_state_duration_us: string;
          state_accounting: StateAccountingFinal;
          time: string;
          uptime: number;
          validated_ledger?: {
              age?: number;
              base_fee: number;
              close_time: number;
              hash: string;
              reserve_base: number;
              reserve_inc: number;
              seq: number;
          };
          validation_quorum: number;
          validator_list_expires?: number;
      }
      +
      state: {
          amendment_blocked?: boolean;
          build_version: string;
          closed_ledger?: {
              age: number;
              base_fee: number;
              hash: string;
              reserve_base: number;
              reserve_inc: number;
              seq: number;
          };
          complete_ledgers: string;
          io_latency_ms: number;
          jq_trans_overflow: string;
          last_close: {
              converge_time: number;
              proposers: number;
          };
          load?: {
              job_types: JobType[];
              threads: number;
          };
          load_base: number;
          load_factor: number;
          load_factor_fee_escalation?: number;
          load_factor_fee_queue?: number;
          load_factor_fee_reference?: number;
          load_factor_server?: number;
          peer_disconnects?: string;
          peer_disconnects_resources?: string;
          peers: number;
          pubkey_node: string;
          pubkey_validator?: string;
          server_state: ServerState;
          server_state_duration_us: string;
          state_accounting: StateAccountingFinal;
          time: string;
          uptime: number;
          validated_ledger?: {
              age?: number;
              base_fee: number;
              close_time: number;
              hash: string;
              reserve_base: number;
              reserve_inc: number;
              seq: number;
          };
          validation_quorum: number;
          validator_list_expires?: number;
      }
      • -
        Optional amendment_blocked?: boolean
      • +
        Optional amendment_blocked?: boolean
      • -
        build_version: string
      • +
        build_version: string
      • -
        Optional closed_ledger?: {
            age: number;
            base_fee: number;
            hash: string;
            reserve_base: number;
            reserve_inc: number;
            seq: number;
        }
        +
        Optional closed_ledger?: {
            age: number;
            base_fee: number;
            hash: string;
            reserve_base: number;
            reserve_inc: number;
            seq: number;
        }
        • -
          age: number
        • +
          age: number
        • -
          base_fee: number
        • +
          base_fee: number
        • -
          hash: string
        • +
          hash: string
        • -
          reserve_base: number
        • +
          reserve_base: number
        • -
          reserve_inc: number
        • +
          reserve_inc: number
        • -
          seq: number
      • +
        seq: number
    • -
      complete_ledgers: string
    • +
      complete_ledgers: string
    • -
      io_latency_ms: number
    • +
      io_latency_ms: number
    • -
      jq_trans_overflow: string
    • +
      jq_trans_overflow: string
    • -
      last_close: {
          converge_time: number;
          proposers: number;
      }
      +
      last_close: {
          converge_time: number;
          proposers: number;
      }
      • -
        converge_time: number
      • +
        converge_time: number
      • -
        proposers: number
    • +
      proposers: number
  • -
    Optional load?: {
        job_types: JobType[];
        threads: number;
    }
    +
    Optional load?: {
        job_types: JobType[];
        threads: number;
    }
    • -
      job_types: JobType[]
    • +
      job_types: JobType[]
    • -
      threads: number
  • +
    threads: number
  • -
    load_base: number
  • +
    load_base: number
  • -
    load_factor: number
  • +
    load_factor: number
  • -
    Optional load_factor_fee_escalation?: number
  • +
    Optional load_factor_fee_escalation?: number
  • -
    Optional load_factor_fee_queue?: number
  • +
    Optional load_factor_fee_queue?: number
  • -
    Optional load_factor_fee_reference?: number
  • +
    Optional load_factor_fee_reference?: number
  • -
    Optional load_factor_server?: number
  • +
    Optional load_factor_server?: number
  • -
    Optional peer_disconnects?: string
  • +
    Optional peer_disconnects?: string
  • -
    Optional peer_disconnects_resources?: string
  • +
    Optional peer_disconnects_resources?: string
  • -
    peers: number
  • +
    peers: number
  • -
    pubkey_node: string
  • +
    pubkey_node: string
  • -
    Optional pubkey_validator?: string
  • +
    Optional pubkey_validator?: string
  • -
    server_state: ServerState
  • +
    server_state: ServerState
  • -
    server_state_duration_us: string
  • +
    server_state_duration_us: string
  • -
    state_accounting: StateAccountingFinal
  • +
    state_accounting: StateAccountingFinal
  • -
    time: string
  • +
    time: string
  • -
    uptime: number
  • +
    uptime: number
  • -
    Optional validated_ledger?: {
        age?: number;
        base_fee: number;
        close_time: number;
        hash: string;
        reserve_base: number;
        reserve_inc: number;
        seq: number;
    }
    +
    Optional validated_ledger?: {
        age?: number;
        base_fee: number;
        close_time: number;
        hash: string;
        reserve_base: number;
        reserve_inc: number;
        seq: number;
    }
    • -
      Optional age?: number
    • +
      Optional age?: number
    • -
      base_fee: number
    • +
      base_fee: number
    • -
      close_time: number
    • +
      close_time: number
    • -
      hash: string
    • +
      hash: string
    • -
      reserve_base: number
    • +
      reserve_base: number
    • -
      reserve_inc: number
    • +
      reserve_inc: number
    • -
      seq: number
  • +
    seq: number
  • -
    validation_quorum: number
  • +
    validation_quorum: number
  • -
    Optional validator_list_expires?: number
  • -
    - -
    status?: string
    +
    + +
    status?: string
    -
    - -
    type: string
    +
    + +
    type: string
    -
    - -
    warning?: "load"
    +
    + +
    warning?: "load"
    -
    - -
    warnings?: Warning[]
    +
    + +
    warnings?: ResponseWarning[]
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • api_version
  • +
  • forwarded
  • +
  • id
  • +
  • result
  • +
  • status
  • +
  • type
  • +
  • warning
  • +
  • warnings
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/SetFeePostAmendment.html b/docs/interfaces/SetFeePostAmendment.html new file mode 100644 index 0000000000..df9b3e765b --- /dev/null +++ b/docs/interfaces/SetFeePostAmendment.html @@ -0,0 +1,573 @@ +SetFeePostAmendment | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface SetFeePostAmendment

    +
    +

    Every transaction has the same set of common fields.

    +
    +
    +
    +

    Hierarchy

    +
    +
    +
    +
    + +
    +
    +

    Properties

    +
    + +
    Account: string
    +

    The unique address of the transaction sender.

    +
    +
    +
    + +
    AccountTxnID?: string
    +

    Hash value identifying another transaction. If provided, this transaction +is only valid if the sending account's previously-sent transaction matches +the provided hash.

    +
    +
    +
    + +
    BaseFeeDrops: string
    +

    The charge, in drops of XRP, for the reference transaction. (This is the transaction cost before scaling for load.)

    +
    +
    +
    + +
    Fee?: string
    +

    Integer amount of XRP, in drops, to be destroyed as a cost for +distributing this transaction to the network. Some transaction types have +different minimum requirements.

    +
    +
    +
    + +
    Flags?: number | GlobalFlags
    +

    Set of bit-flags for this transaction.

    +
    +
    +
    + +
    LastLedgerSequence?: number
    +

    Highest ledger index this transaction can appear in. Specifying this field +places a strict upper limit on how long the transaction can wait to be +validated or rejected.

    +
    +
    +
    + +
    Memos?: Memo[]
    +

    Additional arbitrary information used to identify this transaction.

    +
    +
    +
    + +
    NetworkID?: number
    +

    The network id of the transaction.

    +
    +
    +
    + +
    ReserveBaseDrops: string
    +

    The base reserve, in drops

    +
    +
    +
    + +
    ReserveIncrementDrops: string
    +

    The incremental reserve, in drops

    +
    +
    +
    + +
    Sequence?: number
    +

    The sequence number of the account sending the transaction. A transaction +is only valid if the Sequence number is exactly 1 greater than the previous +transaction from the same account. The special case 0 means the transaction +is using a Ticket instead.

    +
    +
    +
    + +
    Signers?: Signer[]
    +

    Array of objects that represent a multi-signature which authorizes this +transaction.

    +
    +
    +
    + +
    SigningPubKey?: string
    +

    Hex representation of the public key that corresponds to the private key +used to sign this transaction. If an empty string, indicates a +multi-signature is present in the Signers field instead.

    +
    +
    +
    + +
    SourceTag?: number
    +

    Arbitrary integer used to identify the reason for this payment, or a sender +on whose behalf this transaction is made. Conventionally, a refund should +specify the initial payment's SourceTag as the refund payment's +DestinationTag.

    +
    +
    +
    + +
    TicketSequence?: number
    +

    The sequence number of the ticket to use in place of a Sequence number. If +this is provided, Sequence must be 0. Cannot be used with AccountTxnID.

    +
    +
    +
    + +
    TransactionType: string
    +

    The type of transaction. Valid types include: Payment, OfferCreate, +TrustSet, and many others.

    +
    +
    +
    + +
    TxnSignature?: string
    +

    The signature that verifies this transaction as originating from the +account it says it is from.

    +
    +
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/SetFeePreAmendment.html b/docs/interfaces/SetFeePreAmendment.html new file mode 100644 index 0000000000..10c40e4f92 --- /dev/null +++ b/docs/interfaces/SetFeePreAmendment.html @@ -0,0 +1,583 @@ +SetFeePreAmendment | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface SetFeePreAmendment

    +
    +

    Every transaction has the same set of common fields.

    +
    +
    +
    +

    Hierarchy

    +
    +
    +
    +
    + +
    +
    +

    Properties

    +
    + +
    Account: string
    +

    The unique address of the transaction sender.

    +
    +
    +
    + +
    AccountTxnID?: string
    +

    Hash value identifying another transaction. If provided, this transaction +is only valid if the sending account's previously-sent transaction matches +the provided hash.

    +
    +
    +
    + +
    BaseFee: string
    +

    The charge, in drops of XRP, for the reference transaction, as hex. (This is the transaction cost before scaling for load.)

    +
    +
    +
    + +
    Fee?: string
    +

    Integer amount of XRP, in drops, to be destroyed as a cost for +distributing this transaction to the network. Some transaction types have +different minimum requirements.

    +
    +
    +
    + +
    Flags?: number | GlobalFlags
    +

    Set of bit-flags for this transaction.

    +
    +
    +
    + +
    LastLedgerSequence?: number
    +

    Highest ledger index this transaction can appear in. Specifying this field +places a strict upper limit on how long the transaction can wait to be +validated or rejected.

    +
    +
    +
    + +
    Memos?: Memo[]
    +

    Additional arbitrary information used to identify this transaction.

    +
    +
    +
    + +
    NetworkID?: number
    +

    The network id of the transaction.

    +
    +
    +
    + +
    ReferenceFeeUnits: number
    +

    The cost, in fee units, of the reference transaction

    +
    +
    +
    + +
    ReserveBase: number
    +

    The base reserve, in drops

    +
    +
    +
    + +
    ReserveIncrement: number
    +

    The incremental reserve, in drops

    +
    +
    +
    + +
    Sequence?: number
    +

    The sequence number of the account sending the transaction. A transaction +is only valid if the Sequence number is exactly 1 greater than the previous +transaction from the same account. The special case 0 means the transaction +is using a Ticket instead.

    +
    +
    +
    + +
    Signers?: Signer[]
    +

    Array of objects that represent a multi-signature which authorizes this +transaction.

    +
    +
    +
    + +
    SigningPubKey?: string
    +

    Hex representation of the public key that corresponds to the private key +used to sign this transaction. If an empty string, indicates a +multi-signature is present in the Signers field instead.

    +
    +
    +
    + +
    SourceTag?: number
    +

    Arbitrary integer used to identify the reason for this payment, or a sender +on whose behalf this transaction is made. Conventionally, a refund should +specify the initial payment's SourceTag as the refund payment's +DestinationTag.

    +
    +
    +
    + +
    TicketSequence?: number
    +

    The sequence number of the ticket to use in place of a Sequence number. If +this is provided, Sequence must be 0. Cannot be used with AccountTxnID.

    +
    +
    +
    + +
    TransactionType: string
    +

    The type of transaction. Valid types include: Payment, OfferCreate, +TrustSet, and many others.

    +
    +
    +
    + +
    TxnSignature?: string
    +

    The signature that verifies this transaction as originating from the +account it says it is from.

    +
    +
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/SetRegularKey.html b/docs/interfaces/SetRegularKey.html index dac5dcdbd8..87afefe32d 100644 --- a/docs/interfaces/SetRegularKey.html +++ b/docs/interfaces/SetRegularKey.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -SetRegularKey | xrpl
    +SetRegularKey | xrpl
    -
    +
    • xrpl
    • @@ -24,15 +24,16 @@

      Interface SetRegularKey

    A SetRegularKey transaction assigns, changes, or removes the regular key pair associated with an account.

    -
    +
    +

    Hierarchy

    +
  • Defined in packages/xrpl/src/models/transactions/setRegularKey.ts:11
  • @@ -40,155 +41,183 @@

    Properties

    -
    - -
    Account: string
    -

    The unique address of the account that initiated the transaction.

    -
    -
    - -
    AccountTxnID?: string
    +
    + +
    Account: string
    +

    The unique address of the transaction sender.

    +
    +
    +
    + +
    AccountTxnID?: string

    Hash value identifying another transaction. If provided, this transaction is only valid if the sending account's previously-sent transaction matches the provided hash.

    -
    +
    -
    - -
    Fee?: string
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:249
  • +
    + +
    Fee?: string

    Integer amount of XRP, in drops, to be destroyed as a cost for distributing this transaction to the network. Some transaction types have different minimum requirements.

    -
    -
    - -
    Flags?: number | GlobalFlags
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:236
  • +
    + +
    Flags?: number | GlobalFlags

    Set of bit-flags for this transaction.

    -
    -
    - -
    LastLedgerSequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:251
  • +
    + +
    LastLedgerSequence?: number

    Highest ledger index this transaction can appear in. Specifying this field places a strict upper limit on how long the transaction can wait to be validated or rejected.

    -
    -
    - -
    Memos?: Memo[]
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:257
  • +
    + +
    Memos?: Memo[]

    Additional arbitrary information used to identify this transaction.

    -
    +
    + +
    NetworkID?: number
    +

    The network id of the transaction.

    +
    +
    -
    - -
    RegularKey?: string
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:293
  • +
    + +
    RegularKey?: string

    A base-58-encoded Address that indicates the regular key pair to be assigned to the account. If omitted, removes any existing regular key pair. from the account. Must not match the master key pair for the address.

    -
    -
    - -
    Sequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/setRegularKey.ts:18
  • +
    + +
    Sequence?: number

    The sequence number of the account sending the transaction. A transaction is only valid if the Sequence number is exactly 1 greater than the previous transaction from the same account. The special case 0 means the transaction is using a Ticket instead.

    -
    -
    - -
    Signers?: Signer[]
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:243
  • +
    + +
    Signers?: Signer[]

    Array of objects that represent a multi-signature which authorizes this transaction.

    -
    -
    - -
    SigningPubKey?: string
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:266
  • +
    + +
    SigningPubKey?: string

    Hex representation of the public key that corresponds to the private key used to sign this transaction. If an empty string, indicates a multi-signature is present in the Signers field instead.

    -
    -
    - -
    SourceTag?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:279
  • +
    + +
    SourceTag?: number

    Arbitrary integer used to identify the reason for this payment, or a sender on whose behalf this transaction is made. Conventionally, a refund should specify the initial payment's SourceTag as the refund payment's DestinationTag.

    -
    -
    - -
    TicketSequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:273
  • +
    + +
    TicketSequence?: number

    The sequence number of the ticket to use in place of a Sequence number. If this is provided, Sequence must be 0. Cannot be used with AccountTxnID.

    -
    -
    - -
    TransactionType: "SetRegularKey"
    -
    - -
    TxnSignature?: string
    + +
    +
    + +
    TransactionType: "SetRegularKey"
    +

    The type of transaction. Valid types include: Payment, OfferCreate, +TrustSet, and many others.

    +
    +
    +
    + +
    TxnSignature?: string

    The signature that verifies this transaction as originating from the account it says it is from.

    -
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • Account
  • +
  • AccountTxnID
  • +
  • Fee
  • +
  • Flags
  • +
  • LastLedgerSequence
  • +
  • Memos
  • +
  • NetworkID
  • +
  • RegularKey
  • +
  • Sequence
  • +
  • Signers
  • +
  • SigningPubKey
  • +
  • SourceTag
  • +
  • TicketSequence
  • +
  • TransactionType
  • +
  • TxnSignature
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/Signer.html b/docs/interfaces/Signer.html new file mode 100644 index 0000000000..7abc93bf3e --- /dev/null +++ b/docs/interfaces/Signer.html @@ -0,0 +1,381 @@ +Signer | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface Signer

    +
    +

    Hierarchy

    +
      +
    • Signer
    +
    +
    +
    + +
    +
    +

    Properties

    +
    +
    +

    Properties

    +
    + +
    Signer: {
        Account: string;
        SigningPubKey: string;
        TxnSignature: string;
    }
    +
    +

    Type declaration

    +
      +
    • +
      Account: string
    • +
    • +
      SigningPubKey: string
    • +
    • +
      TxnSignature: string
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/SignerEntry.html b/docs/interfaces/SignerEntry.html new file mode 100644 index 0000000000..3d30a9e7a6 --- /dev/null +++ b/docs/interfaces/SignerEntry.html @@ -0,0 +1,402 @@ +SignerEntry | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface SignerEntry

    +
    +

    The object that describes the signer in SignerEntries.

    +
    +
    +
    +

    Hierarchy

    +
      +
    • SignerEntry
    +
    +
    +
    + +
    +
    +

    Properties

    +
    +
    +

    Properties

    +
    + +
    SignerEntry: {
        Account: string;
        SignerWeight: number;
        WalletLocator?: string;
    }
    +

    The object that describes the signer in SignerEntries.

    +
    +
    +

    Type declaration

    +
      +
    • +
      Account: string
      +

      An XRP Ledger address whose signature contributes to the multi-signature. +It does not need to be a funded address in the ledger.

      +
      +
    • +
    • +
      SignerWeight: number
      +

      The weight of a signature from this signer. +A multi-signature is only valid if the sum weight of the signatures provided meets +or exceeds the signer list's SignerQuorum value.

      +
      +
    • +
    • +
      Optional WalletLocator?: string
      +

      An arbitrary 256-bit (32-byte) field that can be used to identify the signer, which +may be useful for smart contracts, or for identifying who controls a key in a large +organization.

      +
      +
    +
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/SignerListSet.html b/docs/interfaces/SignerListSet.html index e9796e6d3a..2879b7fd6d 100644 --- a/docs/interfaces/SignerListSet.html +++ b/docs/interfaces/SignerListSet.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -SignerListSet | xrpl
    +SignerListSet | xrpl
    -
    +
    • xrpl
    • @@ -24,15 +24,16 @@

      Interface SignerListSet

    The SignerListSet transaction creates, replaces, or removes a list of signers that can be used to multi-sign a transaction.

    -
    +
    +

    Hierarchy

    +
  • Defined in packages/xrpl/src/models/transactions/signerListSet.ts:12
  • @@ -40,166 +41,195 @@

    Properties

    -
    - -
    Account: string
    -

    The unique address of the account that initiated the transaction.

    -
    -
    - -
    AccountTxnID?: string
    +
    + +
    Account: string
    +

    The unique address of the transaction sender.

    +
    +
    +
    + +
    AccountTxnID?: string

    Hash value identifying another transaction. If provided, this transaction is only valid if the sending account's previously-sent transaction matches the provided hash.

    -
    +
    -
    - -
    Fee?: string
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:249
  • +
    + +
    Fee?: string

    Integer amount of XRP, in drops, to be destroyed as a cost for distributing this transaction to the network. Some transaction types have different minimum requirements.

    -
    -
    - -
    Flags?: number | GlobalFlags
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:236
  • +
    + +
    Flags?: number | GlobalFlags

    Set of bit-flags for this transaction.

    -
    -
    - -
    LastLedgerSequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:251
  • +
    + +
    LastLedgerSequence?: number

    Highest ledger index this transaction can appear in. Specifying this field places a strict upper limit on how long the transaction can wait to be validated or rejected.

    -
    -
    - -
    Memos?: Memo[]
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:257
  • +
    + +
    Memos?: Memo[]

    Additional arbitrary information used to identify this transaction.

    -
    +
    + +
    NetworkID?: number
    +

    The network id of the transaction.

    +
    +
    -
    - -
    Sequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:293
  • +
    + +
    Sequence?: number

    The sequence number of the account sending the transaction. A transaction is only valid if the Sequence number is exactly 1 greater than the previous transaction from the same account. The special case 0 means the transaction is using a Ticket instead.

    -
    -
    - -
    SignerEntries: SignerEntry[]
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:243
  • +
    + +
    SignerEntries?: SignerEntry[]

    Array of SignerEntry objects, indicating the addresses and weights of signers in this list. This signer list must have at least 1 member and no more than 32 members. No address may appear more than once in the list, nor may the Account submitting the transaction appear in the list.

    -
    -
    - -
    SignerQuorum: number
    +
  • Defined in packages/xrpl/src/models/transactions/signerListSet.ts:26
  • +
    + +
    SignerQuorum: number

    A target number for the signer weights. A multi-signature from this list is valid only if the sum weights of the signatures provided is greater than or equal to this value. To delete a signer list, use the value 0.

    -
    -
    - -
    Signers?: Signer[]
    +
  • Defined in packages/xrpl/src/models/transactions/signerListSet.ts:19
  • +
    + +
    Signers?: Signer[]

    Array of objects that represent a multi-signature which authorizes this transaction.

    -
    -
    - -
    SigningPubKey?: string
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:266
  • +
    + +
    SigningPubKey?: string

    Hex representation of the public key that corresponds to the private key used to sign this transaction. If an empty string, indicates a multi-signature is present in the Signers field instead.

    -
    -
    - -
    SourceTag?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:279
  • +
    + +
    SourceTag?: number

    Arbitrary integer used to identify the reason for this payment, or a sender on whose behalf this transaction is made. Conventionally, a refund should specify the initial payment's SourceTag as the refund payment's DestinationTag.

    -
    -
    - -
    TicketSequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:273
  • +
    + +
    TicketSequence?: number

    The sequence number of the ticket to use in place of a Sequence number. If this is provided, Sequence must be 0. Cannot be used with AccountTxnID.

    -
    -
    - -
    TransactionType: "SignerListSet"
    -
    - -
    TxnSignature?: string
    + +
    +
    + +
    TransactionType: "SignerListSet"
    +

    The type of transaction. Valid types include: Payment, OfferCreate, +TrustSet, and many others.

    +
    +
    +
    + +
    TxnSignature?: string

    The signature that verifies this transaction as originating from the account it says it is from.

    -
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • Account
  • +
  • AccountTxnID
  • +
  • Fee
  • +
  • Flags
  • +
  • LastLedgerSequence
  • +
  • Memos
  • +
  • NetworkID
  • +
  • Sequence
  • +
  • SignerEntries
  • +
  • SignerQuorum
  • +
  • Signers
  • +
  • SigningPubKey
  • +
  • SourceTag
  • +
  • TicketSequence
  • +
  • TransactionType
  • +
  • TxnSignature
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/SourceCurrencyAmount.html b/docs/interfaces/SourceCurrencyAmount.html new file mode 100644 index 0000000000..5e30aad2e4 --- /dev/null +++ b/docs/interfaces/SourceCurrencyAmount.html @@ -0,0 +1,379 @@ +SourceCurrencyAmount | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface SourceCurrencyAmount

    +
    +

    Hierarchy

    +
      +
    • SourceCurrencyAmount
    +
    +
    +
    + +
    +
    +

    Properties

    +
    +
    +

    Properties

    +
    + +
    currency: string
    +
    + +
    issuer?: string
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/StateAccounting.html b/docs/interfaces/StateAccounting.html new file mode 100644 index 0000000000..4a247e387d --- /dev/null +++ b/docs/interfaces/StateAccounting.html @@ -0,0 +1,379 @@ +StateAccounting | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface StateAccounting

    +
    +

    Hierarchy

    +
      +
    • StateAccounting
    +
    +
    +
    + +
    +
    +

    Properties

    +
    +
    +

    Properties

    +
    + +
    duration_us: string
    +
    + +
    transitions: string
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/SubmitMultisignedRequest.html b/docs/interfaces/SubmitMultisignedRequest.html index ff3b6463a1..2f62c99a2a 100644 --- a/docs/interfaces/SubmitMultisignedRequest.html +++ b/docs/interfaces/SubmitMultisignedRequest.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -SubmitMultisignedRequest | xrpl
    +SubmitMultisignedRequest | xrpl
    -
    +
    • xrpl
    • @@ -24,16 +24,17 @@

      Interface SubmitMultisignedRequest

    The submit_multisigned command applies a multi-signed transaction and sends it to the network to be included in future ledgers. Expects a response in the -form of a SubmitMultisignedRequest.

    -
    +form of a SubmitMultisignedRequest.

    +
    +

    Hierarchy

    +
  • Defined in packages/xrpl/src/models/methods/submitMultisigned.ts:12
  • @@ -41,59 +42,67 @@

    Properties

    -
    - -
    api_version?: number
    +
    + +
    api_version?: number

    The API version to use. If omitted, use version 1.

    -
    +
    -
    - -
    command: "submit_multisigned"
    +
    + +
    command: "submit_multisigned"
    +

    The name of the API method.

    +
    +
    -
    - -
    fail_hard?: boolean
    +
  • Defined in packages/xrpl/src/models/methods/submitMultisigned.ts:13
  • +
    + +
    fail_hard?: boolean

    If true, and the transaction fails locally, do not retry or relay the transaction to other servers.

    -
    -
    - -
    id?: string | number
    +
  • Defined in packages/xrpl/src/models/methods/submitMultisigned.ts:24
  • +
    + +
    id?: string | number

    A unique value to identify this request. The response to this request uses the same id field. This way, even if responses arrive out of order, you know which request prompted which response.

    -
    -
    - -
    tx_json: Transaction
    +
  • Defined in packages/xrpl/src/models/methods/baseMethod.ts:12
  • +
    + +
    tx_json: Transaction

    Transaction in JSON format with an array of Signers. To be successful, the weights of the signatures must be equal or higher than the quorum of the. -SignerList.

    -
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • api_version
  • +
  • command
  • +
  • fail_hard
  • +
  • id
  • +
  • tx_json
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/SubmitMultisignedResponse.html b/docs/interfaces/SubmitMultisignedResponse.html index 57c8b45981..d8a4ac099f 100644 --- a/docs/interfaces/SubmitMultisignedResponse.html +++ b/docs/interfaces/SubmitMultisignedResponse.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -SubmitMultisignedResponse | xrpl
    +SubmitMultisignedResponse | xrpl
    -
    +

    Interface SubmitMultisignedResponse

    -

    Response expected from a SubmitMultisignedRequest.

    -
    +

    Response expected from a SubmitMultisignedRequest.

    +
    +

    Hierarchy

    +
  • Defined in packages/xrpl/src/models/methods/submitMultisigned.ts:32
  • @@ -39,94 +40,100 @@

    Properties

    -
    - -
    api_version?: number
    +
    + +
    result: {
        engine_result: string;
        engine_result_code: number;
        engine_result_message: string;
        tx_blob: string;
        tx_json: Object;
    }

    Type declaration

    • -
      engine_result: string
      +
      engine_result: string

      Code indicating the preliminary result of the transaction, for example. tesSUCCESS .

      -
    • +
    +
  • -
    engine_result_code: number
    +
    engine_result_code: number

    Numeric code indicating the preliminary result of the transaction, directly correlated to engine_result.

    -
  • +
    +
  • -
    engine_result_message: string
    +
    engine_result_message: string

    Human-readable explanation of the preliminary transaction result.

    -
  • +
    +
  • -
    tx_blob: string
    +
    tx_blob: string

    The complete transaction in hex string format.

    -
  • + +
  • -
    tx_json: Object
    +
    tx_json: Object

    The complete transaction in JSON format.

    -
  • +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • api_version
  • +
  • forwarded
  • +
  • id
  • +
  • result
  • +
  • status
  • +
  • type
  • +
  • warning
  • +
  • warnings
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/SubmitRequest.html b/docs/interfaces/SubmitRequest.html index 7a0087100d..5028ed1722 100644 --- a/docs/interfaces/SubmitRequest.html +++ b/docs/interfaces/SubmitRequest.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -SubmitRequest | xrpl
    +SubmitRequest | xrpl
    -
    +
    • xrpl
    • @@ -24,16 +24,17 @@

      Interface SubmitRequest

    The submit method applies a transaction and sends it to the network to be confirmed and included in future ledgers. Expects a response in the form of a -SubmitResponse.

    -
    +SubmitResponse.

    +
    +

    Hierarchy

    +
  • Defined in packages/xrpl/src/models/methods/submit.ts:12
  • @@ -41,57 +42,65 @@

    Properties

    -
    - -
    api_version?: number
    +
    + +
    api_version?: number

    The API version to use. If omitted, use version 1.

    -
    +
    -
    - -
    command: "submit"
    +
    + +
    command: "submit"
    +

    The name of the API method.

    +
    +
    -
    - -
    fail_hard?: boolean
    +
  • Defined in packages/xrpl/src/models/methods/submit.ts:13
  • +
    + +
    fail_hard?: boolean

    If true, and the transaction fails locally, do not retry or relay the transaction to other servers. The default is false.

    -
    -
    - -
    id?: string | number
    +
  • Defined in packages/xrpl/src/models/methods/submit.ts:20
  • +
    + +
    id?: string | number

    A unique value to identify this request. The response to this request uses the same id field. This way, even if responses arrive out of order, you know which request prompted which response.

    -
    -
    - -
    tx_blob: string
    +
  • Defined in packages/xrpl/src/models/methods/baseMethod.ts:12
  • +
    + +
    tx_blob: string

    The complete transaction in hex string format.

    -
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • api_version
  • +
  • command
  • +
  • fail_hard
  • +
  • id
  • +
  • tx_blob
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/SubmitResponse.html b/docs/interfaces/SubmitResponse.html index 6f81ff0179..0bcda76037 100644 --- a/docs/interfaces/SubmitResponse.html +++ b/docs/interfaces/SubmitResponse.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -SubmitResponse | xrpl
    +SubmitResponse | xrpl
    -
    +

    Interface SubmitResponse

    -

    Response expected from a SubmitRequest.

    -
    +

    Response expected from a SubmitRequest.

    +
    +

    Hierarchy

    +
  • Defined in packages/xrpl/src/models/methods/submit.ts:28
  • @@ -39,143 +40,158 @@

    Properties

    -
    - -
    api_version?: number
    +
    + +
    result: {
        accepted: boolean;
        account_sequence_available: number;
        account_sequence_next: number;
        applied: boolean;
        broadcast: boolean;
        engine_result: string;
        engine_result_code: number;
        engine_result_message: string;
        kept: boolean;
        open_ledger_cost: string;
        queued: boolean;
        tx_blob: string;
        tx_json: Object;
        validated_ledger_index: number;
    }

    Type declaration

    • -
      accepted: boolean
      +
      accepted: boolean

      The value true indicates that the transaction was applied, queued, broadcast, or kept for later. The value false indicates that none of those happened, so the transaction cannot possibly succeed as long as you do not submit it again and have not already submitted it another time.

      -
    • +
    +
  • -
    account_sequence_available: number
    +
    account_sequence_available: number

    The next Sequence Number available for the sending account after all pending and queued transactions.

    -
  • +
    +
  • -
    account_sequence_next: number
    +
    account_sequence_next: number

    The next Sequence number for the sending account after all transactions that have been provisionally applied, but not transactions in the queue.

    -
  • +
    +
  • -
    applied: boolean
    +
    applied: boolean

    The value true indicates that this transaction was applied to the open ledger. In this case, the transaction is likely, but not guaranteed, to be validated in the next ledger version.

    -
  • + +
  • -
    broadcast: boolean
    +
    broadcast: boolean

    The value true indicates this transaction was broadcast to peer servers in the peer-to-peer XRP Ledger network.

    -
  • + +
  • -
    engine_result: string
    +
    engine_result: string

    Text result code indicating the preliminary result of the transaction, for example tesSUCCESS.

    -
  • + +
  • -
    engine_result_code: number
    +
    engine_result_code: number

    Numeric version of the result code.

    -
  • + +
  • -
    engine_result_message: string
    +
    engine_result_message: string

    Human-readable explanation of the transaction's preliminary result.

    -
  • + +
  • -
    kept: boolean
    +
    kept: boolean

    The value true indicates that the transaction was kept to be retried later.

    -
  • + +
  • -
    open_ledger_cost: string
    +
    open_ledger_cost: string

    The current open ledger cost before processing this transaction transactions with a lower cost are likely to be queued.

    -
  • + +
  • -
    queued: boolean
    +
    queued: boolean

    The value true indicates the transaction was put in the Transaction Queue, which means it is likely to be included in a future ledger version.

    -
  • + +
  • -
    tx_blob: string
    +
    tx_blob: string

    The complete transaction in hex string format.

    -
  • + +
  • -
    tx_json: Object
    +
    tx_json: Object

    The complete transaction in JSON format.

    -
  • + +
  • -
    validated_ledger_index: number
    +
    validated_ledger_index: number

    The ledger index of the newest validated ledger at the time of submission. This provides a lower bound on the ledger versions that the transaction can appear in as a result of this request.

    -
  • +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • api_version
  • +
  • forwarded
  • +
  • id
  • +
  • result
  • +
  • status
  • +
  • type
  • +
  • warning
  • +
  • warnings
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/SubscribeBook.html b/docs/interfaces/SubscribeBook.html new file mode 100644 index 0000000000..7e801558bc --- /dev/null +++ b/docs/interfaces/SubscribeBook.html @@ -0,0 +1,419 @@ +SubscribeBook | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface SubscribeBook

    +
    +

    Hierarchy

    +
      +
    • SubscribeBook
    +
    +
    +
    + +
    +
    +

    Properties

    +
    +
    +

    Properties

    +
    + +
    both?: boolean
    +

    If true, return both sides of the order book. The default is false.

    +
    +
    +
    + +
    snapshot?: boolean
    +

    If true, return the current state of the order book once when you +subscribe before sending updates. The default is false.

    +
    +
    +
    + +
    taker: string
    +

    Unique account address to use as a perspective for viewing offers, in the. +XRP Ledger's base58 format.

    +
    +
    +
    + +
    taker_gets: Currency
    +

    Specification of which currency the account taking the Offer would +receive, as a currency object with no amount.

    +
    +
    +
    + +
    taker_pays: Currency
    +

    Specification of which currency the account taking the Offer would pay, as +a currency object with no amount.

    +
    +
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/SubscribeRequest.html b/docs/interfaces/SubscribeRequest.html index 2105ddf676..f5666b77dc 100644 --- a/docs/interfaces/SubscribeRequest.html +++ b/docs/interfaces/SubscribeRequest.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -SubscribeRequest | xrpl
    +SubscribeRequest | xrpl
    -
    +
    • xrpl
    • @@ -23,17 +23,18 @@

      Interface SubscribeRequest

    The subscribe method requests periodic notifications from the server when -certain events happen. Expects a response in the form of a. -SubscribeResponse.

    -
    +certain events happen. Expects a response in the form of a +SubscribeResponse.

    +
    +

    Hierarchy

    +
  • Defined in packages/xrpl/src/models/methods/subscribe.ts:47
  • @@ -41,101 +42,114 @@

    Properties

    -
    - -
    accounts?: string[]
    +
    + +
    accounts?: string[]

    Array with the unique addresses of accounts to monitor for validated transactions. The addresses must be in the XRP Ledger's base58 format. The server sends a notification for any transaction that affects at least one of these accounts.

    -
    +
    -
    - -
    accounts_proposed?: string[]
    +
  • Defined in packages/xrpl/src/models/methods/subscribe.ts:57
  • +
    + +
    accounts_proposed?: string[]

    Like accounts, but include transactions that are not yet finalized.

    -
    -
    - -
    api_version?: number
    +
  • Defined in packages/xrpl/src/models/methods/subscribe.ts:59
  • +
    + +
    api_version?: number

    The API version to use. If omitted, use version 1.

    -
    -
    - -
    books?: Book[]
    +
  • Defined in packages/xrpl/src/models/methods/baseMethod.ts:16
  • +
    + +
    books?: SubscribeBook[]

    Array of objects defining order books to monitor for updates, as detailed Below.

    -
    -
    - -
    command: "subscribe"
    +
    + +
    command: "subscribe"
    +

    The name of the API method.

    +
    +
    -
    - -
    id?: string | number
    +
  • Defined in packages/xrpl/src/models/methods/subscribe.ts:48
  • +
    + +
    id?: string | number

    A unique value to identify this request. The response to this request uses the same id field. This way, even if responses arrive out of order, you know which request prompted which response.

    -
    -
    - -
    streams?: StreamType[]
    +
  • Defined in packages/xrpl/src/models/methods/baseMethod.ts:12
  • +
    + +
    streams?: StreamType[]

    Array of string names of generic streams to subscribe to.

    -
    -
    - -
    url?: string
    +
  • Defined in packages/xrpl/src/models/methods/subscribe.ts:50
  • +
    + +
    url?: string

    URL where the server sends a JSON-RPC callbacks for each event. Admin-only.

    -
    -
    - -
    url_password?: string
    +
  • Defined in packages/xrpl/src/models/methods/subscribe.ts:69
  • +
    + +
    url_password?: string

    Password to provide for basic authentication at the callback URL.

    -
    -
    - -
    url_username?: string
    +
  • Defined in packages/xrpl/src/models/methods/subscribe.ts:73
  • +
    + +
    url_username?: string

    Username to provide for basic authentication at the callback URL.

    -
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • accounts
  • +
  • accounts_proposed
  • +
  • api_version
  • +
  • books
  • +
  • command
  • +
  • id
  • +
  • streams
  • +
  • url
  • +
  • url_password
  • +
  • url_username
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/SubscribeResponse.html b/docs/interfaces/SubscribeResponse.html index 6a33bbfadd..ea525e45e1 100644 --- a/docs/interfaces/SubscribeResponse.html +++ b/docs/interfaces/SubscribeResponse.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -SubscribeResponse | xrpl
    +SubscribeResponse | xrpl
    -
    +

    Interface SubscribeResponse

    -

    Response expected from a SubscribeRequest.

    -
    +

    Response expected from a SubscribeRequest.

    +
    +

    Hierarchy

    +
  • Defined in packages/xrpl/src/models/methods/subscribe.ts:83
  • @@ -39,69 +40,70 @@

    Properties

    -
    - -
    api_version?: number
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • api_version
  • +
  • forwarded
  • +
  • id
  • +
  • result
  • +
  • status
  • +
  • type
  • +
  • warning
  • +
  • warnings
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/TicketCreate.html b/docs/interfaces/TicketCreate.html index 42150555c8..bea84ddf1e 100644 --- a/docs/interfaces/TicketCreate.html +++ b/docs/interfaces/TicketCreate.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -TicketCreate | xrpl
    +TicketCreate | xrpl
    -

    Properties

    -
    - -
    Account: string
    -

    The unique address of the account that initiated the transaction.

    -
    -
    - -
    AccountTxnID?: string
    +
    + +
    Account: string
    +

    The unique address of the transaction sender.

    +
    +
    +
    + +
    AccountTxnID?: string

    Hash value identifying another transaction. If provided, this transaction is only valid if the sending account's previously-sent transaction matches the provided hash.

    -
    +
    -
    - -
    Fee?: string
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:249
  • +
    + +
    Fee?: string

    Integer amount of XRP, in drops, to be destroyed as a cost for distributing this transaction to the network. Some transaction types have different minimum requirements.

    -
    -
    - -
    Flags?: number | GlobalFlags
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:236
  • +
    + +
    Flags?: number | GlobalFlags

    Set of bit-flags for this transaction.

    -
    -
    - -
    LastLedgerSequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:251
  • +
    + +
    LastLedgerSequence?: number

    Highest ledger index this transaction can appear in. Specifying this field places a strict upper limit on how long the transaction can wait to be validated or rejected.

    -
    -
    - -
    Memos?: Memo[]
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:257
  • +
    + +
    Memos?: Memo[]

    Additional arbitrary information used to identify this transaction.

    -
    +
    + +
    NetworkID?: number
    +

    The network id of the transaction.

    +
    +
    -
    - -
    Sequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:293
  • +
    + +
    Sequence?: number

    The sequence number of the account sending the transaction. A transaction is only valid if the Sequence number is exactly 1 greater than the previous transaction from the same account. The special case 0 means the transaction is using a Ticket instead.

    -
    -
    - -
    Signers?: Signer[]
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:243
  • +
    + +
    Signers?: Signer[]

    Array of objects that represent a multi-signature which authorizes this transaction.

    -
    -
    - -
    SigningPubKey?: string
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:266
  • +
    + +
    SigningPubKey?: string

    Hex representation of the public key that corresponds to the private key used to sign this transaction. If an empty string, indicates a multi-signature is present in the Signers field instead.

    -
    -
    - -
    SourceTag?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:279
  • +
    + +
    SourceTag?: number

    Arbitrary integer used to identify the reason for this payment, or a sender on whose behalf this transaction is made. Conventionally, a refund should specify the initial payment's SourceTag as the refund payment's DestinationTag.

    -
    -
    - -
    TicketCount: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:273
  • +
    + +
    TicketCount: number

    How many Tickets to create. This must be a positive number and cannot cause the account to own more than 250 Tickets after executing this transaction.

    -
    -
    - -
    TicketSequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/ticketCreate.ts:18
  • +
    + +
    TicketSequence?: number

    The sequence number of the ticket to use in place of a Sequence number. If this is provided, Sequence must be 0. Cannot be used with AccountTxnID.

    -
    -
    - -
    TransactionType: "TicketCreate"
    -
    - -
    TxnSignature?: string
    + +
    +
    + +
    TransactionType: "TicketCreate"
    +

    The type of transaction. Valid types include: Payment, OfferCreate, +TrustSet, and many others.

    +
    +
    +
    + +
    TxnSignature?: string

    The signature that verifies this transaction as originating from the account it says it is from.

    -
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • Account
  • +
  • AccountTxnID
  • +
  • Fee
  • +
  • Flags
  • +
  • LastLedgerSequence
  • +
  • Memos
  • +
  • NetworkID
  • +
  • Sequence
  • +
  • Signers
  • +
  • SigningPubKey
  • +
  • SourceTag
  • +
  • TicketCount
  • +
  • TicketSequence
  • +
  • TransactionType
  • +
  • TxnSignature
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/TransactionAndMetadata.html b/docs/interfaces/TransactionAndMetadata.html index 9e0df7bea5..ddb1baf945 100644 --- a/docs/interfaces/TransactionAndMetadata.html +++ b/docs/interfaces/TransactionAndMetadata.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -TransactionAndMetadata | xrpl
    +TransactionAndMetadata | xrpl
    -
    +
    -

    Interface TransactionAndMetadata

    +

    Interface TransactionAndMetadata<T>

    +
    +

    Type Parameters

    +

    Hierarchy

    • TransactionAndMetadata
    +
  • Defined in packages/xrpl/src/models/transactions/transaction.ts:157
  • @@ -34,25 +39,26 @@

    Properties

    -
    - -
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • metadata
  • +
  • transaction
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/TransactionEntryRequest.html b/docs/interfaces/TransactionEntryRequest.html index d0c1dff270..64c5fee9fb 100644 --- a/docs/interfaces/TransactionEntryRequest.html +++ b/docs/interfaces/TransactionEntryRequest.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -TransactionEntryRequest | xrpl
    +TransactionEntryRequest | xrpl
    -
    +
    • xrpl
    • @@ -24,16 +24,18 @@

      Interface TransactionEntryRequest

    The transaction_entry method retrieves information on a single transaction from a specific ledger version. Expects a response in the form of a -TransactionEntryResponse.

    -
    +TransactionEntryResponse.

    +
    +

    Hierarchy

      -
    • BaseRequest +
    • BaseRequest
    • +
    • LookupByLedgerRequest
      • TransactionEntryRequest
    +
  • Defined in packages/xrpl/src/models/methods/transactionEntry.ts:13
  • @@ -41,65 +43,75 @@

    Properties

    -
    - -
    api_version?: number
    +
    + +
    api_version?: number

    The API version to use. If omitted, use version 1.

    -
    +
    -
    - -
    command: "transaction_entry"
    +
    + +
    command: "transaction_entry"
    +

    The name of the API method.

    +
    +
    -
    - -
    id?: string | number
    +
  • Defined in packages/xrpl/src/models/methods/transactionEntry.ts:16
  • +
    + +
    id?: string | number

    A unique value to identify this request. The response to this request uses the same id field. This way, even if responses arrive out of order, you know which request prompted which response.

    -
    -
    - -
    ledger_hash?: string
    +
  • Defined in packages/xrpl/src/models/methods/baseMethod.ts:12
  • +
    + +
    ledger_hash?: string

    A 20-byte hex string for the ledger version to use.

    -
    -
    - -
    ledger_index?: LedgerIndex
    -

    The ledger index of the ledger to use, or a shortcut string to choose a -ledger automatically.

    -
    +
    + +
    ledger_index?: LedgerIndex
    +

    The ledger index of the ledger to use, or a shortcut string.

    +
    +
    -
    - -
    tx_hash: string
    +
  • Defined in packages/xrpl/src/models/methods/baseMethod.ts:23
  • +
    + +
    tx_hash: string

    Unique hash of the transaction you are looking up.

    -
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • api_version
  • +
  • command
  • +
  • id
  • +
  • ledger_hash
  • +
  • ledger_index
  • +
  • tx_hash
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/TransactionEntryResponse.html b/docs/interfaces/TransactionEntryResponse.html index bc6aff882c..54d50b9d80 100644 --- a/docs/interfaces/TransactionEntryResponse.html +++ b/docs/interfaces/TransactionEntryResponse.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -TransactionEntryResponse | xrpl
    +TransactionEntryResponse | xrpl
    -
    +

    Interface TransactionEntryResponse

    -

    Response expected from a TransactionEntryRequest.

    -
    +

    Response expected from a TransactionEntryRequest.

    +
    +

    Hierarchy

    +
  • Defined in packages/xrpl/src/models/methods/transactionEntry.ts:27
  • @@ -39,91 +40,96 @@

    Properties

    -
    - -
    api_version?: number
    +
    + +
    result: {
        ledger_hash: string;
        ledger_index: number;
        metadata: TransactionMetadata;
        tx_json: Object;
    }

    Type declaration

    • -
      ledger_hash: string
      +
      ledger_hash: string

      The identifying hash of the ledger version the transaction was found in; this is the same as the one from the request.

      -
    • +
    +
  • -
    ledger_index: number
    +
    ledger_index: number

    The ledger index of the ledger version the transaction was found in; this is the same as the one from the request.

    -
  • +
    +
  • -
    metadata: TransactionMetadata
    +
    metadata: TransactionMetadata

    The transaction metadata, which shows the exact results of the transaction in detail.

    -
  • +
    +
  • -
    tx_json: Object
    +
    tx_json: Object

    JSON representation of the Transaction object.

    -
  • +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • api_version
  • +
  • forwarded
  • +
  • id
  • +
  • result
  • +
  • status
  • +
  • type
  • +
  • warning
  • +
  • warnings
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/TransactionMetadata.html b/docs/interfaces/TransactionMetadata.html deleted file mode 100644 index 8a502ba3fd..0000000000 --- a/docs/interfaces/TransactionMetadata.html +++ /dev/null @@ -1,103 +0,0 @@ -TransactionMetadata | xrpl
    -
    - -
    -
    -
    -
    - -

    Interface TransactionMetadata

    -
    -

    Hierarchy

    -
      -
    • TransactionMetadata
    -
    -
    -
    - -
    -
    -

    Properties

    -
    - -
    AffectedNodes: Node[]
    -
    - -
    DeliveredAmount?: Amount
    -
    - -
    TransactionIndex: number
    -
    - -
    TransactionResult: string
    -
    - -
    delivered_amount?: Amount
    -
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file diff --git a/docs/interfaces/TransactionMetadataBase.html b/docs/interfaces/TransactionMetadataBase.html new file mode 100644 index 0000000000..a257eeb278 --- /dev/null +++ b/docs/interfaces/TransactionMetadataBase.html @@ -0,0 +1,400 @@ +TransactionMetadataBase | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface TransactionMetadataBase

    +
    +

    Hierarchy

    +
      +
    • TransactionMetadataBase
    +
    +
    +
    + +
    +
    +

    Properties

    +
    + +
    AffectedNodes: Node[]
    +
    + +
    DeliveredAmount?: Amount
    +
    + +
    TransactionIndex: number
    +
    + +
    TransactionResult: string
    +
    + +
    delivered_amount?: Amount
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/TransactionStream.html b/docs/interfaces/TransactionStream.html index 1d83cc17a3..88043b8a17 100644 --- a/docs/interfaces/TransactionStream.html +++ b/docs/interfaces/TransactionStream.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -TransactionStream | xrpl
    +TransactionStream | xrpl
    -
    +
    • xrpl
    • @@ -23,15 +23,16 @@

      Interface TransactionStream

    Many subscriptions result in messages about transactions.

    -
    +
    +

    Hierarchy

      -
    • BaseStream +
    • BaseStream
      • TransactionStream
    +
  • Defined in packages/xrpl/src/models/methods/subscribe.ts:265
  • @@ -39,108 +40,125 @@

    Properties

    -
    - -
    engine_result: string
    +
    + +
    engine_result: string

    String Transaction result code.

    -
    +
    -
    - -
    engine_result_code: number
    +
  • Defined in packages/xrpl/src/models/methods/subscribe.ts:269
  • +
    + +
    engine_result_code: number

    Numeric transaction response code, if applicable.

    -
    -
    - -
    engine_result_message: string
    +
  • Defined in packages/xrpl/src/models/methods/subscribe.ts:271
  • +
    + +
    engine_result_message: string

    Human-readable explanation for the transaction response.

    -
    -
    - -
    ledger_current_index?: number
    +
  • Defined in packages/xrpl/src/models/methods/subscribe.ts:273
  • +
    + +
    ledger_current_index?: number

    The ledger index of the current in-progress ledger version for which this transaction is currently proposed.

    -
    -
    - -
    ledger_hash?: string
    +
  • Defined in packages/xrpl/src/models/methods/subscribe.ts:278
  • +
    + +
    ledger_hash?: string

    The identifying hash of the ledger version that includes this transaction.

    -
    -
    - -
    ledger_index?: number
    +
  • Defined in packages/xrpl/src/models/methods/subscribe.ts:280
  • +
    + +
    ledger_index?: number

    The ledger index of the ledger version that includes this transaction.

    -
    -
    - - +
  • Defined in packages/xrpl/src/models/methods/subscribe.ts:282
  • +
    + +

    The transaction metadata, which shows the exact outcome of the transaction in detail.

    -
    -
    - -
    status: string
    +
    + +
    status: string
    -
    - -
    transaction: Object
    +
  • Defined in packages/xrpl/src/models/methods/subscribe.ts:266
  • +
    + +
    transaction: Object

    The definition of the transaction in JSON format.

    -
    -
    - -
    type: "transaction"
    +
    + +
    type: "transaction"
    -
    - -
    validated?: boolean
    +
  • Defined in packages/xrpl/src/models/methods/subscribe.ts:267
  • +
    + +
    validated?: boolean

    If true, this transaction is included in a validated ledger and its outcome is final. Responses from the transaction stream should always be validated.

    -
    -
    - -
    warnings?: {
        id: number;
        message: string;
    }[]
    +
    + +
    warnings?: {
        id: number;
        message: string;
    }[]
    +
    +

    Type declaration

    +
      +
    • +
      id: number
    • +
    • +
      message: string
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • engine_result
  • +
  • engine_result_code
  • +
  • engine_result_message
  • +
  • ledger_current_index
  • +
  • ledger_hash
  • +
  • ledger_index
  • +
  • meta
  • +
  • status
  • +
  • transaction
  • +
  • type
  • +
  • validated
  • +
  • warnings
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/TrustSet.html b/docs/interfaces/TrustSet.html index 59fb5bba91..a02e7fb2fe 100644 --- a/docs/interfaces/TrustSet.html +++ b/docs/interfaces/TrustSet.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -TrustSet | xrpl
    +TrustSet | xrpl
    -

    Properties

    -
    - -
    Account: string
    -

    The unique address of the account that initiated the transaction.

    -
    -
    - -
    AccountTxnID?: string
    +
    + +
    Account: string
    +

    The unique address of the transaction sender.

    +
    +
    +
    + +
    AccountTxnID?: string

    Hash value identifying another transaction. If provided, this transaction is only valid if the sending account's previously-sent transaction matches the provided hash.

    -
    +
    -
    - -
    Fee?: string
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:249
  • +
    + +
    Fee?: string

    Integer amount of XRP, in drops, to be destroyed as a cost for distributing this transaction to the network. Some transaction types have different minimum requirements.

    -
    -
    - -
    Flags?: number | TrustSetFlagsInterface
    -
    - -
    LastLedgerSequence?: number
    + +
    +
    + +
    Flags?: number | TrustSetFlagsInterface
    +

    Set of bit-flags for this transaction.

    +
    +
    +
    + +
    LastLedgerSequence?: number

    Highest ledger index this transaction can appear in. Specifying this field places a strict upper limit on how long the transaction can wait to be validated or rejected.

    -
    -
    - -
    LimitAmount: IssuedCurrencyAmount
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:257
  • +
    + +

    Object defining the trust line to create or modify, in the format of a Currency Amount.

    -
    -
    - -
    Memos?: Memo[]
    +
  • Defined in packages/xrpl/src/models/transactions/trustSet.ts:105
  • +
    + +
    Memos?: Memo[]

    Additional arbitrary information used to identify this transaction.

    -
    -
    - -
    QualityIn?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:261
  • +
    + +
    NetworkID?: number
    +

    The network id of the transaction.

    +
    +
    +
    + +
    QualityIn?: number

    Value incoming balances on this trust line at the ratio of this number per 1,000,000,000 units. A value of 0 is shorthand for treating balances at face value.

    -
    -
    - -
    QualityOut?: number
    +
  • Defined in packages/xrpl/src/models/transactions/trustSet.ts:111
  • +
    + +
    QualityOut?: number

    Value outgoing balances on this trust line at the ratio of this number per 1,000,000,000 units. A value of 0 is shorthand for treating balances at face value.

    -
    -
    - -
    Sequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/trustSet.ts:117
  • +
    + +
    Sequence?: number

    The sequence number of the account sending the transaction. A transaction is only valid if the Sequence number is exactly 1 greater than the previous transaction from the same account. The special case 0 means the transaction is using a Ticket instead.

    -
    -
    - -
    Signers?: Signer[]
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:243
  • +
    + +
    Signers?: Signer[]

    Array of objects that represent a multi-signature which authorizes this transaction.

    -
    -
    - -
    SigningPubKey?: string
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:266
  • +
    + +
    SigningPubKey?: string

    Hex representation of the public key that corresponds to the private key used to sign this transaction. If an empty string, indicates a multi-signature is present in the Signers field instead.

    -
    -
    - -
    SourceTag?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:279
  • +
    + +
    SourceTag?: number

    Arbitrary integer used to identify the reason for this payment, or a sender on whose behalf this transaction is made. Conventionally, a refund should specify the initial payment's SourceTag as the refund payment's DestinationTag.

    -
    -
    - -
    TicketSequence?: number
    +
  • Defined in packages/xrpl/src/models/transactions/common.ts:273
  • +
    + +
    TicketSequence?: number

    The sequence number of the ticket to use in place of a Sequence number. If this is provided, Sequence must be 0. Cannot be used with AccountTxnID.

    -
    -
    - -
    TransactionType: "TrustSet"
    -
    - -
    TxnSignature?: string
    + +
    +
    + +
    TransactionType: "TrustSet"
    +

    The type of transaction. Valid types include: Payment, OfferCreate, +TrustSet, and many others.

    +
    +
    +
    + +
    TxnSignature?: string

    The signature that verifies this transaction as originating from the account it says it is from.

    -
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • Account
  • +
  • AccountTxnID
  • +
  • Fee
  • +
  • Flags
  • +
  • LastLedgerSequence
  • +
  • LimitAmount
  • +
  • Memos
  • +
  • NetworkID
  • +
  • QualityIn
  • +
  • QualityOut
  • +
  • Sequence
  • +
  • Signers
  • +
  • SigningPubKey
  • +
  • SourceTag
  • +
  • TicketSequence
  • +
  • TransactionType
  • +
  • TxnSignature
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/TrustSetFlagsInterface.html b/docs/interfaces/TrustSetFlagsInterface.html index 9fe688116d..c2a3b1f18c 100644 --- a/docs/interfaces/TrustSetFlagsInterface.html +++ b/docs/interfaces/TrustSetFlagsInterface.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -TrustSetFlagsInterface | xrpl
    +TrustSetFlagsInterface | xrpl
    -
    +

    Interface TrustSetFlagsInterface

    -

    Map of flags to boolean values representing TrustSet transaction +

    Map of flags to boolean values representing TrustSet transaction flags.

    - -

    Example


    const trustSetTx: TrustSet = {
    TransactionType: 'TrustSet',
    Account: wallet2.getClassicAddress(),
    LimitAmount: {
    currency: 'FOO',
    issuer: wallet1.getClassicAddress(),
    value: '10000000000',
    },
    Flags: {
    tfSetNoRipple: true
    }
    }

    // Autofill the tx to see how flags actually look compared to the interface usage.
    const autofilledTx = await client.autofill(trustSetTx)
    console.log(autofilledTx)
    // {
    // TransactionType: 'TrustSet',
    // Account: 'r9dAdQQCBcGajVSeC9CqW3LCugjPDnAkEb',
    // LimitAmount: {
    // currency: 'FOO',
    // issuer: 'rWZzUjo5xGiAoRBqzsndyzonXz47UV8u1',
    // value: '10000000000'
    // },
    // Flags: 131072,
    // Sequence: 21971483,
    // Fee: '12',
    // LastLedgerSequence: 21971503
    // } -
    +
    +
    +

    Example


    const trustSetTx: TrustSet = {
    TransactionType: 'TrustSet',
    Account: wallet2.getClassicAddress(),
    LimitAmount: {
    currency: 'FOO',
    issuer: wallet1.getClassicAddress(),
    value: '10000000000',
    },
    Flags: {
    tfSetNoRipple: true
    }
    }

    // Autofill the tx to see how flags actually look compared to the interface usage.
    const autofilledTx = await client.autofill(trustSetTx)
    console.log(autofilledTx)
    // {
    // TransactionType: 'TrustSet',
    // Account: 'r9dAdQQCBcGajVSeC9CqW3LCugjPDnAkEb',
    // LimitAmount: {
    // currency: 'FOO',
    // issuer: 'rWZzUjo5xGiAoRBqzsndyzonXz47UV8u1',
    // value: '10000000000'
    // },
    // Flags: 131072,
    // Sequence: 21971483,
    // Fee: '12',
    // LastLedgerSequence: 21971503
    // } +

    Hierarchy

      -
    • GlobalFlags +
    • GlobalFlags
      • TrustSetFlagsInterface
    +
  • Defined in packages/xrpl/src/models/transactions/trustSet.ts:75
  • @@ -43,55 +44,61 @@

    Properties

    -
    - -
    tfClearFreeze?: boolean
    +
    + +
    tfClearFreeze?: boolean

    Unfreeze the trust line.

    -
    +
    -
    - -
    tfClearNoRipple?: boolean
    +
  • Defined in packages/xrpl/src/models/transactions/trustSet.ts:91
  • +
    + +
    tfClearNoRipple?: boolean

    Disable the No Ripple flag, allowing rippling on this trust line.

    -
    +
    -
    - -
    tfSetFreeze?: boolean
    +
  • Defined in packages/xrpl/src/models/transactions/trustSet.ts:87
  • +
    + +
    tfSetFreeze?: boolean

    Freeze the trust line.

    -
    -
    - -
    tfSetNoRipple?: boolean
    +
  • Defined in packages/xrpl/src/models/transactions/trustSet.ts:89
  • +
    + +
    tfSetNoRipple?: boolean

    Enable the No Ripple flag, which blocks rippling between two trust lines of the same currency if this flag is enabled on both.

    -
    -
    - -
    tfSetfAuth?: boolean
    +
  • Defined in packages/xrpl/src/models/transactions/trustSet.ts:85
  • +
    + +
    tfSetfAuth?: boolean

    Authorize the other party to hold currency issued by this account. (No effect unless using the asfRequireAuth AccountSet flag.) Cannot be unset.

    -
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • tfClearFreeze
  • +
  • tfClearNoRipple
  • +
  • tfSetFreeze
  • +
  • tfSetNoRipple
  • +
  • tfSetfAuth
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/TxRequest.html b/docs/interfaces/TxRequest.html index 0bcb48d7d8..c914206e65 100644 --- a/docs/interfaces/TxRequest.html +++ b/docs/interfaces/TxRequest.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -TxRequest | xrpl
    +TxRequest | xrpl
    -
    +
    • xrpl
    • @@ -23,16 +23,17 @@

      Interface TxRequest

    The tx method retrieves information on a single transaction, by its -identifying hash. Expects a response in the form of a TxResponse.

    -
    +identifying hash. Expects a response in the form of a TxResponse.

    +
    +

    Hierarchy

    +
  • Defined in packages/xrpl/src/models/methods/tx.ts:12
  • @@ -40,78 +41,99 @@

    Properties

    -
    - -
    api_version?: number
    +
    + +
    api_version?: number

    The API version to use. If omitted, use version 1.

    -
    +
    -
    - -
    binary?: boolean
    +
  • Defined in packages/xrpl/src/models/methods/baseMethod.ts:16
  • +
    + +
    binary?: boolean

    If true, return transaction data and metadata as binary serialized to hexadecimal strings. If false, return transaction data and metadata as. JSON. The default is false.

    -
    -
    - -
    command: "tx"
    +
    + +
    command: "tx"
    +

    The name of the API method.

    +
    +
    -
    - -
    id?: string | number
    +
  • Defined in packages/xrpl/src/models/methods/tx.ts:13
  • +
    + +
    ctid?: string
    +

    The Concise Transaction ID to look up. Exactly one of transaction or ctid must be specified for a TxRequest.

    +
    +
    +
    + +
    id?: string | number

    A unique value to identify this request. The response to this request uses the same id field. This way, even if responses arrive out of order, you know which request prompted which response.

    -
    -
    - -
    max_ledger?: number
    +
  • Defined in packages/xrpl/src/models/methods/baseMethod.ts:12
  • +
    + +
    max_ledger?: number

    Use this with min_ledger to specify a range of up to 1000 ledger indexes, ending with this ledger (inclusive). If the server cannot find the transaction, it confirms whether it was able to search all the ledgers in the requested range.

    -
    -
    - -
    min_ledger?: number
    +
  • Defined in packages/xrpl/src/models/methods/tx.ts:41
  • +
    + +
    min_ledger?: number

    Use this with max_ledger to specify a range of up to 1000 ledger indexes, starting with this ledger (inclusive). If the server cannot find the transaction, it confirms whether it was able to search all the ledgers in this range.

    -
    -
    - -
    transaction: string
    +
    + +
    transaction?: string
    +

    The transaction hash to look up. Exactly one of transaction or ctid must be specified for a TxRequest.

    +
    +
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • api_version
  • +
  • binary
  • +
  • command
  • +
  • ctid
  • +
  • id
  • +
  • max_ledger
  • +
  • min_ledger
  • +
  • transaction
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/TxResponse.html b/docs/interfaces/TxResponse.html index 6411373cf7..c6b3d57d03 100644 --- a/docs/interfaces/TxResponse.html +++ b/docs/interfaces/TxResponse.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -TxResponse | xrpl
    +TxResponse | xrpl
    -
    +
    -

    Interface TxResponse

    +

    Interface TxResponse<T>

    -

    Response expected from a TxRequest.

    -
    +

    Response expected from a TxRequest.

    +
    +
    +
    +

    Type Parameters

    +

    Hierarchy

    +
  • Defined in packages/xrpl/src/models/methods/tx.ts:49
  • @@ -39,80 +45,117 @@

    Properties

    -
    - -
    api_version?: number
    +
    + +
    searched_all?: boolean

    If true, the server was able to search all of the specified ledger versions, and the transaction was in none of them. If false, the server did not have all of the specified ledger versions available, so it is not sure. If one of them might contain the transaction.

    -
    +
    -
    - -
    status?: string
    +
    + +
    status?: string
    -
    - -
    type: string
    +
    + +
    type: string
    -
    - -
    warning?: "load"
    +
    + +
    warning?: "load"
    -
    - -
    warnings?: Warning[]
    +
    + +
    warnings?: ResponseWarning[]
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • api_version
  • +
  • forwarded
  • +
  • id
  • +
  • result
  • +
  • searched_all
  • +
  • status
  • +
  • type
  • +
  • warning
  • +
  • warnings
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/UNLModify.html b/docs/interfaces/UNLModify.html new file mode 100644 index 0000000000..8e4a2e40ed --- /dev/null +++ b/docs/interfaces/UNLModify.html @@ -0,0 +1,575 @@ +UNLModify | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface UNLModify

    +
    +

    Mark a change to the Negative UNL.

    +
    +
    +
    +

    Hierarchy

    +
    +
    +
    +
    + +
    +
    +

    Properties

    +
    + +
    Account: string
    +

    The unique address of the transaction sender.

    +
    +
    +
    + +
    AccountTxnID?: string
    +

    Hash value identifying another transaction. If provided, this transaction +is only valid if the sending account's previously-sent transaction matches +the provided hash.

    +
    +
    +
    + +
    Fee?: string
    +

    Integer amount of XRP, in drops, to be destroyed as a cost for +distributing this transaction to the network. Some transaction types have +different minimum requirements.

    +
    +
    +
    + +
    Flags?: number | GlobalFlags
    +

    Set of bit-flags for this transaction.

    +
    +
    +
    + +
    LastLedgerSequence?: number
    +

    Highest ledger index this transaction can appear in. Specifying this field +places a strict upper limit on how long the transaction can wait to be +validated or rejected.

    +
    +
    +
    + +
    LedgerSequence: number
    +

    The ledger index where this pseudo-transaction appears. +This distinguishes the pseudo-transaction from other occurrences of the same change.

    +
    +
    +
    + +
    Memos?: Memo[]
    +

    Additional arbitrary information used to identify this transaction.

    +
    +
    +
    + +
    NetworkID?: number
    +

    The network id of the transaction.

    +
    +
    +
    + +
    Sequence?: number
    +

    The sequence number of the account sending the transaction. A transaction +is only valid if the Sequence number is exactly 1 greater than the previous +transaction from the same account. The special case 0 means the transaction +is using a Ticket instead.

    +
    +
    +
    + +
    Signers?: Signer[]
    +

    Array of objects that represent a multi-signature which authorizes this +transaction.

    +
    +
    +
    + +
    SigningPubKey?: string
    +

    Hex representation of the public key that corresponds to the private key +used to sign this transaction. If an empty string, indicates a +multi-signature is present in the Signers field instead.

    +
    +
    +
    + +
    SourceTag?: number
    +

    Arbitrary integer used to identify the reason for this payment, or a sender +on whose behalf this transaction is made. Conventionally, a refund should +specify the initial payment's SourceTag as the refund payment's +DestinationTag.

    +
    +
    +
    + +
    TicketSequence?: number
    +

    The sequence number of the ticket to use in place of a Sequence number. If +this is provided, Sequence must be 0. Cannot be used with AccountTxnID.

    +
    +
    +
    + +
    TransactionType: "UNLModify"
    +

    The type of transaction. Valid types include: Payment, OfferCreate, +TrustSet, and many others.

    +
    +
    +
    + +
    TxnSignature?: string
    +

    The signature that verifies this transaction as originating from the +account it says it is from.

    +
    +
    +
    + +
    UNLModifyDisabling: 0 | 1
    +

    If 0, this change represents removing a validator from the Negative UNL. +If 1, this change represents adding a validator to the Negative UNL.

    +
    +
    +
    + +
    UNLModifyValidator: string
    +

    The validator to add or remove, as identified by its master public key.

    +
    +
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/UnsubscribeBook.html b/docs/interfaces/UnsubscribeBook.html new file mode 100644 index 0000000000..8222551580 --- /dev/null +++ b/docs/interfaces/UnsubscribeBook.html @@ -0,0 +1,386 @@ +UnsubscribeBook | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface UnsubscribeBook

    +
    +

    Hierarchy

    +
      +
    • UnsubscribeBook
    +
    +
    +
    + +
    +
    +

    Properties

    +
    +
    +

    Properties

    +
    + +
    both?: boolean
    +
    + +
    taker_gets: Currency
    +
    + +
    taker_pays: Currency
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/UnsubscribeRequest.html b/docs/interfaces/UnsubscribeRequest.html index bbb0bce24d..b600033f97 100644 --- a/docs/interfaces/UnsubscribeRequest.html +++ b/docs/interfaces/UnsubscribeRequest.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -UnsubscribeRequest | xrpl
    +UnsubscribeRequest | xrpl
    -
    +
    • xrpl
    • @@ -24,16 +24,17 @@

      Interface UnsubscribeRequest

    The unsubscribe command tells the server to stop sending messages for a particular subscription or set of subscriptions. Expects a response in the -form of an UnsubscribeResponse.

    -
    +form of an UnsubscribeResponse.

    +
    +

    Hierarchy

    +
  • Defined in packages/xrpl/src/models/methods/unsubscribe.ts:18
  • @@ -41,76 +42,86 @@

    Properties

    -
    - -
    accounts?: string[]
    +
    + +
    accounts?: string[]

    Array of unique account addresses to stop receiving updates for, in the. XRP Ledger's base58 format.

    -
    +
    -
    - -
    accounts_proposed?: string[]
    +
  • Defined in packages/xrpl/src/models/methods/unsubscribe.ts:29
  • +
    + +
    accounts_proposed?: string[]

    Like accounts, but for accounts_proposed subscriptions that included not-yet-validated transactions.

    -
    -
    - -
    api_version?: number
    +
  • Defined in packages/xrpl/src/models/methods/unsubscribe.ts:34
  • +
    + +
    api_version?: number

    The API version to use. If omitted, use version 1.

    -
    -
    - -
    books?: Book[]
    +
  • Defined in packages/xrpl/src/models/methods/baseMethod.ts:16
  • +
    + +
    books?: UnsubscribeBook[]

    Array of objects defining order books to unsubscribe from, as explained below.

    -
    -
    - -
    command: "unsubscribe"
    +
    + +
    command: "unsubscribe"
    +

    The name of the API method.

    +
    +
    -
    - -
    id?: string | number
    +
  • Defined in packages/xrpl/src/models/methods/unsubscribe.ts:19
  • +
    + +
    id?: string | number

    A unique value to identify this request. The response to this request uses the same id field. This way, even if responses arrive out of order, you know which request prompted which response.

    -
    -
    - -
    streams?: StreamType[]
    +
  • Defined in packages/xrpl/src/models/methods/baseMethod.ts:12
  • +
    + +
    streams?: StreamType[]

    Array of string names of generic streams to unsubscribe from, including. Ledger, server, transactions, and transactions_proposed.

    -
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • accounts
  • +
  • accounts_proposed
  • +
  • api_version
  • +
  • books
  • +
  • command
  • +
  • id
  • +
  • streams
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/UnsubscribeResponse.html b/docs/interfaces/UnsubscribeResponse.html index 87c9cf75ab..1f3cd54c73 100644 --- a/docs/interfaces/UnsubscribeResponse.html +++ b/docs/interfaces/UnsubscribeResponse.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -UnsubscribeResponse | xrpl
    +UnsubscribeResponse | xrpl
    -
    +

    Interface UnsubscribeResponse

    -

    Response expected from a UnsubscribeRequest.

    -
    +

    Response expected from a UnsubscribeRequest.

    +
    +

    Hierarchy

    +
  • Defined in packages/xrpl/src/models/methods/unsubscribe.ts:47
  • @@ -39,69 +40,70 @@

    Properties

    -
    - -
    api_version?: number
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • api_version
  • +
  • forwarded
  • +
  • id
  • +
  • result
  • +
  • status
  • +
  • type
  • +
  • warning
  • +
  • warnings
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/ValidationStream.html b/docs/interfaces/ValidationStream.html index 19cab40418..6e10fc26ac 100644 --- a/docs/interfaces/ValidationStream.html +++ b/docs/interfaces/ValidationStream.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -ValidationStream | xrpl
    +ValidationStream | xrpl
    -
    +
    • xrpl
    • @@ -25,15 +25,16 @@

      Interface ValidationStream

    The validations stream sends messages whenever it receives validation messages, also called validation votes, regardless of whether or not the validation message is from a trusted validator.

    -
    +
    +

    Hierarchy

      -
    • BaseStream +
    • BaseStream
      • ValidationStream
    +
  • Defined in packages/xrpl/src/models/methods/subscribe.ts:183
  • @@ -41,160 +42,176 @@

    Properties

    -
    - -
    amendments?: string[]
    +
    + +
    amendments?: string[]

    The value validationReceived indicates this is from the validations Stream.

    -
    +
    -
    - -
    base_fee?: number
    +
  • Defined in packages/xrpl/src/models/methods/subscribe.ts:189
  • +
    + +
    base_fee?: number

    The amendments this server wants to be added to the protocol.

    -
    -
    - -
    cookie?: string
    +
  • Defined in packages/xrpl/src/models/methods/subscribe.ts:191
  • +
    + +
    cookie?: string

    An arbitrary value chosen by the server at startup.

    If the same validation key pair signs validations with different cookies concurrently, that usually indicates that multiple servers are incorrectly configured to use the same validation key pair.

    -
    -
    - -
    data?: string
    +
  • Defined in packages/xrpl/src/models/methods/subscribe.ts:199
  • +
    + +
    data?: string

    The contents of the validation message in its canonical binary form

    -
    -
    - -
    flags: number
    +
  • Defined in packages/xrpl/src/models/methods/subscribe.ts:203
  • +
    + +
    flags: number

    The unscaled transaction cost (reference_fee value) this server wants to set by Fee voting.

    -
    -
    - -
    full: boolean
    +
  • Defined in packages/xrpl/src/models/methods/subscribe.ts:208
  • +
    + +
    full: boolean

    Bit-mask of flags added to this validation message. The flag 0x80000000 indicates that the validation signature is fully-canonical. The flag 0x00000001 indicates that this is a full validation; otherwise it's a partial validation. Partial validations are not meant to vote for any particular ledger. A partial validation indicates that the validator is still online but not keeping up with consensus.

    -
    -
    - -
    ledger_hash: string
    +
  • Defined in packages/xrpl/src/models/methods/subscribe.ts:217
  • +
    + +
    ledger_hash: string

    If true, this is a full validation. Otherwise, this is a partial validation. Partial validations are not meant to vote for any particular ledger. A partial validation indicates that the validator is still online but not keeping up with consensus.

    -
    -
    - -
    ledger_index: string
    +
  • Defined in packages/xrpl/src/models/methods/subscribe.ts:224
  • +
    + +
    ledger_index: string

    The ledger index of the proposed ledger.

    -
    -
    - -
    load_fee?: number
    +
  • Defined in packages/xrpl/src/models/methods/subscribe.ts:226
  • +
    + +
    load_fee?: number

    The local load-scaled transaction cost this validator is currently enforcing, in fee units.

    -
    -
    - -
    master_key?: string
    +
  • Defined in packages/xrpl/src/models/methods/subscribe.ts:231
  • +
    + +
    master_key?: string

    The validator's master public key, if the validator is using a validator token, in the XRP Ledger's base58 format.

    -
    -
    - -
    reserve_base?: number
    +
  • Defined in packages/xrpl/src/models/methods/subscribe.ts:236
  • +
    + +
    reserve_base?: number

    The minimum reserve requirement (account_reserve value) this validator wants to set by fee voting.

    -
    -
    - -
    reserve_inc?: number
    +
  • Defined in packages/xrpl/src/models/methods/subscribe.ts:241
  • +
    + +
    reserve_inc?: number

    The increment in the reserve requirement (owner_reserve value) this validator wants to set by fee voting.

    -
    -
    - -
    signature: string
    +
  • Defined in packages/xrpl/src/models/methods/subscribe.ts:246
  • +
    + +
    signature: string

    The signature that the validator used to sign its vote for this ledger.

    -
    -
    - -
    signing_time: number
    +
  • Defined in packages/xrpl/src/models/methods/subscribe.ts:248
  • +
    + +
    signing_time: number

    When this validation vote was signed, in seconds since the Ripple Epoch.

    -
    -
    - -
    type: "validationReceived"
    +
    + +
    type: "validationReceived"
    -
    - -
    validation_public_key: string
    +
  • Defined in packages/xrpl/src/models/methods/subscribe.ts:184
  • +
    + +
    validation_public_key: string

    The public key from the key-pair that the validator used to sign the message, in the XRP Ledger's base58 format. This identifies the validator sending the message and can also be used to verify the signature. If the validator is using a token, this is an ephemeral public key.

    -
    - +
    +
    +
    +

    On This Page

    - -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +
  • amendments
  • +
  • base_fee
  • +
  • cookie
  • +
  • data
  • +
  • flags
  • +
  • full
  • +
  • ledger_hash
  • +
  • ledger_index
  • +
  • load_fee
  • +
  • master_key
  • +
  • reserve_base
  • +
  • reserve_inc
  • +
  • signature
  • +
  • signing_time
  • +
  • type
  • +
  • validation_public_key
  • + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/XChainAccountCreateCommit.html b/docs/interfaces/XChainAccountCreateCommit.html new file mode 100644 index 0000000000..1a5ecdc8ff --- /dev/null +++ b/docs/interfaces/XChainAccountCreateCommit.html @@ -0,0 +1,591 @@ +XChainAccountCreateCommit | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface XChainAccountCreateCommit

    +
    +

    The XChainAccountCreateCommit transaction creates a new account on one of the +chains a bridge connects, which serves as the bridge entrance for that chain.

    +

    WARNING: This transaction should only be executed if the witness attestations +will be reliably delivered to the destination chain. If the signatures aren't +delivered, then account creation will be blocked until attestations are received. +This can be used maliciously; to disable this transaction on XRP-XRP bridges, +the bridge's MinAccountCreateAmount shouldn't be present.

    +
    +
    +
    +

    Hierarchy

    +
    +
    +
    +
    + +
    +
    +

    Properties

    +
    + +
    Account: string
    +

    The unique address of the transaction sender.

    +
    +
    +
    + +
    AccountTxnID?: string
    +

    Hash value identifying another transaction. If provided, this transaction +is only valid if the sending account's previously-sent transaction matches +the provided hash.

    +
    +
    +
    + +
    Amount: Amount
    +

    The amount, in XRP, to use for account creation. This must be greater than or +equal to the MinAccountCreateAmount specified in the Bridge ledger object.

    +
    +
    +
    + +
    Destination: string
    +

    The destination account on the destination chain.

    +
    +
    +
    + +
    Fee?: string
    +

    Integer amount of XRP, in drops, to be destroyed as a cost for +distributing this transaction to the network. Some transaction types have +different minimum requirements.

    +
    +
    +
    + +
    Flags?: number | GlobalFlags
    +

    Set of bit-flags for this transaction.

    +
    +
    +
    + +
    LastLedgerSequence?: number
    +

    Highest ledger index this transaction can appear in. Specifying this field +places a strict upper limit on how long the transaction can wait to be +validated or rejected.

    +
    +
    +
    + +
    Memos?: Memo[]
    +

    Additional arbitrary information used to identify this transaction.

    +
    +
    +
    + +
    NetworkID?: number
    +

    The network id of the transaction.

    +
    +
    +
    + +
    Sequence?: number
    +

    The sequence number of the account sending the transaction. A transaction +is only valid if the Sequence number is exactly 1 greater than the previous +transaction from the same account. The special case 0 means the transaction +is using a Ticket instead.

    +
    +
    +
    + +
    SignatureReward: Amount
    +

    The amount, in XRP, to be used to reward the witness servers for providing +signatures. This must match the amount on the Bridge ledger object.

    +
    +
    +
    + +
    Signers?: Signer[]
    +

    Array of objects that represent a multi-signature which authorizes this +transaction.

    +
    +
    +
    + +
    SigningPubKey?: string
    +

    Hex representation of the public key that corresponds to the private key +used to sign this transaction. If an empty string, indicates a +multi-signature is present in the Signers field instead.

    +
    +
    +
    + +
    SourceTag?: number
    +

    Arbitrary integer used to identify the reason for this payment, or a sender +on whose behalf this transaction is made. Conventionally, a refund should +specify the initial payment's SourceTag as the refund payment's +DestinationTag.

    +
    +
    +
    + +
    TicketSequence?: number
    +

    The sequence number of the ticket to use in place of a Sequence number. If +this is provided, Sequence must be 0. Cannot be used with AccountTxnID.

    +
    +
    +
    + +
    TransactionType: "XChainAccountCreateCommit"
    +

    The type of transaction. Valid types include: Payment, OfferCreate, +TrustSet, and many others.

    +
    +
    +
    + +
    TxnSignature?: string
    +

    The signature that verifies this transaction as originating from the +account it says it is from.

    +
    +
    +
    + +
    XChainBridge: XChainBridge
    +

    The bridge to create accounts for.

    +
    +
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/XChainAddAccountCreateAttestation.html b/docs/interfaces/XChainAddAccountCreateAttestation.html new file mode 100644 index 0000000000..e36055fe54 --- /dev/null +++ b/docs/interfaces/XChainAddAccountCreateAttestation.html @@ -0,0 +1,657 @@ +XChainAddAccountCreateAttestation | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface XChainAddAccountCreateAttestation

    +
    +

    The XChainAddAccountCreateAttestation transaction provides an attestation +from a witness server that a XChainAccountCreateCommit transaction +occurred on the other chain.

    +
    +
    +
    +

    Hierarchy

    +
    +
    +
    +
    + +
    +
    +

    Properties

    +
    + +
    Account: string
    +

    The unique address of the transaction sender.

    +
    +
    +
    + +
    AccountTxnID?: string
    +

    Hash value identifying another transaction. If provided, this transaction +is only valid if the sending account's previously-sent transaction matches +the provided hash.

    +
    +
    +
    + +
    Amount: Amount
    +

    The amount committed by the XChainAccountCreateCommit transaction +on the source chain.

    +
    +
    +
    + +
    AttestationRewardAccount: string
    +

    The account that should receive this signer's share of the SignatureReward.

    +
    +
    +
    + +
    AttestationSignerAccount: string
    +

    The account on the door account's signer list that is signing the transaction.

    +
    +
    +
    + +
    Destination: string
    +

    The destination account for the funds on the destination chain.

    +
    +
    +
    + +
    Fee?: string
    +

    Integer amount of XRP, in drops, to be destroyed as a cost for +distributing this transaction to the network. Some transaction types have +different minimum requirements.

    +
    +
    +
    + +
    Flags?: number | GlobalFlags
    +

    Set of bit-flags for this transaction.

    +
    +
    +
    + +
    LastLedgerSequence?: number
    +

    Highest ledger index this transaction can appear in. Specifying this field +places a strict upper limit on how long the transaction can wait to be +validated or rejected.

    +
    +
    +
    + +
    Memos?: Memo[]
    +

    Additional arbitrary information used to identify this transaction.

    +
    +
    +
    + +
    NetworkID?: number
    +

    The network id of the transaction.

    +
    +
    +
    + +
    OtherChainSource: string
    +

    The account on the source chain that submitted the XChainAccountCreateCommit +transaction that triggered the event associated with the attestation.

    +
    +
    +
    + +
    PublicKey: string
    +

    The public key used to verify the signature.

    +
    +
    +
    + +
    Sequence?: number
    +

    The sequence number of the account sending the transaction. A transaction +is only valid if the Sequence number is exactly 1 greater than the previous +transaction from the same account. The special case 0 means the transaction +is using a Ticket instead.

    +
    +
    +
    + +
    Signature: string
    +

    The signature attesting to the event on the other chain.

    +
    +
    +
    + +
    SignatureReward: Amount
    +

    The signature reward paid in the XChainAccountCreateCommit transaction.

    +
    +
    +
    + +
    Signers?: Signer[]
    +

    Array of objects that represent a multi-signature which authorizes this +transaction.

    +
    +
    +
    + +
    SigningPubKey?: string
    +

    Hex representation of the public key that corresponds to the private key +used to sign this transaction. If an empty string, indicates a +multi-signature is present in the Signers field instead.

    +
    +
    +
    + +
    SourceTag?: number
    +

    Arbitrary integer used to identify the reason for this payment, or a sender +on whose behalf this transaction is made. Conventionally, a refund should +specify the initial payment's SourceTag as the refund payment's +DestinationTag.

    +
    +
    +
    + +
    TicketSequence?: number
    +

    The sequence number of the ticket to use in place of a Sequence number. If +this is provided, Sequence must be 0. Cannot be used with AccountTxnID.

    +
    +
    +
    + +
    TransactionType: "XChainAddAccountCreateAttestation"
    +

    The type of transaction. Valid types include: Payment, OfferCreate, +TrustSet, and many others.

    +
    +
    +
    + +
    TxnSignature?: string
    +

    The signature that verifies this transaction as originating from the +account it says it is from.

    +
    +
    +
    + +
    WasLockingChainSend: 0 | 1
    +

    A boolean representing the chain where the event occurred.

    +
    +
    +
    + +
    XChainAccountCreateCount: string | number
    +

    The counter that represents the order that the claims must be processed in.

    +
    +
    +
    + +
    XChainBridge: XChainBridge
    +

    The bridge associated with the attestation.

    +
    +
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/XChainAddClaimAttestation.html b/docs/interfaces/XChainAddClaimAttestation.html new file mode 100644 index 0000000000..67502526b9 --- /dev/null +++ b/docs/interfaces/XChainAddClaimAttestation.html @@ -0,0 +1,647 @@ +XChainAddClaimAttestation | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface XChainAddClaimAttestation

    +
    +

    The XChainAddClaimAttestation transaction provides proof from a witness server, +attesting to an XChainCommit transaction.

    +
    +
    +
    +

    Hierarchy

    +
    +
    +
    +
    + +
    +
    +

    Properties

    +
    + +
    Account: string
    +

    The unique address of the transaction sender.

    +
    +
    +
    + +
    AccountTxnID?: string
    +

    Hash value identifying another transaction. If provided, this transaction +is only valid if the sending account's previously-sent transaction matches +the provided hash.

    +
    +
    +
    + +
    Amount: Amount
    +

    The amount committed by the XChainCommit transaction on the source chain.

    +
    +
    +
    + +
    AttestationRewardAccount: string
    +

    The account that should receive this signer's share of the SignatureReward.

    +
    +
    +
    + +
    AttestationSignerAccount: string
    +

    The account on the door account's signer list that is signing the transaction.

    +
    +
    +
    + +
    Destination?: string
    +

    The destination account for the funds on the destination chain (taken from +the XChainCommit transaction).

    +
    +
    +
    + +
    Fee?: string
    +

    Integer amount of XRP, in drops, to be destroyed as a cost for +distributing this transaction to the network. Some transaction types have +different minimum requirements.

    +
    +
    +
    + +
    Flags?: number | GlobalFlags
    +

    Set of bit-flags for this transaction.

    +
    +
    +
    + +
    LastLedgerSequence?: number
    +

    Highest ledger index this transaction can appear in. Specifying this field +places a strict upper limit on how long the transaction can wait to be +validated or rejected.

    +
    +
    +
    + +
    Memos?: Memo[]
    +

    Additional arbitrary information used to identify this transaction.

    +
    +
    +
    + +
    NetworkID?: number
    +

    The network id of the transaction.

    +
    +
    +
    + +
    OtherChainSource: string
    +

    The account on the source chain that submitted the XChainCommit +transaction that triggered the event associated with the attestation.

    +
    +
    +
    + +
    PublicKey: string
    +

    The public key used to verify the attestation signature.

    +
    +
    +
    + +
    Sequence?: number
    +

    The sequence number of the account sending the transaction. A transaction +is only valid if the Sequence number is exactly 1 greater than the previous +transaction from the same account. The special case 0 means the transaction +is using a Ticket instead.

    +
    +
    +
    + +
    Signature: string
    +

    The signature attesting to the event on the other chain.

    +
    +
    +
    + +
    Signers?: Signer[]
    +

    Array of objects that represent a multi-signature which authorizes this +transaction.

    +
    +
    +
    + +
    SigningPubKey?: string
    +

    Hex representation of the public key that corresponds to the private key +used to sign this transaction. If an empty string, indicates a +multi-signature is present in the Signers field instead.

    +
    +
    +
    + +
    SourceTag?: number
    +

    Arbitrary integer used to identify the reason for this payment, or a sender +on whose behalf this transaction is made. Conventionally, a refund should +specify the initial payment's SourceTag as the refund payment's +DestinationTag.

    +
    +
    +
    + +
    TicketSequence?: number
    +

    The sequence number of the ticket to use in place of a Sequence number. If +this is provided, Sequence must be 0. Cannot be used with AccountTxnID.

    +
    +
    +
    + +
    TransactionType: "XChainAddClaimAttestation"
    +

    The type of transaction. Valid types include: Payment, OfferCreate, +TrustSet, and many others.

    +
    +
    +
    + +
    TxnSignature?: string
    +

    The signature that verifies this transaction as originating from the +account it says it is from.

    +
    +
    +
    + +
    WasLockingChainSend: 0 | 1
    +

    A boolean representing the chain where the event occurred.

    +
    +
    +
    + +
    XChainBridge: XChainBridge
    +

    The bridge to use to transfer funds.

    +
    +
    +
    + +
    XChainClaimID: string | number
    +

    The XChainClaimID associated with the transfer, which was included in the +XChainCommit transaction.

    +
    +
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/XChainBridge.html b/docs/interfaces/XChainBridge.html new file mode 100644 index 0000000000..210ea3444b --- /dev/null +++ b/docs/interfaces/XChainBridge.html @@ -0,0 +1,393 @@ +XChainBridge | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface XChainBridge

    +
    +

    Hierarchy

    +
      +
    • XChainBridge
    +
    +
    +
    + +
    +
    +

    Properties

    +
    + +
    IssuingChainDoor: string
    +
    + +
    IssuingChainIssue: Currency
    +
    + +
    LockingChainDoor: string
    +
    + +
    LockingChainIssue: Currency
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/XChainClaim.html b/docs/interfaces/XChainClaim.html new file mode 100644 index 0000000000..0e2d535e29 --- /dev/null +++ b/docs/interfaces/XChainClaim.html @@ -0,0 +1,600 @@ +XChainClaim | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface XChainClaim

    +
    +

    The XChainClaim transaction completes a cross-chain transfer of value. It +allows a user to claim the value on the destination chain - the equivalent +of the value locked on the source chain.

    +
    +
    +
    +

    Hierarchy

    +
    +
    +
    +
    + +
    +
    +

    Properties

    +
    + +
    Account: string
    +

    The unique address of the transaction sender.

    +
    +
    +
    + +
    AccountTxnID?: string
    +

    Hash value identifying another transaction. If provided, this transaction +is only valid if the sending account's previously-sent transaction matches +the provided hash.

    +
    +
    +
    + +
    Amount: Amount
    +

    The amount to claim on the destination chain. This must match the amount +attested to on the attestations associated with this XChainClaimID.

    +
    +
    +
    + +
    Destination: string
    +

    The destination account on the destination chain. It must exist or the +transaction will fail. However, if the transaction fails in this case, the +sequence number and collected signatures won't be destroyed, and the +transaction can be rerun with a different destination.

    +
    +
    +
    + +
    DestinationTag?: number
    +

    An integer destination tag.

    +
    +
    +
    + +
    Fee?: string
    +

    Integer amount of XRP, in drops, to be destroyed as a cost for +distributing this transaction to the network. Some transaction types have +different minimum requirements.

    +
    +
    +
    + +
    Flags?: number | GlobalFlags
    +

    Set of bit-flags for this transaction.

    +
    +
    +
    + +
    LastLedgerSequence?: number
    +

    Highest ledger index this transaction can appear in. Specifying this field +places a strict upper limit on how long the transaction can wait to be +validated or rejected.

    +
    +
    +
    + +
    Memos?: Memo[]
    +

    Additional arbitrary information used to identify this transaction.

    +
    +
    +
    + +
    NetworkID?: number
    +

    The network id of the transaction.

    +
    +
    +
    + +
    Sequence?: number
    +

    The sequence number of the account sending the transaction. A transaction +is only valid if the Sequence number is exactly 1 greater than the previous +transaction from the same account. The special case 0 means the transaction +is using a Ticket instead.

    +
    +
    +
    + +
    Signers?: Signer[]
    +

    Array of objects that represent a multi-signature which authorizes this +transaction.

    +
    +
    +
    + +
    SigningPubKey?: string
    +

    Hex representation of the public key that corresponds to the private key +used to sign this transaction. If an empty string, indicates a +multi-signature is present in the Signers field instead.

    +
    +
    +
    + +
    SourceTag?: number
    +

    Arbitrary integer used to identify the reason for this payment, or a sender +on whose behalf this transaction is made. Conventionally, a refund should +specify the initial payment's SourceTag as the refund payment's +DestinationTag.

    +
    +
    +
    + +
    TicketSequence?: number
    +

    The sequence number of the ticket to use in place of a Sequence number. If +this is provided, Sequence must be 0. Cannot be used with AccountTxnID.

    +
    +
    +
    + +
    TransactionType: "XChainClaim"
    +

    The type of transaction. Valid types include: Payment, OfferCreate, +TrustSet, and many others.

    +
    +
    +
    + +
    TxnSignature?: string
    +

    The signature that verifies this transaction as originating from the +account it says it is from.

    +
    +
    +
    + +
    XChainBridge: XChainBridge
    +

    The bridge to use for the transfer.

    +
    +
    +
    + +
    XChainClaimID: string | number
    +

    The unique integer ID for the cross-chain transfer that was referenced in the +corresponding XChainCommit transaction.

    +
    +
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/XChainCommit.html b/docs/interfaces/XChainCommit.html new file mode 100644 index 0000000000..9ea16a70cf --- /dev/null +++ b/docs/interfaces/XChainCommit.html @@ -0,0 +1,594 @@ +XChainCommit | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface XChainCommit

    +
    +

    The XChainCommit is the second step in a cross-chain transfer. It puts assets +into trust on the locking chain so that they can be wrapped on the issuing +chain, or burns wrapped assets on the issuing chain so that they can be returned +on the locking chain.

    +
    +
    +
    +

    Hierarchy

    +
    +
    +
    +
    + +
    +
    +

    Properties

    +
    + +
    Account: string
    +

    The unique address of the transaction sender.

    +
    +
    +
    + +
    AccountTxnID?: string
    +

    Hash value identifying another transaction. If provided, this transaction +is only valid if the sending account's previously-sent transaction matches +the provided hash.

    +
    +
    +
    + +
    Amount: Amount
    +

    The asset to commit, and the quantity. This must match the door account's +LockingChainIssue (if on the locking chain) or the door account's +IssuingChainIssue (if on the issuing chain).

    +
    +
    +
    + +
    Fee?: string
    +

    Integer amount of XRP, in drops, to be destroyed as a cost for +distributing this transaction to the network. Some transaction types have +different minimum requirements.

    +
    +
    +
    + +
    Flags?: number | GlobalFlags
    +

    Set of bit-flags for this transaction.

    +
    +
    +
    + +
    LastLedgerSequence?: number
    +

    Highest ledger index this transaction can appear in. Specifying this field +places a strict upper limit on how long the transaction can wait to be +validated or rejected.

    +
    +
    +
    + +
    Memos?: Memo[]
    +

    Additional arbitrary information used to identify this transaction.

    +
    +
    +
    + +
    NetworkID?: number
    +

    The network id of the transaction.

    +
    +
    +
    + +
    OtherChainDestination?: string
    +

    The destination account on the destination chain. If this is not specified, +the account that submitted the XChainCreateClaimID transaction on the +destination chain will need to submit a XChainClaim transaction to +claim the funds.

    +
    +
    +
    + +
    Sequence?: number
    +

    The sequence number of the account sending the transaction. A transaction +is only valid if the Sequence number is exactly 1 greater than the previous +transaction from the same account. The special case 0 means the transaction +is using a Ticket instead.

    +
    +
    +
    + +
    Signers?: Signer[]
    +

    Array of objects that represent a multi-signature which authorizes this +transaction.

    +
    +
    +
    + +
    SigningPubKey?: string
    +

    Hex representation of the public key that corresponds to the private key +used to sign this transaction. If an empty string, indicates a +multi-signature is present in the Signers field instead.

    +
    +
    +
    + +
    SourceTag?: number
    +

    Arbitrary integer used to identify the reason for this payment, or a sender +on whose behalf this transaction is made. Conventionally, a refund should +specify the initial payment's SourceTag as the refund payment's +DestinationTag.

    +
    +
    +
    + +
    TicketSequence?: number
    +

    The sequence number of the ticket to use in place of a Sequence number. If +this is provided, Sequence must be 0. Cannot be used with AccountTxnID.

    +
    +
    +
    + +
    TransactionType: "XChainCommit"
    +

    The type of transaction. Valid types include: Payment, OfferCreate, +TrustSet, and many others.

    +
    +
    +
    + +
    TxnSignature?: string
    +

    The signature that verifies this transaction as originating from the +account it says it is from.

    +
    +
    +
    + +
    XChainBridge: XChainBridge
    +

    The bridge to use to transfer funds.

    +
    +
    +
    + +
    XChainClaimID: string | number
    +

    The unique integer ID for a cross-chain transfer. This must be acquired on +the destination chain (via a XChainCreateClaimID transaction) and +checked from a validated ledger before submitting this transaction. If an +incorrect sequence number is specified, the funds will be lost.

    +
    +
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/XChainCreateBridge.html b/docs/interfaces/XChainCreateBridge.html new file mode 100644 index 0000000000..77aeb5bd18 --- /dev/null +++ b/docs/interfaces/XChainCreateBridge.html @@ -0,0 +1,579 @@ +XChainCreateBridge | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface XChainCreateBridge

    +
    +

    The XChainCreateBridge transaction creates a new Bridge ledger object +and defines a new cross-chain bridge entrance on the chain that the transaction +is submitted on. It includes information about door accounts and assets for the +bridge.

    +
    +
    +
    +

    Hierarchy

    +
    +
    +
    +
    + +
    +
    +

    Properties

    +
    + +
    Account: string
    +

    The unique address of the transaction sender.

    +
    +
    +
    + +
    AccountTxnID?: string
    +

    Hash value identifying another transaction. If provided, this transaction +is only valid if the sending account's previously-sent transaction matches +the provided hash.

    +
    +
    +
    + +
    Fee?: string
    +

    Integer amount of XRP, in drops, to be destroyed as a cost for +distributing this transaction to the network. Some transaction types have +different minimum requirements.

    +
    +
    +
    + +
    Flags?: number | GlobalFlags
    +

    Set of bit-flags for this transaction.

    +
    +
    +
    + +
    LastLedgerSequence?: number
    +

    Highest ledger index this transaction can appear in. Specifying this field +places a strict upper limit on how long the transaction can wait to be +validated or rejected.

    +
    +
    +
    + +
    Memos?: Memo[]
    +

    Additional arbitrary information used to identify this transaction.

    +
    +
    +
    + +
    MinAccountCreateAmount?: Amount
    +

    The minimum amount, in XRP, required for a XChainAccountCreateCommit +transaction. If this isn't present, the XChainAccountCreateCommit +transaction will fail. This field can only be present on XRP-XRP bridges.

    +
    +
    +
    + +
    NetworkID?: number
    +

    The network id of the transaction.

    +
    +
    +
    + +
    Sequence?: number
    +

    The sequence number of the account sending the transaction. A transaction +is only valid if the Sequence number is exactly 1 greater than the previous +transaction from the same account. The special case 0 means the transaction +is using a Ticket instead.

    +
    +
    +
    + +
    SignatureReward: Amount
    +

    The total amount to pay the witness servers for their signatures. This amount +will be split among the signers.

    +
    +
    +
    + +
    Signers?: Signer[]
    +

    Array of objects that represent a multi-signature which authorizes this +transaction.

    +
    +
    +
    + +
    SigningPubKey?: string
    +

    Hex representation of the public key that corresponds to the private key +used to sign this transaction. If an empty string, indicates a +multi-signature is present in the Signers field instead.

    +
    +
    +
    + +
    SourceTag?: number
    +

    Arbitrary integer used to identify the reason for this payment, or a sender +on whose behalf this transaction is made. Conventionally, a refund should +specify the initial payment's SourceTag as the refund payment's +DestinationTag.

    +
    +
    +
    + +
    TicketSequence?: number
    +

    The sequence number of the ticket to use in place of a Sequence number. If +this is provided, Sequence must be 0. Cannot be used with AccountTxnID.

    +
    +
    +
    + +
    TransactionType: "XChainCreateBridge"
    +

    The type of transaction. Valid types include: Payment, OfferCreate, +TrustSet, and many others.

    +
    +
    +
    + +
    TxnSignature?: string
    +

    The signature that verifies this transaction as originating from the +account it says it is from.

    +
    +
    +
    + +
    XChainBridge: XChainBridge
    +

    The bridge (door accounts and assets) to create.

    +
    +
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/XChainCreateClaimID.html b/docs/interfaces/XChainCreateClaimID.html new file mode 100644 index 0000000000..e55a111fbc --- /dev/null +++ b/docs/interfaces/XChainCreateClaimID.html @@ -0,0 +1,576 @@ +XChainCreateClaimID | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface XChainCreateClaimID

    +
    +

    The XChainCreateClaimID transaction creates a new cross-chain claim ID that is +used for a cross-chain transfer. A cross-chain claim ID represents one +cross-chain transfer of value.

    +
    +
    +
    +

    Hierarchy

    +
    +
    +
    +
    + +
    +
    +

    Properties

    +
    + +
    Account: string
    +

    The unique address of the transaction sender.

    +
    +
    +
    + +
    AccountTxnID?: string
    +

    Hash value identifying another transaction. If provided, this transaction +is only valid if the sending account's previously-sent transaction matches +the provided hash.

    +
    +
    +
    + +
    Fee?: string
    +

    Integer amount of XRP, in drops, to be destroyed as a cost for +distributing this transaction to the network. Some transaction types have +different minimum requirements.

    +
    +
    +
    + +
    Flags?: number | GlobalFlags
    +

    Set of bit-flags for this transaction.

    +
    +
    +
    + +
    LastLedgerSequence?: number
    +

    Highest ledger index this transaction can appear in. Specifying this field +places a strict upper limit on how long the transaction can wait to be +validated or rejected.

    +
    +
    +
    + +
    Memos?: Memo[]
    +

    Additional arbitrary information used to identify this transaction.

    +
    +
    +
    + +
    NetworkID?: number
    +

    The network id of the transaction.

    +
    +
    +
    + +
    OtherChainSource: string
    +

    The account that must send the XChainCommit transaction on the source chain.

    +
    +
    +
    + +
    Sequence?: number
    +

    The sequence number of the account sending the transaction. A transaction +is only valid if the Sequence number is exactly 1 greater than the previous +transaction from the same account. The special case 0 means the transaction +is using a Ticket instead.

    +
    +
    +
    + +
    SignatureReward: Amount
    +

    The amount, in XRP, to reward the witness servers for providing signatures. +This must match the amount on the Bridge ledger object.

    +
    +
    +
    + +
    Signers?: Signer[]
    +

    Array of objects that represent a multi-signature which authorizes this +transaction.

    +
    +
    +
    + +
    SigningPubKey?: string
    +

    Hex representation of the public key that corresponds to the private key +used to sign this transaction. If an empty string, indicates a +multi-signature is present in the Signers field instead.

    +
    +
    +
    + +
    SourceTag?: number
    +

    Arbitrary integer used to identify the reason for this payment, or a sender +on whose behalf this transaction is made. Conventionally, a refund should +specify the initial payment's SourceTag as the refund payment's +DestinationTag.

    +
    +
    +
    + +
    TicketSequence?: number
    +

    The sequence number of the ticket to use in place of a Sequence number. If +this is provided, Sequence must be 0. Cannot be used with AccountTxnID.

    +
    +
    +
    + +
    TransactionType: "XChainCreateClaimID"
    +

    The type of transaction. Valid types include: Payment, OfferCreate, +TrustSet, and many others.

    +
    +
    +
    + +
    TxnSignature?: string
    +

    The signature that verifies this transaction as originating from the +account it says it is from.

    +
    +
    +
    + +
    XChainBridge: XChainBridge
    +

    The bridge to create the claim ID for.

    +
    +
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/XChainModifyBridge.html b/docs/interfaces/XChainModifyBridge.html new file mode 100644 index 0000000000..421296c25f --- /dev/null +++ b/docs/interfaces/XChainModifyBridge.html @@ -0,0 +1,576 @@ +XChainModifyBridge | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface XChainModifyBridge

    +
    +

    The XChainModifyBridge transaction allows bridge managers to modify the parameters +of the bridge.

    +
    +
    +
    +

    Hierarchy

    +
    +
    +
    +
    + +
    +
    +

    Properties

    +
    + +
    Account: string
    +

    The unique address of the transaction sender.

    +
    +
    +
    + +
    AccountTxnID?: string
    +

    Hash value identifying another transaction. If provided, this transaction +is only valid if the sending account's previously-sent transaction matches +the provided hash.

    +
    +
    +
    + +
    Fee?: string
    +

    Integer amount of XRP, in drops, to be destroyed as a cost for +distributing this transaction to the network. Some transaction types have +different minimum requirements.

    +
    +
    +
    + + +

    Set of bit-flags for this transaction.

    +
    +
    +
    + +
    LastLedgerSequence?: number
    +

    Highest ledger index this transaction can appear in. Specifying this field +places a strict upper limit on how long the transaction can wait to be +validated or rejected.

    +
    +
    +
    + +
    Memos?: Memo[]
    +

    Additional arbitrary information used to identify this transaction.

    +
    +
    +
    + +
    MinAccountCreateAmount?: Amount
    +

    The minimum amount, in XRP, required for a XChainAccountCreateCommit +transaction. If this is not present, the XChainAccountCreateCommit +transaction will fail. This field can only be present on XRP-XRP bridges.

    +
    +
    +
    + +
    NetworkID?: number
    +

    The network id of the transaction.

    +
    +
    +
    + +
    Sequence?: number
    +

    The sequence number of the account sending the transaction. A transaction +is only valid if the Sequence number is exactly 1 greater than the previous +transaction from the same account. The special case 0 means the transaction +is using a Ticket instead.

    +
    +
    +
    + +
    SignatureReward?: Amount
    +

    The signature reward split between the witnesses for submitting attestations.

    +
    +
    +
    + +
    Signers?: Signer[]
    +

    Array of objects that represent a multi-signature which authorizes this +transaction.

    +
    +
    +
    + +
    SigningPubKey?: string
    +

    Hex representation of the public key that corresponds to the private key +used to sign this transaction. If an empty string, indicates a +multi-signature is present in the Signers field instead.

    +
    +
    +
    + +
    SourceTag?: number
    +

    Arbitrary integer used to identify the reason for this payment, or a sender +on whose behalf this transaction is made. Conventionally, a refund should +specify the initial payment's SourceTag as the refund payment's +DestinationTag.

    +
    +
    +
    + +
    TicketSequence?: number
    +

    The sequence number of the ticket to use in place of a Sequence number. If +this is provided, Sequence must be 0. Cannot be used with AccountTxnID.

    +
    +
    +
    + +
    TransactionType: "XChainModifyBridge"
    +

    The type of transaction. Valid types include: Payment, OfferCreate, +TrustSet, and many others.

    +
    +
    +
    + +
    TxnSignature?: string
    +

    The signature that verifies this transaction as originating from the +account it says it is from.

    +
    +
    +
    + +
    XChainBridge: XChainBridge
    +

    The bridge to modify.

    +
    +
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/XChainModifyBridgeFlagsInterface.html b/docs/interfaces/XChainModifyBridgeFlagsInterface.html new file mode 100644 index 0000000000..6f41b82486 --- /dev/null +++ b/docs/interfaces/XChainModifyBridgeFlagsInterface.html @@ -0,0 +1,382 @@ +XChainModifyBridgeFlagsInterface | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface XChainModifyBridgeFlagsInterface

    +
    +

    Map of flags to boolean values representing XChainModifyBridge transaction +flags.

    +
    +
    +
    +

    Hierarchy

    +
      +
    • GlobalFlags +
        +
      • XChainModifyBridgeFlagsInterface
    +
    +
    +
    + +
    +
    +

    Properties

    +
    +
    +

    Properties

    +
    + +
    tfClearAccountCreateAmount?: boolean
    +

    Clears the MinAccountCreateAmount of the bridge.

    +
    +
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/XRP.html b/docs/interfaces/XRP.html new file mode 100644 index 0000000000..8d7ab06338 --- /dev/null +++ b/docs/interfaces/XRP.html @@ -0,0 +1,379 @@ +XRP | xrpl
    +
    + +
    +
    +
    +
    + +

    Interface XRP

    +
    +

    Hierarchy

    +
      +
    • XRP
    +
    +
    +
    + +
    +
    +

    Properties

    +
    +
    +

    Properties

    +
    + +
    currency: "XRP"
    +
    + +
    issuer?: undefined
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/modules.html b/docs/modules.html index f40a20a125..a44647c87f 100644 --- a/docs/modules.html +++ b/docs/modules.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -xrpl
    +xrpl
    -
    +

    xrpl

    @@ -23,238 +23,343 @@

    xrpl

    Index

    Clients

    -

    Signing

    -

    Transaction Models

    -

    Transaction Flags

    -

    Utilities

    -

    Requests

    -

    Responses

    -
    AccountChannelsResponse -AccountCurrenciesResponse -AccountInfoResponse -AccountLinesResponse -AccountNFTsResponse -AccountObjectsResponse -AccountOffersResponse -AccountTxResponse -BookOffersResponse -ChannelVerifyResponse -DepositAuthorizedResponse -ErrorResponse -FederatorInfoResponse -FeeResponse -GatewayBalancesResponse -LedgerClosedResponse -LedgerCurrentResponse -LedgerDataResponse -LedgerEntryResponse -LedgerResponse -ManifestResponse -NFTBuyOffersResponse -NFTSellOffersResponse -NoRippleCheckResponse -PathFindResponse -PingResponse -RandomResponse -RipplePathFindResponse -ServerInfoResponse -ServerStateResponse -SubmitMultisignedResponse -SubmitResponse -SubscribeResponse -TransactionEntryResponse -TxResponse -UnsubscribeResponse -Response +

    Streams

    -

    Errors

    -

    Other

    -
    LedgerEntry -AccountOffer -BookOffer -ClientOptions -NFTokenAcceptOffer -NFTokenBurn -NFTokenCancelOffer -NFTokenCreateOffer -NFTokenMint -PathFindCloseRequest -PathFindCreateRequest -PathFindStatusRequest -TransactionMetadata -classicAddressToXAddress -decode -decodeAccountID -decodeAccountPublic -decodeNodePublic -decodeSeed -decodeXAddress -deriveAddress -deriveKeypair -encode -encodeAccountID -encodeAccountPublic -encodeForMultiSigning -encodeForSigning -encodeForSigningClaim -encodeNodePublic -encodeSeed -encodeXAddress -getNFTokenID -isValidClassicAddress -isValidXAddress -keyToRFC1751Mnemonic -parseAccountRootFlags -parseNFTokenID -rfc1751MnemonicToKey -setTransactionFlagsToNumber -verifyKeypairSignature -xAddressToClassicAddress +
    LedgerEntry +ECDSA +AMMBid +AMMCreate +AMMDelete +AMMDeposit +AMMDepositFlagsInterface +AMMVote +AMMWithdraw +AMMWithdrawFlagsInterface +AccountInfoAccountFlags +AccountLinesTrustline +AccountOffer +AccountQueueData +AccountQueueTransaction +AccountTxTransaction +AuthAccount +Balance +BaseRequest +BaseResponse +BaseTransaction +BookOffer +BookOfferCurrency +Channel +Clawback +ClientOptions +CreatedNode +DeletedNode +FundingOptions +GatewayBalance +IssuedCurrency +IssuedCurrencyAmount +JobType +LedgerBinary +LedgerDataBinaryLedgerEntry +LedgerModifiedOfferCreateTransaction +LedgerQueueData +LedgerStreamResponse +Memo +ModifiedNode +NFTHistoryTransaction +NFTokenAcceptOffer +NFTokenBurn +NFTokenCancelOffer +NFTokenCreateOffer +NFTokenMint +PathFindCloseRequest +PathFindCreateRequest +PathFindPathOption +PathFindStatusRequest +PathStep +ResponseOnlyTxInfo +ResponseWarning +RipplePathFindPathOption +SetFeePostAmendment +SetFeePreAmendment +Signer +SignerEntry +SourceCurrencyAmount +StateAccounting +SubscribeBook +TransactionMetadataBase +UnsubscribeBook +XChainBridge +XRP +AccountObject +AccountObjectType +Amount +BooksSnapshot +Currency +LedgerDataLabeledLedgerEntry +LedgerDataLedgerState +LedgerIndex +MarkerRequest +MarkerResponse +Node +Path +RequestAllResponseMap +RequestResponseMap +ServerState +StateAccountingFinal +StreamType +TransactionMetadata +classicAddressToXAddress +decode +decodeAccountID +decodeAccountPublic +decodeNodePublic +decodeSeed +decodeXAddress +deriveAddress +deriveKeypair +encode +encodeAccountID +encodeAccountPublic +encodeForMultiSigning +encodeForSigning +encodeForSigningClaim +encodeNodePublic +encodeSeed +encodeXAddress +getNFTokenID +getXChainClaimID +isCreatedNode +isDeletedNode +isModifiedNode +isValidClassicAddress +isValidXAddress +keyToRFC1751Mnemonic +parseAccountRootFlags +parseNFTokenID +rfc1751MnemonicToKey +setTransactionFlagsToNumber +verifyKeypairSignature +walletFromSecretNumbers +xAddressToClassicAddress +
    +
    +

    Pseudo Transaction Models

    +
    -
    + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/modules/LedgerEntry.html b/docs/modules/LedgerEntry.html index 65476d8a7a..6ef28423f0 100644 --- a/docs/modules/LedgerEntry.html +++ b/docs/modules/LedgerEntry.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -LedgerEntry | xrpl
    +LedgerEntry | xrpl
    - + -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file + +
  • AMMDepositFlags
  • +
  • AMMWithdrawFlags
  • +
  • AccountSetAsfFlags
  • +
  • AccountSetTfFlags
  • +
  • ECDSA
  • +
  • EnableAmendmentFlags
  • +
  • NFTokenCreateOfferFlags
  • +
  • NFTokenMintFlags
  • +
  • OfferCreateFlags
  • +
  • PaymentChannelClaimFlags
  • +
  • PaymentFlags
  • +
  • TrustSetFlags
  • +
  • XChainModifyBridgeFlags
  • +
  • Client
  • +
  • ConnectionError
  • +
  • DisconnectedError
  • +
  • NotConnectedError
  • +
  • NotFoundError
  • +
  • ResponseFormatError
  • +
  • RippledError
  • +
  • RippledNotInitializedError
  • +
  • TimeoutError
  • +
  • UnexpectedError
  • +
  • ValidationError
  • +
  • Wallet
  • +
  • XRPLFaucetError
  • +
  • XrplError
  • +
  • AMMBid
  • +
  • AMMCreate
  • +
  • AMMDelete
  • +
  • AMMDeposit
  • +
  • AMMDepositFlagsInterface
  • +
  • AMMInfoRequest
  • +
  • AMMInfoResponse
  • +
  • AMMVote
  • +
  • AMMWithdraw
  • +
  • AMMWithdrawFlagsInterface
  • +
  • AccountChannelsRequest
  • +
  • AccountChannelsResponse
  • +
  • AccountCurrenciesRequest
  • +
  • AccountCurrenciesResponse
  • +
  • AccountDelete
  • +
  • AccountInfoAccountFlags
  • +
  • AccountInfoRequest
  • +
  • AccountInfoResponse
  • +
  • AccountLinesRequest
  • +
  • AccountLinesResponse
  • +
  • AccountLinesTrustline
  • +
  • AccountNFToken
  • +
  • AccountNFTsRequest
  • +
  • AccountNFTsResponse
  • +
  • AccountObjectsRequest
  • +
  • AccountObjectsResponse
  • +
  • AccountOffer
  • +
  • AccountOffersRequest
  • +
  • AccountOffersResponse
  • +
  • AccountQueueData
  • +
  • AccountQueueTransaction
  • +
  • AccountSet
  • +
  • AccountSetFlagsInterface
  • +
  • AccountTxRequest
  • +
  • AccountTxResponse
  • +
  • AccountTxTransaction
  • +
  • AuthAccount
  • +
  • Balance
  • +
  • BaseRequest
  • +
  • BaseResponse
  • +
  • BaseTransaction
  • +
  • BookOffer
  • +
  • BookOfferCurrency
  • +
  • BookOffersRequest
  • +
  • BookOffersResponse
  • +
  • Channel
  • +
  • ChannelVerifyRequest
  • +
  • ChannelVerifyResponse
  • +
  • CheckCancel
  • +
  • CheckCash
  • +
  • CheckCreate
  • +
  • Clawback
  • +
  • ClientOptions
  • +
  • ConsensusStream
  • +
  • CreatedNode
  • +
  • DIDDelete
  • +
  • DIDSet
  • +
  • DeletedNode
  • +
  • DepositAuthorizedRequest
  • +
  • DepositAuthorizedResponse
  • +
  • DepositPreauth
  • +
  • EnableAmendment
  • +
  • ErrorResponse
  • +
  • EscrowCancel
  • +
  • EscrowCreate
  • +
  • EscrowFinish
  • +
  • FeeRequest
  • +
  • FeeResponse
  • +
  • FundingOptions
  • +
  • GatewayBalance
  • +
  • GatewayBalancesRequest
  • +
  • GatewayBalancesResponse
  • +
  • IssuedCurrency
  • +
  • IssuedCurrencyAmount
  • +
  • JobType
  • +
  • LedgerBinary
  • +
  • LedgerClosedRequest
  • +
  • LedgerClosedResponse
  • +
  • LedgerCurrentRequest
  • +
  • LedgerCurrentResponse
  • +
  • LedgerDataBinaryLedgerEntry
  • +
  • LedgerDataRequest
  • +
  • LedgerDataResponse
  • +
  • LedgerEntryRequest
  • +
  • LedgerEntryResponse
  • +
  • LedgerModifiedOfferCreateTransaction
  • +
  • LedgerQueueData
  • +
  • LedgerRequest
  • +
  • LedgerResponse
  • +
  • LedgerStream
  • +
  • LedgerStreamResponse
  • +
  • ManifestRequest
  • +
  • ManifestResponse
  • +
  • Memo
  • +
  • ModifiedNode
  • +
  • NFTBuyOffersRequest
  • +
  • NFTBuyOffersResponse
  • +
  • NFTHistoryRequest
  • +
  • NFTHistoryResponse
  • +
  • NFTHistoryTransaction
  • +
  • NFTInfoRequest
  • +
  • NFTInfoResponse
  • +
  • NFTOffer
  • +
  • NFTSellOffersRequest
  • +
  • NFTSellOffersResponse
  • +
  • NFToken
  • +
  • NFTokenAcceptOffer
  • +
  • NFTokenBurn
  • +
  • NFTokenCancelOffer
  • +
  • NFTokenCreateOffer
  • +
  • NFTokenCreateOfferFlagsInterface
  • +
  • NFTokenMint
  • +
  • NFTokenMintFlagsInterface
  • +
  • NoRippleCheckRequest
  • +
  • NoRippleCheckResponse
  • +
  • OfferCancel
  • +
  • OfferCreate
  • +
  • OfferCreateFlagsInterface
  • +
  • OrderBookStream
  • +
  • PathFindCloseRequest
  • +
  • PathFindCreateRequest
  • +
  • PathFindPathOption
  • +
  • PathFindResponse
  • +
  • PathFindStatusRequest
  • +
  • PathFindStream
  • +
  • PathStep
  • +
  • Payment
  • +
  • PaymentChannelClaim
  • +
  • PaymentChannelClaimFlagsInterface
  • +
  • PaymentChannelCreate
  • +
  • PaymentChannelFund
  • +
  • PaymentFlagsInterface
  • +
  • PeerStatusStream
  • +
  • PingRequest
  • +
  • PingResponse
  • +
  • RandomRequest
  • +
  • RandomResponse
  • +
  • ResponseOnlyTxInfo
  • +
  • ResponseWarning
  • +
  • RipplePathFindPathOption
  • +
  • RipplePathFindRequest
  • +
  • RipplePathFindResponse
  • +
  • ServerDefinitionsRequest
  • +
  • ServerDefinitionsResponse
  • +
  • ServerInfoRequest
  • +
  • ServerInfoResponse
  • +
  • ServerStateRequest
  • +
  • ServerStateResponse
  • +
  • SetFeePostAmendment
  • +
  • SetFeePreAmendment
  • +
  • SetRegularKey
  • +
  • Signer
  • +
  • SignerEntry
  • +
  • SignerListSet
  • +
  • SourceCurrencyAmount
  • +
  • StateAccounting
  • +
  • SubmitMultisignedRequest
  • +
  • SubmitMultisignedResponse
  • +
  • SubmitRequest
  • +
  • SubmitResponse
  • +
  • SubscribeBook
  • +
  • SubscribeRequest
  • +
  • SubscribeResponse
  • +
  • TicketCreate
  • +
  • TransactionAndMetadata
  • +
  • TransactionEntryRequest
  • +
  • TransactionEntryResponse
  • +
  • TransactionMetadataBase
  • +
  • TransactionStream
  • +
  • TrustSet
  • +
  • TrustSetFlagsInterface
  • +
  • TxRequest
  • +
  • TxResponse
  • +
  • UNLModify
  • +
  • UnsubscribeBook
  • +
  • UnsubscribeRequest
  • +
  • UnsubscribeResponse
  • +
  • ValidationStream
  • +
  • XChainAccountCreateCommit
  • +
  • XChainAddAccountCreateAttestation
  • +
  • XChainAddClaimAttestation
  • +
  • XChainBridge
  • +
  • XChainClaim
  • +
  • XChainCommit
  • +
  • XChainCreateBridge
  • +
  • XChainCreateClaimID
  • +
  • XChainModifyBridge
  • +
  • XChainModifyBridgeFlagsInterface
  • +
  • XRP
  • +
  • AccountObject
  • +
  • AccountObjectType
  • +
  • Amount
  • +
  • BooksSnapshot
  • +
  • Currency
  • +
  • LedgerDataLabeledLedgerEntry
  • +
  • LedgerDataLedgerState
  • +
  • LedgerIndex
  • +
  • MarkerRequest
  • +
  • MarkerResponse
  • +
  • Node
  • +
  • Path
  • +
  • PathFindRequest
  • +
  • PseudoTransaction
  • +
  • Request
  • +
  • RequestAllResponseMap
  • +
  • RequestResponseMap
  • +
  • Response
  • +
  • ServerState
  • +
  • SetFee
  • +
  • StateAccountingFinal
  • +
  • Stream
  • +
  • StreamType
  • +
  • SubmittableTransaction
  • +
  • Transaction
  • +
  • TransactionMetadata
  • +
  • hashes
  • +
  • classicAddressToXAddress
  • +
  • convertHexToString
  • +
  • convertStringToHex
  • +
  • decimalToQuality
  • +
  • decimalToTransferRate
  • +
  • decode
  • +
  • decodeAccountID
  • +
  • decodeAccountPublic
  • +
  • decodeNodePublic
  • +
  • decodeSeed
  • +
  • decodeXAddress
  • +
  • deriveAddress
  • +
  • deriveKeypair
  • +
  • deriveXAddress
  • +
  • dropsToXrp
  • +
  • encode
  • +
  • encodeAccountID
  • +
  • encodeAccountPublic
  • +
  • encodeForMultiSigning
  • +
  • encodeForSigning
  • +
  • encodeForSigningClaim
  • +
  • encodeNodePublic
  • +
  • encodeSeed
  • +
  • encodeXAddress
  • +
  • getBalanceChanges
  • +
  • getNFTokenID
  • +
  • getXChainClaimID
  • +
  • hasNextPage
  • +
  • isCreatedNode
  • +
  • isDeletedNode
  • +
  • isModifiedNode
  • +
  • isValidAddress
  • +
  • isValidClassicAddress
  • +
  • isValidSecret
  • +
  • isValidXAddress
  • +
  • isoTimeToRippleTime
  • +
  • keyToRFC1751Mnemonic
  • +
  • multisign
  • +
  • parseAccountRootFlags
  • +
  • parseNFTokenID
  • +
  • percentToQuality
  • +
  • percentToTransferRate
  • +
  • qualityToDecimal
  • +
  • rfc1751MnemonicToKey
  • +
  • rippleTimeToISOTime
  • +
  • rippleTimeToUnixTime
  • +
  • setTransactionFlagsToNumber
  • +
  • signPaymentChannelClaim
  • +
  • transferRateToDecimal
  • +
  • unixTimeToRippleTime
  • +
  • validate
  • +
  • verifyKeypairSignature
  • +
  • verifyPaymentChannelClaim
  • +
  • verifySignature
  • +
  • walletFromSecretNumbers
  • +
  • xAddressToClassicAddress
  • +
  • xrpToDrops
  • +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/types/AccountObject.html b/docs/types/AccountObject.html new file mode 100644 index 0000000000..75ca7da55a --- /dev/null +++ b/docs/types/AccountObject.html @@ -0,0 +1,352 @@ +AccountObject | xrpl
    +
    + +
    +
    +
    +
    + +

    Type alias AccountObject

    +
    AccountObject: Exclude<LedgerEntry, Amendments | FeeSettings | LedgerHashes>
    +

    Account Objects can be a Check, a DepositPreauth, an Escrow, an Offer, a +PayChannel, a SignerList, a Ticket, or a RippleState.

    +
    +
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/types/AccountObjectType.html b/docs/types/AccountObjectType.html new file mode 100644 index 0000000000..04cce0b4b0 --- /dev/null +++ b/docs/types/AccountObjectType.html @@ -0,0 +1,348 @@ +AccountObjectType | xrpl
    +
    + +
    +
    +
    +
    + +

    Type alias AccountObjectType

    +
    AccountObjectType: Exclude<LedgerEntryFilter, "amendments" | "fee" | "hashes">
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/types/Amount.html b/docs/types/Amount.html new file mode 100644 index 0000000000..7519035e85 --- /dev/null +++ b/docs/types/Amount.html @@ -0,0 +1,348 @@ +Amount | xrpl
    +
    + +
    +
    +
    +
    + +

    Type alias Amount

    +
    Amount: IssuedCurrencyAmount | string
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/types/BooksSnapshot.html b/docs/types/BooksSnapshot.html new file mode 100644 index 0000000000..f412c644d0 --- /dev/null +++ b/docs/types/BooksSnapshot.html @@ -0,0 +1,348 @@ +BooksSnapshot | xrpl
    +
    + +
    +
    +
    +
    + +

    Type alias BooksSnapshot

    +
    BooksSnapshot: Offer[]
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/types/Currency.html b/docs/types/Currency.html new file mode 100644 index 0000000000..c8a1e829d7 --- /dev/null +++ b/docs/types/Currency.html @@ -0,0 +1,348 @@ +Currency | xrpl
    +
    + +
    +
    +
    +
    + +

    Type alias Currency

    +
    Currency: IssuedCurrency | XRP
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/types/LedgerDataLabeledLedgerEntry.html b/docs/types/LedgerDataLabeledLedgerEntry.html new file mode 100644 index 0000000000..ab2dd89fa5 --- /dev/null +++ b/docs/types/LedgerDataLabeledLedgerEntry.html @@ -0,0 +1,353 @@ +LedgerDataLabeledLedgerEntry | xrpl
    +
    + +
    +
    +
    +
    + +

    Type alias LedgerDataLabeledLedgerEntry

    +
    LedgerDataLabeledLedgerEntry: {
        ledgerEntryType: string;
    } & LedgerEntry
    +
    +

    Type declaration

    +
      +
    • +
      ledgerEntryType: string
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/types/LedgerDataLedgerState.html b/docs/types/LedgerDataLedgerState.html new file mode 100644 index 0000000000..5926b7c1f2 --- /dev/null +++ b/docs/types/LedgerDataLedgerState.html @@ -0,0 +1,353 @@ +LedgerDataLedgerState | xrpl
    +
    + +
    +
    +
    +
    + +

    Type alias LedgerDataLedgerState

    +
    LedgerDataLedgerState: {
        index: string;
    } & (LedgerDataBinaryLedgerEntry | LedgerDataLabeledLedgerEntry)
    +
    +

    Type declaration

    +
      +
    • +
      index: string
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/types/LedgerEntry.LedgerEntry.html b/docs/types/LedgerEntry.LedgerEntry.html index b61d638d08..4bff36392a 100644 --- a/docs/types/LedgerEntry.LedgerEntry.html +++ b/docs/types/LedgerEntry.LedgerEntry.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -LedgerEntry | xrpl
    +LedgerEntry | xrpl
    -
    + - +
    +
    + -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file + +
  • AMMDepositFlags
  • +
  • AMMWithdrawFlags
  • +
  • AccountSetAsfFlags
  • +
  • AccountSetTfFlags
  • +
  • ECDSA
  • +
  • EnableAmendmentFlags
  • +
  • NFTokenCreateOfferFlags
  • +
  • NFTokenMintFlags
  • +
  • OfferCreateFlags
  • +
  • PaymentChannelClaimFlags
  • +
  • PaymentFlags
  • +
  • TrustSetFlags
  • +
  • XChainModifyBridgeFlags
  • +
  • Client
  • +
  • ConnectionError
  • +
  • DisconnectedError
  • +
  • NotConnectedError
  • +
  • NotFoundError
  • +
  • ResponseFormatError
  • +
  • RippledError
  • +
  • RippledNotInitializedError
  • +
  • TimeoutError
  • +
  • UnexpectedError
  • +
  • ValidationError
  • +
  • Wallet
  • +
  • XRPLFaucetError
  • +
  • XrplError
  • +
  • AMMBid
  • +
  • AMMCreate
  • +
  • AMMDelete
  • +
  • AMMDeposit
  • +
  • AMMDepositFlagsInterface
  • +
  • AMMInfoRequest
  • +
  • AMMInfoResponse
  • +
  • AMMVote
  • +
  • AMMWithdraw
  • +
  • AMMWithdrawFlagsInterface
  • +
  • AccountChannelsRequest
  • +
  • AccountChannelsResponse
  • +
  • AccountCurrenciesRequest
  • +
  • AccountCurrenciesResponse
  • +
  • AccountDelete
  • +
  • AccountInfoAccountFlags
  • +
  • AccountInfoRequest
  • +
  • AccountInfoResponse
  • +
  • AccountLinesRequest
  • +
  • AccountLinesResponse
  • +
  • AccountLinesTrustline
  • +
  • AccountNFToken
  • +
  • AccountNFTsRequest
  • +
  • AccountNFTsResponse
  • +
  • AccountObjectsRequest
  • +
  • AccountObjectsResponse
  • +
  • AccountOffer
  • +
  • AccountOffersRequest
  • +
  • AccountOffersResponse
  • +
  • AccountQueueData
  • +
  • AccountQueueTransaction
  • +
  • AccountSet
  • +
  • AccountSetFlagsInterface
  • +
  • AccountTxRequest
  • +
  • AccountTxResponse
  • +
  • AccountTxTransaction
  • +
  • AuthAccount
  • +
  • Balance
  • +
  • BaseRequest
  • +
  • BaseResponse
  • +
  • BaseTransaction
  • +
  • BookOffer
  • +
  • BookOfferCurrency
  • +
  • BookOffersRequest
  • +
  • BookOffersResponse
  • +
  • Channel
  • +
  • ChannelVerifyRequest
  • +
  • ChannelVerifyResponse
  • +
  • CheckCancel
  • +
  • CheckCash
  • +
  • CheckCreate
  • +
  • Clawback
  • +
  • ClientOptions
  • +
  • ConsensusStream
  • +
  • CreatedNode
  • +
  • DIDDelete
  • +
  • DIDSet
  • +
  • DeletedNode
  • +
  • DepositAuthorizedRequest
  • +
  • DepositAuthorizedResponse
  • +
  • DepositPreauth
  • +
  • EnableAmendment
  • +
  • ErrorResponse
  • +
  • EscrowCancel
  • +
  • EscrowCreate
  • +
  • EscrowFinish
  • +
  • FeeRequest
  • +
  • FeeResponse
  • +
  • FundingOptions
  • +
  • GatewayBalance
  • +
  • GatewayBalancesRequest
  • +
  • GatewayBalancesResponse
  • +
  • IssuedCurrency
  • +
  • IssuedCurrencyAmount
  • +
  • JobType
  • +
  • LedgerBinary
  • +
  • LedgerClosedRequest
  • +
  • LedgerClosedResponse
  • +
  • LedgerCurrentRequest
  • +
  • LedgerCurrentResponse
  • +
  • LedgerDataBinaryLedgerEntry
  • +
  • LedgerDataRequest
  • +
  • LedgerDataResponse
  • +
  • LedgerEntryRequest
  • +
  • LedgerEntryResponse
  • +
  • LedgerModifiedOfferCreateTransaction
  • +
  • LedgerQueueData
  • +
  • LedgerRequest
  • +
  • LedgerResponse
  • +
  • LedgerStream
  • +
  • LedgerStreamResponse
  • +
  • ManifestRequest
  • +
  • ManifestResponse
  • +
  • Memo
  • +
  • ModifiedNode
  • +
  • NFTBuyOffersRequest
  • +
  • NFTBuyOffersResponse
  • +
  • NFTHistoryRequest
  • +
  • NFTHistoryResponse
  • +
  • NFTHistoryTransaction
  • +
  • NFTInfoRequest
  • +
  • NFTInfoResponse
  • +
  • NFTOffer
  • +
  • NFTSellOffersRequest
  • +
  • NFTSellOffersResponse
  • +
  • NFToken
  • +
  • NFTokenAcceptOffer
  • +
  • NFTokenBurn
  • +
  • NFTokenCancelOffer
  • +
  • NFTokenCreateOffer
  • +
  • NFTokenCreateOfferFlagsInterface
  • +
  • NFTokenMint
  • +
  • NFTokenMintFlagsInterface
  • +
  • NoRippleCheckRequest
  • +
  • NoRippleCheckResponse
  • +
  • OfferCancel
  • +
  • OfferCreate
  • +
  • OfferCreateFlagsInterface
  • +
  • OrderBookStream
  • +
  • PathFindCloseRequest
  • +
  • PathFindCreateRequest
  • +
  • PathFindPathOption
  • +
  • PathFindResponse
  • +
  • PathFindStatusRequest
  • +
  • PathFindStream
  • +
  • PathStep
  • +
  • Payment
  • +
  • PaymentChannelClaim
  • +
  • PaymentChannelClaimFlagsInterface
  • +
  • PaymentChannelCreate
  • +
  • PaymentChannelFund
  • +
  • PaymentFlagsInterface
  • +
  • PeerStatusStream
  • +
  • PingRequest
  • +
  • PingResponse
  • +
  • RandomRequest
  • +
  • RandomResponse
  • +
  • ResponseOnlyTxInfo
  • +
  • ResponseWarning
  • +
  • RipplePathFindPathOption
  • +
  • RipplePathFindRequest
  • +
  • RipplePathFindResponse
  • +
  • ServerDefinitionsRequest
  • +
  • ServerDefinitionsResponse
  • +
  • ServerInfoRequest
  • +
  • ServerInfoResponse
  • +
  • ServerStateRequest
  • +
  • ServerStateResponse
  • +
  • SetFeePostAmendment
  • +
  • SetFeePreAmendment
  • +
  • SetRegularKey
  • +
  • Signer
  • +
  • SignerEntry
  • +
  • SignerListSet
  • +
  • SourceCurrencyAmount
  • +
  • StateAccounting
  • +
  • SubmitMultisignedRequest
  • +
  • SubmitMultisignedResponse
  • +
  • SubmitRequest
  • +
  • SubmitResponse
  • +
  • SubscribeBook
  • +
  • SubscribeRequest
  • +
  • SubscribeResponse
  • +
  • TicketCreate
  • +
  • TransactionAndMetadata
  • +
  • TransactionEntryRequest
  • +
  • TransactionEntryResponse
  • +
  • TransactionMetadataBase
  • +
  • TransactionStream
  • +
  • TrustSet
  • +
  • TrustSetFlagsInterface
  • +
  • TxRequest
  • +
  • TxResponse
  • +
  • UNLModify
  • +
  • UnsubscribeBook
  • +
  • UnsubscribeRequest
  • +
  • UnsubscribeResponse
  • +
  • ValidationStream
  • +
  • XChainAccountCreateCommit
  • +
  • XChainAddAccountCreateAttestation
  • +
  • XChainAddClaimAttestation
  • +
  • XChainBridge
  • +
  • XChainClaim
  • +
  • XChainCommit
  • +
  • XChainCreateBridge
  • +
  • XChainCreateClaimID
  • +
  • XChainModifyBridge
  • +
  • XChainModifyBridgeFlagsInterface
  • +
  • XRP
  • +
  • AccountObject
  • +
  • AccountObjectType
  • +
  • Amount
  • +
  • BooksSnapshot
  • +
  • Currency
  • +
  • LedgerDataLabeledLedgerEntry
  • +
  • LedgerDataLedgerState
  • +
  • LedgerIndex
  • +
  • MarkerRequest
  • +
  • MarkerResponse
  • +
  • Node
  • +
  • Path
  • +
  • PathFindRequest
  • +
  • PseudoTransaction
  • +
  • Request
  • +
  • RequestAllResponseMap
  • +
  • RequestResponseMap
  • +
  • Response
  • +
  • ServerState
  • +
  • SetFee
  • +
  • StateAccountingFinal
  • +
  • Stream
  • +
  • StreamType
  • +
  • SubmittableTransaction
  • +
  • Transaction
  • +
  • TransactionMetadata
  • +
  • hashes
  • +
  • classicAddressToXAddress
  • +
  • convertHexToString
  • +
  • convertStringToHex
  • +
  • decimalToQuality
  • +
  • decimalToTransferRate
  • +
  • decode
  • +
  • decodeAccountID
  • +
  • decodeAccountPublic
  • +
  • decodeNodePublic
  • +
  • decodeSeed
  • +
  • decodeXAddress
  • +
  • deriveAddress
  • +
  • deriveKeypair
  • +
  • deriveXAddress
  • +
  • dropsToXrp
  • +
  • encode
  • +
  • encodeAccountID
  • +
  • encodeAccountPublic
  • +
  • encodeForMultiSigning
  • +
  • encodeForSigning
  • +
  • encodeForSigningClaim
  • +
  • encodeNodePublic
  • +
  • encodeSeed
  • +
  • encodeXAddress
  • +
  • getBalanceChanges
  • +
  • getNFTokenID
  • +
  • getXChainClaimID
  • +
  • hasNextPage
  • +
  • isCreatedNode
  • +
  • isDeletedNode
  • +
  • isModifiedNode
  • +
  • isValidAddress
  • +
  • isValidClassicAddress
  • +
  • isValidSecret
  • +
  • isValidXAddress
  • +
  • isoTimeToRippleTime
  • +
  • keyToRFC1751Mnemonic
  • +
  • multisign
  • +
  • parseAccountRootFlags
  • +
  • parseNFTokenID
  • +
  • percentToQuality
  • +
  • percentToTransferRate
  • +
  • qualityToDecimal
  • +
  • rfc1751MnemonicToKey
  • +
  • rippleTimeToISOTime
  • +
  • rippleTimeToUnixTime
  • +
  • setTransactionFlagsToNumber
  • +
  • signPaymentChannelClaim
  • +
  • transferRateToDecimal
  • +
  • unixTimeToRippleTime
  • +
  • validate
  • +
  • verifyKeypairSignature
  • +
  • verifyPaymentChannelClaim
  • +
  • verifySignature
  • +
  • walletFromSecretNumbers
  • +
  • xAddressToClassicAddress
  • +
  • xrpToDrops
  • +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/types/LedgerEntry.LedgerEntryFilter.html b/docs/types/LedgerEntry.LedgerEntryFilter.html new file mode 100644 index 0000000000..6b68301e34 --- /dev/null +++ b/docs/types/LedgerEntry.LedgerEntryFilter.html @@ -0,0 +1,389 @@ +LedgerEntryFilter | xrpl
    +
    + +
    +
    +
    +
    + +

    Type alias LedgerEntryFilter

    +
    LedgerEntryFilter: "account" | "amendments" | "amm" | "bridge" | "check" | "deposit_preauth" | "did" | "directory" | "escrow" | "fee" | "hashes" | "nft_offer" | "nft_page" | "offer" | "payment_channel" | "signer_list" | "state" | "ticket" | "xchain_owned_create_account_claim_id" | "xchain_owned_claim_id"
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/types/LedgerIndex.html b/docs/types/LedgerIndex.html new file mode 100644 index 0000000000..3d0d06c152 --- /dev/null +++ b/docs/types/LedgerIndex.html @@ -0,0 +1,348 @@ +LedgerIndex | xrpl
    +
    + +
    +
    +
    +
    + +

    Type alias LedgerIndex

    +
    LedgerIndex: number | "validated" | "closed" | "current"
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/types/MarkerRequest.html b/docs/types/MarkerRequest.html new file mode 100644 index 0000000000..d0bdbab85b --- /dev/null +++ b/docs/types/MarkerRequest.html @@ -0,0 +1,355 @@ +MarkerRequest | xrpl
    +
    + +
    +
    +
    +
    + +

    Type alias MarkerRequest

    +
    MarkerRequest: Request & {
        limit?: number;
        marker?: unknown;
    }
    +
    +

    Type declaration

    +
      +
    • +
      Optional limit?: number
    • +
    • +
      Optional marker?: unknown
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/types/MarkerResponse.html b/docs/types/MarkerResponse.html new file mode 100644 index 0000000000..b01f74280e --- /dev/null +++ b/docs/types/MarkerResponse.html @@ -0,0 +1,356 @@ +MarkerResponse | xrpl
    +
    + +
    +
    +
    +
    + +

    Type alias MarkerResponse

    +
    MarkerResponse: Response & {
        result: {
            marker?: unknown;
        };
    }
    +
    +

    Type declaration

    +
      +
    • +
      result: {
          marker?: unknown;
      }
      +
        +
      • +
        Optional marker?: unknown
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/types/Node.html b/docs/types/Node.html new file mode 100644 index 0000000000..fd02005bb5 --- /dev/null +++ b/docs/types/Node.html @@ -0,0 +1,348 @@ +Node | xrpl
    +
    + +
    +
    + +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/types/Path.html b/docs/types/Path.html new file mode 100644 index 0000000000..a025770c21 --- /dev/null +++ b/docs/types/Path.html @@ -0,0 +1,348 @@ +Path | xrpl
    +
    + +
    +
    +
    +
    + +

    Type alias Path

    +
    Path: PathStep[]
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/types/PathFindRequest.html b/docs/types/PathFindRequest.html index 8bce98f11e..9c6b4ad7f8 100644 --- a/docs/types/PathFindRequest.html +++ b/docs/types/PathFindRequest.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -PathFindRequest | xrpl
    +PathFindRequest | xrpl
    -
    +

    Type alias PathFindRequest

    - +

    The path_find method searches for a path along which a transaction can possibly be made, and periodically sends updates when the path changes over time. For a simpler version that is supported by JSON-RPC, see the ripple_path_find method.

    -
    +
    - +
    +
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +

    Theme

    + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/types/PseudoTransaction.html b/docs/types/PseudoTransaction.html new file mode 100644 index 0000000000..0de9dc14db --- /dev/null +++ b/docs/types/PseudoTransaction.html @@ -0,0 +1,351 @@ +PseudoTransaction | xrpl
    +
    + +
    +
    +
    +
    + +

    Type alias PseudoTransaction

    +
    PseudoTransaction: EnableAmendment | SetFee | UNLModify
    +

    Transactions that can only be created by validators.

    +
    +
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/types/Request.html b/docs/types/Request.html index d1f49d9d06..95ed628880 100644 --- a/docs/types/Request.html +++ b/docs/types/Request.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -Request | xrpl
    +Request | xrpl
    -
    +

    Type alias Request

    -
    - +
    +
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +

    Theme

    + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/types/RequestAllResponseMap.html b/docs/types/RequestAllResponseMap.html new file mode 100644 index 0000000000..19e2fc80a1 --- /dev/null +++ b/docs/types/RequestAllResponseMap.html @@ -0,0 +1,353 @@ +RequestAllResponseMap | xrpl
    +
    + +
    +
    +
    +
    + +

    Type alias RequestAllResponseMap<T>

    +
    RequestAllResponseMap<T>: T extends AccountChannelsRequest
        ? AccountChannelsResponse
        : T extends AccountLinesRequest
            ? AccountLinesResponse
            : T extends AccountObjectsRequest
                ? AccountObjectsResponse
                : T extends AccountOffersRequest
                    ? AccountOffersResponse
                    : T extends AccountTxRequest
                        ? AccountTxResponse
                        : T extends LedgerDataRequest
                            ? LedgerDataResponse
                            : T extends AccountTxRequest
                                ? AccountTxResponse
                                : T extends BookOffersRequest
                                    ? BookOffersResponse
                                    : MarkerResponse
    +
    +

    Type Parameters

    +
      +
    • +

      T

    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/types/RequestResponseMap.html b/docs/types/RequestResponseMap.html new file mode 100644 index 0000000000..342b087a00 --- /dev/null +++ b/docs/types/RequestResponseMap.html @@ -0,0 +1,353 @@ +RequestResponseMap | xrpl
    +
    + +
    +
    +
    +
    + +

    Type alias RequestResponseMap<T>

    +
    RequestResponseMap<T>: T extends AccountChannelsRequest
        ? AccountChannelsResponse
        : T extends AccountCurrenciesRequest
            ? AccountCurrenciesResponse
            : T extends AccountInfoRequest
                ? AccountInfoResponse
                : T extends AccountLinesRequest
                    ? AccountLinesResponse
                    : T extends AccountNFTsRequest
                        ? AccountNFTsResponse
                        : T extends AccountObjectsRequest
                            ? AccountObjectsResponse
                            : T extends AccountOffersRequest
                                ? AccountOffersResponse
                                : T extends AccountTxRequest
                                    ? AccountTxResponse
                                    : T extends AMMInfoRequest
                                        ? AMMInfoResponse
                                        : T extends GatewayBalancesRequest
                                            ? GatewayBalancesResponse
                                            : T extends NoRippleCheckRequest
                                                ? NoRippleCheckResponse
                                                : T extends LedgerRequestExpandedTransactionsBinary
                                                    ? LedgerResponse
                                                    : T extends LedgerRequestExpandedAccountsAndTransactions
                                                        ? LedgerResponseExpanded
                                                        : T extends LedgerRequestExpandedTransactionsOnly
                                                            ? LedgerResponseExpanded
                                                            : T extends LedgerRequestExpandedAccountsOnly
                                                                ? LedgerResponseExpanded
                                                                : T extends LedgerRequest
                                                                    ? LedgerResponse
                                                                    : T extends LedgerClosedRequest
                                                                        ? LedgerClosedResponse
                                                                        : T extends LedgerCurrentRequest
                                                                            ? LedgerCurrentResponse
                                                                            : T extends LedgerDataRequest
                                                                                ? LedgerDataResponse
                                                                                : T extends LedgerEntryRequest
                                                                                    ? LedgerEntryResponse
                                                                                    : T extends SubmitRequest
                                                                                        ? SubmitResponse
                                                                                        : T extends SubmitMultisignedRequest
                                                                                            ? SubmitMultisignedResponse
                                                                                            : T extends TransactionEntryRequest
                                                                                                ? TransactionEntryResponse
                                                                                                : T extends TxRequest
                                                                                                    ? TxResponse
                                                                                                    : T extends BookOffersRequest
                                                                                                        ? BookOffersResponse
                                                                                                        : T extends DepositAuthorizedRequest
                                                                                                            ? DepositAuthorizedResponse
                                                                                                            : T extends PathFindRequest
                                                                                                                ? PathFindResponse
                                                                                                                : T extends RipplePathFindRequest
                                                                                                                    ? RipplePathFindResponse
                                                                                                                    : T extends ChannelVerifyRequest
                                                                                                                        ? ChannelVerifyResponse
                                                                                                                        : T extends SubscribeRequest
                                                                                                                            ? SubscribeResponse
                                                                                                                            : T extends UnsubscribeRequest
                                                                                                                                ? UnsubscribeResponse
                                                                                                                                : T extends FeeRequest
                                                                                                                                    ? FeeResponse
                                                                                                                                    : T extends ManifestRequest
                                                                                                                                        ? ManifestResponse
                                                                                                                                        : T extends ServerInfoRequest
                                                                                                                                            ? ServerInfoResponse
                                                                                                                                            : T extends ServerStateRequest
                                                                                                                                                ? ServerStateResponse
                                                                                                                                                : T extends ServerDefinitionsRequest
                                                                                                                                                    ? ServerDefinitionsResponse
                                                                                                                                                    : T extends PingRequest
                                                                                                                                                        ? PingResponse
                                                                                                                                                        : T extends RandomRequest
                                                                                                                                                            ? RandomResponse
                                                                                                                                                            : T extends NFTBuyOffersRequest
                                                                                                                                                                ? NFTBuyOffersResponse
                                                                                                                                                                : T extends NFTSellOffersRequest
                                                                                                                                                                    ? NFTSellOffersResponse
                                                                                                                                                                    : T extends NFTInfoRequest
                                                                                                                                                                        ? NFTInfoResponse
                                                                                                                                                                        : T extends NFTHistoryRequest
                                                                                                                                                                            ? NFTHistoryResponse
                                                                                                                                                                            : Response
    +
    +

    Type Parameters

    +
      +
    • +

      T

    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/types/Response.html b/docs/types/Response.html index 5e7de57297..c8e44561f0 100644 --- a/docs/types/Response.html +++ b/docs/types/Response.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -Response | xrpl
    +Response | xrpl
    -
    +

    Type alias Response

    -
    - +
    +
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +

    Theme

    + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/types/ServerState.html b/docs/types/ServerState.html new file mode 100644 index 0000000000..9bd4e3e02c --- /dev/null +++ b/docs/types/ServerState.html @@ -0,0 +1,348 @@ +ServerState | xrpl
    +
    + +
    +
    +
    +
    + +

    Type alias ServerState

    +
    ServerState: "disconnected" | "connected" | "syncing" | "tracking" | "full" | "validating" | "proposing"
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/types/SetFee.html b/docs/types/SetFee.html new file mode 100644 index 0000000000..d7de855b63 --- /dev/null +++ b/docs/types/SetFee.html @@ -0,0 +1,361 @@ +SetFee | xrpl
    +
    + +
    +
    +
    +
    + +

    Type alias SetFee

    +
    SetFee: {
        TransactionType: "SetFee";
    } & (SetFeePreAmendment | SetFeePostAmendment)
    +

    Marks a change in transaction cost or reserve requirements as a result of Fee Voting.

    +

    The output will be based on the status of the XRPFees amendment at the time of this transaction.

    + +
    +
    +

    Type declaration

    +
      +
    • +
      TransactionType: "SetFee"
    +
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/types/StateAccountingFinal.html b/docs/types/StateAccountingFinal.html new file mode 100644 index 0000000000..6de618b58f --- /dev/null +++ b/docs/types/StateAccountingFinal.html @@ -0,0 +1,348 @@ +StateAccountingFinal | xrpl
    +
    + +
    +
    +
    +
    + +

    Type alias StateAccountingFinal

    +
    StateAccountingFinal: Record<Exclude<ServerState, "validating" | "proposing">, StateAccounting>
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/types/Stream.html b/docs/types/Stream.html index 9a06390fba..8001834c62 100644 --- a/docs/types/Stream.html +++ b/docs/types/Stream.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -Stream | xrpl
    +Stream | xrpl
    -
    + - +
    +
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +

    Theme

    + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/types/StreamType.html b/docs/types/StreamType.html new file mode 100644 index 0000000000..12f510a028 --- /dev/null +++ b/docs/types/StreamType.html @@ -0,0 +1,348 @@ +StreamType | xrpl
    +
    + +
    +
    +
    +
    + +

    Type alias StreamType

    +
    StreamType: "consensus" | "ledger" | "manifests" | "peer_status" | "transactions" | "transactions_proposed" | "server" | "validations"
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/types/SubmittableTransaction.html b/docs/types/SubmittableTransaction.html new file mode 100644 index 0000000000..3c03ed45d5 --- /dev/null +++ b/docs/types/SubmittableTransaction.html @@ -0,0 +1,351 @@ +SubmittableTransaction | xrpl
    +
    + +
    +
    + +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/types/Transaction.html b/docs/types/Transaction.html index 61f13ecfe9..9ef0107ee1 100644 --- a/docs/types/Transaction.html +++ b/docs/types/Transaction.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -Transaction | xrpl
    +Transaction | xrpl
    -
    + - +
    +
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +

    Theme

    + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/types/TransactionMetadata.html b/docs/types/TransactionMetadata.html new file mode 100644 index 0000000000..e332e621d8 --- /dev/null +++ b/docs/types/TransactionMetadata.html @@ -0,0 +1,353 @@ +TransactionMetadata | xrpl
    +
    + +
    +
    +
    +
    + +

    Type alias TransactionMetadata<T>

    +
    TransactionMetadata<T>: T extends Payment
        ? PaymentMetadata
        : T extends NFTokenMint
            ? NFTokenMintMetadata
            : T extends NFTokenCreateOffer
                ? NFTokenCreateOfferMetadata
                : T extends NFTokenAcceptOffer
                    ? NFTokenAcceptOfferMetadata
                    : T extends NFTokenCancelOffer
                        ? NFTokenCancelOfferMetadata
                        : TransactionMetadataBase
    +
    +

    Type Parameters

    +
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/variables/LedgerEntry.AMENDMENTS_ID.html b/docs/variables/LedgerEntry.AMENDMENTS_ID.html new file mode 100644 index 0000000000..b7787342e7 --- /dev/null +++ b/docs/variables/LedgerEntry.AMENDMENTS_ID.html @@ -0,0 +1,392 @@ +AMENDMENTS_ID | xrpl
    +
    + +
    +
    +
    +
    + +

    Variable AMENDMENTS_IDConst

    +
    AMENDMENTS_ID: "7DB0788C020F02780A673DC74757F23823FA3014C1866E72CC4CD8B226CD6EF4" = '7DB0788C020F02780A673DC74757F23823FA3014C1866E72CC4CD8B226CD6EF4'
    +

    The unique id for the Amendments object https://xrpl.org/amendments-object.html#amendments-id-format

    +
    +
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/variables/LedgerEntry.FEE_SETTINGS_ID.html b/docs/variables/LedgerEntry.FEE_SETTINGS_ID.html new file mode 100644 index 0000000000..9a629fc495 --- /dev/null +++ b/docs/variables/LedgerEntry.FEE_SETTINGS_ID.html @@ -0,0 +1,392 @@ +FEE_SETTINGS_ID | xrpl
    +
    + +
    +
    +
    +
    + +

    Variable FEE_SETTINGS_IDConst

    +
    FEE_SETTINGS_ID: "4BC50C9B0D8515D3EAAE1E74B29A95804346C491EE1A95BF25E4AAB854A6A651" = '4BC50C9B0D8515D3EAAE1E74B29A95804346C491EE1A95BF25E4AAB854A6A651'
    +

    The unique id for the FeeSettings object https://xrpl.org/feesettings.html#feesettings-id-format

    +
    +
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/variables/LedgerEntry.NEGATIVE_UNL_ID.html b/docs/variables/LedgerEntry.NEGATIVE_UNL_ID.html new file mode 100644 index 0000000000..9e51a47a4f --- /dev/null +++ b/docs/variables/LedgerEntry.NEGATIVE_UNL_ID.html @@ -0,0 +1,392 @@ +NEGATIVE_UNL_ID | xrpl
    +
    + +
    +
    +
    +
    + +

    Variable NEGATIVE_UNL_IDConst

    +
    NEGATIVE_UNL_ID: "2E8A59AA9D3B5B186B0B9E0F62E6C02587CA74A4D778938E957B6357D364B244" = '2E8A59AA9D3B5B186B0B9E0F62E6C02587CA74A4D778938E957B6357D364B244'
    + +
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/variables/hashes.html b/docs/variables/hashes.html index 0b27b1aac5..14cdf4c092 100644 --- a/docs/variables/hashes.html +++ b/docs/variables/hashes.html @@ -4,7 +4,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M7HKJJ3'); -hashes | xrpl
    +hashes | xrpl
    -
    +

    Variable hashesConst

    -
    hashes: {
        hashAccountRoot: ((address: string) => string);
        hashEscrow: ((address: string, sequence: number) => string);
        hashLedger: ((ledger: Ledger, options?: {
            computeTreeHashes?: boolean;
        }) => string);
        hashLedgerHeader: ((ledgerHeader: Ledger) => string);
        hashOfferId: ((address: string, sequence: number) => string);
        hashPaymentChannel: ((address: string, dstAddress: string, sequence: number) => string);
        hashSignedTx: ((tx: string | Transaction) => string);
        hashSignerListId: ((address: string) => string);
        hashStateTree: ((entries: LedgerEntry[]) => string);
        hashTrustline: ((address1: string, address2: string, currency: string) => string);
        hashTx: ((txBlobHex: string) => string);
        hashTxTree: ((transactions: Object[]) => string);
    } = ...
    +
    hashes: {
        hashAccountRoot: ((address) => string);
        hashEscrow: ((address, sequence) => string);
        hashLedger: ((ledger, options?) => string);
        hashLedgerHeader: ((ledgerHeader) => string);
        hashOfferId: ((address, sequence) => string);
        hashPaymentChannel: ((address, dstAddress, sequence) => string);
        hashSignedTx: ((tx) => string);
        hashSignerListId: ((address) => string);
        hashStateTree: ((entries) => string);
        hashTrustline: ((address1, address2, currency) => string);
        hashTx: ((txBlobHex) => string);
        hashTxTree: ((transactions) => string);
    } = ...

    Type declaration

    • -
      hashAccountRoot: ((address: string) => string)
      +
      hashAccountRoot: ((address) => string)
      • -
          -
        • (address: string): string
        • +
            +
          • (address): string
          • Compute AccountRoot Ledger Object Index.

            All objects in a ledger's state tree have a unique Index. @@ -38,93 +38,94 @@

            hashAccountRoot:

            See Ledger Object Indexes.

            - -

            Returns

            The Ledger Object Index for the account.

            Parameters

            • -
              address: string
              +
              address: string

              The classic account address.

            -

            Returns string

      • +

        Returns string

        The Ledger Object Index for the account.

        + +
  • -
    hashEscrow: ((address: string, sequence: number) => string)
    +
    hashEscrow: ((address, sequence) => string)
    • -
        -
      • (address: string, sequence: number): string
      • +
          +
        • (address, sequence): string
        • Compute the Hash of an Escrow LedgerEntry.

          - -

          Returns

          The hash of the Escrow LedgerEntry.

          Parameters

          • -
            address: string
            +
            address: string

            Address of the Escrow.

          • -
            sequence: number
            +
            sequence: number

            OfferSequence of the Escrow.

          -

          Returns string

    • +

      Returns string

      The hash of the Escrow LedgerEntry.

      + +
  • -
    hashLedger: ((ledger: Ledger, options?: {
        computeTreeHashes?: boolean;
    }) => string)
    +
    hashLedger: ((ledger, options?) => string)
    • -
        -
      • (ledger: Ledger, options?: {
            computeTreeHashes?: boolean;
        }): string
      • +
          +
        • (ledger, options?): string
        • Compute the hash of a ledger.

          - -

          Returns

          The has of ledger.

          Parameters

          • -
            ledger: Ledger
            +
            ledger: Ledger

            Ledger to compute the hash for.

          • -
            options: {
                computeTreeHashes?: boolean;
            } = {}
            +
            options: {
                computeTreeHashes?: boolean;
            } = {}

            Allow client to recompute Transaction and State Hashes.

            • -
              Optional computeTreeHashes?: boolean
              +
              Optional computeTreeHashes?: boolean

              Whether to recompute the Transaction and State Hashes.

              -
          -

          Returns string

    • +
  • +
    +

    Returns string

    The has of ledger.

    + +
  • -
    hashLedgerHeader: ((ledgerHeader: Ledger) => string)
    +
    hashLedgerHeader: ((ledgerHeader) => string)
    • -
        -
      • (ledgerHeader: Ledger): string
      • +
          +
        • (ledgerHeader): string
        • Compute the hash of a ledger.

          - -

          Returns

          The hash of the ledger.

          Parameters

          • -
            ledgerHeader: Ledger
            +
            ledgerHeader: Ledger

            Ledger to compute the hash of.

          -

          Returns string

    • +

      Returns string

      The hash of the ledger.

      + +
  • -
    hashOfferId: ((address: string, sequence: number) => string)
    +
    hashOfferId: ((address, sequence) => string)
    • -
        -
      • (address: string, sequence: number): string
      • +
          +
        • (address, sequence): string
        • Offer Index Format.

          The Index of a Offer object is the SHA-512Half of the following values, concatenated in order:

          @@ -134,75 +135,75 @@
          hashOfferId: The Sequence number of the OfferCreate transaction that created the offer.

        This method computes an Offer Index.

        - -

        Returns

        The Index of the account's Offer object.

  • Parameters

    • -
      address: string
      +
      address: string

      The classic account address of the SignerList owner (starting with r).

    • -
      sequence: number
      +
      sequence: number

      Sequence of the Offer.

    -

    Returns string

    +

    Returns string

    The Index of the account's Offer object.

    + +
  • -
    hashPaymentChannel: ((address: string, dstAddress: string, sequence: number) => string)
    +
    hashPaymentChannel: ((address, dstAddress, sequence) => string)
    • -
        -
      • (address: string, dstAddress: string, sequence: number): string
      • +
          +
        • (address, dstAddress, sequence): string
        • Compute the hash of a Payment Channel.

          - -

          Returns

          Hash of the Payment Channel.

          Parameters

          • -
            address: string
            +
            address: string

            Account of the Payment Channel.

          • -
            dstAddress: string
            +
            dstAddress: string

            Destination Account of the Payment Channel.

          • -
            sequence: number
            +
            sequence: number

            Sequence number of the Transaction that created the Payment Channel.

          -

          Returns string

    • +

      Returns string

      Hash of the Payment Channel.

      + +
  • -
    hashSignedTx: ((tx: string | Transaction) => string)
    +
    hashSignedTx: ((tx) => string)
    • -
        -
      • (tx: string | Transaction): string
      • +
          +
        • (tx): string
        • Hashes the Transaction object as the ledger does. Throws if the transaction is unsigned.

          - -

          Returns

          A hash of tx.

          - -

          Throws

          ValidationError if the Transaction is unsigned.\

          Parameters

          • -
            tx: string | Transaction
            +
            tx: string | Transaction

            A transaction to hash. Tx may be in binary blob form. Tx must be signed.

          -

          Returns string

    • +

      Returns string

      A hash of tx.

      + +
      +

      Throws

      ValidationError if the Transaction is unsigned.\

      +
  • -
    hashSignerListId: ((address: string) => string)
    +
    hashSignerListId: ((address) => string)
    • -
        -
      • (address: string): string
      • +
          +
        • (address): string
        • SignerList Index Format.

          The Index of a SignerList object is the SHA-512Half of the following values, concatenated in order:

          @@ -212,108 +213,110 @@
          hashSignerListId: The SignerListID (currently always 0).

        This method computes a SignerList Ledger Object Index.

        - -

        Returns

        The Index of the account's SignerList object.

  • Parameters

    • -
      address: string
      +
      address: string

      The classic account address of the SignerList owner (starting with r).

    -

    Returns string

    +

    Returns string

    The Index of the account's SignerList object.

    + +
  • -
    hashStateTree: ((entries: LedgerEntry[]) => string)
    +
    hashStateTree: ((entries) => string)
    • -
        -
      • (entries: LedgerEntry[]): string
      • +
          +
        • (entries): string
        • Compute the state hash of a list of LedgerEntries.

          - -

          Returns

          Hash of SHAMap that consists of all entries.

          Parameters

          -

          Returns string

    • +

      Returns string

      Hash of SHAMap that consists of all entries.

      + +
  • -
    hashTrustline: ((address1: string, address2: string, currency: string) => string)
    +
    hashTrustline: ((address1, address2, currency) => string)
    • -
        -
      • (address1: string, address2: string, currency: string): string
      • +
          +
        • (address1, address2, currency): string
        • Compute the hash of a Trustline.

          - -

          Returns

          The hash of the Trustline.

          Parameters

          • -
            address1: string
            +
            address1: string

            One of the addresses in the Trustline.

          • -
            address2: string
            +
            address2: string

            The other address in the Trustline.

          • -
            currency: string
            +
            currency: string

            Currency in the Trustline.

          -

          Returns string

    • +

      Returns string

      The hash of the Trustline.

      + +
  • -
    hashTx: ((txBlobHex: string) => string)
    +
    hashTx: ((txBlobHex) => string)
    • -
        -
      • (txBlobHex: string): string
      • +
          +
        • (txBlobHex): string
        • Hash the given binary transaction data with the single-signing prefix.

          See Serialization Format.

          - -

          Returns

          The hash to sign.

          Parameters

          • -
            txBlobHex: string
            +
            txBlobHex: string

            The binary transaction blob as a hexadecimal string.

          -

          Returns string

    • +

      Returns string

      The hash to sign.

      + +
  • -
    hashTxTree: ((transactions: Object[]) => string)
    +
    hashTxTree: ((transactions) => string)
    • -
        -
      • (transactions: Object[]): string
      • +
          +
        • (transactions): string
        • Compute the root hash of the SHAMap containing all transactions.

          - -

          Returns

          The root hash of the SHAMap.

          Parameters

          • -
            transactions: Object[]
            +
            transactions: Object[]

            List of Transactions.

          -

          Returns string

  • +
    - +
    +
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file +

    Theme

    + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/karma.config.js b/karma.config.js new file mode 100644 index 0000000000..60ce9a5500 --- /dev/null +++ b/karma.config.js @@ -0,0 +1,28 @@ +module.exports = function (config) { + config.set({ + plugins: ["karma-webpack", "karma-jasmine", "karma-chrome-launcher"], + + // frameworks to use + // available frameworks: https://npmjs.org/browse/keyword/karma-adapter + frameworks: ["jasmine"], + + // preprocess matching files before serving them to the browser + // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor + preprocessors: { + // Use webpack to bundle our test files + "test/**/*.test.ts": ["webpack"], + }, + + browsers: ["ChromeHeadless"], + // runs only one browser at a time + concurrency: 1, + // CI mode + singleRun: true, + client: { + jasmine: { + // ensures that tests are run in order instead of a random order + random: false, + }, + }, + }); +}; diff --git a/package-lock.json b/package-lock.json index c65502200a..570f3ec8b2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "xrpl.js", - "lockfileVersion": 2, + "lockfileVersion": 3, "requires": true, "packages": { "": { @@ -9,30 +9,25 @@ "./packages/*" ], "dependencies": { - "@transia/ripple-address-codec": "file:packages/ripple-address-codec", - "@transia/ripple-binary-codec": "file:packages/ripple-binary-codec", - "@transia/ripple-keypairs": "file:packages/ripple-keypairs", - "@transia/xrpl": "file:packages/xrpl" + "@xrplf/isomorphic": "file:packages/isomorphic", + "@xrplf/secret-numbers": "file:packages/secret-numbers", + "ripple-address-codec": "file:packages/ripple-address-codec", + "ripple-binary-codec": "file:packages/ripple-binary-codec", + "ripple-keypairs": "file:packages/ripple-keypairs", + "xrpl": "file:packages/xrpl" }, "devDependencies": { - "@types/brorand": "^1.0.30", "@types/chai": "^4.2.21", - "@types/create-hash": "^1.2.2", "@types/jest": "^29.2.2", "@types/lodash": "^4.14.136", - "@types/node": "^14.18.35", - "@types/puppeteer": "5.4.6", + "@types/node": "^18.19.29", "@types/ws": "^8.2.0", "@typescript-eslint/eslint-plugin": "^5.28.0", - "@typescript-eslint/parser": "^5.28 .0", + "@typescript-eslint/parser": "^5.28.0", "@xrplf/eslint-config": "^1.9.1", "@xrplf/prettier-config": "^1.9.1", - "assert": "^2.0.0", - "buffer": "^6.0.2", "chai": "^4.3.4", "copyfiles": "^2.4.1", - "crypto-browserify": "^3.12.0", - "ejs": "^3.0.1", "eslint": "^8.18.0", "eslint-plugin-array-func": "^3.1.7", "eslint-plugin-consistent-default-export-name": "^0.0.15", @@ -42,41 +37,41 @@ "eslint-plugin-node": "^11.1.0", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-tsdoc": "^0.2.16", - "eventemitter2": "^6.0.0", "expect": "^29.3.1", - "https-browserify": "^1.0.0", "jest": "^29.3.1", "jest-mock": "^29.3.1", "lerna": "^4.0.0", + "lodash": "^4.17.21", "npm-run-all": "^4.1.5", - "nyc": "^15", - "path-browserify": "1.0.1", "prettier": "^2.3.2", "process": "^0.11.10", - "puppeteer": "^13.7.0", - "source-map-loader": "^3.0.1", + "source-map-loader": "^5.0.0", "source-map-support": "^0.5.16", - "stream-browserify": "^3.0.0", - "stream-http": "3.2.0", "ts-jest": "^29.0.3", "ts-loader": "^9.2.5", "ts-node": "^10.2.1", - "typescript": "^4.4.2", - "url": "^0.11.0", - "webpack": "^5.6.0", + "typescript": "^5.1.6", + "webpack": "^5.81.0", "webpack-bundle-analyzer": "^4.1.0", "webpack-cli": "^5.0.1" }, "engines": { - "node": ">=12.0.0", - "npm": ">=7.0.0 < 9.0.0" + "node": ">=18.0.0", + "npm": ">=7.10.0 < 10.0.0" + } + }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, "node_modules/@ampproject/remapping": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@jridgewell/gen-mapping": "^0.3.0", "@jridgewell/trace-mapping": "^0.3.9" @@ -86,47 +81,109 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz", - "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==", + "version": "7.22.13", "dev": true, + "license": "MIT", "dependencies": { - "@babel/highlight": "^7.18.6" + "@babel/highlight": "^7.22.13", + "chalk": "^2.4.2" }, "engines": { "node": ">=6.9.0" } }, + "node_modules/@babel/code-frame/node_modules/ansi-styles": { + "version": "3.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/chalk": { + "version": "2.4.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/color-convert": { + "version": "1.9.3", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/code-frame/node_modules/color-name": { + "version": "1.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/@babel/code-frame/node_modules/escape-string-regexp": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/code-frame/node_modules/has-flag": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/supports-color": { + "version": "5.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/@babel/compat-data": { - "version": "7.21.7", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.7.tgz", - "integrity": "sha512-KYMqFYTaenzMK4yUtf4EW9wc4N9ef80FsbMtkwool5zpwl4YrT1SdWYSTRcT94KO4hannogdS+LxY7L+arP3gA==", + "version": "7.22.9", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.21.8", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.8.tgz", - "integrity": "sha512-YeM22Sondbo523Sz0+CirSPnbj9bG3P0CdHcBZdqUuaeOaYEFbOLoGU7lebvGP6P5J/WE9wOn7u7C4J9HvS1xQ==", + "version": "7.22.11", "dev": true, + "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.21.4", - "@babel/generator": "^7.21.5", - "@babel/helper-compilation-targets": "^7.21.5", - "@babel/helper-module-transforms": "^7.21.5", - "@babel/helpers": "^7.21.5", - "@babel/parser": "^7.21.8", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.5", - "@babel/types": "^7.21.5", + "@babel/code-frame": "^7.22.10", + "@babel/generator": "^7.22.10", + "@babel/helper-compilation-targets": "^7.22.10", + "@babel/helper-module-transforms": "^7.22.9", + "@babel/helpers": "^7.22.11", + "@babel/parser": "^7.22.11", + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.11", + "@babel/types": "^7.22.11", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", - "semver": "^6.3.0" + "json5": "^2.2.3", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -138,26 +195,23 @@ }, "node_modules/@babel/core/node_modules/convert-source-map": { "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/generator": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.5.tgz", - "integrity": "sha512-SrKK/sRv8GesIW1bDagf9cCG38IOMYZusoe1dfg0D8aiUe3Amvoj1QtjTPAWcfrZFvIwlleLb0gxzQidL9w14w==", + "version": "7.23.0", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.21.5", + "@babel/types": "^7.23.0", "@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" @@ -167,180 +221,162 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.5.tgz", - "integrity": "sha512-1RkbFGUKex4lvsB9yhIfWltJM5cZKUftB2eNajaDv3dCMEp49iBG0K14uH8NnX9IPux2+mK7JGEOB0jn48/J6w==", + "version": "7.22.10", "dev": true, + "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.21.5", - "@babel/helper-validator-option": "^7.21.0", - "browserslist": "^4.21.3", + "@babel/compat-data": "^7.22.9", + "@babel/helper-validator-option": "^7.22.5", + "browserslist": "^4.21.9", "lru-cache": "^5.1.1", - "semver": "^6.3.0" + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.21.5.tgz", - "integrity": "sha512-IYl4gZ3ETsWocUWgsFZLM5i1BYx9SoemminVEXadgLBa9TdeorzgLKm8wWLA6J1N/kT3Kch8XIk1laNzYoHKvQ==", + "version": "7.22.20", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-function-name": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", - "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", + "version": "7.23.0", "dev": true, + "license": "MIT", "dependencies": { - "@babel/template": "^7.20.7", - "@babel/types": "^7.21.0" + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "version": "7.22.5", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz", - "integrity": "sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==", + "version": "7.22.5", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.21.4" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.5.tgz", - "integrity": "sha512-bI2Z9zBGY2q5yMHoBvJ2a9iX3ZOAzJPm7Q8Yz6YeoUjU/Cvhmi2G4QyTNyPBqqXSgTjUxRg3L0xV45HvkNWWBw==", + "version": "7.22.9", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.21.5", - "@babel/helper-module-imports": "^7.21.4", - "@babel/helper-simple-access": "^7.21.5", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.5", - "@babel/types": "^7.21.5" + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.5" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.21.5.tgz", - "integrity": "sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg==", + "version": "7.22.5", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-simple-access": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.21.5.tgz", - "integrity": "sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg==", + "version": "7.22.5", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.21.5" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "version": "7.22.6", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.21.5.tgz", - "integrity": "sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w==", + "version": "7.22.5", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "version": "7.22.20", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", - "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", + "version": "7.22.5", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.5.tgz", - "integrity": "sha512-BSY+JSlHxOmGsPTydUkPf1MdMQ3M81x5xGCOVgWM3G8XH77sJ292Y2oqcp0CbbgxhqBuI46iUz1tT7hqP7EfgA==", + "version": "7.22.11", "dev": true, + "license": "MIT", "dependencies": { - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.5", - "@babel/types": "^7.21.5" + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.11", + "@babel/types": "^7.22.11" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "version": "7.22.20", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", "js-tokens": "^4.0.0" }, "engines": { @@ -349,9 +385,8 @@ }, "node_modules/@babel/highlight/node_modules/ansi-styles": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^1.9.0" }, @@ -361,9 +396,8 @@ }, "node_modules/@babel/highlight/node_modules/chalk": { "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -375,42 +409,37 @@ }, "node_modules/@babel/highlight/node_modules/color-convert": { "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "1.1.3" } }, "node_modules/@babel/highlight/node_modules/color-name": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@babel/highlight/node_modules/escape-string-regexp": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.0" } }, "node_modules/@babel/highlight/node_modules/has-flag": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/@babel/highlight/node_modules/supports-color": { "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^3.0.0" }, @@ -419,10 +448,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.21.8", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.8.tgz", - "integrity": "sha512-6zavDGdzG3gUqAdWvlLFfk+36RilI+Pwyuuh7HItyeScCWP3k6i8vKclAQ0bM/0y/Kz/xiwvxhMv9MgTJP5gmA==", + "version": "7.23.0", "dev": true, + "license": "MIT", "bin": { "parser": "bin/babel-parser.js" }, @@ -432,9 +460,8 @@ }, "node_modules/@babel/plugin-syntax-async-generators": { "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -444,9 +471,8 @@ }, "node_modules/@babel/plugin-syntax-bigint": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -456,9 +482,8 @@ }, "node_modules/@babel/plugin-syntax-class-properties": { "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.12.13" }, @@ -468,9 +493,8 @@ }, "node_modules/@babel/plugin-syntax-import-meta": { "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -480,9 +504,8 @@ }, "node_modules/@babel/plugin-syntax-json-strings": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -491,12 +514,11 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.21.4.tgz", - "integrity": "sha512-5hewiLct5OKyh6PLKEYaFclcqtIgCb6bmELouxjF6up5q3Sov7rOayW4RwhbaBL0dit8rA80GNfY+UuDp2mBbQ==", + "version": "7.22.5", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -507,9 +529,8 @@ }, "node_modules/@babel/plugin-syntax-logical-assignment-operators": { "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -519,9 +540,8 @@ }, "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -531,9 +551,8 @@ }, "node_modules/@babel/plugin-syntax-numeric-separator": { "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -543,9 +562,8 @@ }, "node_modules/@babel/plugin-syntax-object-rest-spread": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -555,9 +573,8 @@ }, "node_modules/@babel/plugin-syntax-optional-catch-binding": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -567,9 +584,8 @@ }, "node_modules/@babel/plugin-syntax-optional-chaining": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -579,9 +595,8 @@ }, "node_modules/@babel/plugin-syntax-top-level-await": { "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -593,12 +608,11 @@ } }, "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.21.4.tgz", - "integrity": "sha512-xz0D39NvhQn4t4RNsHmDnnsaQizIlUkdtYvLs8La1BlfjQ6JEwxkJGeqJMW2tAXx+q6H+WFuUTXNdYVpEya0YA==", + "version": "7.22.5", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -608,46 +622,43 @@ } }, "node_modules/@babel/runtime": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.5.tgz", - "integrity": "sha512-8jI69toZqqcsnqGGqwGS4Qb1VwLOEp4hz+CXPywcvjs60u3B4Pom/U/7rm4W8tMOYEB+E9wgD0mW1l3r8qlI9Q==", + "version": "7.22.11", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "regenerator-runtime": "^0.13.11" + "regenerator-runtime": "^0.14.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/template": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", - "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", + "version": "7.22.15", "dev": true, + "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7" + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.5.tgz", - "integrity": "sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.21.4", - "@babel/generator": "^7.21.5", - "@babel/helper-environment-visitor": "^7.21.5", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.21.5", - "@babel/types": "^7.21.5", + "version": "7.23.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.0", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.0", + "@babel/types": "^7.23.0", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -657,21 +668,19 @@ }, "node_modules/@babel/traverse/node_modules/globals": { "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/@babel/types": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.5.tgz", - "integrity": "sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q==", + "version": "7.23.0", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.21.5", - "@babel/helper-validator-identifier": "^7.19.1", + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20", "to-fast-properties": "^2.0.0" }, "engines": { @@ -680,24 +689,20 @@ }, "node_modules/@bcoe/v8-coverage": { "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@colors/colors": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", - "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.1.90" } }, "node_modules/@cspotcode/source-map-support": { "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/trace-mapping": "0.3.9" }, @@ -707,9 +712,7 @@ }, "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" @@ -717,18 +720,16 @@ }, "node_modules/@discoveryjs/json-ext": { "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", - "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", "dev": true, + "license": "MIT", "engines": { "node": ">=10.0.0" } }, "node_modules/@es-joy/jsdoccomment": { "version": "0.36.1", - "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.36.1.tgz", - "integrity": "sha512-922xqFsTpHs6D0BUiG4toiyPOMc8/jafnWKxz1KWgS4XzKPy2qXf1Pe6UFuNSCQqt6tOuhAWXBNuuyUhJmw9Vg==", "dev": true, + "license": "MIT", "dependencies": { "comment-parser": "1.3.1", "esquery": "^1.4.0", @@ -740,9 +741,8 @@ }, "node_modules/@eslint-community/eslint-utils": { "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", "dev": true, + "license": "MIT", "dependencies": { "eslint-visitor-keys": "^3.3.0" }, @@ -754,23 +754,21 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz", - "integrity": "sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==", + "version": "4.8.0", "dev": true, + "license": "MIT", "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, "node_modules/@eslint/eslintrc": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.3.tgz", - "integrity": "sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==", + "version": "2.1.4", "dev": true, + "license": "MIT", "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.5.2", + "espree": "^9.6.0", "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", @@ -786,34 +784,25 @@ } }, "node_modules/@eslint/js": { - "version": "8.40.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.40.0.tgz", - "integrity": "sha512-ElyB54bJIhXQYVKjDSvCkPO1iU1tSAeVQJbllWJq1XQSmmA4dgFk8CbiBGpiOPxleE48vDogxCtmMYku4HSVLA==", + "version": "8.57.0", "dev": true, + "license": "MIT", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/@gar/promisify": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", - "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", - "dev": true - }, - "node_modules/@geut/browser-node-core": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/@geut/browser-node-core/-/browser-node-core-2.0.13.tgz", - "integrity": "sha512-xzvcI7Ppew8sEQEvomkROEgIi6xOnDrjrrx+vePF49ESvmTYDsHmfkz/dsnIpX4W3RU821eUBmN/aIA7Kifxhg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@humanwhocodes/config-array": { - "version": "0.11.8", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", - "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", + "version": "0.11.14", "dev": true, + "license": "Apache-2.0", "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", "minimatch": "^3.0.5" }, "engines": { @@ -822,9 +811,8 @@ }, "node_modules/@humanwhocodes/module-importer": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=12.22" }, @@ -834,25 +822,22 @@ } }, "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true + "version": "2.0.2", + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/@hutson/parse-repository-url": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz", - "integrity": "sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=6.9.0" } }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", "dev": true, + "license": "ISC", "dependencies": { "camelcase": "^5.3.1", "find-up": "^4.1.0", @@ -866,18 +851,16 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, + "license": "MIT", "dependencies": { "sprintf-js": "~1.0.2" } }, "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -888,9 +871,8 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, + "license": "MIT", "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -901,9 +883,8 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^4.1.0" }, @@ -913,9 +894,8 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, + "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -928,9 +908,8 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^2.2.0" }, @@ -940,33 +919,30 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/@istanbuljs/schema": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/@jest/console": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.5.0.tgz", - "integrity": "sha512-NEpkObxPwyw/XxZVLPmAGKE89IQRp4puc6IQRPru6JKd1M3fW9v1xM1AnzIJE65hbCkzQAdnL8P47e9hzhiYLQ==", + "version": "29.7.0", "dev": true, + "license": "MIT", "dependencies": { - "@jest/types": "^29.5.0", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", - "jest-message-util": "^29.5.0", - "jest-util": "^29.5.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", "slash": "^3.0.0" }, "engines": { @@ -974,37 +950,36 @@ } }, "node_modules/@jest/core": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.5.0.tgz", - "integrity": "sha512-28UzQc7ulUrOQw1IsN/kv1QES3q2kkbl/wGslyhAclqZ/8cMdB5M68BffkIdSJgKBUt50d3hbwJ92XESlE7LiQ==", + "version": "29.7.0", "dev": true, + "license": "MIT", "dependencies": { - "@jest/console": "^29.5.0", - "@jest/reporters": "^29.5.0", - "@jest/test-result": "^29.5.0", - "@jest/transform": "^29.5.0", - "@jest/types": "^29.5.0", + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", "ci-info": "^3.2.0", "exit": "^0.1.2", "graceful-fs": "^4.2.9", - "jest-changed-files": "^29.5.0", - "jest-config": "^29.5.0", - "jest-haste-map": "^29.5.0", - "jest-message-util": "^29.5.0", - "jest-regex-util": "^29.4.3", - "jest-resolve": "^29.5.0", - "jest-resolve-dependencies": "^29.5.0", - "jest-runner": "^29.5.0", - "jest-runtime": "^29.5.0", - "jest-snapshot": "^29.5.0", - "jest-util": "^29.5.0", - "jest-validate": "^29.5.0", - "jest-watcher": "^29.5.0", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", "micromatch": "^4.0.4", - "pretty-format": "^29.5.0", + "pretty-format": "^29.7.0", "slash": "^3.0.0", "strip-ansi": "^6.0.0" }, @@ -1021,89 +996,83 @@ } }, "node_modules/@jest/environment": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.5.0.tgz", - "integrity": "sha512-5FXw2+wD29YU1d4I2htpRX7jYnAyTRjP2CsXQdo9SAM8g3ifxWPSV0HnClSn71xwctr0U3oZIIH+dtbfmnbXVQ==", + "version": "29.7.0", "dev": true, + "license": "MIT", "dependencies": { - "@jest/fake-timers": "^29.5.0", - "@jest/types": "^29.5.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", - "jest-mock": "^29.5.0" + "jest-mock": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/expect": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.5.0.tgz", - "integrity": "sha512-PueDR2HGihN3ciUNGr4uelropW7rqUfTiOn+8u0leg/42UhblPxHkfoh0Ruu3I9Y1962P3u2DY4+h7GVTSVU6g==", + "version": "29.7.0", "dev": true, + "license": "MIT", "dependencies": { - "expect": "^29.5.0", - "jest-snapshot": "^29.5.0" + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/expect-utils": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.5.0.tgz", - "integrity": "sha512-fmKzsidoXQT2KwnrwE0SQq3uj8Z763vzR8LnLBwC2qYWEFpjX8daRsk6rHUM1QvNlEW/UJXNXm59ztmJJWs2Mg==", + "version": "29.7.0", "dev": true, + "license": "MIT", "dependencies": { - "jest-get-type": "^29.4.3" + "jest-get-type": "^29.6.3" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/fake-timers": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.5.0.tgz", - "integrity": "sha512-9ARvuAAQcBwDAqOnglWq2zwNIRUDtk/SCkp/ToGEhFv5r86K21l+VEs0qNTaXtyiY0lEePl3kylijSYJQqdbDg==", + "version": "29.7.0", "dev": true, + "license": "MIT", "dependencies": { - "@jest/types": "^29.5.0", + "@jest/types": "^29.6.3", "@sinonjs/fake-timers": "^10.0.2", "@types/node": "*", - "jest-message-util": "^29.5.0", - "jest-mock": "^29.5.0", - "jest-util": "^29.5.0" + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/globals": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.5.0.tgz", - "integrity": "sha512-S02y0qMWGihdzNbUiqSAiKSpSozSuHX5UYc7QbnHP+D9Lyw8DgGGCinrN9uSuHPeKgSSzvPom2q1nAtBvUsvPQ==", + "version": "29.7.0", "dev": true, + "license": "MIT", "dependencies": { - "@jest/environment": "^29.5.0", - "@jest/expect": "^29.5.0", - "@jest/types": "^29.5.0", - "jest-mock": "^29.5.0" + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/reporters": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.5.0.tgz", - "integrity": "sha512-D05STXqj/M8bP9hQNSICtPqz97u7ffGzZu+9XLucXhkOFBqKcXe04JLZOgIekOxdb73MAoBUFnqvf7MCpKk5OA==", + "version": "29.7.0", "dev": true, + "license": "MIT", "dependencies": { "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^29.5.0", - "@jest/test-result": "^29.5.0", - "@jest/transform": "^29.5.0", - "@jest/types": "^29.5.0", - "@jridgewell/trace-mapping": "^0.3.15", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", "@types/node": "*", "chalk": "^4.0.0", "collect-v8-coverage": "^1.0.0", @@ -1111,13 +1080,13 @@ "glob": "^7.1.3", "graceful-fs": "^4.2.9", "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-instrument": "^6.0.0", "istanbul-lib-report": "^3.0.0", "istanbul-lib-source-maps": "^4.0.0", "istanbul-reports": "^3.1.3", - "jest-message-util": "^29.5.0", - "jest-util": "^29.5.0", - "jest-worker": "^29.5.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", "slash": "^3.0.0", "string-length": "^4.0.1", "strip-ansi": "^6.0.0", @@ -1135,25 +1104,38 @@ } } }, + "node_modules/@jest/reporters/node_modules/istanbul-lib-instrument": { + "version": "6.0.1", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@jest/schemas": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.4.3.tgz", - "integrity": "sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg==", + "version": "29.6.3", "dev": true, + "license": "MIT", "dependencies": { - "@sinclair/typebox": "^0.25.16" + "@sinclair/typebox": "^0.27.8" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/source-map": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.4.3.tgz", - "integrity": "sha512-qyt/mb6rLyd9j1jUts4EQncvS6Yy3PM9HghnNv86QBlV+zdL2inCdK1tuVlL+J+lpiw2BI67qXOrX3UurBqQ1w==", + "version": "29.6.3", "dev": true, + "license": "MIT", "dependencies": { - "@jridgewell/trace-mapping": "^0.3.15", + "@jridgewell/trace-mapping": "^0.3.18", "callsites": "^3.0.0", "graceful-fs": "^4.2.9" }, @@ -1162,13 +1144,12 @@ } }, "node_modules/@jest/test-result": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.5.0.tgz", - "integrity": "sha512-fGl4rfitnbfLsrfx1uUpDEESS7zM8JdgZgOCQuxQvL1Sn/I6ijeAVQWGfXI9zb1i9Mzo495cIpVZhA0yr60PkQ==", + "version": "29.7.0", "dev": true, + "license": "MIT", "dependencies": { - "@jest/console": "^29.5.0", - "@jest/types": "^29.5.0", + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", "@types/istanbul-lib-coverage": "^2.0.0", "collect-v8-coverage": "^1.0.0" }, @@ -1177,14 +1158,13 @@ } }, "node_modules/@jest/test-sequencer": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.5.0.tgz", - "integrity": "sha512-yPafQEcKjkSfDXyvtgiV4pevSeyuA6MQr6ZIdVkWJly9vkqjnFfcfhRQqpD5whjoU8EORki752xQmjaqoFjzMQ==", + "version": "29.7.0", "dev": true, + "license": "MIT", "dependencies": { - "@jest/test-result": "^29.5.0", + "@jest/test-result": "^29.7.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.5.0", + "jest-haste-map": "^29.7.0", "slash": "^3.0.0" }, "engines": { @@ -1192,22 +1172,21 @@ } }, "node_modules/@jest/transform": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.5.0.tgz", - "integrity": "sha512-8vbeZWqLJOvHaDfeMuoHITGKSz5qWc9u04lnWrQE3VyuSw604PzQM824ZeX9XSjUCeDiE3GuxZe5UKa8J61NQw==", + "version": "29.7.0", "dev": true, + "license": "MIT", "dependencies": { "@babel/core": "^7.11.6", - "@jest/types": "^29.5.0", - "@jridgewell/trace-mapping": "^0.3.15", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", "babel-plugin-istanbul": "^6.1.1", "chalk": "^4.0.0", "convert-source-map": "^2.0.0", "fast-json-stable-stringify": "^2.1.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.5.0", - "jest-regex-util": "^29.4.3", - "jest-util": "^29.5.0", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", "micromatch": "^4.0.4", "pirates": "^4.0.4", "slash": "^3.0.0", @@ -1218,12 +1197,11 @@ } }, "node_modules/@jest/types": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.5.0.tgz", - "integrity": "sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog==", + "version": "29.6.3", "dev": true, + "license": "MIT", "dependencies": { - "@jest/schemas": "^29.4.3", + "@jest/schemas": "^29.6.3", "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", @@ -1236,9 +1214,8 @@ }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/set-array": "^1.0.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -1249,28 +1226,24 @@ } }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true, + "version": "3.1.1", + "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/set-array": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/source-map": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.3.tgz", - "integrity": "sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg==", + "version": "0.3.5", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/gen-mapping": "^0.3.0", "@jridgewell/trace-mapping": "^0.3.9" @@ -1278,31 +1251,21 @@ }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true + "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", - "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", + "version": "0.3.22", "dev": true, + "license": "MIT", "dependencies": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - }, "node_modules/@lerna/add": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/add/-/add-4.0.0.tgz", - "integrity": "sha512-cpmAH1iS3k8JBxNvnMqrGTTjbY/ZAiKa1ChJzFevMYY3eeqbvhsBKnBcxjRXtdrJ6bd3dCQM+ZtK+0i682Fhng==", "dev": true, + "license": "MIT", "dependencies": { "@lerna/bootstrap": "4.0.0", "@lerna/command": "4.0.0", @@ -1319,11 +1282,15 @@ "node": ">= 10.18.0" } }, + "node_modules/@lerna/add/node_modules/dedent": { + "version": "0.7.0", + "dev": true, + "license": "MIT" + }, "node_modules/@lerna/bootstrap": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/bootstrap/-/bootstrap-4.0.0.tgz", - "integrity": "sha512-RkS7UbeM2vu+kJnHzxNRCLvoOP9yGNgkzRdy4UV2hNalD7EP41bLvRVOwRYQ7fhc2QcbhnKNdOBihYRL0LcKtw==", "dev": true, + "license": "MIT", "dependencies": { "@lerna/command": "4.0.0", "@lerna/filter-options": "4.0.0", @@ -1352,11 +1319,15 @@ "node": ">= 10.18.0" } }, + "node_modules/@lerna/bootstrap/node_modules/dedent": { + "version": "0.7.0", + "dev": true, + "license": "MIT" + }, "node_modules/@lerna/changed": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/changed/-/changed-4.0.0.tgz", - "integrity": "sha512-cD+KuPRp6qiPOD+BO6S6SN5cARspIaWSOqGBpGnYzLb4uWT8Vk4JzKyYtc8ym1DIwyoFXHosXt8+GDAgR8QrgQ==", "dev": true, + "license": "MIT", "dependencies": { "@lerna/collect-updates": "4.0.0", "@lerna/command": "4.0.0", @@ -1369,9 +1340,8 @@ }, "node_modules/@lerna/check-working-tree": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/check-working-tree/-/check-working-tree-4.0.0.tgz", - "integrity": "sha512-/++bxM43jYJCshBiKP5cRlCTwSJdRSxVmcDAXM+1oUewlZJVSVlnks5eO0uLxokVFvLhHlC5kHMc7gbVFPHv6Q==", "dev": true, + "license": "MIT", "dependencies": { "@lerna/collect-uncommitted": "4.0.0", "@lerna/describe-ref": "4.0.0", @@ -1383,9 +1353,8 @@ }, "node_modules/@lerna/child-process": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/child-process/-/child-process-4.0.0.tgz", - "integrity": "sha512-XtCnmCT9eyVsUUHx6y/CTBYdV9g2Cr/VxyseTWBgfIur92/YKClfEtJTbOh94jRT62hlKLqSvux/UhxXVh613Q==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^4.1.0", "execa": "^5.0.0", @@ -1397,9 +1366,8 @@ }, "node_modules/@lerna/clean": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/clean/-/clean-4.0.0.tgz", - "integrity": "sha512-uugG2iN9k45ITx2jtd8nEOoAtca8hNlDCUM0N3lFgU/b1mEQYAPRkqr1qs4FLRl/Y50ZJ41wUz1eazS+d/0osA==", "dev": true, + "license": "MIT", "dependencies": { "@lerna/command": "4.0.0", "@lerna/filter-options": "4.0.0", @@ -1416,9 +1384,8 @@ }, "node_modules/@lerna/cli": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/cli/-/cli-4.0.0.tgz", - "integrity": "sha512-Neaw3GzFrwZiRZv2g7g6NwFjs3er1vhraIniEs0jjVLPMNC4eata0na3GfE5yibkM/9d3gZdmihhZdZ3EBdvYA==", "dev": true, + "license": "MIT", "dependencies": { "@lerna/global-options": "4.0.0", "dedent": "^0.7.0", @@ -1429,11 +1396,15 @@ "node": ">= 10.18.0" } }, + "node_modules/@lerna/cli/node_modules/dedent": { + "version": "0.7.0", + "dev": true, + "license": "MIT" + }, "node_modules/@lerna/collect-uncommitted": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/collect-uncommitted/-/collect-uncommitted-4.0.0.tgz", - "integrity": "sha512-ufSTfHZzbx69YNj7KXQ3o66V4RC76ffOjwLX0q/ab//61bObJ41n03SiQEhSlmpP+gmFbTJ3/7pTe04AHX9m/g==", "dev": true, + "license": "MIT", "dependencies": { "@lerna/child-process": "4.0.0", "chalk": "^4.1.0", @@ -1445,9 +1416,8 @@ }, "node_modules/@lerna/collect-updates": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/collect-updates/-/collect-updates-4.0.0.tgz", - "integrity": "sha512-bnNGpaj4zuxsEkyaCZLka9s7nMs58uZoxrRIPJ+nrmrZYp1V5rrd+7/NYTuunOhY2ug1sTBvTAxj3NZQ+JKnOw==", "dev": true, + "license": "MIT", "dependencies": { "@lerna/child-process": "4.0.0", "@lerna/describe-ref": "4.0.0", @@ -1461,9 +1431,8 @@ }, "node_modules/@lerna/command": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/command/-/command-4.0.0.tgz", - "integrity": "sha512-LM9g3rt5FsPNFqIHUeRwWXLNHJ5NKzOwmVKZ8anSp4e1SPrv2HNc1V02/9QyDDZK/w+5POXH5lxZUI1CHaOK/A==", "dev": true, + "license": "MIT", "dependencies": { "@lerna/child-process": "4.0.0", "@lerna/package-graph": "4.0.0", @@ -1480,11 +1449,15 @@ "node": ">= 10.18.0" } }, + "node_modules/@lerna/command/node_modules/dedent": { + "version": "0.7.0", + "dev": true, + "license": "MIT" + }, "node_modules/@lerna/conventional-commits": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/conventional-commits/-/conventional-commits-4.0.0.tgz", - "integrity": "sha512-CSUQRjJHFrH8eBn7+wegZLV3OrNc0Y1FehYfYGhjLE2SIfpCL4bmfu/ViYuHh9YjwHaA+4SX6d3hR+xkeseKmw==", "dev": true, + "license": "MIT", "dependencies": { "@lerna/validation-error": "4.0.0", "conventional-changelog-angular": "^5.0.12", @@ -1504,9 +1477,8 @@ }, "node_modules/@lerna/create": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/create/-/create-4.0.0.tgz", - "integrity": "sha512-mVOB1niKByEUfxlbKTM1UNECWAjwUdiioIbRQZEeEabtjCL69r9rscIsjlGyhGWCfsdAG5wfq4t47nlDXdLLag==", "dev": true, + "license": "MIT", "dependencies": { "@lerna/child-process": "4.0.0", "@lerna/command": "4.0.0", @@ -1533,9 +1505,8 @@ }, "node_modules/@lerna/create-symlink": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/create-symlink/-/create-symlink-4.0.0.tgz", - "integrity": "sha512-I0phtKJJdafUiDwm7BBlEUOtogmu8+taxq6PtIrxZbllV9hWg59qkpuIsiFp+no7nfRVuaasNYHwNUhDAVQBig==", "dev": true, + "license": "MIT", "dependencies": { "cmd-shim": "^4.1.0", "fs-extra": "^9.1.0", @@ -1545,11 +1516,15 @@ "node": ">= 10.18.0" } }, + "node_modules/@lerna/create/node_modules/dedent": { + "version": "0.7.0", + "dev": true, + "license": "MIT" + }, "node_modules/@lerna/describe-ref": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/describe-ref/-/describe-ref-4.0.0.tgz", - "integrity": "sha512-eTU5+xC4C5Gcgz+Ey4Qiw9nV2B4JJbMulsYJMW8QjGcGh8zudib7Sduj6urgZXUYNyhYpRs+teci9M2J8u+UvQ==", "dev": true, + "license": "MIT", "dependencies": { "@lerna/child-process": "4.0.0", "npmlog": "^4.1.2" @@ -1560,9 +1535,8 @@ }, "node_modules/@lerna/diff": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/diff/-/diff-4.0.0.tgz", - "integrity": "sha512-jYPKprQVg41+MUMxx6cwtqsNm0Yxx9GDEwdiPLwcUTFx+/qKCEwifKNJ1oGIPBxyEHX2PFCOjkK39lHoj2qiag==", "dev": true, + "license": "MIT", "dependencies": { "@lerna/child-process": "4.0.0", "@lerna/command": "4.0.0", @@ -1575,9 +1549,8 @@ }, "node_modules/@lerna/exec": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/exec/-/exec-4.0.0.tgz", - "integrity": "sha512-VGXtL/b/JfY84NB98VWZpIExfhLOzy0ozm/0XaS4a2SmkAJc5CeUfrhvHxxkxiTBLkU+iVQUyYEoAT0ulQ8PCw==", "dev": true, + "license": "MIT", "dependencies": { "@lerna/child-process": "4.0.0", "@lerna/command": "4.0.0", @@ -1593,9 +1566,8 @@ }, "node_modules/@lerna/filter-options": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/filter-options/-/filter-options-4.0.0.tgz", - "integrity": "sha512-vV2ANOeZhOqM0rzXnYcFFCJ/kBWy/3OA58irXih9AMTAlQLymWAK0akWybl++sUJ4HB9Hx12TOqaXbYS2NM5uw==", "dev": true, + "license": "MIT", "dependencies": { "@lerna/collect-updates": "4.0.0", "@lerna/filter-packages": "4.0.0", @@ -1606,11 +1578,15 @@ "node": ">= 10.18.0" } }, + "node_modules/@lerna/filter-options/node_modules/dedent": { + "version": "0.7.0", + "dev": true, + "license": "MIT" + }, "node_modules/@lerna/filter-packages": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/filter-packages/-/filter-packages-4.0.0.tgz", - "integrity": "sha512-+4AJIkK7iIiOaqCiVTYJxh/I9qikk4XjNQLhE3kixaqgMuHl1NQ99qXRR0OZqAWB9mh8Z1HA9bM5K1HZLBTOqA==", "dev": true, + "license": "MIT", "dependencies": { "@lerna/validation-error": "4.0.0", "multimatch": "^5.0.0", @@ -1622,9 +1598,8 @@ }, "node_modules/@lerna/get-npm-exec-opts": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/get-npm-exec-opts/-/get-npm-exec-opts-4.0.0.tgz", - "integrity": "sha512-yvmkerU31CTWS2c7DvmAWmZVeclPBqI7gPVr5VATUKNWJ/zmVcU4PqbYoLu92I9Qc4gY1TuUplMNdNuZTSL7IQ==", "dev": true, + "license": "MIT", "dependencies": { "npmlog": "^4.1.2" }, @@ -1634,9 +1609,8 @@ }, "node_modules/@lerna/get-packed": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/get-packed/-/get-packed-4.0.0.tgz", - "integrity": "sha512-rfWONRsEIGyPJTxFzC8ECb3ZbsDXJbfqWYyeeQQDrJRPnEJErlltRLPLgC2QWbxFgFPsoDLeQmFHJnf0iDfd8w==", "dev": true, + "license": "MIT", "dependencies": { "fs-extra": "^9.1.0", "ssri": "^8.0.1", @@ -1648,9 +1622,8 @@ }, "node_modules/@lerna/github-client": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/github-client/-/github-client-4.0.0.tgz", - "integrity": "sha512-2jhsldZtTKXYUBnOm23Lb0Fx8G4qfSXF9y7UpyUgWUj+YZYd+cFxSuorwQIgk5P4XXrtVhsUesIsli+BYSThiw==", "dev": true, + "license": "MIT", "dependencies": { "@lerna/child-process": "4.0.0", "@octokit/plugin-enterprise-rest": "^6.0.1", @@ -1664,9 +1637,8 @@ }, "node_modules/@lerna/gitlab-client": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/gitlab-client/-/gitlab-client-4.0.0.tgz", - "integrity": "sha512-OMUpGSkeDWFf7BxGHlkbb35T7YHqVFCwBPSIR6wRsszY8PAzCYahtH3IaJzEJyUg6vmZsNl0FSr3pdA2skhxqA==", "dev": true, + "license": "MIT", "dependencies": { "node-fetch": "^2.6.1", "npmlog": "^4.1.2", @@ -1678,18 +1650,16 @@ }, "node_modules/@lerna/global-options": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/global-options/-/global-options-4.0.0.tgz", - "integrity": "sha512-TRMR8afAHxuYBHK7F++Ogop2a82xQjoGna1dvPOY6ltj/pEx59pdgcJfYcynYqMkFIk8bhLJJN9/ndIfX29FTQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 10.18.0" } }, "node_modules/@lerna/has-npm-version": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/has-npm-version/-/has-npm-version-4.0.0.tgz", - "integrity": "sha512-LQ3U6XFH8ZmLCsvsgq1zNDqka0Xzjq5ibVN+igAI5ccRWNaUsE/OcmsyMr50xAtNQMYMzmpw5GVLAivT2/YzCg==", "dev": true, + "license": "MIT", "dependencies": { "@lerna/child-process": "4.0.0", "semver": "^7.3.4" @@ -1700,9 +1670,8 @@ }, "node_modules/@lerna/import": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/import/-/import-4.0.0.tgz", - "integrity": "sha512-FaIhd+4aiBousKNqC7TX1Uhe97eNKf5/SC7c5WZANVWtC7aBWdmswwDt3usrzCNpj6/Wwr9EtEbYROzxKH8ffg==", "dev": true, + "license": "MIT", "dependencies": { "@lerna/child-process": "4.0.0", "@lerna/command": "4.0.0", @@ -1717,11 +1686,15 @@ "node": ">= 10.18.0" } }, + "node_modules/@lerna/import/node_modules/dedent": { + "version": "0.7.0", + "dev": true, + "license": "MIT" + }, "node_modules/@lerna/info": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/info/-/info-4.0.0.tgz", - "integrity": "sha512-8Uboa12kaCSZEn4XRfPz5KU9XXoexSPS4oeYGj76s2UQb1O1GdnEyfjyNWoUl1KlJ2i/8nxUskpXIftoFYH0/Q==", "dev": true, + "license": "MIT", "dependencies": { "@lerna/command": "4.0.0", "@lerna/output": "4.0.0", @@ -1733,9 +1706,8 @@ }, "node_modules/@lerna/init": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/init/-/init-4.0.0.tgz", - "integrity": "sha512-wY6kygop0BCXupzWj5eLvTUqdR7vIAm0OgyV9WHpMYQGfs1V22jhztt8mtjCloD/O0nEe4tJhdG62XU5aYmPNQ==", "dev": true, + "license": "MIT", "dependencies": { "@lerna/child-process": "4.0.0", "@lerna/command": "4.0.0", @@ -1749,9 +1721,8 @@ }, "node_modules/@lerna/link": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/link/-/link-4.0.0.tgz", - "integrity": "sha512-KlvPi7XTAcVOByfaLlOeYOfkkDcd+bejpHMCd1KcArcFTwijOwXOVi24DYomIeHvy6HsX/IUquJ4PPUJIeB4+w==", "dev": true, + "license": "MIT", "dependencies": { "@lerna/command": "4.0.0", "@lerna/package-graph": "4.0.0", @@ -1765,9 +1736,8 @@ }, "node_modules/@lerna/list": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/list/-/list-4.0.0.tgz", - "integrity": "sha512-L2B5m3P+U4Bif5PultR4TI+KtW+SArwq1i75QZ78mRYxPc0U/piau1DbLOmwrdqr99wzM49t0Dlvl6twd7GHFg==", "dev": true, + "license": "MIT", "dependencies": { "@lerna/command": "4.0.0", "@lerna/filter-options": "4.0.0", @@ -1780,9 +1750,8 @@ }, "node_modules/@lerna/listable": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/listable/-/listable-4.0.0.tgz", - "integrity": "sha512-/rPOSDKsOHs5/PBLINZOkRIX1joOXUXEtyUs5DHLM8q6/RP668x/1lFhw6Dx7/U+L0+tbkpGtZ1Yt0LewCLgeQ==", "dev": true, + "license": "MIT", "dependencies": { "@lerna/query-graph": "4.0.0", "chalk": "^4.1.0", @@ -1794,9 +1763,8 @@ }, "node_modules/@lerna/log-packed": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/log-packed/-/log-packed-4.0.0.tgz", - "integrity": "sha512-+dpCiWbdzgMAtpajLToy9PO713IHoE6GV/aizXycAyA07QlqnkpaBNZ8DW84gHdM1j79TWockGJo9PybVhrrZQ==", "dev": true, + "license": "MIT", "dependencies": { "byte-size": "^7.0.0", "columnify": "^1.5.4", @@ -1809,9 +1777,8 @@ }, "node_modules/@lerna/npm-conf": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/npm-conf/-/npm-conf-4.0.0.tgz", - "integrity": "sha512-uS7H02yQNq3oejgjxAxqq/jhwGEE0W0ntr8vM3EfpCW1F/wZruwQw+7bleJQ9vUBjmdXST//tk8mXzr5+JXCfw==", "dev": true, + "license": "MIT", "dependencies": { "config-chain": "^1.1.12", "pify": "^5.0.0" @@ -1822,9 +1789,8 @@ }, "node_modules/@lerna/npm-dist-tag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/npm-dist-tag/-/npm-dist-tag-4.0.0.tgz", - "integrity": "sha512-F20sg28FMYTgXqEQihgoqSfwmq+Id3zT23CnOwD+XQMPSy9IzyLf1fFVH319vXIw6NF6Pgs4JZN2Qty6/CQXGw==", "dev": true, + "license": "MIT", "dependencies": { "@lerna/otplease": "4.0.0", "npm-package-arg": "^8.1.0", @@ -1837,9 +1803,8 @@ }, "node_modules/@lerna/npm-install": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/npm-install/-/npm-install-4.0.0.tgz", - "integrity": "sha512-aKNxq2j3bCH3eXl3Fmu4D54s/YLL9WSwV8W7X2O25r98wzrO38AUN6AB9EtmAx+LV/SP15et7Yueg9vSaanRWg==", "dev": true, + "license": "MIT", "dependencies": { "@lerna/child-process": "4.0.0", "@lerna/get-npm-exec-opts": "4.0.0", @@ -1855,9 +1820,8 @@ }, "node_modules/@lerna/npm-publish": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/npm-publish/-/npm-publish-4.0.0.tgz", - "integrity": "sha512-vQb7yAPRo5G5r77DRjHITc9piR9gvEKWrmfCH7wkfBnGWEqu7n8/4bFQ7lhnkujvc8RXOsYpvbMQkNfkYibD/w==", "dev": true, + "license": "MIT", "dependencies": { "@lerna/otplease": "4.0.0", "@lerna/run-lifecycle": "4.0.0", @@ -1874,9 +1838,8 @@ }, "node_modules/@lerna/npm-run-script": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/npm-run-script/-/npm-run-script-4.0.0.tgz", - "integrity": "sha512-Jmyh9/IwXJjOXqKfIgtxi0bxi1pUeKe5bD3S81tkcy+kyng/GNj9WSqD5ZggoNP2NP//s4CLDAtUYLdP7CU9rA==", "dev": true, + "license": "MIT", "dependencies": { "@lerna/child-process": "4.0.0", "@lerna/get-npm-exec-opts": "4.0.0", @@ -1888,9 +1851,8 @@ }, "node_modules/@lerna/otplease": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/otplease/-/otplease-4.0.0.tgz", - "integrity": "sha512-Sgzbqdk1GH4psNiT6hk+BhjOfIr/5KhGBk86CEfHNJTk9BK4aZYyJD4lpDbDdMjIV4g03G7pYoqHzH765T4fxw==", "dev": true, + "license": "MIT", "dependencies": { "@lerna/prompt": "4.0.0" }, @@ -1900,9 +1862,8 @@ }, "node_modules/@lerna/output": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/output/-/output-4.0.0.tgz", - "integrity": "sha512-Un1sHtO1AD7buDQrpnaYTi2EG6sLF+KOPEAMxeUYG5qG3khTs2Zgzq5WE3dt2N/bKh7naESt20JjIW6tBELP0w==", "dev": true, + "license": "MIT", "dependencies": { "npmlog": "^4.1.2" }, @@ -1912,9 +1873,8 @@ }, "node_modules/@lerna/pack-directory": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/pack-directory/-/pack-directory-4.0.0.tgz", - "integrity": "sha512-NJrmZNmBHS+5aM+T8N6FVbaKFScVqKlQFJNY2k7nsJ/uklNKsLLl6VhTQBPwMTbf6Tf7l6bcKzpy7aePuq9UiQ==", "dev": true, + "license": "MIT", "dependencies": { "@lerna/get-packed": "4.0.0", "@lerna/package": "4.0.0", @@ -1930,9 +1890,8 @@ }, "node_modules/@lerna/package": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/package/-/package-4.0.0.tgz", - "integrity": "sha512-l0M/izok6FlyyitxiQKr+gZLVFnvxRQdNhzmQ6nRnN9dvBJWn+IxxpM+cLqGACatTnyo9LDzNTOj2Db3+s0s8Q==", "dev": true, + "license": "MIT", "dependencies": { "load-json-file": "^6.2.0", "npm-package-arg": "^8.1.0", @@ -1944,9 +1903,8 @@ }, "node_modules/@lerna/package-graph": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/package-graph/-/package-graph-4.0.0.tgz", - "integrity": "sha512-QED2ZCTkfXMKFoTGoccwUzjHtZMSf3UKX14A4/kYyBms9xfFsesCZ6SLI5YeySEgcul8iuIWfQFZqRw+Qrjraw==", "dev": true, + "license": "MIT", "dependencies": { "@lerna/prerelease-id-from-version": "4.0.0", "@lerna/validation-error": "4.0.0", @@ -1960,9 +1918,8 @@ }, "node_modules/@lerna/prerelease-id-from-version": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/prerelease-id-from-version/-/prerelease-id-from-version-4.0.0.tgz", - "integrity": "sha512-GQqguzETdsYRxOSmdFZ6zDBXDErIETWOqomLERRY54f4p+tk4aJjoVdd9xKwehC9TBfIFvlRbL1V9uQGHh1opg==", "dev": true, + "license": "MIT", "dependencies": { "semver": "^7.3.4" }, @@ -1972,9 +1929,8 @@ }, "node_modules/@lerna/profiler": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/profiler/-/profiler-4.0.0.tgz", - "integrity": "sha512-/BaEbqnVh1LgW/+qz8wCuI+obzi5/vRE8nlhjPzdEzdmWmZXuCKyWSEzAyHOJWw1ntwMiww5dZHhFQABuoFz9Q==", "dev": true, + "license": "MIT", "dependencies": { "fs-extra": "^9.1.0", "npmlog": "^4.1.2", @@ -1986,9 +1942,8 @@ }, "node_modules/@lerna/project": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/project/-/project-4.0.0.tgz", - "integrity": "sha512-o0MlVbDkD5qRPkFKlBZsXZjoNTWPyuL58564nSfZJ6JYNmgAptnWPB2dQlAc7HWRZkmnC2fCkEdoU+jioPavbg==", "dev": true, + "license": "MIT", "dependencies": { "@lerna/package": "4.0.0", "@lerna/validation-error": "4.0.0", @@ -2007,11 +1962,15 @@ "node": ">= 10.18.0" } }, + "node_modules/@lerna/project/node_modules/dedent": { + "version": "0.7.0", + "dev": true, + "license": "MIT" + }, "node_modules/@lerna/project/node_modules/glob-parent": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -2021,18 +1980,16 @@ }, "node_modules/@lerna/project/node_modules/resolve-from": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/@lerna/prompt": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/prompt/-/prompt-4.0.0.tgz", - "integrity": "sha512-4Ig46oCH1TH5M7YyTt53fT6TuaKMgqUUaqdgxvp6HP6jtdak6+amcsqB8YGz2eQnw/sdxunx84DfI9XpoLj4bQ==", "dev": true, + "license": "MIT", "dependencies": { "inquirer": "^7.3.3", "npmlog": "^4.1.2" @@ -2043,9 +2000,8 @@ }, "node_modules/@lerna/publish": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/publish/-/publish-4.0.0.tgz", - "integrity": "sha512-K8jpqjHrChH22qtkytA5GRKIVFEtqBF6JWj1I8dWZtHs4Jywn8yB1jQ3BAMLhqmDJjWJtRck0KXhQQKzDK2UPg==", "dev": true, + "license": "MIT", "dependencies": { "@lerna/check-working-tree": "4.0.0", "@lerna/child-process": "4.0.0", @@ -2082,9 +2038,8 @@ }, "node_modules/@lerna/pulse-till-done": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/pulse-till-done/-/pulse-till-done-4.0.0.tgz", - "integrity": "sha512-Frb4F7QGckaybRhbF7aosLsJ5e9WuH7h0KUkjlzSByVycxY91UZgaEIVjS2oN9wQLrheLMHl6SiFY0/Pvo0Cxg==", "dev": true, + "license": "MIT", "dependencies": { "npmlog": "^4.1.2" }, @@ -2094,9 +2049,8 @@ }, "node_modules/@lerna/query-graph": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/query-graph/-/query-graph-4.0.0.tgz", - "integrity": "sha512-YlP6yI3tM4WbBmL9GCmNDoeQyzcyg1e4W96y/PKMZa5GbyUvkS2+Jc2kwPD+5KcXou3wQZxSPzR3Te5OenaDdg==", "dev": true, + "license": "MIT", "dependencies": { "@lerna/package-graph": "4.0.0" }, @@ -2106,9 +2060,8 @@ }, "node_modules/@lerna/resolve-symlink": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/resolve-symlink/-/resolve-symlink-4.0.0.tgz", - "integrity": "sha512-RtX8VEUzqT+uLSCohx8zgmjc6zjyRlh6i/helxtZTMmc4+6O4FS9q5LJas2uGO2wKvBlhcD6siibGt7dIC3xZA==", "dev": true, + "license": "MIT", "dependencies": { "fs-extra": "^9.1.0", "npmlog": "^4.1.2", @@ -2120,9 +2073,8 @@ }, "node_modules/@lerna/rimraf-dir": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/rimraf-dir/-/rimraf-dir-4.0.0.tgz", - "integrity": "sha512-QNH9ABWk9mcMJh2/muD9iYWBk1oQd40y6oH+f3wwmVGKYU5YJD//+zMiBI13jxZRtwBx0vmBZzkBkK1dR11cBg==", "dev": true, + "license": "MIT", "dependencies": { "@lerna/child-process": "4.0.0", "npmlog": "^4.1.2", @@ -2135,9 +2087,8 @@ }, "node_modules/@lerna/run": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/run/-/run-4.0.0.tgz", - "integrity": "sha512-9giulCOzlMPzcZS/6Eov6pxE9gNTyaXk0Man+iCIdGJNMrCnW7Dme0Z229WWP/UoxDKg71F2tMsVVGDiRd8fFQ==", "dev": true, + "license": "MIT", "dependencies": { "@lerna/command": "4.0.0", "@lerna/filter-options": "4.0.0", @@ -2155,9 +2106,8 @@ }, "node_modules/@lerna/run-lifecycle": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/run-lifecycle/-/run-lifecycle-4.0.0.tgz", - "integrity": "sha512-IwxxsajjCQQEJAeAaxF8QdEixfI7eLKNm4GHhXHrgBu185JcwScFZrj9Bs+PFKxwb+gNLR4iI5rpUdY8Y0UdGQ==", "dev": true, + "license": "MIT", "dependencies": { "@lerna/npm-conf": "4.0.0", "npm-lifecycle": "^3.1.5", @@ -2169,9 +2119,8 @@ }, "node_modules/@lerna/run-topologically": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/run-topologically/-/run-topologically-4.0.0.tgz", - "integrity": "sha512-EVZw9hGwo+5yp+VL94+NXRYisqgAlj0jWKWtAIynDCpghRxCE5GMO3xrQLmQgqkpUl9ZxQFpICgYv5DW4DksQA==", "dev": true, + "license": "MIT", "dependencies": { "@lerna/query-graph": "4.0.0", "p-queue": "^6.6.2" @@ -2182,9 +2131,8 @@ }, "node_modules/@lerna/symlink-binary": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/symlink-binary/-/symlink-binary-4.0.0.tgz", - "integrity": "sha512-zualodWC4q1QQc1pkz969hcFeWXOsVYZC5AWVtAPTDfLl+TwM7eG/O6oP+Rr3fFowspxo6b1TQ6sYfDV6HXNWA==", "dev": true, + "license": "MIT", "dependencies": { "@lerna/create-symlink": "4.0.0", "@lerna/package": "4.0.0", @@ -2197,9 +2145,8 @@ }, "node_modules/@lerna/symlink-dependencies": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/symlink-dependencies/-/symlink-dependencies-4.0.0.tgz", - "integrity": "sha512-BABo0MjeUHNAe2FNGty1eantWp8u83BHSeIMPDxNq0MuW2K3CiQRaeWT3EGPAzXpGt0+hVzBrA6+OT0GPn7Yuw==", "dev": true, + "license": "MIT", "dependencies": { "@lerna/create-symlink": "4.0.0", "@lerna/resolve-symlink": "4.0.0", @@ -2214,18 +2161,16 @@ }, "node_modules/@lerna/timer": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/timer/-/timer-4.0.0.tgz", - "integrity": "sha512-WFsnlaE7SdOvjuyd05oKt8Leg3ENHICnvX3uYKKdByA+S3g+TCz38JsNs7OUZVt+ba63nC2nbXDlUnuT2Xbsfg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 10.18.0" } }, "node_modules/@lerna/validation-error": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/validation-error/-/validation-error-4.0.0.tgz", - "integrity": "sha512-1rBOM5/koiVWlRi3V6dB863E1YzJS8v41UtsHgMr6gB2ncJ2LsQtMKlJpi3voqcgh41H8UsPXR58RrrpPpufyw==", "dev": true, + "license": "MIT", "dependencies": { "npmlog": "^4.1.2" }, @@ -2235,9 +2180,8 @@ }, "node_modules/@lerna/version": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/version/-/version-4.0.0.tgz", - "integrity": "sha512-otUgiqs5W9zGWJZSCCMRV/2Zm2A9q9JwSDS7s/tlKq4mWCYriWo7+wsHEA/nPTMDyYyBO5oyZDj+3X50KDUzeA==", "dev": true, + "license": "MIT", "dependencies": { "@lerna/check-working-tree": "4.0.0", "@lerna/child-process": "4.0.0", @@ -2270,11 +2214,15 @@ "node": ">= 10.18.0" } }, + "node_modules/@lerna/version/node_modules/dedent": { + "version": "0.7.0", + "dev": true, + "license": "MIT" + }, "node_modules/@lerna/write-log-file": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/write-log-file/-/write-log-file-4.0.0.tgz", - "integrity": "sha512-XRG5BloiArpXRakcnPHmEHJp+4AtnhRtpDIHSghmXD5EichI1uD73J7FgPp30mm2pDRq3FdqB0NbwSEsJ9xFQg==", "dev": true, + "license": "MIT", "dependencies": { "npmlog": "^4.1.2", "write-file-atomic": "^3.0.3" @@ -2285,9 +2233,8 @@ }, "node_modules/@lerna/write-log-file/node_modules/write-file-atomic": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", "dev": true, + "license": "ISC", "dependencies": { "imurmurhash": "^0.1.4", "is-typedarray": "^1.0.0", @@ -2297,15 +2244,13 @@ }, "node_modules/@microsoft/tsdoc": { "version": "0.14.2", - "resolved": "https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.14.2.tgz", - "integrity": "sha512-9b8mPpKrfeGRuhFH5iO1iwCLeIIsV6+H1sRfxbkoGXIyQE2BTsPd9zqSqQJ+pv5sJ/hT5M1zvOFL02MnEezFug==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@microsoft/tsdoc-config": { "version": "0.16.2", - "resolved": "https://registry.npmjs.org/@microsoft/tsdoc-config/-/tsdoc-config-0.16.2.tgz", - "integrity": "sha512-OGiIzzoBLgWWR0UdRJX98oYO+XKGf7tiK4Zk6tQ/E4IJqGCe7dvkTvgDZV5cFJUzLGDOjeAXrnZoA6QkVySuxw==", "dev": true, + "license": "MIT", "dependencies": { "@microsoft/tsdoc": "0.14.2", "ajv": "~6.12.6", @@ -2315,9 +2260,8 @@ }, "node_modules/@microsoft/tsdoc-config/node_modules/resolve": { "version": "1.19.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", - "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", "dev": true, + "license": "MIT", "dependencies": { "is-core-module": "^2.1.0", "path-parse": "^1.0.6" @@ -2326,22 +2270,30 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/@noble/curves": { + "version": "1.4.0", + "license": "MIT", + "dependencies": { + "@noble/hashes": "1.4.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/@noble/hashes": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.0.tgz", - "integrity": "sha512-ilHEACi9DwqJB0pw7kv+Apvh50jiiSyR/cQ3y4W7lOR5mhvn/50FLUfsnfJz0BDZtl/RR16kXvptiv6q1msYZg==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ] + "version": "1.4.0", + "license": "MIT", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -2352,18 +2304,16 @@ }, "node_modules/@nodelib/fs.stat": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/@nodelib/fs.walk": { "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -2374,16 +2324,13 @@ }, "node_modules/@npmcli/ci-detect": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@npmcli/ci-detect/-/ci-detect-1.4.0.tgz", - "integrity": "sha512-3BGrt6FLjqM6br5AhWRKTr3u5GIVkjRYeAFrMp3HjnfICrg4xOrVRwFavKT6tsp++bq5dluL5t8ME/Nha/6c1Q==", - "deprecated": "this package has been deprecated, use `ci-info` instead", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/@npmcli/fs": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", - "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", "dev": true, + "license": "ISC", "dependencies": { "@gar/promisify": "^1.0.1", "semver": "^7.3.5" @@ -2391,9 +2338,8 @@ }, "node_modules/@npmcli/git": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-2.1.0.tgz", - "integrity": "sha512-/hBFX/QG1b+N7PZBFs0bi+evgRZcK9nWBxQKZkGoXUT5hJSwl5c4d7y8/hm+NQZRPhQ67RzFaj5UM9YeyKoryw==", "dev": true, + "license": "ISC", "dependencies": { "@npmcli/promise-spawn": "^1.3.2", "lru-cache": "^6.0.0", @@ -2407,9 +2353,8 @@ }, "node_modules/@npmcli/git/node_modules/lru-cache": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -2419,15 +2364,13 @@ }, "node_modules/@npmcli/git/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/@npmcli/installed-package-contents": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz", - "integrity": "sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==", "dev": true, + "license": "ISC", "dependencies": { "npm-bundled": "^1.1.1", "npm-normalize-package-bin": "^1.0.1" @@ -2441,10 +2384,8 @@ }, "node_modules/@npmcli/move-file": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", - "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", - "deprecated": "This functionality has been moved to @npmcli/fs", "dev": true, + "license": "MIT", "dependencies": { "mkdirp": "^1.0.4", "rimraf": "^3.0.2" @@ -2455,24 +2396,21 @@ }, "node_modules/@npmcli/node-gyp": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-1.0.3.tgz", - "integrity": "sha512-fnkhw+fmX65kiLqk6E3BFLXNC26rUhK90zVwe2yncPliVT/Qos3xjhTLE59Df8KnPlcwIERXKVlU1bXoUQ+liA==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/@npmcli/promise-spawn": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-1.3.2.tgz", - "integrity": "sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg==", "dev": true, + "license": "ISC", "dependencies": { "infer-owner": "^1.0.4" } }, "node_modules/@npmcli/run-script": { "version": "1.8.6", - "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-1.8.6.tgz", - "integrity": "sha512-e42bVZnC6VluBZBAFEr3YrdqSspG3bgilyg4nSLBJ7TRGNCzxHa92XAHxQBLYg0BmgwO4b2mf3h/l5EkEWRn3g==", "dev": true, + "license": "ISC", "dependencies": { "@npmcli/node-gyp": "^1.0.2", "@npmcli/promise-spawn": "^1.3.2", @@ -2482,9 +2420,8 @@ }, "node_modules/@npmcli/run-script/node_modules/node-gyp": { "version": "7.1.2", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-7.1.2.tgz", - "integrity": "sha512-CbpcIo7C3eMu3dL1c3d0xw449fHIGALIJsRP4DDPHpyiW8vcriNY7ubh9TE4zEKfSxscY7PjeFnshE7h75ynjQ==", "dev": true, + "license": "MIT", "dependencies": { "env-paths": "^2.2.0", "glob": "^7.1.4", @@ -2506,9 +2443,8 @@ }, "node_modules/@npmcli/run-script/node_modules/nopt": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", "dev": true, + "license": "ISC", "dependencies": { "abbrev": "1" }, @@ -2521,18 +2457,16 @@ }, "node_modules/@octokit/auth-token": { "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.5.0.tgz", - "integrity": "sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==", "dev": true, + "license": "MIT", "dependencies": { "@octokit/types": "^6.0.3" } }, "node_modules/@octokit/core": { "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-3.6.0.tgz", - "integrity": "sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==", "dev": true, + "license": "MIT", "dependencies": { "@octokit/auth-token": "^2.4.4", "@octokit/graphql": "^4.5.8", @@ -2545,9 +2479,8 @@ }, "node_modules/@octokit/endpoint": { "version": "6.0.12", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.12.tgz", - "integrity": "sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==", "dev": true, + "license": "MIT", "dependencies": { "@octokit/types": "^6.0.3", "is-plain-object": "^5.0.0", @@ -2556,9 +2489,8 @@ }, "node_modules/@octokit/graphql": { "version": "4.8.0", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.8.0.tgz", - "integrity": "sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==", "dev": true, + "license": "MIT", "dependencies": { "@octokit/request": "^5.6.0", "@octokit/types": "^6.0.3", @@ -2567,21 +2499,18 @@ }, "node_modules/@octokit/openapi-types": { "version": "12.11.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.11.0.tgz", - "integrity": "sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@octokit/plugin-enterprise-rest": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-6.0.1.tgz", - "integrity": "sha512-93uGjlhUD+iNg1iWhUENAtJata6w5nE+V4urXOAlIXdco6xNZtUSfYY8dzp3Udy74aqO/B5UZL80x/YMa5PKRw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@octokit/plugin-paginate-rest": { "version": "2.21.3", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.21.3.tgz", - "integrity": "sha512-aCZTEf0y2h3OLbrgKkrfFdjRL6eSOo8komneVQJnYecAxIej7Bafor2xhuDJOIFau4pk0i/P28/XgtbyPF0ZHw==", "dev": true, + "license": "MIT", "dependencies": { "@octokit/types": "^6.40.0" }, @@ -2591,18 +2520,16 @@ }, "node_modules/@octokit/plugin-request-log": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz", - "integrity": "sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==", "dev": true, + "license": "MIT", "peerDependencies": { "@octokit/core": ">=3" } }, "node_modules/@octokit/plugin-rest-endpoint-methods": { "version": "5.16.2", - "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.16.2.tgz", - "integrity": "sha512-8QFz29Fg5jDuTPXVtey05BLm7OB+M8fnvE64RNegzX7U+5NUXcOcnpTIK0YfSHBg8gYd0oxIq3IZTe9SfPZiRw==", "dev": true, + "license": "MIT", "dependencies": { "@octokit/types": "^6.39.0", "deprecation": "^2.3.1" @@ -2613,9 +2540,8 @@ }, "node_modules/@octokit/request": { "version": "5.6.3", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.6.3.tgz", - "integrity": "sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==", "dev": true, + "license": "MIT", "dependencies": { "@octokit/endpoint": "^6.0.1", "@octokit/request-error": "^2.1.0", @@ -2627,9 +2553,8 @@ }, "node_modules/@octokit/request-error": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.1.0.tgz", - "integrity": "sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==", "dev": true, + "license": "MIT", "dependencies": { "@octokit/types": "^6.0.3", "deprecation": "^2.0.0", @@ -2638,9 +2563,8 @@ }, "node_modules/@octokit/rest": { "version": "18.12.0", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-18.12.0.tgz", - "integrity": "sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q==", "dev": true, + "license": "MIT", "dependencies": { "@octokit/core": "^3.5.1", "@octokit/plugin-paginate-rest": "^2.16.8", @@ -2650,54 +2574,85 @@ }, "node_modules/@octokit/types": { "version": "6.41.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.41.0.tgz", - "integrity": "sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==", "dev": true, + "license": "MIT", "dependencies": { "@octokit/openapi-types": "^12.11.0" } }, "node_modules/@polka/url": { "version": "1.0.0-next.21", - "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz", - "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/@scure/base": { + "version": "1.1.6", + "license": "MIT", + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/bip32": { + "version": "1.4.0", + "license": "MIT", + "dependencies": { + "@noble/curves": "~1.4.0", + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/bip39": { + "version": "1.3.0", + "license": "MIT", + "dependencies": { + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@shikijs/core": { + "version": "1.10.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.4" + } }, "node_modules/@sinclair/typebox": { - "version": "0.25.24", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.25.24.tgz", - "integrity": "sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==", - "dev": true + "version": "0.27.8", + "dev": true, + "license": "MIT" }, "node_modules/@sinonjs/commons": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", - "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "type-detect": "4.0.8" } }, "node_modules/@sinonjs/fake-timers": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.1.0.tgz", - "integrity": "sha512-w1qd368vtrwttm1PRJWPW1QHlbmHrVDGs1eBH/jZvRPUFS4MNXV9Q33EQdjOdeAxZ7O8+3wM7zxztm2nfUSyKw==", + "version": "10.3.0", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "@sinonjs/commons": "^3.0.0" } }, "node_modules/@socket.io/component-emitter": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", - "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@tootallnate/once": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 6" } @@ -2714,39 +2669,34 @@ "resolved": "packages/ripple-keypairs", "link": true }, + "node_modules/@transia/xahau-models": { + "resolved": "packages/xrpl-models", + "link": true + }, "node_modules/@transia/xrpl": { "resolved": "packages/xrpl", "link": true }, "node_modules/@tsconfig/node10": { "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", - "dev": true + "license": "MIT" }, "node_modules/@tsconfig/node12": { "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true + "license": "MIT" }, "node_modules/@tsconfig/node14": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true + "license": "MIT" }, "node_modules/@tsconfig/node16": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", - "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", - "dev": true + "license": "MIT" }, "node_modules/@types/babel__core": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.0.tgz", - "integrity": "sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ==", + "version": "7.20.2", "dev": true, + "license": "MIT", "dependencies": { "@babel/parser": "^7.20.7", "@babel/types": "^7.20.7", @@ -2756,77 +2706,52 @@ } }, "node_modules/@types/babel__generator": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", - "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", + "version": "7.6.5", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.0.0" } }, "node_modules/@types/babel__template": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "version": "7.4.2", "dev": true, + "license": "MIT", "dependencies": { "@babel/parser": "^7.1.0", "@babel/types": "^7.0.0" } }, "node_modules/@types/babel__traverse": { - "version": "7.18.5", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.5.tgz", - "integrity": "sha512-enCvTL8m/EHS/zIvJno9nE+ndYPh1/oNFzRYRmtUqJICG2VnCSBzMLW5VN2KCQU91f23tsNKR8v7VJJQMatl7Q==", - "dev": true, - "dependencies": { - "@babel/types": "^7.3.0" - } - }, - "node_modules/@types/brorand": { - "version": "1.0.30", - "resolved": "https://registry.npmjs.org/@types/brorand/-/brorand-1.0.30.tgz", - "integrity": "sha512-moU/Mp0MA5vFNGj1/A7Z5TpNC1uyS82I6KZp0Oxk9OKC2XD0S6aQGLVv9ryBYAs259Cq7h9iM1jN9zbuCrUI9w==", + "version": "7.20.2", "dev": true, + "license": "MIT", "dependencies": { - "@types/node": "*" + "@babel/types": "^7.20.7" } }, "node_modules/@types/chai": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.5.tgz", - "integrity": "sha512-mEo1sAde+UCE6b2hxn332f1g1E8WfYRu6p5SvTKr2ZKC1f7gFJXk4h5PyGP9Dt6gCaG8y8XhwnXWC6Iy2cmBng==", - "dev": true + "version": "4.3.11", + "dev": true, + "license": "MIT" }, "node_modules/@types/cookie": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/cors": { "version": "2.8.13", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.13.tgz", - "integrity": "sha512-RG8AStHlUiV5ysZQKq97copd2UmVYw3/pRMLefISZ3S1hK104Cwm7iLQ3fTKx+lsUH2CE8FlLaYeEA2LSeqYUA==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/create-hash": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@types/create-hash/-/create-hash-1.2.2.tgz", - "integrity": "sha512-Fg8/kfMJObbETFU/Tn+Y0jieYewryLrbKwLCEIwPyklZZVY2qB+64KFjhplGSw+cseZosfFXctXO+PyIYD8iZQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/eslint": { - "version": "8.37.0", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.37.0.tgz", - "integrity": "sha512-Piet7dG2JBuDIfohBngQ3rCt7MgO9xCO4xIMKxBThCq5PNRB91IjlJ10eJVwfoNtvTErmxLzwBZ7rHZtbOMmFQ==", + "version": "8.44.2", "dev": true, + "license": "MIT", "dependencies": { "@types/estree": "*", "@types/json-schema": "*" @@ -2834,184 +2759,153 @@ }, "node_modules/@types/eslint-scope": { "version": "3.7.4", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", - "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", "dev": true, + "license": "MIT", "dependencies": { "@types/eslint": "*", "@types/estree": "*" } }, "node_modules/@types/estree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz", - "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==", - "dev": true + "version": "1.0.5", + "dev": true, + "license": "MIT" }, "node_modules/@types/graceful-fs": { - "version": "4.1.6", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz", - "integrity": "sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==", + "version": "4.1.7", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } }, + "node_modules/@types/hast": { + "version": "3.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/istanbul-lib-report": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", "dev": true, + "license": "MIT", "dependencies": { "@types/istanbul-lib-coverage": "*" } }, "node_modules/@types/istanbul-reports": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", "dev": true, + "license": "MIT", "dependencies": { "@types/istanbul-lib-report": "*" } }, "node_modules/@types/jest": { - "version": "29.5.1", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.1.tgz", - "integrity": "sha512-tEuVcHrpaixS36w7hpsfLBLpjtMRJUE09/MHXn923LOVojDwyC14cWcfc0rDs0VEfUyYmt/+iX1kxxp+gZMcaQ==", + "version": "29.5.12", "dev": true, + "license": "MIT", "dependencies": { "expect": "^29.0.0", "pretty-format": "^29.0.0" } }, "node_modules/@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", - "dev": true + "version": "7.0.12", + "dev": true, + "license": "MIT" }, "node_modules/@types/json5": { "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/lodash": { - "version": "4.14.194", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.194.tgz", - "integrity": "sha512-r22s9tAS7imvBt2lyHC9B8AGwWnXaYb1tY09oyLkXDs4vArpYJzw09nj8MLx5VfciBPGIb+ZwG0ssYnEPJxn/g==", - "dev": true + "version": "4.17.1", + "dev": true, + "license": "MIT" }, "node_modules/@types/minimatch": { "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/minimist": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", - "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/node": { - "version": "14.18.47", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.47.tgz", - "integrity": "sha512-OuJi8bIng4wYHHA3YpKauL58dZrPxro3d0tabPHyiNF8rKfGKuVfr83oFlPLmKri1cX+Z3cJP39GXmnqkP11Gw==", - "dev": true + "version": "18.19.39", + "license": "MIT", + "dependencies": { + "undici-types": "~5.26.4" + } }, "node_modules/@types/normalize-package-data": { "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", - "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/parse-json": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", - "dev": true - }, - "node_modules/@types/prettier": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.2.tgz", - "integrity": "sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==", - "dev": true - }, - "node_modules/@types/puppeteer": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/@types/puppeteer/-/puppeteer-5.4.6.tgz", - "integrity": "sha512-98Kghehs7+/GD9b56qryhqdqVCXUTbetTv3PlvDnmFRTHQH0j9DIp1f7rkAW3BAj4U3yoeSEQnKgdW8bDq0Y0Q==", "dev": true, - "dependencies": { - "@types/node": "*" - } + "license": "MIT" }, "node_modules/@types/semver": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.0.tgz", - "integrity": "sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==", - "dev": true + "version": "7.5.4", + "dev": true, + "license": "MIT" }, "node_modules/@types/stack-utils": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/@types/unist": { + "version": "3.0.2", + "dev": true, + "license": "MIT" }, "node_modules/@types/ws": { - "version": "8.5.4", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.4.tgz", - "integrity": "sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==", + "version": "8.5.10", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/yargs": { "version": "17.0.24", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz", - "integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==", "dev": true, + "license": "MIT", "dependencies": { "@types/yargs-parser": "*" } }, "node_modules/@types/yargs-parser": { "version": "21.0.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", - "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", - "dev": true - }, - "node_modules/@types/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", "dev": true, - "optional": true, - "dependencies": { - "@types/node": "*" - } + "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.59.6", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.6.tgz", - "integrity": "sha512-sXtOgJNEuRU5RLwPUb1jxtToZbgvq3M6FPpY4QENxoOggK+UpTxUBpj6tD8+Qh2g46Pi9We87E+eHnUw8YcGsw==", + "version": "5.62.0", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.59.6", - "@typescript-eslint/type-utils": "5.59.6", - "@typescript-eslint/utils": "5.59.6", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/type-utils": "5.62.0", + "@typescript-eslint/utils": "5.62.0", "debug": "^4.3.4", - "grapheme-splitter": "^1.0.4", + "graphemer": "^1.4.0", "ignore": "^5.2.0", "natural-compare-lite": "^1.4.0", "semver": "^7.3.7", @@ -3035,14 +2929,13 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "5.59.6", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.6.tgz", - "integrity": "sha512-7pCa6al03Pv1yf/dUg/s1pXz/yGMUBAw5EeWqNTFiSueKvRNonze3hma3lhdsOrQcaOXhbk5gKu2Fludiho9VA==", + "version": "5.62.0", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/scope-manager": "5.59.6", - "@typescript-eslint/types": "5.59.6", - "@typescript-eslint/typescript-estree": "5.59.6", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", "debug": "^4.3.4" }, "engines": { @@ -3062,13 +2955,12 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "5.59.6", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.6.tgz", - "integrity": "sha512-gLbY3Le9Dxcb8KdpF0+SJr6EQ+hFGYFl6tVY8VxLPFDfUZC7BHFw+Vq7bM5lE9DwWPfx4vMWWTLGXgpc0mAYyQ==", + "version": "5.62.0", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "5.59.6", - "@typescript-eslint/visitor-keys": "5.59.6" + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -3079,13 +2971,12 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.59.6", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.6.tgz", - "integrity": "sha512-A4tms2Mp5yNvLDlySF+kAThV9VTBPCvGf0Rp8nl/eoDX9Okun8byTKoj3fJ52IJitjWOk0fKPNQhXEB++eNozQ==", + "version": "5.62.0", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "5.59.6", - "@typescript-eslint/utils": "5.59.6", + "@typescript-eslint/typescript-estree": "5.62.0", + "@typescript-eslint/utils": "5.62.0", "debug": "^4.3.4", "tsutils": "^3.21.0" }, @@ -3106,10 +2997,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "5.59.6", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.6.tgz", - "integrity": "sha512-tH5lBXZI7T2MOUgOWFdVNUILsI02shyQvfzG9EJkoONWugCG77NDDa1EeDGw7oJ5IvsTAAGVV8I3Tk2PNu9QfA==", + "version": "5.62.0", "dev": true, + "license": "MIT", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -3119,13 +3009,12 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.59.6", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.6.tgz", - "integrity": "sha512-vW6JP3lMAs/Tq4KjdI/RiHaaJSO7IUsbkz17it/Rl9Q+WkQ77EOuOnlbaU8kKfVIOJxMhnRiBG+olE7f3M16DA==", + "version": "5.62.0", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/types": "5.59.6", - "@typescript-eslint/visitor-keys": "5.59.6", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -3146,17 +3035,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "5.59.6", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.6.tgz", - "integrity": "sha512-vzaaD6EXbTS29cVH0JjXBdzMt6VBlv+hE31XktDRMX1j3462wZCJa7VzO2AxXEXcIl8GQqZPcOPuW/Z1tZVogg==", + "version": "5.62.0", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@types/json-schema": "^7.0.9", "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.59.6", - "@typescript-eslint/types": "5.59.6", - "@typescript-eslint/typescript-estree": "5.59.6", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", "eslint-scope": "^5.1.1", "semver": "^7.3.7" }, @@ -3172,12 +3060,11 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.59.6", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.6.tgz", - "integrity": "sha512-zEfbFLzB9ETcEJ4HZEEsCR9HHeNku5/Qw1jSS5McYJv5BR+ftYXwFFAH5Al+xkGaZEqowMwl7uoJjQb1YSPF8Q==", + "version": "5.62.0", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "5.59.6", + "@typescript-eslint/types": "5.62.0", "eslint-visitor-keys": "^3.3.0" }, "engines": { @@ -3188,11 +3075,15 @@ "url": "https://opencollective.com/typescript-eslint" } }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "dev": true, + "license": "ISC" + }, "node_modules/@webassemblyjs/ast": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", - "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", + "version": "1.12.1", "dev": true, + "license": "MIT", "dependencies": { "@webassemblyjs/helper-numbers": "1.11.6", "@webassemblyjs/helper-wasm-bytecode": "1.11.6" @@ -3200,27 +3091,23 @@ }, "node_modules/@webassemblyjs/floating-point-hex-parser": { "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", - "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@webassemblyjs/helper-api-error": { "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", - "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", - "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==", - "dev": true + "version": "1.12.1", + "dev": true, + "license": "MIT" }, "node_modules/@webassemblyjs/helper-numbers": { "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", - "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", "dev": true, + "license": "MIT", "dependencies": { "@webassemblyjs/floating-point-hex-parser": "1.11.6", "@webassemblyjs/helper-api-error": "1.11.6", @@ -3229,69 +3116,62 @@ }, "node_modules/@webassemblyjs/helper-wasm-bytecode": { "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", - "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", - "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", + "version": "1.12.1", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6" + "@webassemblyjs/wasm-gen": "1.12.1" } }, "node_modules/@webassemblyjs/ieee754": { "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", - "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", "dev": true, + "license": "MIT", "dependencies": { "@xtuc/ieee754": "^1.2.0" } }, "node_modules/@webassemblyjs/leb128": { "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", - "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/utf8": { "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", - "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", - "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", + "version": "1.12.1", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/helper-wasm-section": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-opt": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6", - "@webassemblyjs/wast-printer": "1.11.6" + "@webassemblyjs/helper-wasm-section": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-opt": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.1", + "@webassemblyjs/wast-printer": "1.12.1" } }, "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", - "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", + "version": "1.12.1", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/ast": "1.12.1", "@webassemblyjs/helper-wasm-bytecode": "1.11.6", "@webassemblyjs/ieee754": "1.11.6", "@webassemblyjs/leb128": "1.11.6", @@ -3299,24 +3179,22 @@ } }, "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", - "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", + "version": "1.12.1", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6" + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.1" } }, "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", - "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", + "version": "1.12.1", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/ast": "1.12.1", "@webassemblyjs/helper-api-error": "1.11.6", "@webassemblyjs/helper-wasm-bytecode": "1.11.6", "@webassemblyjs/ieee754": "1.11.6", @@ -3325,20 +3203,18 @@ } }, "node_modules/@webassemblyjs/wast-printer": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", - "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", + "version": "1.12.1", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/ast": "1.12.1", "@xtuc/long": "4.2.2" } }, "node_modules/@webpack-cli/configtest": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.0.tgz", - "integrity": "sha512-K/vuv72vpfSEZoo5KIU0a2FsEoYdW0DUMtMpB5X3LlUwshetMZRZRxB7sCsVji/lFaSxtQQ3aM9O4eMolXkU9w==", + "version": "2.1.1", "dev": true, + "license": "MIT", "engines": { "node": ">=14.15.0" }, @@ -3348,10 +3224,9 @@ } }, "node_modules/@webpack-cli/info": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.1.tgz", - "integrity": "sha512-fE1UEWTwsAxRhrJNikE7v4EotYflkEhBL7EbajfkPlf6E37/2QshOy/D48Mw8G5XMFlQtS6YV42vtbG9zBpIQA==", + "version": "2.0.2", "dev": true, + "license": "MIT", "engines": { "node": ">=14.15.0" }, @@ -3361,10 +3236,9 @@ } }, "node_modules/@webpack-cli/serve": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.4.tgz", - "integrity": "sha512-0xRgjgDLdz6G7+vvDLlaRpFatJaJ69uTalZLRSMX5B3VUrDmXcrVA3+6fXXQgmYz7bY9AAgs348XQdmtLsK41A==", + "version": "2.0.5", "dev": true, + "license": "MIT", "engines": { "node": ">=14.15.0" }, @@ -3380,9 +3254,8 @@ }, "node_modules/@xrplf/eslint-config": { "version": "1.10.1", - "resolved": "https://registry.npmjs.org/@xrplf/eslint-config/-/eslint-config-1.10.1.tgz", - "integrity": "sha512-T8fLEcWb9YEt/n97NIIUTYLOqzUIHMzPWC2RHg5KCtOrhE6P7okxE5p5AtFG2XxJh9OuGvyvMBwma8vtLFugMg==", "dev": true, + "license": "ISC", "dependencies": { "confusing-browser-globals": "^1.0.11", "eslint-config-airbnb": "^19.0.4", @@ -3403,71 +3276,38 @@ "typescript": "^3.9.10 || ^4.0.0 || ^5.0.0" } }, + "node_modules/@xrplf/isomorphic": { + "resolved": "packages/isomorphic", + "link": true + }, "node_modules/@xrplf/prettier-config": { "version": "1.9.1", - "resolved": "https://registry.npmjs.org/@xrplf/prettier-config/-/prettier-config-1.9.1.tgz", - "integrity": "sha512-1k4WCTstvGiTJQYUNTZhz4BM2DI/kVBRXh1Dw5fVaVDiGVb4YOuzxFNgipOWX/EllrjRTN5NNGLJEDk0nsMFEg==", - "dev": true + "dev": true, + "license": "ISC" + }, + "node_modules/@xrplf/secret-numbers": { + "resolved": "packages/secret-numbers", + "link": true }, "node_modules/@xtuc/ieee754": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/@xtuc/long": { "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true - }, - "node_modules/abab": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", - "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", - "dev": true + "dev": true, + "license": "Apache-2.0" }, "node_modules/abbrev": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true - }, - "node_modules/abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "dev": true, - "dependencies": { - "event-target-shim": "^5.0.0" - }, - "engines": { - "node": ">=6.5" - } - }, - "node_modules/abstract-leveldown": { - "version": "0.12.4", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-0.12.4.tgz", - "integrity": "sha512-TOod9d5RDExo6STLMGa+04HGkl+TlMfbDnTyN93/ETJ9DpQ0DaYLqcMZlbXvdc4W3vVo1Qrl+WhSp8zvDsJ+jA==", - "dev": true, - "dependencies": { - "xtend": "~3.0.0" - } - }, - "node_modules/abstract-leveldown/node_modules/xtend": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-3.0.0.tgz", - "integrity": "sha512-sp/sT9OALMjRW1fKDlPeuSZlDQpkqReA0pyJukniWbTGoEKefHxhGJynE3PNhUMlcM8qWIjPwecwCw4LArS5Eg==", "dev": true, - "engines": { - "node": ">=0.4" - } + "license": "ISC" }, "node_modules/accepts": { "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", "dev": true, + "license": "MIT", "dependencies": { "mime-types": "~2.1.34", "negotiator": "0.6.3" @@ -3477,10 +3317,8 @@ } }, "node_modules/acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", - "dev": true, + "version": "8.10.0", + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -3490,41 +3328,36 @@ }, "node_modules/acorn-import-assertions": { "version": "1.9.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", - "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", "dev": true, + "license": "MIT", "peerDependencies": { "acorn": "^8" } }, "node_modules/acorn-jsx": { "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, + "license": "MIT", "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "node_modules/acorn-walk": { "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "dev": true, + "license": "MIT", "engines": { "node": ">=0.4.0" } }, "node_modules/add-stream": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/add-stream/-/add-stream-1.0.0.tgz", - "integrity": "sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/agent-base": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "license": "MIT", "dependencies": { "debug": "4" }, @@ -3533,13 +3366,10 @@ } }, "node_modules/agentkeepalive": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.3.0.tgz", - "integrity": "sha512-7Epl1Blf4Sy37j4v9f9FjICCh4+KAQOyXgHEwlyBiAQLbhKdq/i2QQU3amQalS/wPhdPzDXPL5DMR5bkn+YeWg==", + "version": "4.5.0", "dev": true, + "license": "MIT", "dependencies": { - "debug": "^4.1.0", - "depd": "^2.0.0", "humanize-ms": "^1.2.1" }, "engines": { @@ -3548,9 +3378,8 @@ }, "node_modules/aggregate-error": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", "dev": true, + "license": "MIT", "dependencies": { "clean-stack": "^2.0.0", "indent-string": "^4.0.0" @@ -3561,9 +3390,8 @@ }, "node_modules/ajv": { "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -3577,18 +3405,16 @@ }, "node_modules/ajv-keywords": { "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", "dev": true, + "license": "MIT", "peerDependencies": { "ajv": "^6.9.1" } }, "node_modules/ansi-escapes": { "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, + "license": "MIT", "dependencies": { "type-fest": "^0.21.3" }, @@ -3601,9 +3427,8 @@ }, "node_modules/ansi-escapes/node_modules/type-fest": { "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -3613,24 +3438,16 @@ }, "node_modules/ansi-regex": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/ansi-sequence-parser": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ansi-sequence-parser/-/ansi-sequence-parser-1.1.0.tgz", - "integrity": "sha512-lEm8mt52to2fT8GhciPCGeCXACSz2UwIN4X2e2LJSnZ5uAbn2/dsYdOmUXq0AtWS5cpAupysIneExOgH0Vd2TQ==", - "dev": true - }, "node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -3643,9 +3460,8 @@ }, "node_modules/anymatch": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, + "license": "ISC", "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -3654,35 +3470,15 @@ "node": ">= 8" } }, - "node_modules/append-transform": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", - "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", - "dev": true, - "dependencies": { - "default-require-extensions": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/aproba": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", - "dev": true - }, - "node_modules/archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/are-we-there-yet": { "version": "1.1.7", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", - "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", "dev": true, + "license": "ISC", "dependencies": { "delegates": "^1.0.0", "readable-stream": "^2.0.6" @@ -3690,15 +3486,13 @@ }, "node_modules/are-we-there-yet/node_modules/isarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/are-we-there-yet/node_modules/readable-stream": { "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -3711,46 +3505,39 @@ }, "node_modules/are-we-there-yet/node_modules/safe-buffer": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/are-we-there-yet/node_modules/string_decoder": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "~5.1.0" } }, "node_modules/arg": { "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true + "license": "MIT" }, "node_modules/argparse": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true + "dev": true, + "license": "Python-2.0" }, "node_modules/aria-query": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", - "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", + "version": "5.3.0", "dev": true, + "license": "Apache-2.0", "peer": true, "dependencies": { - "deep-equal": "^2.0.5" + "dequal": "^2.0.3" } }, "node_modules/array-buffer-byte-length": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", - "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "is-array-buffer": "^3.0.1" @@ -3761,29 +3548,26 @@ }, "node_modules/array-differ": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz", - "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/array-ify": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", - "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/array-includes": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", - "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", + "version": "3.1.7", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", "is-string": "^1.0.7" }, "engines": { @@ -3795,22 +3579,38 @@ }, "node_modules/array-union": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.3", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/array.prototype.flat": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", - "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", + "version": "1.3.2", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", "es-shim-unscopables": "^1.0.0" }, "engines": { @@ -3821,14 +3621,13 @@ } }, "node_modules/array.prototype.flatmap": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", - "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", + "version": "1.3.2", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", "es-shim-unscopables": "^1.0.0" }, "engines": { @@ -3839,14 +3638,13 @@ } }, "node_modules/array.prototype.reduce": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.5.tgz", - "integrity": "sha512-kDdugMl7id9COE8R7MHF5jWk7Dqt/fs4Pv+JXoICnYwqpjjjbUurz6w5fT5IG6brLdJhv6/VoHB0H7oyIBXd+Q==", + "version": "1.0.6", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", "es-array-method-boxes-properly": "^1.0.0", "is-string": "^1.0.7" }, @@ -3859,9 +3657,8 @@ }, "node_modules/array.prototype.tosorted": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz", - "integrity": "sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "call-bind": "^1.0.2", @@ -3871,121 +3668,95 @@ "get-intrinsic": "^1.1.3" } }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-array-buffer": "^3.0.2", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/arrify": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/asap": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/asn1": { "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", "dev": true, + "license": "MIT", "dependencies": { "safer-buffer": "~2.1.0" } }, - "node_modules/asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", - "dev": true, - "dependencies": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/asn1.js/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/assert": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-2.0.0.tgz", - "integrity": "sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A==", - "dependencies": { - "es6-object-assign": "^1.1.0", - "is-nan": "^1.2.1", - "object-is": "^1.0.1", - "util": "^0.12.0" - } - }, - "node_modules/assert-browserify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/assert-browserify/-/assert-browserify-2.0.0.tgz", - "integrity": "sha512-SJvtrHmyaOT57oKWIpzWZr2hLkFyXjg5ajNT+RHvd9fhpruhrJF0OYT0yy8rIgvSn3xQp/VpLQAOwO0KNVKrJw==", - "dev": true, - "dependencies": { - "es6-object-assign": "^1.1.0", - "is-nan": "^1.2.1", - "object-is": "^1.0.1", - "util": "^0.12.0" - } - }, "node_modules/assert-plus": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8" } }, "node_modules/assertion-error": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", "dev": true, + "license": "MIT", "engines": { "node": "*" } }, "node_modules/ast-types-flow": { "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", - "integrity": "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==", "dev": true, + "license": "ISC", "peer": true }, - "node_modules/async": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", - "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", - "dev": true + "node_modules/asynciterator.prototype": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "has-symbols": "^1.0.3" + } }, "node_modules/asynckit": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/at-least-node": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", "dev": true, + "license": "ISC", "engines": { "node": ">= 4.0.0" } }, "node_modules/available-typed-arrays": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -3995,49 +3766,44 @@ }, "node_modules/aws-sign2": { "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", "dev": true, + "license": "Apache-2.0", "engines": { "node": "*" } }, "node_modules/aws4": { "version": "1.12.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz", - "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/axe-core": { - "version": "4.7.1", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.7.1.tgz", - "integrity": "sha512-sCXXUhA+cljomZ3ZAwb8i1p3oOlkABzPy08ZDAoGcYuvtBPlQ1Ytde129ArXyHWDhfeewq7rlx9F+cUx2SSlkg==", + "version": "4.7.2", "dev": true, + "license": "MPL-2.0", "peer": true, "engines": { "node": ">=4" } }, "node_modules/axobject-query": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.1.1.tgz", - "integrity": "sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==", + "version": "3.2.1", "dev": true, + "license": "Apache-2.0", "peer": true, "dependencies": { - "deep-equal": "^2.0.5" + "dequal": "^2.0.3" } }, "node_modules/babel-jest": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.5.0.tgz", - "integrity": "sha512-mA4eCDh5mSo2EcA9xQjVTpmbbNk32Zb3Q3QFQsNhaK56Q+yoXowzFodLux30HRgyOho5rsQ6B0P9QpMkvvnJ0Q==", + "version": "29.7.0", "dev": true, + "license": "MIT", "dependencies": { - "@jest/transform": "^29.5.0", + "@jest/transform": "^29.7.0", "@types/babel__core": "^7.1.14", "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^29.5.0", + "babel-preset-jest": "^29.6.3", "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "slash": "^3.0.0" @@ -4051,9 +3817,8 @@ }, "node_modules/babel-plugin-istanbul": { "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@istanbuljs/load-nyc-config": "^1.0.0", @@ -4065,11 +3830,33 @@ "node": ">=8" } }, + "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/semver": { + "version": "6.3.1", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/babel-plugin-jest-hoist": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.5.0.tgz", - "integrity": "sha512-zSuuuAlTMT4mzLj2nPnUm6fsE6270vdOfnpbJ+RmruU75UhLFvL0N2NgI7xpeS7NaB6hGqmd5pVpGTDYvi4Q3w==", + "version": "29.6.3", "dev": true, + "license": "MIT", "dependencies": { "@babel/template": "^7.3.3", "@babel/types": "^7.3.3", @@ -4082,9 +3869,8 @@ }, "node_modules/babel-preset-current-node-syntax": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-bigint": "^7.8.3", @@ -4104,12 +3890,11 @@ } }, "node_modules/babel-preset-jest": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.5.0.tgz", - "integrity": "sha512-JOMloxOqdiBSxMAzjRaH023/vvcaSaec49zvg+2LmNsktC7ei39LTJGw02J+9uUtTZUq6xbLyJ4dxe9sSmIuAg==", + "version": "29.6.3", "dev": true, + "license": "MIT", "dependencies": { - "babel-plugin-jest-hoist": "^29.5.0", + "babel-plugin-jest-hoist": "^29.6.3", "babel-preset-current-node-syntax": "^1.0.0" }, "engines": { @@ -4121,169 +3906,49 @@ }, "node_modules/balanced-match": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/base-x": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", - "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] + "dev": true, + "license": "MIT" }, "node_modules/base64id": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", - "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", "dev": true, + "license": "MIT", "engines": { "node": "^4.5.0 || >= 5.9" } }, "node_modules/bcrypt-pbkdf": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "tweetnacl": "^0.14.3" } }, "node_modules/before-after-hook": { "version": "2.2.3", - "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", - "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==", - "dev": true - }, - "node_modules/big-integer": { - "version": "1.6.51", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", - "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==", - "engines": { - "node": ">=0.6" - } + "dev": true, + "license": "Apache-2.0" }, "node_modules/bignumber.js": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz", - "integrity": "sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==", + "version": "9.1.2", + "license": "MIT", "engines": { "node": "*" } }, "node_modules/binary-extensions": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "dependencies": { - "file-uri-to-path": "1.0.0" - } - }, - "node_modules/bip32": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/bip32/-/bip32-2.0.6.tgz", - "integrity": "sha512-HpV5OMLLGTjSVblmrtYRfFFKuQB+GArM0+XP8HGWfJ5vxYBqo+DesvJwOdC2WJ3bCkZShGf0QIfoIpeomVzVdA==", - "dependencies": { - "@types/node": "10.12.18", - "bs58check": "^2.1.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "tiny-secp256k1": "^1.1.3", - "typeforce": "^1.11.5", - "wif": "^2.0.6" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/bip32/node_modules/@types/node": { - "version": "10.12.18", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.18.tgz", - "integrity": "sha512-fh+pAqt4xRzPfqA6eh3Z2y6fyZavRIumvjhaCL753+TVkGKGhpPeyrJG2JftD0T9q4GF00KjefsQ+PQNDdWQaQ==" - }, - "node_modules/bip39": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bip39/-/bip39-3.1.0.tgz", - "integrity": "sha512-c9kiwdk45Do5GL0vJMe7tS95VjCii65mYAH7DfWl3uW8AVzXKQVUm64i3hzVybBDMp9r7j9iNxR85+ul8MdN/A==", - "dependencies": { - "@noble/hashes": "^1.2.0" - } - }, - "node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dev": true, - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/bl/node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" - }, "node_modules/body-parser": { "version": "1.20.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", - "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", "dev": true, + "license": "MIT", "dependencies": { "bytes": "3.1.2", "content-type": "~1.0.5", @@ -4305,24 +3970,21 @@ }, "node_modules/body-parser/node_modules/debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, + "license": "MIT", "dependencies": { "ms": "2.0.0" } }, "node_modules/body-parser/node_modules/ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/body-parser/node_modules/qs": { "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "side-channel": "^1.0.4" }, @@ -4335,9 +3997,8 @@ }, "node_modules/brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -4345,9 +4006,8 @@ }, "node_modules/braces": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, + "license": "MIT", "dependencies": { "fill-range": "^7.0.1" }, @@ -4355,251 +4015,94 @@ "node": ">=8" } }, - "node_modules/brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" - }, - "node_modules/browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "node_modules/browserslist": { + "version": "4.22.3", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", "dependencies": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "caniuse-lite": "^1.0.30001580", + "electron-to-chromium": "^1.4.648", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, - "node_modules/browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "node_modules/bs-logger": { + "version": "0.2.6", "dev": true, + "license": "MIT", "dependencies": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" + "fast-json-stable-stringify": "2.x" + }, + "engines": { + "node": ">= 6" } }, - "node_modules/browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dev": true, - "dependencies": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/browserify-fs": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browserify-fs/-/browserify-fs-1.0.0.tgz", - "integrity": "sha512-8LqHRPuAEKvyTX34R6tsw4bO2ro6j9DmlYBhiYWHRM26Zv2cBw1fJOU0NeUQ0RkXkPn/PFBjhA0dm4AgaBurTg==", - "dev": true, - "dependencies": { - "level-filesystem": "^1.0.1", - "level-js": "^2.1.3", - "levelup": "^0.18.2" - } - }, - "node_modules/browserify-rsa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", - "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", - "dev": true, - "dependencies": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "node_modules/browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", - "dev": true, - "dependencies": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, - "node_modules/browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "dev": true, - "dependencies": { - "pako": "~1.0.5" - } - }, - "node_modules/browserslist": { - "version": "4.21.5", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", - "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - ], - "dependencies": { - "caniuse-lite": "^1.0.30001449", - "electron-to-chromium": "^1.4.284", - "node-releases": "^2.0.8", - "update-browserslist-db": "^1.0.10" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/bs-logger": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", - "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", - "dev": true, - "dependencies": { - "fast-json-stable-stringify": "2.x" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", - "dependencies": { - "base-x": "^3.0.2" - } - }, - "node_modules/bs58check": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", - "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", - "dependencies": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "node_modules/bser": { + "version": "2.1.1", "dev": true, + "license": "Apache-2.0", "dependencies": { "node-int64": "^0.4.0" } }, - "node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "dev": true, - "engines": { - "node": "*" - } - }, "node_modules/buffer-from": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "node_modules/buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", - "dev": true - }, - "node_modules/builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/builtins": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", - "integrity": "sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/byline": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/byline/-/byline-5.0.0.tgz", - "integrity": "sha512-s6webAy+R4SR8XVuJWt2V2rGvhnrhxN+9S15GNuTK3wKPOXFF6RNc+8ug2XhH+2s4f+uudG4kUVYmYOQWL2g0Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/byte-size": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/byte-size/-/byte-size-7.0.1.tgz", - "integrity": "sha512-crQdqyCwhokxwV1UyDzLZanhkugAgft7vt0qbbdt60C6Zf3CAiGmtUCylbtYwrU6loOUw3euGrNtW1J651ot1A==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" } }, "node_modules/bytes": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/cacache": { "version": "15.3.0", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", - "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", "dev": true, + "license": "ISC", "dependencies": { "@npmcli/fs": "^1.0.0", "@npmcli/move-file": "^1.0.1", @@ -4626,9 +4129,8 @@ }, "node_modules/cacache/node_modules/lru-cache": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -4638,44 +4140,17 @@ }, "node_modules/cacache/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/caching-transform": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", - "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", - "dev": true, - "dependencies": { - "hasha": "^5.0.0", - "make-dir": "^3.0.0", - "package-hash": "^4.0.0", - "write-file-atomic": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/caching-transform/node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } + "license": "ISC" }, "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "version": "1.0.5", + "dev": true, + "license": "MIT", "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.1", + "set-function-length": "^1.1.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -4683,27 +4158,24 @@ }, "node_modules/callsites": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/camelcase": { "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/camelcase-keys": { "version": "6.2.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", - "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", "dev": true, + "license": "MIT", "dependencies": { "camelcase": "^5.3.1", "map-obj": "^4.0.0", @@ -4717,9 +4189,7 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001487", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001487.tgz", - "integrity": "sha512-83564Z3yWGqXsh2vaH/mhXfEM0wX+NlBCm1jYHOb97TrTWJEmPTccZgeLTPBUUb0PNVo+oomb7wkimZBIERClA==", + "version": "1.0.30001581", "dev": true, "funding": [ { @@ -4734,27 +4204,26 @@ "type": "github", "url": "https://github.com/sponsors/ai" } - ] + ], + "license": "CC-BY-4.0" }, "node_modules/caseless": { "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", - "dev": true + "dev": true, + "license": "Apache-2.0" }, "node_modules/chai": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz", - "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==", + "version": "4.4.1", "dev": true, + "license": "MIT", "dependencies": { "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^4.1.2", - "get-func-name": "^2.0.0", - "loupe": "^2.3.1", + "check-error": "^1.0.3", + "deep-eql": "^4.1.3", + "get-func-name": "^2.0.2", + "loupe": "^2.3.6", "pathval": "^1.1.1", - "type-detect": "^4.0.5" + "type-detect": "^4.0.8" }, "engines": { "node": ">=4" @@ -4762,9 +4231,8 @@ }, "node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -4778,32 +4246,30 @@ }, "node_modules/char-regex": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" } }, "node_modules/chardet": { "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", + "version": "1.0.3", "dev": true, + "license": "MIT", + "dependencies": { + "get-func-name": "^2.0.2" + }, "engines": { "node": "*" } }, "node_modules/chokidar": { "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", "dev": true, "funding": [ { @@ -4811,6 +4277,7 @@ "url": "https://paulmillr.com/funding/" } ], + "license": "MIT", "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -4829,9 +4296,8 @@ }, "node_modules/chokidar/node_modules/glob-parent": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -4841,26 +4307,22 @@ }, "node_modules/chownr": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", "dev": true, + "license": "ISC", "engines": { "node": ">=10" } }, "node_modules/chrome-trace-event": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.0" } }, "node_modules/ci-info": { "version": "3.8.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", - "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", "dev": true, "funding": [ { @@ -4868,39 +4330,28 @@ "url": "https://github.com/sponsors/sibiraj-s" } ], + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, "node_modules/cjs-module-lexer": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", - "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", - "dev": true + "version": "1.2.3", + "dev": true, + "license": "MIT" }, "node_modules/clean-stack": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/cli-cursor": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", "dev": true, + "license": "MIT", "dependencies": { "restore-cursor": "^3.1.0" }, @@ -4910,18 +4361,16 @@ }, "node_modules/cli-width": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", "dev": true, + "license": "ISC", "engines": { "node": ">= 10" } }, "node_modules/cliui": { "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", @@ -4930,18 +4379,16 @@ }, "node_modules/clone": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8" } }, "node_modules/clone-deep": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", "dev": true, + "license": "MIT", "dependencies": { "is-plain-object": "^2.0.4", "kind-of": "^6.0.2", @@ -4953,9 +4400,8 @@ }, "node_modules/clone-deep/node_modules/is-plain-object": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, + "license": "MIT", "dependencies": { "isobject": "^3.0.1" }, @@ -4965,9 +4411,8 @@ }, "node_modules/cmd-shim": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-4.1.0.tgz", - "integrity": "sha512-lb9L7EM4I/ZRVuljLPEtUJOP+xiQVknZ4ZMpMgEp4JzNldPb27HU03hi6K1/6CoIuit/Zm/LQXySErFeXxDprw==", "dev": true, + "license": "ISC", "dependencies": { "mkdirp-infer-owner": "^2.0.0" }, @@ -4977,9 +4422,8 @@ }, "node_modules/co": { "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", "dev": true, + "license": "MIT", "engines": { "iojs": ">= 1.0.0", "node": ">= 0.12.0" @@ -4987,24 +4431,21 @@ }, "node_modules/code-point-at": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/collect-v8-coverage": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", - "dev": true + "version": "1.0.2", + "dev": true, + "license": "MIT" }, "node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -5014,21 +4455,18 @@ }, "node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/colorette": { "version": "2.0.20", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/columnify": { "version": "1.6.0", - "resolved": "https://registry.npmjs.org/columnify/-/columnify-1.6.0.tgz", - "integrity": "sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q==", "dev": true, + "license": "MIT", "dependencies": { "strip-ansi": "^6.0.1", "wcwidth": "^1.0.0" @@ -5039,9 +4477,8 @@ }, "node_modules/combined-stream": { "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "dev": true, + "license": "MIT", "dependencies": { "delayed-stream": "~1.0.0" }, @@ -5051,30 +4488,21 @@ }, "node_modules/commander": { "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/comment-parser": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.3.1.tgz", - "integrity": "sha512-B52sN2VNghyq5ofvUsqZjmk6YkihBX5vMSChmSK9v4ShjKf3Vk5Xcmgpw4o+iIgtrnM/u5FiMpz9VKb8lpBveA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 12.0.0" } }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", - "dev": true - }, "node_modules/compare-func": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", - "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==", "dev": true, + "license": "MIT", "dependencies": { "array-ify": "^1.0.0", "dot-prop": "^5.1.0" @@ -5082,9 +4510,8 @@ }, "node_modules/compare-func/node_modules/dot-prop": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", "dev": true, + "license": "MIT", "dependencies": { "is-obj": "^2.0.0" }, @@ -5094,18 +4521,16 @@ }, "node_modules/concat-map": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/concat-stream": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", - "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", "dev": true, "engines": [ "node >= 6.0" ], + "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "inherits": "^2.0.3", @@ -5115,9 +4540,8 @@ }, "node_modules/config-chain": { "version": "1.1.13", - "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", - "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", "dev": true, + "license": "MIT", "dependencies": { "ini": "^1.3.4", "proto-list": "~1.2.1" @@ -5125,15 +4549,13 @@ }, "node_modules/confusing-browser-globals": { "version": "1.0.11", - "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", - "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/connect": { "version": "3.7.0", - "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", - "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", "dev": true, + "license": "MIT", "dependencies": { "debug": "2.6.9", "finalhandler": "1.1.2", @@ -5146,51 +4568,34 @@ }, "node_modules/connect/node_modules/debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, + "license": "MIT", "dependencies": { "ms": "2.0.0" } }, "node_modules/connect/node_modules/ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/console-browserify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", - "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/console-control-strings": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", - "dev": true - }, - "node_modules/constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/content-type": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/conventional-changelog-angular": { "version": "5.0.13", - "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz", - "integrity": "sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==", "dev": true, + "license": "ISC", "dependencies": { "compare-func": "^2.0.0", "q": "^1.5.1" @@ -5201,9 +4606,8 @@ }, "node_modules/conventional-changelog-core": { "version": "4.2.4", - "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-4.2.4.tgz", - "integrity": "sha512-gDVS+zVJHE2v4SLc6B0sLsPiloR0ygU7HaDW14aNJE1v4SlqJPILPl/aJC7YdtRE4CybBf8gDwObBvKha8Xlyg==", "dev": true, + "license": "MIT", "dependencies": { "add-stream": "^1.0.0", "conventional-changelog-writer": "^5.0.0", @@ -5226,27 +4630,24 @@ }, "node_modules/conventional-changelog-core/node_modules/through2": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", "dev": true, + "license": "MIT", "dependencies": { "readable-stream": "3" } }, "node_modules/conventional-changelog-preset-loader": { "version": "2.3.4", - "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.3.4.tgz", - "integrity": "sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" } }, "node_modules/conventional-changelog-writer": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-5.0.1.tgz", - "integrity": "sha512-5WsuKUfxW7suLblAbFnxAcrvf6r+0b7GvNaWUwUIk0bXMnENP/PEieGKVUQrjPqwPT4o3EPAASBXiY6iHooLOQ==", "dev": true, + "license": "MIT", "dependencies": { "conventional-commits-filter": "^2.0.7", "dateformat": "^3.0.0", @@ -5266,28 +4667,25 @@ } }, "node_modules/conventional-changelog-writer/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/conventional-changelog-writer/node_modules/through2": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", "dev": true, + "license": "MIT", "dependencies": { "readable-stream": "3" } }, "node_modules/conventional-commits-filter": { "version": "2.0.7", - "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.7.tgz", - "integrity": "sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA==", "dev": true, + "license": "MIT", "dependencies": { "lodash.ismatch": "^4.4.0", "modify-values": "^1.0.0" @@ -5298,9 +4696,8 @@ }, "node_modules/conventional-commits-parser": { "version": "3.2.4", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.4.tgz", - "integrity": "sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==", "dev": true, + "license": "MIT", "dependencies": { "is-text-path": "^1.0.1", "JSONStream": "^1.0.4", @@ -5318,18 +4715,16 @@ }, "node_modules/conventional-commits-parser/node_modules/through2": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", "dev": true, + "license": "MIT", "dependencies": { "readable-stream": "3" } }, "node_modules/conventional-recommended-bump": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-6.1.0.tgz", - "integrity": "sha512-uiApbSiNGM/kkdL9GTOLAqC4hbptObFo4wW2QRyHsKciGAfQuLU1ShZ1BIVI/+K2BE/W1AWYQMCXAsv4dyKPaw==", "dev": true, + "license": "MIT", "dependencies": { "concat-stream": "^2.0.0", "conventional-changelog-preset-loader": "^2.3.4", @@ -5349,24 +4744,21 @@ }, "node_modules/convert-source-map": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/cookie": { "version": "0.4.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", - "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/copyfiles": { "version": "2.4.1", - "resolved": "https://registry.npmjs.org/copyfiles/-/copyfiles-2.4.1.tgz", - "integrity": "sha512-fereAvAvxDrQDOXybk3Qu3dPbOoKoysFMWtkY3mv5BsL8//OSZVL5DCLYqgRfY5cWirgRzlC+WSrxp6Bo3eNZg==", "dev": true, + "license": "MIT", "dependencies": { "glob": "^7.0.5", "minimatch": "^3.0.3", @@ -5383,15 +4775,13 @@ }, "node_modules/core-util-is": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/cors": { "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", "dev": true, + "license": "MIT", "dependencies": { "object-assign": "^4", "vary": "^1" @@ -5402,9 +4792,8 @@ }, "node_modules/cosmiconfig": { "version": "7.1.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", - "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", "dev": true, + "license": "MIT", "dependencies": { "@types/parse-json": "^4.0.0", "import-fresh": "^3.2.1", @@ -5416,109 +4805,34 @@ "node": ">=10" } }, - "node_modules/create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "dev": true, - "dependencies": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - } - }, - "node_modules/create-ecdh/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dependencies": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "node_modules/create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dependencies": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "node_modules/create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true - }, - "node_modules/cross-fetch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", - "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", - "dev": true, - "dependencies": { - "node-fetch": "2.6.7" - } - }, - "node_modules/cross-fetch/node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "node_modules/create-jest": { + "version": "29.7.0", "dev": true, + "license": "MIT", "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" }, - "peerDependencies": { - "encoding": "^0.1.0" + "bin": { + "create-jest": "bin/create-jest.js" }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/cross-fetch/node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true - }, - "node_modules/cross-fetch/node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true - }, - "node_modules/cross-fetch/node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dev": true, - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } + "node_modules/create-require": { + "version": "1.1.1", + "license": "MIT" }, "node_modules/cross-spawn": { "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -5528,55 +4842,29 @@ "node": ">= 8" } }, - "node_modules/crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dev": true, - "dependencies": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - }, - "engines": { - "node": "*" - } - }, "node_modules/custom-event": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", - "integrity": "sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/damerau-levenshtein": { "version": "1.0.8", - "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", - "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", "dev": true, + "license": "BSD-2-Clause", "peer": true }, "node_modules/dargs": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", - "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/dashdash": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", "dev": true, + "license": "MIT", "dependencies": { "assert-plus": "^1.0.0" }, @@ -5586,26 +4874,29 @@ }, "node_modules/date-format": { "version": "4.0.14", - "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.14.tgz", - "integrity": "sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==", "dev": true, + "license": "MIT", "engines": { "node": ">=4.0" } }, "node_modules/dateformat": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", - "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", "dev": true, + "license": "MIT", "engines": { "node": "*" } }, + "node_modules/debounce": { + "version": "1.2.1", + "dev": true, + "license": "MIT" + }, "node_modules/debug": { "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "license": "MIT", "dependencies": { "ms": "2.1.2" }, @@ -5620,27 +4911,24 @@ }, "node_modules/debuglog": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz", - "integrity": "sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw==", "dev": true, + "license": "MIT", "engines": { "node": "*" } }, "node_modules/decamelize": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/decamelize-keys": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", - "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", "dev": true, + "license": "MIT", "dependencies": { "decamelize": "^1.1.0", "map-obj": "^1.0.0" @@ -5654,38 +4942,37 @@ }, "node_modules/decamelize-keys/node_modules/map-obj": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/decimal.js": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", - "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==" - }, "node_modules/decode-uri-component": { "version": "0.2.2", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", - "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10" } }, "node_modules/dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", - "dev": true + "version": "1.5.1", + "dev": true, + "license": "MIT", + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } }, "node_modules/deep-eql": { "version": "4.1.3", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", - "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", "dev": true, + "license": "MIT", "dependencies": { "type-detect": "^4.0.0" }, @@ -5693,71 +4980,23 @@ "node": ">=6" } }, - "node_modules/deep-equal": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.1.tgz", - "integrity": "sha512-lKdkdV6EOGoVn65XaOsPdH4rMxTZOnmFyuIkMjM1i5HHCbfjC97dawgTAy0deYNfuqUqW+Q5VrVaQYtUpSd6yQ==", - "dev": true, - "peer": true, - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.2", - "es-get-iterator": "^1.1.3", - "get-intrinsic": "^1.2.0", - "is-arguments": "^1.1.1", - "is-array-buffer": "^3.0.2", - "is-date-object": "^1.0.5", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "isarray": "^2.0.5", - "object-is": "^1.1.5", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.0", - "side-channel": "^1.0.4", - "which-boxed-primitive": "^1.0.2", - "which-collection": "^1.0.1", - "which-typed-array": "^1.1.9" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "node_modules/deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/default-require-extensions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.1.tgz", - "integrity": "sha512-eXTJmRbm2TIt9MgWTsOH1wEuhew6XGZcMeGKCtLedIg/NCsg1iBePXkceTdK4Fii7pzmN9tGsZhKzZ4h7O/fxw==", - "dev": true, - "dependencies": { - "strip-bom": "^4.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/defaults": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", - "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "node_modules/deep-is": { + "version": "0.1.4", "dev": true, + "license": "MIT" + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/defaults": { + "version": "1.0.4", + "dev": true, + "license": "MIT", "dependencies": { "clone": "^1.0.2" }, @@ -5765,19 +5004,23 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/deferred-leveldown": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-0.2.0.tgz", - "integrity": "sha512-+WCbb4+ez/SZ77Sdy1iadagFiVzMB89IKOBhglgnUkVxOxRWmmFsz8UDSNWh4Rhq+3wr/vMFlYj+rdEwWUDdng==", + "node_modules/define-data-property": { + "version": "1.1.1", "dev": true, + "license": "MIT", "dependencies": { - "abstract-leveldown": "~0.12.1" + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" } }, "node_modules/define-properties": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", - "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", + "dev": true, + "license": "MIT", "dependencies": { "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" @@ -5791,49 +5034,43 @@ }, "node_modules/delayed-stream": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.4.0" } }, "node_modules/delegates": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/depd": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/deprecation": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", - "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", - "dev": true + "dev": true, + "license": "ISC" }, - "node_modules/des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "node_modules/dequal": { + "version": "2.0.3", "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6" } }, "node_modules/destroy": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8", "npm": "1.2.8000 || >= 1.4.16" @@ -5841,33 +5078,24 @@ }, "node_modules/detect-indent": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", - "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/detect-newline": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/devtools-protocol": { - "version": "0.0.981744", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.981744.tgz", - "integrity": "sha512-0cuGS8+jhR67Fy7qG3i3Pc7Aw494sb9yG9QgpG97SFVWwolgYjlhJg7n+UaHxOQT30d1TYu/EYe9k01ivLErIg==", - "dev": true - }, "node_modules/dezalgo": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz", - "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==", "dev": true, + "license": "ISC", "dependencies": { "asap": "^2.0.0", "wrappy": "1" @@ -5875,50 +5103,28 @@ }, "node_modules/di": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", - "integrity": "sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/diff": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.3.1" } }, "node_modules/diff-sequences": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.4.3.tgz", - "integrity": "sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==", + "version": "29.6.3", "dev": true, + "license": "MIT", "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dev": true, - "dependencies": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "node_modules/diffie-hellman/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, "node_modules/dir-glob": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, + "license": "MIT", "dependencies": { "path-type": "^4.0.0" }, @@ -5928,9 +5134,8 @@ }, "node_modules/doctrine": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, + "license": "Apache-2.0", "dependencies": { "esutils": "^2.0.2" }, @@ -5940,9 +5145,8 @@ }, "node_modules/dom-serialize": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", - "integrity": "sha512-Yra4DbvoW7/Z6LBN560ZwXMjoNOSAN2wRsKFGc4iBeso+mpIA6qj1vfdf9HpMaKAqG6wXTy+1SYEzmNpKXOSsQ==", "dev": true, + "license": "MIT", "dependencies": { "custom-event": "~1.0.0", "ent": "~2.2.0", @@ -5950,23 +5154,10 @@ "void-elements": "^2.0.0" } }, - "node_modules/domain-browser": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-4.22.0.tgz", - "integrity": "sha512-IGBwjF7tNk3cwypFNH/7bfzBcgSCbaMOD3GsaY1AU/JRrnHnYgEM0+9kQt52iZxjNsjBtJYtao146V+f8jFZNw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://bevry.me/fund" - } - }, "node_modules/dot-prop": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", - "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", "dev": true, + "license": "MIT", "dependencies": { "is-obj": "^2.0.0" }, @@ -5979,15 +5170,13 @@ }, "node_modules/duplexer": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/ecc-jsbn": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", "dev": true, + "license": "MIT", "dependencies": { "jsbn": "~0.1.0", "safer-buffer": "^2.1.0" @@ -5995,55 +5184,18 @@ }, "node_modules/ee-first": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", - "dev": true - }, - "node_modules/ejs": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz", - "integrity": "sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==", "dev": true, - "dependencies": { - "jake": "^10.8.5" - }, - "bin": { - "ejs": "bin/cli.js" - }, - "engines": { - "node": ">=0.10.0" - } + "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.4.397", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.397.tgz", - "integrity": "sha512-jwnPxhh350Q/aMatQia31KAIQdhEsYS0fFZ0BQQlN9tfvOEwShu6ZNwI4kL/xBabjcB/nTy6lSt17kNIluJZ8Q==", - "dev": true - }, - "node_modules/elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "dependencies": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/elliptic/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + "version": "1.4.648", + "dev": true, + "license": "ISC" }, "node_modules/emittery": { "version": "0.13.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", - "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -6053,25 +5205,22 @@ }, "node_modules/emoji-regex": { "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/encodeurl": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/encoding": { "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", "dev": true, + "license": "MIT", "optional": true, "dependencies": { "iconv-lite": "^0.6.2" @@ -6079,9 +5228,8 @@ }, "node_modules/encoding/node_modules/iconv-lite": { "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, + "license": "MIT", "optional": true, "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" @@ -6090,20 +5238,10 @@ "node": ">=0.10.0" } }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "dependencies": { - "once": "^1.4.0" - } - }, "node_modules/engine.io": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.4.2.tgz", - "integrity": "sha512-FKn/3oMiJjrOEOeUub2WCox6JhxBXq/Zn3fZOMCBxKnNYtsdKjxhl7yR3fZhM9PV+rdE75SU5SYMc+2PGzo+Tg==", + "version": "6.5.2", "dev": true, + "license": "MIT", "dependencies": { "@types/cookie": "^0.4.1", "@types/cors": "^2.8.12", @@ -6113,27 +5251,25 @@ "cookie": "~0.4.1", "cors": "~2.8.5", "debug": "~4.3.1", - "engine.io-parser": "~5.0.3", + "engine.io-parser": "~5.2.1", "ws": "~8.11.0" }, "engines": { - "node": ">=10.0.0" + "node": ">=10.2.0" } }, "node_modules/engine.io-parser": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.6.tgz", - "integrity": "sha512-tjuoZDMAdEhVnSFleYPCtdL2GXwVTGtNjoeJd9IhIG3C1xs9uwxqRNEu5WpnDZCaozwVlK/nuQhpodhXSIMaxw==", + "version": "5.2.1", "dev": true, + "license": "MIT", "engines": { "node": ">=10.0.0" } }, "node_modules/engine.io/node_modules/ws": { "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", - "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", "dev": true, + "license": "MIT", "engines": { "node": ">=10.0.0" }, @@ -6151,10 +5287,9 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.14.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.14.0.tgz", - "integrity": "sha512-+DCows0XNwLDcUhbFJPdlQEVnT2zXlCv7hPxemTz86/O+B/hCQ+mb7ydkPKiflpVraqLPCAfu7lDy+hBXueojw==", + "version": "5.16.0", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" @@ -6165,24 +5300,32 @@ }, "node_modules/ent": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", - "integrity": "sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/entities": { + "version": "4.5.0", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } }, "node_modules/env-paths": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/envinfo": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", - "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", + "version": "7.10.0", "dev": true, + "license": "MIT", "bin": { "envinfo": "dist/cli.js" }, @@ -6192,51 +5335,37 @@ }, "node_modules/err-code": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", - "dev": true - }, - "node_modules/errno": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", - "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", "dev": true, - "dependencies": { - "prr": "~1.0.1" - }, - "bin": { - "errno": "cli.js" - } + "license": "MIT" }, "node_modules/error-ex": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, + "license": "MIT", "dependencies": { "is-arrayish": "^0.2.1" } }, "node_modules/es-abstract": { - "version": "1.21.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.2.tgz", - "integrity": "sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==", + "version": "1.22.3", "dev": true, + "license": "MIT", "dependencies": { "array-buffer-byte-length": "^1.0.0", + "arraybuffer.prototype.slice": "^1.0.2", "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", + "call-bind": "^1.0.5", "es-set-tostringtag": "^2.0.1", "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.2.0", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.2", "get-symbol-description": "^1.0.0", "globalthis": "^1.0.3", "gopd": "^1.0.1", - "has": "^1.0.3", "has-property-descriptors": "^1.0.0", "has-proto": "^1.0.1", "has-symbols": "^1.0.3", + "hasown": "^2.0.0", "internal-slot": "^1.0.5", "is-array-buffer": "^3.0.2", "is-callable": "^1.2.7", @@ -6244,19 +5373,23 @@ "is-regex": "^1.1.4", "is-shared-array-buffer": "^1.0.2", "is-string": "^1.0.7", - "is-typed-array": "^1.1.10", + "is-typed-array": "^1.1.12", "is-weakref": "^1.0.2", - "object-inspect": "^1.12.3", + "object-inspect": "^1.13.1", "object-keys": "^1.1.1", "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", + "regexp.prototype.flags": "^1.5.1", + "safe-array-concat": "^1.0.1", "safe-regex-test": "^1.0.0", - "string.prototype.trim": "^1.2.7", - "string.prototype.trimend": "^1.0.6", - "string.prototype.trimstart": "^1.0.6", + "string.prototype.trim": "^1.2.8", + "string.prototype.trimend": "^1.0.7", + "string.prototype.trimstart": "^1.0.7", + "typed-array-buffer": "^1.0.0", + "typed-array-byte-length": "^1.0.0", + "typed-array-byte-offset": "^1.0.0", "typed-array-length": "^1.0.4", "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.9" + "which-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" @@ -6267,42 +5400,40 @@ }, "node_modules/es-array-method-boxes-properly": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", - "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", - "dev": true + "dev": true, + "license": "MIT" }, - "node_modules/es-get-iterator": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", - "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", + "node_modules/es-iterator-helpers": { + "version": "1.0.14", "dev": true, + "license": "MIT", "peer": true, "dependencies": { + "asynciterator.prototype": "^1.0.0", "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-set-tostringtag": "^2.0.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.2.1", + "globalthis": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", "has-symbols": "^1.0.3", - "is-arguments": "^1.1.1", - "is-map": "^2.0.2", - "is-set": "^2.0.2", - "is-string": "^1.0.7", - "isarray": "^2.0.5", - "stop-iteration-iterator": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "internal-slot": "^1.0.5", + "iterator.prototype": "^1.1.0", + "safe-array-concat": "^1.0.0" } }, "node_modules/es-module-lexer": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.2.1.tgz", - "integrity": "sha512-9978wrXM50Y4rTMmW5kXIC09ZdXQZqkE4mxhwkd8VbzsGkXGPgV4zWuqQJgCEzYngdo2dYDa0l8xhX4fkSwJSg==", - "dev": true + "version": "1.3.0", + "dev": true, + "license": "MIT" }, "node_modules/es-set-tostringtag": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", - "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", "dev": true, + "license": "MIT", "dependencies": { "get-intrinsic": "^1.1.3", "has": "^1.0.3", @@ -6314,18 +5445,16 @@ }, "node_modules/es-shim-unscopables": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", - "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", "dev": true, + "license": "MIT", "dependencies": { "has": "^1.0.3" } }, "node_modules/es-to-primitive": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, + "license": "MIT", "dependencies": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", @@ -6338,37 +5467,23 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es6-error": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", - "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", - "dev": true - }, - "node_modules/es6-object-assign": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz", - "integrity": "sha512-MEl9uirslVwqQU369iHNWZXsI8yaZYGg/D65aOgZkeyFJwHYSxilf7rQzXKI7DdDuBPrBXbfk3sl9hJhmd5AUw==" - }, "node_modules/escalade": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/escape-html": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/escape-string-regexp": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -6377,27 +5492,27 @@ } }, "node_modules/eslint": { - "version": "8.40.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.40.0.tgz", - "integrity": "sha512-bvR+TsP9EHL3TqNtj9sCNJVAFK3fBN8Q7g5waghxyRsPLIMwL73XSKnZFK0hk/O2ANC+iAoq6PWMQ+IfBAJIiQ==", + "version": "8.57.0", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.4.0", - "@eslint/eslintrc": "^2.0.3", - "@eslint/js": "8.40.0", - "@humanwhocodes/config-array": "^0.11.8", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.3.2", "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.0", - "eslint-visitor-keys": "^3.4.1", - "espree": "^9.5.2", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -6405,22 +5520,19 @@ "find-up": "^5.0.0", "glob-parent": "^6.0.2", "globals": "^13.19.0", - "grapheme-splitter": "^1.0.4", + "graphemer": "^1.4.0", "ignore": "^5.2.0", - "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "is-path-inside": "^3.0.3", - "js-sdsl": "^4.1.4", "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.1", + "optionator": "^0.9.3", "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", "text-table": "^0.2.0" }, "bin": { @@ -6435,9 +5547,8 @@ }, "node_modules/eslint-config-airbnb": { "version": "19.0.4", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-19.0.4.tgz", - "integrity": "sha512-T75QYQVQX57jiNgpF9r1KegMICE94VYwoFQyMGhrvc+lB8YF2E/M/PYDaQe1AJcWaEgqLE+ErXV1Og/+6Vyzew==", "dev": true, + "license": "MIT", "dependencies": { "eslint-config-airbnb-base": "^15.0.0", "object.assign": "^4.1.2", @@ -6456,9 +5567,8 @@ }, "node_modules/eslint-config-airbnb-base": { "version": "15.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", - "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", "dev": true, + "license": "MIT", "dependencies": { "confusing-browser-globals": "^1.0.10", "object.assign": "^4.1.2", @@ -6474,19 +5584,17 @@ } }, "node_modules/eslint-config-airbnb-base/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/eslint-config-prettier": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz", - "integrity": "sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==", + "version": "8.10.0", "dev": true, + "license": "MIT", "bin": { "eslint-config-prettier": "bin/cli.js" }, @@ -6495,30 +5603,27 @@ } }, "node_modules/eslint-import-resolver-node": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz", - "integrity": "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==", + "version": "0.3.9", "dev": true, + "license": "MIT", "dependencies": { "debug": "^3.2.7", - "is-core-module": "^2.11.0", - "resolve": "^1.22.1" + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" } }, "node_modules/eslint-import-resolver-node/node_modules/debug": { "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "^2.1.1" } }, "node_modules/eslint-module-utils": { "version": "2.8.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", - "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^3.2.7" }, @@ -6533,18 +5638,16 @@ }, "node_modules/eslint-module-utils/node_modules/debug": { "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "^2.1.1" } }, "node_modules/eslint-plugin-array-func": { "version": "3.1.8", - "resolved": "https://registry.npmjs.org/eslint-plugin-array-func/-/eslint-plugin-array-func-3.1.8.tgz", - "integrity": "sha512-BjnbJvw+knaHgVddIL3q5xYcoqAZoK8wOdT7QF+mkvSAjXdZCdhL0z71Y7oRtgXA8BpN9QLJ2uHgD3I6ymlbOw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 6.8.0" }, @@ -6554,9 +5657,8 @@ }, "node_modules/eslint-plugin-consistent-default-export-name": { "version": "0.0.15", - "resolved": "https://registry.npmjs.org/eslint-plugin-consistent-default-export-name/-/eslint-plugin-consistent-default-export-name-0.0.15.tgz", - "integrity": "sha512-gqW7dnJbWMxI5H6/Pyz6Sl/vBMwOktePMI2iuuKPb4N82uvemUkfaWhsRZCKndSzpIVaCZ9wdspCVO1tm0wXJQ==", "dev": true, + "license": "MIT", "dependencies": { "lodash": "^4.17.21", "pkg-dir": "^5.0.0" @@ -6567,9 +5669,8 @@ }, "node_modules/eslint-plugin-es": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz", - "integrity": "sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==", "dev": true, + "license": "MIT", "dependencies": { "eslint-utils": "^2.0.0", "regexpp": "^3.0.0" @@ -6586,9 +5687,8 @@ }, "node_modules/eslint-plugin-eslint-comments": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-eslint-comments/-/eslint-plugin-eslint-comments-3.2.0.tgz", - "integrity": "sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==", "dev": true, + "license": "MIT", "dependencies": { "escape-string-regexp": "^1.0.5", "ignore": "^5.0.5" @@ -6605,34 +5705,34 @@ }, "node_modules/eslint-plugin-eslint-comments/node_modules/escape-string-regexp": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.0" } }, "node_modules/eslint-plugin-import": { - "version": "2.27.5", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz", - "integrity": "sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==", + "version": "2.29.1", "dev": true, + "license": "MIT", "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.flat": "^1.3.1", - "array.prototype.flatmap": "^1.3.1", + "array-includes": "^3.1.7", + "array.prototype.findlastindex": "^1.2.3", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", "debug": "^3.2.7", "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.7", - "eslint-module-utils": "^2.7.4", - "has": "^1.0.3", - "is-core-module": "^2.11.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.8.0", + "hasown": "^2.0.0", + "is-core-module": "^2.13.1", "is-glob": "^4.0.3", "minimatch": "^3.1.2", - "object.values": "^1.1.6", - "resolve": "^1.22.1", - "semver": "^6.3.0", - "tsconfig-paths": "^3.14.1" + "object.fromentries": "^2.0.7", + "object.groupby": "^1.0.1", + "object.values": "^1.1.7", + "semver": "^6.3.1", + "tsconfig-paths": "^3.15.0" }, "engines": { "node": ">=4" @@ -6643,18 +5743,16 @@ }, "node_modules/eslint-plugin-import/node_modules/debug": { "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "^2.1.1" } }, "node_modules/eslint-plugin-import/node_modules/doctrine": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, + "license": "Apache-2.0", "dependencies": { "esutils": "^2.0.2" }, @@ -6663,19 +5761,17 @@ } }, "node_modules/eslint-plugin-import/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/eslint-plugin-jsdoc": { "version": "39.9.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-39.9.1.tgz", - "integrity": "sha512-Rq2QY6BZP2meNIs48aZ3GlIlJgBqFCmR55+UBvaDkA3ZNQ0SvQXOs2QKkubakEijV8UbIVbVZKsOVN8G3MuqZw==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "@es-joy/jsdoccomment": "~0.36.1", "comment-parser": "1.3.1", @@ -6694,9 +5790,8 @@ }, "node_modules/eslint-plugin-jsx-a11y": { "version": "6.7.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.1.tgz", - "integrity": "sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@babel/runtime": "^7.20.7", @@ -6724,10 +5819,9 @@ } }, "node_modules/eslint-plugin-jsx-a11y/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", "dev": true, + "license": "ISC", "peer": true, "bin": { "semver": "bin/semver.js" @@ -6735,9 +5829,8 @@ }, "node_modules/eslint-plugin-node": { "version": "11.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz", - "integrity": "sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==", "dev": true, + "license": "MIT", "dependencies": { "eslint-plugin-es": "^3.0.0", "eslint-utils": "^2.0.0", @@ -6754,19 +5847,17 @@ } }, "node_modules/eslint-plugin-node/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/eslint-plugin-prettier": { "version": "4.2.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", - "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", "dev": true, + "license": "MIT", "dependencies": { "prettier-linter-helpers": "^1.0.0" }, @@ -6784,16 +5875,16 @@ } }, "node_modules/eslint-plugin-react": { - "version": "7.32.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz", - "integrity": "sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==", + "version": "7.33.2", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "array-includes": "^3.1.6", "array.prototype.flatmap": "^1.3.1", "array.prototype.tosorted": "^1.1.1", "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.0.12", "estraverse": "^5.3.0", "jsx-ast-utils": "^2.4.1 || ^3.0.0", "minimatch": "^3.1.2", @@ -6803,7 +5894,7 @@ "object.values": "^1.1.6", "prop-types": "^15.8.1", "resolve": "^2.0.0-next.4", - "semver": "^6.3.0", + "semver": "^6.3.1", "string.prototype.matchall": "^4.0.8" }, "engines": { @@ -6815,9 +5906,8 @@ }, "node_modules/eslint-plugin-react-hooks": { "version": "4.6.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", - "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=10" @@ -6828,9 +5918,8 @@ }, "node_modules/eslint-plugin-react/node_modules/doctrine": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, + "license": "Apache-2.0", "peer": true, "dependencies": { "esutils": "^2.0.2" @@ -6841,9 +5930,8 @@ }, "node_modules/eslint-plugin-react/node_modules/resolve": { "version": "2.0.0-next.4", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", - "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "is-core-module": "^2.9.0", @@ -6858,10 +5946,9 @@ } }, "node_modules/eslint-plugin-react/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", "dev": true, + "license": "ISC", "peer": true, "bin": { "semver": "bin/semver.js" @@ -6869,9 +5956,8 @@ }, "node_modules/eslint-plugin-tsdoc": { "version": "0.2.17", - "resolved": "https://registry.npmjs.org/eslint-plugin-tsdoc/-/eslint-plugin-tsdoc-0.2.17.tgz", - "integrity": "sha512-xRmVi7Zx44lOBuYqG8vzTXuL6IdGOeF9nHX17bjJ8+VE6fsxpdGem0/SBTmAwgYMKYB1WBkqRJVQ+n8GK041pA==", "dev": true, + "license": "MIT", "dependencies": { "@microsoft/tsdoc": "0.14.2", "@microsoft/tsdoc-config": "0.16.2" @@ -6879,9 +5965,8 @@ }, "node_modules/eslint-scope": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" @@ -6892,18 +5977,16 @@ }, "node_modules/eslint-scope/node_modules/estraverse": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } }, "node_modules/eslint-utils": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", "dev": true, + "license": "MIT", "dependencies": { "eslint-visitor-keys": "^1.1.0" }, @@ -6916,18 +5999,16 @@ }, "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=4" } }, "node_modules/eslint-visitor-keys": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", - "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", + "version": "3.4.3", "dev": true, + "license": "Apache-2.0", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -6936,10 +6017,9 @@ } }, "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", - "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", + "version": "7.2.2", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" @@ -6952,12 +6032,11 @@ } }, "node_modules/espree": { - "version": "9.5.2", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.2.tgz", - "integrity": "sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==", + "version": "9.6.1", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "acorn": "^8.8.0", + "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^3.4.1" }, @@ -6970,9 +6049,8 @@ }, "node_modules/esprima": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true, + "license": "BSD-2-Clause", "bin": { "esparse": "bin/esparse.js", "esvalidate": "bin/esvalidate.js" @@ -6983,9 +6061,8 @@ }, "node_modules/esquery": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "estraverse": "^5.1.0" }, @@ -6995,9 +6072,8 @@ }, "node_modules/esrecurse": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" }, @@ -7007,67 +6083,36 @@ }, "node_modules/estraverse": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } }, "node_modules/esutils": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" } }, - "node_modules/event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/eventemitter2": { - "version": "6.4.9", - "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.9.tgz", - "integrity": "sha512-JEPTiaOt9f04oa6NOkc4aH+nVp5I3wEjpHbIPqfgCdD5v5bUzy7xQqwcVO2aDQgOWhI28da57HksMrzK9HlRxg==", - "dev": true - }, "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true + "version": "5.0.1", + "license": "MIT" }, "node_modules/events": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.x" } }, - "node_modules/evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dev": true, - "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, "node_modules/execa": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, + "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", @@ -7088,24 +6133,21 @@ }, "node_modules/exit": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", "dev": true, "engines": { "node": ">= 0.8.0" } }, "node_modules/expect": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-29.5.0.tgz", - "integrity": "sha512-yM7xqUrCO2JdpFo4XpM82t+PJBFybdqoQuJLDGeDX2ij8NZzqRHyu3Hp188/JX7SWqud+7t4MUdvcgGBICMHZg==", + "version": "29.7.0", "dev": true, + "license": "MIT", "dependencies": { - "@jest/expect-utils": "^29.5.0", - "jest-get-type": "^29.4.3", - "jest-matcher-utils": "^29.5.0", - "jest-message-util": "^29.5.0", - "jest-util": "^29.5.0" + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -7113,15 +6155,13 @@ }, "node_modules/extend": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/external-editor": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", "dev": true, + "license": "MIT", "dependencies": { "chardet": "^0.7.0", "iconv-lite": "^0.4.24", @@ -7131,67 +6171,39 @@ "node": ">=4" } }, - "node_modules/extract-zip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", - "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "get-stream": "^5.1.0", - "yauzl": "^2.10.0" - }, - "bin": { - "extract-zip": "cli.js" - }, - "engines": { - "node": ">= 10.17.0" - }, - "optionalDependencies": { - "@types/yauzl": "^2.9.1" - } - }, - "node_modules/extract-zip/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "node_modules/external-editor/node_modules/tmp": { + "version": "0.0.33", "dev": true, + "license": "MIT", "dependencies": { - "pump": "^3.0.0" + "os-tmpdir": "~1.0.2" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.6.0" } }, "node_modules/extsprintf": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", "dev": true, "engines": [ "node >=0.6.0" - ] + ], + "license": "MIT" }, "node_modules/fast-deep-equal": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fast-diff": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", - "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", - "dev": true + "version": "1.3.0", + "dev": true, + "license": "Apache-2.0" }, "node_modules/fast-glob": { - "version": "3.2.12", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", - "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "version": "3.3.1", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -7205,9 +6217,8 @@ }, "node_modules/fast-glob/node_modules/glob-parent": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -7217,57 +6228,42 @@ }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fast-levenshtein": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fastest-levenshtein": { "version": "1.0.16", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", - "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4.9.1" } }, "node_modules/fastq": { "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", "dev": true, + "license": "ISC", "dependencies": { "reusify": "^1.0.4" } }, "node_modules/fb-watchman": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", - "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", "dev": true, + "license": "Apache-2.0", "dependencies": { "bser": "2.1.1" } }, - "node_modules/fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", - "dev": true, - "dependencies": { - "pend": "~1.2.0" - } - }, "node_modules/figures": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "dev": true, + "license": "MIT", "dependencies": { "escape-string-regexp": "^1.0.5" }, @@ -7280,18 +6276,16 @@ }, "node_modules/figures/node_modules/escape-string-regexp": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.0" } }, "node_modules/file-entry-cache": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, + "license": "MIT", "dependencies": { "flat-cache": "^3.0.4" }, @@ -7299,46 +6293,10 @@ "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" - }, - "node_modules/filelist": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", - "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", - "dev": true, - "dependencies": { - "minimatch": "^5.0.1" - } - }, - "node_modules/filelist/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/filelist/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/fill-range": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, + "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -7348,18 +6306,16 @@ }, "node_modules/filter-obj": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz", - "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/finalhandler": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", "dev": true, + "license": "MIT", "dependencies": { "debug": "2.6.9", "encodeurl": "~1.0.2", @@ -7375,24 +6331,21 @@ }, "node_modules/finalhandler/node_modules/debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, + "license": "MIT", "dependencies": { "ms": "2.0.0" } }, "node_modules/finalhandler/node_modules/ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/finalhandler/node_modules/on-finished": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", "dev": true, + "license": "MIT", "dependencies": { "ee-first": "1.1.1" }, @@ -7400,126 +6353,41 @@ "node": ">= 0.8" } }, - "node_modules/find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "node_modules/find-up": { + "version": "5.0.0", "dev": true, + "license": "MIT", "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/find-cache-dir/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "node_modules/flat-cache": { + "version": "3.1.0", "dev": true, + "license": "MIT", "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "flatted": "^3.2.7", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" }, "engines": { - "node": ">=8" + "node": ">=12.0.0" } }, - "node_modules/find-cache-dir/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "node_modules/flatted": { + "version": "3.2.7", "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } + "license": "ISC" }, - "node_modules/find-cache-dir/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/find-cache-dir/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-cache-dir/node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "dependencies": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/flatted": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", - "dev": true - }, - "node_modules/follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "node_modules/follow-redirects": { + "version": "1.15.6", "dev": true, "funding": [ { @@ -7527,6 +6395,7 @@ "url": "https://github.com/sponsors/RubenVerborgh" } ], + "license": "MIT", "engines": { "node": ">=4.0" }, @@ -7538,45 +6407,24 @@ }, "node_modules/for-each": { "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dependencies": { - "is-callable": "^1.1.3" - } - }, - "node_modules/foreach": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.6.tgz", - "integrity": "sha512-k6GAGDyqLe9JaebCsFCoudPPWfihKu8pylYXRlqP1J7ms39iPoTtk2fviNglIeQEwdh0bQeKJ01ZPyuyQvKzwg==", - "dev": true - }, - "node_modules/foreground-child": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", - "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", "dev": true, + "license": "MIT", "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8.0.0" + "is-callable": "^1.1.3" } }, "node_modules/forever-agent": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", "dev": true, + "license": "Apache-2.0", "engines": { "node": "*" } }, "node_modules/form-data": { "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", "dev": true, + "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.6", @@ -7586,37 +6434,10 @@ "node": ">= 0.12" } }, - "node_modules/fromentries": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz", - "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true - }, "node_modules/fs-extra": { "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", "dev": true, + "license": "MIT", "dependencies": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", @@ -7629,9 +6450,8 @@ }, "node_modules/fs-minipass": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", "dev": true, + "license": "ISC", "dependencies": { "minipass": "^3.0.0" }, @@ -7641,16 +6461,13 @@ }, "node_modules/fs.realpath": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "version": "2.3.3", "dev": true, - "hasInstallScript": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -7660,20 +6477,22 @@ } }, "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "version": "1.1.2", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/function.prototype.name": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", - "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "version": "1.1.6", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" }, "engines": { "node": ">= 0.4" @@ -7684,51 +6503,16 @@ }, "node_modules/functions-have-names": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/fwd-stream": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/fwd-stream/-/fwd-stream-1.0.4.tgz", - "integrity": "sha512-q2qaK2B38W07wfPSQDKMiKOD5Nzv2XyuvQlrmh1q0pxyHNanKHq8lwQ6n9zHucAwA5EbzRJKEgds2orn88rYTg==", - "dev": true, - "dependencies": { - "readable-stream": "~1.0.26-4" - } - }, - "node_modules/fwd-stream/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", - "dev": true - }, - "node_modules/fwd-stream/node_modules/readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/fwd-stream/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", - "dev": true - }, "node_modules/gauge": { "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==", "dev": true, + "license": "ISC", "dependencies": { "aproba": "^1.0.3", "console-control-strings": "^1.0.0", @@ -7742,24 +6526,21 @@ }, "node_modules/gauge/node_modules/ansi-regex": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/gauge/node_modules/aproba": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/gauge/node_modules/is-fullwidth-code-point": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", "dev": true, + "license": "MIT", "dependencies": { "number-is-nan": "^1.0.0" }, @@ -7769,9 +6550,8 @@ }, "node_modules/gauge/node_modules/string-width": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", "dev": true, + "license": "MIT", "dependencies": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -7783,9 +6563,8 @@ }, "node_modules/gauge/node_modules/strip-ansi": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^2.0.0" }, @@ -7795,40 +6574,37 @@ }, "node_modules/gensync": { "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/get-caller-file": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true, + "license": "ISC", "engines": { "node": "6.* || 8.* || >= 10.*" } }, "node_modules/get-func-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", + "version": "2.0.2", "dev": true, + "license": "MIT", "engines": { "node": "*" } }, "node_modules/get-intrinsic": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", - "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "version": "1.2.2", + "dev": true, + "license": "MIT", "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", + "function-bind": "^1.1.2", "has-proto": "^1.0.1", - "has-symbols": "^1.0.3" + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -7836,18 +6612,16 @@ }, "node_modules/get-package-type": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.0.0" } }, "node_modules/get-pkg-repo": { "version": "4.2.1", - "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-4.2.1.tgz", - "integrity": "sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA==", "dev": true, + "license": "MIT", "dependencies": { "@hutson/parse-repository-url": "^3.0.0", "hosted-git-info": "^4.0.0", @@ -7863,9 +6637,8 @@ }, "node_modules/get-port": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz", - "integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -7875,9 +6648,8 @@ }, "node_modules/get-stream": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -7887,9 +6659,8 @@ }, "node_modules/get-symbol-description": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.1.1" @@ -7903,18 +6674,16 @@ }, "node_modules/getpass": { "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", "dev": true, + "license": "MIT", "dependencies": { "assert-plus": "^1.0.0" } }, "node_modules/git-raw-commits": { "version": "2.0.11", - "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.11.tgz", - "integrity": "sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==", "dev": true, + "license": "MIT", "dependencies": { "dargs": "^7.0.0", "lodash": "^4.17.15", @@ -7931,18 +6700,16 @@ }, "node_modules/git-raw-commits/node_modules/through2": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", "dev": true, + "license": "MIT", "dependencies": { "readable-stream": "3" } }, "node_modules/git-remote-origin-url": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz", - "integrity": "sha512-eU+GGrZgccNJcsDH5LkXR3PB9M958hxc7sbA8DFJjrv9j4L2P/eZfKhM+QD6wyzpiv+b1BpK0XrYCxkovtjSLw==", "dev": true, + "license": "MIT", "dependencies": { "gitconfiglocal": "^1.0.0", "pify": "^2.3.0" @@ -7953,18 +6720,16 @@ }, "node_modules/git-remote-origin-url/node_modules/pify": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/git-semver-tags": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-4.1.1.tgz", - "integrity": "sha512-OWyMt5zBe7xFs8vglMmhM9lRQzCWL3WjHtxNNfJTMngGym7pC1kh8sP6jevfydJ6LP3ZvGxfb6ABYgPUM0mtsA==", "dev": true, + "license": "MIT", "dependencies": { "meow": "^8.0.0", "semver": "^6.0.0" @@ -7977,19 +6742,17 @@ } }, "node_modules/git-semver-tags/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/git-up": { "version": "4.0.5", - "resolved": "https://registry.npmjs.org/git-up/-/git-up-4.0.5.tgz", - "integrity": "sha512-YUvVDg/vX3d0syBsk/CKUTib0srcQME0JyHkL5BaYdwLsiCslPWmDSi8PUMo9pXYjrryMcmsCoCgsTpSCJEQaA==", "dev": true, + "license": "MIT", "dependencies": { "is-ssh": "^1.3.0", "parse-url": "^6.0.0" @@ -7997,27 +6760,24 @@ }, "node_modules/git-url-parse": { "version": "11.6.0", - "resolved": "https://registry.npmjs.org/git-url-parse/-/git-url-parse-11.6.0.tgz", - "integrity": "sha512-WWUxvJs5HsyHL6L08wOusa/IXYtMuCAhrMmnTjQPpBU0TTHyDhnOATNH3xNQz7YOQUsqIIPTGr4xiVti1Hsk5g==", "dev": true, + "license": "MIT", "dependencies": { "git-up": "^4.0.0" } }, "node_modules/gitconfiglocal": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz", - "integrity": "sha512-spLUXeTAVHxDtKsJc8FkFVgFtMdEN9qPGpL23VfSHx4fP4+Ds097IXLvymbnDH8FnmxX5Nr9bPw3A+AQ6mWEaQ==", "dev": true, + "license": "BSD", "dependencies": { "ini": "^1.3.2" } }, "node_modules/glob": { "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -8035,9 +6795,8 @@ }, "node_modules/glob-parent": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.3" }, @@ -8047,15 +6806,13 @@ }, "node_modules/glob-to-regexp": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true + "dev": true, + "license": "BSD-2-Clause" }, "node_modules/globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "version": "13.23.0", "dev": true, + "license": "MIT", "dependencies": { "type-fest": "^0.20.2" }, @@ -8068,9 +6825,8 @@ }, "node_modules/globalthis": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", "dev": true, + "license": "MIT", "dependencies": { "define-properties": "^1.1.3" }, @@ -8083,9 +6839,8 @@ }, "node_modules/globby": { "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, + "license": "MIT", "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", @@ -8103,8 +6858,8 @@ }, "node_modules/gopd": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "license": "MIT", "dependencies": { "get-intrinsic": "^1.1.3" }, @@ -8114,21 +6869,18 @@ }, "node_modules/graceful-fs": { "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true + "dev": true, + "license": "ISC" }, - "node_modules/grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", - "dev": true + "node_modules/graphemer": { + "version": "1.4.0", + "dev": true, + "license": "MIT" }, "node_modules/gzip-size": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", - "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", "dev": true, + "license": "MIT", "dependencies": { "duplexer": "^0.1.2" }, @@ -8140,13 +6892,12 @@ } }, "node_modules/handlebars": { - "version": "4.7.7", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", + "version": "4.7.8", "dev": true, + "license": "MIT", "dependencies": { "minimist": "^1.2.5", - "neo-async": "^2.6.0", + "neo-async": "^2.6.2", "source-map": "^0.6.1", "wordwrap": "^1.0.0" }, @@ -8162,19 +6913,16 @@ }, "node_modules/har-schema": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", "dev": true, + "license": "ISC", "engines": { "node": ">=4" } }, "node_modules/har-validator": { "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "deprecated": "this library is no longer supported", "dev": true, + "license": "MIT", "dependencies": { "ajv": "^6.12.3", "har-schema": "^2.0.0" @@ -8185,17 +6933,16 @@ }, "node_modules/hard-rejection": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", - "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/has": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "license": "MIT", "dependencies": { "function-bind": "^1.1.1" }, @@ -8205,26 +6952,24 @@ }, "node_modules/has-bigints": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/has-property-descriptors": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "license": "MIT", "dependencies": { "get-intrinsic": "^1.1.1" }, @@ -8234,8 +6979,8 @@ }, "node_modules/has-proto": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -8245,8 +6990,8 @@ }, "node_modules/has-symbols": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -8256,8 +7001,8 @@ }, "node_modules/has-tostringtag": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "license": "MIT", "dependencies": { "has-symbols": "^1.0.2" }, @@ -8270,72 +7015,24 @@ }, "node_modules/has-unicode": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", - "dev": true - }, - "node_modules/hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } + "dev": true, + "license": "ISC" }, - "node_modules/hasha": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", - "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", + "node_modules/hasown": { + "version": "2.0.0", "dev": true, + "license": "MIT", "dependencies": { - "is-stream": "^2.0.0", - "type-fest": "^0.8.0" - }, - "engines": { - "node": ">=8" + "function-bind": "^1.1.2" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/hasha/node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true, "engines": { - "node": ">=8" - } - }, - "node_modules/hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" + "node": ">= 0.4" } }, "node_modules/hosted-git-info": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", "dev": true, + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -8345,9 +7042,8 @@ }, "node_modules/hosted-git-info/node_modules/lru-cache": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -8357,27 +7053,23 @@ }, "node_modules/hosted-git-info/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/html-escaper": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/http-cache-semantics": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", - "dev": true + "dev": true, + "license": "BSD-2-Clause" }, "node_modules/http-errors": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", "dev": true, + "license": "MIT", "dependencies": { "depd": "2.0.0", "inherits": "2.0.4", @@ -8391,18 +7083,16 @@ }, "node_modules/http-errors/node_modules/statuses": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/http-proxy": { "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", "dev": true, + "license": "MIT", "dependencies": { "eventemitter3": "^4.0.0", "follow-redirects": "^1.0.0", @@ -8414,9 +7104,8 @@ }, "node_modules/http-proxy-agent": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", "dev": true, + "license": "MIT", "dependencies": { "@tootallnate/once": "1", "agent-base": "6", @@ -8426,11 +7115,15 @@ "node": ">= 6" } }, + "node_modules/http-proxy/node_modules/eventemitter3": { + "version": "4.0.7", + "dev": true, + "license": "MIT" + }, "node_modules/http-signature": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", "dev": true, + "license": "MIT", "dependencies": { "assert-plus": "^1.0.0", "jsprim": "^1.2.2", @@ -8441,16 +7134,10 @@ "npm": ">=1.3.7" } }, - "node_modules/https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==", - "dev": true - }, "node_modules/https-proxy-agent": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "license": "MIT", "dependencies": { "agent-base": "6", "debug": "4" @@ -8461,27 +7148,24 @@ }, "node_modules/human-signals": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=10.17.0" } }, "node_modules/humanize-ms": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "^2.0.0" } }, "node_modules/iconv-lite": { "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, + "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3" }, @@ -8489,54 +7173,26 @@ "node": ">=0.10.0" } }, - "node_modules/idb-wrapper": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/idb-wrapper/-/idb-wrapper-1.7.2.tgz", - "integrity": "sha512-zfNREywMuf0NzDo9mVsL0yegjsirJxHpKHvWcyRozIqQy89g0a3U+oBPOCN4cc0oCiOuYgZHimzaW/R46G1Mpg==", - "dev": true - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, "node_modules/ignore": { "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4" } }, "node_modules/ignore-walk": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz", - "integrity": "sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==", "dev": true, + "license": "ISC", "dependencies": { "minimatch": "^3.0.4" } }, "node_modules/import-fresh": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, + "license": "MIT", "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -8550,9 +7206,8 @@ }, "node_modules/import-local": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", "dev": true, + "license": "MIT", "dependencies": { "pkg-dir": "^4.2.0", "resolve-cwd": "^3.0.0" @@ -8569,9 +7224,8 @@ }, "node_modules/import-local/node_modules/find-up": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -8582,9 +7236,8 @@ }, "node_modules/import-local/node_modules/locate-path": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^4.1.0" }, @@ -8594,9 +7247,8 @@ }, "node_modules/import-local/node_modules/p-limit": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, + "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -8609,9 +7261,8 @@ }, "node_modules/import-local/node_modules/p-locate": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^2.2.0" }, @@ -8621,9 +7272,8 @@ }, "node_modules/import-local/node_modules/pkg-dir": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, + "license": "MIT", "dependencies": { "find-up": "^4.0.0" }, @@ -8633,39 +7283,29 @@ }, "node_modules/imurmurhash": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.19" } }, "node_modules/indent-string": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha512-i0G7hLJ1z0DE8dsqJa2rycj9dBmNKgXBvotXtZYXakU9oivfB9Uj2ZBC27qqef2U58/ZLwalxa1X/RDCdkHtVg==", - "dev": true - }, "node_modules/infer-owner": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/inflight": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "dev": true, + "license": "ISC", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -8673,20 +7313,18 @@ }, "node_modules/inherits": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "dev": true, + "license": "ISC" }, "node_modules/ini": { "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/init-package-json": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/init-package-json/-/init-package-json-2.0.5.tgz", - "integrity": "sha512-u1uGAtEFu3VA6HNl/yUWw57jmKEMx8SKOxHhxjGnOFUiIlFnohKDFg4ZrPpv9wWqk44nDxGJAtqjdQFm+9XXQA==", "dev": true, + "license": "ISC", "dependencies": { "npm-package-arg": "^8.1.5", "promzard": "^0.3.0", @@ -8702,9 +7340,8 @@ }, "node_modules/init-package-json/node_modules/read-package-json": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-4.1.2.tgz", - "integrity": "sha512-Dqer4pqzamDE2O4M55xp1qZMuLPqi4ldk2ya648FOMHRjwMzFhuxVrG04wd0c38IsvkVdr3vgHI6z+QTPdAjrQ==", "dev": true, + "license": "ISC", "dependencies": { "glob": "^7.1.1", "json-parse-even-better-errors": "^2.3.0", @@ -8717,9 +7354,8 @@ }, "node_modules/inquirer": { "version": "7.3.3", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", - "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-escapes": "^4.2.1", "chalk": "^4.1.0", @@ -8741,9 +7377,8 @@ }, "node_modules/internal-slot": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", - "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", "dev": true, + "license": "MIT", "dependencies": { "get-intrinsic": "^1.2.0", "has": "^1.0.3", @@ -8755,48 +7390,21 @@ }, "node_modules/interpret": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", - "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=10.13.0" } }, "node_modules/ip": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", - "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", - "dev": true - }, - "node_modules/is": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/is/-/is-0.2.7.tgz", - "integrity": "sha512-ajQCouIvkcSnl2iRdK70Jug9mohIHVX9uKpoWnl115ov0R5mzBvRrXxrnHbsA+8AdwCwc/sfw7HXmd4I5EJBdQ==", + "version": "2.0.1", "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "license": "MIT" }, "node_modules/is-array-buffer": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", - "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.2.0", @@ -8808,15 +7416,28 @@ }, "node_modules/is-arrayish": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/is-async-function": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/is-bigint": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", "dev": true, + "license": "MIT", "dependencies": { "has-bigints": "^1.0.1" }, @@ -8826,9 +7447,8 @@ }, "node_modules/is-binary-path": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, + "license": "MIT", "dependencies": { "binary-extensions": "^2.0.0" }, @@ -8838,9 +7458,8 @@ }, "node_modules/is-boolean-object": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -8854,8 +7473,8 @@ }, "node_modules/is-callable": { "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -8865,9 +7484,8 @@ }, "node_modules/is-ci": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", "dev": true, + "license": "MIT", "dependencies": { "ci-info": "^2.0.0" }, @@ -8877,17 +7495,15 @@ }, "node_modules/is-ci/node_modules/ci-info": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/is-core-module": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", - "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "version": "2.13.1", "dev": true, + "license": "MIT", "dependencies": { - "has": "^1.0.3" + "hasown": "^2.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -8895,9 +7511,8 @@ }, "node_modules/is-date-object": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", "dev": true, + "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -8910,35 +7525,45 @@ }, "node_modules/is-extglob": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, + "node_modules/is-finalizationregistry": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/is-generator-fn": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/is-generator-function": { "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dev": true, + "license": "MIT", + "peer": true, "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -8951,9 +7576,8 @@ }, "node_modules/is-glob": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, + "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, @@ -8963,40 +7587,22 @@ }, "node_modules/is-lambda": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/is-map": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", - "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", "dev": true, + "license": "MIT", "peer": true, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-nan": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz", - "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==", - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-negative-zero": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -9006,18 +7612,16 @@ }, "node_modules/is-number": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.12.0" } }, "node_modules/is-number-object": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", "dev": true, + "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -9030,51 +7634,40 @@ }, "node_modules/is-obj": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/is-object": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/is-object/-/is-object-0.1.2.tgz", - "integrity": "sha512-GkfZZlIZtpkFrqyAXPQSRBMsaHAw+CgoKe2HXAkjd/sfoI9+hS8PT4wg2rJxdQyUKr7N2vHJbg7/jQtE5l5vBQ==", - "dev": true - }, "node_modules/is-path-inside": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/is-plain-obj": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/is-plain-object": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/is-regex": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -9088,9 +7681,8 @@ }, "node_modules/is-set": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", - "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", "dev": true, + "license": "MIT", "peer": true, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -9098,9 +7690,8 @@ }, "node_modules/is-shared-array-buffer": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2" }, @@ -9110,18 +7701,16 @@ }, "node_modules/is-ssh": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/is-ssh/-/is-ssh-1.4.0.tgz", - "integrity": "sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ==", "dev": true, + "license": "MIT", "dependencies": { "protocols": "^2.0.1" } }, "node_modules/is-stream": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -9131,9 +7720,8 @@ }, "node_modules/is-string": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", "dev": true, + "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -9146,9 +7734,8 @@ }, "node_modules/is-symbol": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", "dev": true, + "license": "MIT", "dependencies": { "has-symbols": "^1.0.2" }, @@ -9161,9 +7748,8 @@ }, "node_modules/is-text-path": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", - "integrity": "sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==", "dev": true, + "license": "MIT", "dependencies": { "text-extensions": "^1.0.0" }, @@ -9172,15 +7758,11 @@ } }, "node_modules/is-typed-array": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", - "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "version": "1.1.12", + "dev": true, + "license": "MIT", "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" + "which-typed-array": "^1.1.11" }, "engines": { "node": ">= 0.4" @@ -9191,15 +7773,13 @@ }, "node_modules/is-typedarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/is-weakmap": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", - "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", "dev": true, + "license": "MIT", "peer": true, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -9207,9 +7787,8 @@ }, "node_modules/is-weakref": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2" }, @@ -9219,9 +7798,8 @@ }, "node_modules/is-weakset": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", - "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "call-bind": "^1.0.2", @@ -9231,26 +7809,15 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/isarray": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/isbinaryfile": { "version": "4.0.10", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", - "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8.0.0" }, @@ -9258,127 +7825,49 @@ "url": "https://github.com/sponsors/gjtorikian/" } }, - "node_modules/isbuffer": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/isbuffer/-/isbuffer-0.0.0.tgz", - "integrity": "sha512-xU+NoHp+YtKQkaM2HsQchYn0sltxMxew0HavMfHbjnucBoTSGbw745tL+Z7QBANleWM1eEQMenEpi174mIeS4g==", - "dev": true - }, "node_modules/isexe": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/isstream": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/istanbul-lib-coverage": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-hook": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", - "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", - "dev": true, - "dependencies": { - "append-transform": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", - "dev": true, - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/istanbul-lib-processinfo": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.3.tgz", - "integrity": "sha512-NkwHbo3E00oybX6NGJi6ar0B29vxyvNwoC7eJ4G4Yq28UfY758Hgn/heV8VRFhevPED4LXfFz0DQ8z/0kw9zMg==", - "dev": true, - "dependencies": { - "archy": "^1.0.0", - "cross-spawn": "^7.0.3", - "istanbul-lib-coverage": "^3.2.0", - "p-map": "^3.0.0", - "rimraf": "^3.0.0", - "uuid": "^8.3.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-processinfo/node_modules/p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", "dev": true, - "dependencies": { - "aggregate-error": "^3.0.0" - }, + "license": "BSD-3-Clause", "engines": { "node": ">=8" } }, "node_modules/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "version": "3.0.1", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", + "make-dir": "^4.0.0", "supports-color": "^7.1.0" }, "engines": { - "node": ">=8" + "node": ">=10" } }, "node_modules/istanbul-lib-source-maps": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "debug": "^4.1.1", "istanbul-lib-coverage": "^3.0.0", @@ -9389,10 +7878,9 @@ } }, "node_modules/istanbul-reports": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", - "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", + "version": "3.1.6", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "html-escaper": "^2.0.0", "istanbul-lib-report": "^3.0.0" @@ -9401,40 +7889,32 @@ "node": ">=8" } }, - "node_modules/jake": { - "version": "10.8.6", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.6.tgz", - "integrity": "sha512-G43Ub9IYEFfu72sua6rzooi8V8Gz2lkfk48rW20vEWCGizeaEPlKB1Kh8JIA84yQbiAEfqlPmSpGgCKKxH3rDA==", + "node_modules/iterator.prototype": { + "version": "1.1.1", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "async": "^3.2.3", - "chalk": "^4.0.2", - "filelist": "^1.0.4", - "minimatch": "^3.1.2" - }, - "bin": { - "jake": "bin/cli.js" - }, - "engines": { - "node": ">=10" + "define-properties": "^1.2.0", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "reflect.getprototypeof": "^1.0.3" } }, "node_modules/jasmine-core": { "version": "4.6.0", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-4.6.0.tgz", - "integrity": "sha512-O236+gd0ZXS8YAjFx8xKaJ94/erqUliEkJTDedyE7iHvv4ZVqi+q+8acJxu05/WJDKm512EUNn809In37nWlAQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/jest": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest/-/jest-29.5.0.tgz", - "integrity": "sha512-juMg3he2uru1QoXX078zTa7pO85QyB9xajZc6bU+d9yEGwrKX6+vGmJQ3UdVZsvTEUARIdObzH68QItim6OSSQ==", + "version": "29.7.0", "dev": true, + "license": "MIT", "dependencies": { - "@jest/core": "^29.5.0", - "@jest/types": "^29.5.0", + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", "import-local": "^3.0.2", - "jest-cli": "^29.5.0" + "jest-cli": "^29.7.0" }, "bin": { "jest": "bin/jest.js" @@ -9452,12 +7932,12 @@ } }, "node_modules/jest-changed-files": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.5.0.tgz", - "integrity": "sha512-IFG34IUMUaNBIxjQXF/iu7g6EcdMrGRRxaUSw92I/2g2YC6vCdTltl4nHvt7Ci5nSJwXIkCu8Ka1DKF+X7Z1Ag==", + "version": "29.7.0", "dev": true, + "license": "MIT", "dependencies": { "execa": "^5.0.0", + "jest-util": "^29.7.0", "p-limit": "^3.1.0" }, "engines": { @@ -9465,28 +7945,27 @@ } }, "node_modules/jest-circus": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.5.0.tgz", - "integrity": "sha512-gq/ongqeQKAplVxqJmbeUOJJKkW3dDNPY8PjhJ5G0lBRvu0e3EWGxGy5cI4LAGA7gV2UHCtWBI4EMXK8c9nQKA==", + "version": "29.7.0", "dev": true, + "license": "MIT", "dependencies": { - "@jest/environment": "^29.5.0", - "@jest/expect": "^29.5.0", - "@jest/test-result": "^29.5.0", - "@jest/types": "^29.5.0", + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "co": "^4.6.0", - "dedent": "^0.7.0", + "dedent": "^1.0.0", "is-generator-fn": "^2.0.0", - "jest-each": "^29.5.0", - "jest-matcher-utils": "^29.5.0", - "jest-message-util": "^29.5.0", - "jest-runtime": "^29.5.0", - "jest-snapshot": "^29.5.0", - "jest-util": "^29.5.0", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", "p-limit": "^3.1.0", - "pretty-format": "^29.5.0", + "pretty-format": "^29.7.0", "pure-rand": "^6.0.0", "slash": "^3.0.0", "stack-utils": "^2.0.3" @@ -9496,22 +7975,20 @@ } }, "node_modules/jest-cli": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.5.0.tgz", - "integrity": "sha512-L1KcP1l4HtfwdxXNFCL5bmUbLQiKrakMUriBEcc1Vfz6gx31ORKdreuWvmQVBit+1ss9NNR3yxjwfwzZNdQXJw==", + "version": "29.7.0", "dev": true, + "license": "MIT", "dependencies": { - "@jest/core": "^29.5.0", - "@jest/test-result": "^29.5.0", - "@jest/types": "^29.5.0", + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", "chalk": "^4.0.0", + "create-jest": "^29.7.0", "exit": "^0.1.2", - "graceful-fs": "^4.2.9", "import-local": "^3.0.2", - "jest-config": "^29.5.0", - "jest-util": "^29.5.0", - "jest-validate": "^29.5.0", - "prompts": "^2.0.1", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", "yargs": "^17.3.1" }, "bin": { @@ -9531,9 +8008,8 @@ }, "node_modules/jest-cli/node_modules/cliui": { "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", @@ -9545,9 +8021,8 @@ }, "node_modules/jest-cli/node_modules/yargs": { "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, + "license": "MIT", "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", @@ -9563,39 +8038,37 @@ }, "node_modules/jest-cli/node_modules/yargs-parser": { "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, + "license": "ISC", "engines": { "node": ">=12" } }, "node_modules/jest-config": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.5.0.tgz", - "integrity": "sha512-kvDUKBnNJPNBmFFOhDbm59iu1Fii1Q6SxyhXfvylq3UTHbg6o7j/g8k2dZyXWLvfdKB1vAPxNZnMgtKJcmu3kA==", + "version": "29.7.0", "dev": true, + "license": "MIT", "dependencies": { "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^29.5.0", - "@jest/types": "^29.5.0", - "babel-jest": "^29.5.0", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", "chalk": "^4.0.0", "ci-info": "^3.2.0", "deepmerge": "^4.2.2", "glob": "^7.1.3", "graceful-fs": "^4.2.9", - "jest-circus": "^29.5.0", - "jest-environment-node": "^29.5.0", - "jest-get-type": "^29.4.3", - "jest-regex-util": "^29.4.3", - "jest-resolve": "^29.5.0", - "jest-runner": "^29.5.0", - "jest-util": "^29.5.0", - "jest-validate": "^29.5.0", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", "micromatch": "^4.0.4", "parse-json": "^5.2.0", - "pretty-format": "^29.5.0", + "pretty-format": "^29.7.0", "slash": "^3.0.0", "strip-json-comments": "^3.1.1" }, @@ -9616,25 +8089,23 @@ } }, "node_modules/jest-diff": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.5.0.tgz", - "integrity": "sha512-LtxijLLZBduXnHSniy0WMdaHjmQnt3g5sa16W4p0HqukYTTsyTW3GD1q41TyGl5YFXj/5B2U6dlh5FM1LIMgxw==", + "version": "29.7.0", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^4.0.0", - "diff-sequences": "^29.4.3", - "jest-get-type": "^29.4.3", - "pretty-format": "^29.5.0" + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-docblock": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.4.3.tgz", - "integrity": "sha512-fzdTftThczeSD9nZ3fzA/4KkHtnmllawWrXO69vtI+L9WjEIuXWs4AmyME7lN5hU7dB0sHhuPfcKofRsUb/2Fg==", + "version": "29.7.0", "dev": true, + "license": "MIT", "dependencies": { "detect-newline": "^3.0.0" }, @@ -9643,62 +8114,58 @@ } }, "node_modules/jest-each": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.5.0.tgz", - "integrity": "sha512-HM5kIJ1BTnVt+DQZ2ALp3rzXEl+g726csObrW/jpEGl+CDSSQpOJJX2KE/vEg8cxcMXdyEPu6U4QX5eruQv5hA==", + "version": "29.7.0", "dev": true, + "license": "MIT", "dependencies": { - "@jest/types": "^29.5.0", + "@jest/types": "^29.6.3", "chalk": "^4.0.0", - "jest-get-type": "^29.4.3", - "jest-util": "^29.5.0", - "pretty-format": "^29.5.0" + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-environment-node": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.5.0.tgz", - "integrity": "sha512-ExxuIK/+yQ+6PRGaHkKewYtg6hto2uGCgvKdb2nfJfKXgZ17DfXjvbZ+jA1Qt9A8EQSfPnt5FKIfnOO3u1h9qw==", + "version": "29.7.0", "dev": true, + "license": "MIT", "dependencies": { - "@jest/environment": "^29.5.0", - "@jest/fake-timers": "^29.5.0", - "@jest/types": "^29.5.0", + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", - "jest-mock": "^29.5.0", - "jest-util": "^29.5.0" + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-get-type": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.4.3.tgz", - "integrity": "sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg==", + "version": "29.6.3", "dev": true, + "license": "MIT", "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-haste-map": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.5.0.tgz", - "integrity": "sha512-IspOPnnBro8YfVYSw6yDRKh/TiCdRngjxeacCps1cQ9cgVN6+10JUcuJ1EabrgYLOATsIAigxA0rLR9x/YlrSA==", + "version": "29.7.0", "dev": true, + "license": "MIT", "dependencies": { - "@jest/types": "^29.5.0", + "@jest/types": "^29.6.3", "@types/graceful-fs": "^4.1.3", "@types/node": "*", "anymatch": "^3.0.3", "fb-watchman": "^2.0.0", "graceful-fs": "^4.2.9", - "jest-regex-util": "^29.4.3", - "jest-util": "^29.5.0", - "jest-worker": "^29.5.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", "micromatch": "^4.0.4", "walker": "^1.0.8" }, @@ -9710,46 +8177,43 @@ } }, "node_modules/jest-leak-detector": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.5.0.tgz", - "integrity": "sha512-u9YdeeVnghBUtpN5mVxjID7KbkKE1QU4f6uUwuxiY0vYRi9BUCLKlPEZfDGR67ofdFmDz9oPAy2G92Ujrntmow==", + "version": "29.7.0", "dev": true, + "license": "MIT", "dependencies": { - "jest-get-type": "^29.4.3", - "pretty-format": "^29.5.0" + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-matcher-utils": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.5.0.tgz", - "integrity": "sha512-lecRtgm/rjIK0CQ7LPQwzCs2VwW6WAahA55YBuI+xqmhm7LAaxokSB8C97yJeYyT+HvQkH741StzpU41wohhWw==", + "version": "29.7.0", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^4.0.0", - "jest-diff": "^29.5.0", - "jest-get-type": "^29.4.3", - "pretty-format": "^29.5.0" + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-message-util": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.5.0.tgz", - "integrity": "sha512-Kijeg9Dag6CKtIDA7O21zNTACqD5MD/8HfIV8pdD94vFyFuer52SigdC3IQMhab3vACxXMiFk+yMHNdbqtyTGA==", + "version": "29.7.0", "dev": true, + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.12.13", - "@jest/types": "^29.5.0", + "@jest/types": "^29.6.3", "@types/stack-utils": "^2.0.0", "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "micromatch": "^4.0.4", - "pretty-format": "^29.5.0", + "pretty-format": "^29.7.0", "slash": "^3.0.0", "stack-utils": "^2.0.3" }, @@ -9758,14 +8222,13 @@ } }, "node_modules/jest-mock": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.5.0.tgz", - "integrity": "sha512-GqOzvdWDE4fAV2bWQLQCkujxYWL7RxjCnj71b5VhDAGOevB3qj3Ovg26A5NI84ZpODxyzaozXLOh2NCgkbvyaw==", + "version": "29.7.0", "dev": true, + "license": "MIT", "dependencies": { - "@jest/types": "^29.5.0", + "@jest/types": "^29.6.3", "@types/node": "*", - "jest-util": "^29.5.0" + "jest-util": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -9773,9 +8236,8 @@ }, "node_modules/jest-pnp-resolver": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", - "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" }, @@ -9789,26 +8251,24 @@ } }, "node_modules/jest-regex-util": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.4.3.tgz", - "integrity": "sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg==", + "version": "29.6.3", "dev": true, + "license": "MIT", "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-resolve": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.5.0.tgz", - "integrity": "sha512-1TzxJ37FQq7J10jPtQjcc+MkCkE3GBpBecsSUWJ0qZNJpmg6m0D9/7II03yJulm3H/fvVjgqLh/k2eYg+ui52w==", + "version": "29.7.0", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^4.0.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.5.0", + "jest-haste-map": "^29.7.0", "jest-pnp-resolver": "^1.2.2", - "jest-util": "^29.5.0", - "jest-validate": "^29.5.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", "resolve": "^1.20.0", "resolve.exports": "^2.0.0", "slash": "^3.0.0" @@ -9818,43 +8278,41 @@ } }, "node_modules/jest-resolve-dependencies": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.5.0.tgz", - "integrity": "sha512-sjV3GFr0hDJMBpYeUuGduP+YeCRbd7S/ck6IvL3kQ9cpySYKqcqhdLLC2rFwrcL7tz5vYibomBrsFYWkIGGjOg==", + "version": "29.7.0", "dev": true, + "license": "MIT", "dependencies": { - "jest-regex-util": "^29.4.3", - "jest-snapshot": "^29.5.0" + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-runner": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.5.0.tgz", - "integrity": "sha512-m7b6ypERhFghJsslMLhydaXBiLf7+jXy8FwGRHO3BGV1mcQpPbwiqiKUR2zU2NJuNeMenJmlFZCsIqzJCTeGLQ==", + "version": "29.7.0", "dev": true, + "license": "MIT", "dependencies": { - "@jest/console": "^29.5.0", - "@jest/environment": "^29.5.0", - "@jest/test-result": "^29.5.0", - "@jest/transform": "^29.5.0", - "@jest/types": "^29.5.0", + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "emittery": "^0.13.1", "graceful-fs": "^4.2.9", - "jest-docblock": "^29.4.3", - "jest-environment-node": "^29.5.0", - "jest-haste-map": "^29.5.0", - "jest-leak-detector": "^29.5.0", - "jest-message-util": "^29.5.0", - "jest-resolve": "^29.5.0", - "jest-runtime": "^29.5.0", - "jest-util": "^29.5.0", - "jest-watcher": "^29.5.0", - "jest-worker": "^29.5.0", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", "p-limit": "^3.1.0", "source-map-support": "0.5.13" }, @@ -9864,40 +8322,38 @@ }, "node_modules/jest-runner/node_modules/source-map-support": { "version": "0.5.13", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", - "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", "dev": true, + "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, "node_modules/jest-runtime": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.5.0.tgz", - "integrity": "sha512-1Hr6Hh7bAgXQP+pln3homOiEZtCDZFqwmle7Ew2j8OlbkIu6uE3Y/etJQG8MLQs3Zy90xrp2C0BRrtPHG4zryw==", - "dev": true, - "dependencies": { - "@jest/environment": "^29.5.0", - "@jest/fake-timers": "^29.5.0", - "@jest/globals": "^29.5.0", - "@jest/source-map": "^29.4.3", - "@jest/test-result": "^29.5.0", - "@jest/transform": "^29.5.0", - "@jest/types": "^29.5.0", + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "cjs-module-lexer": "^1.0.0", "collect-v8-coverage": "^1.0.0", "glob": "^7.1.3", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.5.0", - "jest-message-util": "^29.5.0", - "jest-mock": "^29.5.0", - "jest-regex-util": "^29.4.3", - "jest-resolve": "^29.5.0", - "jest-snapshot": "^29.5.0", - "jest-util": "^29.5.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", "slash": "^3.0.0", "strip-bom": "^4.0.0" }, @@ -9906,46 +8362,41 @@ } }, "node_modules/jest-snapshot": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.5.0.tgz", - "integrity": "sha512-x7Wolra5V0tt3wRs3/ts3S6ciSQVypgGQlJpz2rsdQYoUKxMxPNaoHMGJN6qAuPJqS+2iQ1ZUn5kl7HCyls84g==", + "version": "29.7.0", "dev": true, + "license": "MIT", "dependencies": { "@babel/core": "^7.11.6", "@babel/generator": "^7.7.2", "@babel/plugin-syntax-jsx": "^7.7.2", "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", "@babel/types": "^7.3.3", - "@jest/expect-utils": "^29.5.0", - "@jest/transform": "^29.5.0", - "@jest/types": "^29.5.0", - "@types/babel__traverse": "^7.0.6", - "@types/prettier": "^2.1.5", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", "babel-preset-current-node-syntax": "^1.0.0", "chalk": "^4.0.0", - "expect": "^29.5.0", + "expect": "^29.7.0", "graceful-fs": "^4.2.9", - "jest-diff": "^29.5.0", - "jest-get-type": "^29.4.3", - "jest-matcher-utils": "^29.5.0", - "jest-message-util": "^29.5.0", - "jest-util": "^29.5.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", "natural-compare": "^1.4.0", - "pretty-format": "^29.5.0", - "semver": "^7.3.5" + "pretty-format": "^29.7.0", + "semver": "^7.5.3" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-util": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.5.0.tgz", - "integrity": "sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ==", + "version": "29.7.0", "dev": true, + "license": "MIT", "dependencies": { - "@jest/types": "^29.5.0", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "ci-info": "^3.2.0", @@ -9957,17 +8408,16 @@ } }, "node_modules/jest-validate": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.5.0.tgz", - "integrity": "sha512-pC26etNIi+y3HV8A+tUGr/lph9B18GnzSRAkPaaZJIE1eFdiYm6/CewuiJQ8/RlfHd1u/8Ioi8/sJ+CmbA+zAQ==", + "version": "29.7.0", "dev": true, + "license": "MIT", "dependencies": { - "@jest/types": "^29.5.0", + "@jest/types": "^29.6.3", "camelcase": "^6.2.0", "chalk": "^4.0.0", - "jest-get-type": "^29.4.3", + "jest-get-type": "^29.6.3", "leven": "^3.1.0", - "pretty-format": "^29.5.0" + "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -9975,9 +8425,8 @@ }, "node_modules/jest-validate/node_modules/camelcase": { "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -9986,18 +8435,17 @@ } }, "node_modules/jest-watcher": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.5.0.tgz", - "integrity": "sha512-KmTojKcapuqYrKDpRwfqcQ3zjMlwu27SYext9pt4GlF5FUgB+7XE1mcCnSm6a4uUpFyQIkb6ZhzZvHl+jiBCiA==", + "version": "29.7.0", "dev": true, + "license": "MIT", "dependencies": { - "@jest/test-result": "^29.5.0", - "@jest/types": "^29.5.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", "emittery": "^0.13.1", - "jest-util": "^29.5.0", + "jest-util": "^29.7.0", "string-length": "^4.0.1" }, "engines": { @@ -10005,13 +8453,12 @@ } }, "node_modules/jest-worker": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.5.0.tgz", - "integrity": "sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA==", + "version": "29.7.0", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*", - "jest-util": "^29.5.0", + "jest-util": "^29.7.0", "merge-stream": "^2.0.0", "supports-color": "^8.0.0" }, @@ -10021,9 +8468,8 @@ }, "node_modules/jest-worker/node_modules/supports-color": { "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -10036,31 +8482,18 @@ }, "node_modules/jju": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", - "integrity": "sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==", - "dev": true - }, - "node_modules/js-sdsl": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.0.tgz", - "integrity": "sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==", "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/js-sdsl" - } + "license": "MIT" }, "node_modules/js-tokens": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/js-yaml": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, + "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, @@ -10070,24 +8503,21 @@ }, "node_modules/jsbn": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/jsdoc-type-pratt-parser": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-3.1.0.tgz", - "integrity": "sha512-MgtD0ZiCDk9B+eI73BextfRrVQl0oyzRG8B2BjORts6jbunj4ScKPcyXGTbB6eXL4y9TzxCm6hyeLq/2ASzNdw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12.0.0" } }, "node_modules/jsesc": { "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true, + "license": "MIT", "bin": { "jsesc": "bin/jsesc" }, @@ -10095,47 +8525,45 @@ "node": ">=4" } }, + "node_modules/json-buffer": { + "version": "3.0.1", + "dev": true, + "license": "MIT" + }, "node_modules/json-parse-better-errors": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-schema": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", - "dev": true + "dev": true, + "license": "(AFL-2.1 OR BSD-3-Clause)" }, "node_modules/json-schema-traverse": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-stringify-safe": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/json5": { "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, + "license": "MIT", "bin": { "json5": "lib/cli.js" }, @@ -10143,17 +8571,10 @@ "node": ">=6" } }, - "node_modules/jsonc-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", - "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", - "dev": true - }, "node_modules/jsonfile": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "dev": true, + "license": "MIT", "dependencies": { "universalify": "^2.0.0" }, @@ -10163,18 +8584,16 @@ }, "node_modules/jsonparse": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", "dev": true, "engines": [ "node >= 0.2.0" - ] + ], + "license": "MIT" }, "node_modules/JSONStream": { "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", "dev": true, + "license": "(MIT OR Apache-2.0)", "dependencies": { "jsonparse": "^1.2.0", "through": ">=2.2.7 <3" @@ -10188,9 +8607,8 @@ }, "node_modules/jsprim": { "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", "dev": true, + "license": "MIT", "dependencies": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", @@ -10202,24 +8620,24 @@ } }, "node_modules/jsx-ast-utils": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz", - "integrity": "sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==", + "version": "3.3.5", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "array-includes": "^3.1.5", - "object.assign": "^4.1.3" + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" }, "engines": { "node": ">=4.0" } }, "node_modules/karma": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/karma/-/karma-6.4.2.tgz", - "integrity": "sha512-C6SU/53LB31BEgRg+omznBEMY4SjHU3ricV6zBcAe1EeILKkeScr+fZXtaI5WyDbkVowJxxAI6h73NcFPmXolQ==", + "version": "6.4.3", "dev": true, + "license": "MIT", "dependencies": { "@colors/colors": "1.5.0", "body-parser": "^1.19.0", @@ -10240,7 +8658,7 @@ "qjobs": "^1.2.0", "range-parser": "^1.2.1", "rimraf": "^3.0.2", - "socket.io": "^4.4.1", + "socket.io": "^4.7.2", "source-map": "^0.6.1", "tmp": "^0.2.1", "ua-parser-js": "^0.7.30", @@ -10255,18 +8673,16 @@ }, "node_modules/karma-chrome-launcher": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.2.0.tgz", - "integrity": "sha512-rE9RkUPI7I9mAxByQWkGJFXfFD6lE4gC5nPuZdobf/QdTEJI6EU4yIay/cfU/xV4ZxlM5JiTv7zWYgA64NpS5Q==", "dev": true, + "license": "MIT", "dependencies": { "which": "^1.2.1" } }, "node_modules/karma-chrome-launcher/node_modules/which": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -10276,9 +8692,8 @@ }, "node_modules/karma-jasmine": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-5.1.0.tgz", - "integrity": "sha512-i/zQLFrfEpRyQoJF9fsCdTMOF5c2dK7C7OmsuKg2D0YSsuZSfQDiLuaiktbuio6F2wiCsZSnSnieIQ0ant/uzQ==", "dev": true, + "license": "MIT", "dependencies": { "jasmine-core": "^4.1.0" }, @@ -10290,36 +8705,55 @@ } }, "node_modules/karma-webpack": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/karma-webpack/-/karma-webpack-5.0.0.tgz", - "integrity": "sha512-+54i/cd3/piZuP3dr54+NcFeKOPnys5QeM1IY+0SPASwrtHsliXUiCL50iW+K9WWA7RvamC4macvvQ86l3KtaA==", + "version": "5.0.1", "dev": true, + "license": "MIT", "dependencies": { "glob": "^7.1.3", - "minimatch": "^3.0.4", + "minimatch": "^9.0.3", "webpack-merge": "^4.1.5" }, "engines": { - "node": ">= 6" + "node": ">= 18" }, "peerDependencies": { "webpack": "^5.0.0" } }, + "node_modules/karma-webpack/node_modules/brace-expansion": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/karma-webpack/node_modules/minimatch": { + "version": "9.0.3", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/karma-webpack/node_modules/webpack-merge": { "version": "4.2.2", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz", - "integrity": "sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==", "dev": true, + "license": "MIT", "dependencies": { "lodash": "^4.17.15" } }, "node_modules/karma/node_modules/mkdirp": { "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dev": true, + "license": "MIT", "dependencies": { "minimist": "^1.2.6" }, @@ -10329,9 +8763,8 @@ }, "node_modules/karma/node_modules/tmp": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", "dev": true, + "license": "MIT", "dependencies": { "rimraf": "^3.0.0" }, @@ -10339,36 +8772,40 @@ "node": ">=8.17.0" } }, + "node_modules/keyv": { + "version": "4.5.3", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, "node_modules/kind-of": { "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/kleur": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/language-subtag-registry": { "version": "0.3.22", - "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz", - "integrity": "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==", "dev": true, + "license": "CC0-1.0", "peer": true }, "node_modules/language-tags": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz", - "integrity": "sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "language-subtag-registry": "~0.3.2" @@ -10376,9 +8813,8 @@ }, "node_modules/lerna": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/lerna/-/lerna-4.0.0.tgz", - "integrity": "sha512-DD/i1znurfOmNJb0OBw66NmNqiM8kF6uIrzrJ0wGE3VNdzeOhz9ziWLYiRaZDGGwgbcjOo6eIfcx9O5Qynz+kg==", "dev": true, + "license": "MIT", "dependencies": { "@lerna/add": "4.0.0", "@lerna/bootstrap": "4.0.0", @@ -10406,425 +8842,115 @@ "node": ">= 10.18.0" } }, - "node_modules/level-blobs": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/level-blobs/-/level-blobs-0.1.7.tgz", - "integrity": "sha512-n0iYYCGozLd36m/Pzm206+brIgXP8mxPZazZ6ZvgKr+8YwOZ8/PPpYC5zMUu2qFygRN8RO6WC/HH3XWMW7RMVg==", + "node_modules/leven": { + "version": "3.1.0", "dev": true, - "dependencies": { - "level-peek": "1.0.6", - "once": "^1.3.0", - "readable-stream": "^1.0.26-4" + "license": "MIT", + "engines": { + "node": ">=6" } }, - "node_modules/level-blobs/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", - "dev": true - }, - "node_modules/level-blobs/node_modules/readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", + "node_modules/levn": { + "version": "0.4.1", "dev": true, + "license": "MIT", "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" } }, - "node_modules/level-blobs/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", - "dev": true - }, - "node_modules/level-filesystem": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/level-filesystem/-/level-filesystem-1.2.0.tgz", - "integrity": "sha512-PhXDuCNYpngpxp3jwMT9AYBMgOvB6zxj3DeuIywNKmZqFj2djj9XfT2XDVslfqmo0Ip79cAd3SBy3FsfOZPJ1g==", + "node_modules/libnpmaccess": { + "version": "4.0.3", "dev": true, + "license": "ISC", "dependencies": { - "concat-stream": "^1.4.4", - "errno": "^0.1.1", - "fwd-stream": "^1.0.4", - "level-blobs": "^0.1.7", - "level-peek": "^1.0.6", - "level-sublevel": "^5.2.0", - "octal": "^1.0.0", - "once": "^1.3.0", - "xtend": "^2.2.0" + "aproba": "^2.0.0", + "minipass": "^3.1.1", + "npm-package-arg": "^8.1.2", + "npm-registry-fetch": "^11.0.0" + }, + "engines": { + "node": ">=10" } }, - "node_modules/level-filesystem/node_modules/concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "node_modules/libnpmaccess/node_modules/lru-cache": { + "version": "6.0.0", "dev": true, - "engines": [ - "node >= 0.8" - ], + "license": "ISC", "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" } }, - "node_modules/level-filesystem/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "node_modules/level-filesystem/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "node_modules/libnpmaccess/node_modules/make-fetch-happen": { + "version": "9.1.0", "dev": true, + "license": "ISC", "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "agentkeepalive": "^4.1.3", + "cacache": "^15.2.0", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^6.0.0", + "minipass": "^3.1.3", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^1.3.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.2", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^6.0.0", + "ssri": "^8.0.0" + }, + "engines": { + "node": ">= 10" } }, - "node_modules/level-filesystem/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/level-filesystem/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "node_modules/libnpmaccess/node_modules/npm-registry-fetch": { + "version": "11.0.0", "dev": true, + "license": "ISC", "dependencies": { - "safe-buffer": "~5.1.0" + "make-fetch-happen": "^9.0.1", + "minipass": "^3.1.3", + "minipass-fetch": "^1.3.0", + "minipass-json-stream": "^1.0.1", + "minizlib": "^2.0.0", + "npm-package-arg": "^8.0.0" + }, + "engines": { + "node": ">=10" } }, - "node_modules/level-filesystem/node_modules/xtend": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.2.0.tgz", - "integrity": "sha512-SLt5uylT+4aoXxXuwtQp5ZnMMzhDb1Xkg4pEqc00WUJCQifPfV9Ub1VrNhp9kXkrjZD2I2Hl8WnjP37jzZLPZw==", + "node_modules/libnpmaccess/node_modules/socks-proxy-agent": { + "version": "6.2.1", "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^6.0.2", + "debug": "^4.3.3", + "socks": "^2.6.2" + }, "engines": { - "node": ">=0.4" - } - }, - "node_modules/level-fix-range": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/level-fix-range/-/level-fix-range-1.0.2.tgz", - "integrity": "sha512-9llaVn6uqBiSlBP+wKiIEoBa01FwEISFgHSZiyec2S0KpyLUkGR4afW/FCZ/X8y+QJvzS0u4PGOlZDdh1/1avQ==", - "dev": true - }, - "node_modules/level-hooks": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/level-hooks/-/level-hooks-4.5.0.tgz", - "integrity": "sha512-fxLNny/vL/G4PnkLhWsbHnEaRi+A/k8r5EH/M77npZwYL62RHi2fV0S824z3QdpAk6VTgisJwIRywzBHLK4ZVA==", - "dev": true, - "dependencies": { - "string-range": "~1.2" - } - }, - "node_modules/level-js": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/level-js/-/level-js-2.2.4.tgz", - "integrity": "sha512-lZtjt4ZwHE00UMC1vAb271p9qzg8vKlnDeXfIesH3zL0KxhHRDjClQLGLWhyR0nK4XARnd4wc/9eD1ffd4PshQ==", - "dev": true, - "dependencies": { - "abstract-leveldown": "~0.12.0", - "idb-wrapper": "^1.5.0", - "isbuffer": "~0.0.0", - "ltgt": "^2.1.2", - "typedarray-to-buffer": "~1.0.0", - "xtend": "~2.1.2" - } - }, - "node_modules/level-js/node_modules/object-keys": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", - "integrity": "sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw==", - "dev": true - }, - "node_modules/level-js/node_modules/typedarray-to-buffer": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-1.0.4.tgz", - "integrity": "sha512-vjMKrfSoUDN8/Vnqitw2FmstOfuJ73G6CrSEKnf11A6RmasVxHqfeBcnTb6RsL4pTMuV5Zsv9IiHRphMZyckUw==", - "dev": true - }, - "node_modules/level-js/node_modules/xtend": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", - "integrity": "sha512-vMNKzr2rHP9Dp/e1NQFnLQlwlhp9L/LfvnsVdHxN1f+uggyVI3i08uD14GPvCToPkdsRfyPqIyYGmIk58V98ZQ==", - "dev": true, - "dependencies": { - "object-keys": "~0.4.0" - }, - "engines": { - "node": ">=0.4" - } - }, - "node_modules/level-peek": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/level-peek/-/level-peek-1.0.6.tgz", - "integrity": "sha512-TKEzH5TxROTjQxWMczt9sizVgnmJ4F3hotBI48xCTYvOKd/4gA/uY0XjKkhJFo6BMic8Tqjf6jFMLWeg3MAbqQ==", - "dev": true, - "dependencies": { - "level-fix-range": "~1.0.2" - } - }, - "node_modules/level-sublevel": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/level-sublevel/-/level-sublevel-5.2.3.tgz", - "integrity": "sha512-tO8jrFp+QZYrxx/Gnmjawuh1UBiifpvKNAcm4KCogesWr1Nm2+ckARitf+Oo7xg4OHqMW76eAqQ204BoIlscjA==", - "dev": true, - "dependencies": { - "level-fix-range": "2.0", - "level-hooks": ">=4.4.0 <5", - "string-range": "~1.2.1", - "xtend": "~2.0.4" - } - }, - "node_modules/level-sublevel/node_modules/clone": { - "version": "0.1.19", - "resolved": "https://registry.npmjs.org/clone/-/clone-0.1.19.tgz", - "integrity": "sha512-IO78I0y6JcSpEPHzK4obKdsL7E7oLdRVDVOLwr2Hkbjsb+Eoz0dxW6tef0WizoKu0gLC4oZSZuEF4U2K6w1WQw==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/level-sublevel/node_modules/level-fix-range": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/level-fix-range/-/level-fix-range-2.0.0.tgz", - "integrity": "sha512-WrLfGWgwWbYPrHsYzJau+5+te89dUbENBg3/lsxOs4p2tYOhCHjbgXxBAj4DFqp3k/XBwitcRXoCh8RoCogASA==", - "dev": true, - "dependencies": { - "clone": "~0.1.9" - } - }, - "node_modules/level-sublevel/node_modules/object-keys": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.2.0.tgz", - "integrity": "sha512-XODjdR2pBh/1qrjPcbSeSgEtKbYo7LqYNq64/TPuCf7j9SfDD3i21yatKoIy39yIWNvVM59iutfQQpCv1RfFzA==", - "deprecated": "Please update to the latest object-keys", - "dev": true, - "dependencies": { - "foreach": "~2.0.1", - "indexof": "~0.0.1", - "is": "~0.2.6" - } - }, - "node_modules/level-sublevel/node_modules/xtend": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.0.6.tgz", - "integrity": "sha512-fOZg4ECOlrMl+A6Msr7EIFcON1L26mb4NY5rurSkOex/TWhazOrg6eXD/B0XkuiYcYhQDWLXzQxLMVJ7LXwokg==", - "dev": true, - "dependencies": { - "is-object": "~0.1.2", - "object-keys": "~0.2.0" - }, - "engines": { - "node": ">=0.4" - } - }, - "node_modules/levelup": { - "version": "0.18.6", - "resolved": "https://registry.npmjs.org/levelup/-/levelup-0.18.6.tgz", - "integrity": "sha512-uB0auyRqIVXx+hrpIUtol4VAPhLRcnxcOsd2i2m6rbFIDarO5dnrupLOStYYpEcu8ZT087Z9HEuYw1wjr6RL6Q==", - "dev": true, - "dependencies": { - "bl": "~0.8.1", - "deferred-leveldown": "~0.2.0", - "errno": "~0.1.1", - "prr": "~0.0.0", - "readable-stream": "~1.0.26", - "semver": "~2.3.1", - "xtend": "~3.0.0" - } - }, - "node_modules/levelup/node_modules/bl": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/bl/-/bl-0.8.2.tgz", - "integrity": "sha512-pfqikmByp+lifZCS0p6j6KreV6kNU6Apzpm2nKOk+94cZb/jvle55+JxWiByUQ0Wo/+XnDXEy5MxxKMb6r0VIw==", - "dev": true, - "dependencies": { - "readable-stream": "~1.0.26" - } - }, - "node_modules/levelup/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", - "dev": true - }, - "node_modules/levelup/node_modules/prr": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz", - "integrity": "sha512-LmUECmrW7RVj6mDWKjTXfKug7TFGdiz9P18HMcO4RHL+RW7MCOGNvpj5j47Rnp6ne6r4fZ2VzyUWEpKbg+tsjQ==", - "dev": true - }, - "node_modules/levelup/node_modules/readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/levelup/node_modules/semver": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-2.3.2.tgz", - "integrity": "sha512-abLdIKCosKfpnmhS52NCTjO4RiLspDfsn37prjzGrp9im5DPJOgh82Os92vtwGh6XdQryKI/7SREZnV+aqiXrA==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/levelup/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", - "dev": true - }, - "node_modules/levelup/node_modules/xtend": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-3.0.0.tgz", - "integrity": "sha512-sp/sT9OALMjRW1fKDlPeuSZlDQpkqReA0pyJukniWbTGoEKefHxhGJynE3PNhUMlcM8qWIjPwecwCw4LArS5Eg==", - "dev": true, - "engines": { - "node": ">=0.4" - } - }, - "node_modules/leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/libnpmaccess": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/libnpmaccess/-/libnpmaccess-4.0.3.tgz", - "integrity": "sha512-sPeTSNImksm8O2b6/pf3ikv4N567ERYEpeKRPSmqlNt1dTZbvgpJIzg5vAhXHpw2ISBsELFRelk0jEahj1c6nQ==", - "dev": true, - "dependencies": { - "aproba": "^2.0.0", - "minipass": "^3.1.1", - "npm-package-arg": "^8.1.2", - "npm-registry-fetch": "^11.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/libnpmaccess/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/libnpmaccess/node_modules/make-fetch-happen": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", - "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", - "dev": true, - "dependencies": { - "agentkeepalive": "^4.1.3", - "cacache": "^15.2.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^6.0.0", - "minipass": "^3.1.3", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^1.3.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.2", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^6.0.0", - "ssri": "^8.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/libnpmaccess/node_modules/npm-registry-fetch": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-11.0.0.tgz", - "integrity": "sha512-jmlgSxoDNuhAtxUIG6pVwwtz840i994dL14FoNVZisrmZW5kWd63IUTNv1m/hyRSGSqWjCUp/YZlS1BJyNp9XA==", - "dev": true, - "dependencies": { - "make-fetch-happen": "^9.0.1", - "minipass": "^3.1.3", - "minipass-fetch": "^1.3.0", - "minipass-json-stream": "^1.0.1", - "minizlib": "^2.0.0", - "npm-package-arg": "^8.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/libnpmaccess/node_modules/socks-proxy-agent": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz", - "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==", - "dev": true, - "dependencies": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" - }, - "engines": { - "node": ">= 10" + "node": ">= 10" } }, "node_modules/libnpmaccess/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/libnpmpublish": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/libnpmpublish/-/libnpmpublish-4.0.2.tgz", - "integrity": "sha512-+AD7A2zbVeGRCFI2aO//oUmapCwy7GHqPXFJh3qpToSRNU+tXKJ2YFUgjt04LPPAf2dlEH95s6EhIHM1J7bmOw==", "dev": true, + "license": "ISC", "dependencies": { "normalize-package-data": "^3.0.2", "npm-package-arg": "^8.1.2", @@ -10838,9 +8964,8 @@ }, "node_modules/libnpmpublish/node_modules/lru-cache": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -10850,9 +8975,8 @@ }, "node_modules/libnpmpublish/node_modules/make-fetch-happen": { "version": "9.1.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", - "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", "dev": true, + "license": "ISC", "dependencies": { "agentkeepalive": "^4.1.3", "cacache": "^15.2.0", @@ -10877,9 +9001,8 @@ }, "node_modules/libnpmpublish/node_modules/npm-registry-fetch": { "version": "11.0.0", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-11.0.0.tgz", - "integrity": "sha512-jmlgSxoDNuhAtxUIG6pVwwtz840i994dL14FoNVZisrmZW5kWd63IUTNv1m/hyRSGSqWjCUp/YZlS1BJyNp9XA==", "dev": true, + "license": "ISC", "dependencies": { "make-fetch-happen": "^9.0.1", "minipass": "^3.1.3", @@ -10894,9 +9017,8 @@ }, "node_modules/libnpmpublish/node_modules/socks-proxy-agent": { "version": "6.2.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz", - "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==", "dev": true, + "license": "MIT", "dependencies": { "agent-base": "^6.0.2", "debug": "^4.3.3", @@ -10908,21 +9030,26 @@ }, "node_modules/libnpmpublish/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/lines-and-columns": { "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/linkify-it": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "uc.micro": "^2.0.0" + } }, "node_modules/load-json-file": { "version": "6.2.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-6.2.0.tgz", - "integrity": "sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.1.15", "parse-json": "^5.0.0", @@ -10935,27 +9062,24 @@ }, "node_modules/load-json-file/node_modules/type-fest": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=8" } }, "node_modules/loader-runner": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", - "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.11.5" } }, "node_modules/locate-path": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^5.0.0" }, @@ -10968,44 +9092,33 @@ }, "node_modules/lodash": { "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + "dev": true, + "license": "MIT" }, "node_modules/lodash._reinterpolate": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "integrity": "sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA==", - "dev": true - }, - "node_modules/lodash.flattendeep": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", - "integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.ismatch": { "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", - "integrity": "sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.memoize": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.merge": { "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.template": { "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", - "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", "dev": true, + "license": "MIT", "dependencies": { "lodash._reinterpolate": "^3.0.0", "lodash.templatesettings": "^4.0.0" @@ -11013,18 +9126,16 @@ }, "node_modules/lodash.templatesettings": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", - "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", "dev": true, + "license": "MIT", "dependencies": { "lodash._reinterpolate": "^3.0.0" } }, "node_modules/log4js": { "version": "6.9.1", - "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.9.1.tgz", - "integrity": "sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==", "dev": true, + "license": "Apache-2.0", "dependencies": { "date-format": "^4.0.14", "debug": "^4.3.4", @@ -11038,9 +9149,8 @@ }, "node_modules/loose-envify": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "dev": true, + "license": "MIT", "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" }, @@ -11050,69 +9160,47 @@ }, "node_modules/loupe": { "version": "2.3.6", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", - "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==", "dev": true, + "license": "MIT", "dependencies": { "get-func-name": "^2.0.0" } }, "node_modules/lru-cache": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^3.0.2" } }, - "node_modules/ltgt": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", - "integrity": "sha512-AI2r85+4MquTw9ZYqabu4nMwy9Oftlfa/e/52t9IjtfG+mGBbTNdAoZ3RQKLHR6r0wQnwZnPIEh/Ya6XTWAKNA==", - "dev": true - }, "node_modules/lunr": { "version": "2.3.9", - "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", - "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "version": "4.0.0", "dev": true, + "license": "MIT", "dependencies": { - "semver": "^6.0.0" + "semver": "^7.5.3" }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/make-error": { "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true + "license": "ISC" }, "node_modules/make-fetch-happen": { "version": "8.0.14", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-8.0.14.tgz", - "integrity": "sha512-EsS89h6l4vbfJEtBZnENTOFk8mCRpY5ru36Xe5bcX1KYIli2mkSHqoFsp5O1wMDvTJJzxe/4THpCTtygjeeGWQ==", "dev": true, + "license": "ISC", "dependencies": { "agentkeepalive": "^4.1.3", "cacache": "^15.0.5", @@ -11136,9 +9224,8 @@ }, "node_modules/make-fetch-happen/node_modules/lru-cache": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -11148,24 +9235,21 @@ }, "node_modules/make-fetch-happen/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/makeerror": { "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "tmpl": "1.0.5" } }, "node_modules/map-obj": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", - "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -11173,41 +9257,37 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/marked": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", - "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", + "node_modules/markdown-it": { + "version": "14.1.0", "dev": true, - "bin": { - "marked": "bin/marked.js" + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1", + "entities": "^4.4.0", + "linkify-it": "^5.0.0", + "mdurl": "^2.0.0", + "punycode.js": "^2.3.1", + "uc.micro": "^2.1.0" }, - "engines": { - "node": ">= 12" + "bin": { + "markdown-it": "bin/markdown-it.mjs" } }, - "node_modules/md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } + "node_modules/mdurl": { + "version": "2.0.0", + "dev": true, + "license": "MIT" }, "node_modules/media-typer": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/memorystream": { "version": "0.3.1", - "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", - "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", "dev": true, "engines": { "node": ">= 0.10.0" @@ -11215,9 +9295,8 @@ }, "node_modules/meow": { "version": "8.1.2", - "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", - "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", "dev": true, + "license": "MIT", "dependencies": { "@types/minimist": "^1.2.0", "camelcase-keys": "^6.2.2", @@ -11240,9 +9319,8 @@ }, "node_modules/meow/node_modules/find-up": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -11253,15 +9331,13 @@ }, "node_modules/meow/node_modules/hosted-git-info": { "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/meow/node_modules/locate-path": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^4.1.0" }, @@ -11271,9 +9347,8 @@ }, "node_modules/meow/node_modules/p-limit": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, + "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -11286,9 +9361,8 @@ }, "node_modules/meow/node_modules/p-locate": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^2.2.0" }, @@ -11298,9 +9372,8 @@ }, "node_modules/meow/node_modules/read-pkg": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", "dev": true, + "license": "MIT", "dependencies": { "@types/normalize-package-data": "^2.4.0", "normalize-package-data": "^2.5.0", @@ -11313,9 +9386,8 @@ }, "node_modules/meow/node_modules/read-pkg-up": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", "dev": true, + "license": "MIT", "dependencies": { "find-up": "^4.1.0", "read-pkg": "^5.2.0", @@ -11330,18 +9402,16 @@ }, "node_modules/meow/node_modules/read-pkg-up/node_modules/type-fest": { "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=8" } }, "node_modules/meow/node_modules/read-pkg/node_modules/normalize-package-data": { "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "hosted-git-info": "^2.1.4", "resolve": "^1.10.0", @@ -11351,27 +9421,24 @@ }, "node_modules/meow/node_modules/read-pkg/node_modules/type-fest": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=8" } }, "node_modules/meow/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "version": "5.7.2", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver" } }, "node_modules/meow/node_modules/type-fest": { "version": "0.18.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", - "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -11381,24 +9448,21 @@ }, "node_modules/merge-stream": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/merge2": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/micromatch": { "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "dev": true, + "license": "MIT", "dependencies": { "braces": "^3.0.2", "picomatch": "^2.3.1" @@ -11407,30 +9471,10 @@ "node": ">=8.6" } }, - "node_modules/miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dev": true, - "dependencies": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "bin": { - "miller-rabin": "bin/miller-rabin" - } - }, - "node_modules/miller-rabin/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, "node_modules/mime": { "version": "2.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", - "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", "dev": true, + "license": "MIT", "bin": { "mime": "cli.js" }, @@ -11440,18 +9484,16 @@ }, "node_modules/mime-db": { "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/mime-types": { "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "dev": true, + "license": "MIT", "dependencies": { "mime-db": "1.52.0" }, @@ -11461,37 +9503,24 @@ }, "node_modules/mimic-fn": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/min-indent": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" - }, - "node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==" - }, "node_modules/minimatch": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -11501,18 +9530,16 @@ }, "node_modules/minimist": { "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/minimist-options": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", - "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", "dev": true, + "license": "MIT", "dependencies": { "arrify": "^1.0.1", "is-plain-obj": "^1.1.0", @@ -11524,9 +9551,8 @@ }, "node_modules/minipass": { "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -11536,9 +9562,8 @@ }, "node_modules/minipass-collect": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", "dev": true, + "license": "ISC", "dependencies": { "minipass": "^3.0.0" }, @@ -11548,9 +9573,8 @@ }, "node_modules/minipass-fetch": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", - "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", "dev": true, + "license": "MIT", "dependencies": { "minipass": "^3.1.0", "minipass-sized": "^1.0.3", @@ -11565,9 +9589,8 @@ }, "node_modules/minipass-flush": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", "dev": true, + "license": "ISC", "dependencies": { "minipass": "^3.0.0" }, @@ -11577,9 +9600,8 @@ }, "node_modules/minipass-json-stream": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", - "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", "dev": true, + "license": "MIT", "dependencies": { "jsonparse": "^1.3.1", "minipass": "^3.0.0" @@ -11587,9 +9609,8 @@ }, "node_modules/minipass-pipeline": { "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", "dev": true, + "license": "ISC", "dependencies": { "minipass": "^3.0.0" }, @@ -11599,9 +9620,8 @@ }, "node_modules/minipass-sized": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", - "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", "dev": true, + "license": "ISC", "dependencies": { "minipass": "^3.0.0" }, @@ -11611,15 +9631,13 @@ }, "node_modules/minipass/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/minizlib": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", "dev": true, + "license": "MIT", "dependencies": { "minipass": "^3.0.0", "yallist": "^4.0.0" @@ -11630,15 +9648,13 @@ }, "node_modules/minizlib/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/mkdirp": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true, + "license": "MIT", "bin": { "mkdirp": "bin/cmd.js" }, @@ -11646,17 +9662,10 @@ "node": ">=10" } }, - "node_modules/mkdirp-classic": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", - "dev": true - }, "node_modules/mkdirp-infer-owner": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mkdirp-infer-owner/-/mkdirp-infer-owner-2.0.0.tgz", - "integrity": "sha512-sdqtiFt3lkOaYvTXSRIUjkIdPTcxgv5+fgqYE/5qgwdw12cOrAuzzgzvVExIkH/ul1oeHN3bCLOWSG3XOqbKKw==", "dev": true, + "license": "ISC", "dependencies": { "chownr": "^2.0.0", "infer-owner": "^1.0.4", @@ -11668,32 +9677,29 @@ }, "node_modules/modify-values": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz", - "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/mrmime": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", - "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" } }, "node_modules/ms": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "dev": true, + "license": "MIT" }, "node_modules/multimatch": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-5.0.0.tgz", - "integrity": "sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==", "dev": true, + "license": "MIT", "dependencies": { "@types/minimatch": "^3.0.3", "array-differ": "^3.0.0", @@ -11710,62 +9716,49 @@ }, "node_modules/multimatch/node_modules/arrify": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/mute-stream": { "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dev": true - }, - "node_modules/nan": { - "version": "2.17.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz", - "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==" + "dev": true, + "license": "ISC" }, "node_modules/natural-compare": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/natural-compare-lite": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", - "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/negotiator": { "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/neo-async": { "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/nice-try": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/node-fetch": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.11.tgz", - "integrity": "sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w==", + "version": "2.7.0", "dev": true, + "license": "MIT", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -11783,21 +9776,18 @@ }, "node_modules/node-fetch/node_modules/tr46": { "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/node-fetch/node_modules/webidl-conversions": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true + "dev": true, + "license": "BSD-2-Clause" }, "node_modules/node-fetch/node_modules/whatwg-url": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", "dev": true, + "license": "MIT", "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" @@ -11805,9 +9795,8 @@ }, "node_modules/node-gyp": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-5.1.1.tgz", - "integrity": "sha512-WH0WKGi+a4i4DUt2mHnvocex/xPLp9pYt5R6M2JdFB7pJ7Z34hveZ4nDTGTiLXCkitA9T8HFZjhinBCiVHYcWw==", "dev": true, + "license": "MIT", "dependencies": { "env-paths": "^2.2.0", "glob": "^7.1.4", @@ -11830,24 +9819,21 @@ }, "node_modules/node-gyp/node_modules/chownr": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/node-gyp/node_modules/fs-minipass": { "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", "dev": true, + "license": "ISC", "dependencies": { "minipass": "^2.6.0" } }, "node_modules/node-gyp/node_modules/minipass": { "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", "dev": true, + "license": "ISC", "dependencies": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" @@ -11855,18 +9841,16 @@ }, "node_modules/node-gyp/node_modules/minizlib": { "version": "1.3.3", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", "dev": true, + "license": "MIT", "dependencies": { "minipass": "^2.9.0" } }, "node_modules/node-gyp/node_modules/mkdirp": { "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dev": true, + "license": "MIT", "dependencies": { "minimist": "^1.2.6" }, @@ -11876,9 +9860,8 @@ }, "node_modules/node-gyp/node_modules/rimraf": { "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "dev": true, + "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -11887,19 +9870,17 @@ } }, "node_modules/node-gyp/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "version": "5.7.2", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver" } }, "node_modules/node-gyp/node_modules/tar": { "version": "4.4.19", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz", - "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==", "dev": true, + "license": "ISC", "dependencies": { "chownr": "^1.1.4", "fs-minipass": "^1.2.7", @@ -11915,9 +9896,8 @@ }, "node_modules/node-gyp/node_modules/which": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -11927,108 +9907,18 @@ }, "node_modules/node-int64": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", - "dev": true - }, - "node_modules/node-polyfill-webpack-plugin": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/node-polyfill-webpack-plugin/-/node-polyfill-webpack-plugin-2.0.1.tgz", - "integrity": "sha512-ZUMiCnZkP1LF0Th2caY6J/eKKoA0TefpoVa68m/LQU1I/mE8rGt4fNYGgNuCcK+aG8P8P43nbeJ2RqJMOL/Y1A==", - "dev": true, - "dependencies": { - "assert": "^2.0.0", - "browserify-zlib": "^0.2.0", - "buffer": "^6.0.3", - "console-browserify": "^1.2.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.12.0", - "domain-browser": "^4.22.0", - "events": "^3.3.0", - "filter-obj": "^2.0.2", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "^1.0.1", - "process": "^0.11.10", - "punycode": "^2.1.1", - "querystring-es3": "^0.2.1", - "readable-stream": "^4.0.0", - "stream-browserify": "^3.0.0", - "stream-http": "^3.2.0", - "string_decoder": "^1.3.0", - "timers-browserify": "^2.0.12", - "tty-browserify": "^0.0.1", - "type-fest": "^2.14.0", - "url": "^0.11.0", - "util": "^0.12.4", - "vm-browserify": "^1.1.2" - }, - "engines": { - "node": ">=12" - }, - "peerDependencies": { - "webpack": ">=5" - } - }, - "node_modules/node-polyfill-webpack-plugin/node_modules/filter-obj": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-2.0.2.tgz", - "integrity": "sha512-lO3ttPjHZRfjMcxWKb1j1eDhTFsu4meeR3lnMcnBFhk6RuLhvEiuALu2TlfL310ph4lCYYwgF/ElIjdP739tdg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/node-polyfill-webpack-plugin/node_modules/readable-stream": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.4.0.tgz", - "integrity": "sha512-kDMOq0qLtxV9f/SQv522h8cxZBqNZXuXNyjyezmfAAuribMyVXziljpQ/uQhfE1XLg2/TLTW2DsnoE4VAi/krg==", - "dev": true, - "dependencies": { - "abort-controller": "^3.0.0", - "buffer": "^6.0.3", - "events": "^3.3.0", - "process": "^0.11.10" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/node-polyfill-webpack-plugin/node_modules/type-fest": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", - "dev": true, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/node-preload": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", - "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", "dev": true, - "dependencies": { - "process-on-spawn": "^1.0.0" - }, - "engines": { - "node": ">=8" - } + "license": "MIT" }, "node_modules/node-releases": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", - "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==", - "dev": true + "version": "2.0.14", + "dev": true, + "license": "MIT" }, "node_modules/noms": { "version": "0.0.0", - "resolved": "https://registry.npmjs.org/noms/-/noms-0.0.0.tgz", - "integrity": "sha512-lNDU9VJaOPxUmXcLb+HQFeUgQQPtMI24Gt6hgfuMHRJgMRHMF/qZ4HJD3GDru4sSw9IQl2jPjAYnQrdIeLbwow==", "dev": true, + "license": "ISC", "dependencies": { "inherits": "^2.0.1", "readable-stream": "~1.0.31" @@ -12036,15 +9926,13 @@ }, "node_modules/noms/node_modules/isarray": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/noms/node_modules/readable-stream": { "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", "dev": true, + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.1", @@ -12054,15 +9942,13 @@ }, "node_modules/noms/node_modules/string_decoder": { "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/nopt": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", - "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", "dev": true, + "license": "ISC", "dependencies": { "abbrev": "1", "osenv": "^0.1.4" @@ -12073,9 +9959,8 @@ }, "node_modules/normalize-package-data": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", - "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "hosted-git-info": "^4.0.1", "is-core-module": "^2.5.0", @@ -12088,18 +9973,16 @@ }, "node_modules/normalize-path": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/normalize-url": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -12109,18 +9992,16 @@ }, "node_modules/npm-bundled": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz", - "integrity": "sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==", "dev": true, + "license": "ISC", "dependencies": { "npm-normalize-package-bin": "^1.0.1" } }, "node_modules/npm-install-checks": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-4.0.0.tgz", - "integrity": "sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "semver": "^7.1.1" }, @@ -12130,9 +10011,8 @@ }, "node_modules/npm-lifecycle": { "version": "3.1.5", - "resolved": "https://registry.npmjs.org/npm-lifecycle/-/npm-lifecycle-3.1.5.tgz", - "integrity": "sha512-lDLVkjfZmvmfvpvBzA4vzee9cn+Me4orq0QF8glbswJVEbIcSNWib7qGOffolysc3teCqbbPZZkzbr3GQZTL1g==", "dev": true, + "license": "Artistic-2.0", "dependencies": { "byline": "^5.0.0", "graceful-fs": "^4.1.15", @@ -12146,9 +10026,8 @@ }, "node_modules/npm-lifecycle/node_modules/which": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -12158,15 +10037,13 @@ }, "node_modules/npm-normalize-package-bin": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", - "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/npm-package-arg": { "version": "8.1.5", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.5.tgz", - "integrity": "sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==", "dev": true, + "license": "ISC", "dependencies": { "hosted-git-info": "^4.0.1", "semver": "^7.3.4", @@ -12178,9 +10055,8 @@ }, "node_modules/npm-packlist": { "version": "2.2.2", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-2.2.2.tgz", - "integrity": "sha512-Jt01acDvJRhJGthnUJVF/w6gumWOZxO7IkpY/lsX9//zqQgnF7OJaxgQXcerd4uQOLu7W5bkb4mChL9mdfm+Zg==", "dev": true, + "license": "ISC", "dependencies": { "glob": "^7.1.6", "ignore-walk": "^3.0.3", @@ -12196,9 +10072,8 @@ }, "node_modules/npm-pick-manifest": { "version": "6.1.1", - "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-6.1.1.tgz", - "integrity": "sha512-dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA==", "dev": true, + "license": "ISC", "dependencies": { "npm-install-checks": "^4.0.0", "npm-normalize-package-bin": "^1.0.1", @@ -12208,9 +10083,8 @@ }, "node_modules/npm-registry-fetch": { "version": "9.0.0", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-9.0.0.tgz", - "integrity": "sha512-PuFYYtnQ8IyVl6ib9d3PepeehcUeHN9IO5N/iCRhyg9tStQcqGQBRVHmfmMWPDERU3KwZoHFvbJ4FPXPspvzbA==", "dev": true, + "license": "ISC", "dependencies": { "@npmcli/ci-detect": "^1.0.0", "lru-cache": "^6.0.0", @@ -12227,9 +10101,8 @@ }, "node_modules/npm-registry-fetch/node_modules/lru-cache": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -12239,15 +10112,13 @@ }, "node_modules/npm-registry-fetch/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/npm-run-all": { "version": "4.1.5", - "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", - "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", "chalk": "^2.4.1", @@ -12270,9 +10141,8 @@ }, "node_modules/npm-run-all/node_modules/ansi-styles": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^1.9.0" }, @@ -12282,9 +10152,8 @@ }, "node_modules/npm-run-all/node_modules/chalk": { "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -12296,24 +10165,21 @@ }, "node_modules/npm-run-all/node_modules/color-convert": { "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "1.1.3" } }, "node_modules/npm-run-all/node_modules/color-name": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/npm-run-all/node_modules/cross-spawn": { "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, + "license": "MIT", "dependencies": { "nice-try": "^1.0.4", "path-key": "^2.0.1", @@ -12327,45 +10193,40 @@ }, "node_modules/npm-run-all/node_modules/escape-string-regexp": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.0" } }, "node_modules/npm-run-all/node_modules/has-flag": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/npm-run-all/node_modules/path-key": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/npm-run-all/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "version": "5.7.2", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver" } }, "node_modules/npm-run-all/node_modules/shebang-command": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", "dev": true, + "license": "MIT", "dependencies": { "shebang-regex": "^1.0.0" }, @@ -12375,18 +10236,16 @@ }, "node_modules/npm-run-all/node_modules/shebang-regex": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/npm-run-all/node_modules/supports-color": { "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^3.0.0" }, @@ -12396,9 +10255,8 @@ }, "node_modules/npm-run-all/node_modules/which": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -12408,9 +10266,8 @@ }, "node_modules/npm-run-path": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^3.0.0" }, @@ -12420,9 +10277,8 @@ }, "node_modules/npmlog": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", "dev": true, + "license": "ISC", "dependencies": { "are-we-there-yet": "~1.1.2", "console-control-strings": "~1.1.0", @@ -12432,278 +10288,48 @@ }, "node_modules/number-is-nan": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/nyc": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz", - "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==", - "dev": true, - "dependencies": { - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "caching-transform": "^4.0.0", - "convert-source-map": "^1.7.0", - "decamelize": "^1.2.0", - "find-cache-dir": "^3.2.0", - "find-up": "^4.1.0", - "foreground-child": "^2.0.0", - "get-package-type": "^0.1.0", - "glob": "^7.1.6", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-hook": "^3.0.0", - "istanbul-lib-instrument": "^4.0.0", - "istanbul-lib-processinfo": "^2.0.2", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "make-dir": "^3.0.0", - "node-preload": "^0.2.1", - "p-map": "^3.0.0", - "process-on-spawn": "^1.0.0", - "resolve-from": "^5.0.0", - "rimraf": "^3.0.0", - "signal-exit": "^3.0.2", - "spawn-wrap": "^2.0.0", - "test-exclude": "^6.0.0", - "yargs": "^15.0.2" - }, - "bin": { - "nyc": "bin/nyc.js" - }, - "engines": { - "node": ">=8.9" - } - }, - "node_modules/nyc/node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "node_modules/nyc/node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true - }, - "node_modules/nyc/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", - "dev": true, - "dependencies": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/nyc/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", - "dev": true, - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/nyc/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true - }, - "node_modules/nyc/node_modules/yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, - "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/oauth-sign": { "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", "dev": true, + "license": "Apache-2.0", "engines": { "node": "*" } }, "node_modules/object-assign": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/object-inspect": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "version": "1.13.1", "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-is": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", - "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/object-keys": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" } }, "node_modules/object.assign": { "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", @@ -12718,29 +10344,26 @@ } }, "node_modules/object.entries": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz", - "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==", + "version": "1.1.7", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "engines": { "node": ">= 0.4" } }, "node_modules/object.fromentries": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz", - "integrity": "sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==", + "version": "2.0.7", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "engines": { "node": ">= 0.4" @@ -12750,15 +10373,14 @@ } }, "node_modules/object.getownpropertydescriptors": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.6.tgz", - "integrity": "sha512-lq+61g26E/BgHv0ZTFgRvi7NMEPuAxLkFU7rukXjc/AlwH4Am5xXVnIXy3un1bg/JPbXHrixRkK1itUzzPiIjQ==", + "version": "2.1.7", "dev": true, + "license": "MIT", "dependencies": { - "array.prototype.reduce": "^1.0.5", + "array.prototype.reduce": "^1.0.6", "call-bind": "^1.0.2", "define-properties": "^1.2.0", - "es-abstract": "^1.21.2", + "es-abstract": "^1.22.1", "safe-array-concat": "^1.0.0" }, "engines": { @@ -12768,29 +10390,38 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/object.groupby": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1" + } + }, "node_modules/object.hasown": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.2.tgz", - "integrity": "sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==", + "version": "1.1.3", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/object.values": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", - "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", + "version": "1.1.7", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "engines": { "node": ">= 0.4" @@ -12799,17 +10430,10 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/octal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/octal/-/octal-1.0.0.tgz", - "integrity": "sha512-nnda7W8d+A3vEIY+UrDQzzboPf1vhs4JYVhff5CDkq9QNoZY7Xrxeo/htox37j9dZf7yNHevZzqtejWgy1vCqQ==", - "dev": true - }, "node_modules/on-finished": { "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", "dev": true, + "license": "MIT", "dependencies": { "ee-first": "1.1.1" }, @@ -12819,18 +10443,16 @@ }, "node_modules/once": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, + "license": "ISC", "dependencies": { "wrappy": "1" } }, "node_modules/onetime": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, + "license": "MIT", "dependencies": { "mimic-fn": "^2.1.0" }, @@ -12843,59 +10465,48 @@ }, "node_modules/opener": { "version": "1.5.2", - "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", - "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", "dev": true, + "license": "(WTFPL OR MIT)", "bin": { "opener": "bin/opener-bin.js" } }, "node_modules/optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "version": "0.9.3", "dev": true, + "license": "MIT", "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" + "type-check": "^0.4.0" }, "engines": { "node": ">= 0.8.0" } }, - "node_modules/os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", - "dev": true - }, "node_modules/os-homedir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/os-tmpdir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/osenv": { "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", "dev": true, + "license": "ISC", "dependencies": { "os-homedir": "^1.0.0", "os-tmpdir": "^1.0.0" @@ -12903,18 +10514,16 @@ }, "node_modules/p-finally": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/p-limit": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, + "license": "MIT", "dependencies": { "yocto-queue": "^0.1.0" }, @@ -12927,9 +10536,8 @@ }, "node_modules/p-locate": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^3.0.2" }, @@ -12942,9 +10550,8 @@ }, "node_modules/p-map": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", "dev": true, + "license": "MIT", "dependencies": { "aggregate-error": "^3.0.0" }, @@ -12957,18 +10564,16 @@ }, "node_modules/p-map-series": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map-series/-/p-map-series-2.1.0.tgz", - "integrity": "sha512-RpYIIK1zXSNEOdwxcfe7FdvGcs7+y5n8rifMhMNWvaxRNMPINJHF5GDeuVxWqnfrcHPSCnp7Oo5yNXHId9Av2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/p-pipe": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-pipe/-/p-pipe-3.1.0.tgz", - "integrity": "sha512-08pj8ATpzMR0Y80x50yJHn37NF6vjrqHutASaX5LiH5npS9XPvrUmscd9MF5R4fuYRHOxQR1FfMIlF7AzwoPqw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -12978,9 +10583,8 @@ }, "node_modules/p-queue": { "version": "6.6.2", - "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", - "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==", "dev": true, + "license": "MIT", "dependencies": { "eventemitter3": "^4.0.4", "p-timeout": "^3.2.0" @@ -12992,20 +10596,23 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/p-queue/node_modules/eventemitter3": { + "version": "4.0.7", + "dev": true, + "license": "MIT" + }, "node_modules/p-reduce": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-2.1.0.tgz", - "integrity": "sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/p-timeout": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", - "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", "dev": true, + "license": "MIT", "dependencies": { "p-finally": "^1.0.0" }, @@ -13015,18 +10622,16 @@ }, "node_modules/p-try": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/p-waterfall": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-waterfall/-/p-waterfall-2.1.1.tgz", - "integrity": "sha512-RRTnDb2TBG/epPRI2yYXsimO0v3BXC8Yd3ogr1545IaqKK17VGhbWVeGGN+XfCm/08OK8635nH31c8bATkHuSw==", "dev": true, + "license": "MIT", "dependencies": { "p-reduce": "^2.0.0" }, @@ -13037,26 +10642,10 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/package-hash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", - "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.15", - "hasha": "^5.0.0", - "lodash.flattendeep": "^4.4.0", - "release-zalgo": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pacote": { - "version": "11.3.5", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-11.3.5.tgz", - "integrity": "sha512-fT375Yczn4zi+6Hkk2TBe1x1sP8FgFsEIZ2/iWaXY2r/NkhDJfxbcn5paz1+RTFCyNf+dPnaoBDJoAxXSU8Bkg==", + "node_modules/pacote": { + "version": "11.3.5", "dev": true, + "license": "ISC", "dependencies": { "@npmcli/git": "^2.1.0", "@npmcli/installed-package-contents": "^1.0.6", @@ -13087,9 +10676,8 @@ }, "node_modules/pacote/node_modules/lru-cache": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -13099,9 +10687,8 @@ }, "node_modules/pacote/node_modules/make-fetch-happen": { "version": "9.1.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", - "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", "dev": true, + "license": "ISC", "dependencies": { "agentkeepalive": "^4.1.3", "cacache": "^15.2.0", @@ -13126,9 +10713,8 @@ }, "node_modules/pacote/node_modules/npm-registry-fetch": { "version": "11.0.0", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-11.0.0.tgz", - "integrity": "sha512-jmlgSxoDNuhAtxUIG6pVwwtz840i994dL14FoNVZisrmZW5kWd63IUTNv1m/hyRSGSqWjCUp/YZlS1BJyNp9XA==", "dev": true, + "license": "ISC", "dependencies": { "make-fetch-happen": "^9.0.1", "minipass": "^3.1.3", @@ -13143,9 +10729,8 @@ }, "node_modules/pacote/node_modules/socks-proxy-agent": { "version": "6.2.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz", - "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==", "dev": true, + "license": "MIT", "dependencies": { "agent-base": "^6.0.2", "debug": "^4.3.3", @@ -13157,21 +10742,13 @@ }, "node_modules/pacote/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/parent-module": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, + "license": "MIT", "dependencies": { "callsites": "^3.0.0" }, @@ -13179,24 +10756,10 @@ "node": ">=6" } }, - "node_modules/parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", - "dev": true, - "dependencies": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, "node_modules/parse-json": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", @@ -13212,9 +10775,8 @@ }, "node_modules/parse-path": { "version": "4.0.4", - "resolved": "https://registry.npmjs.org/parse-path/-/parse-path-4.0.4.tgz", - "integrity": "sha512-Z2lWUis7jlmXC1jeOG9giRO2+FsuyNipeQ43HAjqAZjwSe3SEf+q/84FGPHoso3kyntbxa4c4i77t3m6fGf8cw==", "dev": true, + "license": "MIT", "dependencies": { "is-ssh": "^1.3.0", "protocols": "^1.4.0", @@ -13224,15 +10786,13 @@ }, "node_modules/parse-path/node_modules/protocols": { "version": "1.4.8", - "resolved": "https://registry.npmjs.org/protocols/-/protocols-1.4.8.tgz", - "integrity": "sha512-IgjKyaUSjsROSO8/D49Ab7hP8mJgTYcqApOqdPhLoPxAplXmkp+zRvsrSQjFn5by0rhm4VH0GAUELIPpx7B1yg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/parse-url": { "version": "6.0.5", - "resolved": "https://registry.npmjs.org/parse-url/-/parse-url-6.0.5.tgz", - "integrity": "sha512-e35AeLTSIlkw/5GFq70IN7po8fmDUjpDPY1rIK+VubRfsUvBonjQ+PBZG+vWMACnQSmNlvl524IucoDmcioMxA==", "dev": true, + "license": "MIT", "dependencies": { "is-ssh": "^1.3.0", "normalize-url": "^6.1.0", @@ -13242,115 +10802,76 @@ }, "node_modules/parse-url/node_modules/protocols": { "version": "1.4.8", - "resolved": "https://registry.npmjs.org/protocols/-/protocols-1.4.8.tgz", - "integrity": "sha512-IgjKyaUSjsROSO8/D49Ab7hP8mJgTYcqApOqdPhLoPxAplXmkp+zRvsrSQjFn5by0rhm4VH0GAUELIPpx7B1yg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/parseurl": { "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, - "node_modules/path-browserify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", - "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", - "dev": true - }, "node_modules/path-exists": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/path-is-absolute": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/path-key": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/path-parse": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/path-type": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/pathval": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", "dev": true, + "license": "MIT", "engines": { "node": "*" } }, - "node_modules/pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", - "dev": true, - "dependencies": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", - "dev": true - }, "node_modules/performance-now": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/picocolors": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/picomatch": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.6" }, @@ -13360,9 +10881,8 @@ }, "node_modules/pidtree": { "version": "0.3.1", - "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", - "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", "dev": true, + "license": "MIT", "bin": { "pidtree": "bin/pidtree.js" }, @@ -13372,9 +10892,8 @@ }, "node_modules/pify": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz", - "integrity": "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -13383,19 +10902,17 @@ } }, "node_modules/pirates": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", - "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", + "version": "4.0.6", "dev": true, + "license": "MIT", "engines": { "node": ">= 6" } }, "node_modules/pkg-dir": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz", - "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==", "dev": true, + "license": "MIT", "dependencies": { "find-up": "^5.0.0" }, @@ -13405,18 +10922,16 @@ }, "node_modules/prelude-ls": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8.0" } }, "node_modules/prettier": { "version": "2.8.8", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", "dev": true, + "license": "MIT", "bin": { "prettier": "bin-prettier.js" }, @@ -13429,9 +10944,8 @@ }, "node_modules/prettier-linter-helpers": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", - "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", "dev": true, + "license": "MIT", "dependencies": { "fast-diff": "^1.1.2" }, @@ -13440,12 +10954,11 @@ } }, "node_modules/pretty-format": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.5.0.tgz", - "integrity": "sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw==", + "version": "29.7.0", "dev": true, + "license": "MIT", "dependencies": { - "@jest/schemas": "^29.4.3", + "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", "react-is": "^18.0.0" }, @@ -13455,9 +10968,8 @@ }, "node_modules/pretty-format/node_modules/ansi-styles": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -13467,51 +10979,26 @@ }, "node_modules/process": { "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6.0" } }, "node_modules/process-nextick-args": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "node_modules/process-on-spawn": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", - "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==", - "dev": true, - "dependencies": { - "fromentries": "^1.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true, - "engines": { - "node": ">=0.4.0" - } + "license": "MIT" }, "node_modules/promise-inflight": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/promise-retry": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", - "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", "dev": true, + "license": "MIT", "dependencies": { "err-code": "^2.0.2", "retry": "^0.12.0" @@ -13522,9 +11009,8 @@ }, "node_modules/prompts": { "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", "dev": true, + "license": "MIT", "dependencies": { "kleur": "^3.0.3", "sisteransi": "^1.0.5" @@ -13535,18 +11021,16 @@ }, "node_modules/promzard": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/promzard/-/promzard-0.3.0.tgz", - "integrity": "sha512-JZeYqd7UAcHCwI+sTOeUDYkvEU+1bQ7iE0UT1MgB/tERkAPkesW46MrpIySzODi+owTjZtiF8Ay5j9m60KmMBw==", "dev": true, + "license": "ISC", "dependencies": { "read": "1" } }, "node_modules/prop-types": { "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "loose-envify": "^1.4.0", @@ -13556,173 +11040,43 @@ }, "node_modules/prop-types/node_modules/react-is": { "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/proto-list": { "version": "1.2.4", - "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", - "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/protocols": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/protocols/-/protocols-2.0.1.tgz", - "integrity": "sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q==", - "dev": true - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "dev": true - }, - "node_modules/prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/psl": { "version": "1.9.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", - "dev": true - }, - "node_modules/public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dev": true, - "dependencies": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/public-encrypt/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } + "license": "MIT" }, "node_modules/punycode": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, - "node_modules/puppeteer": { - "version": "13.7.0", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-13.7.0.tgz", - "integrity": "sha512-U1uufzBjz3+PkpCxFrWzh4OrMIdIb2ztzCu0YEPfRHjHswcSwHZswnK+WdsOQJsRV8WeTg3jLhJR4D867+fjsA==", - "deprecated": "< 19.4.0 is no longer supported", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "cross-fetch": "3.1.5", - "debug": "4.3.4", - "devtools-protocol": "0.0.981744", - "extract-zip": "2.0.1", - "https-proxy-agent": "5.0.1", - "pkg-dir": "4.2.0", - "progress": "2.0.3", - "proxy-from-env": "1.1.0", - "rimraf": "3.0.2", - "tar-fs": "2.1.1", - "unbzip2-stream": "1.4.3", - "ws": "8.5.0" - }, - "engines": { - "node": ">=10.18.1" - } - }, - "node_modules/puppeteer/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/puppeteer/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/puppeteer/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "node_modules/punycode.js": { + "version": "2.3.1", "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, + "license": "MIT", "engines": { "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/puppeteer/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/puppeteer/node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" } }, "node_modules/pure-rand": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.2.tgz", - "integrity": "sha512-6Yg0ekpKICSjPswYOuC5sku/TSWaRYlA0qsXqJgM/d/4pLPHPuTxK7Nbf7jFKzAeedUhR8C7K9Uv63FBsSo8xQ==", + "version": "6.0.4", "dev": true, "funding": [ { @@ -13733,13 +11087,13 @@ "type": "opencollective", "url": "https://opencollective.com/fast-check" } - ] + ], + "license": "MIT" }, "node_modules/q": { "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.6.0", "teleport": ">=0.2.0" @@ -13747,18 +11101,16 @@ }, "node_modules/qjobs": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", - "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.9" } }, "node_modules/qs": { "version": "6.11.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", - "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "side-channel": "^1.0.4" }, @@ -13771,9 +11123,8 @@ }, "node_modules/query-string": { "version": "6.14.1", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-6.14.1.tgz", - "integrity": "sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw==", "dev": true, + "license": "MIT", "dependencies": { "decode-uri-component": "^0.2.0", "filter-obj": "^1.1.0", @@ -13787,29 +11138,8 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==", - "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", - "dev": true, - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==", - "dev": true, - "engines": { - "node": ">=0.4.x" - } - }, "node_modules/queue-microtask": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true, "funding": [ { @@ -13824,50 +11154,37 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/quick-lru": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", - "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/randombytes": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", "dev": true, + "license": "MIT", "dependencies": { - "randombytes": "^2.0.5", "safe-buffer": "^5.1.0" } }, "node_modules/range-parser": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/raw-body": { "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", "dev": true, + "license": "MIT", "dependencies": { "bytes": "3.1.2", "http-errors": "2.0.0", @@ -13879,10 +11196,9 @@ } }, "node_modules/react": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", - "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "version": "18.3.1", "dev": true, + "license": "MIT", "dependencies": { "loose-envify": "^1.1.0" }, @@ -13892,15 +11208,13 @@ }, "node_modules/react-is": { "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/read": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", - "integrity": "sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ==", "dev": true, + "license": "ISC", "dependencies": { "mute-stream": "~0.0.4" }, @@ -13910,15 +11224,13 @@ }, "node_modules/read-cmd-shim": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-2.0.0.tgz", - "integrity": "sha512-HJpV9bQpkl6KwjxlJcBoqu9Ba0PQg8TqSNIOrulGt54a0uup0HtevreFHzYzkm0lpnleRdNBzXznKrgxglEHQw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/read-package-json": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-3.0.1.tgz", - "integrity": "sha512-aLcPqxovhJTVJcsnROuuzQvv6oziQx4zd3JvG0vGCL5MjTONUc4uJ90zCBC6R7W7oUKBNoR/F8pkyfVwlbxqng==", "dev": true, + "license": "ISC", "dependencies": { "glob": "^7.1.1", "json-parse-even-better-errors": "^2.3.0", @@ -13931,9 +11243,8 @@ }, "node_modules/read-package-json-fast": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz", - "integrity": "sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ==", "dev": true, + "license": "ISC", "dependencies": { "json-parse-even-better-errors": "^2.3.0", "npm-normalize-package-bin": "^1.0.1" @@ -13944,10 +11255,8 @@ }, "node_modules/read-package-tree": { "version": "5.3.1", - "resolved": "https://registry.npmjs.org/read-package-tree/-/read-package-tree-5.3.1.tgz", - "integrity": "sha512-mLUDsD5JVtlZxjSlPPx1RETkNjjvQYuweKwNVt1Sn8kP5Jh44pvYuUHCp6xSVDZWbNxVxG5lyZJ921aJH61sTw==", - "deprecated": "The functionality that this package provided is now in @npmcli/arborist", "dev": true, + "license": "ISC", "dependencies": { "read-package-json": "^2.0.0", "readdir-scoped-modules": "^1.0.0", @@ -13956,15 +11265,13 @@ }, "node_modules/read-package-tree/node_modules/hosted-git-info": { "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/read-package-tree/node_modules/normalize-package-data": { "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "hosted-git-info": "^2.1.4", "resolve": "^1.10.0", @@ -13974,9 +11281,8 @@ }, "node_modules/read-package-tree/node_modules/read-package-json": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.2.tgz", - "integrity": "sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA==", "dev": true, + "license": "ISC", "dependencies": { "glob": "^7.1.1", "json-parse-even-better-errors": "^2.3.0", @@ -13985,19 +11291,17 @@ } }, "node_modules/read-package-tree/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "version": "5.7.2", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver" } }, "node_modules/read-pkg": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", "dev": true, + "license": "MIT", "dependencies": { "load-json-file": "^4.0.0", "normalize-package-data": "^2.3.2", @@ -14009,9 +11313,8 @@ }, "node_modules/read-pkg-up": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==", "dev": true, + "license": "MIT", "dependencies": { "find-up": "^2.0.0", "read-pkg": "^3.0.0" @@ -14022,9 +11325,8 @@ }, "node_modules/read-pkg-up/node_modules/find-up": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^2.0.0" }, @@ -14034,9 +11336,8 @@ }, "node_modules/read-pkg-up/node_modules/locate-path": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^2.0.0", "path-exists": "^3.0.0" @@ -14047,9 +11348,8 @@ }, "node_modules/read-pkg-up/node_modules/p-limit": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "dev": true, + "license": "MIT", "dependencies": { "p-try": "^1.0.0" }, @@ -14059,9 +11359,8 @@ }, "node_modules/read-pkg-up/node_modules/p-locate": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^1.1.0" }, @@ -14071,33 +11370,29 @@ }, "node_modules/read-pkg-up/node_modules/p-try": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/read-pkg-up/node_modules/path-exists": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/read-pkg/node_modules/hosted-git-info": { "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/read-pkg/node_modules/load-json-file": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.1.2", "parse-json": "^4.0.0", @@ -14110,9 +11405,8 @@ }, "node_modules/read-pkg/node_modules/normalize-package-data": { "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "hosted-git-info": "^2.1.4", "resolve": "^1.10.0", @@ -14122,9 +11416,8 @@ }, "node_modules/read-pkg/node_modules/parse-json": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", "dev": true, + "license": "MIT", "dependencies": { "error-ex": "^1.3.1", "json-parse-better-errors": "^1.0.1" @@ -14135,9 +11428,8 @@ }, "node_modules/read-pkg/node_modules/path-type": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, + "license": "MIT", "dependencies": { "pify": "^3.0.0" }, @@ -14147,35 +11439,32 @@ }, "node_modules/read-pkg/node_modules/pify": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/read-pkg/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "version": "5.7.2", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver" } }, "node_modules/read-pkg/node_modules/strip-bom": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/readable-stream": { "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -14187,10 +11476,8 @@ }, "node_modules/readdir-scoped-modules": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz", - "integrity": "sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==", - "deprecated": "This functionality has been moved to @npmcli/fs", "dev": true, + "license": "ISC", "dependencies": { "debuglog": "^1.0.1", "dezalgo": "^1.0.0", @@ -14200,9 +11487,8 @@ }, "node_modules/readdirp": { "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, + "license": "MIT", "dependencies": { "picomatch": "^2.2.1" }, @@ -14212,9 +11498,8 @@ }, "node_modules/rechoir": { "version": "0.8.0", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", - "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", "dev": true, + "license": "MIT", "dependencies": { "resolve": "^1.20.0" }, @@ -14224,9 +11509,8 @@ }, "node_modules/redent": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", "dev": true, + "license": "MIT", "dependencies": { "indent-string": "^4.0.0", "strip-indent": "^3.0.0" @@ -14235,22 +11519,40 @@ "node": ">=8" } }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "globalthis": "^1.0.3", + "which-builtin-type": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "version": "0.14.0", "dev": true, + "license": "MIT", "peer": true }, "node_modules/regexp.prototype.flags": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz", - "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==", + "version": "1.5.1", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", - "functions-have-names": "^1.2.3" + "set-function-name": "^2.0.0" }, "engines": { "node": ">= 0.4" @@ -14261,9 +11563,8 @@ }, "node_modules/regexpp": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -14271,24 +11572,10 @@ "url": "https://github.com/sponsors/mysticatea" } }, - "node_modules/release-zalgo": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", - "integrity": "sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA==", - "dev": true, - "dependencies": { - "es6-error": "^4.0.1" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/request": { "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", "dev": true, + "license": "Apache-2.0", "dependencies": { "aws-sign2": "~0.7.0", "aws4": "^1.8.0", @@ -14317,51 +11604,31 @@ }, "node_modules/request/node_modules/qs": { "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.6" } }, - "node_modules/request/node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "dev": true, - "bin": { - "uuid": "bin/uuid" - } - }, "node_modules/require-directory": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, "node_modules/requires-port": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/resolve": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "version": "1.22.8", "dev": true, + "license": "MIT", "dependencies": { - "is-core-module": "^2.11.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -14374,9 +11641,8 @@ }, "node_modules/resolve-cwd": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", "dev": true, + "license": "MIT", "dependencies": { "resolve-from": "^5.0.0" }, @@ -14386,36 +11652,32 @@ }, "node_modules/resolve-cwd/node_modules/resolve-from": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/resolve-from": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/resolve.exports": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", - "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" } }, "node_modules/restore-cursor": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "dev": true, + "license": "MIT", "dependencies": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" @@ -14426,18 +11688,16 @@ }, "node_modules/retry": { "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4" } }, "node_modules/reusify": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true, + "license": "MIT", "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -14445,15 +11705,13 @@ }, "node_modules/rfdc": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", - "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/rimraf": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, + "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -14464,28 +11722,28 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } + "node_modules/ripple-address-codec": { + "resolved": "packages/ripple-address-codec", + "link": true + }, + "node_modules/ripple-binary-codec": { + "resolved": "packages/ripple-binary-codec", + "link": true + }, + "node_modules/ripple-keypairs": { + "resolved": "packages/ripple-keypairs", + "link": true }, "node_modules/run-async": { "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.12.0" } }, "node_modules/run-parallel": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, "funding": [ { @@ -14501,15 +11759,20 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "queue-microtask": "^1.2.2" } }, + "node_modules/run-s": { + "version": "0.0.0", + "dev": true, + "license": "MIT" + }, "node_modules/rxjs": { "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", "dev": true, + "license": "Apache-2.0", "dependencies": { "tslib": "^1.9.0" }, @@ -14518,13 +11781,12 @@ } }, "node_modules/safe-array-concat": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.0.tgz", - "integrity": "sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==", + "version": "1.0.1", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", + "get-intrinsic": "^1.2.1", "has-symbols": "^1.0.3", "isarray": "^2.0.5" }, @@ -14537,8 +11799,7 @@ }, "node_modules/safe-buffer": { "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, "funding": [ { "type": "github", @@ -14552,13 +11813,13 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/safe-regex-test": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.1.3", @@ -14570,15 +11831,13 @@ }, "node_modules/safer-buffer": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/schema-utils": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.2.tgz", - "integrity": "sha512-pvjEHOgWc9OWA/f/DE3ohBWTD6EleVLf7iFUkoSwAxttdBhB9QUebQgxER2kWueOvRJXPHNnyrvvh9eZINB8Eg==", + "version": "3.3.0", "dev": true, + "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", @@ -14593,10 +11852,9 @@ } }, "node_modules/semver": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", - "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", + "version": "7.5.4", "dev": true, + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -14609,9 +11867,8 @@ }, "node_modules/semver/node_modules/lru-cache": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -14621,54 +11878,58 @@ }, "node_modules/semver/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/serialize-javascript": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", - "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", + "version": "6.0.2", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "randombytes": "^2.1.0" } }, "node_modules/set-blocking": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "dev": true - }, - "node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", - "dev": true + "dev": true, + "license": "ISC" }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true + "node_modules/set-function-length": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.1", + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } }, - "node_modules/sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "node_modules/set-function-name": { + "version": "2.0.1", + "dev": true, + "license": "MIT", "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "define-data-property": "^1.0.1", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.0" }, - "bin": { - "sha.js": "bin.js" + "engines": { + "node": ">= 0.4" } }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "dev": true, + "license": "ISC" + }, "node_modules/shallow-clone": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", "dev": true, + "license": "MIT", "dependencies": { "kind-of": "^6.0.2" }, @@ -14678,9 +11939,8 @@ }, "node_modules/shebang-command": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, + "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" }, @@ -14690,39 +11950,33 @@ }, "node_modules/shebang-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/shell-quote": { "version": "1.8.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", - "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/shiki": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.14.2.tgz", - "integrity": "sha512-ltSZlSLOuSY0M0Y75KA+ieRaZ0Trf5Wl3gutE7jzLuIcWxLp5i/uEnLoQWNvgKXQ5OMpGkJnVMRLAuzjc0LJ2A==", + "version": "1.10.3", "dev": true, + "license": "MIT", "dependencies": { - "ansi-sequence-parser": "^1.1.0", - "jsonc-parser": "^3.2.0", - "vscode-oniguruma": "^1.7.0", - "vscode-textmate": "^8.0.0" + "@shikijs/core": "1.10.3", + "@types/hast": "^3.0.4" } }, "node_modules/side-channel": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.0", "get-intrinsic": "^1.0.2", @@ -14734,19 +11988,17 @@ }, "node_modules/signal-exit": { "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/sirv": { - "version": "1.0.19", - "resolved": "https://registry.npmjs.org/sirv/-/sirv-1.0.19.tgz", - "integrity": "sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ==", + "version": "2.0.3", "dev": true, + "license": "MIT", "dependencies": { "@polka/url": "^1.0.0-next.20", "mrmime": "^1.0.0", - "totalist": "^1.0.0" + "totalist": "^3.0.0" }, "engines": { "node": ">= 10" @@ -14754,69 +12006,63 @@ }, "node_modules/sisteransi": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/slash": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/slide": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", - "integrity": "sha512-NwrtjCg+lZoqhFU8fOwl4ay2ei8PaqCBOUV3/ektPY9trO1yQ1oXEfmHAhKArUVUr/hOHvy5f6AdP17dCM0zMw==", "dev": true, + "license": "ISC", "engines": { "node": "*" } }, "node_modules/smart-buffer": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 6.0.0", "npm": ">= 3.0.0" } }, "node_modules/socket.io": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.6.1.tgz", - "integrity": "sha512-KMcaAi4l/8+xEjkRICl6ak8ySoxsYG+gG6/XfRCPJPQ/haCRIJBTL4wIl8YCsmtaBovcAXGLOShyVWQ/FG8GZA==", + "version": "4.7.2", "dev": true, + "license": "MIT", "dependencies": { "accepts": "~1.3.4", "base64id": "~2.0.0", + "cors": "~2.8.5", "debug": "~4.3.2", - "engine.io": "~6.4.1", + "engine.io": "~6.5.2", "socket.io-adapter": "~2.5.2", - "socket.io-parser": "~4.2.1" + "socket.io-parser": "~4.2.4" }, "engines": { - "node": ">=10.0.0" + "node": ">=10.2.0" } }, "node_modules/socket.io-adapter": { "version": "2.5.2", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.2.tgz", - "integrity": "sha512-87C3LO/NOMc+eMcpcxUBebGjkpMDkNBS9tf7KJqcDsmL936EChtVva71Dw2q4tQcuVC+hAUy4an2NO/sYXmwRA==", "dev": true, + "license": "MIT", "dependencies": { "ws": "~8.11.0" } }, "node_modules/socket.io-adapter/node_modules/ws": { "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", - "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", "dev": true, + "license": "MIT", "engines": { "node": ">=10.0.0" }, @@ -14834,10 +12080,9 @@ } }, "node_modules/socket.io-parser": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.2.tgz", - "integrity": "sha512-DJtziuKypFkMMHCm2uIshOYC7QaylbtzQwiMYDuCKy3OPkjLzu4B2vAhTlqipRHHzrI0NJeBAizTK7X+6m1jVw==", + "version": "4.2.4", "dev": true, + "license": "MIT", "dependencies": { "@socket.io/component-emitter": "~3.1.0", "debug": "~4.3.1" @@ -14848,9 +12093,8 @@ }, "node_modules/socks": { "version": "2.7.1", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", - "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", "dev": true, + "license": "MIT", "dependencies": { "ip": "^2.0.0", "smart-buffer": "^4.2.0" @@ -14862,9 +12106,8 @@ }, "node_modules/socks-proxy-agent": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.1.tgz", - "integrity": "sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ==", "dev": true, + "license": "MIT", "dependencies": { "agent-base": "^6.0.2", "debug": "4", @@ -14876,9 +12119,8 @@ }, "node_modules/sort-keys": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-4.2.0.tgz", - "integrity": "sha512-aUYIEU/UviqPgc8mHR6IW1EGxkAXpeRETYcrzg8cLAvUPZcpAlleSXHV2mY7G12GphSH6Gzv+4MMVSSkbdteHg==", "dev": true, + "license": "MIT", "dependencies": { "is-plain-obj": "^2.0.0" }, @@ -14891,57 +12133,51 @@ }, "node_modules/sort-keys/node_modules/is-plain-obj": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/source-map-js": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/source-map-loader": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.2.tgz", - "integrity": "sha512-BokxPoLjyl3iOrgkWaakaxqnelAJSS+0V+De0kKIq6lyWrXuiPgYTGp6z3iHmqljKAaLXwZa+ctD8GccRJeVvg==", + "version": "5.0.0", "dev": true, + "license": "MIT", "dependencies": { - "abab": "^2.0.5", "iconv-lite": "^0.6.3", - "source-map-js": "^1.0.1" + "source-map-js": "^1.0.2" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 18.12.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { - "webpack": "^5.0.0" + "webpack": "^5.72.1" } }, "node_modules/source-map-loader/node_modules/iconv-lite": { "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, + "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" }, @@ -14951,36 +12187,17 @@ }, "node_modules/source-map-support": { "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, + "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, - "node_modules/spawn-wrap": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", - "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", - "dev": true, - "dependencies": { - "foreground-child": "^2.0.0", - "is-windows": "^1.0.2", - "make-dir": "^3.0.0", - "rimraf": "^3.0.0", - "signal-exit": "^3.0.2", - "which": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/spdx-correct": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", - "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "node_modules/spdx-correct": { + "version": "3.2.0", "dev": true, + "license": "Apache-2.0", "dependencies": { "spdx-expression-parse": "^3.0.0", "spdx-license-ids": "^3.0.0" @@ -14988,15 +12205,13 @@ }, "node_modules/spdx-exceptions": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true + "dev": true, + "license": "CC-BY-3.0" }, "node_modules/spdx-expression-parse": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "dev": true, + "license": "MIT", "dependencies": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" @@ -15004,15 +12219,13 @@ }, "node_modules/spdx-license-ids": { "version": "3.0.13", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", - "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==", - "dev": true + "dev": true, + "license": "CC0-1.0" }, "node_modules/split": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", - "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", "dev": true, + "license": "MIT", "dependencies": { "through": "2" }, @@ -15022,33 +12235,29 @@ }, "node_modules/split-on-first": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", - "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/split2": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", - "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", "dev": true, + "license": "ISC", "dependencies": { "readable-stream": "^3.0.0" } }, "node_modules/sprintf-js": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/sshpk": { "version": "1.17.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", - "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", "dev": true, + "license": "MIT", "dependencies": { "asn1": "~0.2.3", "assert-plus": "^1.0.0", @@ -15071,9 +12280,8 @@ }, "node_modules/ssri": { "version": "8.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", - "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", "dev": true, + "license": "ISC", "dependencies": { "minipass": "^3.1.1" }, @@ -15083,9 +12291,8 @@ }, "node_modules/stack-utils": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", - "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", "dev": true, + "license": "MIT", "dependencies": { "escape-string-regexp": "^2.0.0" }, @@ -15095,62 +12302,24 @@ }, "node_modules/stack-utils/node_modules/escape-string-regexp": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/statuses": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, - "node_modules/stop-iteration-iterator": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", - "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", - "dev": true, - "peer": true, - "dependencies": { - "internal-slot": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/stream-browserify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", - "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", - "dev": true, - "dependencies": { - "inherits": "~2.0.4", - "readable-stream": "^3.5.0" - } - }, - "node_modules/stream-http": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.2.0.tgz", - "integrity": "sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==", - "dev": true, - "dependencies": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "xtend": "^4.0.2" - } - }, "node_modules/streamroller": { "version": "3.1.5", - "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.5.tgz", - "integrity": "sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==", "dev": true, + "license": "MIT", "dependencies": { "date-format": "^4.0.14", "debug": "^4.3.4", @@ -15162,9 +12331,8 @@ }, "node_modules/streamroller/node_modules/fs-extra": { "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", @@ -15176,44 +12344,40 @@ }, "node_modules/streamroller/node_modules/jsonfile": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", "dev": true, + "license": "MIT", "optionalDependencies": { "graceful-fs": "^4.1.6" } }, "node_modules/streamroller/node_modules/universalify": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4.0.0" } }, "node_modules/strict-uri-encode": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", - "integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/string_decoder": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "~5.2.0" } }, "node_modules/string-length": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", "dev": true, + "license": "MIT", "dependencies": { "char-regex": "^1.0.2", "strip-ansi": "^6.0.0" @@ -15222,17 +12386,10 @@ "node": ">=10" } }, - "node_modules/string-range": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/string-range/-/string-range-1.2.2.tgz", - "integrity": "sha512-tYft6IFi8SjplJpxCUxyqisD3b+R2CSkomrtJYCkvuf1KuCAWgz7YXt4O0jip7efpfCemwHEzTEAO8EuOYgh3w==", - "dev": true - }, "node_modules/string-width": { "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -15244,24 +12401,22 @@ }, "node_modules/string-width/node_modules/emoji-regex": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/string.prototype.matchall": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz", - "integrity": "sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==", + "version": "4.0.9", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "regexp.prototype.flags": "^1.4.3", + "internal-slot": "^1.0.5", + "regexp.prototype.flags": "^1.5.0", "side-channel": "^1.0.4" }, "funding": { @@ -15270,9 +12425,8 @@ }, "node_modules/string.prototype.padend": { "version": "3.1.4", - "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.4.tgz", - "integrity": "sha512-67otBXoksdjsnXXRUq+KMVTdlVRZ2af422Y0aTyTjVaoQkGr3mxl2Bc5emi7dOQ3OGVVQQskmLEWwFXwommpNw==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", @@ -15286,14 +12440,13 @@ } }, "node_modules/string.prototype.trim": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz", - "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==", + "version": "1.2.8", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "engines": { "node": ">= 0.4" @@ -15303,28 +12456,26 @@ } }, "node_modules/string.prototype.trimend": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", - "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "version": "1.0.7", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimstart": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", - "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "version": "1.0.7", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -15332,9 +12483,8 @@ }, "node_modules/strip-ansi": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -15344,27 +12494,24 @@ }, "node_modules/strip-bom": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/strip-final-newline": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/strip-indent": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", - "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", "dev": true, + "license": "MIT", "dependencies": { "min-indent": "^1.0.0" }, @@ -15374,9 +12521,8 @@ }, "node_modules/strip-json-comments": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -15386,9 +12532,8 @@ }, "node_modules/strong-log-transformer": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/strong-log-transformer/-/strong-log-transformer-2.1.0.tgz", - "integrity": "sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA==", "dev": true, + "license": "Apache-2.0", "dependencies": { "duplexer": "^0.1.1", "minimist": "^1.2.0", @@ -15403,9 +12548,8 @@ }, "node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -15415,9 +12559,8 @@ }, "node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -15427,18 +12570,16 @@ }, "node_modules/tapable": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/tar": { "version": "6.1.15", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.15.tgz", - "integrity": "sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A==", "dev": true, + "license": "ISC", "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", @@ -15451,69 +12592,31 @@ "node": ">=10" } }, - "node_modules/tar-fs": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", - "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", - "dev": true, - "dependencies": { - "chownr": "^1.1.1", - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^2.1.4" - } - }, - "node_modules/tar-fs/node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true - }, - "node_modules/tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "dev": true, - "dependencies": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/tar/node_modules/minipass": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", "dev": true, + "license": "ISC", "engines": { "node": ">=8" } }, "node_modules/tar/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/temp-dir": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz", - "integrity": "sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/temp-write": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/temp-write/-/temp-write-4.0.0.tgz", - "integrity": "sha512-HIeWmj77uOOHb0QX7siN3OtwV3CTntquin6TNVg6SHOqCP3hYKmox90eeFOGaY1MqJ9WYDDjkyZrW6qS5AWpbw==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.1.15", "is-stream": "^2.0.0", @@ -15525,24 +12628,35 @@ "node": ">=8" } }, - "node_modules/temp-write/node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "node_modules/temp-write/node_modules/make-dir": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/temp-write/node_modules/semver": { + "version": "6.3.1", "dev": true, + "license": "ISC", "bin": { - "uuid": "bin/uuid" + "semver": "bin/semver.js" } }, "node_modules/terser": { - "version": "5.17.4", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.17.4.tgz", - "integrity": "sha512-jcEKZw6UPrgugz/0Tuk/PVyLAPfMBJf5clnGueo45wTweoV8yh7Q7PEkhkJ5uuUbC7zAxEcG3tqNr1bstkQ8nw==", + "version": "5.27.0", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", "commander": "^2.20.0", "source-map-support": "~0.5.20" }, @@ -15554,16 +12668,15 @@ } }, "node_modules/terser-webpack-plugin": { - "version": "5.3.8", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.8.tgz", - "integrity": "sha512-WiHL3ElchZMsK27P8uIUh4604IgJyAW47LVXGbEoB21DbQcZ+OuMpGjVYnEUaqcWM6dO8uS2qUbA7LSCWqvsbg==", + "version": "5.3.10", "dev": true, + "license": "MIT", "dependencies": { - "@jridgewell/trace-mapping": "^0.3.17", + "@jridgewell/trace-mapping": "^0.3.20", "jest-worker": "^27.4.5", "schema-utils": "^3.1.1", "serialize-javascript": "^6.0.1", - "terser": "^5.16.8" + "terser": "^5.26.0" }, "engines": { "node": ">= 10.13.0" @@ -15589,9 +12702,8 @@ }, "node_modules/terser-webpack-plugin/node_modules/jest-worker": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", @@ -15603,9 +12715,8 @@ }, "node_modules/terser-webpack-plugin/node_modules/supports-color": { "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -15618,9 +12729,8 @@ }, "node_modules/test-exclude": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", "dev": true, + "license": "ISC", "dependencies": { "@istanbuljs/schema": "^0.1.2", "glob": "^7.1.4", @@ -15632,30 +12742,26 @@ }, "node_modules/text-extensions": { "version": "1.9.0", - "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", - "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10" } }, "node_modules/text-table": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/through": { "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/through2": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "dev": true, + "license": "MIT", "dependencies": { "readable-stream": "~2.3.6", "xtend": "~4.0.1" @@ -15663,15 +12769,13 @@ }, "node_modules/through2/node_modules/isarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/through2/node_modules/readable-stream": { "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -15684,84 +12788,34 @@ }, "node_modules/through2/node_modules/safe-buffer": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/through2/node_modules/string_decoder": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "~5.1.0" } }, - "node_modules/timers-browserify": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", - "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", - "dev": true, - "dependencies": { - "setimmediate": "^1.0.4" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/tiny-secp256k1": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/tiny-secp256k1/-/tiny-secp256k1-1.1.6.tgz", - "integrity": "sha512-FmqJZGduTyvsr2cF3375fqGHUovSwDi/QytexX1Se4BPuPZpTE5Ftp5fg+EFSuEf3lhZqgCRjEG3ydUQ/aNiwA==", - "hasInstallScript": true, - "dependencies": { - "bindings": "^1.3.0", - "bn.js": "^4.11.8", - "create-hmac": "^1.1.7", - "elliptic": "^6.4.0", - "nan": "^2.13.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/tiny-secp256k1/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.0" - } - }, "node_modules/tmpl": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/to-fast-properties": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/to-regex-range": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, + "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -15771,27 +12825,24 @@ }, "node_modules/toidentifier": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.6" } }, "node_modules/totalist": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/totalist/-/totalist-1.1.0.tgz", - "integrity": "sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==", + "version": "3.0.1", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/tough-cookie": { "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "psl": "^1.1.28", "punycode": "^2.1.1" @@ -15802,9 +12853,8 @@ }, "node_modules/tr46": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", "dev": true, + "license": "MIT", "dependencies": { "punycode": "^2.1.1" }, @@ -15814,18 +12864,16 @@ }, "node_modules/trim-newlines": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", - "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/ts-jest": { - "version": "29.1.0", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.0.tgz", - "integrity": "sha512-ZhNr7Z4PcYa+JjMl62ir+zPiNJfXJN6E8hSLnaUKhOgqcn8vb3e537cpkd0FuAfRK3sR1LSqM1MOhliXNgOFPA==", + "version": "29.1.4", "dev": true, + "license": "MIT", "dependencies": { "bs-logger": "0.x", "fast-json-stable-stringify": "2.x", @@ -15833,17 +12881,18 @@ "json5": "^2.2.3", "lodash.memoize": "4.x", "make-error": "1.x", - "semver": "7.x", + "semver": "^7.5.3", "yargs-parser": "^21.0.1" }, "bin": { "ts-jest": "cli.js" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0" }, "peerDependencies": { "@babel/core": ">=7.0.0-beta.0 <8", + "@jest/transform": "^29.0.0", "@jest/types": "^29.0.0", "babel-jest": "^29.0.0", "jest": "^29.0.0", @@ -15853,6 +12902,9 @@ "@babel/core": { "optional": true }, + "@jest/transform": { + "optional": true + }, "@jest/types": { "optional": true }, @@ -15866,23 +12918,22 @@ }, "node_modules/ts-jest/node_modules/yargs-parser": { "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, + "license": "ISC", "engines": { "node": ">=12" } }, "node_modules/ts-loader": { - "version": "9.4.2", - "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.4.2.tgz", - "integrity": "sha512-OmlC4WVmFv5I0PpaxYb+qGeGOdm5giHU7HwDDUjw59emP2UYMHy9fFSDcYgSNoH8sXcj4hGCSEhlDZ9ULeDraA==", + "version": "9.5.1", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^4.1.0", "enhanced-resolve": "^5.0.0", "micromatch": "^4.0.0", - "semver": "^7.3.4" + "semver": "^7.3.4", + "source-map": "^0.7.4" }, "engines": { "node": ">=12.0.0" @@ -15892,11 +12943,17 @@ "webpack": "^5.0.0" } }, - "node_modules/ts-node": { - "version": "10.9.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", - "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "node_modules/ts-loader/node_modules/source-map": { + "version": "0.7.4", "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">= 8" + } + }, + "node_modules/ts-node": { + "version": "10.9.2", + "license": "MIT", "dependencies": { "@cspotcode/source-map-support": "^0.8.0", "@tsconfig/node10": "^1.0.7", @@ -15936,10 +12993,9 @@ } }, "node_modules/tsconfig-paths": { - "version": "3.14.2", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", - "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", + "version": "3.15.0", "dev": true, + "license": "MIT", "dependencies": { "@types/json5": "^0.0.29", "json5": "^1.0.2", @@ -15949,9 +13005,8 @@ }, "node_modules/tsconfig-paths/node_modules/json5": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "dev": true, + "license": "MIT", "dependencies": { "minimist": "^1.2.0" }, @@ -15961,24 +13016,21 @@ }, "node_modules/tsconfig-paths/node_modules/strip-bom": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/tslib": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true + "dev": true, + "license": "0BSD" }, "node_modules/tsutils": { "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", "dev": true, + "license": "MIT", "dependencies": { "tslib": "^1.8.1" }, @@ -15989,17 +13041,10 @@ "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" } }, - "node_modules/tty-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", - "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", - "dev": true - }, "node_modules/tunnel-agent": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", "dev": true, + "license": "Apache-2.0", "dependencies": { "safe-buffer": "^5.0.1" }, @@ -16009,15 +13054,13 @@ }, "node_modules/tweetnacl": { "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", - "dev": true + "dev": true, + "license": "Unlicense" }, "node_modules/type-check": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1" }, @@ -16027,18 +13070,16 @@ }, "node_modules/type-detect": { "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/type-fest": { "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -16048,9 +13089,8 @@ }, "node_modules/type-is": { "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", "dev": true, + "license": "MIT", "dependencies": { "media-typer": "0.3.0", "mime-types": "~2.1.24" @@ -16059,11 +13099,58 @@ "node": ">= 0.6" } }, + "node_modules/typed-array-buffer": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/typed-array-length": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", - "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "for-each": "^0.3.3", @@ -16075,86 +13162,84 @@ }, "node_modules/typedarray": { "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/typedarray-to-buffer": { "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", "dev": true, + "license": "MIT", "dependencies": { "is-typedarray": "^1.0.0" } }, "node_modules/typedoc": { - "version": "0.23.28", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.23.28.tgz", - "integrity": "sha512-9x1+hZWTHEQcGoP7qFmlo4unUoVJLB0H/8vfO/7wqTnZxg4kPuji9y3uRzEu0ZKez63OJAUmiGhUrtukC6Uj3w==", + "version": "0.26.3", "dev": true, + "license": "Apache-2.0", "dependencies": { "lunr": "^2.3.9", - "marked": "^4.2.12", - "minimatch": "^7.1.3", - "shiki": "^0.14.1" + "markdown-it": "^14.1.0", + "minimatch": "^9.0.5", + "shiki": "^1.9.1", + "yaml": "^2.4.5" }, "bin": { "typedoc": "bin/typedoc" }, "engines": { - "node": ">= 14.14" + "node": ">= 18" }, "peerDependencies": { - "typescript": "4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x" + "typescript": "4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x" } }, "node_modules/typedoc/node_modules/brace-expansion": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/typedoc/node_modules/minimatch": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.6.tgz", - "integrity": "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==", + "version": "9.0.5", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=10" + "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/typeforce": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/typeforce/-/typeforce-1.18.0.tgz", - "integrity": "sha512-7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g==" + "node_modules/typedoc/node_modules/yaml": { + "version": "2.4.5", + "dev": true, + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } }, "node_modules/typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", - "dev": true, + "version": "5.2.2", + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" }, "engines": { - "node": ">=4.2.0" + "node": ">=14.17" } }, "node_modules/ua-parser-js": { "version": "0.7.35", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.35.tgz", - "integrity": "sha512-veRf7dawaj9xaWEu9HoTVn5Pggtc/qj+kqTOFvNiN1l0YdxwC1kvel57UCjThjGa3BHBihE8/UJAHI+uQHmd/g==", "dev": true, "funding": [ { @@ -16166,15 +13251,20 @@ "url": "https://paypal.me/faisalman" } ], + "license": "MIT", "engines": { "node": "*" } }, + "node_modules/uc.micro": { + "version": "2.1.0", + "dev": true, + "license": "MIT" + }, "node_modules/uglify-js": { "version": "3.17.4", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", - "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", "dev": true, + "license": "BSD-2-Clause", "optional": true, "bin": { "uglifyjs": "bin/uglifyjs" @@ -16185,24 +13275,21 @@ }, "node_modules/uid-number": { "version": "0.0.6", - "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz", - "integrity": "sha512-c461FXIljswCuscZn67xq9PpszkPT6RjheWFQTgCyabJrTUozElanb0YEqv2UGgk247YpcJkFBuSGNvBlpXM9w==", "dev": true, + "license": "ISC", "engines": { "node": "*" } }, "node_modules/umask": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/umask/-/umask-1.1.0.tgz", - "integrity": "sha512-lE/rxOhmiScJu9L6RTNVgB/zZbF+vGC0/p6D3xnkAePI2o0sMyFG966iR5Ki50OI/0mNi2yaRnxfLsPmEZF/JA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/unbox-primitive": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "has-bigints": "^1.0.2", @@ -16213,105 +13300,66 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/unbzip2-stream": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", - "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", - "dev": true, - "dependencies": { - "buffer": "^5.2.1", - "through": "^2.3.8" - } - }, - "node_modules/unbzip2-stream/node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } + "node_modules/undici-types": { + "version": "5.26.5", + "license": "MIT" }, "node_modules/unique-filename": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", "dev": true, + "license": "ISC", "dependencies": { "unique-slug": "^2.0.0" } }, "node_modules/unique-slug": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", "dev": true, + "license": "ISC", "dependencies": { "imurmurhash": "^0.1.4" } }, "node_modules/universal-user-agent": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", - "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/universalify": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 10.0.0" } }, "node_modules/unpipe": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/untildify": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", - "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/upath": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/upath/-/upath-2.0.1.tgz", - "integrity": "sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==", "dev": true, + "license": "MIT", "engines": { "node": ">=4", "yarn": "*" } }, "node_modules/update-browserslist-db": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", - "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "version": "1.0.13", "dev": true, "funding": [ { @@ -16327,6 +13375,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { "escalade": "^3.1.1", "picocolors": "^1.0.0" @@ -16340,104 +13389,62 @@ }, "node_modules/uri-js": { "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" } }, - "node_modules/url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha512-kbailJa29QrtXnxgq+DdCEGlbTeYM2eJUxsz6vjZavrCYPMIFHMKQmSKYAIuUK2i7hgPm28a8piX5NTUtM/LKQ==", - "dev": true, - "dependencies": { - "punycode": "1.3.2", - "querystring": "0.2.0" - } - }, - "node_modules/url/node_modules/punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==", - "dev": true - }, - "node_modules/util": { - "version": "0.12.5", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", - "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", - "dependencies": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "which-typed-array": "^1.1.2" - } - }, "node_modules/util-deprecate": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + "dev": true, + "license": "MIT" }, "node_modules/util-promisify": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/util-promisify/-/util-promisify-2.1.0.tgz", - "integrity": "sha512-K+5eQPYs14b3+E+hmE2J6gCZ4JmMl9DbYS6BeP2CHq6WMuNxErxf5B/n0fz85L8zUuoO6rIzNNmIQDu/j+1OcA==", "dev": true, + "license": "MIT", "dependencies": { "object.getownpropertydescriptors": "^2.0.3" } }, "node_modules/utils-merge": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4.0" } }, "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "version": "3.4.0", "dev": true, + "license": "MIT", "bin": { - "uuid": "dist/bin/uuid" + "uuid": "bin/uuid" } }, "node_modules/v8-compile-cache-lib": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true + "license": "MIT" }, "node_modules/v8-to-istanbul": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz", - "integrity": "sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==", + "version": "9.1.2", "dev": true, + "license": "ISC", "dependencies": { "@jridgewell/trace-mapping": "^0.3.12", "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0" + "convert-source-map": "^2.0.0" }, "engines": { "node": ">=10.12.0" } }, - "node_modules/v8-to-istanbul/node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true - }, "node_modules/validate-npm-package-license": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "dev": true, + "license": "Apache-2.0", "dependencies": { "spdx-correct": "^3.0.0", "spdx-expression-parse": "^3.0.0" @@ -16445,77 +13452,53 @@ }, "node_modules/validate-npm-package-name": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", - "integrity": "sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==", "dev": true, + "license": "ISC", "dependencies": { "builtins": "^1.0.3" } }, "node_modules/vary": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/verror": { "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", "dev": true, "engines": [ "node >=0.6.0" ], + "license": "MIT", "dependencies": { "assert-plus": "^1.0.0", "core-util-is": "1.0.2", "extsprintf": "^1.2.0" } }, - "node_modules/vm-browserify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", - "dev": true - }, "node_modules/void-elements": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", - "integrity": "sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/vscode-oniguruma": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz", - "integrity": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==", - "dev": true - }, - "node_modules/vscode-textmate": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-8.0.0.tgz", - "integrity": "sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==", - "dev": true - }, "node_modules/walker": { "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", "dev": true, + "license": "Apache-2.0", "dependencies": { "makeerror": "1.0.12" } }, "node_modules/watchpack": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", - "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "version": "2.4.1", "dev": true, + "license": "MIT", "dependencies": { "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" @@ -16526,51 +13509,48 @@ }, "node_modules/wcwidth": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", "dev": true, + "license": "MIT", "dependencies": { "defaults": "^1.0.3" } }, "node_modules/webidl-conversions": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=10.4" } }, "node_modules/webpack": { - "version": "5.82.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.82.1.tgz", - "integrity": "sha512-C6uiGQJ+Gt4RyHXXYt+v9f+SN1v83x68URwgxNQ98cvH8kxiuywWGP4XeNZ1paOzZ63aY3cTciCEQJNFUljlLw==", + "version": "5.91.0", "dev": true, + "license": "MIT", "dependencies": { "@types/eslint-scope": "^3.7.3", - "@types/estree": "^1.0.0", - "@webassemblyjs/ast": "^1.11.5", - "@webassemblyjs/wasm-edit": "^1.11.5", - "@webassemblyjs/wasm-parser": "^1.11.5", + "@types/estree": "^1.0.5", + "@webassemblyjs/ast": "^1.12.1", + "@webassemblyjs/wasm-edit": "^1.12.1", + "@webassemblyjs/wasm-parser": "^1.12.1", "acorn": "^8.7.1", - "acorn-import-assertions": "^1.7.6", - "browserslist": "^4.14.5", + "acorn-import-assertions": "^1.9.0", + "browserslist": "^4.21.10", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.14.0", + "enhanced-resolve": "^5.16.0", "es-module-lexer": "^1.2.1", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.9", + "graceful-fs": "^4.2.11", "json-parse-even-better-errors": "^2.3.1", "loader-runner": "^4.2.0", "mime-types": "^2.1.27", "neo-async": "^2.6.2", - "schema-utils": "^3.1.2", + "schema-utils": "^3.2.0", "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.7", - "watchpack": "^2.4.0", + "terser-webpack-plugin": "^5.3.10", + "watchpack": "^2.4.1", "webpack-sources": "^3.2.3" }, "bin": { @@ -16590,20 +13570,21 @@ } }, "node_modules/webpack-bundle-analyzer": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.8.0.tgz", - "integrity": "sha512-ZzoSBePshOKhr+hd8u6oCkZVwpVaXgpw23ScGLFpR6SjYI7+7iIWYarjN6OEYOfRt8o7ZyZZQk0DuMizJ+LEIg==", + "version": "4.10.2", "dev": true, + "license": "MIT", "dependencies": { "@discoveryjs/json-ext": "0.5.7", "acorn": "^8.0.4", "acorn-walk": "^8.0.0", - "chalk": "^4.1.0", "commander": "^7.2.0", + "debounce": "^1.2.1", + "escape-string-regexp": "^4.0.0", "gzip-size": "^6.0.0", - "lodash": "^4.17.20", + "html-escaper": "^2.0.2", "opener": "^1.5.2", - "sirv": "^1.0.7", + "picocolors": "^1.0.0", + "sirv": "^2.0.3", "ws": "^7.3.1" }, "bin": { @@ -16615,18 +13596,16 @@ }, "node_modules/webpack-bundle-analyzer/node_modules/commander": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 10" } }, "node_modules/webpack-bundle-analyzer/node_modules/ws": { "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.3.0" }, @@ -16644,15 +13623,14 @@ } }, "node_modules/webpack-cli": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.1.1.tgz", - "integrity": "sha512-OLJwVMoXnXYH2ncNGU8gxVpUtm3ybvdioiTvHgUyBuyMLKiVvWy+QObzBsMtp5pH7qQoEuWgeEUQ/sU3ZJFzAw==", + "version": "5.1.4", "dev": true, + "license": "MIT", "dependencies": { "@discoveryjs/json-ext": "^0.5.0", - "@webpack-cli/configtest": "^2.1.0", - "@webpack-cli/info": "^2.0.1", - "@webpack-cli/serve": "^2.0.4", + "@webpack-cli/configtest": "^2.1.1", + "@webpack-cli/info": "^2.0.2", + "@webpack-cli/serve": "^2.0.5", "colorette": "^2.0.14", "commander": "^10.0.1", "cross-spawn": "^7.0.3", @@ -16690,18 +13668,16 @@ }, "node_modules/webpack-cli/node_modules/commander": { "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", "dev": true, + "license": "MIT", "engines": { "node": ">=14" } }, "node_modules/webpack-merge": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", - "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", + "version": "5.9.0", "dev": true, + "license": "MIT", "dependencies": { "clone-deep": "^4.0.1", "wildcard": "^2.0.0" @@ -16712,18 +13688,16 @@ }, "node_modules/webpack-sources": { "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", "dev": true, + "license": "MIT", "engines": { "node": ">=10.13.0" } }, "node_modules/whatwg-url": { "version": "8.7.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", - "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", "dev": true, + "license": "MIT", "dependencies": { "lodash": "^4.7.0", "tr46": "^2.1.0", @@ -16735,9 +13709,8 @@ }, "node_modules/which": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -16750,9 +13723,8 @@ }, "node_modules/which-boxed-primitive": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", "dev": true, + "license": "MIT", "dependencies": { "is-bigint": "^1.0.1", "is-boolean-object": "^1.1.0", @@ -16764,11 +13736,36 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/which-builtin-type": { + "version": "1.1.3", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "function.prototype.name": "^1.1.5", + "has-tostringtag": "^1.0.0", + "is-async-function": "^2.0.0", + "is-date-object": "^1.0.5", + "is-finalizationregistry": "^1.0.2", + "is-generator-function": "^1.0.10", + "is-regex": "^1.1.4", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/which-collection": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", - "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "is-map": "^2.0.1", @@ -16780,23 +13777,16 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/which-module": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", - "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", - "dev": true - }, "node_modules/which-typed-array": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", - "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", + "version": "1.1.13", + "dev": true, + "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", + "call-bind": "^1.0.4", "for-each": "^0.3.3", "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.10" + "has-tostringtag": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -16807,47 +13797,26 @@ }, "node_modules/wide-align": { "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^1.0.2 || 2 || 3 || 4" } }, - "node_modules/wif": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/wif/-/wif-2.0.6.tgz", - "integrity": "sha512-HIanZn1zmduSF+BQhkE+YXIbEiH0xPr1012QbFEGB0xsKqJii0/SqJjyn8dFv6y36kOznMgMB+LGcbZTJ1xACQ==", - "dependencies": { - "bs58check": "<3.0.0" - } - }, "node_modules/wildcard": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", - "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", - "dev": true - }, - "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", "dev": true, - "engines": { - "node": ">=0.10.0" - } + "license": "MIT" }, "node_modules/wordwrap": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/wrap-ansi": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -16862,15 +13831,13 @@ }, "node_modules/wrappy": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/write-file-atomic": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", - "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", "dev": true, + "license": "ISC", "dependencies": { "imurmurhash": "^0.1.4", "signal-exit": "^3.0.7" @@ -16881,9 +13848,8 @@ }, "node_modules/write-json-file": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/write-json-file/-/write-json-file-4.3.0.tgz", - "integrity": "sha512-PxiShnxf0IlnQuMYOPPhPkhExoCQuTUNPOa/2JWCYTmBquU9njyyDuwRKN26IZBlp4yn1nt+Agh2HOOBl+55HQ==", "dev": true, + "license": "MIT", "dependencies": { "detect-indent": "^6.0.0", "graceful-fs": "^4.1.15", @@ -16901,18 +13867,38 @@ }, "node_modules/write-json-file/node_modules/is-plain-obj": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/write-json-file/node_modules/make-dir": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^6.0.0" + }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/write-json-file/node_modules/semver": { + "version": "6.3.1", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" } }, "node_modules/write-json-file/node_modules/write-file-atomic": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", "dev": true, + "license": "ISC", "dependencies": { "imurmurhash": "^0.1.4", "is-typedarray": "^1.0.0", @@ -16922,9 +13908,8 @@ }, "node_modules/write-pkg": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/write-pkg/-/write-pkg-4.0.0.tgz", - "integrity": "sha512-v2UQ+50TNf2rNHJ8NyWttfm/EJUBWMJcx6ZTYZr6Qp52uuegWw/lBkCtCbnYZEmPRNL61m+u67dAmGxo+HTULA==", "dev": true, + "license": "MIT", "dependencies": { "sort-keys": "^2.0.0", "type-fest": "^0.4.1", @@ -16936,18 +13921,16 @@ }, "node_modules/write-pkg/node_modules/detect-indent": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz", - "integrity": "sha512-rlpvsxUtM0PQvy9iZe640/IWwWYyBsTApREbA1pHOpmOUIl9MkP/U4z7vTtg4Oaojvqhxt7sdufnT0EzGaR31g==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/write-pkg/node_modules/make-dir": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", "dev": true, + "license": "MIT", "dependencies": { "pify": "^4.0.1", "semver": "^5.6.0" @@ -16958,27 +13941,24 @@ }, "node_modules/write-pkg/node_modules/pify": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/write-pkg/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "version": "5.7.2", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver" } }, "node_modules/write-pkg/node_modules/sort-keys": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", - "integrity": "sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg==", "dev": true, + "license": "MIT", "dependencies": { "is-plain-obj": "^1.0.0" }, @@ -16988,18 +13968,16 @@ }, "node_modules/write-pkg/node_modules/type-fest": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.4.1.tgz", - "integrity": "sha512-IwzA/LSfD2vC1/YDYMv/zHP4rDF1usCwllsDpbolT3D4fUepIO7f9K70jjmUewU/LmGUKJcwcVtDCpnKk4BPMw==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=6" } }, "node_modules/write-pkg/node_modules/write-file-atomic": { "version": "2.4.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", - "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", "dev": true, + "license": "ISC", "dependencies": { "graceful-fs": "^4.1.11", "imurmurhash": "^0.1.4", @@ -17008,9 +13986,8 @@ }, "node_modules/write-pkg/node_modules/write-json-file": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/write-json-file/-/write-json-file-3.2.0.tgz", - "integrity": "sha512-3xZqT7Byc2uORAatYiP3DHUUAVEkNOswEWNs9H5KXiicRTvzYzYqKjYc4G7p+8pltvAw641lVByKVtMpf+4sYQ==", "dev": true, + "license": "MIT", "dependencies": { "detect-indent": "^5.0.0", "graceful-fs": "^4.1.15", @@ -17024,15 +14001,14 @@ } }, "node_modules/ws": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", - "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", + "version": "8.17.0", + "license": "MIT", "engines": { "node": ">=10.0.0" }, "peerDependencies": { "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" + "utf-8-validate": ">=5.0.2" }, "peerDependenciesMeta": { "bufferutil": { @@ -17043,44 +14019,43 @@ } } }, + "node_modules/xrpl": { + "resolved": "packages/xrpl", + "link": true + }, "node_modules/xtend": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.4" } }, "node_modules/y18n": { "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true, + "license": "ISC", "engines": { "node": ">=10" } }, "node_modules/yallist": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/yaml": { "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", "dev": true, + "license": "ISC", "engines": { "node": ">= 6" } }, "node_modules/yargs": { "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, + "license": "MIT", "dependencies": { "cliui": "^7.0.2", "escalade": "^3.1.1", @@ -17096,37 +14071,23 @@ }, "node_modules/yargs-parser": { "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", "dev": true, + "license": "ISC", "engines": { "node": ">=10" } }, - "node_modules/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", - "dev": true, - "dependencies": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, "node_modules/yn": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/yocto-queue": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -17134,13547 +14095,147 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "packages/isomorphic": { + "name": "@xrplf/isomorphic", + "version": "1.0.1", + "license": "ISC", + "dependencies": { + "@noble/hashes": "^1.0.0", + "eventemitter3": "5.0.1", + "ws": "^8.13.0" + }, + "devDependencies": { + "@types/node": "^18.18.38", + "@types/ws": "^8.5.6" + }, + "engines": { + "node": ">=18.0.0" + } + }, "packages/ripple-address-codec": { "name": "@transia/ripple-address-codec", - "version": "4.2.8-alpha.0", + "version": "5.0.0-alpha.0", "license": "ISC", "dependencies": { - "base-x": "^3.0.9", - "create-hash": "^1.1.2" + "@scure/base": "^1.1.3", + "@xrplf/isomorphic": "^1.0.0" }, "engines": { - "node": ">= 10" + "node": ">= 18" } }, "packages/ripple-binary-codec": { "name": "@transia/ripple-binary-codec", - "version": "1.4.6-alpha.2", + "version": "2.1.0-alpha.10", "license": "ISC", "dependencies": { - "@transia/ripple-address-codec": "^4.2.8-alpha.0", - "assert": "^2.0.0", - "big-integer": "^1.6.48", - "buffer": "5.6.0", - "create-hash": "^1.2.0", - "decimal.js": "^10.2.0" + "@xrplf/isomorphic": "^1.0.1", + "bignumber.js": "^9.0.0", + "ripple-address-codec": "npm:@transia/ripple-address-codec@^5.0.0-alpha.0" }, "engines": { - "node": ">= 10" - } - }, - "packages/ripple-binary-codec/node_modules/buffer": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz", - "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==", - "dependencies": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4" + "node": ">= 18" } }, "packages/ripple-keypairs": { "name": "@transia/ripple-keypairs", - "version": "1.1.8-alpha.0", + "version": "2.0.0-alpha.0", "license": "ISC", "dependencies": { - "@transia/ripple-address-codec": "^4.2.8-alpha.0", - "bn.js": "^5.1.1", - "brorand": "^1.0.5", - "elliptic": "^6.5.4", - "hash.js": "^1.0.3" + "@noble/curves": "^1.0.0", + "@xrplf/isomorphic": "^1.0.0", + "ripple-address-codec": "npm:@transia/ripple-address-codec@^5.0.0-alpha.0" }, "engines": { - "node": ">= 10" + "node": ">= 18" + } + }, + "packages/secret-numbers": { + "name": "@xrplf/secret-numbers", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "@xrplf/isomorphic": "^1.0.0", + "ripple-keypairs": "npm:@transia/ripple-keypairs@^2.0.0-alpha.0" } }, "packages/xrpl": { "name": "@transia/xrpl", - "version": "2.7.3-alpha.5", + "version": "4.0.0-alpha.28", "license": "ISC", "dependencies": { - "@transia/ripple-address-codec": "^4.2.8-alpha.0", - "@transia/ripple-binary-codec": "^1.4.6-alpha.2", - "@transia/ripple-keypairs": "^1.1.8-alpha.0", + "@scure/bip32": "^1.3.1", + "@scure/bip39": "^1.2.1", + "@xrplf/isomorphic": "^1.0.1", + "@xrplf/secret-numbers": "^1.0.0", "bignumber.js": "^9.0.0", - "bip32": "^2.0.6", - "bip39": "^3.0.4", - "https-proxy-agent": "^5.0.0", - "lodash": "^4.17.4", - "ws": "^8.2.2" + "eventemitter3": "^5.0.1", + "ripple-address-codec": "npm:@transia/ripple-address-codec@^5.0.0-alpha.0", + "ripple-binary-codec": "npm:@transia/ripple-binary-codec@^2.1.0-alpha.10", + "ripple-keypairs": "npm:@transia/ripple-keypairs@^2.0.0-alpha.0" }, "devDependencies": { - "@geut/browser-node-core": "^2.0.13", - "@types/node": "^14.18.36", - "assert-browserify": "^2.0.0", - "browserify-fs": "^1.0.0", - "constants-browserify": "^1.0.0", - "https-browserify": "^1.0.0", + "@types/node": "^18.18.38", + "eventemitter3": "^5.0.1", + "https-proxy-agent": "^7.0.1", "karma": "^6.4.1", "karma-chrome-launcher": "^3.1.1", "karma-jasmine": "^5.1.0", "karma-webpack": "^5.0.0", - "node-polyfill-webpack-plugin": "^2.0.1", + "lodash": "^4.17.4", "react": "^18.2.0", - "typedoc": "^0.23.24" + "run-s": "^0.0.0", + "typedoc": "0.26.3", + "ws": "^8.14.2" }, "engines": { - "node": ">=10.13.0" - } - } - }, - "dependencies": { - "@ampproject/remapping": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", - "dev": true, - "requires": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@babel/code-frame": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz", - "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==", - "dev": true, - "requires": { - "@babel/highlight": "^7.18.6" + "node": ">=18.0.0" } }, - "@babel/compat-data": { - "version": "7.21.7", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.7.tgz", - "integrity": "sha512-KYMqFYTaenzMK4yUtf4EW9wc4N9ef80FsbMtkwool5zpwl4YrT1SdWYSTRcT94KO4hannogdS+LxY7L+arP3gA==", - "dev": true - }, - "@babel/core": { - "version": "7.21.8", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.8.tgz", - "integrity": "sha512-YeM22Sondbo523Sz0+CirSPnbj9bG3P0CdHcBZdqUuaeOaYEFbOLoGU7lebvGP6P5J/WE9wOn7u7C4J9HvS1xQ==", - "dev": true, - "requires": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.21.4", - "@babel/generator": "^7.21.5", - "@babel/helper-compilation-targets": "^7.21.5", - "@babel/helper-module-transforms": "^7.21.5", - "@babel/helpers": "^7.21.5", - "@babel/parser": "^7.21.8", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.5", - "@babel/types": "^7.21.5", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", - "semver": "^6.3.0" - }, + "packages/xrpl-models": { + "name": "@transia/xahau-models", + "version": "2.7.3-alpha.29", + "license": "MIT", "dependencies": { - "convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "@babel/generator": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.5.tgz", - "integrity": "sha512-SrKK/sRv8GesIW1bDagf9cCG38IOMYZusoe1dfg0D8aiUe3Amvoj1QtjTPAWcfrZFvIwlleLb0gxzQidL9w14w==", - "dev": true, - "requires": { - "@babel/types": "^7.21.5", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.5.tgz", - "integrity": "sha512-1RkbFGUKex4lvsB9yhIfWltJM5cZKUftB2eNajaDv3dCMEp49iBG0K14uH8NnX9IPux2+mK7JGEOB0jn48/J6w==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.21.5", - "@babel/helper-validator-option": "^7.21.0", - "browserslist": "^4.21.3", - "lru-cache": "^5.1.1", - "semver": "^6.3.0" + "@types/node": "^20.4.2", + "ts-node": "^10.9.1", + "typescript": "^5.1.6" }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "@babel/helper-environment-visitor": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.21.5.tgz", - "integrity": "sha512-IYl4gZ3ETsWocUWgsFZLM5i1BYx9SoemminVEXadgLBa9TdeorzgLKm8wWLA6J1N/kT3Kch8XIk1laNzYoHKvQ==", - "dev": true - }, - "@babel/helper-function-name": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", - "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", - "dev": true, - "requires": { - "@babel/template": "^7.20.7", - "@babel/types": "^7.21.0" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-module-imports": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz", - "integrity": "sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==", - "dev": true, - "requires": { - "@babel/types": "^7.21.4" - } - }, - "@babel/helper-module-transforms": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.5.tgz", - "integrity": "sha512-bI2Z9zBGY2q5yMHoBvJ2a9iX3ZOAzJPm7Q8Yz6YeoUjU/Cvhmi2G4QyTNyPBqqXSgTjUxRg3L0xV45HvkNWWBw==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.21.5", - "@babel/helper-module-imports": "^7.21.4", - "@babel/helper-simple-access": "^7.21.5", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.5", - "@babel/types": "^7.21.5" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.21.5.tgz", - "integrity": "sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg==", - "dev": true - }, - "@babel/helper-simple-access": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.21.5.tgz", - "integrity": "sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg==", - "dev": true, - "requires": { - "@babel/types": "^7.21.5" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-string-parser": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.21.5.tgz", - "integrity": "sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w==", - "dev": true - }, - "@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", - "dev": true - }, - "@babel/helper-validator-option": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", - "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", - "dev": true - }, - "@babel/helpers": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.5.tgz", - "integrity": "sha512-BSY+JSlHxOmGsPTydUkPf1MdMQ3M81x5xGCOVgWM3G8XH77sJ292Y2oqcp0CbbgxhqBuI46iUz1tT7hqP7EfgA==", - "dev": true, - "requires": { - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.5", - "@babel/types": "^7.21.5" + "engines": { + "node": ">=12.0.0", + "npm": ">=7.0.0" } }, - "@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, + "packages/xrpl-models/node_modules/@types/node": { + "version": "20.14.15", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.15.tgz", + "integrity": "sha512-Fz1xDMCF/B00/tYSVMlmK7hVeLh7jE5f3B7X1/hmV0MJBwE27KlS7EvD/Yp+z1lm8mVhwV5w+n8jOZG8AfTlKw==", "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@babel/parser": { - "version": "7.21.8", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.8.tgz", - "integrity": "sha512-6zavDGdzG3gUqAdWvlLFfk+36RilI+Pwyuuh7HItyeScCWP3k6i8vKclAQ0bM/0y/Kz/xiwvxhMv9MgTJP5gmA==", - "dev": true - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-jsx": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.21.4.tgz", - "integrity": "sha512-5hewiLct5OKyh6PLKEYaFclcqtIgCb6bmELouxjF6up5q3Sov7rOayW4RwhbaBL0dit8rA80GNfY+UuDp2mBbQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2" - } - }, - "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-typescript": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.21.4.tgz", - "integrity": "sha512-xz0D39NvhQn4t4RNsHmDnnsaQizIlUkdtYvLs8La1BlfjQ6JEwxkJGeqJMW2tAXx+q6H+WFuUTXNdYVpEya0YA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2" - } - }, - "@babel/runtime": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.5.tgz", - "integrity": "sha512-8jI69toZqqcsnqGGqwGS4Qb1VwLOEp4hz+CXPywcvjs60u3B4Pom/U/7rm4W8tMOYEB+E9wgD0mW1l3r8qlI9Q==", - "dev": true, - "peer": true, - "requires": { - "regenerator-runtime": "^0.13.11" + "undici-types": "~5.26.4" } }, - "@babel/template": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", - "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", + "packages/xrpl/node_modules/agent-base": { + "version": "7.1.0", "dev": true, - "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7" - } - }, - "@babel/traverse": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.5.tgz", - "integrity": "sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.21.4", - "@babel/generator": "^7.21.5", - "@babel/helper-environment-visitor": "^7.21.5", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.21.5", - "@babel/types": "^7.21.5", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, + "license": "MIT", "dependencies": { - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - } + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" } }, - "@babel/types": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.5.tgz", - "integrity": "sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q==", + "packages/xrpl/node_modules/https-proxy-agent": { + "version": "7.0.1", "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.21.5", - "@babel/helper-validator-identifier": "^7.19.1", - "to-fast-properties": "^2.0.0" - } - }, - "@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true - }, - "@colors/colors": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", - "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", - "dev": true - }, - "@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "dev": true, - "requires": { - "@jridgewell/trace-mapping": "0.3.9" - }, - "dependencies": { - "@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - } - } - }, - "@discoveryjs/json-ext": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", - "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", - "dev": true - }, - "@es-joy/jsdoccomment": { - "version": "0.36.1", - "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.36.1.tgz", - "integrity": "sha512-922xqFsTpHs6D0BUiG4toiyPOMc8/jafnWKxz1KWgS4XzKPy2qXf1Pe6UFuNSCQqt6tOuhAWXBNuuyUhJmw9Vg==", - "dev": true, - "requires": { - "comment-parser": "1.3.1", - "esquery": "^1.4.0", - "jsdoc-type-pratt-parser": "~3.1.0" - } - }, - "@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^3.3.0" - } - }, - "@eslint-community/regexpp": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz", - "integrity": "sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==", - "dev": true - }, - "@eslint/eslintrc": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.3.tgz", - "integrity": "sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==", - "dev": true, - "requires": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.5.2", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - } - }, - "@eslint/js": { - "version": "8.40.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.40.0.tgz", - "integrity": "sha512-ElyB54bJIhXQYVKjDSvCkPO1iU1tSAeVQJbllWJq1XQSmmA4dgFk8CbiBGpiOPxleE48vDogxCtmMYku4HSVLA==", - "dev": true - }, - "@gar/promisify": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", - "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", - "dev": true - }, - "@geut/browser-node-core": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/@geut/browser-node-core/-/browser-node-core-2.0.13.tgz", - "integrity": "sha512-xzvcI7Ppew8sEQEvomkROEgIi6xOnDrjrrx+vePF49ESvmTYDsHmfkz/dsnIpX4W3RU821eUBmN/aIA7Kifxhg==", - "dev": true - }, - "@humanwhocodes/config-array": { - "version": "0.11.8", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", - "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", - "dev": true, - "requires": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.5" - } - }, - "@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true - }, - "@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true - }, - "@hutson/parse-repository-url": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz", - "integrity": "sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==", - "dev": true - }, - "@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dev": true, - "requires": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "dependencies": { - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - } - } - }, - "@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true - }, - "@jest/console": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.5.0.tgz", - "integrity": "sha512-NEpkObxPwyw/XxZVLPmAGKE89IQRp4puc6IQRPru6JKd1M3fW9v1xM1AnzIJE65hbCkzQAdnL8P47e9hzhiYLQ==", - "dev": true, - "requires": { - "@jest/types": "^29.5.0", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^29.5.0", - "jest-util": "^29.5.0", - "slash": "^3.0.0" - } - }, - "@jest/core": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.5.0.tgz", - "integrity": "sha512-28UzQc7ulUrOQw1IsN/kv1QES3q2kkbl/wGslyhAclqZ/8cMdB5M68BffkIdSJgKBUt50d3hbwJ92XESlE7LiQ==", - "dev": true, - "requires": { - "@jest/console": "^29.5.0", - "@jest/reporters": "^29.5.0", - "@jest/test-result": "^29.5.0", - "@jest/transform": "^29.5.0", - "@jest/types": "^29.5.0", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^29.5.0", - "jest-config": "^29.5.0", - "jest-haste-map": "^29.5.0", - "jest-message-util": "^29.5.0", - "jest-regex-util": "^29.4.3", - "jest-resolve": "^29.5.0", - "jest-resolve-dependencies": "^29.5.0", - "jest-runner": "^29.5.0", - "jest-runtime": "^29.5.0", - "jest-snapshot": "^29.5.0", - "jest-util": "^29.5.0", - "jest-validate": "^29.5.0", - "jest-watcher": "^29.5.0", - "micromatch": "^4.0.4", - "pretty-format": "^29.5.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "@jest/environment": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.5.0.tgz", - "integrity": "sha512-5FXw2+wD29YU1d4I2htpRX7jYnAyTRjP2CsXQdo9SAM8g3ifxWPSV0HnClSn71xwctr0U3oZIIH+dtbfmnbXVQ==", - "dev": true, - "requires": { - "@jest/fake-timers": "^29.5.0", - "@jest/types": "^29.5.0", - "@types/node": "*", - "jest-mock": "^29.5.0" - } - }, - "@jest/expect": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.5.0.tgz", - "integrity": "sha512-PueDR2HGihN3ciUNGr4uelropW7rqUfTiOn+8u0leg/42UhblPxHkfoh0Ruu3I9Y1962P3u2DY4+h7GVTSVU6g==", - "dev": true, - "requires": { - "expect": "^29.5.0", - "jest-snapshot": "^29.5.0" - } - }, - "@jest/expect-utils": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.5.0.tgz", - "integrity": "sha512-fmKzsidoXQT2KwnrwE0SQq3uj8Z763vzR8LnLBwC2qYWEFpjX8daRsk6rHUM1QvNlEW/UJXNXm59ztmJJWs2Mg==", - "dev": true, - "requires": { - "jest-get-type": "^29.4.3" - } - }, - "@jest/fake-timers": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.5.0.tgz", - "integrity": "sha512-9ARvuAAQcBwDAqOnglWq2zwNIRUDtk/SCkp/ToGEhFv5r86K21l+VEs0qNTaXtyiY0lEePl3kylijSYJQqdbDg==", - "dev": true, - "requires": { - "@jest/types": "^29.5.0", - "@sinonjs/fake-timers": "^10.0.2", - "@types/node": "*", - "jest-message-util": "^29.5.0", - "jest-mock": "^29.5.0", - "jest-util": "^29.5.0" - } - }, - "@jest/globals": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.5.0.tgz", - "integrity": "sha512-S02y0qMWGihdzNbUiqSAiKSpSozSuHX5UYc7QbnHP+D9Lyw8DgGGCinrN9uSuHPeKgSSzvPom2q1nAtBvUsvPQ==", - "dev": true, - "requires": { - "@jest/environment": "^29.5.0", - "@jest/expect": "^29.5.0", - "@jest/types": "^29.5.0", - "jest-mock": "^29.5.0" - } - }, - "@jest/reporters": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.5.0.tgz", - "integrity": "sha512-D05STXqj/M8bP9hQNSICtPqz97u7ffGzZu+9XLucXhkOFBqKcXe04JLZOgIekOxdb73MAoBUFnqvf7MCpKk5OA==", - "dev": true, - "requires": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^29.5.0", - "@jest/test-result": "^29.5.0", - "@jest/transform": "^29.5.0", - "@jest/types": "^29.5.0", - "@jridgewell/trace-mapping": "^0.3.15", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^5.1.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-message-util": "^29.5.0", - "jest-util": "^29.5.0", - "jest-worker": "^29.5.0", - "slash": "^3.0.0", - "string-length": "^4.0.1", - "strip-ansi": "^6.0.0", - "v8-to-istanbul": "^9.0.1" - } - }, - "@jest/schemas": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.4.3.tgz", - "integrity": "sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg==", - "dev": true, - "requires": { - "@sinclair/typebox": "^0.25.16" - } - }, - "@jest/source-map": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.4.3.tgz", - "integrity": "sha512-qyt/mb6rLyd9j1jUts4EQncvS6Yy3PM9HghnNv86QBlV+zdL2inCdK1tuVlL+J+lpiw2BI67qXOrX3UurBqQ1w==", - "dev": true, - "requires": { - "@jridgewell/trace-mapping": "^0.3.15", - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9" - } - }, - "@jest/test-result": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.5.0.tgz", - "integrity": "sha512-fGl4rfitnbfLsrfx1uUpDEESS7zM8JdgZgOCQuxQvL1Sn/I6ijeAVQWGfXI9zb1i9Mzo495cIpVZhA0yr60PkQ==", - "dev": true, - "requires": { - "@jest/console": "^29.5.0", - "@jest/types": "^29.5.0", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@jest/test-sequencer": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.5.0.tgz", - "integrity": "sha512-yPafQEcKjkSfDXyvtgiV4pevSeyuA6MQr6ZIdVkWJly9vkqjnFfcfhRQqpD5whjoU8EORki752xQmjaqoFjzMQ==", - "dev": true, - "requires": { - "@jest/test-result": "^29.5.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.5.0", - "slash": "^3.0.0" - } - }, - "@jest/transform": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.5.0.tgz", - "integrity": "sha512-8vbeZWqLJOvHaDfeMuoHITGKSz5qWc9u04lnWrQE3VyuSw604PzQM824ZeX9XSjUCeDiE3GuxZe5UKa8J61NQw==", - "dev": true, - "requires": { - "@babel/core": "^7.11.6", - "@jest/types": "^29.5.0", - "@jridgewell/trace-mapping": "^0.3.15", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^2.0.0", - "fast-json-stable-stringify": "^2.1.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.5.0", - "jest-regex-util": "^29.4.3", - "jest-util": "^29.5.0", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "write-file-atomic": "^4.0.2" - } - }, - "@jest/types": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.5.0.tgz", - "integrity": "sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog==", - "dev": true, - "requires": { - "@jest/schemas": "^29.4.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - } - }, - "@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true - }, - "@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true - }, - "@jridgewell/source-map": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.3.tgz", - "integrity": "sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg==", - "dev": true, - "requires": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true - }, - "@jridgewell/trace-mapping": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", - "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" - }, - "dependencies": { - "@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - } - } - }, - "@lerna/add": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/add/-/add-4.0.0.tgz", - "integrity": "sha512-cpmAH1iS3k8JBxNvnMqrGTTjbY/ZAiKa1ChJzFevMYY3eeqbvhsBKnBcxjRXtdrJ6bd3dCQM+ZtK+0i682Fhng==", - "dev": true, - "requires": { - "@lerna/bootstrap": "4.0.0", - "@lerna/command": "4.0.0", - "@lerna/filter-options": "4.0.0", - "@lerna/npm-conf": "4.0.0", - "@lerna/validation-error": "4.0.0", - "dedent": "^0.7.0", - "npm-package-arg": "^8.1.0", - "p-map": "^4.0.0", - "pacote": "^11.2.6", - "semver": "^7.3.4" - } - }, - "@lerna/bootstrap": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/bootstrap/-/bootstrap-4.0.0.tgz", - "integrity": "sha512-RkS7UbeM2vu+kJnHzxNRCLvoOP9yGNgkzRdy4UV2hNalD7EP41bLvRVOwRYQ7fhc2QcbhnKNdOBihYRL0LcKtw==", - "dev": true, - "requires": { - "@lerna/command": "4.0.0", - "@lerna/filter-options": "4.0.0", - "@lerna/has-npm-version": "4.0.0", - "@lerna/npm-install": "4.0.0", - "@lerna/package-graph": "4.0.0", - "@lerna/pulse-till-done": "4.0.0", - "@lerna/rimraf-dir": "4.0.0", - "@lerna/run-lifecycle": "4.0.0", - "@lerna/run-topologically": "4.0.0", - "@lerna/symlink-binary": "4.0.0", - "@lerna/symlink-dependencies": "4.0.0", - "@lerna/validation-error": "4.0.0", - "dedent": "^0.7.0", - "get-port": "^5.1.1", - "multimatch": "^5.0.0", - "npm-package-arg": "^8.1.0", - "npmlog": "^4.1.2", - "p-map": "^4.0.0", - "p-map-series": "^2.1.0", - "p-waterfall": "^2.1.1", - "read-package-tree": "^5.3.1", - "semver": "^7.3.4" - } - }, - "@lerna/changed": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/changed/-/changed-4.0.0.tgz", - "integrity": "sha512-cD+KuPRp6qiPOD+BO6S6SN5cARspIaWSOqGBpGnYzLb4uWT8Vk4JzKyYtc8ym1DIwyoFXHosXt8+GDAgR8QrgQ==", - "dev": true, - "requires": { - "@lerna/collect-updates": "4.0.0", - "@lerna/command": "4.0.0", - "@lerna/listable": "4.0.0", - "@lerna/output": "4.0.0" - } - }, - "@lerna/check-working-tree": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/check-working-tree/-/check-working-tree-4.0.0.tgz", - "integrity": "sha512-/++bxM43jYJCshBiKP5cRlCTwSJdRSxVmcDAXM+1oUewlZJVSVlnks5eO0uLxokVFvLhHlC5kHMc7gbVFPHv6Q==", - "dev": true, - "requires": { - "@lerna/collect-uncommitted": "4.0.0", - "@lerna/describe-ref": "4.0.0", - "@lerna/validation-error": "4.0.0" - } - }, - "@lerna/child-process": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/child-process/-/child-process-4.0.0.tgz", - "integrity": "sha512-XtCnmCT9eyVsUUHx6y/CTBYdV9g2Cr/VxyseTWBgfIur92/YKClfEtJTbOh94jRT62hlKLqSvux/UhxXVh613Q==", - "dev": true, - "requires": { - "chalk": "^4.1.0", - "execa": "^5.0.0", - "strong-log-transformer": "^2.1.0" - } - }, - "@lerna/clean": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/clean/-/clean-4.0.0.tgz", - "integrity": "sha512-uugG2iN9k45ITx2jtd8nEOoAtca8hNlDCUM0N3lFgU/b1mEQYAPRkqr1qs4FLRl/Y50ZJ41wUz1eazS+d/0osA==", - "dev": true, - "requires": { - "@lerna/command": "4.0.0", - "@lerna/filter-options": "4.0.0", - "@lerna/prompt": "4.0.0", - "@lerna/pulse-till-done": "4.0.0", - "@lerna/rimraf-dir": "4.0.0", - "p-map": "^4.0.0", - "p-map-series": "^2.1.0", - "p-waterfall": "^2.1.1" - } - }, - "@lerna/cli": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/cli/-/cli-4.0.0.tgz", - "integrity": "sha512-Neaw3GzFrwZiRZv2g7g6NwFjs3er1vhraIniEs0jjVLPMNC4eata0na3GfE5yibkM/9d3gZdmihhZdZ3EBdvYA==", - "dev": true, - "requires": { - "@lerna/global-options": "4.0.0", - "dedent": "^0.7.0", - "npmlog": "^4.1.2", - "yargs": "^16.2.0" - } - }, - "@lerna/collect-uncommitted": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/collect-uncommitted/-/collect-uncommitted-4.0.0.tgz", - "integrity": "sha512-ufSTfHZzbx69YNj7KXQ3o66V4RC76ffOjwLX0q/ab//61bObJ41n03SiQEhSlmpP+gmFbTJ3/7pTe04AHX9m/g==", - "dev": true, - "requires": { - "@lerna/child-process": "4.0.0", - "chalk": "^4.1.0", - "npmlog": "^4.1.2" - } - }, - "@lerna/collect-updates": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/collect-updates/-/collect-updates-4.0.0.tgz", - "integrity": "sha512-bnNGpaj4zuxsEkyaCZLka9s7nMs58uZoxrRIPJ+nrmrZYp1V5rrd+7/NYTuunOhY2ug1sTBvTAxj3NZQ+JKnOw==", - "dev": true, - "requires": { - "@lerna/child-process": "4.0.0", - "@lerna/describe-ref": "4.0.0", - "minimatch": "^3.0.4", - "npmlog": "^4.1.2", - "slash": "^3.0.0" - } - }, - "@lerna/command": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/command/-/command-4.0.0.tgz", - "integrity": "sha512-LM9g3rt5FsPNFqIHUeRwWXLNHJ5NKzOwmVKZ8anSp4e1SPrv2HNc1V02/9QyDDZK/w+5POXH5lxZUI1CHaOK/A==", - "dev": true, - "requires": { - "@lerna/child-process": "4.0.0", - "@lerna/package-graph": "4.0.0", - "@lerna/project": "4.0.0", - "@lerna/validation-error": "4.0.0", - "@lerna/write-log-file": "4.0.0", - "clone-deep": "^4.0.1", - "dedent": "^0.7.0", - "execa": "^5.0.0", - "is-ci": "^2.0.0", - "npmlog": "^4.1.2" - } - }, - "@lerna/conventional-commits": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/conventional-commits/-/conventional-commits-4.0.0.tgz", - "integrity": "sha512-CSUQRjJHFrH8eBn7+wegZLV3OrNc0Y1FehYfYGhjLE2SIfpCL4bmfu/ViYuHh9YjwHaA+4SX6d3hR+xkeseKmw==", - "dev": true, - "requires": { - "@lerna/validation-error": "4.0.0", - "conventional-changelog-angular": "^5.0.12", - "conventional-changelog-core": "^4.2.2", - "conventional-recommended-bump": "^6.1.0", - "fs-extra": "^9.1.0", - "get-stream": "^6.0.0", - "lodash.template": "^4.5.0", - "npm-package-arg": "^8.1.0", - "npmlog": "^4.1.2", - "pify": "^5.0.0", - "semver": "^7.3.4" - } - }, - "@lerna/create": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/create/-/create-4.0.0.tgz", - "integrity": "sha512-mVOB1niKByEUfxlbKTM1UNECWAjwUdiioIbRQZEeEabtjCL69r9rscIsjlGyhGWCfsdAG5wfq4t47nlDXdLLag==", - "dev": true, - "requires": { - "@lerna/child-process": "4.0.0", - "@lerna/command": "4.0.0", - "@lerna/npm-conf": "4.0.0", - "@lerna/validation-error": "4.0.0", - "dedent": "^0.7.0", - "fs-extra": "^9.1.0", - "globby": "^11.0.2", - "init-package-json": "^2.0.2", - "npm-package-arg": "^8.1.0", - "p-reduce": "^2.1.0", - "pacote": "^11.2.6", - "pify": "^5.0.0", - "semver": "^7.3.4", - "slash": "^3.0.0", - "validate-npm-package-license": "^3.0.4", - "validate-npm-package-name": "^3.0.0", - "whatwg-url": "^8.4.0", - "yargs-parser": "20.2.4" - } - }, - "@lerna/create-symlink": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/create-symlink/-/create-symlink-4.0.0.tgz", - "integrity": "sha512-I0phtKJJdafUiDwm7BBlEUOtogmu8+taxq6PtIrxZbllV9hWg59qkpuIsiFp+no7nfRVuaasNYHwNUhDAVQBig==", - "dev": true, - "requires": { - "cmd-shim": "^4.1.0", - "fs-extra": "^9.1.0", - "npmlog": "^4.1.2" - } - }, - "@lerna/describe-ref": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/describe-ref/-/describe-ref-4.0.0.tgz", - "integrity": "sha512-eTU5+xC4C5Gcgz+Ey4Qiw9nV2B4JJbMulsYJMW8QjGcGh8zudib7Sduj6urgZXUYNyhYpRs+teci9M2J8u+UvQ==", - "dev": true, - "requires": { - "@lerna/child-process": "4.0.0", - "npmlog": "^4.1.2" - } - }, - "@lerna/diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/diff/-/diff-4.0.0.tgz", - "integrity": "sha512-jYPKprQVg41+MUMxx6cwtqsNm0Yxx9GDEwdiPLwcUTFx+/qKCEwifKNJ1oGIPBxyEHX2PFCOjkK39lHoj2qiag==", - "dev": true, - "requires": { - "@lerna/child-process": "4.0.0", - "@lerna/command": "4.0.0", - "@lerna/validation-error": "4.0.0", - "npmlog": "^4.1.2" - } - }, - "@lerna/exec": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/exec/-/exec-4.0.0.tgz", - "integrity": "sha512-VGXtL/b/JfY84NB98VWZpIExfhLOzy0ozm/0XaS4a2SmkAJc5CeUfrhvHxxkxiTBLkU+iVQUyYEoAT0ulQ8PCw==", - "dev": true, - "requires": { - "@lerna/child-process": "4.0.0", - "@lerna/command": "4.0.0", - "@lerna/filter-options": "4.0.0", - "@lerna/profiler": "4.0.0", - "@lerna/run-topologically": "4.0.0", - "@lerna/validation-error": "4.0.0", - "p-map": "^4.0.0" - } - }, - "@lerna/filter-options": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/filter-options/-/filter-options-4.0.0.tgz", - "integrity": "sha512-vV2ANOeZhOqM0rzXnYcFFCJ/kBWy/3OA58irXih9AMTAlQLymWAK0akWybl++sUJ4HB9Hx12TOqaXbYS2NM5uw==", - "dev": true, - "requires": { - "@lerna/collect-updates": "4.0.0", - "@lerna/filter-packages": "4.0.0", - "dedent": "^0.7.0", - "npmlog": "^4.1.2" - } - }, - "@lerna/filter-packages": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/filter-packages/-/filter-packages-4.0.0.tgz", - "integrity": "sha512-+4AJIkK7iIiOaqCiVTYJxh/I9qikk4XjNQLhE3kixaqgMuHl1NQ99qXRR0OZqAWB9mh8Z1HA9bM5K1HZLBTOqA==", - "dev": true, - "requires": { - "@lerna/validation-error": "4.0.0", - "multimatch": "^5.0.0", - "npmlog": "^4.1.2" - } - }, - "@lerna/get-npm-exec-opts": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/get-npm-exec-opts/-/get-npm-exec-opts-4.0.0.tgz", - "integrity": "sha512-yvmkerU31CTWS2c7DvmAWmZVeclPBqI7gPVr5VATUKNWJ/zmVcU4PqbYoLu92I9Qc4gY1TuUplMNdNuZTSL7IQ==", - "dev": true, - "requires": { - "npmlog": "^4.1.2" - } - }, - "@lerna/get-packed": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/get-packed/-/get-packed-4.0.0.tgz", - "integrity": "sha512-rfWONRsEIGyPJTxFzC8ECb3ZbsDXJbfqWYyeeQQDrJRPnEJErlltRLPLgC2QWbxFgFPsoDLeQmFHJnf0iDfd8w==", - "dev": true, - "requires": { - "fs-extra": "^9.1.0", - "ssri": "^8.0.1", - "tar": "^6.1.0" - } - }, - "@lerna/github-client": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/github-client/-/github-client-4.0.0.tgz", - "integrity": "sha512-2jhsldZtTKXYUBnOm23Lb0Fx8G4qfSXF9y7UpyUgWUj+YZYd+cFxSuorwQIgk5P4XXrtVhsUesIsli+BYSThiw==", - "dev": true, - "requires": { - "@lerna/child-process": "4.0.0", - "@octokit/plugin-enterprise-rest": "^6.0.1", - "@octokit/rest": "^18.1.0", - "git-url-parse": "^11.4.4", - "npmlog": "^4.1.2" - } - }, - "@lerna/gitlab-client": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/gitlab-client/-/gitlab-client-4.0.0.tgz", - "integrity": "sha512-OMUpGSkeDWFf7BxGHlkbb35T7YHqVFCwBPSIR6wRsszY8PAzCYahtH3IaJzEJyUg6vmZsNl0FSr3pdA2skhxqA==", - "dev": true, - "requires": { - "node-fetch": "^2.6.1", - "npmlog": "^4.1.2", - "whatwg-url": "^8.4.0" - } - }, - "@lerna/global-options": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/global-options/-/global-options-4.0.0.tgz", - "integrity": "sha512-TRMR8afAHxuYBHK7F++Ogop2a82xQjoGna1dvPOY6ltj/pEx59pdgcJfYcynYqMkFIk8bhLJJN9/ndIfX29FTQ==", - "dev": true - }, - "@lerna/has-npm-version": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/has-npm-version/-/has-npm-version-4.0.0.tgz", - "integrity": "sha512-LQ3U6XFH8ZmLCsvsgq1zNDqka0Xzjq5ibVN+igAI5ccRWNaUsE/OcmsyMr50xAtNQMYMzmpw5GVLAivT2/YzCg==", - "dev": true, - "requires": { - "@lerna/child-process": "4.0.0", - "semver": "^7.3.4" - } - }, - "@lerna/import": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/import/-/import-4.0.0.tgz", - "integrity": "sha512-FaIhd+4aiBousKNqC7TX1Uhe97eNKf5/SC7c5WZANVWtC7aBWdmswwDt3usrzCNpj6/Wwr9EtEbYROzxKH8ffg==", - "dev": true, - "requires": { - "@lerna/child-process": "4.0.0", - "@lerna/command": "4.0.0", - "@lerna/prompt": "4.0.0", - "@lerna/pulse-till-done": "4.0.0", - "@lerna/validation-error": "4.0.0", - "dedent": "^0.7.0", - "fs-extra": "^9.1.0", - "p-map-series": "^2.1.0" - } - }, - "@lerna/info": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/info/-/info-4.0.0.tgz", - "integrity": "sha512-8Uboa12kaCSZEn4XRfPz5KU9XXoexSPS4oeYGj76s2UQb1O1GdnEyfjyNWoUl1KlJ2i/8nxUskpXIftoFYH0/Q==", - "dev": true, - "requires": { - "@lerna/command": "4.0.0", - "@lerna/output": "4.0.0", - "envinfo": "^7.7.4" - } - }, - "@lerna/init": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/init/-/init-4.0.0.tgz", - "integrity": "sha512-wY6kygop0BCXupzWj5eLvTUqdR7vIAm0OgyV9WHpMYQGfs1V22jhztt8mtjCloD/O0nEe4tJhdG62XU5aYmPNQ==", - "dev": true, - "requires": { - "@lerna/child-process": "4.0.0", - "@lerna/command": "4.0.0", - "fs-extra": "^9.1.0", - "p-map": "^4.0.0", - "write-json-file": "^4.3.0" - } - }, - "@lerna/link": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/link/-/link-4.0.0.tgz", - "integrity": "sha512-KlvPi7XTAcVOByfaLlOeYOfkkDcd+bejpHMCd1KcArcFTwijOwXOVi24DYomIeHvy6HsX/IUquJ4PPUJIeB4+w==", - "dev": true, - "requires": { - "@lerna/command": "4.0.0", - "@lerna/package-graph": "4.0.0", - "@lerna/symlink-dependencies": "4.0.0", - "p-map": "^4.0.0", - "slash": "^3.0.0" - } - }, - "@lerna/list": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/list/-/list-4.0.0.tgz", - "integrity": "sha512-L2B5m3P+U4Bif5PultR4TI+KtW+SArwq1i75QZ78mRYxPc0U/piau1DbLOmwrdqr99wzM49t0Dlvl6twd7GHFg==", - "dev": true, - "requires": { - "@lerna/command": "4.0.0", - "@lerna/filter-options": "4.0.0", - "@lerna/listable": "4.0.0", - "@lerna/output": "4.0.0" - } - }, - "@lerna/listable": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/listable/-/listable-4.0.0.tgz", - "integrity": "sha512-/rPOSDKsOHs5/PBLINZOkRIX1joOXUXEtyUs5DHLM8q6/RP668x/1lFhw6Dx7/U+L0+tbkpGtZ1Yt0LewCLgeQ==", - "dev": true, - "requires": { - "@lerna/query-graph": "4.0.0", - "chalk": "^4.1.0", - "columnify": "^1.5.4" - } - }, - "@lerna/log-packed": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/log-packed/-/log-packed-4.0.0.tgz", - "integrity": "sha512-+dpCiWbdzgMAtpajLToy9PO713IHoE6GV/aizXycAyA07QlqnkpaBNZ8DW84gHdM1j79TWockGJo9PybVhrrZQ==", - "dev": true, - "requires": { - "byte-size": "^7.0.0", - "columnify": "^1.5.4", - "has-unicode": "^2.0.1", - "npmlog": "^4.1.2" - } - }, - "@lerna/npm-conf": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/npm-conf/-/npm-conf-4.0.0.tgz", - "integrity": "sha512-uS7H02yQNq3oejgjxAxqq/jhwGEE0W0ntr8vM3EfpCW1F/wZruwQw+7bleJQ9vUBjmdXST//tk8mXzr5+JXCfw==", - "dev": true, - "requires": { - "config-chain": "^1.1.12", - "pify": "^5.0.0" - } - }, - "@lerna/npm-dist-tag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/npm-dist-tag/-/npm-dist-tag-4.0.0.tgz", - "integrity": "sha512-F20sg28FMYTgXqEQihgoqSfwmq+Id3zT23CnOwD+XQMPSy9IzyLf1fFVH319vXIw6NF6Pgs4JZN2Qty6/CQXGw==", - "dev": true, - "requires": { - "@lerna/otplease": "4.0.0", - "npm-package-arg": "^8.1.0", - "npm-registry-fetch": "^9.0.0", - "npmlog": "^4.1.2" - } - }, - "@lerna/npm-install": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/npm-install/-/npm-install-4.0.0.tgz", - "integrity": "sha512-aKNxq2j3bCH3eXl3Fmu4D54s/YLL9WSwV8W7X2O25r98wzrO38AUN6AB9EtmAx+LV/SP15et7Yueg9vSaanRWg==", - "dev": true, - "requires": { - "@lerna/child-process": "4.0.0", - "@lerna/get-npm-exec-opts": "4.0.0", - "fs-extra": "^9.1.0", - "npm-package-arg": "^8.1.0", - "npmlog": "^4.1.2", - "signal-exit": "^3.0.3", - "write-pkg": "^4.0.0" - } - }, - "@lerna/npm-publish": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/npm-publish/-/npm-publish-4.0.0.tgz", - "integrity": "sha512-vQb7yAPRo5G5r77DRjHITc9piR9gvEKWrmfCH7wkfBnGWEqu7n8/4bFQ7lhnkujvc8RXOsYpvbMQkNfkYibD/w==", - "dev": true, - "requires": { - "@lerna/otplease": "4.0.0", - "@lerna/run-lifecycle": "4.0.0", - "fs-extra": "^9.1.0", - "libnpmpublish": "^4.0.0", - "npm-package-arg": "^8.1.0", - "npmlog": "^4.1.2", - "pify": "^5.0.0", - "read-package-json": "^3.0.0" - } - }, - "@lerna/npm-run-script": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/npm-run-script/-/npm-run-script-4.0.0.tgz", - "integrity": "sha512-Jmyh9/IwXJjOXqKfIgtxi0bxi1pUeKe5bD3S81tkcy+kyng/GNj9WSqD5ZggoNP2NP//s4CLDAtUYLdP7CU9rA==", - "dev": true, - "requires": { - "@lerna/child-process": "4.0.0", - "@lerna/get-npm-exec-opts": "4.0.0", - "npmlog": "^4.1.2" - } - }, - "@lerna/otplease": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/otplease/-/otplease-4.0.0.tgz", - "integrity": "sha512-Sgzbqdk1GH4psNiT6hk+BhjOfIr/5KhGBk86CEfHNJTk9BK4aZYyJD4lpDbDdMjIV4g03G7pYoqHzH765T4fxw==", - "dev": true, - "requires": { - "@lerna/prompt": "4.0.0" - } - }, - "@lerna/output": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/output/-/output-4.0.0.tgz", - "integrity": "sha512-Un1sHtO1AD7buDQrpnaYTi2EG6sLF+KOPEAMxeUYG5qG3khTs2Zgzq5WE3dt2N/bKh7naESt20JjIW6tBELP0w==", - "dev": true, - "requires": { - "npmlog": "^4.1.2" - } - }, - "@lerna/pack-directory": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/pack-directory/-/pack-directory-4.0.0.tgz", - "integrity": "sha512-NJrmZNmBHS+5aM+T8N6FVbaKFScVqKlQFJNY2k7nsJ/uklNKsLLl6VhTQBPwMTbf6Tf7l6bcKzpy7aePuq9UiQ==", - "dev": true, - "requires": { - "@lerna/get-packed": "4.0.0", - "@lerna/package": "4.0.0", - "@lerna/run-lifecycle": "4.0.0", - "npm-packlist": "^2.1.4", - "npmlog": "^4.1.2", - "tar": "^6.1.0", - "temp-write": "^4.0.0" - } - }, - "@lerna/package": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/package/-/package-4.0.0.tgz", - "integrity": "sha512-l0M/izok6FlyyitxiQKr+gZLVFnvxRQdNhzmQ6nRnN9dvBJWn+IxxpM+cLqGACatTnyo9LDzNTOj2Db3+s0s8Q==", - "dev": true, - "requires": { - "load-json-file": "^6.2.0", - "npm-package-arg": "^8.1.0", - "write-pkg": "^4.0.0" - } - }, - "@lerna/package-graph": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/package-graph/-/package-graph-4.0.0.tgz", - "integrity": "sha512-QED2ZCTkfXMKFoTGoccwUzjHtZMSf3UKX14A4/kYyBms9xfFsesCZ6SLI5YeySEgcul8iuIWfQFZqRw+Qrjraw==", - "dev": true, - "requires": { - "@lerna/prerelease-id-from-version": "4.0.0", - "@lerna/validation-error": "4.0.0", - "npm-package-arg": "^8.1.0", - "npmlog": "^4.1.2", - "semver": "^7.3.4" - } - }, - "@lerna/prerelease-id-from-version": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/prerelease-id-from-version/-/prerelease-id-from-version-4.0.0.tgz", - "integrity": "sha512-GQqguzETdsYRxOSmdFZ6zDBXDErIETWOqomLERRY54f4p+tk4aJjoVdd9xKwehC9TBfIFvlRbL1V9uQGHh1opg==", - "dev": true, - "requires": { - "semver": "^7.3.4" - } - }, - "@lerna/profiler": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/profiler/-/profiler-4.0.0.tgz", - "integrity": "sha512-/BaEbqnVh1LgW/+qz8wCuI+obzi5/vRE8nlhjPzdEzdmWmZXuCKyWSEzAyHOJWw1ntwMiww5dZHhFQABuoFz9Q==", - "dev": true, - "requires": { - "fs-extra": "^9.1.0", - "npmlog": "^4.1.2", - "upath": "^2.0.1" - } - }, - "@lerna/project": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/project/-/project-4.0.0.tgz", - "integrity": "sha512-o0MlVbDkD5qRPkFKlBZsXZjoNTWPyuL58564nSfZJ6JYNmgAptnWPB2dQlAc7HWRZkmnC2fCkEdoU+jioPavbg==", - "dev": true, - "requires": { - "@lerna/package": "4.0.0", - "@lerna/validation-error": "4.0.0", - "cosmiconfig": "^7.0.0", - "dedent": "^0.7.0", - "dot-prop": "^6.0.1", - "glob-parent": "^5.1.1", - "globby": "^11.0.2", - "load-json-file": "^6.2.0", - "npmlog": "^4.1.2", - "p-map": "^4.0.0", - "resolve-from": "^5.0.0", - "write-json-file": "^4.3.0" - }, - "dependencies": { - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - } - } - }, - "@lerna/prompt": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/prompt/-/prompt-4.0.0.tgz", - "integrity": "sha512-4Ig46oCH1TH5M7YyTt53fT6TuaKMgqUUaqdgxvp6HP6jtdak6+amcsqB8YGz2eQnw/sdxunx84DfI9XpoLj4bQ==", - "dev": true, - "requires": { - "inquirer": "^7.3.3", - "npmlog": "^4.1.2" - } - }, - "@lerna/publish": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/publish/-/publish-4.0.0.tgz", - "integrity": "sha512-K8jpqjHrChH22qtkytA5GRKIVFEtqBF6JWj1I8dWZtHs4Jywn8yB1jQ3BAMLhqmDJjWJtRck0KXhQQKzDK2UPg==", - "dev": true, - "requires": { - "@lerna/check-working-tree": "4.0.0", - "@lerna/child-process": "4.0.0", - "@lerna/collect-updates": "4.0.0", - "@lerna/command": "4.0.0", - "@lerna/describe-ref": "4.0.0", - "@lerna/log-packed": "4.0.0", - "@lerna/npm-conf": "4.0.0", - "@lerna/npm-dist-tag": "4.0.0", - "@lerna/npm-publish": "4.0.0", - "@lerna/otplease": "4.0.0", - "@lerna/output": "4.0.0", - "@lerna/pack-directory": "4.0.0", - "@lerna/prerelease-id-from-version": "4.0.0", - "@lerna/prompt": "4.0.0", - "@lerna/pulse-till-done": "4.0.0", - "@lerna/run-lifecycle": "4.0.0", - "@lerna/run-topologically": "4.0.0", - "@lerna/validation-error": "4.0.0", - "@lerna/version": "4.0.0", - "fs-extra": "^9.1.0", - "libnpmaccess": "^4.0.1", - "npm-package-arg": "^8.1.0", - "npm-registry-fetch": "^9.0.0", - "npmlog": "^4.1.2", - "p-map": "^4.0.0", - "p-pipe": "^3.1.0", - "pacote": "^11.2.6", - "semver": "^7.3.4" - } - }, - "@lerna/pulse-till-done": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/pulse-till-done/-/pulse-till-done-4.0.0.tgz", - "integrity": "sha512-Frb4F7QGckaybRhbF7aosLsJ5e9WuH7h0KUkjlzSByVycxY91UZgaEIVjS2oN9wQLrheLMHl6SiFY0/Pvo0Cxg==", - "dev": true, - "requires": { - "npmlog": "^4.1.2" - } - }, - "@lerna/query-graph": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/query-graph/-/query-graph-4.0.0.tgz", - "integrity": "sha512-YlP6yI3tM4WbBmL9GCmNDoeQyzcyg1e4W96y/PKMZa5GbyUvkS2+Jc2kwPD+5KcXou3wQZxSPzR3Te5OenaDdg==", - "dev": true, - "requires": { - "@lerna/package-graph": "4.0.0" - } - }, - "@lerna/resolve-symlink": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/resolve-symlink/-/resolve-symlink-4.0.0.tgz", - "integrity": "sha512-RtX8VEUzqT+uLSCohx8zgmjc6zjyRlh6i/helxtZTMmc4+6O4FS9q5LJas2uGO2wKvBlhcD6siibGt7dIC3xZA==", - "dev": true, - "requires": { - "fs-extra": "^9.1.0", - "npmlog": "^4.1.2", - "read-cmd-shim": "^2.0.0" - } - }, - "@lerna/rimraf-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/rimraf-dir/-/rimraf-dir-4.0.0.tgz", - "integrity": "sha512-QNH9ABWk9mcMJh2/muD9iYWBk1oQd40y6oH+f3wwmVGKYU5YJD//+zMiBI13jxZRtwBx0vmBZzkBkK1dR11cBg==", - "dev": true, - "requires": { - "@lerna/child-process": "4.0.0", - "npmlog": "^4.1.2", - "path-exists": "^4.0.0", - "rimraf": "^3.0.2" - } - }, - "@lerna/run": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/run/-/run-4.0.0.tgz", - "integrity": "sha512-9giulCOzlMPzcZS/6Eov6pxE9gNTyaXk0Man+iCIdGJNMrCnW7Dme0Z229WWP/UoxDKg71F2tMsVVGDiRd8fFQ==", - "dev": true, - "requires": { - "@lerna/command": "4.0.0", - "@lerna/filter-options": "4.0.0", - "@lerna/npm-run-script": "4.0.0", - "@lerna/output": "4.0.0", - "@lerna/profiler": "4.0.0", - "@lerna/run-topologically": "4.0.0", - "@lerna/timer": "4.0.0", - "@lerna/validation-error": "4.0.0", - "p-map": "^4.0.0" - } - }, - "@lerna/run-lifecycle": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/run-lifecycle/-/run-lifecycle-4.0.0.tgz", - "integrity": "sha512-IwxxsajjCQQEJAeAaxF8QdEixfI7eLKNm4GHhXHrgBu185JcwScFZrj9Bs+PFKxwb+gNLR4iI5rpUdY8Y0UdGQ==", - "dev": true, - "requires": { - "@lerna/npm-conf": "4.0.0", - "npm-lifecycle": "^3.1.5", - "npmlog": "^4.1.2" - } - }, - "@lerna/run-topologically": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/run-topologically/-/run-topologically-4.0.0.tgz", - "integrity": "sha512-EVZw9hGwo+5yp+VL94+NXRYisqgAlj0jWKWtAIynDCpghRxCE5GMO3xrQLmQgqkpUl9ZxQFpICgYv5DW4DksQA==", - "dev": true, - "requires": { - "@lerna/query-graph": "4.0.0", - "p-queue": "^6.6.2" - } - }, - "@lerna/symlink-binary": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/symlink-binary/-/symlink-binary-4.0.0.tgz", - "integrity": "sha512-zualodWC4q1QQc1pkz969hcFeWXOsVYZC5AWVtAPTDfLl+TwM7eG/O6oP+Rr3fFowspxo6b1TQ6sYfDV6HXNWA==", - "dev": true, - "requires": { - "@lerna/create-symlink": "4.0.0", - "@lerna/package": "4.0.0", - "fs-extra": "^9.1.0", - "p-map": "^4.0.0" - } - }, - "@lerna/symlink-dependencies": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/symlink-dependencies/-/symlink-dependencies-4.0.0.tgz", - "integrity": "sha512-BABo0MjeUHNAe2FNGty1eantWp8u83BHSeIMPDxNq0MuW2K3CiQRaeWT3EGPAzXpGt0+hVzBrA6+OT0GPn7Yuw==", - "dev": true, - "requires": { - "@lerna/create-symlink": "4.0.0", - "@lerna/resolve-symlink": "4.0.0", - "@lerna/symlink-binary": "4.0.0", - "fs-extra": "^9.1.0", - "p-map": "^4.0.0", - "p-map-series": "^2.1.0" - } - }, - "@lerna/timer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/timer/-/timer-4.0.0.tgz", - "integrity": "sha512-WFsnlaE7SdOvjuyd05oKt8Leg3ENHICnvX3uYKKdByA+S3g+TCz38JsNs7OUZVt+ba63nC2nbXDlUnuT2Xbsfg==", - "dev": true - }, - "@lerna/validation-error": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/validation-error/-/validation-error-4.0.0.tgz", - "integrity": "sha512-1rBOM5/koiVWlRi3V6dB863E1YzJS8v41UtsHgMr6gB2ncJ2LsQtMKlJpi3voqcgh41H8UsPXR58RrrpPpufyw==", - "dev": true, - "requires": { - "npmlog": "^4.1.2" - } - }, - "@lerna/version": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/version/-/version-4.0.0.tgz", - "integrity": "sha512-otUgiqs5W9zGWJZSCCMRV/2Zm2A9q9JwSDS7s/tlKq4mWCYriWo7+wsHEA/nPTMDyYyBO5oyZDj+3X50KDUzeA==", - "dev": true, - "requires": { - "@lerna/check-working-tree": "4.0.0", - "@lerna/child-process": "4.0.0", - "@lerna/collect-updates": "4.0.0", - "@lerna/command": "4.0.0", - "@lerna/conventional-commits": "4.0.0", - "@lerna/github-client": "4.0.0", - "@lerna/gitlab-client": "4.0.0", - "@lerna/output": "4.0.0", - "@lerna/prerelease-id-from-version": "4.0.0", - "@lerna/prompt": "4.0.0", - "@lerna/run-lifecycle": "4.0.0", - "@lerna/run-topologically": "4.0.0", - "@lerna/validation-error": "4.0.0", - "chalk": "^4.1.0", - "dedent": "^0.7.0", - "load-json-file": "^6.2.0", - "minimatch": "^3.0.4", - "npmlog": "^4.1.2", - "p-map": "^4.0.0", - "p-pipe": "^3.1.0", - "p-reduce": "^2.1.0", - "p-waterfall": "^2.1.1", - "semver": "^7.3.4", - "slash": "^3.0.0", - "temp-write": "^4.0.0", - "write-json-file": "^4.3.0" - } - }, - "@lerna/write-log-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/write-log-file/-/write-log-file-4.0.0.tgz", - "integrity": "sha512-XRG5BloiArpXRakcnPHmEHJp+4AtnhRtpDIHSghmXD5EichI1uD73J7FgPp30mm2pDRq3FdqB0NbwSEsJ9xFQg==", - "dev": true, - "requires": { - "npmlog": "^4.1.2", - "write-file-atomic": "^3.0.3" - }, - "dependencies": { - "write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - } - } - }, - "@microsoft/tsdoc": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.14.2.tgz", - "integrity": "sha512-9b8mPpKrfeGRuhFH5iO1iwCLeIIsV6+H1sRfxbkoGXIyQE2BTsPd9zqSqQJ+pv5sJ/hT5M1zvOFL02MnEezFug==", - "dev": true - }, - "@microsoft/tsdoc-config": { - "version": "0.16.2", - "resolved": "https://registry.npmjs.org/@microsoft/tsdoc-config/-/tsdoc-config-0.16.2.tgz", - "integrity": "sha512-OGiIzzoBLgWWR0UdRJX98oYO+XKGf7tiK4Zk6tQ/E4IJqGCe7dvkTvgDZV5cFJUzLGDOjeAXrnZoA6QkVySuxw==", - "dev": true, - "requires": { - "@microsoft/tsdoc": "0.14.2", - "ajv": "~6.12.6", - "jju": "~1.4.0", - "resolve": "~1.19.0" - }, - "dependencies": { - "resolve": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", - "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", - "dev": true, - "requires": { - "is-core-module": "^2.1.0", - "path-parse": "^1.0.6" - } - } - } - }, - "@noble/hashes": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.0.tgz", - "integrity": "sha512-ilHEACi9DwqJB0pw7kv+Apvh50jiiSyR/cQ3y4W7lOR5mhvn/50FLUfsnfJz0BDZtl/RR16kXvptiv6q1msYZg==" - }, - "@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true - }, - "@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - } - }, - "@npmcli/ci-detect": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@npmcli/ci-detect/-/ci-detect-1.4.0.tgz", - "integrity": "sha512-3BGrt6FLjqM6br5AhWRKTr3u5GIVkjRYeAFrMp3HjnfICrg4xOrVRwFavKT6tsp++bq5dluL5t8ME/Nha/6c1Q==", - "dev": true - }, - "@npmcli/fs": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", - "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", - "dev": true, - "requires": { - "@gar/promisify": "^1.0.1", - "semver": "^7.3.5" - } - }, - "@npmcli/git": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-2.1.0.tgz", - "integrity": "sha512-/hBFX/QG1b+N7PZBFs0bi+evgRZcK9nWBxQKZkGoXUT5hJSwl5c4d7y8/hm+NQZRPhQ67RzFaj5UM9YeyKoryw==", - "dev": true, - "requires": { - "@npmcli/promise-spawn": "^1.3.2", - "lru-cache": "^6.0.0", - "mkdirp": "^1.0.4", - "npm-pick-manifest": "^6.1.1", - "promise-inflight": "^1.0.1", - "promise-retry": "^2.0.1", - "semver": "^7.3.5", - "which": "^2.0.2" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "@npmcli/installed-package-contents": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz", - "integrity": "sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==", - "dev": true, - "requires": { - "npm-bundled": "^1.1.1", - "npm-normalize-package-bin": "^1.0.1" - } - }, - "@npmcli/move-file": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", - "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", - "dev": true, - "requires": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - } - }, - "@npmcli/node-gyp": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-1.0.3.tgz", - "integrity": "sha512-fnkhw+fmX65kiLqk6E3BFLXNC26rUhK90zVwe2yncPliVT/Qos3xjhTLE59Df8KnPlcwIERXKVlU1bXoUQ+liA==", - "dev": true - }, - "@npmcli/promise-spawn": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-1.3.2.tgz", - "integrity": "sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg==", - "dev": true, - "requires": { - "infer-owner": "^1.0.4" - } - }, - "@npmcli/run-script": { - "version": "1.8.6", - "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-1.8.6.tgz", - "integrity": "sha512-e42bVZnC6VluBZBAFEr3YrdqSspG3bgilyg4nSLBJ7TRGNCzxHa92XAHxQBLYg0BmgwO4b2mf3h/l5EkEWRn3g==", - "dev": true, - "requires": { - "@npmcli/node-gyp": "^1.0.2", - "@npmcli/promise-spawn": "^1.3.2", - "node-gyp": "^7.1.0", - "read-package-json-fast": "^2.0.1" - }, - "dependencies": { - "node-gyp": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-7.1.2.tgz", - "integrity": "sha512-CbpcIo7C3eMu3dL1c3d0xw449fHIGALIJsRP4DDPHpyiW8vcriNY7ubh9TE4zEKfSxscY7PjeFnshE7h75ynjQ==", - "dev": true, - "requires": { - "env-paths": "^2.2.0", - "glob": "^7.1.4", - "graceful-fs": "^4.2.3", - "nopt": "^5.0.0", - "npmlog": "^4.1.2", - "request": "^2.88.2", - "rimraf": "^3.0.2", - "semver": "^7.3.2", - "tar": "^6.0.2", - "which": "^2.0.2" - } - }, - "nopt": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", - "dev": true, - "requires": { - "abbrev": "1" - } - } - } - }, - "@octokit/auth-token": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.5.0.tgz", - "integrity": "sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==", - "dev": true, - "requires": { - "@octokit/types": "^6.0.3" - } - }, - "@octokit/core": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-3.6.0.tgz", - "integrity": "sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==", - "dev": true, - "requires": { - "@octokit/auth-token": "^2.4.4", - "@octokit/graphql": "^4.5.8", - "@octokit/request": "^5.6.3", - "@octokit/request-error": "^2.0.5", - "@octokit/types": "^6.0.3", - "before-after-hook": "^2.2.0", - "universal-user-agent": "^6.0.0" - } - }, - "@octokit/endpoint": { - "version": "6.0.12", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.12.tgz", - "integrity": "sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==", - "dev": true, - "requires": { - "@octokit/types": "^6.0.3", - "is-plain-object": "^5.0.0", - "universal-user-agent": "^6.0.0" - } - }, - "@octokit/graphql": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.8.0.tgz", - "integrity": "sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==", - "dev": true, - "requires": { - "@octokit/request": "^5.6.0", - "@octokit/types": "^6.0.3", - "universal-user-agent": "^6.0.0" - } - }, - "@octokit/openapi-types": { - "version": "12.11.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.11.0.tgz", - "integrity": "sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==", - "dev": true - }, - "@octokit/plugin-enterprise-rest": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-6.0.1.tgz", - "integrity": "sha512-93uGjlhUD+iNg1iWhUENAtJata6w5nE+V4urXOAlIXdco6xNZtUSfYY8dzp3Udy74aqO/B5UZL80x/YMa5PKRw==", - "dev": true - }, - "@octokit/plugin-paginate-rest": { - "version": "2.21.3", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.21.3.tgz", - "integrity": "sha512-aCZTEf0y2h3OLbrgKkrfFdjRL6eSOo8komneVQJnYecAxIej7Bafor2xhuDJOIFau4pk0i/P28/XgtbyPF0ZHw==", - "dev": true, - "requires": { - "@octokit/types": "^6.40.0" - } - }, - "@octokit/plugin-request-log": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz", - "integrity": "sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==", - "dev": true, - "requires": {} - }, - "@octokit/plugin-rest-endpoint-methods": { - "version": "5.16.2", - "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.16.2.tgz", - "integrity": "sha512-8QFz29Fg5jDuTPXVtey05BLm7OB+M8fnvE64RNegzX7U+5NUXcOcnpTIK0YfSHBg8gYd0oxIq3IZTe9SfPZiRw==", - "dev": true, - "requires": { - "@octokit/types": "^6.39.0", - "deprecation": "^2.3.1" - } - }, - "@octokit/request": { - "version": "5.6.3", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.6.3.tgz", - "integrity": "sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==", - "dev": true, - "requires": { - "@octokit/endpoint": "^6.0.1", - "@octokit/request-error": "^2.1.0", - "@octokit/types": "^6.16.1", - "is-plain-object": "^5.0.0", - "node-fetch": "^2.6.7", - "universal-user-agent": "^6.0.0" - } - }, - "@octokit/request-error": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.1.0.tgz", - "integrity": "sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==", - "dev": true, - "requires": { - "@octokit/types": "^6.0.3", - "deprecation": "^2.0.0", - "once": "^1.4.0" - } - }, - "@octokit/rest": { - "version": "18.12.0", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-18.12.0.tgz", - "integrity": "sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q==", - "dev": true, - "requires": { - "@octokit/core": "^3.5.1", - "@octokit/plugin-paginate-rest": "^2.16.8", - "@octokit/plugin-request-log": "^1.0.4", - "@octokit/plugin-rest-endpoint-methods": "^5.12.0" - } - }, - "@octokit/types": { - "version": "6.41.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.41.0.tgz", - "integrity": "sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==", - "dev": true, - "requires": { - "@octokit/openapi-types": "^12.11.0" - } - }, - "@polka/url": { - "version": "1.0.0-next.21", - "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz", - "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==", - "dev": true - }, - "@sinclair/typebox": { - "version": "0.25.24", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.25.24.tgz", - "integrity": "sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==", - "dev": true - }, - "@sinonjs/commons": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", - "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", - "dev": true, - "requires": { - "type-detect": "4.0.8" - } - }, - "@sinonjs/fake-timers": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.1.0.tgz", - "integrity": "sha512-w1qd368vtrwttm1PRJWPW1QHlbmHrVDGs1eBH/jZvRPUFS4MNXV9Q33EQdjOdeAxZ7O8+3wM7zxztm2nfUSyKw==", - "dev": true, - "requires": { - "@sinonjs/commons": "^3.0.0" - } - }, - "@socket.io/component-emitter": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", - "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==", - "dev": true - }, - "@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "dev": true - }, - "@transia/ripple-address-codec": { - "version": "file:packages/ripple-address-codec", - "requires": { - "base-x": "^3.0.9", - "create-hash": "^1.1.2" - } - }, - "@transia/ripple-binary-codec": { - "version": "file:packages/ripple-binary-codec", - "requires": { - "@transia/ripple-address-codec": "^4.2.8-alpha.0", - "assert": "^2.0.0", - "big-integer": "^1.6.48", - "buffer": "5.6.0", - "create-hash": "^1.2.0", - "decimal.js": "^10.2.0" - }, - "dependencies": { - "buffer": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz", - "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==", - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4" - } - } - } - }, - "@transia/ripple-keypairs": { - "version": "file:packages/ripple-keypairs", - "requires": { - "@transia/ripple-address-codec": "^4.2.8-alpha.0", - "bn.js": "^5.1.1", - "brorand": "^1.0.5", - "elliptic": "^6.5.4", - "hash.js": "^1.0.3" - } - }, - "@transia/xrpl": { - "version": "file:packages/xrpl", - "requires": { - "@geut/browser-node-core": "^2.0.13", - "@transia/ripple-address-codec": "^4.2.8-alpha.0", - "@transia/ripple-binary-codec": "^1.4.6-alpha.2", - "@transia/ripple-keypairs": "^1.1.8-alpha.0", - "@types/node": "^14.18.36", - "assert-browserify": "^2.0.0", - "bignumber.js": "^9.0.0", - "bip32": "^2.0.6", - "bip39": "^3.0.4", - "browserify-fs": "^1.0.0", - "constants-browserify": "^1.0.0", - "https-browserify": "^1.0.0", - "https-proxy-agent": "^5.0.0", - "karma": "^6.4.1", - "karma-chrome-launcher": "^3.1.1", - "karma-jasmine": "^5.1.0", - "karma-webpack": "^5.0.0", - "lodash": "^4.17.4", - "node-polyfill-webpack-plugin": "^2.0.1", - "react": "^18.2.0", - "typedoc": "^0.23.24", - "ws": "^8.2.2" - } - }, - "@tsconfig/node10": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", - "dev": true - }, - "@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true - }, - "@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true - }, - "@tsconfig/node16": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", - "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", - "dev": true - }, - "@types/babel__core": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.0.tgz", - "integrity": "sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ==", - "dev": true, - "requires": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "@types/babel__generator": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", - "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", - "dev": true, - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@types/babel__template": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", - "dev": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "@types/babel__traverse": { - "version": "7.18.5", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.5.tgz", - "integrity": "sha512-enCvTL8m/EHS/zIvJno9nE+ndYPh1/oNFzRYRmtUqJICG2VnCSBzMLW5VN2KCQU91f23tsNKR8v7VJJQMatl7Q==", - "dev": true, - "requires": { - "@babel/types": "^7.3.0" - } - }, - "@types/brorand": { - "version": "1.0.30", - "resolved": "https://registry.npmjs.org/@types/brorand/-/brorand-1.0.30.tgz", - "integrity": "sha512-moU/Mp0MA5vFNGj1/A7Z5TpNC1uyS82I6KZp0Oxk9OKC2XD0S6aQGLVv9ryBYAs259Cq7h9iM1jN9zbuCrUI9w==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/chai": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.5.tgz", - "integrity": "sha512-mEo1sAde+UCE6b2hxn332f1g1E8WfYRu6p5SvTKr2ZKC1f7gFJXk4h5PyGP9Dt6gCaG8y8XhwnXWC6Iy2cmBng==", - "dev": true - }, - "@types/cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", - "dev": true - }, - "@types/cors": { - "version": "2.8.13", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.13.tgz", - "integrity": "sha512-RG8AStHlUiV5ysZQKq97copd2UmVYw3/pRMLefISZ3S1hK104Cwm7iLQ3fTKx+lsUH2CE8FlLaYeEA2LSeqYUA==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/create-hash": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@types/create-hash/-/create-hash-1.2.2.tgz", - "integrity": "sha512-Fg8/kfMJObbETFU/Tn+Y0jieYewryLrbKwLCEIwPyklZZVY2qB+64KFjhplGSw+cseZosfFXctXO+PyIYD8iZQ==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/eslint": { - "version": "8.37.0", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.37.0.tgz", - "integrity": "sha512-Piet7dG2JBuDIfohBngQ3rCt7MgO9xCO4xIMKxBThCq5PNRB91IjlJ10eJVwfoNtvTErmxLzwBZ7rHZtbOMmFQ==", - "dev": true, - "requires": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "@types/eslint-scope": { - "version": "3.7.4", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", - "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", - "dev": true, - "requires": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, - "@types/estree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz", - "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==", - "dev": true - }, - "@types/graceful-fs": { - "version": "4.1.6", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz", - "integrity": "sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/istanbul-lib-coverage": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", - "dev": true - }, - "@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/jest": { - "version": "29.5.1", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.1.tgz", - "integrity": "sha512-tEuVcHrpaixS36w7hpsfLBLpjtMRJUE09/MHXn923LOVojDwyC14cWcfc0rDs0VEfUyYmt/+iX1kxxp+gZMcaQ==", - "dev": true, - "requires": { - "expect": "^29.0.0", - "pretty-format": "^29.0.0" - } - }, - "@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", - "dev": true - }, - "@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true - }, - "@types/lodash": { - "version": "4.14.194", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.194.tgz", - "integrity": "sha512-r22s9tAS7imvBt2lyHC9B8AGwWnXaYb1tY09oyLkXDs4vArpYJzw09nj8MLx5VfciBPGIb+ZwG0ssYnEPJxn/g==", - "dev": true - }, - "@types/minimatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", - "dev": true - }, - "@types/minimist": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", - "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", - "dev": true - }, - "@types/node": { - "version": "14.18.47", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.47.tgz", - "integrity": "sha512-OuJi8bIng4wYHHA3YpKauL58dZrPxro3d0tabPHyiNF8rKfGKuVfr83oFlPLmKri1cX+Z3cJP39GXmnqkP11Gw==", - "dev": true - }, - "@types/normalize-package-data": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", - "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", - "dev": true - }, - "@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", - "dev": true - }, - "@types/prettier": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.2.tgz", - "integrity": "sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==", - "dev": true - }, - "@types/puppeteer": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/@types/puppeteer/-/puppeteer-5.4.6.tgz", - "integrity": "sha512-98Kghehs7+/GD9b56qryhqdqVCXUTbetTv3PlvDnmFRTHQH0j9DIp1f7rkAW3BAj4U3yoeSEQnKgdW8bDq0Y0Q==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/semver": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.0.tgz", - "integrity": "sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==", - "dev": true - }, - "@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "@types/ws": { - "version": "8.5.4", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.4.tgz", - "integrity": "sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/yargs": { - "version": "17.0.24", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz", - "integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "@types/yargs-parser": { - "version": "21.0.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", - "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", - "dev": true - }, - "@types/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", - "dev": true, - "optional": true, - "requires": { - "@types/node": "*" - } - }, - "@typescript-eslint/eslint-plugin": { - "version": "5.59.6", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.6.tgz", - "integrity": "sha512-sXtOgJNEuRU5RLwPUb1jxtToZbgvq3M6FPpY4QENxoOggK+UpTxUBpj6tD8+Qh2g46Pi9We87E+eHnUw8YcGsw==", - "dev": true, - "requires": { - "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.59.6", - "@typescript-eslint/type-utils": "5.59.6", - "@typescript-eslint/utils": "5.59.6", - "debug": "^4.3.4", - "grapheme-splitter": "^1.0.4", - "ignore": "^5.2.0", - "natural-compare-lite": "^1.4.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/parser": { - "version": "5.59.6", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.6.tgz", - "integrity": "sha512-7pCa6al03Pv1yf/dUg/s1pXz/yGMUBAw5EeWqNTFiSueKvRNonze3hma3lhdsOrQcaOXhbk5gKu2Fludiho9VA==", - "dev": true, - "requires": { - "@typescript-eslint/scope-manager": "5.59.6", - "@typescript-eslint/types": "5.59.6", - "@typescript-eslint/typescript-estree": "5.59.6", - "debug": "^4.3.4" - } - }, - "@typescript-eslint/scope-manager": { - "version": "5.59.6", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.6.tgz", - "integrity": "sha512-gLbY3Le9Dxcb8KdpF0+SJr6EQ+hFGYFl6tVY8VxLPFDfUZC7BHFw+Vq7bM5lE9DwWPfx4vMWWTLGXgpc0mAYyQ==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.59.6", - "@typescript-eslint/visitor-keys": "5.59.6" - } - }, - "@typescript-eslint/type-utils": { - "version": "5.59.6", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.6.tgz", - "integrity": "sha512-A4tms2Mp5yNvLDlySF+kAThV9VTBPCvGf0Rp8nl/eoDX9Okun8byTKoj3fJ52IJitjWOk0fKPNQhXEB++eNozQ==", - "dev": true, - "requires": { - "@typescript-eslint/typescript-estree": "5.59.6", - "@typescript-eslint/utils": "5.59.6", - "debug": "^4.3.4", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/types": { - "version": "5.59.6", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.6.tgz", - "integrity": "sha512-tH5lBXZI7T2MOUgOWFdVNUILsI02shyQvfzG9EJkoONWugCG77NDDa1EeDGw7oJ5IvsTAAGVV8I3Tk2PNu9QfA==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "5.59.6", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.6.tgz", - "integrity": "sha512-vW6JP3lMAs/Tq4KjdI/RiHaaJSO7IUsbkz17it/Rl9Q+WkQ77EOuOnlbaU8kKfVIOJxMhnRiBG+olE7f3M16DA==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.59.6", - "@typescript-eslint/visitor-keys": "5.59.6", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/utils": { - "version": "5.59.6", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.6.tgz", - "integrity": "sha512-vzaaD6EXbTS29cVH0JjXBdzMt6VBlv+hE31XktDRMX1j3462wZCJa7VzO2AxXEXcIl8GQqZPcOPuW/Z1tZVogg==", - "dev": true, - "requires": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.59.6", - "@typescript-eslint/types": "5.59.6", - "@typescript-eslint/typescript-estree": "5.59.6", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "5.59.6", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.6.tgz", - "integrity": "sha512-zEfbFLzB9ETcEJ4HZEEsCR9HHeNku5/Qw1jSS5McYJv5BR+ftYXwFFAH5Al+xkGaZEqowMwl7uoJjQb1YSPF8Q==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.59.6", - "eslint-visitor-keys": "^3.3.0" - } - }, - "@webassemblyjs/ast": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", - "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", - "dev": true, - "requires": { - "@webassemblyjs/helper-numbers": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6" - } - }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", - "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", - "dev": true - }, - "@webassemblyjs/helper-api-error": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", - "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", - "dev": true - }, - "@webassemblyjs/helper-buffer": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", - "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==", - "dev": true - }, - "@webassemblyjs/helper-numbers": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", - "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", - "dev": true, - "requires": { - "@webassemblyjs/floating-point-hex-parser": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", - "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", - "dev": true - }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", - "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6" - } - }, - "@webassemblyjs/ieee754": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", - "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", - "dev": true, - "requires": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "@webassemblyjs/leb128": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", - "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", - "dev": true, - "requires": { - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/utf8": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", - "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", - "dev": true - }, - "@webassemblyjs/wasm-edit": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", - "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/helper-wasm-section": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-opt": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6", - "@webassemblyjs/wast-printer": "1.11.6" - } - }, - "@webassemblyjs/wasm-gen": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", - "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" - } - }, - "@webassemblyjs/wasm-opt": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", - "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6" - } - }, - "@webassemblyjs/wasm-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", - "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" - } - }, - "@webassemblyjs/wast-printer": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", - "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.6", - "@xtuc/long": "4.2.2" - } - }, - "@webpack-cli/configtest": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.0.tgz", - "integrity": "sha512-K/vuv72vpfSEZoo5KIU0a2FsEoYdW0DUMtMpB5X3LlUwshetMZRZRxB7sCsVji/lFaSxtQQ3aM9O4eMolXkU9w==", - "dev": true, - "requires": {} - }, - "@webpack-cli/info": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.1.tgz", - "integrity": "sha512-fE1UEWTwsAxRhrJNikE7v4EotYflkEhBL7EbajfkPlf6E37/2QshOy/D48Mw8G5XMFlQtS6YV42vtbG9zBpIQA==", - "dev": true, - "requires": {} - }, - "@webpack-cli/serve": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.4.tgz", - "integrity": "sha512-0xRgjgDLdz6G7+vvDLlaRpFatJaJ69uTalZLRSMX5B3VUrDmXcrVA3+6fXXQgmYz7bY9AAgs348XQdmtLsK41A==", - "dev": true, - "requires": {} - }, - "@xrplf/eslint-config": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/@xrplf/eslint-config/-/eslint-config-1.10.1.tgz", - "integrity": "sha512-T8fLEcWb9YEt/n97NIIUTYLOqzUIHMzPWC2RHg5KCtOrhE6P7okxE5p5AtFG2XxJh9OuGvyvMBwma8vtLFugMg==", - "dev": true, - "requires": { - "confusing-browser-globals": "^1.0.11", - "eslint-config-airbnb": "^19.0.4", - "eslint-config-prettier": "^8.8.0" - } - }, - "@xrplf/prettier-config": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/@xrplf/prettier-config/-/prettier-config-1.9.1.tgz", - "integrity": "sha512-1k4WCTstvGiTJQYUNTZhz4BM2DI/kVBRXh1Dw5fVaVDiGVb4YOuzxFNgipOWX/EllrjRTN5NNGLJEDk0nsMFEg==", - "dev": true - }, - "@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true - }, - "@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true - }, - "abab": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", - "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", - "dev": true - }, - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true - }, - "abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "dev": true, - "requires": { - "event-target-shim": "^5.0.0" - } - }, - "abstract-leveldown": { - "version": "0.12.4", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-0.12.4.tgz", - "integrity": "sha512-TOod9d5RDExo6STLMGa+04HGkl+TlMfbDnTyN93/ETJ9DpQ0DaYLqcMZlbXvdc4W3vVo1Qrl+WhSp8zvDsJ+jA==", - "dev": true, - "requires": { - "xtend": "~3.0.0" - }, - "dependencies": { - "xtend": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-3.0.0.tgz", - "integrity": "sha512-sp/sT9OALMjRW1fKDlPeuSZlDQpkqReA0pyJukniWbTGoEKefHxhGJynE3PNhUMlcM8qWIjPwecwCw4LArS5Eg==", - "dev": true - } - } - }, - "accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "dev": true, - "requires": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - } - }, - "acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", - "dev": true - }, - "acorn-import-assertions": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", - "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", - "dev": true, - "requires": {} - }, - "acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "requires": {} - }, - "acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "dev": true - }, - "add-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/add-stream/-/add-stream-1.0.0.tgz", - "integrity": "sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==", - "dev": true - }, - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "requires": { - "debug": "4" - } - }, - "agentkeepalive": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.3.0.tgz", - "integrity": "sha512-7Epl1Blf4Sy37j4v9f9FjICCh4+KAQOyXgHEwlyBiAQLbhKdq/i2QQU3amQalS/wPhdPzDXPL5DMR5bkn+YeWg==", - "dev": true, - "requires": { - "debug": "^4.1.0", - "depd": "^2.0.0", - "humanize-ms": "^1.2.1" - } - }, - "aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - } - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "requires": {} - }, - "ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "requires": { - "type-fest": "^0.21.3" - }, - "dependencies": { - "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true - } - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-sequence-parser": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ansi-sequence-parser/-/ansi-sequence-parser-1.1.0.tgz", - "integrity": "sha512-lEm8mt52to2fT8GhciPCGeCXACSz2UwIN4X2e2LJSnZ5uAbn2/dsYdOmUXq0AtWS5cpAupysIneExOgH0Vd2TQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "append-transform": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", - "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", - "dev": true, - "requires": { - "default-require-extensions": "^3.0.0" - } - }, - "aproba": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", - "dev": true - }, - "archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==", - "dev": true - }, - "are-we-there-yet": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", - "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", - "dev": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true - }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "aria-query": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", - "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", - "dev": true, - "peer": true, - "requires": { - "deep-equal": "^2.0.5" - } - }, - "array-buffer-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", - "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "is-array-buffer": "^3.0.1" - } - }, - "array-differ": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz", - "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==", - "dev": true - }, - "array-ify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", - "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==", - "dev": true - }, - "array-includes": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", - "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", - "is-string": "^1.0.7" - } - }, - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true - }, - "array.prototype.flat": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", - "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-shim-unscopables": "^1.0.0" - } - }, - "array.prototype.flatmap": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", - "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-shim-unscopables": "^1.0.0" - } - }, - "array.prototype.reduce": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.5.tgz", - "integrity": "sha512-kDdugMl7id9COE8R7MHF5jWk7Dqt/fs4Pv+JXoICnYwqpjjjbUurz6w5fT5IG6brLdJhv6/VoHB0H7oyIBXd+Q==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-array-method-boxes-properly": "^1.0.0", - "is-string": "^1.0.7" - } - }, - "array.prototype.tosorted": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz", - "integrity": "sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==", - "dev": true, - "peer": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-shim-unscopables": "^1.0.0", - "get-intrinsic": "^1.1.3" - } - }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", - "dev": true - }, - "asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", - "dev": true - }, - "asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "dev": true, - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", - "dev": true, - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, - "assert": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-2.0.0.tgz", - "integrity": "sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A==", - "requires": { - "es6-object-assign": "^1.1.0", - "is-nan": "^1.2.1", - "object-is": "^1.0.1", - "util": "^0.12.0" - } - }, - "assert-browserify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/assert-browserify/-/assert-browserify-2.0.0.tgz", - "integrity": "sha512-SJvtrHmyaOT57oKWIpzWZr2hLkFyXjg5ajNT+RHvd9fhpruhrJF0OYT0yy8rIgvSn3xQp/VpLQAOwO0KNVKrJw==", - "dev": true, - "requires": { - "es6-object-assign": "^1.1.0", - "is-nan": "^1.2.1", - "object-is": "^1.0.1", - "util": "^0.12.0" - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", - "dev": true - }, - "assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", - "dev": true - }, - "ast-types-flow": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", - "integrity": "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==", - "dev": true, - "peer": true - }, - "async": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", - "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", - "dev": true - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true - }, - "at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "dev": true - }, - "available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==" - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", - "dev": true - }, - "aws4": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz", - "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==", - "dev": true - }, - "axe-core": { - "version": "4.7.1", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.7.1.tgz", - "integrity": "sha512-sCXXUhA+cljomZ3ZAwb8i1p3oOlkABzPy08ZDAoGcYuvtBPlQ1Ytde129ArXyHWDhfeewq7rlx9F+cUx2SSlkg==", - "dev": true, - "peer": true - }, - "axobject-query": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.1.1.tgz", - "integrity": "sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==", - "dev": true, - "peer": true, - "requires": { - "deep-equal": "^2.0.5" - } - }, - "babel-jest": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.5.0.tgz", - "integrity": "sha512-mA4eCDh5mSo2EcA9xQjVTpmbbNk32Zb3Q3QFQsNhaK56Q+yoXowzFodLux30HRgyOho5rsQ6B0P9QpMkvvnJ0Q==", - "dev": true, - "requires": { - "@jest/transform": "^29.5.0", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^29.5.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" - } - }, - "babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - } - }, - "babel-plugin-jest-hoist": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.5.0.tgz", - "integrity": "sha512-zSuuuAlTMT4mzLj2nPnUm6fsE6270vdOfnpbJ+RmruU75UhLFvL0N2NgI7xpeS7NaB6hGqmd5pVpGTDYvi4Q3w==", - "dev": true, - "requires": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.1.14", - "@types/babel__traverse": "^7.0.6" - } - }, - "babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", - "dev": true, - "requires": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - } - }, - "babel-preset-jest": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.5.0.tgz", - "integrity": "sha512-JOMloxOqdiBSxMAzjRaH023/vvcaSaec49zvg+2LmNsktC7ei39LTJGw02J+9uUtTZUq6xbLyJ4dxe9sSmIuAg==", - "dev": true, - "requires": { - "babel-plugin-jest-hoist": "^29.5.0", - "babel-preset-current-node-syntax": "^1.0.0" - } - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "base-x": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", - "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" - }, - "base64id": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", - "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", - "dev": true - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", - "dev": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "before-after-hook": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", - "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==", - "dev": true - }, - "big-integer": { - "version": "1.6.51", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", - "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==" - }, - "bignumber.js": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz", - "integrity": "sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==" - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true - }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "requires": { - "file-uri-to-path": "1.0.0" - } - }, - "bip32": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/bip32/-/bip32-2.0.6.tgz", - "integrity": "sha512-HpV5OMLLGTjSVblmrtYRfFFKuQB+GArM0+XP8HGWfJ5vxYBqo+DesvJwOdC2WJ3bCkZShGf0QIfoIpeomVzVdA==", - "requires": { - "@types/node": "10.12.18", - "bs58check": "^2.1.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "tiny-secp256k1": "^1.1.3", - "typeforce": "^1.11.5", - "wif": "^2.0.6" - }, - "dependencies": { - "@types/node": { - "version": "10.12.18", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.18.tgz", - "integrity": "sha512-fh+pAqt4xRzPfqA6eh3Z2y6fyZavRIumvjhaCL753+TVkGKGhpPeyrJG2JftD0T9q4GF00KjefsQ+PQNDdWQaQ==" - } - } - }, - "bip39": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bip39/-/bip39-3.1.0.tgz", - "integrity": "sha512-c9kiwdk45Do5GL0vJMe7tS95VjCii65mYAH7DfWl3uW8AVzXKQVUm64i3hzVybBDMp9r7j9iNxR85+ul8MdN/A==", - "requires": { - "@noble/hashes": "^1.2.0" - } - }, - "bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dev": true, - "requires": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - }, - "dependencies": { - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - } - } - }, - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" - }, - "body-parser": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", - "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", - "dev": true, - "requires": { - "bytes": "3.1.2", - "content-type": "~1.0.5", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.2", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "dev": true, - "requires": { - "side-channel": "^1.0.4" - } - } - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" - }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dev": true, - "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dev": true, - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "browserify-fs": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browserify-fs/-/browserify-fs-1.0.0.tgz", - "integrity": "sha512-8LqHRPuAEKvyTX34R6tsw4bO2ro6j9DmlYBhiYWHRM26Zv2cBw1fJOU0NeUQ0RkXkPn/PFBjhA0dm4AgaBurTg==", - "dev": true, - "requires": { - "level-filesystem": "^1.0.1", - "level-js": "^2.1.3", - "levelup": "^0.18.2" - } - }, - "browserify-rsa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", - "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", - "dev": true, - "requires": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", - "dev": true, - "requires": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, - "browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "dev": true, - "requires": { - "pako": "~1.0.5" - } - }, - "browserslist": { - "version": "4.21.5", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", - "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001449", - "electron-to-chromium": "^1.4.284", - "node-releases": "^2.0.8", - "update-browserslist-db": "^1.0.10" - } - }, - "bs-logger": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", - "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", - "dev": true, - "requires": { - "fast-json-stable-stringify": "2.x" - } - }, - "bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", - "requires": { - "base-x": "^3.0.2" - } - }, - "bs58check": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", - "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", - "requires": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0", - "safe-buffer": "^5.1.2" - } - }, - "bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "dev": true, - "requires": { - "node-int64": "^0.4.0" - } - }, - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "dev": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "dev": true - }, - "buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", - "dev": true - }, - "builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==", - "dev": true - }, - "builtins": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", - "integrity": "sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==", - "dev": true - }, - "byline": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/byline/-/byline-5.0.0.tgz", - "integrity": "sha512-s6webAy+R4SR8XVuJWt2V2rGvhnrhxN+9S15GNuTK3wKPOXFF6RNc+8ug2XhH+2s4f+uudG4kUVYmYOQWL2g0Q==", - "dev": true - }, - "byte-size": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/byte-size/-/byte-size-7.0.1.tgz", - "integrity": "sha512-crQdqyCwhokxwV1UyDzLZanhkugAgft7vt0qbbdt60C6Zf3CAiGmtUCylbtYwrU6loOUw3euGrNtW1J651ot1A==", - "dev": true - }, - "bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "dev": true - }, - "cacache": { - "version": "15.3.0", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", - "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", - "dev": true, - "requires": { - "@npmcli/fs": "^1.0.0", - "@npmcli/move-file": "^1.0.1", - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "infer-owner": "^1.0.4", - "lru-cache": "^6.0.0", - "minipass": "^3.1.1", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^1.0.3", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^8.0.1", - "tar": "^6.0.2", - "unique-filename": "^1.1.1" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "caching-transform": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", - "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", - "dev": true, - "requires": { - "hasha": "^5.0.0", - "make-dir": "^3.0.0", - "package-hash": "^4.0.0", - "write-file-atomic": "^3.0.0" - }, - "dependencies": { - "write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - } - } - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "camelcase-keys": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", - "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", - "dev": true, - "requires": { - "camelcase": "^5.3.1", - "map-obj": "^4.0.0", - "quick-lru": "^4.0.1" - } - }, - "caniuse-lite": { - "version": "1.0.30001487", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001487.tgz", - "integrity": "sha512-83564Z3yWGqXsh2vaH/mhXfEM0wX+NlBCm1jYHOb97TrTWJEmPTccZgeLTPBUUb0PNVo+oomb7wkimZBIERClA==", - "dev": true - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", - "dev": true - }, - "chai": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz", - "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==", - "dev": true, - "requires": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^4.1.2", - "get-func-name": "^2.0.0", - "loupe": "^2.3.1", - "pathval": "^1.1.1", - "type-detect": "^4.0.5" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", - "dev": true - }, - "chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true - }, - "check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", - "dev": true - }, - "chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "dependencies": { - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - } - } - }, - "chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "dev": true - }, - "chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", - "dev": true - }, - "ci-info": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", - "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", - "dev": true - }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "cjs-module-lexer": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", - "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", - "dev": true - }, - "clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true - }, - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "requires": { - "restore-cursor": "^3.1.0" - } - }, - "cli-width": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", - "dev": true - }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", - "dev": true - }, - "clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - }, - "dependencies": { - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - } - } - }, - "cmd-shim": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-4.1.0.tgz", - "integrity": "sha512-lb9L7EM4I/ZRVuljLPEtUJOP+xiQVknZ4ZMpMgEp4JzNldPb27HU03hi6K1/6CoIuit/Zm/LQXySErFeXxDprw==", - "dev": true, - "requires": { - "mkdirp-infer-owner": "^2.0.0" - } - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", - "dev": true - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", - "dev": true - }, - "collect-v8-coverage": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", - "dev": true - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "colorette": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", - "dev": true - }, - "columnify": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/columnify/-/columnify-1.6.0.tgz", - "integrity": "sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q==", - "dev": true, - "requires": { - "strip-ansi": "^6.0.1", - "wcwidth": "^1.0.0" - } - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "comment-parser": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.3.1.tgz", - "integrity": "sha512-B52sN2VNghyq5ofvUsqZjmk6YkihBX5vMSChmSK9v4ShjKf3Vk5Xcmgpw4o+iIgtrnM/u5FiMpz9VKb8lpBveA==", - "dev": true - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", - "dev": true - }, - "compare-func": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", - "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==", - "dev": true, - "requires": { - "array-ify": "^1.0.0", - "dot-prop": "^5.1.0" - }, - "dependencies": { - "dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", - "dev": true, - "requires": { - "is-obj": "^2.0.0" - } - } - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "concat-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", - "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.0.2", - "typedarray": "^0.0.6" - } - }, - "config-chain": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", - "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", - "dev": true, - "requires": { - "ini": "^1.3.4", - "proto-list": "~1.2.1" - } - }, - "confusing-browser-globals": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", - "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", - "dev": true - }, - "connect": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", - "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", - "dev": true, - "requires": { - "debug": "2.6.9", - "finalhandler": "1.1.2", - "parseurl": "~1.3.3", - "utils-merge": "1.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - } - } - }, - "console-browserify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", - "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", - "dev": true - }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", - "dev": true - }, - "constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==", - "dev": true - }, - "content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "dev": true - }, - "conventional-changelog-angular": { - "version": "5.0.13", - "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz", - "integrity": "sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==", - "dev": true, - "requires": { - "compare-func": "^2.0.0", - "q": "^1.5.1" - } - }, - "conventional-changelog-core": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-4.2.4.tgz", - "integrity": "sha512-gDVS+zVJHE2v4SLc6B0sLsPiloR0ygU7HaDW14aNJE1v4SlqJPILPl/aJC7YdtRE4CybBf8gDwObBvKha8Xlyg==", - "dev": true, - "requires": { - "add-stream": "^1.0.0", - "conventional-changelog-writer": "^5.0.0", - "conventional-commits-parser": "^3.2.0", - "dateformat": "^3.0.0", - "get-pkg-repo": "^4.0.0", - "git-raw-commits": "^2.0.8", - "git-remote-origin-url": "^2.0.0", - "git-semver-tags": "^4.1.1", - "lodash": "^4.17.15", - "normalize-package-data": "^3.0.0", - "q": "^1.5.1", - "read-pkg": "^3.0.0", - "read-pkg-up": "^3.0.0", - "through2": "^4.0.0" - }, - "dependencies": { - "through2": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", - "dev": true, - "requires": { - "readable-stream": "3" - } - } - } - }, - "conventional-changelog-preset-loader": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.3.4.tgz", - "integrity": "sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g==", - "dev": true - }, - "conventional-changelog-writer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-5.0.1.tgz", - "integrity": "sha512-5WsuKUfxW7suLblAbFnxAcrvf6r+0b7GvNaWUwUIk0bXMnENP/PEieGKVUQrjPqwPT4o3EPAASBXiY6iHooLOQ==", - "dev": true, - "requires": { - "conventional-commits-filter": "^2.0.7", - "dateformat": "^3.0.0", - "handlebars": "^4.7.7", - "json-stringify-safe": "^5.0.1", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "semver": "^6.0.0", - "split": "^1.0.0", - "through2": "^4.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "through2": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", - "dev": true, - "requires": { - "readable-stream": "3" - } - } - } - }, - "conventional-commits-filter": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.7.tgz", - "integrity": "sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA==", - "dev": true, - "requires": { - "lodash.ismatch": "^4.4.0", - "modify-values": "^1.0.0" - } - }, - "conventional-commits-parser": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.4.tgz", - "integrity": "sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==", - "dev": true, - "requires": { - "is-text-path": "^1.0.1", - "JSONStream": "^1.0.4", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "split2": "^3.0.0", - "through2": "^4.0.0" - }, - "dependencies": { - "through2": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", - "dev": true, - "requires": { - "readable-stream": "3" - } - } - } - }, - "conventional-recommended-bump": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-6.1.0.tgz", - "integrity": "sha512-uiApbSiNGM/kkdL9GTOLAqC4hbptObFo4wW2QRyHsKciGAfQuLU1ShZ1BIVI/+K2BE/W1AWYQMCXAsv4dyKPaw==", - "dev": true, - "requires": { - "concat-stream": "^2.0.0", - "conventional-changelog-preset-loader": "^2.3.4", - "conventional-commits-filter": "^2.0.7", - "conventional-commits-parser": "^3.2.0", - "git-raw-commits": "^2.0.8", - "git-semver-tags": "^4.1.1", - "meow": "^8.0.0", - "q": "^1.5.1" - } - }, - "convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true - }, - "cookie": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", - "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", - "dev": true - }, - "copyfiles": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/copyfiles/-/copyfiles-2.4.1.tgz", - "integrity": "sha512-fereAvAvxDrQDOXybk3Qu3dPbOoKoysFMWtkY3mv5BsL8//OSZVL5DCLYqgRfY5cWirgRzlC+WSrxp6Bo3eNZg==", - "dev": true, - "requires": { - "glob": "^7.0.5", - "minimatch": "^3.0.3", - "mkdirp": "^1.0.4", - "noms": "0.0.0", - "through2": "^2.0.1", - "untildify": "^4.0.0", - "yargs": "^16.1.0" - } - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", - "dev": true - }, - "cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "dev": true, - "requires": { - "object-assign": "^4", - "vary": "^1" - } - }, - "cosmiconfig": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", - "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", - "dev": true, - "requires": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - } - }, - "create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, - "create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true - }, - "cross-fetch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", - "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", - "dev": true, - "requires": { - "node-fetch": "2.6.7" - }, - "dependencies": { - "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dev": true, - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dev": true, - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - } - } - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dev": true, - "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - } - }, - "custom-event": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", - "integrity": "sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg==", - "dev": true - }, - "damerau-levenshtein": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", - "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", - "dev": true, - "peer": true - }, - "dargs": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", - "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==", - "dev": true - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "date-format": { - "version": "4.0.14", - "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.14.tgz", - "integrity": "sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==", - "dev": true - }, - "dateformat": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", - "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", - "dev": true - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "requires": { - "ms": "2.1.2" - } - }, - "debuglog": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz", - "integrity": "sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw==", - "dev": true - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "dev": true - }, - "decamelize-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", - "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", - "dev": true, - "requires": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" - }, - "dependencies": { - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", - "dev": true - } - } - }, - "decimal.js": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", - "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==" - }, - "decode-uri-component": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", - "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", - "dev": true - }, - "dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", - "dev": true - }, - "deep-eql": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", - "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", - "dev": true, - "requires": { - "type-detect": "^4.0.0" - } - }, - "deep-equal": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.1.tgz", - "integrity": "sha512-lKdkdV6EOGoVn65XaOsPdH4rMxTZOnmFyuIkMjM1i5HHCbfjC97dawgTAy0deYNfuqUqW+Q5VrVaQYtUpSd6yQ==", - "dev": true, - "peer": true, - "requires": { - "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.2", - "es-get-iterator": "^1.1.3", - "get-intrinsic": "^1.2.0", - "is-arguments": "^1.1.1", - "is-array-buffer": "^3.0.2", - "is-date-object": "^1.0.5", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "isarray": "^2.0.5", - "object-is": "^1.1.5", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.0", - "side-channel": "^1.0.4", - "which-boxed-primitive": "^1.0.2", - "which-collection": "^1.0.1", - "which-typed-array": "^1.1.9" - } - }, - "deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", - "dev": true - }, - "default-require-extensions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.1.tgz", - "integrity": "sha512-eXTJmRbm2TIt9MgWTsOH1wEuhew6XGZcMeGKCtLedIg/NCsg1iBePXkceTdK4Fii7pzmN9tGsZhKzZ4h7O/fxw==", - "dev": true, - "requires": { - "strip-bom": "^4.0.0" - } - }, - "defaults": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", - "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", - "dev": true, - "requires": { - "clone": "^1.0.2" - } - }, - "deferred-leveldown": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-0.2.0.tgz", - "integrity": "sha512-+WCbb4+ez/SZ77Sdy1iadagFiVzMB89IKOBhglgnUkVxOxRWmmFsz8UDSNWh4Rhq+3wr/vMFlYj+rdEwWUDdng==", - "dev": true, - "requires": { - "abstract-leveldown": "~0.12.1" - } - }, - "define-properties": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", - "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", - "requires": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true - }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", - "dev": true - }, - "depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true - }, - "deprecation": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", - "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", - "dev": true - }, - "des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "dev": true - }, - "detect-indent": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", - "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", - "dev": true - }, - "detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", - "dev": true - }, - "devtools-protocol": { - "version": "0.0.981744", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.981744.tgz", - "integrity": "sha512-0cuGS8+jhR67Fy7qG3i3Pc7Aw494sb9yG9QgpG97SFVWwolgYjlhJg7n+UaHxOQT30d1TYu/EYe9k01ivLErIg==", - "dev": true - }, - "dezalgo": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz", - "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==", - "dev": true, - "requires": { - "asap": "^2.0.0", - "wrappy": "1" - } - }, - "di": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", - "integrity": "sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA==", - "dev": true - }, - "diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true - }, - "diff-sequences": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.4.3.tgz", - "integrity": "sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==", - "dev": true - }, - "diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "requires": { - "path-type": "^4.0.0" - } - }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "dom-serialize": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", - "integrity": "sha512-Yra4DbvoW7/Z6LBN560ZwXMjoNOSAN2wRsKFGc4iBeso+mpIA6qj1vfdf9HpMaKAqG6wXTy+1SYEzmNpKXOSsQ==", - "dev": true, - "requires": { - "custom-event": "~1.0.0", - "ent": "~2.2.0", - "extend": "^3.0.0", - "void-elements": "^2.0.0" - } - }, - "domain-browser": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-4.22.0.tgz", - "integrity": "sha512-IGBwjF7tNk3cwypFNH/7bfzBcgSCbaMOD3GsaY1AU/JRrnHnYgEM0+9kQt52iZxjNsjBtJYtao146V+f8jFZNw==", - "dev": true - }, - "dot-prop": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", - "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", - "dev": true, - "requires": { - "is-obj": "^2.0.0" - } - }, - "duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", - "dev": true - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", - "dev": true, - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", - "dev": true - }, - "ejs": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz", - "integrity": "sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==", - "dev": true, - "requires": { - "jake": "^10.8.5" - } - }, - "electron-to-chromium": { - "version": "1.4.397", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.397.tgz", - "integrity": "sha512-jwnPxhh350Q/aMatQia31KAIQdhEsYS0fFZ0BQQlN9tfvOEwShu6ZNwI4kL/xBabjcB/nTy6lSt17kNIluJZ8Q==", - "dev": true - }, - "elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "requires": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - } - } - }, - "emittery": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", - "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", - "dev": true - }, - "emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true, - "peer": true - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "dev": true - }, - "encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "dev": true, - "optional": true, - "requires": { - "iconv-lite": "^0.6.2" - }, - "dependencies": { - "iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, - "optional": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - } - } - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "engine.io": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.4.2.tgz", - "integrity": "sha512-FKn/3oMiJjrOEOeUub2WCox6JhxBXq/Zn3fZOMCBxKnNYtsdKjxhl7yR3fZhM9PV+rdE75SU5SYMc+2PGzo+Tg==", - "dev": true, - "requires": { - "@types/cookie": "^0.4.1", - "@types/cors": "^2.8.12", - "@types/node": ">=10.0.0", - "accepts": "~1.3.4", - "base64id": "2.0.0", - "cookie": "~0.4.1", - "cors": "~2.8.5", - "debug": "~4.3.1", - "engine.io-parser": "~5.0.3", - "ws": "~8.11.0" - }, - "dependencies": { - "ws": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", - "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", - "dev": true, - "requires": {} - } - } - }, - "engine.io-parser": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.6.tgz", - "integrity": "sha512-tjuoZDMAdEhVnSFleYPCtdL2GXwVTGtNjoeJd9IhIG3C1xs9uwxqRNEu5WpnDZCaozwVlK/nuQhpodhXSIMaxw==", - "dev": true - }, - "enhanced-resolve": { - "version": "5.14.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.14.0.tgz", - "integrity": "sha512-+DCows0XNwLDcUhbFJPdlQEVnT2zXlCv7hPxemTz86/O+B/hCQ+mb7ydkPKiflpVraqLPCAfu7lDy+hBXueojw==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - } - }, - "ent": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", - "integrity": "sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA==", - "dev": true - }, - "env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "dev": true - }, - "envinfo": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", - "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", - "dev": true - }, - "err-code": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", - "dev": true - }, - "errno": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", - "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", - "dev": true, - "requires": { - "prr": "~1.0.1" - } - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es-abstract": { - "version": "1.21.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.2.tgz", - "integrity": "sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==", - "dev": true, - "requires": { - "array-buffer-byte-length": "^1.0.0", - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-set-tostringtag": "^2.0.1", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.2.0", - "get-symbol-description": "^1.0.0", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.5", - "is-array-buffer": "^3.0.2", - "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.10", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.3", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", - "safe-regex-test": "^1.0.0", - "string.prototype.trim": "^1.2.7", - "string.prototype.trimend": "^1.0.6", - "string.prototype.trimstart": "^1.0.6", - "typed-array-length": "^1.0.4", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.9" - } - }, - "es-array-method-boxes-properly": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", - "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", - "dev": true - }, - "es-get-iterator": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", - "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", - "dev": true, - "peer": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "has-symbols": "^1.0.3", - "is-arguments": "^1.1.1", - "is-map": "^2.0.2", - "is-set": "^2.0.2", - "is-string": "^1.0.7", - "isarray": "^2.0.5", - "stop-iteration-iterator": "^1.0.0" - } - }, - "es-module-lexer": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.2.1.tgz", - "integrity": "sha512-9978wrXM50Y4rTMmW5kXIC09ZdXQZqkE4mxhwkd8VbzsGkXGPgV4zWuqQJgCEzYngdo2dYDa0l8xhX4fkSwJSg==", - "dev": true - }, - "es-set-tostringtag": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", - "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.3", - "has": "^1.0.3", - "has-tostringtag": "^1.0.0" - } - }, - "es-shim-unscopables": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", - "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "es6-error": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", - "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", - "dev": true - }, - "es6-object-assign": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz", - "integrity": "sha512-MEl9uirslVwqQU369iHNWZXsI8yaZYGg/D65aOgZkeyFJwHYSxilf7rQzXKI7DdDuBPrBXbfk3sl9hJhmd5AUw==" - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", - "dev": true - }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - }, - "eslint": { - "version": "8.40.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.40.0.tgz", - "integrity": "sha512-bvR+TsP9EHL3TqNtj9sCNJVAFK3fBN8Q7g5waghxyRsPLIMwL73XSKnZFK0hk/O2ANC+iAoq6PWMQ+IfBAJIiQ==", - "dev": true, - "requires": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.4.0", - "@eslint/eslintrc": "^2.0.3", - "@eslint/js": "8.40.0", - "@humanwhocodes/config-array": "^0.11.8", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.0", - "eslint-visitor-keys": "^3.4.1", - "espree": "^9.5.2", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "grapheme-splitter": "^1.0.4", - "ignore": "^5.2.0", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-sdsl": "^4.1.4", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0" - }, - "dependencies": { - "eslint-scope": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", - "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - } - } - } - }, - "eslint-config-airbnb": { - "version": "19.0.4", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-19.0.4.tgz", - "integrity": "sha512-T75QYQVQX57jiNgpF9r1KegMICE94VYwoFQyMGhrvc+lB8YF2E/M/PYDaQe1AJcWaEgqLE+ErXV1Og/+6Vyzew==", - "dev": true, - "requires": { - "eslint-config-airbnb-base": "^15.0.0", - "object.assign": "^4.1.2", - "object.entries": "^1.1.5" - } - }, - "eslint-config-airbnb-base": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", - "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", - "dev": true, - "requires": { - "confusing-browser-globals": "^1.0.10", - "object.assign": "^4.1.2", - "object.entries": "^1.1.5", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "eslint-config-prettier": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz", - "integrity": "sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==", - "dev": true, - "requires": {} - }, - "eslint-import-resolver-node": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz", - "integrity": "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==", - "dev": true, - "requires": { - "debug": "^3.2.7", - "is-core-module": "^2.11.0", - "resolve": "^1.22.1" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "eslint-module-utils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", - "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", - "dev": true, - "requires": { - "debug": "^3.2.7" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "eslint-plugin-array-func": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/eslint-plugin-array-func/-/eslint-plugin-array-func-3.1.8.tgz", - "integrity": "sha512-BjnbJvw+knaHgVddIL3q5xYcoqAZoK8wOdT7QF+mkvSAjXdZCdhL0z71Y7oRtgXA8BpN9QLJ2uHgD3I6ymlbOw==", - "dev": true, - "requires": {} - }, - "eslint-plugin-consistent-default-export-name": { - "version": "0.0.15", - "resolved": "https://registry.npmjs.org/eslint-plugin-consistent-default-export-name/-/eslint-plugin-consistent-default-export-name-0.0.15.tgz", - "integrity": "sha512-gqW7dnJbWMxI5H6/Pyz6Sl/vBMwOktePMI2iuuKPb4N82uvemUkfaWhsRZCKndSzpIVaCZ9wdspCVO1tm0wXJQ==", - "dev": true, - "requires": { - "lodash": "^4.17.21", - "pkg-dir": "^5.0.0" - } - }, - "eslint-plugin-es": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz", - "integrity": "sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==", - "dev": true, - "requires": { - "eslint-utils": "^2.0.0", - "regexpp": "^3.0.0" - } - }, - "eslint-plugin-eslint-comments": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-eslint-comments/-/eslint-plugin-eslint-comments-3.2.0.tgz", - "integrity": "sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5", - "ignore": "^5.0.5" - }, - "dependencies": { - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true - } - } - }, - "eslint-plugin-import": { - "version": "2.27.5", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz", - "integrity": "sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==", - "dev": true, - "requires": { - "array-includes": "^3.1.6", - "array.prototype.flat": "^1.3.1", - "array.prototype.flatmap": "^1.3.1", - "debug": "^3.2.7", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.7", - "eslint-module-utils": "^2.7.4", - "has": "^1.0.3", - "is-core-module": "^2.11.0", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.values": "^1.1.6", - "resolve": "^1.22.1", - "semver": "^6.3.0", - "tsconfig-paths": "^3.14.1" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "eslint-plugin-jsdoc": { - "version": "39.9.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-39.9.1.tgz", - "integrity": "sha512-Rq2QY6BZP2meNIs48aZ3GlIlJgBqFCmR55+UBvaDkA3ZNQ0SvQXOs2QKkubakEijV8UbIVbVZKsOVN8G3MuqZw==", - "dev": true, - "requires": { - "@es-joy/jsdoccomment": "~0.36.1", - "comment-parser": "1.3.1", - "debug": "^4.3.4", - "escape-string-regexp": "^4.0.0", - "esquery": "^1.4.0", - "semver": "^7.3.8", - "spdx-expression-parse": "^3.0.1" - } - }, - "eslint-plugin-jsx-a11y": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.1.tgz", - "integrity": "sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==", - "dev": true, - "peer": true, - "requires": { - "@babel/runtime": "^7.20.7", - "aria-query": "^5.1.3", - "array-includes": "^3.1.6", - "array.prototype.flatmap": "^1.3.1", - "ast-types-flow": "^0.0.7", - "axe-core": "^4.6.2", - "axobject-query": "^3.1.1", - "damerau-levenshtein": "^1.0.8", - "emoji-regex": "^9.2.2", - "has": "^1.0.3", - "jsx-ast-utils": "^3.3.3", - "language-tags": "=1.0.5", - "minimatch": "^3.1.2", - "object.entries": "^1.1.6", - "object.fromentries": "^2.0.6", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "peer": true - } - } - }, - "eslint-plugin-node": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz", - "integrity": "sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==", - "dev": true, - "requires": { - "eslint-plugin-es": "^3.0.0", - "eslint-utils": "^2.0.0", - "ignore": "^5.1.1", - "minimatch": "^3.0.4", - "resolve": "^1.10.1", - "semver": "^6.1.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "eslint-plugin-prettier": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", - "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", - "dev": true, - "requires": { - "prettier-linter-helpers": "^1.0.0" - } - }, - "eslint-plugin-react": { - "version": "7.32.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz", - "integrity": "sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==", - "dev": true, - "peer": true, - "requires": { - "array-includes": "^3.1.6", - "array.prototype.flatmap": "^1.3.1", - "array.prototype.tosorted": "^1.1.1", - "doctrine": "^2.1.0", - "estraverse": "^5.3.0", - "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "minimatch": "^3.1.2", - "object.entries": "^1.1.6", - "object.fromentries": "^2.0.6", - "object.hasown": "^1.1.2", - "object.values": "^1.1.6", - "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.4", - "semver": "^6.3.0", - "string.prototype.matchall": "^4.0.8" - }, - "dependencies": { - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "peer": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "resolve": { - "version": "2.0.0-next.4", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", - "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", - "dev": true, - "peer": true, - "requires": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "peer": true - } - } - }, - "eslint-plugin-react-hooks": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", - "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", - "dev": true, - "peer": true, - "requires": {} - }, - "eslint-plugin-tsdoc": { - "version": "0.2.17", - "resolved": "https://registry.npmjs.org/eslint-plugin-tsdoc/-/eslint-plugin-tsdoc-0.2.17.tgz", - "integrity": "sha512-xRmVi7Zx44lOBuYqG8vzTXuL6IdGOeF9nHX17bjJ8+VE6fsxpdGem0/SBTmAwgYMKYB1WBkqRJVQ+n8GK041pA==", - "dev": true, - "requires": { - "@microsoft/tsdoc": "0.14.2", - "@microsoft/tsdoc-config": "0.16.2" - } - }, - "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "dependencies": { - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true - } - } - }, - "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^1.1.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - } - } - }, - "eslint-visitor-keys": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", - "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", - "dev": true - }, - "espree": { - "version": "9.5.2", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.2.tgz", - "integrity": "sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==", - "dev": true, - "requires": { - "acorn": "^8.8.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", - "dev": true, - "requires": { - "estraverse": "^5.1.0" - } - }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "requires": { - "estraverse": "^5.2.0" - } - }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", - "dev": true - }, - "eventemitter2": { - "version": "6.4.9", - "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.9.tgz", - "integrity": "sha512-JEPTiaOt9f04oa6NOkc4aH+nVp5I3wEjpHbIPqfgCdD5v5bUzy7xQqwcVO2aDQgOWhI28da57HksMrzK9HlRxg==", - "dev": true - }, - "eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true - }, - "events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true - }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dev": true, - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - } - }, - "exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", - "dev": true - }, - "expect": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-29.5.0.tgz", - "integrity": "sha512-yM7xqUrCO2JdpFo4XpM82t+PJBFybdqoQuJLDGeDX2ij8NZzqRHyu3Hp188/JX7SWqud+7t4MUdvcgGBICMHZg==", - "dev": true, - "requires": { - "@jest/expect-utils": "^29.5.0", - "jest-get-type": "^29.4.3", - "jest-matcher-utils": "^29.5.0", - "jest-message-util": "^29.5.0", - "jest-util": "^29.5.0" - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dev": true, - "requires": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - } - }, - "extract-zip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", - "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", - "dev": true, - "requires": { - "@types/yauzl": "^2.9.1", - "debug": "^4.1.1", - "get-stream": "^5.1.0", - "yauzl": "^2.10.0" - }, - "dependencies": { - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - } - } - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", - "dev": true - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "fast-diff": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", - "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", - "dev": true - }, - "fast-glob": { - "version": "3.2.12", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", - "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "dependencies": { - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - } - } - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "fastest-levenshtein": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", - "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", - "dev": true - }, - "fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", - "dev": true, - "requires": { - "reusify": "^1.0.4" - } - }, - "fb-watchman": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", - "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", - "dev": true, - "requires": { - "bser": "2.1.1" - } - }, - "fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", - "dev": true, - "requires": { - "pend": "~1.2.0" - } - }, - "figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - }, - "dependencies": { - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true - } - } - }, - "file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "requires": { - "flat-cache": "^3.0.4" - } - }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" - }, - "filelist": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", - "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", - "dev": true, - "requires": { - "minimatch": "^5.0.1" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - } - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "filter-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz", - "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==", - "dev": true - }, - "finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "dev": true, - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", - "dev": true, - "requires": { - "ee-first": "1.1.1" - } - } - } - }, - "find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "dependencies": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - } - } - }, - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "requires": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - } - }, - "flatted": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", - "dev": true - }, - "follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", - "dev": true - }, - "for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "requires": { - "is-callable": "^1.1.3" - } - }, - "foreach": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.6.tgz", - "integrity": "sha512-k6GAGDyqLe9JaebCsFCoudPPWfihKu8pylYXRlqP1J7ms39iPoTtk2fviNglIeQEwdh0bQeKJ01ZPyuyQvKzwg==", - "dev": true - }, - "foreground-child": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", - "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.0", - "signal-exit": "^3.0.2" - } - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", - "dev": true - }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "fromentries": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz", - "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==", - "dev": true - }, - "fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true - }, - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "function.prototype.name": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", - "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" - } - }, - "functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true - }, - "fwd-stream": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/fwd-stream/-/fwd-stream-1.0.4.tgz", - "integrity": "sha512-q2qaK2B38W07wfPSQDKMiKOD5Nzv2XyuvQlrmh1q0pxyHNanKHq8lwQ6n9zHucAwA5EbzRJKEgds2orn88rYTg==", - "dev": true, - "requires": { - "readable-stream": "~1.0.26-4" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", - "dev": true - }, - "readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", - "dev": true - } - } - }, - "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==", - "dev": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true - }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - } - } - }, - "gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "get-func-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", - "dev": true - }, - "get-intrinsic": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", - "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3" - } - }, - "get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true - }, - "get-pkg-repo": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-4.2.1.tgz", - "integrity": "sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA==", - "dev": true, - "requires": { - "@hutson/parse-repository-url": "^3.0.0", - "hosted-git-info": "^4.0.0", - "through2": "^2.0.0", - "yargs": "^16.2.0" - } - }, - "get-port": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz", - "integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==", - "dev": true - }, - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true - }, - "get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - } - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "git-raw-commits": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.11.tgz", - "integrity": "sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==", - "dev": true, - "requires": { - "dargs": "^7.0.0", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "split2": "^3.0.0", - "through2": "^4.0.0" - }, - "dependencies": { - "through2": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", - "dev": true, - "requires": { - "readable-stream": "3" - } - } - } - }, - "git-remote-origin-url": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz", - "integrity": "sha512-eU+GGrZgccNJcsDH5LkXR3PB9M958hxc7sbA8DFJjrv9j4L2P/eZfKhM+QD6wyzpiv+b1BpK0XrYCxkovtjSLw==", - "dev": true, - "requires": { - "gitconfiglocal": "^1.0.0", - "pify": "^2.3.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true - } - } - }, - "git-semver-tags": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-4.1.1.tgz", - "integrity": "sha512-OWyMt5zBe7xFs8vglMmhM9lRQzCWL3WjHtxNNfJTMngGym7pC1kh8sP6jevfydJ6LP3ZvGxfb6ABYgPUM0mtsA==", - "dev": true, - "requires": { - "meow": "^8.0.0", - "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "git-up": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/git-up/-/git-up-4.0.5.tgz", - "integrity": "sha512-YUvVDg/vX3d0syBsk/CKUTib0srcQME0JyHkL5BaYdwLsiCslPWmDSi8PUMo9pXYjrryMcmsCoCgsTpSCJEQaA==", - "dev": true, - "requires": { - "is-ssh": "^1.3.0", - "parse-url": "^6.0.0" - } - }, - "git-url-parse": { - "version": "11.6.0", - "resolved": "https://registry.npmjs.org/git-url-parse/-/git-url-parse-11.6.0.tgz", - "integrity": "sha512-WWUxvJs5HsyHL6L08wOusa/IXYtMuCAhrMmnTjQPpBU0TTHyDhnOATNH3xNQz7YOQUsqIIPTGr4xiVti1Hsk5g==", - "dev": true, - "requires": { - "git-up": "^4.0.0" - } - }, - "gitconfiglocal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz", - "integrity": "sha512-spLUXeTAVHxDtKsJc8FkFVgFtMdEN9qPGpL23VfSHx4fP4+Ds097IXLvymbnDH8FnmxX5Nr9bPw3A+AQ6mWEaQ==", - "dev": true, - "requires": { - "ini": "^1.3.2" - } - }, - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "requires": { - "is-glob": "^4.0.3" - } - }, - "glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true - }, - "globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", - "dev": true, - "requires": { - "define-properties": "^1.1.3" - } - }, - "globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - } - }, - "gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "requires": { - "get-intrinsic": "^1.1.3" - } - }, - "graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true - }, - "grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", - "dev": true - }, - "gzip-size": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", - "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", - "dev": true, - "requires": { - "duplexer": "^0.1.2" - } - }, - "handlebars": { - "version": "4.7.7", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", - "dev": true, - "requires": { - "minimist": "^1.2.5", - "neo-async": "^2.6.0", - "source-map": "^0.6.1", - "uglify-js": "^3.1.4", - "wordwrap": "^1.0.0" - } - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", - "dev": true - }, - "har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "dev": true, - "requires": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - } - }, - "hard-rejection": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", - "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", - "dev": true - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "requires": { - "get-intrinsic": "^1.1.1" - } - }, - "has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==" - }, - "has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" - }, - "has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "requires": { - "has-symbols": "^1.0.2" - } - }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", - "dev": true - }, - "hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "hasha": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", - "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", - "dev": true, - "requires": { - "is-stream": "^2.0.0", - "type-fest": "^0.8.0" - }, - "dependencies": { - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - } - } - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "http-cache-semantics": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", - "dev": true - }, - "http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dev": true, - "requires": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "dependencies": { - "statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "dev": true - } - } - }, - "http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "dev": true, - "requires": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - } - }, - "http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "dev": true, - "requires": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - } - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==", - "dev": true - }, - "https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "requires": { - "agent-base": "6", - "debug": "4" - } - }, - "human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true - }, - "humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", - "dev": true, - "requires": { - "ms": "^2.0.0" - } - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "idb-wrapper": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/idb-wrapper/-/idb-wrapper-1.7.2.tgz", - "integrity": "sha512-zfNREywMuf0NzDo9mVsL0yegjsirJxHpKHvWcyRozIqQy89g0a3U+oBPOCN4cc0oCiOuYgZHimzaW/R46G1Mpg==", - "dev": true - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" - }, - "ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", - "dev": true - }, - "ignore-walk": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz", - "integrity": "sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==", - "dev": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", - "dev": true, - "requires": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "dependencies": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - } - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true - }, - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true - }, - "indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha512-i0G7hLJ1z0DE8dsqJa2rycj9dBmNKgXBvotXtZYXakU9oivfB9Uj2ZBC27qqef2U58/ZLwalxa1X/RDCdkHtVg==", - "dev": true - }, - "infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, - "init-package-json": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/init-package-json/-/init-package-json-2.0.5.tgz", - "integrity": "sha512-u1uGAtEFu3VA6HNl/yUWw57jmKEMx8SKOxHhxjGnOFUiIlFnohKDFg4ZrPpv9wWqk44nDxGJAtqjdQFm+9XXQA==", - "dev": true, - "requires": { - "npm-package-arg": "^8.1.5", - "promzard": "^0.3.0", - "read": "~1.0.1", - "read-package-json": "^4.1.1", - "semver": "^7.3.5", - "validate-npm-package-license": "^3.0.4", - "validate-npm-package-name": "^3.0.0" - }, - "dependencies": { - "read-package-json": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-4.1.2.tgz", - "integrity": "sha512-Dqer4pqzamDE2O4M55xp1qZMuLPqi4ldk2ya648FOMHRjwMzFhuxVrG04wd0c38IsvkVdr3vgHI6z+QTPdAjrQ==", - "dev": true, - "requires": { - "glob": "^7.1.1", - "json-parse-even-better-errors": "^2.3.0", - "normalize-package-data": "^3.0.0", - "npm-normalize-package-bin": "^1.0.0" - } - } - } - }, - "inquirer": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", - "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", - "dev": true, - "requires": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.19", - "mute-stream": "0.0.8", - "run-async": "^2.4.0", - "rxjs": "^6.6.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6" - } - }, - "internal-slot": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", - "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", - "dev": true, - "requires": { - "get-intrinsic": "^1.2.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - } - }, - "interpret": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", - "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", - "dev": true - }, - "ip": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", - "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", - "dev": true - }, - "is": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/is/-/is-0.2.7.tgz", - "integrity": "sha512-ajQCouIvkcSnl2iRdK70Jug9mohIHVX9uKpoWnl115ov0R5mzBvRrXxrnHbsA+8AdwCwc/sfw7HXmd4I5EJBdQ==", - "dev": true - }, - "is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-array-buffer": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", - "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", - "is-typed-array": "^1.1.10" - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, - "is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dev": true, - "requires": { - "has-bigints": "^1.0.1" - } - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==" - }, - "is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dev": true, - "requires": { - "ci-info": "^2.0.0" - }, - "dependencies": { - "ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true - } - } - }, - "is-core-module": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", - "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "dev": true - }, - "is-generator-function": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-lambda": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", - "dev": true - }, - "is-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", - "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", - "dev": true, - "peer": true - }, - "is-nan": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz", - "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==", - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" - } - }, - "is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "dev": true - }, - "is-object": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/is-object/-/is-object-0.1.2.tgz", - "integrity": "sha512-GkfZZlIZtpkFrqyAXPQSRBMsaHAw+CgoKe2HXAkjd/sfoI9+hS8PT4wg2rJxdQyUKr7N2vHJbg7/jQtE5l5vBQ==", - "dev": true - }, - "is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true - }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", - "dev": true - }, - "is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "dev": true - }, - "is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-set": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", - "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", - "dev": true, - "peer": true - }, - "is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2" - } - }, - "is-ssh": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/is-ssh/-/is-ssh-1.4.0.tgz", - "integrity": "sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ==", - "dev": true, - "requires": { - "protocols": "^2.0.1" - } - }, - "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true - }, - "is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dev": true, - "requires": { - "has-symbols": "^1.0.2" - } - }, - "is-text-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", - "integrity": "sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==", - "dev": true, - "requires": { - "text-extensions": "^1.0.0" - } - }, - "is-typed-array": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", - "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" - } - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "dev": true - }, - "is-weakmap": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", - "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", - "dev": true, - "peer": true - }, - "is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2" - } - }, - "is-weakset": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", - "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", - "dev": true, - "peer": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - } - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true - }, - "isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true - }, - "isbinaryfile": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", - "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", - "dev": true - }, - "isbuffer": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/isbuffer/-/isbuffer-0.0.0.tgz", - "integrity": "sha512-xU+NoHp+YtKQkaM2HsQchYn0sltxMxew0HavMfHbjnucBoTSGbw745tL+Z7QBANleWM1eEQMenEpi174mIeS4g==", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "dev": true - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", - "dev": true - }, - "istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", - "dev": true - }, - "istanbul-lib-hook": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", - "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", - "dev": true, - "requires": { - "append-transform": "^2.0.0" - } - }, - "istanbul-lib-instrument": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", - "dev": true, - "requires": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "istanbul-lib-processinfo": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.3.tgz", - "integrity": "sha512-NkwHbo3E00oybX6NGJi6ar0B29vxyvNwoC7eJ4G4Yq28UfY758Hgn/heV8VRFhevPED4LXfFz0DQ8z/0kw9zMg==", - "dev": true, - "requires": { - "archy": "^1.0.0", - "cross-spawn": "^7.0.3", - "istanbul-lib-coverage": "^3.2.0", - "p-map": "^3.0.0", - "rimraf": "^3.0.0", - "uuid": "^8.3.2" - }, - "dependencies": { - "p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", - "dev": true, - "requires": { - "aggregate-error": "^3.0.0" - } - } - } - }, - "istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "dev": true, - "requires": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - } - }, - "istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - } - }, - "istanbul-reports": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", - "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", - "dev": true, - "requires": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - } - }, - "jake": { - "version": "10.8.6", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.6.tgz", - "integrity": "sha512-G43Ub9IYEFfu72sua6rzooi8V8Gz2lkfk48rW20vEWCGizeaEPlKB1Kh8JIA84yQbiAEfqlPmSpGgCKKxH3rDA==", - "dev": true, - "requires": { - "async": "^3.2.3", - "chalk": "^4.0.2", - "filelist": "^1.0.4", - "minimatch": "^3.1.2" - } - }, - "jasmine-core": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-4.6.0.tgz", - "integrity": "sha512-O236+gd0ZXS8YAjFx8xKaJ94/erqUliEkJTDedyE7iHvv4ZVqi+q+8acJxu05/WJDKm512EUNn809In37nWlAQ==", - "dev": true - }, - "jest": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest/-/jest-29.5.0.tgz", - "integrity": "sha512-juMg3he2uru1QoXX078zTa7pO85QyB9xajZc6bU+d9yEGwrKX6+vGmJQ3UdVZsvTEUARIdObzH68QItim6OSSQ==", - "dev": true, - "requires": { - "@jest/core": "^29.5.0", - "@jest/types": "^29.5.0", - "import-local": "^3.0.2", - "jest-cli": "^29.5.0" - } - }, - "jest-changed-files": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.5.0.tgz", - "integrity": "sha512-IFG34IUMUaNBIxjQXF/iu7g6EcdMrGRRxaUSw92I/2g2YC6vCdTltl4nHvt7Ci5nSJwXIkCu8Ka1DKF+X7Z1Ag==", - "dev": true, - "requires": { - "execa": "^5.0.0", - "p-limit": "^3.1.0" - } - }, - "jest-circus": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.5.0.tgz", - "integrity": "sha512-gq/ongqeQKAplVxqJmbeUOJJKkW3dDNPY8PjhJ5G0lBRvu0e3EWGxGy5cI4LAGA7gV2UHCtWBI4EMXK8c9nQKA==", - "dev": true, - "requires": { - "@jest/environment": "^29.5.0", - "@jest/expect": "^29.5.0", - "@jest/test-result": "^29.5.0", - "@jest/types": "^29.5.0", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^0.7.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^29.5.0", - "jest-matcher-utils": "^29.5.0", - "jest-message-util": "^29.5.0", - "jest-runtime": "^29.5.0", - "jest-snapshot": "^29.5.0", - "jest-util": "^29.5.0", - "p-limit": "^3.1.0", - "pretty-format": "^29.5.0", - "pure-rand": "^6.0.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - } - }, - "jest-cli": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.5.0.tgz", - "integrity": "sha512-L1KcP1l4HtfwdxXNFCL5bmUbLQiKrakMUriBEcc1Vfz6gx31ORKdreuWvmQVBit+1ss9NNR3yxjwfwzZNdQXJw==", - "dev": true, - "requires": { - "@jest/core": "^29.5.0", - "@jest/test-result": "^29.5.0", - "@jest/types": "^29.5.0", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "import-local": "^3.0.2", - "jest-config": "^29.5.0", - "jest-util": "^29.5.0", - "jest-validate": "^29.5.0", - "prompts": "^2.0.1", - "yargs": "^17.3.1" - }, - "dependencies": { - "cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - } - }, - "yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dev": true, - "requires": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - } - }, - "yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true - } - } - }, - "jest-config": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.5.0.tgz", - "integrity": "sha512-kvDUKBnNJPNBmFFOhDbm59iu1Fii1Q6SxyhXfvylq3UTHbg6o7j/g8k2dZyXWLvfdKB1vAPxNZnMgtKJcmu3kA==", - "dev": true, - "requires": { - "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^29.5.0", - "@jest/types": "^29.5.0", - "babel-jest": "^29.5.0", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-circus": "^29.5.0", - "jest-environment-node": "^29.5.0", - "jest-get-type": "^29.4.3", - "jest-regex-util": "^29.4.3", - "jest-resolve": "^29.5.0", - "jest-runner": "^29.5.0", - "jest-util": "^29.5.0", - "jest-validate": "^29.5.0", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^29.5.0", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" - } - }, - "jest-diff": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.5.0.tgz", - "integrity": "sha512-LtxijLLZBduXnHSniy0WMdaHjmQnt3g5sa16W4p0HqukYTTsyTW3GD1q41TyGl5YFXj/5B2U6dlh5FM1LIMgxw==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^29.4.3", - "jest-get-type": "^29.4.3", - "pretty-format": "^29.5.0" - } - }, - "jest-docblock": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.4.3.tgz", - "integrity": "sha512-fzdTftThczeSD9nZ3fzA/4KkHtnmllawWrXO69vtI+L9WjEIuXWs4AmyME7lN5hU7dB0sHhuPfcKofRsUb/2Fg==", - "dev": true, - "requires": { - "detect-newline": "^3.0.0" - } - }, - "jest-each": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.5.0.tgz", - "integrity": "sha512-HM5kIJ1BTnVt+DQZ2ALp3rzXEl+g726csObrW/jpEGl+CDSSQpOJJX2KE/vEg8cxcMXdyEPu6U4QX5eruQv5hA==", - "dev": true, - "requires": { - "@jest/types": "^29.5.0", - "chalk": "^4.0.0", - "jest-get-type": "^29.4.3", - "jest-util": "^29.5.0", - "pretty-format": "^29.5.0" - } - }, - "jest-environment-node": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.5.0.tgz", - "integrity": "sha512-ExxuIK/+yQ+6PRGaHkKewYtg6hto2uGCgvKdb2nfJfKXgZ17DfXjvbZ+jA1Qt9A8EQSfPnt5FKIfnOO3u1h9qw==", - "dev": true, - "requires": { - "@jest/environment": "^29.5.0", - "@jest/fake-timers": "^29.5.0", - "@jest/types": "^29.5.0", - "@types/node": "*", - "jest-mock": "^29.5.0", - "jest-util": "^29.5.0" - } - }, - "jest-get-type": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.4.3.tgz", - "integrity": "sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg==", - "dev": true - }, - "jest-haste-map": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.5.0.tgz", - "integrity": "sha512-IspOPnnBro8YfVYSw6yDRKh/TiCdRngjxeacCps1cQ9cgVN6+10JUcuJ1EabrgYLOATsIAigxA0rLR9x/YlrSA==", - "dev": true, - "requires": { - "@jest/types": "^29.5.0", - "@types/graceful-fs": "^4.1.3", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.3.2", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^29.4.3", - "jest-util": "^29.5.0", - "jest-worker": "^29.5.0", - "micromatch": "^4.0.4", - "walker": "^1.0.8" - } - }, - "jest-leak-detector": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.5.0.tgz", - "integrity": "sha512-u9YdeeVnghBUtpN5mVxjID7KbkKE1QU4f6uUwuxiY0vYRi9BUCLKlPEZfDGR67ofdFmDz9oPAy2G92Ujrntmow==", - "dev": true, - "requires": { - "jest-get-type": "^29.4.3", - "pretty-format": "^29.5.0" - } - }, - "jest-matcher-utils": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.5.0.tgz", - "integrity": "sha512-lecRtgm/rjIK0CQ7LPQwzCs2VwW6WAahA55YBuI+xqmhm7LAaxokSB8C97yJeYyT+HvQkH741StzpU41wohhWw==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "jest-diff": "^29.5.0", - "jest-get-type": "^29.4.3", - "pretty-format": "^29.5.0" - } - }, - "jest-message-util": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.5.0.tgz", - "integrity": "sha512-Kijeg9Dag6CKtIDA7O21zNTACqD5MD/8HfIV8pdD94vFyFuer52SigdC3IQMhab3vACxXMiFk+yMHNdbqtyTGA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^29.5.0", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^29.5.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - } - }, - "jest-mock": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.5.0.tgz", - "integrity": "sha512-GqOzvdWDE4fAV2bWQLQCkujxYWL7RxjCnj71b5VhDAGOevB3qj3Ovg26A5NI84ZpODxyzaozXLOh2NCgkbvyaw==", - "dev": true, - "requires": { - "@jest/types": "^29.5.0", - "@types/node": "*", - "jest-util": "^29.5.0" - } - }, - "jest-pnp-resolver": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", - "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", - "dev": true, - "requires": {} - }, - "jest-regex-util": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.4.3.tgz", - "integrity": "sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg==", - "dev": true - }, - "jest-resolve": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.5.0.tgz", - "integrity": "sha512-1TzxJ37FQq7J10jPtQjcc+MkCkE3GBpBecsSUWJ0qZNJpmg6m0D9/7II03yJulm3H/fvVjgqLh/k2eYg+ui52w==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.5.0", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^29.5.0", - "jest-validate": "^29.5.0", - "resolve": "^1.20.0", - "resolve.exports": "^2.0.0", - "slash": "^3.0.0" - } - }, - "jest-resolve-dependencies": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.5.0.tgz", - "integrity": "sha512-sjV3GFr0hDJMBpYeUuGduP+YeCRbd7S/ck6IvL3kQ9cpySYKqcqhdLLC2rFwrcL7tz5vYibomBrsFYWkIGGjOg==", - "dev": true, - "requires": { - "jest-regex-util": "^29.4.3", - "jest-snapshot": "^29.5.0" - } - }, - "jest-runner": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.5.0.tgz", - "integrity": "sha512-m7b6ypERhFghJsslMLhydaXBiLf7+jXy8FwGRHO3BGV1mcQpPbwiqiKUR2zU2NJuNeMenJmlFZCsIqzJCTeGLQ==", - "dev": true, - "requires": { - "@jest/console": "^29.5.0", - "@jest/environment": "^29.5.0", - "@jest/test-result": "^29.5.0", - "@jest/transform": "^29.5.0", - "@jest/types": "^29.5.0", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "graceful-fs": "^4.2.9", - "jest-docblock": "^29.4.3", - "jest-environment-node": "^29.5.0", - "jest-haste-map": "^29.5.0", - "jest-leak-detector": "^29.5.0", - "jest-message-util": "^29.5.0", - "jest-resolve": "^29.5.0", - "jest-runtime": "^29.5.0", - "jest-util": "^29.5.0", - "jest-watcher": "^29.5.0", - "jest-worker": "^29.5.0", - "p-limit": "^3.1.0", - "source-map-support": "0.5.13" - }, - "dependencies": { - "source-map-support": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", - "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - } - } - }, - "jest-runtime": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.5.0.tgz", - "integrity": "sha512-1Hr6Hh7bAgXQP+pln3homOiEZtCDZFqwmle7Ew2j8OlbkIu6uE3Y/etJQG8MLQs3Zy90xrp2C0BRrtPHG4zryw==", - "dev": true, - "requires": { - "@jest/environment": "^29.5.0", - "@jest/fake-timers": "^29.5.0", - "@jest/globals": "^29.5.0", - "@jest/source-map": "^29.4.3", - "@jest/test-result": "^29.5.0", - "@jest/transform": "^29.5.0", - "@jest/types": "^29.5.0", - "@types/node": "*", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.5.0", - "jest-message-util": "^29.5.0", - "jest-mock": "^29.5.0", - "jest-regex-util": "^29.4.3", - "jest-resolve": "^29.5.0", - "jest-snapshot": "^29.5.0", - "jest-util": "^29.5.0", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" - } - }, - "jest-snapshot": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.5.0.tgz", - "integrity": "sha512-x7Wolra5V0tt3wRs3/ts3S6ciSQVypgGQlJpz2rsdQYoUKxMxPNaoHMGJN6qAuPJqS+2iQ1ZUn5kl7HCyls84g==", - "dev": true, - "requires": { - "@babel/core": "^7.11.6", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-jsx": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.3.3", - "@jest/expect-utils": "^29.5.0", - "@jest/transform": "^29.5.0", - "@jest/types": "^29.5.0", - "@types/babel__traverse": "^7.0.6", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^29.5.0", - "graceful-fs": "^4.2.9", - "jest-diff": "^29.5.0", - "jest-get-type": "^29.4.3", - "jest-matcher-utils": "^29.5.0", - "jest-message-util": "^29.5.0", - "jest-util": "^29.5.0", - "natural-compare": "^1.4.0", - "pretty-format": "^29.5.0", - "semver": "^7.3.5" - } - }, - "jest-util": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.5.0.tgz", - "integrity": "sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ==", - "dev": true, - "requires": { - "@jest/types": "^29.5.0", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - } - }, - "jest-validate": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.5.0.tgz", - "integrity": "sha512-pC26etNIi+y3HV8A+tUGr/lph9B18GnzSRAkPaaZJIE1eFdiYm6/CewuiJQ8/RlfHd1u/8Ioi8/sJ+CmbA+zAQ==", - "dev": true, - "requires": { - "@jest/types": "^29.5.0", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^29.4.3", - "leven": "^3.1.0", - "pretty-format": "^29.5.0" - }, - "dependencies": { - "camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true - } - } - }, - "jest-watcher": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.5.0.tgz", - "integrity": "sha512-KmTojKcapuqYrKDpRwfqcQ3zjMlwu27SYext9pt4GlF5FUgB+7XE1mcCnSm6a4uUpFyQIkb6ZhzZvHl+jiBCiA==", - "dev": true, - "requires": { - "@jest/test-result": "^29.5.0", - "@jest/types": "^29.5.0", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "jest-util": "^29.5.0", - "string-length": "^4.0.1" - } - }, - "jest-worker": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.5.0.tgz", - "integrity": "sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA==", - "dev": true, - "requires": { - "@types/node": "*", - "jest-util": "^29.5.0", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "dependencies": { - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jju": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", - "integrity": "sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==", - "dev": true - }, - "js-sdsl": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.0.tgz", - "integrity": "sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==", - "dev": true - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", - "dev": true - }, - "jsdoc-type-pratt-parser": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-3.1.0.tgz", - "integrity": "sha512-MgtD0ZiCDk9B+eI73BextfRrVQl0oyzRG8B2BjORts6jbunj4ScKPcyXGTbB6eXL4y9TzxCm6hyeLq/2ASzNdw==", - "dev": true - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", - "dev": true - }, - "json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true - }, - "jsonc-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", - "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", - "dev": true - }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", - "dev": true - }, - "JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", - "dev": true, - "requires": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - } - }, - "jsprim": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", - "dev": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - } - }, - "jsx-ast-utils": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz", - "integrity": "sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==", - "dev": true, - "peer": true, - "requires": { - "array-includes": "^3.1.5", - "object.assign": "^4.1.3" - } - }, - "karma": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/karma/-/karma-6.4.2.tgz", - "integrity": "sha512-C6SU/53LB31BEgRg+omznBEMY4SjHU3ricV6zBcAe1EeILKkeScr+fZXtaI5WyDbkVowJxxAI6h73NcFPmXolQ==", - "dev": true, - "requires": { - "@colors/colors": "1.5.0", - "body-parser": "^1.19.0", - "braces": "^3.0.2", - "chokidar": "^3.5.1", - "connect": "^3.7.0", - "di": "^0.0.1", - "dom-serialize": "^2.2.1", - "glob": "^7.1.7", - "graceful-fs": "^4.2.6", - "http-proxy": "^1.18.1", - "isbinaryfile": "^4.0.8", - "lodash": "^4.17.21", - "log4js": "^6.4.1", - "mime": "^2.5.2", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.5", - "qjobs": "^1.2.0", - "range-parser": "^1.2.1", - "rimraf": "^3.0.2", - "socket.io": "^4.4.1", - "source-map": "^0.6.1", - "tmp": "^0.2.1", - "ua-parser-js": "^0.7.30", - "yargs": "^16.1.1" - }, - "dependencies": { - "mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dev": true, - "requires": { - "minimist": "^1.2.6" - } - }, - "tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", - "dev": true, - "requires": { - "rimraf": "^3.0.0" - } - } - } - }, - "karma-chrome-launcher": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.2.0.tgz", - "integrity": "sha512-rE9RkUPI7I9mAxByQWkGJFXfFD6lE4gC5nPuZdobf/QdTEJI6EU4yIay/cfU/xV4ZxlM5JiTv7zWYgA64NpS5Q==", - "dev": true, - "requires": { - "which": "^1.2.1" - }, - "dependencies": { - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "karma-jasmine": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-5.1.0.tgz", - "integrity": "sha512-i/zQLFrfEpRyQoJF9fsCdTMOF5c2dK7C7OmsuKg2D0YSsuZSfQDiLuaiktbuio6F2wiCsZSnSnieIQ0ant/uzQ==", - "dev": true, - "requires": { - "jasmine-core": "^4.1.0" - } - }, - "karma-webpack": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/karma-webpack/-/karma-webpack-5.0.0.tgz", - "integrity": "sha512-+54i/cd3/piZuP3dr54+NcFeKOPnys5QeM1IY+0SPASwrtHsliXUiCL50iW+K9WWA7RvamC4macvvQ86l3KtaA==", - "dev": true, - "requires": { - "glob": "^7.1.3", - "minimatch": "^3.0.4", - "webpack-merge": "^4.1.5" - }, - "dependencies": { - "webpack-merge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz", - "integrity": "sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==", - "dev": true, - "requires": { - "lodash": "^4.17.15" - } - } - } - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - }, - "kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true - }, - "language-subtag-registry": { - "version": "0.3.22", - "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz", - "integrity": "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==", - "dev": true, - "peer": true - }, - "language-tags": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz", - "integrity": "sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==", - "dev": true, - "peer": true, - "requires": { - "language-subtag-registry": "~0.3.2" - } - }, - "lerna": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/lerna/-/lerna-4.0.0.tgz", - "integrity": "sha512-DD/i1znurfOmNJb0OBw66NmNqiM8kF6uIrzrJ0wGE3VNdzeOhz9ziWLYiRaZDGGwgbcjOo6eIfcx9O5Qynz+kg==", - "dev": true, - "requires": { - "@lerna/add": "4.0.0", - "@lerna/bootstrap": "4.0.0", - "@lerna/changed": "4.0.0", - "@lerna/clean": "4.0.0", - "@lerna/cli": "4.0.0", - "@lerna/create": "4.0.0", - "@lerna/diff": "4.0.0", - "@lerna/exec": "4.0.0", - "@lerna/import": "4.0.0", - "@lerna/info": "4.0.0", - "@lerna/init": "4.0.0", - "@lerna/link": "4.0.0", - "@lerna/list": "4.0.0", - "@lerna/publish": "4.0.0", - "@lerna/run": "4.0.0", - "@lerna/version": "4.0.0", - "import-local": "^3.0.2", - "npmlog": "^4.1.2" - } - }, - "level-blobs": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/level-blobs/-/level-blobs-0.1.7.tgz", - "integrity": "sha512-n0iYYCGozLd36m/Pzm206+brIgXP8mxPZazZ6ZvgKr+8YwOZ8/PPpYC5zMUu2qFygRN8RO6WC/HH3XWMW7RMVg==", - "dev": true, - "requires": { - "level-peek": "1.0.6", - "once": "^1.3.0", - "readable-stream": "^1.0.26-4" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", - "dev": true - }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", - "dev": true - } - } - }, - "level-filesystem": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/level-filesystem/-/level-filesystem-1.2.0.tgz", - "integrity": "sha512-PhXDuCNYpngpxp3jwMT9AYBMgOvB6zxj3DeuIywNKmZqFj2djj9XfT2XDVslfqmo0Ip79cAd3SBy3FsfOZPJ1g==", - "dev": true, - "requires": { - "concat-stream": "^1.4.4", - "errno": "^0.1.1", - "fwd-stream": "^1.0.4", - "level-blobs": "^0.1.7", - "level-peek": "^1.0.6", - "level-sublevel": "^5.2.0", - "octal": "^1.0.0", - "once": "^1.3.0", - "xtend": "^2.2.0" - }, - "dependencies": { - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "xtend": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.2.0.tgz", - "integrity": "sha512-SLt5uylT+4aoXxXuwtQp5ZnMMzhDb1Xkg4pEqc00WUJCQifPfV9Ub1VrNhp9kXkrjZD2I2Hl8WnjP37jzZLPZw==", - "dev": true - } - } - }, - "level-fix-range": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/level-fix-range/-/level-fix-range-1.0.2.tgz", - "integrity": "sha512-9llaVn6uqBiSlBP+wKiIEoBa01FwEISFgHSZiyec2S0KpyLUkGR4afW/FCZ/X8y+QJvzS0u4PGOlZDdh1/1avQ==", - "dev": true - }, - "level-hooks": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/level-hooks/-/level-hooks-4.5.0.tgz", - "integrity": "sha512-fxLNny/vL/G4PnkLhWsbHnEaRi+A/k8r5EH/M77npZwYL62RHi2fV0S824z3QdpAk6VTgisJwIRywzBHLK4ZVA==", - "dev": true, - "requires": { - "string-range": "~1.2" - } - }, - "level-js": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/level-js/-/level-js-2.2.4.tgz", - "integrity": "sha512-lZtjt4ZwHE00UMC1vAb271p9qzg8vKlnDeXfIesH3zL0KxhHRDjClQLGLWhyR0nK4XARnd4wc/9eD1ffd4PshQ==", - "dev": true, - "requires": { - "abstract-leveldown": "~0.12.0", - "idb-wrapper": "^1.5.0", - "isbuffer": "~0.0.0", - "ltgt": "^2.1.2", - "typedarray-to-buffer": "~1.0.0", - "xtend": "~2.1.2" - }, - "dependencies": { - "object-keys": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", - "integrity": "sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw==", - "dev": true - }, - "typedarray-to-buffer": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-1.0.4.tgz", - "integrity": "sha512-vjMKrfSoUDN8/Vnqitw2FmstOfuJ73G6CrSEKnf11A6RmasVxHqfeBcnTb6RsL4pTMuV5Zsv9IiHRphMZyckUw==", - "dev": true - }, - "xtend": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", - "integrity": "sha512-vMNKzr2rHP9Dp/e1NQFnLQlwlhp9L/LfvnsVdHxN1f+uggyVI3i08uD14GPvCToPkdsRfyPqIyYGmIk58V98ZQ==", - "dev": true, - "requires": { - "object-keys": "~0.4.0" - } - } - } - }, - "level-peek": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/level-peek/-/level-peek-1.0.6.tgz", - "integrity": "sha512-TKEzH5TxROTjQxWMczt9sizVgnmJ4F3hotBI48xCTYvOKd/4gA/uY0XjKkhJFo6BMic8Tqjf6jFMLWeg3MAbqQ==", - "dev": true, - "requires": { - "level-fix-range": "~1.0.2" - } - }, - "level-sublevel": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/level-sublevel/-/level-sublevel-5.2.3.tgz", - "integrity": "sha512-tO8jrFp+QZYrxx/Gnmjawuh1UBiifpvKNAcm4KCogesWr1Nm2+ckARitf+Oo7xg4OHqMW76eAqQ204BoIlscjA==", - "dev": true, - "requires": { - "level-fix-range": "2.0", - "level-hooks": ">=4.4.0 <5", - "string-range": "~1.2.1", - "xtend": "~2.0.4" - }, - "dependencies": { - "clone": { - "version": "0.1.19", - "resolved": "https://registry.npmjs.org/clone/-/clone-0.1.19.tgz", - "integrity": "sha512-IO78I0y6JcSpEPHzK4obKdsL7E7oLdRVDVOLwr2Hkbjsb+Eoz0dxW6tef0WizoKu0gLC4oZSZuEF4U2K6w1WQw==", - "dev": true - }, - "level-fix-range": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/level-fix-range/-/level-fix-range-2.0.0.tgz", - "integrity": "sha512-WrLfGWgwWbYPrHsYzJau+5+te89dUbENBg3/lsxOs4p2tYOhCHjbgXxBAj4DFqp3k/XBwitcRXoCh8RoCogASA==", - "dev": true, - "requires": { - "clone": "~0.1.9" - } - }, - "object-keys": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.2.0.tgz", - "integrity": "sha512-XODjdR2pBh/1qrjPcbSeSgEtKbYo7LqYNq64/TPuCf7j9SfDD3i21yatKoIy39yIWNvVM59iutfQQpCv1RfFzA==", - "dev": true, - "requires": { - "foreach": "~2.0.1", - "indexof": "~0.0.1", - "is": "~0.2.6" - } - }, - "xtend": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.0.6.tgz", - "integrity": "sha512-fOZg4ECOlrMl+A6Msr7EIFcON1L26mb4NY5rurSkOex/TWhazOrg6eXD/B0XkuiYcYhQDWLXzQxLMVJ7LXwokg==", - "dev": true, - "requires": { - "is-object": "~0.1.2", - "object-keys": "~0.2.0" - } - } - } - }, - "levelup": { - "version": "0.18.6", - "resolved": "https://registry.npmjs.org/levelup/-/levelup-0.18.6.tgz", - "integrity": "sha512-uB0auyRqIVXx+hrpIUtol4VAPhLRcnxcOsd2i2m6rbFIDarO5dnrupLOStYYpEcu8ZT087Z9HEuYw1wjr6RL6Q==", - "dev": true, - "requires": { - "bl": "~0.8.1", - "deferred-leveldown": "~0.2.0", - "errno": "~0.1.1", - "prr": "~0.0.0", - "readable-stream": "~1.0.26", - "semver": "~2.3.1", - "xtend": "~3.0.0" - }, - "dependencies": { - "bl": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/bl/-/bl-0.8.2.tgz", - "integrity": "sha512-pfqikmByp+lifZCS0p6j6KreV6kNU6Apzpm2nKOk+94cZb/jvle55+JxWiByUQ0Wo/+XnDXEy5MxxKMb6r0VIw==", - "dev": true, - "requires": { - "readable-stream": "~1.0.26" - } - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", - "dev": true - }, - "prr": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz", - "integrity": "sha512-LmUECmrW7RVj6mDWKjTXfKug7TFGdiz9P18HMcO4RHL+RW7MCOGNvpj5j47Rnp6ne6r4fZ2VzyUWEpKbg+tsjQ==", - "dev": true - }, - "readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "semver": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-2.3.2.tgz", - "integrity": "sha512-abLdIKCosKfpnmhS52NCTjO4RiLspDfsn37prjzGrp9im5DPJOgh82Os92vtwGh6XdQryKI/7SREZnV+aqiXrA==", - "dev": true - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", - "dev": true - }, - "xtend": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-3.0.0.tgz", - "integrity": "sha512-sp/sT9OALMjRW1fKDlPeuSZlDQpkqReA0pyJukniWbTGoEKefHxhGJynE3PNhUMlcM8qWIjPwecwCw4LArS5Eg==", - "dev": true - } - } - }, - "leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true - }, - "levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - } - }, - "libnpmaccess": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/libnpmaccess/-/libnpmaccess-4.0.3.tgz", - "integrity": "sha512-sPeTSNImksm8O2b6/pf3ikv4N567ERYEpeKRPSmqlNt1dTZbvgpJIzg5vAhXHpw2ISBsELFRelk0jEahj1c6nQ==", - "dev": true, - "requires": { - "aproba": "^2.0.0", - "minipass": "^3.1.1", - "npm-package-arg": "^8.1.2", - "npm-registry-fetch": "^11.0.0" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "make-fetch-happen": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", - "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", - "dev": true, - "requires": { - "agentkeepalive": "^4.1.3", - "cacache": "^15.2.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^6.0.0", - "minipass": "^3.1.3", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^1.3.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.2", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^6.0.0", - "ssri": "^8.0.0" - } - }, - "npm-registry-fetch": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-11.0.0.tgz", - "integrity": "sha512-jmlgSxoDNuhAtxUIG6pVwwtz840i994dL14FoNVZisrmZW5kWd63IUTNv1m/hyRSGSqWjCUp/YZlS1BJyNp9XA==", - "dev": true, - "requires": { - "make-fetch-happen": "^9.0.1", - "minipass": "^3.1.3", - "minipass-fetch": "^1.3.0", - "minipass-json-stream": "^1.0.1", - "minizlib": "^2.0.0", - "npm-package-arg": "^8.0.0" - } - }, - "socks-proxy-agent": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz", - "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==", - "dev": true, - "requires": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "libnpmpublish": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/libnpmpublish/-/libnpmpublish-4.0.2.tgz", - "integrity": "sha512-+AD7A2zbVeGRCFI2aO//oUmapCwy7GHqPXFJh3qpToSRNU+tXKJ2YFUgjt04LPPAf2dlEH95s6EhIHM1J7bmOw==", - "dev": true, - "requires": { - "normalize-package-data": "^3.0.2", - "npm-package-arg": "^8.1.2", - "npm-registry-fetch": "^11.0.0", - "semver": "^7.1.3", - "ssri": "^8.0.1" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "make-fetch-happen": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", - "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", - "dev": true, - "requires": { - "agentkeepalive": "^4.1.3", - "cacache": "^15.2.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^6.0.0", - "minipass": "^3.1.3", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^1.3.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.2", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^6.0.0", - "ssri": "^8.0.0" - } - }, - "npm-registry-fetch": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-11.0.0.tgz", - "integrity": "sha512-jmlgSxoDNuhAtxUIG6pVwwtz840i994dL14FoNVZisrmZW5kWd63IUTNv1m/hyRSGSqWjCUp/YZlS1BJyNp9XA==", - "dev": true, - "requires": { - "make-fetch-happen": "^9.0.1", - "minipass": "^3.1.3", - "minipass-fetch": "^1.3.0", - "minipass-json-stream": "^1.0.1", - "minizlib": "^2.0.0", - "npm-package-arg": "^8.0.0" - } - }, - "socks-proxy-agent": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz", - "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==", - "dev": true, - "requires": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "load-json-file": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-6.2.0.tgz", - "integrity": "sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.15", - "parse-json": "^5.0.0", - "strip-bom": "^4.0.0", - "type-fest": "^0.6.0" - }, - "dependencies": { - "type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true - } - } - }, - "loader-runner": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", - "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", - "dev": true - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "lodash._reinterpolate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "integrity": "sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA==", - "dev": true - }, - "lodash.flattendeep": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", - "integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==", - "dev": true - }, - "lodash.ismatch": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", - "integrity": "sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==", - "dev": true - }, - "lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", - "dev": true - }, - "lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "lodash.template": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", - "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", - "dev": true, - "requires": { - "lodash._reinterpolate": "^3.0.0", - "lodash.templatesettings": "^4.0.0" - } - }, - "lodash.templatesettings": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", - "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", - "dev": true, - "requires": { - "lodash._reinterpolate": "^3.0.0" - } - }, - "log4js": { - "version": "6.9.1", - "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.9.1.tgz", - "integrity": "sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==", - "dev": true, - "requires": { - "date-format": "^4.0.14", - "debug": "^4.3.4", - "flatted": "^3.2.7", - "rfdc": "^1.3.0", - "streamroller": "^3.1.5" - } - }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, - "loupe": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", - "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==", - "dev": true, - "requires": { - "get-func-name": "^2.0.0" - } - }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "requires": { - "yallist": "^3.0.2" - } - }, - "ltgt": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", - "integrity": "sha512-AI2r85+4MquTw9ZYqabu4nMwy9Oftlfa/e/52t9IjtfG+mGBbTNdAoZ3RQKLHR6r0wQnwZnPIEh/Ya6XTWAKNA==", - "dev": true - }, - "lunr": { - "version": "2.3.9", - "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", - "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", - "dev": true - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "make-fetch-happen": { - "version": "8.0.14", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-8.0.14.tgz", - "integrity": "sha512-EsS89h6l4vbfJEtBZnENTOFk8mCRpY5ru36Xe5bcX1KYIli2mkSHqoFsp5O1wMDvTJJzxe/4THpCTtygjeeGWQ==", - "dev": true, - "requires": { - "agentkeepalive": "^4.1.3", - "cacache": "^15.0.5", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^6.0.0", - "minipass": "^3.1.3", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^1.3.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^5.0.0", - "ssri": "^8.0.0" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "dev": true, - "requires": { - "tmpl": "1.0.5" - } - }, - "map-obj": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", - "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", - "dev": true - }, - "marked": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", - "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", - "dev": true - }, - "md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "dev": true - }, - "memorystream": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", - "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", - "dev": true - }, - "meow": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", - "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", - "dev": true, - "requires": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" - }, - "dependencies": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "dev": true, - "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "dependencies": { - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true - } - } - }, - "read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "dev": true, - "requires": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "dependencies": { - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - } - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "type-fest": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", - "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", - "dev": true - } - } - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true - }, - "micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "requires": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - } - }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dev": true, - "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, - "mime": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", - "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", - "dev": true - }, - "mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true - }, - "mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, - "requires": { - "mime-db": "1.52.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, - "min-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", - "dev": true - }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==" - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true - }, - "minimist-options": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", - "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", - "dev": true, - "requires": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0", - "kind-of": "^6.0.3" - } - }, - "minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - }, - "dependencies": { - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-fetch": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", - "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", - "dev": true, - "requires": { - "encoding": "^0.1.12", - "minipass": "^3.1.0", - "minipass-sized": "^1.0.3", - "minizlib": "^2.0.0" - } - }, - "minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-json-stream": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", - "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", - "dev": true, - "requires": { - "jsonparse": "^1.3.1", - "minipass": "^3.0.0" - } - }, - "minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-sized": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", - "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dev": true, - "requires": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "dependencies": { - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true - }, - "mkdirp-classic": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", - "dev": true - }, - "mkdirp-infer-owner": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mkdirp-infer-owner/-/mkdirp-infer-owner-2.0.0.tgz", - "integrity": "sha512-sdqtiFt3lkOaYvTXSRIUjkIdPTcxgv5+fgqYE/5qgwdw12cOrAuzzgzvVExIkH/ul1oeHN3bCLOWSG3XOqbKKw==", - "dev": true, - "requires": { - "chownr": "^2.0.0", - "infer-owner": "^1.0.4", - "mkdirp": "^1.0.3" - } - }, - "modify-values": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz", - "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==", - "dev": true - }, - "mrmime": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", - "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", - "dev": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "multimatch": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-5.0.0.tgz", - "integrity": "sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==", - "dev": true, - "requires": { - "@types/minimatch": "^3.0.3", - "array-differ": "^3.0.0", - "array-union": "^2.1.0", - "arrify": "^2.0.1", - "minimatch": "^3.0.4" - }, - "dependencies": { - "arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", - "dev": true - } - } - }, - "mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dev": true - }, - "nan": { - "version": "2.17.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz", - "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==" - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "natural-compare-lite": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", - "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", - "dev": true - }, - "negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "dev": true - }, - "neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, - "node-fetch": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.11.tgz", - "integrity": "sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w==", - "dev": true, - "requires": { - "whatwg-url": "^5.0.0" - }, - "dependencies": { - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dev": true, - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - } - } - }, - "node-gyp": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-5.1.1.tgz", - "integrity": "sha512-WH0WKGi+a4i4DUt2mHnvocex/xPLp9pYt5R6M2JdFB7pJ7Z34hveZ4nDTGTiLXCkitA9T8HFZjhinBCiVHYcWw==", - "dev": true, - "requires": { - "env-paths": "^2.2.0", - "glob": "^7.1.4", - "graceful-fs": "^4.2.2", - "mkdirp": "^0.5.1", - "nopt": "^4.0.1", - "npmlog": "^4.1.2", - "request": "^2.88.0", - "rimraf": "^2.6.3", - "semver": "^5.7.1", - "tar": "^4.4.12", - "which": "^1.3.1" - }, - "dependencies": { - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true - }, - "fs-minipass": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", - "dev": true, - "requires": { - "minipass": "^2.6.0" - } - }, - "minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", - "dev": true, - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", - "dev": true, - "requires": { - "minipass": "^2.9.0" - } - }, - "mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dev": true, - "requires": { - "minimist": "^1.2.6" - } - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "tar": { - "version": "4.4.19", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz", - "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==", - "dev": true, - "requires": { - "chownr": "^1.1.4", - "fs-minipass": "^1.2.7", - "minipass": "^2.9.0", - "minizlib": "^1.3.3", - "mkdirp": "^0.5.5", - "safe-buffer": "^5.2.1", - "yallist": "^3.1.1" - } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", - "dev": true - }, - "node-polyfill-webpack-plugin": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/node-polyfill-webpack-plugin/-/node-polyfill-webpack-plugin-2.0.1.tgz", - "integrity": "sha512-ZUMiCnZkP1LF0Th2caY6J/eKKoA0TefpoVa68m/LQU1I/mE8rGt4fNYGgNuCcK+aG8P8P43nbeJ2RqJMOL/Y1A==", - "dev": true, - "requires": { - "assert": "^2.0.0", - "browserify-zlib": "^0.2.0", - "buffer": "^6.0.3", - "console-browserify": "^1.2.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.12.0", - "domain-browser": "^4.22.0", - "events": "^3.3.0", - "filter-obj": "^2.0.2", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "^1.0.1", - "process": "^0.11.10", - "punycode": "^2.1.1", - "querystring-es3": "^0.2.1", - "readable-stream": "^4.0.0", - "stream-browserify": "^3.0.0", - "stream-http": "^3.2.0", - "string_decoder": "^1.3.0", - "timers-browserify": "^2.0.12", - "tty-browserify": "^0.0.1", - "type-fest": "^2.14.0", - "url": "^0.11.0", - "util": "^0.12.4", - "vm-browserify": "^1.1.2" - }, - "dependencies": { - "filter-obj": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-2.0.2.tgz", - "integrity": "sha512-lO3ttPjHZRfjMcxWKb1j1eDhTFsu4meeR3lnMcnBFhk6RuLhvEiuALu2TlfL310ph4lCYYwgF/ElIjdP739tdg==", - "dev": true - }, - "readable-stream": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.4.0.tgz", - "integrity": "sha512-kDMOq0qLtxV9f/SQv522h8cxZBqNZXuXNyjyezmfAAuribMyVXziljpQ/uQhfE1XLg2/TLTW2DsnoE4VAi/krg==", - "dev": true, - "requires": { - "abort-controller": "^3.0.0", - "buffer": "^6.0.3", - "events": "^3.3.0", - "process": "^0.11.10" - } - }, - "type-fest": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", - "dev": true - } - } - }, - "node-preload": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", - "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", - "dev": true, - "requires": { - "process-on-spawn": "^1.0.0" - } - }, - "node-releases": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", - "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==", - "dev": true - }, - "noms": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/noms/-/noms-0.0.0.tgz", - "integrity": "sha512-lNDU9VJaOPxUmXcLb+HQFeUgQQPtMI24Gt6hgfuMHRJgMRHMF/qZ4HJD3GDru4sSw9IQl2jPjAYnQrdIeLbwow==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "readable-stream": "~1.0.31" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", - "dev": true - }, - "readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", - "dev": true - } - } - }, - "nopt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", - "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", - "dev": true, - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - }, - "normalize-package-data": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", - "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", - "dev": true, - "requires": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "dev": true - }, - "npm-bundled": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz", - "integrity": "sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==", - "dev": true, - "requires": { - "npm-normalize-package-bin": "^1.0.1" - } - }, - "npm-install-checks": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-4.0.0.tgz", - "integrity": "sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w==", - "dev": true, - "requires": { - "semver": "^7.1.1" - } - }, - "npm-lifecycle": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/npm-lifecycle/-/npm-lifecycle-3.1.5.tgz", - "integrity": "sha512-lDLVkjfZmvmfvpvBzA4vzee9cn+Me4orq0QF8glbswJVEbIcSNWib7qGOffolysc3teCqbbPZZkzbr3GQZTL1g==", - "dev": true, - "requires": { - "byline": "^5.0.0", - "graceful-fs": "^4.1.15", - "node-gyp": "^5.0.2", - "resolve-from": "^4.0.0", - "slide": "^1.1.6", - "uid-number": "0.0.6", - "umask": "^1.1.0", - "which": "^1.3.1" - }, - "dependencies": { - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "npm-normalize-package-bin": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", - "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", - "dev": true - }, - "npm-package-arg": { - "version": "8.1.5", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.5.tgz", - "integrity": "sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==", - "dev": true, - "requires": { - "hosted-git-info": "^4.0.1", - "semver": "^7.3.4", - "validate-npm-package-name": "^3.0.0" - } - }, - "npm-packlist": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-2.2.2.tgz", - "integrity": "sha512-Jt01acDvJRhJGthnUJVF/w6gumWOZxO7IkpY/lsX9//zqQgnF7OJaxgQXcerd4uQOLu7W5bkb4mChL9mdfm+Zg==", - "dev": true, - "requires": { - "glob": "^7.1.6", - "ignore-walk": "^3.0.3", - "npm-bundled": "^1.1.1", - "npm-normalize-package-bin": "^1.0.1" - } - }, - "npm-pick-manifest": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-6.1.1.tgz", - "integrity": "sha512-dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA==", - "dev": true, - "requires": { - "npm-install-checks": "^4.0.0", - "npm-normalize-package-bin": "^1.0.1", - "npm-package-arg": "^8.1.2", - "semver": "^7.3.4" - } - }, - "npm-registry-fetch": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-9.0.0.tgz", - "integrity": "sha512-PuFYYtnQ8IyVl6ib9d3PepeehcUeHN9IO5N/iCRhyg9tStQcqGQBRVHmfmMWPDERU3KwZoHFvbJ4FPXPspvzbA==", - "dev": true, - "requires": { - "@npmcli/ci-detect": "^1.0.0", - "lru-cache": "^6.0.0", - "make-fetch-happen": "^8.0.9", - "minipass": "^3.1.3", - "minipass-fetch": "^1.3.0", - "minipass-json-stream": "^1.0.1", - "minizlib": "^2.0.0", - "npm-package-arg": "^8.0.0" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "npm-run-all": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", - "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "chalk": "^2.4.1", - "cross-spawn": "^6.0.5", - "memorystream": "^0.3.1", - "minimatch": "^3.0.4", - "pidtree": "^0.3.0", - "read-pkg": "^3.0.0", - "shell-quote": "^1.6.1", - "string.prototype.padend": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", - "dev": true - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "requires": { - "path-key": "^3.0.0" - } - }, - "npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "dev": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", - "dev": true - }, - "nyc": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz", - "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==", - "dev": true, - "requires": { - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "caching-transform": "^4.0.0", - "convert-source-map": "^1.7.0", - "decamelize": "^1.2.0", - "find-cache-dir": "^3.2.0", - "find-up": "^4.1.0", - "foreground-child": "^2.0.0", - "get-package-type": "^0.1.0", - "glob": "^7.1.6", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-hook": "^3.0.0", - "istanbul-lib-instrument": "^4.0.0", - "istanbul-lib-processinfo": "^2.0.2", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "make-dir": "^3.0.0", - "node-preload": "^0.2.1", - "p-map": "^3.0.0", - "process-on-spawn": "^1.0.0", - "resolve-from": "^5.0.0", - "rimraf": "^3.0.0", - "signal-exit": "^3.0.2", - "spawn-wrap": "^2.0.0", - "test-exclude": "^6.0.0", - "yargs": "^15.0.2" - }, - "dependencies": { - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", - "dev": true, - "requires": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", - "dev": true, - "requires": { - "aggregate-error": "^3.0.0" - } - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true - }, - "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - } - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true - }, - "object-inspect": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", - "dev": true - }, - "object-is": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", - "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" - }, - "object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - } - }, - "object.entries": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz", - "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - } - }, - "object.fromentries": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz", - "integrity": "sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==", - "dev": true, - "peer": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - } - }, - "object.getownpropertydescriptors": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.6.tgz", - "integrity": "sha512-lq+61g26E/BgHv0ZTFgRvi7NMEPuAxLkFU7rukXjc/AlwH4Am5xXVnIXy3un1bg/JPbXHrixRkK1itUzzPiIjQ==", - "dev": true, - "requires": { - "array.prototype.reduce": "^1.0.5", - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.21.2", - "safe-array-concat": "^1.0.0" - } - }, - "object.hasown": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.2.tgz", - "integrity": "sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==", - "dev": true, - "peer": true, - "requires": { - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - } - }, - "object.values": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", - "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - } - }, - "octal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/octal/-/octal-1.0.0.tgz", - "integrity": "sha512-nnda7W8d+A3vEIY+UrDQzzboPf1vhs4JYVhff5CDkq9QNoZY7Xrxeo/htox37j9dZf7yNHevZzqtejWgy1vCqQ==", - "dev": true - }, - "on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dev": true, - "requires": { - "ee-first": "1.1.1" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "opener": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", - "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", - "dev": true - }, - "optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "requires": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - } - }, - "os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", - "dev": true - }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==", - "dev": true - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", - "dev": true - }, - "osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "dev": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", - "dev": true - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } - }, - "p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dev": true, - "requires": { - "aggregate-error": "^3.0.0" - } - }, - "p-map-series": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map-series/-/p-map-series-2.1.0.tgz", - "integrity": "sha512-RpYIIK1zXSNEOdwxcfe7FdvGcs7+y5n8rifMhMNWvaxRNMPINJHF5GDeuVxWqnfrcHPSCnp7Oo5yNXHId9Av2Q==", - "dev": true - }, - "p-pipe": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-pipe/-/p-pipe-3.1.0.tgz", - "integrity": "sha512-08pj8ATpzMR0Y80x50yJHn37NF6vjrqHutASaX5LiH5npS9XPvrUmscd9MF5R4fuYRHOxQR1FfMIlF7AzwoPqw==", - "dev": true - }, - "p-queue": { - "version": "6.6.2", - "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", - "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==", - "dev": true, - "requires": { - "eventemitter3": "^4.0.4", - "p-timeout": "^3.2.0" - } - }, - "p-reduce": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-2.1.0.tgz", - "integrity": "sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==", - "dev": true - }, - "p-timeout": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", - "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", - "dev": true, - "requires": { - "p-finally": "^1.0.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "p-waterfall": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-waterfall/-/p-waterfall-2.1.1.tgz", - "integrity": "sha512-RRTnDb2TBG/epPRI2yYXsimO0v3BXC8Yd3ogr1545IaqKK17VGhbWVeGGN+XfCm/08OK8635nH31c8bATkHuSw==", - "dev": true, - "requires": { - "p-reduce": "^2.0.0" - } - }, - "package-hash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", - "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.15", - "hasha": "^5.0.0", - "lodash.flattendeep": "^4.4.0", - "release-zalgo": "^1.0.0" - } - }, - "pacote": { - "version": "11.3.5", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-11.3.5.tgz", - "integrity": "sha512-fT375Yczn4zi+6Hkk2TBe1x1sP8FgFsEIZ2/iWaXY2r/NkhDJfxbcn5paz1+RTFCyNf+dPnaoBDJoAxXSU8Bkg==", - "dev": true, - "requires": { - "@npmcli/git": "^2.1.0", - "@npmcli/installed-package-contents": "^1.0.6", - "@npmcli/promise-spawn": "^1.2.0", - "@npmcli/run-script": "^1.8.2", - "cacache": "^15.0.5", - "chownr": "^2.0.0", - "fs-minipass": "^2.1.0", - "infer-owner": "^1.0.4", - "minipass": "^3.1.3", - "mkdirp": "^1.0.3", - "npm-package-arg": "^8.0.1", - "npm-packlist": "^2.1.4", - "npm-pick-manifest": "^6.0.0", - "npm-registry-fetch": "^11.0.0", - "promise-retry": "^2.0.1", - "read-package-json-fast": "^2.0.1", - "rimraf": "^3.0.2", - "ssri": "^8.0.1", - "tar": "^6.1.0" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "make-fetch-happen": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", - "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", - "dev": true, - "requires": { - "agentkeepalive": "^4.1.3", - "cacache": "^15.2.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^6.0.0", - "minipass": "^3.1.3", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^1.3.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.2", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^6.0.0", - "ssri": "^8.0.0" - } - }, - "npm-registry-fetch": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-11.0.0.tgz", - "integrity": "sha512-jmlgSxoDNuhAtxUIG6pVwwtz840i994dL14FoNVZisrmZW5kWd63IUTNv1m/hyRSGSqWjCUp/YZlS1BJyNp9XA==", - "dev": true, - "requires": { - "make-fetch-happen": "^9.0.1", - "minipass": "^3.1.3", - "minipass-fetch": "^1.3.0", - "minipass-json-stream": "^1.0.1", - "minizlib": "^2.0.0", - "npm-package-arg": "^8.0.0" - } - }, - "socks-proxy-agent": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz", - "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==", - "dev": true, - "requires": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "dev": true - }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "requires": { - "callsites": "^3.0.0" - } - }, - "parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", - "dev": true, - "requires": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - }, - "parse-path": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/parse-path/-/parse-path-4.0.4.tgz", - "integrity": "sha512-Z2lWUis7jlmXC1jeOG9giRO2+FsuyNipeQ43HAjqAZjwSe3SEf+q/84FGPHoso3kyntbxa4c4i77t3m6fGf8cw==", - "dev": true, - "requires": { - "is-ssh": "^1.3.0", - "protocols": "^1.4.0", - "qs": "^6.9.4", - "query-string": "^6.13.8" - }, - "dependencies": { - "protocols": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/protocols/-/protocols-1.4.8.tgz", - "integrity": "sha512-IgjKyaUSjsROSO8/D49Ab7hP8mJgTYcqApOqdPhLoPxAplXmkp+zRvsrSQjFn5by0rhm4VH0GAUELIPpx7B1yg==", - "dev": true - } - } - }, - "parse-url": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/parse-url/-/parse-url-6.0.5.tgz", - "integrity": "sha512-e35AeLTSIlkw/5GFq70IN7po8fmDUjpDPY1rIK+VubRfsUvBonjQ+PBZG+vWMACnQSmNlvl524IucoDmcioMxA==", - "dev": true, - "requires": { - "is-ssh": "^1.3.0", - "normalize-url": "^6.1.0", - "parse-path": "^4.0.0", - "protocols": "^1.4.0" - }, - "dependencies": { - "protocols": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/protocols/-/protocols-1.4.8.tgz", - "integrity": "sha512-IgjKyaUSjsROSO8/D49Ab7hP8mJgTYcqApOqdPhLoPxAplXmkp+zRvsrSQjFn5by0rhm4VH0GAUELIPpx7B1yg==", - "dev": true - } - } - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true - }, - "path-browserify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", - "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", - "dev": true - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true - }, - "pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", - "dev": true - }, - "pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", - "dev": true, - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", - "dev": true - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", - "dev": true - }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true - }, - "pidtree": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", - "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", - "dev": true - }, - "pify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz", - "integrity": "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==", - "dev": true - }, - "pirates": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", - "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", - "dev": true - }, - "pkg-dir": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz", - "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==", - "dev": true, - "requires": { - "find-up": "^5.0.0" - } - }, - "prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true - }, - "prettier": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", - "dev": true - }, - "prettier-linter-helpers": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", - "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", - "dev": true, - "requires": { - "fast-diff": "^1.1.2" - } - }, - "pretty-format": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.5.0.tgz", - "integrity": "sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw==", - "dev": true, - "requires": { - "@jest/schemas": "^29.4.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - } - } - }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", - "dev": true - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "process-on-spawn": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", - "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==", - "dev": true, - "requires": { - "fromentries": "^1.2.0" - } - }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true - }, - "promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", - "dev": true - }, - "promise-retry": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", - "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", - "dev": true, - "requires": { - "err-code": "^2.0.2", - "retry": "^0.12.0" - } - }, - "prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "dev": true, - "requires": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - } - }, - "promzard": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/promzard/-/promzard-0.3.0.tgz", - "integrity": "sha512-JZeYqd7UAcHCwI+sTOeUDYkvEU+1bQ7iE0UT1MgB/tERkAPkesW46MrpIySzODi+owTjZtiF8Ay5j9m60KmMBw==", - "dev": true, - "requires": { - "read": "1" - } - }, - "prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "dev": true, - "peer": true, - "requires": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - }, - "dependencies": { - "react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "dev": true, - "peer": true - } - } - }, - "proto-list": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", - "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", - "dev": true - }, - "protocols": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/protocols/-/protocols-2.0.1.tgz", - "integrity": "sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q==", - "dev": true - }, - "proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "dev": true - }, - "prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", - "dev": true - }, - "psl": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", - "dev": true - }, - "public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", - "dev": true - }, - "puppeteer": { - "version": "13.7.0", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-13.7.0.tgz", - "integrity": "sha512-U1uufzBjz3+PkpCxFrWzh4OrMIdIb2ztzCu0YEPfRHjHswcSwHZswnK+WdsOQJsRV8WeTg3jLhJR4D867+fjsA==", - "dev": true, - "requires": { - "cross-fetch": "3.1.5", - "debug": "4.3.4", - "devtools-protocol": "0.0.981744", - "extract-zip": "2.0.1", - "https-proxy-agent": "5.0.1", - "pkg-dir": "4.2.0", - "progress": "2.0.3", - "proxy-from-env": "1.1.0", - "rimraf": "3.0.2", - "tar-fs": "2.1.1", - "unbzip2-stream": "1.4.3", - "ws": "8.5.0" - }, - "dependencies": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - } - } - }, - "pure-rand": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.2.tgz", - "integrity": "sha512-6Yg0ekpKICSjPswYOuC5sku/TSWaRYlA0qsXqJgM/d/4pLPHPuTxK7Nbf7jFKzAeedUhR8C7K9Uv63FBsSo8xQ==", - "dev": true - }, - "q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", - "dev": true - }, - "qjobs": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", - "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", - "dev": true - }, - "qs": { - "version": "6.11.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", - "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", - "dev": true, - "requires": { - "side-channel": "^1.0.4" - } - }, - "query-string": { - "version": "6.14.1", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-6.14.1.tgz", - "integrity": "sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw==", - "dev": true, - "requires": { - "decode-uri-component": "^0.2.0", - "filter-obj": "^1.1.0", - "split-on-first": "^1.0.0", - "strict-uri-encode": "^2.0.0" - } - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==", - "dev": true - }, - "querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==", - "dev": true - }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true - }, - "quick-lru": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", - "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", - "dev": true - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dev": true, - "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true - }, - "raw-body": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", - "dev": true, - "requires": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - } - }, - "react": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", - "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", - "dev": true, - "requires": { - "loose-envify": "^1.1.0" - } - }, - "react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, - "read": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", - "integrity": "sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ==", - "dev": true, - "requires": { - "mute-stream": "~0.0.4" - } - }, - "read-cmd-shim": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-2.0.0.tgz", - "integrity": "sha512-HJpV9bQpkl6KwjxlJcBoqu9Ba0PQg8TqSNIOrulGt54a0uup0HtevreFHzYzkm0lpnleRdNBzXznKrgxglEHQw==", - "dev": true - }, - "read-package-json": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-3.0.1.tgz", - "integrity": "sha512-aLcPqxovhJTVJcsnROuuzQvv6oziQx4zd3JvG0vGCL5MjTONUc4uJ90zCBC6R7W7oUKBNoR/F8pkyfVwlbxqng==", - "dev": true, - "requires": { - "glob": "^7.1.1", - "json-parse-even-better-errors": "^2.3.0", - "normalize-package-data": "^3.0.0", - "npm-normalize-package-bin": "^1.0.0" - } - }, - "read-package-json-fast": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz", - "integrity": "sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ==", - "dev": true, - "requires": { - "json-parse-even-better-errors": "^2.3.0", - "npm-normalize-package-bin": "^1.0.1" - } - }, - "read-package-tree": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/read-package-tree/-/read-package-tree-5.3.1.tgz", - "integrity": "sha512-mLUDsD5JVtlZxjSlPPx1RETkNjjvQYuweKwNVt1Sn8kP5Jh44pvYuUHCp6xSVDZWbNxVxG5lyZJ921aJH61sTw==", - "dev": true, - "requires": { - "read-package-json": "^2.0.0", - "readdir-scoped-modules": "^1.0.0", - "util-promisify": "^2.1.0" - }, - "dependencies": { - "hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "read-package-json": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.2.tgz", - "integrity": "sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA==", - "dev": true, - "requires": { - "glob": "^7.1.1", - "json-parse-even-better-errors": "^2.3.0", - "normalize-package-data": "^2.0.0", - "npm-normalize-package-bin": "^1.0.0" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, - "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", - "dev": true, - "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - }, - "dependencies": { - "hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - } - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "requires": { - "pify": "^3.0.0" - } - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", - "dev": true - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true - } - } - }, - "read-pkg-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==", - "dev": true, - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" - }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "dev": true - } - } - }, - "readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "readdir-scoped-modules": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz", - "integrity": "sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==", - "dev": true, - "requires": { - "debuglog": "^1.0.1", - "dezalgo": "^1.0.0", - "graceful-fs": "^4.1.2", - "once": "^1.3.0" - } - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "rechoir": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", - "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", - "dev": true, - "requires": { - "resolve": "^1.20.0" - } - }, - "redent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", - "dev": true, - "requires": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" - } - }, - "regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", - "dev": true, - "peer": true - }, - "regexp.prototype.flags": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz", - "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "functions-have-names": "^1.2.3" - } - }, - "regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true - }, - "release-zalgo": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", - "integrity": "sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA==", - "dev": true, - "requires": { - "es6-error": "^4.0.1" - } - }, - "request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "dev": true, - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", - "dev": true - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true - } - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", - "dev": true - }, - "resolve": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", - "dev": true, - "requires": { - "is-core-module": "^2.11.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "requires": { - "resolve-from": "^5.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - } - } - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - }, - "resolve.exports": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", - "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", - "dev": true - }, - "restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } - }, - "retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", - "dev": true - }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true - }, - "rfdc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", - "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "dev": true - }, - "run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "requires": { - "queue-microtask": "^1.2.2" - } - }, - "rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, - "safe-array-concat": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.0.tgz", - "integrity": "sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", - "has-symbols": "^1.0.3", - "isarray": "^2.0.5" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - }, - "safe-regex-test": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "is-regex": "^1.1.4" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "schema-utils": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.2.tgz", - "integrity": "sha512-pvjEHOgWc9OWA/f/DE3ohBWTD6EleVLf7iFUkoSwAxttdBhB9QUebQgxER2kWueOvRJXPHNnyrvvh9eZINB8Eg==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - }, - "semver": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", - "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "serialize-javascript": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", - "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", - "dev": true, - "requires": { - "randombytes": "^2.1.0" - } - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "dev": true - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", - "dev": true - }, - "setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true - }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", - "dev": true, - "requires": { - "kind-of": "^6.0.2" - } - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "shell-quote": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", - "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", - "dev": true - }, - "shiki": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.14.2.tgz", - "integrity": "sha512-ltSZlSLOuSY0M0Y75KA+ieRaZ0Trf5Wl3gutE7jzLuIcWxLp5i/uEnLoQWNvgKXQ5OMpGkJnVMRLAuzjc0LJ2A==", - "dev": true, - "requires": { - "ansi-sequence-parser": "^1.1.0", - "jsonc-parser": "^3.2.0", - "vscode-oniguruma": "^1.7.0", - "vscode-textmate": "^8.0.0" - } - }, - "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, - "signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, - "sirv": { - "version": "1.0.19", - "resolved": "https://registry.npmjs.org/sirv/-/sirv-1.0.19.tgz", - "integrity": "sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ==", - "dev": true, - "requires": { - "@polka/url": "^1.0.0-next.20", - "mrmime": "^1.0.0", - "totalist": "^1.0.0" - } - }, - "sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "slide": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", - "integrity": "sha512-NwrtjCg+lZoqhFU8fOwl4ay2ei8PaqCBOUV3/ektPY9trO1yQ1oXEfmHAhKArUVUr/hOHvy5f6AdP17dCM0zMw==", - "dev": true - }, - "smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "dev": true - }, - "socket.io": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.6.1.tgz", - "integrity": "sha512-KMcaAi4l/8+xEjkRICl6ak8ySoxsYG+gG6/XfRCPJPQ/haCRIJBTL4wIl8YCsmtaBovcAXGLOShyVWQ/FG8GZA==", - "dev": true, - "requires": { - "accepts": "~1.3.4", - "base64id": "~2.0.0", - "debug": "~4.3.2", - "engine.io": "~6.4.1", - "socket.io-adapter": "~2.5.2", - "socket.io-parser": "~4.2.1" - } - }, - "socket.io-adapter": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.2.tgz", - "integrity": "sha512-87C3LO/NOMc+eMcpcxUBebGjkpMDkNBS9tf7KJqcDsmL936EChtVva71Dw2q4tQcuVC+hAUy4an2NO/sYXmwRA==", - "dev": true, - "requires": { - "ws": "~8.11.0" - }, - "dependencies": { - "ws": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", - "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", - "dev": true, - "requires": {} - } - } - }, - "socket.io-parser": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.2.tgz", - "integrity": "sha512-DJtziuKypFkMMHCm2uIshOYC7QaylbtzQwiMYDuCKy3OPkjLzu4B2vAhTlqipRHHzrI0NJeBAizTK7X+6m1jVw==", - "dev": true, - "requires": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.1" - } - }, - "socks": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", - "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", - "dev": true, - "requires": { - "ip": "^2.0.0", - "smart-buffer": "^4.2.0" - } - }, - "socks-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.1.tgz", - "integrity": "sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ==", - "dev": true, - "requires": { - "agent-base": "^6.0.2", - "debug": "4", - "socks": "^2.3.3" - } - }, - "sort-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-4.2.0.tgz", - "integrity": "sha512-aUYIEU/UviqPgc8mHR6IW1EGxkAXpeRETYcrzg8cLAvUPZcpAlleSXHV2mY7G12GphSH6Gzv+4MMVSSkbdteHg==", - "dev": true, - "requires": { - "is-plain-obj": "^2.0.0" - }, - "dependencies": { - "is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "dev": true - } - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "dev": true - }, - "source-map-loader": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.2.tgz", - "integrity": "sha512-BokxPoLjyl3iOrgkWaakaxqnelAJSS+0V+De0kKIq6lyWrXuiPgYTGp6z3iHmqljKAaLXwZa+ctD8GccRJeVvg==", - "dev": true, - "requires": { - "abab": "^2.0.5", - "iconv-lite": "^0.6.3", - "source-map-js": "^1.0.1" - }, - "dependencies": { - "iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - } - } - }, - "source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "spawn-wrap": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", - "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", - "dev": true, - "requires": { - "foreground-child": "^2.0.0", - "is-windows": "^1.0.2", - "make-dir": "^3.0.0", - "rimraf": "^3.0.0", - "signal-exit": "^3.0.2", - "which": "^2.0.1" - } - }, - "spdx-correct": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", - "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.13", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", - "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==", - "dev": true - }, - "split": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", - "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", - "dev": true, - "requires": { - "through": "2" - } - }, - "split-on-first": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", - "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==", - "dev": true - }, - "split2": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", - "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", - "dev": true, - "requires": { - "readable-stream": "^3.0.0" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true - }, - "sshpk": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", - "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", - "dev": true, - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, - "ssri": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", - "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", - "dev": true, - "requires": { - "minipass": "^3.1.1" - } - }, - "stack-utils": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", - "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", - "dev": true, - "requires": { - "escape-string-regexp": "^2.0.0" - }, - "dependencies": { - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true - } - } - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", - "dev": true - }, - "stop-iteration-iterator": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", - "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", - "dev": true, - "peer": true, - "requires": { - "internal-slot": "^1.0.4" - } - }, - "stream-browserify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", - "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", - "dev": true, - "requires": { - "inherits": "~2.0.4", - "readable-stream": "^3.5.0" - } - }, - "stream-http": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.2.0.tgz", - "integrity": "sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==", - "dev": true, - "requires": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "xtend": "^4.0.2" - } - }, - "streamroller": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.5.tgz", - "integrity": "sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==", - "dev": true, - "requires": { - "date-format": "^4.0.14", - "debug": "^4.3.4", - "fs-extra": "^8.1.0" - }, - "dependencies": { - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true - } - } - }, - "strict-uri-encode": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", - "integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==", - "dev": true - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { - "safe-buffer": "~5.2.0" - } - }, - "string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "dev": true, - "requires": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - } - }, - "string-range": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/string-range/-/string-range-1.2.2.tgz", - "integrity": "sha512-tYft6IFi8SjplJpxCUxyqisD3b+R2CSkomrtJYCkvuf1KuCAWgz7YXt4O0jip7efpfCemwHEzTEAO8EuOYgh3w==", - "dev": true - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "dependencies": { - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - } - } - }, - "string.prototype.matchall": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz", - "integrity": "sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==", - "dev": true, - "peer": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "regexp.prototype.flags": "^1.4.3", - "side-channel": "^1.0.4" - } - }, - "string.prototype.padend": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.4.tgz", - "integrity": "sha512-67otBXoksdjsnXXRUq+KMVTdlVRZ2af422Y0aTyTjVaoQkGr3mxl2Bc5emi7dOQ3OGVVQQskmLEWwFXwommpNw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - } - }, - "string.prototype.trim": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz", - "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - } - }, - "string.prototype.trimend": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", - "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - } - }, - "string.prototype.trimstart": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", - "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true - }, - "strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true - }, - "strip-indent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", - "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", - "dev": true, - "requires": { - "min-indent": "^1.0.0" - } - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true - }, - "strong-log-transformer": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/strong-log-transformer/-/strong-log-transformer-2.1.0.tgz", - "integrity": "sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA==", - "dev": true, - "requires": { - "duplexer": "^0.1.1", - "minimist": "^1.2.0", - "through": "^2.3.4" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true - }, - "tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true - }, - "tar": { - "version": "6.1.15", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.15.tgz", - "integrity": "sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A==", - "dev": true, - "requires": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^5.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "dependencies": { - "minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", - "dev": true - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "tar-fs": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", - "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", - "dev": true, - "requires": { - "chownr": "^1.1.1", - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^2.1.4" - }, - "dependencies": { - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true - } - } - }, - "tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "dev": true, - "requires": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - } - }, - "temp-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz", - "integrity": "sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ==", - "dev": true - }, - "temp-write": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/temp-write/-/temp-write-4.0.0.tgz", - "integrity": "sha512-HIeWmj77uOOHb0QX7siN3OtwV3CTntquin6TNVg6SHOqCP3hYKmox90eeFOGaY1MqJ9WYDDjkyZrW6qS5AWpbw==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.15", - "is-stream": "^2.0.0", - "make-dir": "^3.0.0", - "temp-dir": "^1.0.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true - } - } - }, - "terser": { - "version": "5.17.4", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.17.4.tgz", - "integrity": "sha512-jcEKZw6UPrgugz/0Tuk/PVyLAPfMBJf5clnGueo45wTweoV8yh7Q7PEkhkJ5uuUbC7zAxEcG3tqNr1bstkQ8nw==", - "dev": true, - "requires": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - } - }, - "terser-webpack-plugin": { - "version": "5.3.8", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.8.tgz", - "integrity": "sha512-WiHL3ElchZMsK27P8uIUh4604IgJyAW47LVXGbEoB21DbQcZ+OuMpGjVYnEUaqcWM6dO8uS2qUbA7LSCWqvsbg==", - "dev": true, - "requires": { - "@jridgewell/trace-mapping": "^0.3.17", - "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.1", - "terser": "^5.16.8" - }, - "dependencies": { - "jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - } - }, - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "requires": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - } - }, - "text-extensions": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", - "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==", - "dev": true - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "timers-browserify": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", - "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", - "dev": true, - "requires": { - "setimmediate": "^1.0.4" - } - }, - "tiny-secp256k1": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/tiny-secp256k1/-/tiny-secp256k1-1.1.6.tgz", - "integrity": "sha512-FmqJZGduTyvsr2cF3375fqGHUovSwDi/QytexX1Se4BPuPZpTE5Ftp5fg+EFSuEf3lhZqgCRjEG3ydUQ/aNiwA==", - "requires": { - "bindings": "^1.3.0", - "bn.js": "^4.11.8", - "create-hmac": "^1.1.7", - "elliptic": "^6.4.0", - "nan": "^2.13.2" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - } - } - }, - "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "requires": { - "os-tmpdir": "~1.0.2" - } - }, - "tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "dev": true - }, - "totalist": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/totalist/-/totalist-1.1.0.tgz", - "integrity": "sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==", - "dev": true - }, - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "tr46": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", - "dev": true, - "requires": { - "punycode": "^2.1.1" - } - }, - "trim-newlines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", - "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", - "dev": true - }, - "ts-jest": { - "version": "29.1.0", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.0.tgz", - "integrity": "sha512-ZhNr7Z4PcYa+JjMl62ir+zPiNJfXJN6E8hSLnaUKhOgqcn8vb3e537cpkd0FuAfRK3sR1LSqM1MOhliXNgOFPA==", - "dev": true, - "requires": { - "bs-logger": "0.x", - "fast-json-stable-stringify": "2.x", - "jest-util": "^29.0.0", - "json5": "^2.2.3", - "lodash.memoize": "4.x", - "make-error": "1.x", - "semver": "7.x", - "yargs-parser": "^21.0.1" - }, - "dependencies": { - "yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true - } - } - }, - "ts-loader": { - "version": "9.4.2", - "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.4.2.tgz", - "integrity": "sha512-OmlC4WVmFv5I0PpaxYb+qGeGOdm5giHU7HwDDUjw59emP2UYMHy9fFSDcYgSNoH8sXcj4hGCSEhlDZ9ULeDraA==", - "dev": true, - "requires": { - "chalk": "^4.1.0", - "enhanced-resolve": "^5.0.0", - "micromatch": "^4.0.0", - "semver": "^7.3.4" - } - }, - "ts-node": { - "version": "10.9.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", - "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", - "dev": true, - "requires": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - } - }, - "tsconfig-paths": { - "version": "3.14.2", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", - "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", - "dev": true, - "requires": { - "@types/json5": "^0.0.29", - "json5": "^1.0.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - }, - "dependencies": { - "json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true - } - } - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } - }, - "tty-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", - "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", - "dev": true - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", - "dev": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", - "dev": true - }, - "type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1" - } - }, - "type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true - }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dev": true, - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "typed-array-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", - "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" - } - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", - "dev": true - }, - "typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, - "requires": { - "is-typedarray": "^1.0.0" - } - }, - "typedoc": { - "version": "0.23.28", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.23.28.tgz", - "integrity": "sha512-9x1+hZWTHEQcGoP7qFmlo4unUoVJLB0H/8vfO/7wqTnZxg4kPuji9y3uRzEu0ZKez63OJAUmiGhUrtukC6Uj3w==", - "dev": true, - "requires": { - "lunr": "^2.3.9", - "marked": "^4.2.12", - "minimatch": "^7.1.3", - "shiki": "^0.14.1" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "minimatch": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.6.tgz", - "integrity": "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - } - } - }, - "typeforce": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/typeforce/-/typeforce-1.18.0.tgz", - "integrity": "sha512-7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g==" - }, - "typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", - "dev": true - }, - "ua-parser-js": { - "version": "0.7.35", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.35.tgz", - "integrity": "sha512-veRf7dawaj9xaWEu9HoTVn5Pggtc/qj+kqTOFvNiN1l0YdxwC1kvel57UCjThjGa3BHBihE8/UJAHI+uQHmd/g==", - "dev": true - }, - "uglify-js": { - "version": "3.17.4", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", - "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", - "dev": true, - "optional": true - }, - "uid-number": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz", - "integrity": "sha512-c461FXIljswCuscZn67xq9PpszkPT6RjheWFQTgCyabJrTUozElanb0YEqv2UGgk247YpcJkFBuSGNvBlpXM9w==", - "dev": true - }, - "umask": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/umask/-/umask-1.1.0.tgz", - "integrity": "sha512-lE/rxOhmiScJu9L6RTNVgB/zZbF+vGC0/p6D3xnkAePI2o0sMyFG966iR5Ki50OI/0mNi2yaRnxfLsPmEZF/JA==", - "dev": true - }, - "unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - } - }, - "unbzip2-stream": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", - "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", - "dev": true, - "requires": { - "buffer": "^5.2.1", - "through": "^2.3.8" - }, - "dependencies": { - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - } - } - }, - "unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "dev": true, - "requires": { - "unique-slug": "^2.0.0" - } - }, - "unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4" - } - }, - "universal-user-agent": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", - "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==", - "dev": true - }, - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "dev": true - }, - "untildify": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", - "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", - "dev": true - }, - "upath": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/upath/-/upath-2.0.1.tgz", - "integrity": "sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==", - "dev": true - }, - "update-browserslist-db": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", - "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", - "dev": true, - "requires": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - } - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha512-kbailJa29QrtXnxgq+DdCEGlbTeYM2eJUxsz6vjZavrCYPMIFHMKQmSKYAIuUK2i7hgPm28a8piX5NTUtM/LKQ==", - "dev": true, - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==", - "dev": true - } - } - }, - "util": { - "version": "0.12.5", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", - "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", - "requires": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "which-typed-array": "^1.1.2" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" - }, - "util-promisify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/util-promisify/-/util-promisify-2.1.0.tgz", - "integrity": "sha512-K+5eQPYs14b3+E+hmE2J6gCZ4JmMl9DbYS6BeP2CHq6WMuNxErxf5B/n0fz85L8zUuoO6rIzNNmIQDu/j+1OcA==", - "dev": true, - "requires": { - "object.getownpropertydescriptors": "^2.0.3" - } - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", - "dev": true - }, - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true - }, - "v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true - }, - "v8-to-istanbul": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz", - "integrity": "sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==", - "dev": true, - "requires": { - "@jridgewell/trace-mapping": "^0.3.12", - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0" - }, - "dependencies": { - "convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true - } - } - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "validate-npm-package-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", - "integrity": "sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==", - "dev": true, - "requires": { - "builtins": "^1.0.3" - } - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "dev": true - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "vm-browserify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", - "dev": true - }, - "void-elements": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", - "integrity": "sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung==", - "dev": true - }, - "vscode-oniguruma": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz", - "integrity": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==", - "dev": true - }, - "vscode-textmate": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-8.0.0.tgz", - "integrity": "sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==", - "dev": true - }, - "walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", - "dev": true, - "requires": { - "makeerror": "1.0.12" - } - }, - "watchpack": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", - "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", - "dev": true, - "requires": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - } - }, - "wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", - "dev": true, - "requires": { - "defaults": "^1.0.3" - } - }, - "webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", - "dev": true - }, - "webpack": { - "version": "5.82.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.82.1.tgz", - "integrity": "sha512-C6uiGQJ+Gt4RyHXXYt+v9f+SN1v83x68URwgxNQ98cvH8kxiuywWGP4XeNZ1paOzZ63aY3cTciCEQJNFUljlLw==", - "dev": true, - "requires": { - "@types/eslint-scope": "^3.7.3", - "@types/estree": "^1.0.0", - "@webassemblyjs/ast": "^1.11.5", - "@webassemblyjs/wasm-edit": "^1.11.5", - "@webassemblyjs/wasm-parser": "^1.11.5", - "acorn": "^8.7.1", - "acorn-import-assertions": "^1.7.6", - "browserslist": "^4.14.5", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.14.0", - "es-module-lexer": "^1.2.1", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.9", - "json-parse-even-better-errors": "^2.3.1", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^3.1.2", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.7", - "watchpack": "^2.4.0", - "webpack-sources": "^3.2.3" - } - }, - "webpack-bundle-analyzer": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.8.0.tgz", - "integrity": "sha512-ZzoSBePshOKhr+hd8u6oCkZVwpVaXgpw23ScGLFpR6SjYI7+7iIWYarjN6OEYOfRt8o7ZyZZQk0DuMizJ+LEIg==", - "dev": true, - "requires": { - "@discoveryjs/json-ext": "0.5.7", - "acorn": "^8.0.4", - "acorn-walk": "^8.0.0", - "chalk": "^4.1.0", - "commander": "^7.2.0", - "gzip-size": "^6.0.0", - "lodash": "^4.17.20", - "opener": "^1.5.2", - "sirv": "^1.0.7", - "ws": "^7.3.1" - }, - "dependencies": { - "commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "dev": true - }, - "ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", - "dev": true, - "requires": {} - } - } - }, - "webpack-cli": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.1.1.tgz", - "integrity": "sha512-OLJwVMoXnXYH2ncNGU8gxVpUtm3ybvdioiTvHgUyBuyMLKiVvWy+QObzBsMtp5pH7qQoEuWgeEUQ/sU3ZJFzAw==", - "dev": true, - "requires": { - "@discoveryjs/json-ext": "^0.5.0", - "@webpack-cli/configtest": "^2.1.0", - "@webpack-cli/info": "^2.0.1", - "@webpack-cli/serve": "^2.0.4", - "colorette": "^2.0.14", - "commander": "^10.0.1", - "cross-spawn": "^7.0.3", - "envinfo": "^7.7.3", - "fastest-levenshtein": "^1.0.12", - "import-local": "^3.0.2", - "interpret": "^3.1.1", - "rechoir": "^0.8.0", - "webpack-merge": "^5.7.3" - }, - "dependencies": { - "commander": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", - "dev": true - } - } - }, - "webpack-merge": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", - "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", - "dev": true, - "requires": { - "clone-deep": "^4.0.1", - "wildcard": "^2.0.0" - } - }, - "webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", - "dev": true - }, - "whatwg-url": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", - "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", - "dev": true, - "requires": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "requires": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - } - }, - "which-collection": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", - "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", - "dev": true, - "peer": true, - "requires": { - "is-map": "^2.0.1", - "is-set": "^2.0.1", - "is-weakmap": "^2.0.1", - "is-weakset": "^2.0.1" - } - }, - "which-module": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", - "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", - "dev": true - }, - "which-typed-array": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", - "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.10" - } - }, - "wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "dev": true, - "requires": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, - "wif": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/wif/-/wif-2.0.6.tgz", - "integrity": "sha512-HIanZn1zmduSF+BQhkE+YXIbEiH0xPr1012QbFEGB0xsKqJii0/SqJjyn8dFv6y36kOznMgMB+LGcbZTJ1xACQ==", - "requires": { - "bs58check": "<3.0.0" - } - }, - "wildcard": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", - "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", - "dev": true - }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true - }, - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", - "dev": true - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "write-file-atomic": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", - "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" - } - }, - "write-json-file": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/write-json-file/-/write-json-file-4.3.0.tgz", - "integrity": "sha512-PxiShnxf0IlnQuMYOPPhPkhExoCQuTUNPOa/2JWCYTmBquU9njyyDuwRKN26IZBlp4yn1nt+Agh2HOOBl+55HQ==", - "dev": true, - "requires": { - "detect-indent": "^6.0.0", - "graceful-fs": "^4.1.15", - "is-plain-obj": "^2.0.0", - "make-dir": "^3.0.0", - "sort-keys": "^4.0.0", - "write-file-atomic": "^3.0.0" - }, + "license": "MIT", "dependencies": { - "is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "dev": true - }, - "write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - } - } - }, - "write-pkg": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/write-pkg/-/write-pkg-4.0.0.tgz", - "integrity": "sha512-v2UQ+50TNf2rNHJ8NyWttfm/EJUBWMJcx6ZTYZr6Qp52uuegWw/lBkCtCbnYZEmPRNL61m+u67dAmGxo+HTULA==", - "dev": true, - "requires": { - "sort-keys": "^2.0.0", - "type-fest": "^0.4.1", - "write-json-file": "^3.2.0" + "agent-base": "^7.0.2", + "debug": "4" }, - "dependencies": { - "detect-indent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz", - "integrity": "sha512-rlpvsxUtM0PQvy9iZe640/IWwWYyBsTApREbA1pHOpmOUIl9MkP/U4z7vTtg4Oaojvqhxt7sdufnT0EzGaR31g==", - "dev": true - }, - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - } - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "sort-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", - "integrity": "sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg==", - "dev": true, - "requires": { - "is-plain-obj": "^1.0.0" - } - }, - "type-fest": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.4.1.tgz", - "integrity": "sha512-IwzA/LSfD2vC1/YDYMv/zHP4rDF1usCwllsDpbolT3D4fUepIO7f9K70jjmUewU/LmGUKJcwcVtDCpnKk4BPMw==", - "dev": true - }, - "write-file-atomic": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", - "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" - } - }, - "write-json-file": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/write-json-file/-/write-json-file-3.2.0.tgz", - "integrity": "sha512-3xZqT7Byc2uORAatYiP3DHUUAVEkNOswEWNs9H5KXiicRTvzYzYqKjYc4G7p+8pltvAw641lVByKVtMpf+4sYQ==", - "dev": true, - "requires": { - "detect-indent": "^5.0.0", - "graceful-fs": "^4.1.15", - "make-dir": "^2.1.0", - "pify": "^4.0.1", - "sort-keys": "^2.0.0", - "write-file-atomic": "^2.4.2" - } - } - } - }, - "ws": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", - "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", - "requires": {} - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - }, - "yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", - "dev": true - }, - "yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", - "dev": true, - "requires": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" + "engines": { + "node": ">= 14" } - }, - "yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true - }, - "yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true } } } diff --git a/package.json b/package.json index 243f43c67f..73c0b5ff35 100644 --- a/package.json +++ b/package.json @@ -2,6 +2,7 @@ "name": "xrpl.js", "private": true, "scripts": { + "analyze": "lerna run analyze --stream", "test": "lerna run test --stream", "test:browser": "lerna run test:browser --stream", "test:integration": "lerna run test:integration --stream", @@ -13,30 +14,25 @@ "update:confirm": "npx npm-check-updates --configFileName .ncurc.json -u" }, "dependencies": { - "@transia/ripple-address-codec": "file:packages/ripple-address-codec", - "@transia/ripple-binary-codec": "file:packages/ripple-binary-codec", - "@transia/ripple-keypairs": "file:packages/ripple-keypairs", - "@transia/xrpl": "file:packages/xrpl" + "@xrplf/isomorphic": "file:packages/isomorphic", + "@xrplf/secret-numbers": "file:packages/secret-numbers", + "ripple-address-codec": "file:packages/ripple-address-codec", + "ripple-binary-codec": "file:packages/ripple-binary-codec", + "ripple-keypairs": "file:packages/ripple-keypairs", + "xrpl": "file:packages/xrpl" }, "devDependencies": { - "@types/brorand": "^1.0.30", "@types/chai": "^4.2.21", - "@types/create-hash": "^1.2.2", "@types/jest": "^29.2.2", "@types/lodash": "^4.14.136", - "@types/node": "^14.18.35", - "@types/puppeteer": "5.4.6", + "@types/node": "^18.19.29", "@types/ws": "^8.2.0", "@typescript-eslint/eslint-plugin": "^5.28.0", - "@typescript-eslint/parser": "^5.28 .0", + "@typescript-eslint/parser": "^5.28.0", "@xrplf/eslint-config": "^1.9.1", "@xrplf/prettier-config": "^1.9.1", - "assert": "^2.0.0", - "buffer": "^6.0.2", "chai": "^4.3.4", "copyfiles": "^2.4.1", - "crypto-browserify": "^3.12.0", - "ejs": "^3.0.1", "eslint": "^8.18.0", "eslint-plugin-array-func": "^3.1.7", "eslint-plugin-consistent-default-export-name": "^0.0.15", @@ -46,28 +42,21 @@ "eslint-plugin-node": "^11.1.0", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-tsdoc": "^0.2.16", - "eventemitter2": "^6.0.0", "expect": "^29.3.1", - "https-browserify": "^1.0.0", "jest": "^29.3.1", "jest-mock": "^29.3.1", "lerna": "^4.0.0", + "lodash": "^4.17.21", "npm-run-all": "^4.1.5", - "nyc": "^15", - "path-browserify": "1.0.1", "prettier": "^2.3.2", "process": "^0.11.10", - "puppeteer": "^13.7.0", - "source-map-loader": "^3.0.1", + "source-map-loader": "^5.0.0", "source-map-support": "^0.5.16", - "stream-browserify": "^3.0.0", - "stream-http": "3.2.0", "ts-jest": "^29.0.3", "ts-loader": "^9.2.5", "ts-node": "^10.2.1", - "typescript": "^4.4.2", - "url": "^0.11.0", - "webpack": "^5.6.0", + "typescript": "^5.1.6", + "webpack": "^5.81.0", "webpack-bundle-analyzer": "^4.1.0", "webpack-cli": "^5.0.1" }, @@ -75,7 +64,7 @@ "./packages/*" ], "engines": { - "node": ">=12.0.0", - "npm": ">=7.0.0 < 9.0.0" + "node": ">=18.0.0", + "npm": ">=7.10.0 < 10.0.0" } } diff --git a/packages/isomorphic/.eslintignore b/packages/isomorphic/.eslintignore new file mode 100644 index 0000000000..7d6cfc152a --- /dev/null +++ b/packages/isomorphic/.eslintignore @@ -0,0 +1,14 @@ +# Don't ever lint node_modules +node_modules + +# Don't lint build output +dist + +# don't lint nyc coverage output +coverage +.nyc_output + +# Don't lint NYC configuration +nyc.config.js + +.idea diff --git a/packages/isomorphic/.eslintrc.js b/packages/isomorphic/.eslintrc.js new file mode 100644 index 0000000000..40716d0e08 --- /dev/null +++ b/packages/isomorphic/.eslintrc.js @@ -0,0 +1,75 @@ +module.exports = { + root: false, + + parser: '@typescript-eslint/parser', // Make ESLint compatible with TypeScript + parserOptions: { + // Enable linting rules with type information from our tsconfig + tsconfigRootDir: __dirname, + project: ['./tsconfig.json', './tsconfig.eslint.json'], + + sourceType: 'module', // Allow the use of imports / ES modules + + ecmaFeatures: { + impliedStrict: true, // Enable global strict mode + }, + }, + + // Specify global variables that are predefined + env: { + browser: true, // Enable browser global variables + node: true, // Enable node global variables & Node.js scoping + es2020: true, // Add all ECMAScript 2020 globals and automatically set the ecmaVersion parser option to ES2020 + jest: true, // Add Jest testing global variables + }, + + plugins: [], + extends: ['@xrplf/eslint-config/base'], + + rules: { + // ** TODO ** + // all of the below are turned off for now during the migration to a + // monorepo. They need to actually be addressed! + // ** + '@typescript-eslint/no-unsafe-assignment': 'off', + '@typescript-eslint/no-unsafe-member-access': 'off', + '@typescript-eslint/no-unsafe-call': 'off', + '@typescript-eslint/no-magic-numbers': 'off', + '@typescript-eslint/ban-types': 'off', + '@typescript-eslint/restrict-plus-operands': 'off', + '@typescript-eslint/no-unsafe-return': 'off', + '@typescript-eslint/explicit-module-boundary-types': 'off', + '@typescript-eslint/explicit-member-accessibility': 'off', + '@typescript-eslint/promise-function-async': 'off', + '@typescript-eslint/restrict-template-expressions': 'off', + '@typescript-eslint/prefer-nullish-coalescing': 'off', + '@typescript-eslint/naming-convention': 'off', + '@typescript-eslint/no-explicit-any': 'off', + '@typescript-eslint/consistent-type-assertions': 'off', + 'import/no-unused-modules': 'off', + 'import/prefer-default-export': 'off', + 'jsdoc/require-jsdoc': 'off', + 'jsdoc/require-description': 'off', + 'jsdoc/require-returns': 'off', + 'jsdoc/require-description-complete-sentence': 'off', + 'jsdoc/check-tag-names': 'off', + 'jsdoc/check-examples': 'off', // Not implemented in eslint 8 + 'jsdoc/no-types': 'off', + 'tsdoc/syntax': 'off', + 'import/order': 'off', + 'eslint-comments/require-description': 'off', + 'no-shadow': 'off', + 'multiline-comment-style': 'off', + '@typescript-eslint/no-require-imports': 'off', + }, + + overrides: [ + { + files: ['test/*.test.ts'], + // tests are importing through full module name to test in an isomorphic way + rules: { + 'node/no-extraneous-import': 'off', + 'import/no-extraneous-dependencies': 'off', + }, + }, + ], +} diff --git a/packages/isomorphic/HISTORY.md b/packages/isomorphic/HISTORY.md new file mode 100644 index 0000000000..e5ba8d9bff --- /dev/null +++ b/packages/isomorphic/HISTORY.md @@ -0,0 +1,24 @@ +# @xrplf/isomorphic Release History + +## Unreleased + +## 1.0.1 (2024-06-03) + +### Fixed + +* Throw error if `hexToBytes` or `hexToString` is provided a string that is not in hex + +## 1.0.0 (2024-02-01) + +Initial release providing isomorphic and tree-shakable implementations of: + +* ripemd160 +* sha256 +* sha512 +* bytesToHash +* hashToBytes +* hexToString +* stringToHex +* randomBytes +* stringToHex +* ws diff --git a/packages/isomorphic/LICENSE b/packages/isomorphic/LICENSE new file mode 100644 index 0000000000..6fbe08d158 --- /dev/null +++ b/packages/isomorphic/LICENSE @@ -0,0 +1,15 @@ +ISC License + +Copyright (c) 2023 The XRPL developers + +Permission to use, copy, modify, and distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/packages/isomorphic/README.md b/packages/isomorphic/README.md new file mode 100644 index 0000000000..0520f66b10 --- /dev/null +++ b/packages/isomorphic/README.md @@ -0,0 +1,124 @@ +# @xrplf/isomorphic + +A collection of isomorphic implementations of crypto and utility functions. + +Browser implementations of cryptographic functions use `@noble/hashes` and `crypto` for node . + +### Hashes + +All hash functions operate similarly to `@noble/hashes` and have the following properties: + +- They can be called directly by providing a Uint8Array or string which will be converted into a UInt8Array via UTF-8 encoding (not hex). +- They all return a UInt8Array. + +``` +function hash(message: Uint8Array | string): Uint8Array; +hash(new Uint8Array([1, 3])); +hash('string') == hash(new TextEncoder().encode('string')); +``` + +All hash functions can be constructed via `hash.create()` method: + +- The result is `Hash` subclass instance, which has `update()` and `digest()` methods. +- `digest()` finalizes the hash and makes it no longer usable + +```typescript +hash + .create() + .update(new Uint8Array([1, 3])) + .digest(); +``` + +### `@xrplf/isomorphic/ripemd160` +```typescript +import { ripemd160 } from '@xrplf/isomorphic/ripemd160'; +const hashA = ripemd160('abc'); +const hashB = ripemd160 + .create() + .update(Uint8Array.from([1, 2, 3])) + .digest(); +``` + +### `@xrplf/isomorphic/sha256` + +```typescript +import { sha256 } from '@xrplf/isomorphic/sha256'; +const hashA = sha256('abc'); +const hashB = sha256 + .create() + .update(Uint8Array.from([1, 2, 3])) + .digest(); +``` + +### `@xrplf/isomorphic/sha512` + +```typescript +import { sha512 } from '@xrplf/isomorphic/sha512'; +const hashA = sha512('abc'); +const hashB = sha512 + .create() + .update(Uint8Array.from([1, 2, 3])) + .digest(); +``` + +## Utilities + +### `@xrplf/isomorphic/utils` + +#### randomBytes + +Create an UInt8Array of the supplied size + +```typescript +import { randomBytes } from @xrplf/isomorphic/utils + +console.log(randomBytes(12)) // Uint8Array(12) [95, 236, 188, 55, 208, 128, 161, 249, 171, 57, 141, 7] +``` + +#### bytesToHex + +Convert an UInt8Array to hex. + +```typescript +import { bytesToHex } from @xrplf/isomorphic/utils + +console.log(bytesToHex([222, 173, 190, 239])) // "DEADBEEF" +``` + +#### hexToBytes + +Convert hex to an UInt8Array. + +```typescript +import { hexToBytes } from @xrplf/isomorphic/utils + +console.log(hexToBytes('DEADBEEF')) // [222, 173, 190, 239] +``` + +#### hexToString + +Converts hex to its string equivalent. Useful to read the Domain field and some Memos. + +```typescript +import { hexToString } from @xrplf/isomorphic/utils + +console.log(hexToString('6465616462656566D68D')) // "deadbeef֍" +``` + +#### stringToHex + +Converts a utf-8 to its hex equivalent. Useful for Memos. + +```typescript +import { stringToHex } from @xrplf/isomorphic/utils + +console.log(stringToHex('deadbeef֍')) // "6465616462656566D68D" +``` + +### `@xrplf/isomorphic/ws` + +```typescript +import WebSocket from '@xrplf/isomorphic/ws' + +const socket = new WebSocket('wss://localhost:8080') +``` diff --git a/packages/xrpl/jest.config.js b/packages/isomorphic/jest.config.js similarity index 81% rename from packages/xrpl/jest.config.js rename to packages/isomorphic/jest.config.js index af554b6a74..08291081f7 100644 --- a/packages/xrpl/jest.config.js +++ b/packages/isomorphic/jest.config.js @@ -4,5 +4,5 @@ const base = require('../../jest.config.base.js') module.exports = { ...base, roots: [...base.roots, '/test'], - displayName: 'xrpl.js', + displayName: '@xrplf/isomorphic', } diff --git a/packages/isomorphic/karma.config.js b/packages/isomorphic/karma.config.js new file mode 100644 index 0000000000..4ad4b5df2d --- /dev/null +++ b/packages/isomorphic/karma.config.js @@ -0,0 +1,15 @@ +const baseKarmaConfig = require('../../karma.config') +const webpackConfig = require('./test/webpack.config') +delete webpackConfig.entry + +module.exports = function (config) { + baseKarmaConfig(config) + + config.set({ + base: '', + webpack: webpackConfig, + + // list of files / patterns to load in the browser + files: ['test/**/*.test.ts'], + }) +} diff --git a/packages/isomorphic/package.json b/packages/isomorphic/package.json new file mode 100644 index 0000000000..7214efaa6a --- /dev/null +++ b/packages/isomorphic/package.json @@ -0,0 +1,48 @@ +{ + "name": "@xrplf/isomorphic", + "version": "1.0.1", + "description": "A collection of isomorphic and tree-shakeable crypto hashes and utils for xrpl.js", + "keywords": [ + "crypto", + "isomorphic", + "xrpl" + ], + "scripts": { + "build": "tsc --build ./tsconfig.build.json", + "test": "npm run build && jest --verbose false --silent=false ./test/*.test.ts", + "test:browser": "npm run build && karma start ./karma.config.js", + "clean": "rm -rf ./dist ./coverage ./test/testCompiledForWeb tsconfig.build.tsbuildinfo", + "lint": "eslint . --ext .ts", + "prepublish": "npm run lint && npm test" + }, + "files": [ + "dist/*", + "sha256/*", + "sha512/*", + "ripemd160/*", + "src/*", + "utils/*", + "ws/*" + ], + "directories": { + "test": "test" + }, + "dependencies": { + "@noble/hashes": "^1.0.0", + "eventemitter3": "5.0.1", + "ws": "^8.13.0" + }, + "devDependencies": { + "@types/node": "^18.18.38", + "@types/ws": "^8.5.6" + }, + "repository": { + "type": "git", + "url": "git@github.com:XRPLF/xrpl.js.git" + }, + "license": "ISC", + "prettier": "@xrplf/prettier-config", + "engines": { + "node": ">=18.0.0" + } +} diff --git a/packages/isomorphic/ripemd160/package.json b/packages/isomorphic/ripemd160/package.json new file mode 100644 index 0000000000..2fe00d77c4 --- /dev/null +++ b/packages/isomorphic/ripemd160/package.json @@ -0,0 +1,7 @@ +{ + "name": "@xrplf/isomorphic/ripemd160", + "private": true, + "main": "../dist/ripemd160", + "types": "../dist/ripemd160", + "browser": "../dist/ripemd160/browser.js" +} diff --git a/packages/isomorphic/sha256/package.json b/packages/isomorphic/sha256/package.json new file mode 100644 index 0000000000..69400b6b8c --- /dev/null +++ b/packages/isomorphic/sha256/package.json @@ -0,0 +1,7 @@ +{ + "name": "@xrplf/isomorphic/sha256", + "private": true, + "main": "../dist/sha256", + "types": "../dist/sha256", + "browser": "../dist/sha256/browser.js" +} diff --git a/packages/isomorphic/sha512/package.json b/packages/isomorphic/sha512/package.json new file mode 100644 index 0000000000..acf14a5b99 --- /dev/null +++ b/packages/isomorphic/sha512/package.json @@ -0,0 +1,7 @@ +{ + "name": "@xrplf/isomorphic/sha512", + "private": true, + "main": "../dist/sha512", + "types": "../dist/sha512", + "browser": "../dist/sha512/browser.js" +} diff --git a/packages/isomorphic/src/internal/normalizeInput.ts b/packages/isomorphic/src/internal/normalizeInput.ts new file mode 100644 index 0000000000..1462138dab --- /dev/null +++ b/packages/isomorphic/src/internal/normalizeInput.ts @@ -0,0 +1,11 @@ +import { Input } from './types' + +/** + * Normalize a string, number array, or Uint8Array to a string or Uint8Array. + * Both node and noble lib functions accept these types. + * + * @param input - value to normalize + */ +export default function normalizeInput(input: Input): string | Uint8Array { + return Array.isArray(input) ? new Uint8Array(input) : input +} diff --git a/packages/isomorphic/src/internal/types.ts b/packages/isomorphic/src/internal/types.ts new file mode 100644 index 0000000000..3fd2047702 --- /dev/null +++ b/packages/isomorphic/src/internal/types.ts @@ -0,0 +1,33 @@ +export type ByteEncodedString = string +export type Input = Uint8Array | number[] | ByteEncodedString + +/** + * A stripped down isomorphic hash inspired by node's `crypto.Hash` + */ +export interface Hash { + /** + * Updates the hash content with the given data, + * + * @param data - a byte encoded string, an array of numbers or a Uint8Array + */ + update: (data: Input) => this + /** + * Calculates the digest of all the data passed to be hashed and returns a Uint8Array + */ + digest: () => Uint8Array +} + +export interface HashFn { + /** + * Produces a Uint8Array for the given hash contents + * Shorthand for calling `create`, `update`, and then `digest` + * + * @param data - a byte encoded string, an array of numbers or a Uint8Array + */ + (data: Input): Uint8Array + + /** + * Creates a new empty `Hash`. + */ + create: () => Hash +} diff --git a/packages/isomorphic/src/internal/wrapCryptoCreateHash.ts b/packages/isomorphic/src/internal/wrapCryptoCreateHash.ts new file mode 100644 index 0000000000..4aab8808c3 --- /dev/null +++ b/packages/isomorphic/src/internal/wrapCryptoCreateHash.ts @@ -0,0 +1,32 @@ +import { createHash } from 'crypto' +import { Hash, HashFn, Input } from './types' +import normalizeInput from './normalizeInput' + +/** + * Wrap createHash from node to provide an interface that is isomorphic + * + * @param type - the hash name + * @param fn - {createHash} the hash factory + */ +export default function wrapCryptoCreateHash( + type: string, + fn: typeof createHash, +): HashFn { + function hashFn(input: Input): Uint8Array { + return fn(type).update(normalizeInput(input)).digest() + } + + hashFn.create = (): Hash => { + const hash = fn(type) + return { + update(input: Input): Hash { + hash.update(normalizeInput(input)) + return this + }, + digest(): Uint8Array { + return hash.digest() + }, + } + } + return hashFn +} diff --git a/packages/isomorphic/src/internal/wrapNoble.ts b/packages/isomorphic/src/internal/wrapNoble.ts new file mode 100644 index 0000000000..405890c9a8 --- /dev/null +++ b/packages/isomorphic/src/internal/wrapNoble.ts @@ -0,0 +1,28 @@ +import { CHash } from '@noble/hashes/utils' +import { Hash, HashFn, Input } from './types' +import normalizeInput from './normalizeInput' + +/** + * Wrap a CHash object from @noble/hashes to provide a interface that is isomorphic + * + * @param chash - {CHash} hash function to wrap + */ +export default function wrapNoble(chash: CHash): HashFn { + function wrapped(input: Input): Uint8Array { + return chash(normalizeInput(input)) + } + + wrapped.create = (): Hash => { + const hash = chash.create() + return { + update(input: Input): Hash { + hash.update(normalizeInput(input)) + return this + }, + digest(): Uint8Array { + return hash.digest() + }, + } + } + return wrapped +} diff --git a/packages/isomorphic/src/ripemd160/browser.ts b/packages/isomorphic/src/ripemd160/browser.ts new file mode 100644 index 0000000000..44f4f0c3ec --- /dev/null +++ b/packages/isomorphic/src/ripemd160/browser.ts @@ -0,0 +1,8 @@ +import { ripemd160 as nobleImpl } from '@noble/hashes/ripemd160' + +import wrapNoble from '../internal/wrapNoble' + +/** + * Wrap noble-libs's ripemd160 implementation in HashFn + */ +export const ripemd160 = wrapNoble(nobleImpl) diff --git a/packages/isomorphic/src/ripemd160/index.ts b/packages/isomorphic/src/ripemd160/index.ts new file mode 100644 index 0000000000..8ee76e7680 --- /dev/null +++ b/packages/isomorphic/src/ripemd160/index.ts @@ -0,0 +1,7 @@ +import { createHash } from 'crypto' +import wrapCryptoCreateHash from '../internal/wrapCryptoCreateHash' + +/** + * Wrap node's native ripemd160 implementation in HashFn + */ +export const ripemd160 = wrapCryptoCreateHash('ripemd160', createHash) diff --git a/packages/isomorphic/src/sha256/browser.ts b/packages/isomorphic/src/sha256/browser.ts new file mode 100644 index 0000000000..ad82611226 --- /dev/null +++ b/packages/isomorphic/src/sha256/browser.ts @@ -0,0 +1,8 @@ +import { sha256 as nobleImpl } from '@noble/hashes/sha256' + +import wrapNoble from '../internal/wrapNoble' + +/** + * Wrap noble-libs's sha256 implementation in HashFn + */ +export const sha256 = wrapNoble(nobleImpl) diff --git a/packages/isomorphic/src/sha256/index.ts b/packages/isomorphic/src/sha256/index.ts new file mode 100644 index 0000000000..fde4d4e56b --- /dev/null +++ b/packages/isomorphic/src/sha256/index.ts @@ -0,0 +1,7 @@ +import { createHash } from 'crypto' +import wrapCryptoCreateHash from '../internal/wrapCryptoCreateHash' + +/** + * Wrap node's native sha256 implementation in HashFn + */ +export const sha256 = wrapCryptoCreateHash('sha256', createHash) diff --git a/packages/isomorphic/src/sha512/browser.ts b/packages/isomorphic/src/sha512/browser.ts new file mode 100644 index 0000000000..18bb03ec89 --- /dev/null +++ b/packages/isomorphic/src/sha512/browser.ts @@ -0,0 +1,8 @@ +import { sha512 as nobleImpl } from '@noble/hashes/sha512' + +import wrapNoble from '../internal/wrapNoble' + +/** + * Wrap noble-libs's sha512 implementation in HashFn + */ +export const sha512 = wrapNoble(nobleImpl) diff --git a/packages/isomorphic/src/sha512/index.ts b/packages/isomorphic/src/sha512/index.ts new file mode 100644 index 0000000000..2effb7bd7c --- /dev/null +++ b/packages/isomorphic/src/sha512/index.ts @@ -0,0 +1,7 @@ +import { createHash } from 'crypto' +import wrapCryptoCreateHash from '../internal/wrapCryptoCreateHash' + +/** + * Wrap node's native sha512 implementation in HashFn + */ +export const sha512 = wrapCryptoCreateHash('sha512', createHash) diff --git a/packages/isomorphic/src/utils/browser.ts b/packages/isomorphic/src/utils/browser.ts new file mode 100644 index 0000000000..a9fd016b80 --- /dev/null +++ b/packages/isomorphic/src/utils/browser.ts @@ -0,0 +1,54 @@ +import { + bytesToHex as nobleBytesToHex, + randomBytes as nobleRandomBytes, +} from '@noble/hashes/utils' +import type { + BytesToHexFn, + HexToBytesFn, + HexToStringFn, + RandomBytesFn, + StringToHexFn, +} from './types' +import { HEX_REGEX } from './shared' + +/* eslint-disable func-style -- Typed to ensure uniformity between node and browser implementations and docs */ +export const bytesToHex: typeof BytesToHexFn = (bytes) => { + const hex = nobleBytesToHex( + bytes instanceof Uint8Array ? bytes : Uint8Array.from(bytes), + ) + return hex.toUpperCase() +} + +// A clone of hexToBytes from @noble/hashes without the length checks. This allows us to do our own checks. +export const hexToBytes: typeof HexToBytesFn = (hex): Uint8Array => { + const len = hex.length + const array = new Uint8Array(len / 2) + if (!HEX_REGEX.test(hex)) { + throw new Error('Invalid hex string') + } + for (let i = 0; i < array.length; i++) { + const j = i * 2 + const hexByte = hex.slice(j, j + 2) + const byte = Number.parseInt(hexByte, 16) + if (Number.isNaN(byte) || byte < 0) { + throw new Error('Invalid byte sequence') + } + array[i] = byte + } + return array +} + +export const hexToString: typeof HexToStringFn = ( + hex: string, + encoding = 'utf8', +): string => { + return new TextDecoder(encoding).decode(hexToBytes(hex)) +} + +export const stringToHex: typeof StringToHexFn = (string: string): string => { + return bytesToHex(new TextEncoder().encode(string)) +} +/* eslint-enable func-style */ + +export const randomBytes: typeof RandomBytesFn = nobleRandomBytes +export * from './shared' diff --git a/packages/isomorphic/src/utils/index.ts b/packages/isomorphic/src/utils/index.ts new file mode 100644 index 0000000000..70cd22c06f --- /dev/null +++ b/packages/isomorphic/src/utils/index.ts @@ -0,0 +1,93 @@ +import { randomBytes as cryptoRandomBytes } from 'crypto' +import type { BytesToHexFn, HexToBytesFn, RandomBytesFn } from './types' +import { HexToStringFn, StringToHexFn } from './types' +import { HEX_REGEX } from './shared' + +const OriginalBuffer = Symbol('OriginalBuffer') + +/** + * An extended Uint8Array that incorporates a reference to the original Node.js Buffer. + * + * When converting a Node.js Buffer to a Uint8Array, there's an optimization that shares + * the memory of the original Buffer with the resulting Uint8Array instead of copying data. + * The Uint8ArrayWithReference interface is used to attach a reference to the original Buffer, ensuring + * its persistence in memory (preventing garbage collection) as long as the Uint8Array exists. + * This strategy upholds the ownership semantics of the slice of the ArrayBuffer. + */ +interface Uint8ArrayWithReference extends Uint8Array { + [OriginalBuffer]: Buffer +} + +/** + * Converts a Node.js Buffer to a Uint8Array for uniform behavior with browser implementations. + * + * Choices: + * 1. Directly returning the Buffer: + * - Operation: Return Buffer as is (a Buffer *IS* an instanceof Uint8Array). + * - Pros: Most memory and performance efficient. + * - Cons: Violates strict Uint8Array typing and may lead to issues where Buffer-specific features are [ab]used. + * + * 2. Using `new Uint8Array(buffer)` or `Uint8Array.from(buffer)`: + * - Operation: Copies the buffer's data into a new Uint8Array. + * - Pros: Ensures data isolation; memory-safe. + * - Cons: Less performant due to data duplication. + * + * 3. Using buf.buffer slice: + * - Operation: Shares memory between Buffer and Uint8Array. + * - Pros: Performant. + * - Cons: Risks with shared memory and potential for invalid references. + * + * 4. Using buf.buffer slice and keeping a Buffer reference for ownership semantics: + * - Operation: Shares memory and associates the original Buffer with the resulting Uint8Array. + * - Pros: Performant while ensuring the original Buffer isn't garbage collected. + * - Cons: Risks with shared memory but mitigates potential for invalid references. + * + * The chosen method (4) prioritizes performance by sharing memory while ensuring buffer ownership. + * + * @param {Buffer} buffer - The Node.js Buffer to convert. + * @returns {Uint8Array} Resulting Uint8Array sharing the same memory as the Buffer and maintaining a reference to it. + */ +function toUint8Array(buffer: Buffer): Uint8Array { + const u8Array = new Uint8Array( + buffer.buffer.slice( + buffer.byteOffset, + buffer.byteOffset + buffer.byteLength, + ), + ) as Uint8ArrayWithReference + u8Array[OriginalBuffer] = buffer + return u8Array +} + +/* eslint-disable func-style -- Typed to ensure uniformity between node and browser implementations and docs */ +export const bytesToHex: typeof BytesToHexFn = (bytes) => { + const buf = Buffer.from(bytes) + return buf.toString('hex').toUpperCase() +} + +export const hexToBytes: typeof HexToBytesFn = (hex) => { + if (!HEX_REGEX.test(hex)) { + throw new Error('Invalid hex string') + } + return toUint8Array(Buffer.from(hex, 'hex')) +} + +export const randomBytes: typeof RandomBytesFn = (size) => { + return toUint8Array(cryptoRandomBytes(size)) +} + +export const hexToString: typeof HexToStringFn = ( + hex: string, + encoding = 'utf8', +): string => { + if (!HEX_REGEX.test(hex)) { + throw new Error('Invalid hex string') + } + return new TextDecoder(encoding).decode(hexToBytes(hex)) +} + +export const stringToHex: typeof StringToHexFn = (string: string): string => { + return bytesToHex(new TextEncoder().encode(string)) +} +/* eslint-enable func-style */ + +export * from './shared' diff --git a/packages/isomorphic/src/utils/shared.ts b/packages/isomorphic/src/utils/shared.ts new file mode 100644 index 0000000000..890a42d9c8 --- /dev/null +++ b/packages/isomorphic/src/utils/shared.ts @@ -0,0 +1,21 @@ +import { concatBytes } from '@noble/hashes/utils' + +export const HEX_REGEX = /^[A-F0-9]*$/iu + +export function concat(views: Uint8Array[]): Uint8Array { + return concatBytes(...views) +} + +export function equal(buf1: Uint8Array, buf2: Uint8Array): boolean { + if (buf1.byteLength !== buf2.byteLength) { + return false + } + const dv1 = new Int8Array(buf1) + const dv2 = new Int8Array(buf2) + for (let i = 0; i !== buf1.byteLength; i++) { + if (dv1[i] !== dv2[i]) { + return false + } + } + return true +} diff --git a/packages/isomorphic/src/utils/types.ts b/packages/isomorphic/src/utils/types.ts new file mode 100644 index 0000000000..341d1556eb --- /dev/null +++ b/packages/isomorphic/src/utils/types.ts @@ -0,0 +1,37 @@ +/** + * Convert a UInt8Array to hex. The returned hex will be in all caps. + * + * @param bytes - {Uint8Array} to convert to hex + */ +export declare function BytesToHexFn(bytes: Uint8Array | number[]): string + +/** + * Convert hex to a Uint8Array. + * + * @param hex - {string} to convert to a Uint8Array + */ +export declare function HexToBytesFn(hex: string): Uint8Array + +/** + * Create a Uint8Array of the supplied size. + * + * @param size - number of bytes to generate + */ +export declare function RandomBytesFn(size: number): Uint8Array + +/** + * Converts hex to its string equivalent. Useful to read the Domain field and some Memos. + * + * @param hex - The hex to convert to a string. + * @param encoding - The encoding to use. Defaults to 'utf8' (UTF-8). 'ascii' is also allowed. + * @returns The converted string. + */ +export declare function HexToStringFn(hex: string, encoding?: string): string + +/** + * Converts a utf-8 to its hex equivalent. Useful for Memos. + * + * @param string - The string to convert to Hex. + * @returns The Hex equivalent of the string. + */ +export declare function StringToHexFn(string: string): string diff --git a/packages/xrpl/src/client/WSWrapper.ts b/packages/isomorphic/src/ws/browser.ts similarity index 91% rename from packages/xrpl/src/client/WSWrapper.ts rename to packages/isomorphic/src/ws/browser.ts index 6fca23022e..7036efb914 100644 --- a/packages/xrpl/src/client/WSWrapper.ts +++ b/packages/isomorphic/src/ws/browser.ts @@ -1,5 +1,5 @@ /* eslint-disable max-classes-per-file -- Needs to be a wrapper for ws */ -import { EventEmitter } from 'events' +import { EventEmitter } from 'eventemitter3' // Define the global WebSocket class found on the native browser declare class WebSocket { @@ -9,7 +9,7 @@ declare class WebSocket { public onmessage?: (message: MessageEvent) => void public readyState: number public constructor(url: string) - public close(code?: number, reason?: Buffer): void + public close(code?: number, reason?: Uint8Array): void public send(message: string): void } @@ -31,7 +31,7 @@ export default class WSWrapper extends EventEmitter { public static CONNECTING = 0 public static OPEN = 1 public static CLOSING = 2 - // eslint-disable-next-line @typescript-eslint/no-magic-numbers -- magic number is being defined here + public static CLOSED = 3 private readonly ws: WebSocket @@ -48,7 +48,6 @@ export default class WSWrapper extends EventEmitter { _websocketOptions: WSWrapperOptions, ) { super() - this.setMaxListeners(Infinity) this.ws = new WebSocket(url) diff --git a/packages/isomorphic/src/ws/index.ts b/packages/isomorphic/src/ws/index.ts new file mode 100644 index 0000000000..ea5a3e5ef5 --- /dev/null +++ b/packages/isomorphic/src/ws/index.ts @@ -0,0 +1,10 @@ +import WebSocket from 'ws' + +export default class Socket extends WebSocket { + constructor(...args) { + super(args[0], args[1], args[2]) + this.setMaxListeners(Infinity) + } +} + +export type ClientOptions = WebSocket.ClientOptions diff --git a/packages/isomorphic/test/ripemd160.test.ts b/packages/isomorphic/test/ripemd160.test.ts new file mode 100644 index 0000000000..7f878c3838 --- /dev/null +++ b/packages/isomorphic/test/ripemd160.test.ts @@ -0,0 +1,16 @@ +import { ripemd160 } from '@xrplf/isomorphic/ripemd160' +import { bytesToHex } from '@xrplf/isomorphic/utils' + +describe('ripemd160', () => { + it('hashes', () => { + const hashA = ripemd160('abc') + const hashB = ripemd160 + .create() + .update(Uint8Array.from([97, 98, 99])) + .digest() + const expectedHash = `8EB208F7E05D987A9B044A8E98C6B087F15A0BFC` + + expect(bytesToHex(hashA)).toEqual(expectedHash) + expect(bytesToHex(hashB)).toEqual(expectedHash) + }) +}) diff --git a/packages/isomorphic/test/sha256.test.ts b/packages/isomorphic/test/sha256.test.ts new file mode 100644 index 0000000000..ead77d825e --- /dev/null +++ b/packages/isomorphic/test/sha256.test.ts @@ -0,0 +1,17 @@ +import { sha256 } from '@xrplf/isomorphic/sha256' +import { bytesToHex } from '@xrplf/isomorphic/utils' + +describe('sha256', () => { + it('hashes', () => { + const hashA = sha256('abc') + const hashB = sha256 + .create() + .update(Uint8Array.from([97, 98, 99])) + .digest() + const expectedHash = + 'BA7816BF8F01CFEA414140DE5DAE2223B00361A396177A9CB410FF61F20015AD' + + expect(bytesToHex(hashA)).toEqual(expectedHash) + expect(bytesToHex(hashB)).toEqual(expectedHash) + }) +}) diff --git a/packages/isomorphic/test/sha512.test.ts b/packages/isomorphic/test/sha512.test.ts new file mode 100644 index 0000000000..25c1021d53 --- /dev/null +++ b/packages/isomorphic/test/sha512.test.ts @@ -0,0 +1,17 @@ +import { sha512 } from '@xrplf/isomorphic/sha512' +import { bytesToHex } from '@xrplf/isomorphic/utils' + +describe('sha512', () => { + it('hashes', () => { + const hashA = sha512('abc') + const hashB = sha512 + .create() + .update(Uint8Array.from([97, 98, 99])) + .digest() + const expectedHash = + 'DDAF35A193617ABACC417349AE20413112E6FA4E89A97EA20A9EEEE64B55D39A2192992A274FC1A836BA3C23A3FEEBBD454D4423643CE80E2A9AC94FA54CA49F' + + expect(bytesToHex(hashA)).toEqual(expectedHash) + expect(bytesToHex(hashB)).toEqual(expectedHash) + }) +}) diff --git a/packages/isomorphic/test/utils.test.ts b/packages/isomorphic/test/utils.test.ts new file mode 100644 index 0000000000..02a692e9d4 --- /dev/null +++ b/packages/isomorphic/test/utils.test.ts @@ -0,0 +1,61 @@ +import { + bytesToHex, + hexToBytes, + hexToString, + randomBytes, + stringToHex, +} from '../utils' + +describe('utils', function () { + it('randomBytes', () => { + expect(randomBytes(16).byteLength).toEqual(16) + }) + + it('hexToBytes - empty', () => { + expect(hexToBytes('')).toEqual(new Uint8Array([])) + }) + + it('hexToBytes - zero', () => { + expect(hexToBytes('000000')).toEqual(new Uint8Array([0, 0, 0])) + }) + + it('hexToBytes - DEADBEEF', () => { + expect(hexToBytes('DEADBEEF')).toEqual(new Uint8Array([222, 173, 190, 239])) + }) + + it('hexToBytes - DEADBEEF', () => { + expect(hexToBytes('DEADBEEF')).toEqual(new Uint8Array([222, 173, 190, 239])) + }) + + it('bytesToHex - DEADBEEF', () => { + expect(bytesToHex([222, 173, 190, 239])).toEqual('DEADBEEF') + }) + + it('bytesToHex - bad hex', () => { + expect(() => hexToBytes('hello')).toThrow(new Error('Invalid hex string')) + }) + + it('bytesToHex - 010203', () => { + expect(bytesToHex([1, 2, 3])).toEqual('010203') + }) + + it('bytesToHex - DEADBEEF (Uint8Array)', () => { + expect(bytesToHex(new Uint8Array([222, 173, 190, 239]))).toEqual('DEADBEEF') + }) + + it('hexToString - deadbeef+infinity symbol (HEX ASCII)', () => { + expect(hexToString('646561646265656658D', 'ascii')).toEqual('deadbeefX') + }) + + it('hexToString - deadbeef+infinity symbol (HEX)', () => { + expect(hexToString('6465616462656566D68D')).toEqual('deadbeef֍') + }) + + it('hexToString - bad hex', () => { + expect(() => hexToString('hello')).toThrow(new Error('Invalid hex string')) + }) + + it('stringToHex - deadbeef+infinity symbol (utf8)', () => { + expect(stringToHex('deadbeef֍')).toEqual('6465616462656566D68D') + }) +}) diff --git a/packages/isomorphic/test/webpack.config.js b/packages/isomorphic/test/webpack.config.js new file mode 100644 index 0000000000..db2ec8642d --- /dev/null +++ b/packages/isomorphic/test/webpack.config.js @@ -0,0 +1,9 @@ +'use strict' +const { merge } = require('webpack-merge') +const { webpackForTest } = require('../../../weback.test.config') +const { getDefaultConfiguration } = require('../../../webpack.config') + +module.exports = merge( + getDefaultConfiguration(), + webpackForTest('./test/index.ts', __dirname), +) diff --git a/packages/isomorphic/tsconfig.build.json b/packages/isomorphic/tsconfig.build.json new file mode 100644 index 0000000000..e12ab9817e --- /dev/null +++ b/packages/isomorphic/tsconfig.build.json @@ -0,0 +1,7 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "rootDir": "./src", + }, + "include": ["./src/**/*.ts", "./src/**/*.json"], +} diff --git a/packages/isomorphic/tsconfig.eslint.json b/packages/isomorphic/tsconfig.eslint.json new file mode 100644 index 0000000000..fb1f25450a --- /dev/null +++ b/packages/isomorphic/tsconfig.eslint.json @@ -0,0 +1,4 @@ +{ + "extends": "./tsconfig.json", + "include": ["src/**/*.ts", "test/**/*.ts"] +} diff --git a/packages/isomorphic/tsconfig.json b/packages/isomorphic/tsconfig.json new file mode 100644 index 0000000000..65d5e8ff79 --- /dev/null +++ b/packages/isomorphic/tsconfig.json @@ -0,0 +1,18 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "target": "es6", + "declaration": true, + "declarationMap": true, + "outDir": "./dist", + "noImplicitAny": false, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noImplicitReturns": true, + "noFallthroughCasesInSwitch": true, + "forceConsistentCasingInFileNames": true, + "strictNullChecks": true, + "resolveJsonModule": true + }, + "include": ["src/**/*.ts"] +} diff --git a/packages/isomorphic/utils/package.json b/packages/isomorphic/utils/package.json new file mode 100644 index 0000000000..f33dafa10f --- /dev/null +++ b/packages/isomorphic/utils/package.json @@ -0,0 +1,7 @@ +{ + "name": "@xrplf/isomorphic/utils", + "private": true, + "main": "../dist/utils", + "types": "../dist/utils", + "browser": "../dist/utils/browser.js" +} diff --git a/packages/isomorphic/ws/package.json b/packages/isomorphic/ws/package.json new file mode 100644 index 0000000000..a8271b5fcf --- /dev/null +++ b/packages/isomorphic/ws/package.json @@ -0,0 +1,11 @@ +{ + "name": "@xrplf/isomorphic/ws", + "private": true, + "main": "../dist/ws", + "types": "../dist/ws", + "browser": "../dist/ws/browser.js", + "dependencies": { + "ws": "^8.13.0", + "eventemitter3": "^5.0.1" + } +} diff --git a/packages/ripple-address-codec/.eslintrc.js b/packages/ripple-address-codec/.eslintrc.js index 81d98811b5..715a66b0b5 100644 --- a/packages/ripple-address-codec/.eslintrc.js +++ b/packages/ripple-address-codec/.eslintrc.js @@ -5,7 +5,7 @@ module.exports = { parserOptions: { // Enable linting rules with type information from our tsconfig tsconfigRootDir: __dirname, - project: ['./tsconfig.json'], + project: ['./tsconfig.eslint.json'], sourceType: 'module', // Allow the use of imports / ES modules diff --git a/packages/ripple-address-codec/.gitignore b/packages/ripple-address-codec/.gitignore deleted file mode 100644 index be126fe8c9..0000000000 --- a/packages/ripple-address-codec/.gitignore +++ /dev/null @@ -1,61 +0,0 @@ -# .gitignore - -# Ignore vim swap files. -*.swp - -# Ignore SCons support files. -.sconsign.dblite - -# Ignore python compiled files. -*.pyc - -# Ignore Macintosh Desktop Services Store files. -.DS_Store - -# Ignore backup/temps -*~ - -# Ignore object files. -*.o -build/ -tags -bin/rippled -Debug/*.* -Release/*.* - -# Ignore locally installed node_modules -node_modules -!test/node_modules - -# Ignore tmp directory. -tmp - -# Ignore database directory. -db/*.db -db/*.db-* - -# Ignore customized configs -rippled.cfg -validators.txt -test/config.js - -# Ignore coverage files -/lib-cov -/src-cov -/coverage.html -/coverage - -# Ignore IntelliJ files -.idea - -# Ignore npm-debug -npm-debug.log - -# Ignore dist folder -dist/ - -# Ignore flow output directory -out/ - -# Ignore perf test cache -scripts/cache diff --git a/packages/ripple-address-codec/HISTORY.md b/packages/ripple-address-codec/HISTORY.md index 38fa34420c..d3d33c4b12 100644 --- a/packages/ripple-address-codec/HISTORY.md +++ b/packages/ripple-address-codec/HISTORY.md @@ -2,6 +2,27 @@ ## Unreleased +## 5.0.0 (2024-02-01) + +### BREAKING CHANGES +* Bump typescript to 5.x +* Remove Node 14 support +* 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 +* Eliminates 4 runtime dependencies: `base-x`, `base64-js`, `buffer`, and `ieee754`. +* Execute test in a browser in addition to node + +## 4.3.1 (2023-09-27) +### Fixed +* Fix source-maps not finding their designated source + +## 4.3.0 (2023-06-13) +### Added +* Adds support for npm v9 + ## 4.2.5 (2023-03-08) ### Changed - All tests now use the Jest test runner and have been refactored for consistency across all packages diff --git a/packages/ripple-address-codec/README.md b/packages/ripple-address-codec/README.md index 591597401e..142dfb104f 100644 --- a/packages/ripple-address-codec/README.md +++ b/packages/ripple-address-codec/README.md @@ -67,7 +67,7 @@ Check whether a classic address (starting with `r`...) is valid. Returns `false` for X-addresses (extended addresses). To validate an X-address, use `isValidXAddress`. -### encodeSeed(entropy: Buffer, type: 'ed25519' | 'secp256k1'): string +### encodeSeed(entropy: UInt8Array, type: 'ed25519' | 'secp256k1'): string Encode the given entropy as an XRP Ledger seed (secret). The entropy must be exactly 16 bytes (128 bits). The encoding includes which elliptic curve digital signature algorithm (ECDSA) the seed is intended to be used with. The seed is used to produce the private key. @@ -79,38 +79,38 @@ Return object type: ``` { version: number[], - bytes: Buffer, + bytes: UInt8Array, type: string | null } ``` -### encodeAccountID(bytes: Buffer): string +### encodeAccountID(bytes: UInt8Array): string Encode bytes as a classic address (starting with `r`...). -### decodeAccountID(accountId: string): Buffer +### decodeAccountID(accountId: string): UInt8Array Decode a classic address (starting with `r`...) to its raw bytes. -### encodeNodePublic(bytes: Buffer): string +### encodeNodePublic(bytes: UInt8Array): string Encode bytes to the XRP Ledger "node public key" format (base58). This is useful for rippled validators. -### decodeNodePublic(base58string: string): Buffer +### decodeNodePublic(base58string: string): UInt8Array Decode an XRP Ledger "node public key" (in base58 format) into its raw bytes. -### encodeAccountPublic(bytes: Buffer): string +### encodeAccountPublic(bytes: UInt8Array): string Encode a public key, as for payment channels. -### decodeAccountPublic(base58string: string): Buffer +### decodeAccountPublic(base58string: string): UInt8Array Decode a public key, as for payment channels. -### encodeXAddress(accountId: Buffer, tag: number | false, test: boolean): string +### encodeXAddress(accountId: UInt8Array, tag: number | false, test: boolean): string Encode account ID, tag, and network ID to X-address. @@ -120,7 +120,7 @@ At this time, `tag` must be <= MAX_32_BIT_UNSIGNED_INT (4294967295) as the XRP L If `test` is `true`, this address is intended for use with a test network such as Testnet or Devnet. -### decodeXAddress(xAddress: string): {accountId: Buffer, tag: number | false, test: boolean} +### decodeXAddress(xAddress: string): {accountId: UInt8Array, tag: number | false, test: boolean} Convert an X-address to its classic address, tag, and network ID. diff --git a/packages/ripple-address-codec/jest.config.js b/packages/ripple-address-codec/jest.config.js index 70d1971d24..5a02b5b572 100644 --- a/packages/ripple-address-codec/jest.config.js +++ b/packages/ripple-address-codec/jest.config.js @@ -3,5 +3,6 @@ const base = require('../../jest.config.base.js') module.exports = { ...base, + roots: [...base.roots, '/test'], displayName: 'ripple-address-codec', } diff --git a/packages/ripple-address-codec/karma.config.js b/packages/ripple-address-codec/karma.config.js new file mode 100644 index 0000000000..4ad4b5df2d --- /dev/null +++ b/packages/ripple-address-codec/karma.config.js @@ -0,0 +1,15 @@ +const baseKarmaConfig = require('../../karma.config') +const webpackConfig = require('./test/webpack.config') +delete webpackConfig.entry + +module.exports = function (config) { + baseKarmaConfig(config) + + config.set({ + base: '', + webpack: webpackConfig, + + // list of files / patterns to load in the browser + files: ['test/**/*.test.ts'], + }) +} diff --git a/packages/ripple-address-codec/package-lock.json b/packages/ripple-address-codec/package-lock.json deleted file mode 100644 index 0e8fbc3f62..0000000000 --- a/packages/ripple-address-codec/package-lock.json +++ /dev/null @@ -1,245 +0,0 @@ -{ - "name": "ripple-address-codec", - "version": "4.2.8-alpha.0", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "ripple-address-codec", - "version": "4.2.8-alpha.0", - "license": "ISC", - "dependencies": { - "base-x": "^3.0.9", - "create-hash": "^1.1.2" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/base-x": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", - "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, - "node_modules/cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dependencies": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "node_modules/hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" - } - }, - "dependencies": { - "base-x": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", - "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { - "safe-buffer": "~5.2.0" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" - } - } -} diff --git a/packages/ripple-address-codec/package.json b/packages/ripple-address-codec/package.json index 183ccbadd4..83a59f3a89 100644 --- a/packages/ripple-address-codec/package.json +++ b/packages/ripple-address-codec/package.json @@ -1,18 +1,24 @@ { "name": "@transia/ripple-address-codec", - "version": "4.2.8-alpha.0", + "version": "5.0.0-alpha.0", "description": "encodes/decodes base58 encoded XRP Ledger identifiers", "files": [ "dist/*", - "build/*" + "src/*" ], "main": "dist/index.js", "types": "dist/index.d.ts", "license": "ISC", "dependencies": { - "base-x": "^3.0.9", - "create-hash": "^1.1.2" + "@scure/base": "^1.1.3", + "@xrplf/isomorphic": "^1.0.0" }, + "keywords": [ + "ripple", + "xrp", + "xrp ledger", + "xrpl" + ], "repository": { "type": "git", "url": "git@github.com/Transia-RnD/xrpl.js/tree/beta" @@ -20,13 +26,14 @@ "prepublish": "tsc -b", "prepublishOnly": "tslint -b ./ && jest", "scripts": { - "build": "tsc -b", - "test": "jest --verbose false --silent=false ./src/*.test.js", + "build": "tsc --build tsconfig.build.json", + "test": "jest --verbose false --silent=false ./test/*.test.ts", + "test:browser": "npm run build && karma start ./karma.config.js", "lint": "eslint . --ext .ts", - "clean": "rm -rf ./dist && rm -rf tsconfig.tsbuildinfo" + "clean": "rm -rf ./dist ./coverage ./test/testCompiledForWeb tsconfig.build.tsbuildinfo" }, "prettier": "@xrplf/prettier-config", "engines": { - "node": ">= 10" + "node": ">= 18" } } diff --git a/packages/ripple-address-codec/src/index.ts b/packages/ripple-address-codec/src/index.ts index 51053e8866..594b8bcb33 100644 --- a/packages/ripple-address-codec/src/index.ts +++ b/packages/ripple-address-codec/src/index.ts @@ -1,4 +1,4 @@ -import * as assert from 'assert' +import { concat, equal, hexToBytes } from '@xrplf/isomorphic/utils' import { codec, @@ -15,9 +15,9 @@ import { const PREFIX_BYTES = { // 5, 68 - main: Buffer.from([0x05, 0x44]), + main: Uint8Array.from([0x05, 0x44]), // 4, 147 - test: Buffer.from([0x04, 0x93]), + test: Uint8Array.from([0x04, 0x93]), } const MAX_32_BIT_UNSIGNED_INT = 4294967295 @@ -32,7 +32,7 @@ function classicAddressToXAddress( } function encodeXAddress( - accountId: Buffer, + accountId: Uint8Array, tag: number | false, test: boolean, ): string { @@ -40,7 +40,7 @@ function encodeXAddress( // RIPEMD160 is 160 bits = 20 bytes throw new Error('Account ID must be 20 bytes') } - if (tag > MAX_32_BIT_UNSIGNED_INT) { + if (tag !== false && tag > MAX_32_BIT_UNSIGNED_INT) { throw new Error('Invalid tag') } const theTag = tag || 0 @@ -48,10 +48,10 @@ function encodeXAddress( const flag = tag === false || tag == null ? 0 : 1 /* eslint-disable no-bitwise --- * need to use bitwise operations here */ - const bytes = Buffer.concat([ + const bytes = concat([ test ? PREFIX_BYTES.test : PREFIX_BYTES.main, accountId, - Buffer.from([ + Uint8Array.from([ // 0x00 if no tag, 0x01 if 32-bit tag flag, // first byte @@ -92,7 +92,7 @@ function xAddressToClassicAddress(xAddress: string): { } function decodeXAddress(xAddress: string): { - accountId: Buffer + accountId: Uint8Array tag: number | false test: boolean } { @@ -100,10 +100,10 @@ function decodeXAddress(xAddress: string): { /* eslint-disable @typescript-eslint/naming-convention -- * TODO 'test' should be something like 'isTest', do this later */ - const test = isBufferForTestAddress(decoded) + const test = isUint8ArrayForTestAddress(decoded) /* eslint-enable @typescript-eslint/naming-convention */ const accountId = decoded.slice(2, 22) - const tag = tagFromBuffer(decoded) + const tag = tagFromUint8Array(decoded) return { accountId, tag, @@ -111,19 +111,19 @@ function decodeXAddress(xAddress: string): { } } -function isBufferForTestAddress(buf: Buffer): boolean { +function isUint8ArrayForTestAddress(buf: Uint8Array): boolean { const decodedPrefix = buf.slice(0, 2) - if (PREFIX_BYTES.main.equals(decodedPrefix)) { + if (equal(PREFIX_BYTES.main, decodedPrefix)) { return false } - if (PREFIX_BYTES.test.equals(decodedPrefix)) { + if (equal(PREFIX_BYTES.test, decodedPrefix)) { return true } throw new Error('Invalid X-address: bad prefix') } -function tagFromBuffer(buf: Buffer): number | false { +function tagFromUint8Array(buf: Uint8Array): number | false { const flag = buf[22] if (flag >= 2) { // No support for 64-bit tags at this time @@ -133,11 +133,12 @@ function tagFromBuffer(buf: Buffer): number | false { // Little-endian to big-endian return buf[23] + buf[24] * 0x100 + buf[25] * 0x10000 + buf[26] * 0x1000000 } - assert.strictEqual(flag, 0, 'flag must be zero to indicate no tag') - assert.ok( - Buffer.from('0000000000000000', 'hex').equals(buf.slice(23, 23 + 8)), - 'remaining bytes must be zero', - ) + if (flag !== 0) { + throw new Error('flag must be zero to indicate no tag') + } + if (!equal(hexToBytes('0000000000000000'), buf.slice(23, 23 + 8))) { + throw new Error('remaining bytes must be zero') + } return false } diff --git a/packages/ripple-address-codec/src/utils.test.js b/packages/ripple-address-codec/src/utils.test.js deleted file mode 100644 index f14e908462..0000000000 --- a/packages/ripple-address-codec/src/utils.test.js +++ /dev/null @@ -1,40 +0,0 @@ -const {seqEqual, concatArgs} = require('./utils') - -test('two sequences are equal', () => { - expect(seqEqual([1, 2, 3], [1, 2, 3])).toBe(true) -}) - -test('elements must be in the same order', () => { - expect(seqEqual([3, 2, 1], [1, 2, 3])).toBe(false) -}) - -test('sequences do not need to be the same type', () => { - expect(seqEqual(Buffer.from([1, 2, 3]), [1, 2, 3])).toBe(true) - expect(seqEqual(Buffer.from([1, 2, 3]), new Uint8Array([1, 2, 3]))).toBe(true) -}) - -test('sequences with a single element', () => { - expect(seqEqual(Buffer.from([1]), [1])).toBe(true) - expect(seqEqual(Buffer.from([1]), new Uint8Array([1]))).toBe(true) -}) - -test('empty sequences', () => { - expect(seqEqual(Buffer.from([]), [])).toBe(true) - expect(seqEqual(Buffer.from([]), new Uint8Array([]))).toBe(true) -}) - -test('plain numbers are concatenated', () => { - expect(concatArgs(10, 20, 30, 40)).toStrictEqual([10, 20, 30, 40]) -}) - -test('a variety of values are concatenated', () => { - expect(concatArgs(1, [2, 3], Buffer.from([4,5]), new Uint8Array([6, 7]))).toStrictEqual([1,2,3,4,5,6,7]) -}) - -test('a single value is returned as an array', () => { - expect(concatArgs(Buffer.from([7]))).toStrictEqual([7]) -}) - -test('no arguments returns an empty array', () => { - expect(concatArgs()).toStrictEqual([]) -}) diff --git a/packages/ripple-address-codec/src/utils.ts b/packages/ripple-address-codec/src/utils.ts index 3e33f7ef10..a6450863ef 100644 --- a/packages/ripple-address-codec/src/utils.ts +++ b/packages/ripple-address-codec/src/utils.ts @@ -1,4 +1,4 @@ -type Sequence = number[] | Buffer | Uint8Array +export type ByteArray = number[] | Uint8Array /** * Check whether two sequences (e.g. Arrays of numbers) are equal. @@ -6,26 +6,20 @@ type Sequence = number[] | Buffer | Uint8Array * @param arr1 - One of the arrays to compare. * @param arr2 - The other array to compare. */ -export function seqEqual(arr1: Sequence, arr2: Sequence): boolean { +export function arrayEqual(arr1: ByteArray, arr2: ByteArray): boolean { if (arr1.length !== arr2.length) { return false } - - for (let i = 0; i < arr1.length; i++) { - if (arr1[i] !== arr2[i]) { - return false - } - } - return true + return arr1.every((value, index) => value === arr2[index]) } /** - * Check whether a value is a sequence (e.g. Array of numbers). + * Check whether a value is a scalar * * @param val - The value to check. */ -function isSequence(val: Sequence | number): val is Sequence { - return typeof val !== 'number' +function isScalar(val: ByteArray | number): val is number { + return typeof val === 'number' } /** @@ -33,23 +27,15 @@ function isSequence(val: Sequence | number): val is Sequence { * a single element or a sequence, which has a `length` property and supports * element retrieval via sequence[ix]. * - * > concatArgs(1, [2, 3], Buffer.from([4,5]), new Uint8Array([6, 7])); + * > concatArgs(1, [2, 3], Uint8Array.from([4,5]), new Uint8Array([6, 7])); * [1,2,3,4,5,6,7] * * @param args - Concatenate of these args into a single array. * @returns Array of concatenated arguments */ -export function concatArgs(...args: Array): number[] { - const ret: number[] = [] - args.forEach((arg) => { - if (isSequence(arg)) { - for (const j of arg) { - ret.push(j) - } - } else { - ret.push(arg) - } +export function concatArgs(...args: Array): number[] { + return args.flatMap((arg) => { + return isScalar(arg) ? [arg] : Array.from(arg) }) - return ret } diff --git a/packages/ripple-address-codec/src/xrp-codec.test.js b/packages/ripple-address-codec/src/xrp-codec.test.js deleted file mode 100644 index e1211c3f42..0000000000 --- a/packages/ripple-address-codec/src/xrp-codec.test.js +++ /dev/null @@ -1,297 +0,0 @@ -const api = require('./xrp-codec') - -function toHex(bytes) { - return Buffer.from(bytes).toString('hex').toUpperCase() -} - -function toBytes(hex) { - return Buffer.from(hex, 'hex') -} - -/** - * Create a test case for encoding data and a test case for decoding data. - * - * @param encoder Encoder function to test - * @param decoder Decoder function to test - * @param base58 Base58-encoded string to decode - * @param hex Hexadecimal representation of expected decoded data - */ -function makeEncodeDecodeTest(encoder, decoder, base58, hex) { - test(`can translate between ${hex} and ${base58}`, function () { - const actual = encoder(toBytes(hex)) - expect(actual).toBe(base58) - }) - test(`can translate between ${base58} and ${hex})`, function () { - const buf = decoder(base58) - expect(toHex(buf)).toBe(hex) - }) -} - -makeEncodeDecodeTest( - api.encodeAccountID, - api.decodeAccountID, - 'rJrRMgiRgrU6hDF4pgu5DXQdWyPbY35ErN', - 'BA8E78626EE42C41B46D46C3048DF3A1C3C87072', -) - -makeEncodeDecodeTest( - api.encodeNodePublic, - api.decodeNodePublic, - 'n9MXXueo837zYH36DvMc13BwHcqtfAWNJY5czWVbp7uYTj7x17TH', - '0388E5BA87A000CB807240DF8C848EB0B5FFA5C8E5A521BC8E105C0F0A44217828', -) - -makeEncodeDecodeTest( - api.encodeAccountPublic, - api.decodeAccountPublic, - 'aB44YfzW24VDEJQ2UuLPV2PvqcPCSoLnL7y5M1EzhdW4LnK5xMS3', - '023693F15967AE357D0327974AD46FE3C127113B1110D6044FD41E723689F81CC6', -) - -test('can decode arbitrary seeds', function () { - const decoded = api.decodeSeed('sEdTM1uX8pu2do5XvTnutH6HsouMaM2') - expect(toHex(decoded.bytes)).toBe('4C3A1D213FBDFB14C7C28D609469B341') - expect(decoded.type).toBe('ed25519') - - const decoded2 = api.decodeSeed('sn259rEFXrQrWyx3Q7XneWcwV6dfL') - expect(toHex(decoded2.bytes)).toBe('CF2DE378FBDD7E2EE87D486DFB5A7BFF') - expect(decoded2.type).toBe('secp256k1') -}) - -test('can pass a type as second arg to encodeSeed', function () { - const edSeed = 'sEdTM1uX8pu2do5XvTnutH6HsouMaM2' - const decoded = api.decodeSeed(edSeed) - const type = 'ed25519' - expect(toHex(decoded.bytes)).toBe('4C3A1D213FBDFB14C7C28D609469B341') - expect(decoded.type).toBe(type) - expect(api.encodeSeed(decoded.bytes, type)).toBe(edSeed) -}) - -test('isValidClassicAddress - secp256k1 address valid', function () { - expect(api.isValidClassicAddress('rU6K7V3Po4snVhBBaU29sesqs2qTQJWDw1')).toBe( - true, - ) -}) - -test('isValidClassicAddress - ed25519 address valid', function () { - expect(api.isValidClassicAddress('rLUEXYuLiQptky37CqLcm9USQpPiz5rkpD')).toBe( - true, - ) -}) - -test('isValidClassicAddress - invalid', function () { - expect(api.isValidClassicAddress('rU6K7V3Po4snVhBBaU29sesqs2qTQJWDw2')).toBe( - false, - ) -}) - -test('isValidClassicAddress - empty', function () { - expect(api.isValidClassicAddress('')).toBe(false) -}) - -describe('encodeSeed', function () { - it('encodes a secp256k1 seed', function () { - const result = api.encodeSeed( - Buffer.from('CF2DE378FBDD7E2EE87D486DFB5A7BFF', 'hex'), - 'secp256k1', - ) - expect(result).toBe('sn259rEFXrQrWyx3Q7XneWcwV6dfL') - }) - - it('encodes low secp256k1 seed', function () { - const result = api.encodeSeed( - Buffer.from('00000000000000000000000000000000', 'hex'), - 'secp256k1', - ) - expect(result).toBe('sp6JS7f14BuwFY8Mw6bTtLKWauoUs') - }) - - it('encodes high secp256k1 seed', function () { - const result = api.encodeSeed( - Buffer.from('FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF', 'hex'), - 'secp256k1', - ) - expect(result).toBe('saGwBRReqUNKuWNLpUAq8i8NkXEPN') - }) - - it('encodes an ed25519 seed', function () { - const result = api.encodeSeed( - Buffer.from('4C3A1D213FBDFB14C7C28D609469B341', 'hex'), - 'ed25519', - ) - expect(result).toBe('sEdTM1uX8pu2do5XvTnutH6HsouMaM2') - }) - - it('encodes low ed25519 seed', function () { - const result = api.encodeSeed( - Buffer.from('00000000000000000000000000000000', 'hex'), - 'ed25519', - ) - expect(result).toBe('sEdSJHS4oiAdz7w2X2ni1gFiqtbJHqE') - }) - - it('encodes high ed25519 seed', function () { - const result = api.encodeSeed( - Buffer.from('FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF', 'hex'), - 'ed25519', - ) - expect(result).toBe('sEdV19BLfeQeKdEXyYA4NhjPJe6XBfG') - }) - - test('attempting to encode a seed with less than 16 bytes of entropy throws', function () { - expect(() => { - api.encodeSeed( - Buffer.from('CF2DE378FBDD7E2EE87D486DFB5A7B', 'hex'), - 'secp256k1', - ) - }).toThrow('entropy must have length 16') - }) - - test('attempting to encode a seed with more than 16 bytes of entropy throws', function () { - expect(() => { - api.encodeSeed( - Buffer.from('CF2DE378FBDD7E2EE87D486DFB5A7BFFFF', 'hex'), - 'secp256k1', - ) - }).toThrow('entropy must have length 16') - }) -}) - -describe('decodeSeed', function () { - it('can decode an Ed25519 seed', function () { - const decoded = api.decodeSeed('sEdTM1uX8pu2do5XvTnutH6HsouMaM2') - expect(toHex(decoded.bytes)).toBe('4C3A1D213FBDFB14C7C28D609469B341') - expect(decoded.type).toBe('ed25519') - }) - - it('can decode a secp256k1 seed', function () { - const decoded = api.decodeSeed('sn259rEFXrQrWyx3Q7XneWcwV6dfL') - expect(toHex(decoded.bytes)).toBe('CF2DE378FBDD7E2EE87D486DFB5A7BFF') - expect(decoded.type).toBe('secp256k1') - }) -}) - -describe('encodeAccountID', function () { - it('can encode an AccountID', function () { - const encoded = api.encodeAccountID( - Buffer.from('BA8E78626EE42C41B46D46C3048DF3A1C3C87072', 'hex'), - ) - expect(encoded).toBe('rJrRMgiRgrU6hDF4pgu5DXQdWyPbY35ErN') - }) - - test('unexpected length should throw', function () { - expect(() => { - api.encodeAccountID(Buffer.from('ABCDEF', 'hex')) - }).toThrow( - 'unexpected_payload_length: bytes.length does not match expectedLength', - ) - }) -}) - -describe('decodeNodePublic', function () { - it('can decode a NodePublic', function () { - const decoded = api.decodeNodePublic( - 'n9MXXueo837zYH36DvMc13BwHcqtfAWNJY5czWVbp7uYTj7x17TH', - ) - expect(toHex(decoded)).toBe( - '0388E5BA87A000CB807240DF8C848EB0B5FFA5C8E5A521BC8E105C0F0A44217828', - ) - }) -}) - -test('encodes 123456789 with version byte of 0', () => { - expect( - api.codec.encode(Buffer.from('123456789'), { - versions: [0], - expectedLength: 9, - }), - ).toBe('rnaC7gW34M77Kneb78s') -}) - -test('multiple versions with no expected length should throw', () => { - expect(() => { - api.codec.decode('rnaC7gW34M77Kneb78s', { - versions: [0, 1], - }) - }).toThrow( - 'expectedLength is required because there are >= 2 possible versions', - ) -}) - -test('attempting to decode data with length < 5 should throw', () => { - expect(() => { - api.codec.decode('1234', { - versions: [0], - }) - }).toThrow('invalid_input_size: decoded data must have length >= 5') -}) - -test('attempting to decode data with unexpected version should throw', () => { - expect(() => { - api.codec.decode('rnaC7gW34M77Kneb78s', { - versions: [2], - }) - }).toThrow( - 'version_invalid: version bytes do not match any of the provided version(s)', - ) -}) - -test('invalid checksum should throw', () => { - expect(() => { - api.codec.decode('123456789', { - versions: [0, 1], - }) - }).toThrow('checksum_invalid') -}) - -test('empty payload should throw', () => { - expect(() => { - api.codec.decode('', { - versions: [0, 1], - }) - }).toThrow('invalid_input_size: decoded data must have length >= 5') -}) - -test('decode data', () => { - expect( - api.codec.decode('rnaC7gW34M77Kneb78s', { - versions: [0], - }), - ).toStrictEqual({ - version: [0], - bytes: Buffer.from('123456789'), - type: null, - }) -}) - -test('decode data with expected length', function () { - expect( - api.codec.decode('rnaC7gW34M77Kneb78s', { - versions: [0], - expectedLength: 9, - }), - ).toStrictEqual({ - version: [0], - bytes: Buffer.from('123456789'), - type: null, - }) -}) - -test('decode data with wrong expected length should throw', function () { - expect(() => { - api.codec.decode('rnaC7gW34M77Kneb78s', { - versions: [0], - expectedLength: 8, - }) - }).toThrow( - 'version_invalid: version bytes do not match any of the provided version(s)', - ) - expect(() => { - api.codec.decode('rnaC7gW34M77Kneb78s', { - versions: [0], - expectedLength: 10, - }) - }).toThrow( - 'version_invalid: version bytes do not match any of the provided version(s)', - ) -}) diff --git a/packages/ripple-address-codec/src/xrp-codec.ts b/packages/ripple-address-codec/src/xrp-codec.ts index e637bc9842..29637b826f 100644 --- a/packages/ripple-address-codec/src/xrp-codec.ts +++ b/packages/ripple-address-codec/src/xrp-codec.ts @@ -2,34 +2,28 @@ * Codec class */ -import baseCodec = require('base-x') -import type { BaseConverter } from 'base-x' -import createHash = require('create-hash') +import { base58xrp, BytesCoder } from '@scure/base' +import { sha256 } from '@xrplf/isomorphic/sha256' -import { seqEqual, concatArgs } from './utils' +import { arrayEqual, concatArgs, ByteArray } from './utils' class Codec { - private readonly _sha256: (bytes: Uint8Array) => Buffer - private readonly _alphabet: string - private readonly _codec: BaseConverter - - public constructor(options: { - sha256: (bytes: Uint8Array) => Buffer - alphabet: string - }) { + private readonly _sha256: (bytes: ByteArray) => Uint8Array + private readonly _codec: BytesCoder + + public constructor(options: { sha256: (bytes: ByteArray) => Uint8Array }) { this._sha256 = options.sha256 - this._alphabet = options.alphabet - this._codec = baseCodec(this._alphabet) + this._codec = base58xrp } /** * Encoder. * - * @param bytes - Buffer of data to encode. + * @param bytes - Uint8Array of data to encode. * @param opts - Options object including the version bytes and the expected length of the data to encode. */ public encode( - bytes: Buffer, + bytes: ByteArray, opts: { versions: number[] expectedLength: number @@ -56,7 +50,7 @@ class Codec { }, ): { version: number[] - bytes: Buffer + bytes: Uint8Array type: 'ed25519' | 'secp256k1' | null } { const versions = opts.versions @@ -82,7 +76,7 @@ class Codec { const version: number[] = Array.isArray(versions[i]) ? (versions[i] as number[]) : [versions[i] as number] - if (seqEqual(versionBytes, version)) { + if (arrayEqual(versionBytes, version)) { return { version, bytes: payload, @@ -97,49 +91,49 @@ class Codec { ) } - public encodeChecked(buffer: Buffer): string { - const check = this._sha256(this._sha256(buffer)).slice(0, 4) - return this._encodeRaw(Buffer.from(concatArgs(buffer, check))) + public encodeChecked(bytes: ByteArray): string { + const check = this._sha256(this._sha256(bytes)).slice(0, 4) + return this._encodeRaw(Uint8Array.from(concatArgs(bytes, check))) } - public decodeChecked(base58string: string): Buffer { - const buffer = this._decodeRaw(base58string) - if (buffer.length < 5) { + public decodeChecked(base58string: string): Uint8Array { + const intArray = this._decodeRaw(base58string) + if (intArray.byteLength < 5) { throw new Error('invalid_input_size: decoded data must have length >= 5') } - if (!this._verifyCheckSum(buffer)) { + if (!this._verifyCheckSum(intArray)) { throw new Error('checksum_invalid') } - return buffer.slice(0, -4) + return intArray.slice(0, -4) } private _encodeVersioned( - bytes: Buffer, + bytes: ByteArray, versions: number[], expectedLength: number, ): string { - if (expectedLength && bytes.length !== expectedLength) { + if (!checkByteLength(bytes, expectedLength)) { throw new Error( 'unexpected_payload_length: bytes.length does not match expectedLength.' + - ' Ensure that the bytes are a Buffer.', + ' Ensure that the bytes are a Uint8Array.', ) } - return this.encodeChecked(Buffer.from(concatArgs(versions, bytes))) + return this.encodeChecked(concatArgs(versions, bytes)) } - private _encodeRaw(bytes: Buffer): string { - return this._codec.encode(bytes) + private _encodeRaw(bytes: ByteArray): string { + return this._codec.encode(Uint8Array.from(bytes)) } /* eslint-enable max-lines-per-function */ - private _decodeRaw(base58string: string): Buffer { + private _decodeRaw(base58string: string): Uint8Array { return this._codec.decode(base58string) } - private _verifyCheckSum(bytes: Buffer): boolean { + private _verifyCheckSum(bytes: ByteArray): boolean { const computed = this._sha256(this._sha256(bytes.slice(0, -4))).slice(0, 4) const checksum = bytes.slice(-4) - return seqEqual(computed, checksum) + return arrayEqual(computed, checksum) } } @@ -161,23 +155,20 @@ const NODE_PUBLIC = 0x1c const ED25519_SEED = [0x01, 0xe1, 0x4b] const codecOptions = { - sha256(bytes: Uint8Array): Buffer { - return createHash('sha256').update(Buffer.from(bytes)).digest() - }, - alphabet: 'rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz', + sha256, } const codecWithXrpAlphabet = new Codec(codecOptions) export const codec = codecWithXrpAlphabet -// entropy is a Buffer of size 16 +// entropy is a Uint8Array of size 16 // type is 'ed25519' or 'secp256k1' export function encodeSeed( - entropy: Buffer, + entropy: ByteArray, type: 'ed25519' | 'secp256k1', ): string { - if (entropy.length !== 16) { + if (!checkByteLength(entropy, 16)) { throw new Error('entropy must have length 16') } const opts = { @@ -204,13 +195,13 @@ export function decodeSeed( }, ): { version: number[] - bytes: Buffer + bytes: Uint8Array type: 'ed25519' | 'secp256k1' | null } { return codecWithXrpAlphabet.decode(seed, opts) } -export function encodeAccountID(bytes: Buffer): string { +export function encodeAccountID(bytes: ByteArray): string { const opts = { versions: [ACCOUNT_ID], expectedLength: 20 } return codecWithXrpAlphabet.encode(bytes, opts) } @@ -221,7 +212,7 @@ export function encodeAccountID(bytes: Buffer): string { export const encodeAddress = encodeAccountID /* eslint-enable import/no-unused-modules */ -export function decodeAccountID(accountId: string): Buffer { +export function decodeAccountID(accountId: string): Uint8Array { const opts = { versions: [ACCOUNT_ID], expectedLength: 20 } return codecWithXrpAlphabet.decode(accountId, opts).bytes } @@ -232,22 +223,22 @@ export function decodeAccountID(accountId: string): Buffer { export const decodeAddress = decodeAccountID /* eslint-enable import/no-unused-modules */ -export function decodeNodePublic(base58string: string): Buffer { +export function decodeNodePublic(base58string: string): Uint8Array { const opts = { versions: [NODE_PUBLIC], expectedLength: 33 } return codecWithXrpAlphabet.decode(base58string, opts).bytes } -export function encodeNodePublic(bytes: Buffer): string { +export function encodeNodePublic(bytes: ByteArray): string { const opts = { versions: [NODE_PUBLIC], expectedLength: 33 } return codecWithXrpAlphabet.encode(bytes, opts) } -export function encodeAccountPublic(bytes: Buffer): string { +export function encodeAccountPublic(bytes: ByteArray): string { const opts = { versions: [ACCOUNT_PUBLIC_KEY], expectedLength: 33 } return codecWithXrpAlphabet.encode(bytes, opts) } -export function decodeAccountPublic(base58string: string): Buffer { +export function decodeAccountPublic(base58string: string): Uint8Array { const opts = { versions: [ACCOUNT_PUBLIC_KEY], expectedLength: 33 } return codecWithXrpAlphabet.decode(base58string, opts).bytes } @@ -260,3 +251,9 @@ export function isValidClassicAddress(address: string): boolean { } return true } + +function checkByteLength(bytes: ByteArray, expectedLength: number): boolean { + return 'byteLength' in bytes + ? bytes.byteLength === expectedLength + : bytes.length === expectedLength +} diff --git a/packages/ripple-address-codec/src/index.test.js b/packages/ripple-address-codec/test/index.test.ts similarity index 79% rename from packages/ripple-address-codec/src/index.test.js rename to packages/ripple-address-codec/test/index.test.ts index a26c576206..63c3b6ca6a 100644 --- a/packages/ripple-address-codec/src/index.test.js +++ b/packages/ripple-address-codec/test/index.test.ts @@ -1,11 +1,24 @@ -const { +import { bytesToHex, hexToBytes } from '@xrplf/isomorphic/utils' + +import { classicAddressToXAddress, xAddressToClassicAddress, isValidXAddress, encodeXAddress, -} = require('./index') +} from '../src' + +interface AddressTestCase { + // classicAddress + [0]: string + // tag + [1]: false | number + // mainnetAddress + [2]: string + // testnetAddress + [3]: string +} -const testCases = [ +const testCases: AddressTestCase[] = [ [ 'r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59', false, @@ -144,12 +157,11 @@ const testCases = [ const MAX_32_BIT_UNSIGNED_INT = 4294967295 const network = isTestAddress ? ' (test)' : ' (main)' - for (const i in testCases) { - const testCase = testCases[i] + testCases.forEach((testCase) => { const classicAddress = testCase[0] - const tag = testCase[1] !== false ? testCase[1] : false + const tag = testCase[1] === false ? false : testCase[1] const xAddress = isTestAddress ? testCase[3] : testCase[2] - test(`Converts ${classicAddress}${ + it(`Converts ${classicAddress}${ tag ? `:${tag}` : '' } to ${xAddress}${network}`, () => { expect(classicAddressToXAddress(classicAddress, tag, isTestAddress)).toBe( @@ -163,25 +175,25 @@ const testCases = [ }) expect(isValidXAddress(xAddress)).toBe(true) }) - } + }) { const classicAddress = 'rGWrZyQqhTp9Xu7G5Pkayo7bXjH4k4QYpf' const tag = MAX_32_BIT_UNSIGNED_INT + 1 - test(`Converting ${classicAddress}:${tag}${network} throws`, () => { + it(`Converting ${classicAddress}:${tag}${network} throws`, () => { expect(() => { classicAddressToXAddress(classicAddress, tag, isTestAddress) - }).toThrowError(new Error('Invalid tag')) + }).toThrow(new Error('Invalid tag')) }) } { const classicAddress = 'r' - test(`Invalid classic address: Converting ${classicAddress}${network} throws`, () => { + it(`Invalid classic address: Converting ${classicAddress}${network} throws`, () => { expect(() => { classicAddressToXAddress(classicAddress, false, isTestAddress) - }).toThrowError( + }).toThrow( new Error('invalid_input_size: decoded data must have length >= 5'), ) }) @@ -189,18 +201,23 @@ const testCases = [ { const highAndLowAccounts = [ - Buffer.from('00'.repeat(20), 'hex'), - Buffer.from(`${'00'.repeat(19)}01`, 'hex'), - Buffer.from('01'.repeat(20), 'hex'), - Buffer.from('FF'.repeat(20), 'hex'), + hexToBytes('00'.repeat(20)), + hexToBytes(`${'00'.repeat(19)}01`), + hexToBytes('01'.repeat(20)), + hexToBytes('FF'.repeat(20)), ] highAndLowAccounts.forEach((accountId) => { - const testCases = [false, 0, 1, MAX_32_BIT_UNSIGNED_INT] - testCases.forEach((t) => { - const tag = t | false + const tagTestCases: Array = [ + false, + 0, + 1, + MAX_32_BIT_UNSIGNED_INT, + ] + tagTestCases.forEach((testCase) => { + const tag = testCase || false const xAddress = encodeXAddress(accountId, tag, isTestAddress) - test(`Encoding ${accountId.toString('hex')}${ + it(`Encoding ${bytesToHex(accountId)}${ tag ? `:${tag}` : '' } to ${xAddress} has expected length`, () => { expect(xAddress.length).toBe(47) @@ -212,23 +229,23 @@ const testCases = [ { const xAddress = 'XVLhHMPHU98es4dbozjVtdWzVrDjtV5fdx1mHp98tDMoQXa' - test(`Invalid X-address (bad checksum): Converting ${xAddress} throws`, () => { + it(`Invalid X-address (bad checksum): Converting ${xAddress} throws`, () => { expect(() => { xAddressToClassicAddress(xAddress) - }).toThrowError(new Error('checksum_invalid')) + }).toThrow(new Error('checksum_invalid')) }) } { const xAddress = 'dGzKGt8CVpWoa8aWL1k18tAdy9Won3PxynvbbpkAqp3V47g' - test(`Invalid X-address (bad prefix): Converting ${xAddress} throws`, () => { + it(`Invalid X-address (bad prefix): Converting ${xAddress} throws`, () => { expect(() => { xAddressToClassicAddress(xAddress) - }).toThrowError(new Error('Invalid X-address: bad prefix')) + }).toThrow(new Error('Invalid X-address: bad prefix')) }) } -test(`Invalid X-address (64-bit tag) throws`, () => { +it(`Invalid X-address (64-bit tag) throws`, () => { expect(() => { // Encoded from: // { @@ -236,23 +253,24 @@ test(`Invalid X-address (64-bit tag) throws`, () => { // tag: MAX_32_BIT_UNSIGNED_INT + 1 // } xAddressToClassicAddress('XVLhHMPHU98es4dbozjVtdWzVrDjtV18pX8zeUygYrCgrPh') - }).toThrowError('Unsupported X-address') + }).toThrow(new Error('Unsupported X-address')) }) -test(`Invalid Account ID throws`, () => { +it(`Invalid Account ID throws`, () => { expect(() => { - encodeXAddress(Buffer.from('00'.repeat(19), 'hex'), false, false) + encodeXAddress(hexToBytes('00'.repeat(19)), false, false) }).toThrowError('Account ID must be 20 bytes') }) -test(`isValidXAddress returns false for invalid X-address`, () => { +it(`isValidXAddress returns false for invalid X-address`, () => { expect( isValidXAddress('XVLhHMPHU98es4dbozjVtdWzVrDjtV18pX8zeUygYrCgrPh'), ).toBe(false) }) -test(`Converts X7AcgcsBL6XDcUb... to r9cZA1mLK5R5A... and tag: false`, () => { +it(`Converts X7AcgcsBL6XDcUb... to r9cZA1mLK5R5A... and tag: false`, () => { const classicAddress = 'r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59' + // eslint-disable-next-line @typescript-eslint/naming-convention -- tag can be false or a number const tag = false const xAddress = 'X7AcgcsBL6XDcUb289X4mJ8djcdyKaB5hJDWMArnXr61cqZ' const isTestAddress = false diff --git a/packages/ripple-address-codec/test/utils.test.ts b/packages/ripple-address-codec/test/utils.test.ts new file mode 100644 index 0000000000..87036d70ad --- /dev/null +++ b/packages/ripple-address-codec/test/utils.test.ts @@ -0,0 +1,48 @@ +import { arrayEqual, concatArgs } from '../src/utils' + +describe('Function: arrayEqual', () => { + it('two sequences are equal', () => { + expect(arrayEqual([1, 2, 3], [1, 2, 3])).toBe(true) + }) + + it('elements must be in the same order', () => { + expect(arrayEqual([3, 2, 1], [1, 2, 3])).toBe(false) + }) + + it('sequences do not need to be the same type', () => { + expect(arrayEqual(Uint8Array.from([1, 2, 3]), [1, 2, 3])).toBe(true) + expect( + arrayEqual(Uint8Array.from([1, 2, 3]), new Uint8Array([1, 2, 3])), + ).toBe(true) + }) + + it('single element sequences do not need to be the same type', () => { + expect(arrayEqual(Uint8Array.from([1]), [1])).toBe(true) + expect(arrayEqual(Uint8Array.from([1]), new Uint8Array([1]))).toBe(true) + }) + + it('empty sequences do not need to be the same type', () => { + expect(arrayEqual(Uint8Array.from([]), [])).toBe(true) + expect(arrayEqual(Uint8Array.from([]), new Uint8Array([]))).toBe(true) + }) +}) + +describe('Function: concatArgs', () => { + it('plain numbers are concatenated', () => { + expect(concatArgs(10, 20, 30, 40)).toEqual([10, 20, 30, 40]) + }) + + it('a variety of values are concatenated', () => { + expect( + concatArgs(1, [2, 3], Uint8Array.from([4, 5]), new Uint8Array([6, 7])), + ).toEqual([1, 2, 3, 4, 5, 6, 7]) + }) + + it('a single value is returned as an array', () => { + expect(concatArgs(Uint8Array.from([7]))).toEqual([7]) + }) + + it('no arguments returns an empty array', () => { + expect(concatArgs()).toEqual([]) + }) +}) diff --git a/packages/ripple-address-codec/test/webpack.config.js b/packages/ripple-address-codec/test/webpack.config.js new file mode 100644 index 0000000000..db2ec8642d --- /dev/null +++ b/packages/ripple-address-codec/test/webpack.config.js @@ -0,0 +1,9 @@ +'use strict' +const { merge } = require('webpack-merge') +const { webpackForTest } = require('../../../weback.test.config') +const { getDefaultConfiguration } = require('../../../webpack.config') + +module.exports = merge( + getDefaultConfiguration(), + webpackForTest('./test/index.ts', __dirname), +) diff --git a/packages/ripple-address-codec/test/xrp-codec.test.ts b/packages/ripple-address-codec/test/xrp-codec.test.ts new file mode 100644 index 0000000000..7d35323d14 --- /dev/null +++ b/packages/ripple-address-codec/test/xrp-codec.test.ts @@ -0,0 +1,316 @@ +import { bytesToHex, hexToBytes, stringToHex } from '@xrplf/isomorphic/utils' + +import { + codec, + decodeAccountID, + decodeAccountPublic, + decodeNodePublic, + decodeSeed, + encodeAccountID, + encodeAccountPublic, + encodeNodePublic, + encodeSeed, + isValidClassicAddress, +} from '../src' + +function stringToBytes(str: string): Uint8Array { + return hexToBytes(stringToHex(str)) +} + +/** + * Create a test case for encoding data and a test case for decoding data. + * + * @param encoder - Encoder function to test + * @param decoder - Decoder function to test + * @param base58 - Base58-encoded string to decode + * @param hex - Hexadecimal representation of expected decoded data + */ +// eslint-disable-next-line max-params -- needs them +function makeEncodeDecodeTest( + encoder: (val: Uint8Array) => string, + decoder: (val: string) => Uint8Array, + base58: string, + hex: string, +): void { + it(`can translate between ${hex} and ${base58}`, function () { + const actual = encoder(hexToBytes(hex)) + expect(actual).toBe(base58) + }) + it(`can translate between ${base58} and ${hex})`, function () { + const buf = decoder(base58) + expect(bytesToHex(buf)).toBe(hex) + }) +} + +makeEncodeDecodeTest( + encodeAccountID, + decodeAccountID, + 'rJrRMgiRgrU6hDF4pgu5DXQdWyPbY35ErN', + 'BA8E78626EE42C41B46D46C3048DF3A1C3C87072', +) + +makeEncodeDecodeTest( + encodeNodePublic, + decodeNodePublic, + 'n9MXXueo837zYH36DvMc13BwHcqtfAWNJY5czWVbp7uYTj7x17TH', + '0388E5BA87A000CB807240DF8C848EB0B5FFA5C8E5A521BC8E105C0F0A44217828', +) + +makeEncodeDecodeTest( + encodeAccountPublic, + decodeAccountPublic, + 'aB44YfzW24VDEJQ2UuLPV2PvqcPCSoLnL7y5M1EzhdW4LnK5xMS3', + '023693F15967AE357D0327974AD46FE3C127113B1110D6044FD41E723689F81CC6', +) + +it('can decode arbitrary seeds', function () { + const decoded = decodeSeed('sEdTM1uX8pu2do5XvTnutH6HsouMaM2') + expect(bytesToHex(decoded.bytes)).toBe('4C3A1D213FBDFB14C7C28D609469B341') + expect(decoded.type).toBe('ed25519') + + const decoded2 = decodeSeed('sn259rEFXrQrWyx3Q7XneWcwV6dfL') + expect(bytesToHex(decoded2.bytes)).toBe('CF2DE378FBDD7E2EE87D486DFB5A7BFF') + expect(decoded2.type).toBe('secp256k1') +}) + +it('can pass a type as second arg to encodeSeed', function () { + const edSeed = 'sEdTM1uX8pu2do5XvTnutH6HsouMaM2' + const decoded = decodeSeed(edSeed) + const type = 'ed25519' + expect(bytesToHex(decoded.bytes)).toBe('4C3A1D213FBDFB14C7C28D609469B341') + expect(decoded.type).toBe(type) + expect(encodeSeed(decoded.bytes, type)).toBe(edSeed) +}) + +it('isValidClassicAddress - secp256k1 address valid', function () { + expect(isValidClassicAddress('rU6K7V3Po4snVhBBaU29sesqs2qTQJWDw1')).toBe(true) +}) + +it('isValidClassicAddress - ed25519 address valid', function () { + expect(isValidClassicAddress('rLUEXYuLiQptky37CqLcm9USQpPiz5rkpD')).toBe(true) +}) + +it('isValidClassicAddress - invalid', function () { + expect(isValidClassicAddress('rU6K7V3Po4snVhBBaU29sesqs2qTQJWDw2')).toBe( + false, + ) +}) + +it('isValidClassicAddress - empty', function () { + expect(isValidClassicAddress('')).toBe(false) +}) + +describe('encodeSeed', function () { + it('encodes a secp256k1 seed', function () { + const result = encodeSeed( + hexToBytes('CF2DE378FBDD7E2EE87D486DFB5A7BFF'), + 'secp256k1', + ) + expect(result).toBe('sn259rEFXrQrWyx3Q7XneWcwV6dfL') + }) + + it('encodes low secp256k1 seed', function () { + const result = encodeSeed( + hexToBytes('00000000000000000000000000000000'), + 'secp256k1', + ) + expect(result).toBe('sp6JS7f14BuwFY8Mw6bTtLKWauoUs') + }) + + it('encodes high secp256k1 seed', function () { + const result = encodeSeed( + hexToBytes('FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'), + 'secp256k1', + ) + expect(result).toBe('saGwBRReqUNKuWNLpUAq8i8NkXEPN') + }) + + it('encodes an ed25519 seed', function () { + const result = encodeSeed( + hexToBytes('4C3A1D213FBDFB14C7C28D609469B341'), + 'ed25519', + ) + expect(result).toBe('sEdTM1uX8pu2do5XvTnutH6HsouMaM2') + }) + + it('encodes low ed25519 seed', function () { + const result = encodeSeed( + hexToBytes('00000000000000000000000000000000'), + 'ed25519', + ) + expect(result).toBe('sEdSJHS4oiAdz7w2X2ni1gFiqtbJHqE') + }) + + it('encodes high ed25519 seed', function () { + const result = encodeSeed( + hexToBytes('FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'), + 'ed25519', + ) + expect(result).toBe('sEdV19BLfeQeKdEXyYA4NhjPJe6XBfG') + }) + + it('attempting to encode a seed with less than 16 bytes of entropy throws', function () { + expect(() => { + encodeSeed(hexToBytes('CF2DE378FBDD7E2EE87D486DFB5A7B'), 'secp256k1') + }).toThrow(new Error('entropy must have length 16')) + }) + + it('attempting to encode a seed with more than 16 bytes of entropy throws', function () { + expect(() => { + encodeSeed(hexToBytes('CF2DE378FBDD7E2EE87D486DFB5A7BFFFF'), 'secp256k1') + }).toThrow(new Error('entropy must have length 16')) + }) +}) + +describe('decodeSeed', function () { + it('can decode an Ed25519 seed', function () { + const decoded = decodeSeed('sEdTM1uX8pu2do5XvTnutH6HsouMaM2') + expect(bytesToHex(decoded.bytes)).toBe('4C3A1D213FBDFB14C7C28D609469B341') + expect(decoded.type).toBe('ed25519') + }) + + it('can decode a secp256k1 seed', function () { + const decoded = decodeSeed('sn259rEFXrQrWyx3Q7XneWcwV6dfL') + expect(bytesToHex(decoded.bytes)).toBe('CF2DE378FBDD7E2EE87D486DFB5A7BFF') + expect(decoded.type).toBe('secp256k1') + }) +}) + +describe('encodeAccountID', function () { + it('can encode an AccountID', function () { + const encoded = encodeAccountID( + hexToBytes('BA8E78626EE42C41B46D46C3048DF3A1C3C87072'), + ) + expect(encoded).toBe('rJrRMgiRgrU6hDF4pgu5DXQdWyPbY35ErN') + }) + + it('unexpected length should throw', function () { + expect(() => { + encodeAccountID(hexToBytes('ABCDEF')) + }).toThrow( + new Error( + 'unexpected_payload_length: bytes.length does not match expectedLength. Ensure that the bytes are a Uint8Array.', + ), + ) + }) +}) + +describe('decodeNodePublic', function () { + it('can decode a NodePublic', function () { + const decoded = decodeNodePublic( + 'n9MXXueo837zYH36DvMc13BwHcqtfAWNJY5czWVbp7uYTj7x17TH', + ) + expect(bytesToHex(decoded)).toBe( + '0388E5BA87A000CB807240DF8C848EB0B5FFA5C8E5A521BC8E105C0F0A44217828', + ) + }) +}) + +it('encodes 123456789 with version byte of 0', () => { + expect( + codec.encode(stringToBytes('123456789'), { + versions: [0], + expectedLength: 9, + }), + ).toBe('rnaC7gW34M77Kneb78s') +}) + +it('multiple versions with no expected length should throw', () => { + expect(() => { + codec.decode('rnaC7gW34M77Kneb78s', { + versions: [0, 1], + }) + }).toThrow( + new Error( + 'expectedLength is required because there are >= 2 possible versions', + ), + ) +}) + +it('attempting to decode data with length < 5 should throw', () => { + expect(() => { + codec.decode('1234', { + versions: [0], + }) + }).toThrow( + new Error('invalid_input_size: decoded data must have length >= 5'), + ) +}) + +it('attempting to decode data with unexpected version should throw', () => { + expect(() => { + codec.decode('rnaC7gW34M77Kneb78s', { + versions: [2], + }) + }).toThrow( + new Error( + 'version_invalid: version bytes do not match any of the provided version(s)', + ), + ) +}) + +it('invalid checksum should throw', () => { + expect(() => { + codec.decode('123456789', { + versions: [0, 1], + }) + }).toThrow(new Error('checksum_invalid')) +}) + +it('empty payload should throw', () => { + expect(() => { + codec.decode('', { + versions: [0, 1], + }) + }).toThrow( + new Error('invalid_input_size: decoded data must have length >= 5'), + ) +}) + +it('decode data', () => { + expect( + codec.decode('rnaC7gW34M77Kneb78s', { + versions: [0], + }), + ).toEqual({ + version: [0], + bytes: stringToBytes('123456789'), + type: null, + }) +}) + +it('decode data with expected length', function () { + expect( + codec.decode('rnaC7gW34M77Kneb78s', { + versions: [0], + expectedLength: 9, + }), + ).toEqual({ + version: [0], + bytes: stringToBytes('123456789'), + type: null, + }) +}) + +it('decode data with wrong expected length should throw', function () { + expect(() => { + codec.decode('rnaC7gW34M77Kneb78s', { + versions: [0], + expectedLength: 8, + }) + }).toThrow( + new Error( + 'version_invalid: version bytes do not match any of the provided version(s)', + ), + ) + expect(() => { + codec.decode('rnaC7gW34M77Kneb78s', { + versions: [0], + expectedLength: 10, + }) + }).toThrow( + new Error( + 'version_invalid: version bytes do not match any of the provided version(s)', + ), + ) +}) diff --git a/packages/ripple-address-codec/tsconfig.build.json b/packages/ripple-address-codec/tsconfig.build.json new file mode 100644 index 0000000000..7f59b80d68 --- /dev/null +++ b/packages/ripple-address-codec/tsconfig.build.json @@ -0,0 +1,7 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "rootDir": "./src", + }, + "include": ["./src/**/*.ts", "./src/**/*.json"] +} diff --git a/packages/ripple-address-codec/tsconfig.eslint.json b/packages/ripple-address-codec/tsconfig.eslint.json index 0b4edec6a3..16dc56bd83 100644 --- a/packages/ripple-address-codec/tsconfig.eslint.json +++ b/packages/ripple-address-codec/tsconfig.eslint.json @@ -1,4 +1,4 @@ { "extends": "./tsconfig.json", - "include": ["src/**/*.ts", "src/*.test.ts"] + "include": ["src/**/*.ts", "test/*.test.ts"] } diff --git a/packages/ripple-address-codec/tsconfig.json b/packages/ripple-address-codec/tsconfig.json index cc5a324ab2..ad3588bbb3 100644 --- a/packages/ripple-address-codec/tsconfig.json +++ b/packages/ripple-address-codec/tsconfig.json @@ -5,16 +5,22 @@ "lib": [ "es2017" ], - "rootDir": "./src", "outDir": "./dist", "noUnusedLocals": true, "noUnusedParameters": true, "removeComments": false, "preserveConstEnums": false, - "suppressImplicitAnyIndexErrors": false, "skipLibCheck": true, "declaration": true, "strictNullChecks": true }, - "include": ["src/**/*.ts"] + "references": [ + { + "path": "../isomorphic/tsconfig.build.json" + } + ], + "files": [], + "include": [ + "src/**/*.ts" + ] } diff --git a/packages/ripple-binary-codec/.gitignore b/packages/ripple-binary-codec/.gitignore deleted file mode 100644 index 7c31fa8845..0000000000 --- a/packages/ripple-binary-codec/.gitignore +++ /dev/null @@ -1,64 +0,0 @@ -# .gitignore - -# Ignore vim swap files. -*.swp - -# Ignore SCons support files. -.sconsign.dblite - -# Ignore python compiled files. -*.pyc - -# Ignore Macintosh Desktop Services Store files. -.DS_Store - -# Ignore backup/temps -*~ - -# Ignore object files. -*.o -build/ -distrib/ -tags -bin/rippled -Debug/*.* -Release/*.* - -# Ignore locally installed node_modules -node_modules -!test/node_modules - -# Ignore tmp directory. -tmp - -# Ignore database directory. -db/*.db -db/*.db-* - -# Ignore customized configs -rippled.cfg -validators.txt -test/config.js - -# Ignore coverage files -/lib-cov -/src-cov -/coverage.html -/coverage - -# Ignore IntelliJ files -.idea - -# Ignore npm-debug -npm-debug.log - -# Ignore dist folder, build for bower -dist/ - -# Ignore flow output directory -out/ - -# Ignore perf test cache -scripts/cache - -eslintrc diff --git a/packages/ripple-binary-codec/CONTRIBUTING.md b/packages/ripple-binary-codec/CONTRIBUTING.md new file mode 100644 index 0000000000..a712bfe55a --- /dev/null +++ b/packages/ripple-binary-codec/CONTRIBUTING.md @@ -0,0 +1,29 @@ +# Code structure + + - `enums` contains the logic for mapping types to their numerical id in rippled, which is used to serialize / deserialize later on. For more details, see its specific [README.md](src/enums/README.md) + - `serdes` contains the two main classes of this repo `BinarySerializer` and `BinaryParser` which actually do the serializing / deserializing. + - `types` defines how the library should convert between objects and binary data for each data type. These are then used by the `BinarySerializer` and `BinaryParser` to serialize / deserialize rippled data. + - At the top-level, we have helper functions for specific situations (like `encodeForMultisigning` in [index.ts](src/index.ts)). These functions are generally what are used by consumers of the library (with `BinarySerializer` and `BinaryParser` being used as the implementation under the hood) + +# Running tests +You can run tests for this repo with: +`npm i` to install necessary dependencies followed by either: +- `npm test` - Run unit tests in Node. +- `npm test:browser` - Run unit tests in the browser. + +## Adding tests +All tests should be added to the `test` folder, with long test data added to the [test/fixtures](test/fixtures) folder. + +For a good example unit test file, look at [test/hash.test.ts](test/hash.test.ts). + +If you add a new serializable type, please add a new file with tests that ensure it can be encoded / decoded, and that it throws any relevant errors. + +# Adding new serializable types +To add a new serializable type, first read through `enum`'s [README.md](src/enums/README.md) as it explains how to update `definitions.json` which ties `TransactionType`s and `Field`s to specific ids rippled understands. + +After that, if you need to add a new type of data to be serialized / deserialized (for example adding a bigger int than [uint-64.ts](src/types/uint-64.ts)) you can follow these steps: +1. Create a new class that extends `SerializedType` + - If your type is intended to be comparable to native values like `number`, you should extend `Comparable`. See [uint-64.ts](src/types/uint-64.ts) for an example of this. +2. Add your new subclass of `SerializableType` to `coreTypes` in [packages/ripple-binary-codec/src/types/index.ts](packages/ripple-binary-codec/src/types/index.ts) + - The `coreTypes` variable is used by `BinaryParser` and `BinarySerializer` to understand what possible types exist when reading / writing binary data. +3. Write a unit tests for this type that demonstrates it can properly serialize / deserialize and throw the proper errors (see [Adding Tests](#adding-tests)) diff --git a/packages/ripple-binary-codec/HISTORY.md b/packages/ripple-binary-codec/HISTORY.md index 15a7636dd9..a0710d4eba 100644 --- a/packages/ripple-binary-codec/HISTORY.md +++ b/packages/ripple-binary-codec/HISTORY.md @@ -1,8 +1,72 @@ # 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 diff --git a/packages/ripple-binary-codec/karma.config.js b/packages/ripple-binary-codec/karma.config.js new file mode 100644 index 0000000000..4ad4b5df2d --- /dev/null +++ b/packages/ripple-binary-codec/karma.config.js @@ -0,0 +1,15 @@ +const baseKarmaConfig = require('../../karma.config') +const webpackConfig = require('./test/webpack.config') +delete webpackConfig.entry + +module.exports = function (config) { + baseKarmaConfig(config) + + config.set({ + base: '', + webpack: webpackConfig, + + // list of files / patterns to load in the browser + files: ['test/**/*.test.ts'], + }) +} diff --git a/packages/ripple-binary-codec/package.json b/packages/ripple-binary-codec/package.json index 4052aca269..d256faa41d 100644 --- a/packages/ripple-binary-codec/package.json +++ b/packages/ripple-binary-codec/package.json @@ -1,31 +1,34 @@ { "name": "@transia/ripple-binary-codec", - "version": "1.4.6-alpha.10", + "version": "2.1.0-alpha.10", "description": "XRP Ledger binary codec", "files": [ "dist/*", - "bin/*", - "test/*" + "src/*" ], "main": "dist/", "directories": { "test": "test" }, "dependencies": { - "@transia/ripple-address-codec": "^4.2.8-alpha.0", - "assert": "^2.0.0", - "big-integer": "^1.6.48", - "buffer": "5.6.0", - "create-hash": "^1.2.0", - "decimal.js": "^10.2.0" + "@xrplf/isomorphic": "^1.0.1", + "bignumber.js": "^9.0.0", + "ripple-address-codec": "npm:@transia/ripple-address-codec@^5.0.0-alpha.0" }, "scripts": { - "build": "tsc -b && copyfiles ./src/enums/definitions.json ./dist/enums/", - "clean": "rm -rf ./dist && rm -rf tsconfig.tsbuildinfo", - "prepare": "npm run build && npm test", - "test": "jest --verbose false --silent=false ./test/*.test.js", + "build": "tsc --build tsconfig.build.json && copyfiles ./src/enums/definitions.json ./dist/enums/", + "clean": "rm -rf ./dist ./coverage ./test/testCompiledForWeb tsconfig.build.tsbuildinfo", + "prepublishOnly": "npm test", + "test": "npm run build && jest --verbose false --silent=false ./test/*.test.ts", + "test:browser": "npm run build && karma start ./karma.config.js", "lint": "eslint . --ext .ts --ext .test.js" }, + "keywords": [ + "ripple", + "xrp", + "xrp ledger", + "xrpl" + ], "repository": { "type": "git", "url": "git@github.com/Transia-RnD/xrpl.js/tree/beta" @@ -38,6 +41,6 @@ "readmeFilename": "README.md", "prettier": "@xrplf/prettier-config", "engines": { - "node": ">= 10" + "node": ">= 18" } } diff --git a/packages/ripple-binary-codec/src/README.md b/packages/ripple-binary-codec/src/README.md index 5c5e62adb2..16c040f06f 100644 --- a/packages/ripple-binary-codec/src/README.md +++ b/packages/ripple-binary-codec/src/README.md @@ -1,3 +1,5 @@ # ripple-binary-codec -Serialize and deserialize transactions according to the XRP Ledger protocol. \ No newline at end of file +Serialize and deserialize transactions according to the XRP Ledger protocol. + +If you'd like to add a new transaction, data type, or generally modify this library, please read the [CONTRIBUTING.md](CONTRIBUTING.md) diff --git a/packages/ripple-binary-codec/src/binary.ts b/packages/ripple-binary-codec/src/binary.ts index 52f52a1f70..0929e97835 100644 --- a/packages/ripple-binary-codec/src/binary.ts +++ b/packages/ripple-binary-codec/src/binary.ts @@ -1,5 +1,6 @@ /* eslint-disable func-style */ +import { bytesToHex } from '@xrplf/isomorphic/utils' import { coreTypes } from './types' import { BinaryParser } from './serdes/binary-parser' import { AccountID } from './types/account-id' @@ -13,22 +14,24 @@ import { } from './enums' import { STObject } from './types/st-object' import { JsonObject } from './types/serialized-type' -import { Buffer } from 'buffer/' -import bigInt = require('big-integer') import { AmountObject } from './types/amount' /** * Construct a BinaryParser * - * @param bytes hex-string to construct BinaryParser from + * @param bytes hex-string or Uint8Array to construct BinaryParser from * @param definitions rippled definitions used to parse the values of transaction types and such. * Can be customized for sidechains and amendments. - * @returns A BinaryParser + * @returns BinaryParser */ const makeParser = ( - bytes: string, + bytes: string | Uint8Array, definitions?: XrplDefinitionsBase, -): BinaryParser => new BinaryParser(bytes, definitions) +): BinaryParser => + new BinaryParser( + bytes instanceof Uint8Array ? bytesToHex(bytes) : bytes, + definitions, + ) /** * Parse BinaryParser into JSON @@ -63,8 +66,8 @@ const binaryToJSON = ( * @field set signingFieldOnly to true if you want to serialize only signing fields */ interface OptionObject { - prefix?: Buffer - suffix?: Buffer + prefix?: Uint8Array + suffix?: Uint8Array signingFieldsOnly?: boolean definitions?: XrplDefinitionsBase } @@ -74,9 +77,12 @@ interface OptionObject { * * @param object JSON object to serialize * @param opts options for serializing, including optional prefix, suffix, signingFieldOnly, and definitions - * @returns A Buffer containing the serialized object + * @returns A Uint8Array containing the serialized object */ -function serializeObject(object: JsonObject, opts: OptionObject = {}): Buffer { +function serializeObject( + object: JsonObject, + opts: OptionObject = {}, +): Uint8Array { const { prefix, suffix, signingFieldsOnly = false, definitions } = opts const bytesList = new BytesList() @@ -104,13 +110,13 @@ function serializeObject(object: JsonObject, opts: OptionObject = {}): Buffer { * @param transaction Transaction to serialize * @param prefix Prefix bytes to put before the serialized object * @param opts.definitions Custom rippled types to use instead of the default. Used for sidechains and amendments. - * @returns A Buffer with the serialized object + * @returns A Uint8Array with the serialized object */ function signingData( transaction: JsonObject, - prefix: Buffer = HashPrefix.transactionSig, + prefix: Uint8Array = HashPrefix.transactionSig, opts: { definitions?: XrplDefinitionsBase } = {}, -): Buffer { +): Uint8Array { return serializeObject(transaction, { prefix, signingFieldsOnly: true, @@ -133,14 +139,14 @@ interface ClaimObject extends JsonObject { * @param opts.definitions Custom rippled types to use instead of the default. Used for sidechains and amendments. * @returns the serialized object with appropriate prefix */ -function signingClaimData(claim: ClaimObject): Buffer { +function signingClaimData(claim: ClaimObject): Uint8Array { const prefix = HashPrefix.paymentChannelClaim const channel = coreTypes.Hash256.from(claim.channel).toBytes() const bytesList = new BytesList() bytesList.put(prefix) bytesList.put(channel) if (typeof claim.amount === 'string') { - const num = bigInt(String(claim.amount)) + const num = BigInt(String(claim.amount)) const amount = coreTypes.UInt64.from(num).toBytes() bytesList.put(amount) } else { @@ -164,7 +170,7 @@ function multiSigningData( opts: { definitions: XrplDefinitionsBase } = { definitions: DEFAULT_DEFINITIONS, }, -): Buffer { +): Uint8Array { const prefix = HashPrefix.transactionMultiSig const suffix = coreTypes.AccountID.from(signingAccount).toBytes() return serializeObject(transaction, { diff --git a/packages/ripple-binary-codec/src/enums/bytes.ts b/packages/ripple-binary-codec/src/enums/bytes.ts index 9ef4b3c788..33a7e5393c 100644 --- a/packages/ripple-binary-codec/src/enums/bytes.ts +++ b/packages/ripple-binary-codec/src/enums/bytes.ts @@ -1,18 +1,17 @@ import { BytesList, BinaryParser } from '../binary' -import { Buffer } from 'buffer/' /* * @brief: Bytes, name, and ordinal representing one type, ledger_type, transaction type, or result */ export class Bytes { - readonly bytes: Buffer + readonly bytes: Uint8Array constructor( readonly name: string, readonly ordinal: number, readonly ordinalWidth: number, ) { - this.bytes = Buffer.alloc(ordinalWidth) + this.bytes = new Uint8Array(ordinalWidth) for (let i = 0; i < ordinalWidth; i++) { this.bytes[ordinalWidth - i - 1] = (ordinal >>> (i * 8)) & 0xff } diff --git a/packages/ripple-binary-codec/src/enums/definitions-xahau.json b/packages/ripple-binary-codec/src/enums/definitions-xahau.json new file mode 100644 index 0000000000..e051451e8e --- /dev/null +++ b/packages/ripple-binary-codec/src/enums/definitions-xahau.json @@ -0,0 +1,2775 @@ +{ + "TYPES": { + "Done": -1, + "Unknown": -2, + "NotPresent": 0, + "UInt16": 1, + "UInt32": 2, + "UInt64": 3, + "Hash128": 4, + "Hash256": 5, + "Amount": 6, + "Blob": 7, + "AccountID": 8, + "STObject": 14, + "STArray": 15, + "UInt8": 16, + "Hash160": 17, + "PathSet": 18, + "Vector256": 19, + "UInt96": 20, + "UInt192": 21, + "UInt384": 22, + "UInt512": 23, + "Transaction": 10001, + "LedgerEntry": 10002, + "Validation": 10003, + "Metadata": 10004 + }, + "LEDGER_ENTRY_TYPES": { + "Invalid": -1, + "AccountRoot": 97, + "DirectoryNode": 100, + "RippleState": 114, + "Ticket": 84, + "SignerList": 83, + "Offer": 111, + "LedgerHashes": 104, + "Amendments": 102, + "FeeSettings": 115, + "ImportVLSequence": 73, + "Escrow": 117, + "PayChannel": 120, + "Check": 67, + "DepositPreauth": 112, + "NegativeUNL": 78, + "NFTokenPage": 80, + "NFTokenOffer": 55, + "URIToken": 85, + "UNLReport": 82, + "Any": -3, + "Child": -2, + "Nickname": 110, + "Contract": 99, + "GeneratorMap": 103, + "Hook": 72, + "HookState": 118, + "HookDefinition": 68, + "EmittedTxn": 69 + }, + "FIELDS": [ + [ + "Generic", + { + "nth": 0, + "isVLEncoded": false, + "isSerialized": false, + "isSigningField": false, + "type": "Unknown" + } + ], + [ + "Invalid", + { + "nth": -1, + "isVLEncoded": false, + "isSerialized": false, + "isSigningField": false, + "type": "Unknown" + } + ], + [ + "ObjectEndMarker", + { + "nth": 1, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "STObject" + } + ], + [ + "ArrayEndMarker", + { + "nth": 1, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "STArray" + } + ], + [ + "hash", + { + "nth": 257, + "isVLEncoded": false, + "isSerialized": false, + "isSigningField": false, + "type": "Hash256" + } + ], + [ + "index", + { + "nth": 258, + "isVLEncoded": false, + "isSerialized": false, + "isSigningField": false, + "type": "Hash256" + } + ], + [ + "taker_gets_funded", + { + "nth": 258, + "isVLEncoded": false, + "isSerialized": false, + "isSigningField": false, + "type": "Amount" + } + ], + [ + "taker_pays_funded", + { + "nth": 259, + "isVLEncoded": false, + "isSerialized": false, + "isSigningField": false, + "type": "Amount" + } + ], + [ + "LedgerEntry", + { + "nth": 257, + "isVLEncoded": false, + "isSerialized": false, + "isSigningField": false, + "type": "LedgerEntry" + } + ], + [ + "Transaction", + { + "nth": 257, + "isVLEncoded": false, + "isSerialized": false, + "isSigningField": false, + "type": "Transaction" + } + ], + [ + "Validation", + { + "nth": 257, + "isVLEncoded": false, + "isSerialized": false, + "isSigningField": false, + "type": "Validation" + } + ], + [ + "Metadata", + { + "nth": 257, + "isVLEncoded": false, + "isSerialized": false, + "isSigningField": false, + "type": "Metadata" + } + ], + [ + "CloseResolution", + { + "nth": 1, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt8" + } + ], + [ + "Method", + { + "nth": 2, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt8" + } + ], + [ + "TransactionResult", + { + "nth": 3, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt8" + } + ], + [ + "TickSize", + { + "nth": 16, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt8" + } + ], + [ + "UNLModifyDisabling", + { + "nth": 17, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt8" + } + ], + [ + "HookResult", + { + "nth": 18, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt8" + } + ], + [ + "LedgerEntryType", + { + "nth": 1, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt16" + } + ], + [ + "TransactionType", + { + "nth": 2, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt16" + } + ], + [ + "SignerWeight", + { + "nth": 3, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt16" + } + ], + [ + "TransferFee", + { + "nth": 4, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt16" + } + ], + [ + "Version", + { + "nth": 16, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt16" + } + ], + [ + "HookStateChangeCount", + { + "nth": 17, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt16" + } + ], + [ + "HookEmitCount", + { + "nth": 18, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt16" + } + ], + [ + "HookExecutionIndex", + { + "nth": 19, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt16" + } + ], + [ + "HookApiVersion", + { + "nth": 20, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt16" + } + ], + [ + "NetworkID", + { + "nth": 1, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt32" + } + ], + [ + "Flags", + { + "nth": 2, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt32" + } + ], + [ + "SourceTag", + { + "nth": 3, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt32" + } + ], + [ + "Sequence", + { + "nth": 4, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt32" + } + ], + [ + "PreviousTxnLgrSeq", + { + "nth": 5, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt32" + } + ], + [ + "LedgerSequence", + { + "nth": 6, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt32" + } + ], + [ + "CloseTime", + { + "nth": 7, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt32" + } + ], + [ + "ParentCloseTime", + { + "nth": 8, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt32" + } + ], + [ + "SigningTime", + { + "nth": 9, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt32" + } + ], + [ + "Expiration", + { + "nth": 10, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt32" + } + ], + [ + "TransferRate", + { + "nth": 11, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt32" + } + ], + [ + "WalletSize", + { + "nth": 12, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt32" + } + ], + [ + "OwnerCount", + { + "nth": 13, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt32" + } + ], + [ + "DestinationTag", + { + "nth": 14, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt32" + } + ], + [ + "HighQualityIn", + { + "nth": 16, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt32" + } + ], + [ + "HighQualityOut", + { + "nth": 17, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt32" + } + ], + [ + "LowQualityIn", + { + "nth": 18, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt32" + } + ], + [ + "LowQualityOut", + { + "nth": 19, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt32" + } + ], + [ + "QualityIn", + { + "nth": 20, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt32" + } + ], + [ + "QualityOut", + { + "nth": 21, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt32" + } + ], + [ + "StampEscrow", + { + "nth": 22, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt32" + } + ], + [ + "BondAmount", + { + "nth": 23, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt32" + } + ], + [ + "LoadFee", + { + "nth": 24, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt32" + } + ], + [ + "OfferSequence", + { + "nth": 25, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt32" + } + ], + [ + "FirstLedgerSequence", + { + "nth": 26, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt32" + } + ], + [ + "LastLedgerSequence", + { + "nth": 27, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt32" + } + ], + [ + "TransactionIndex", + { + "nth": 28, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt32" + } + ], + [ + "OperationLimit", + { + "nth": 29, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt32" + } + ], + [ + "ReferenceFeeUnits", + { + "nth": 30, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt32" + } + ], + [ + "ReserveBase", + { + "nth": 31, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt32" + } + ], + [ + "ReserveIncrement", + { + "nth": 32, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt32" + } + ], + [ + "SetFlag", + { + "nth": 33, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt32" + } + ], + [ + "ClearFlag", + { + "nth": 34, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt32" + } + ], + [ + "SignerQuorum", + { + "nth": 35, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt32" + } + ], + [ + "CancelAfter", + { + "nth": 36, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt32" + } + ], + [ + "FinishAfter", + { + "nth": 37, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt32" + } + ], + [ + "SignerListID", + { + "nth": 38, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt32" + } + ], + [ + "SettleDelay", + { + "nth": 39, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt32" + } + ], + [ + "TicketCount", + { + "nth": 40, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt32" + } + ], + [ + "TicketSequence", + { + "nth": 41, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt32" + } + ], + [ + "NFTokenTaxon", + { + "nth": 42, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt32" + } + ], + [ + "MintedNFTokens", + { + "nth": 43, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt32" + } + ], + [ + "BurnedNFTokens", + { + "nth": 44, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt32" + } + ], + [ + "HookStateCount", + { + "nth": 45, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt32" + } + ], + [ + "EmitGeneration", + { + "nth": 46, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt32" + } + ], + [ + "LockCount", + { + "nth": 49, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt32" + } + ], + [ + "FirstNFTokenSequence", + { + "nth": 50, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt32" + } + ], + [ + "XahauActivationLgrSeq", + { + "nth": 96, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt32" + } + ], + [ + "ImportSequence", + { + "nth": 97, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt32" + } + ], + [ + "RewardTime", + { + "nth": 98, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt32" + } + ], + [ + "RewardLgrFirst", + { + "nth": 99, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt32" + } + ], + [ + "RewardLgrLast", + { + "nth": 100, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt32" + } + ], + [ + "IndexNext", + { + "nth": 1, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt64" + } + ], + [ + "IndexPrevious", + { + "nth": 2, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt64" + } + ], + [ + "BookNode", + { + "nth": 3, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt64" + } + ], + [ + "OwnerNode", + { + "nth": 4, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt64" + } + ], + [ + "BaseFee", + { + "nth": 5, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt64" + } + ], + [ + "ExchangeRate", + { + "nth": 6, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt64" + } + ], + [ + "LowNode", + { + "nth": 7, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt64" + } + ], + [ + "HighNode", + { + "nth": 8, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt64" + } + ], + [ + "DestinationNode", + { + "nth": 9, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt64" + } + ], + [ + "Cookie", + { + "nth": 10, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt64" + } + ], + [ + "ServerVersion", + { + "nth": 11, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt64" + } + ], + [ + "NFTokenOfferNode", + { + "nth": 12, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt64" + } + ], + [ + "EmitBurden", + { + "nth": 13, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt64" + } + ], + [ + "HookInstructionCount", + { + "nth": 17, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt64" + } + ], + [ + "HookReturnCode", + { + "nth": 18, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt64" + } + ], + [ + "ReferenceCount", + { + "nth": 19, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt64" + } + ], + [ + "AccountIndex", + { + "nth": 98, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt64" + } + ], + [ + "AccountCount", + { + "nth": 99, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt64" + } + ], + [ + "RewardAccumulator", + { + "nth": 100, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt64" + } + ], + [ + "EmailHash", + { + "nth": 1, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "Hash128" + } + ], + [ + "TakerPaysCurrency", + { + "nth": 1, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "Hash160" + } + ], + [ + "TakerPaysIssuer", + { + "nth": 2, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "Hash160" + } + ], + [ + "TakerGetsCurrency", + { + "nth": 3, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "Hash160" + } + ], + [ + "TakerGetsIssuer", + { + "nth": 4, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "Hash160" + } + ], + [ + "LedgerHash", + { + "nth": 1, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "Hash256" + } + ], + [ + "ParentHash", + { + "nth": 2, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "Hash256" + } + ], + [ + "TransactionHash", + { + "nth": 3, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "Hash256" + } + ], + [ + "AccountHash", + { + "nth": 4, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "Hash256" + } + ], + [ + "PreviousTxnID", + { + "nth": 5, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "Hash256" + } + ], + [ + "LedgerIndex", + { + "nth": 6, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "Hash256" + } + ], + [ + "WalletLocator", + { + "nth": 7, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "Hash256" + } + ], + [ + "RootIndex", + { + "nth": 8, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "Hash256" + } + ], + [ + "AccountTxnID", + { + "nth": 9, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "Hash256" + } + ], + [ + "NFTokenID", + { + "nth": 10, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "Hash256" + } + ], + [ + "EmitParentTxnID", + { + "nth": 11, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "Hash256" + } + ], + [ + "EmitNonce", + { + "nth": 12, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "Hash256" + } + ], + [ + "EmitHookHash", + { + "nth": 13, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "Hash256" + } + ], + [ + "BookDirectory", + { + "nth": 16, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "Hash256" + } + ], + [ + "InvoiceID", + { + "nth": 17, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "Hash256" + } + ], + [ + "Nickname", + { + "nth": 18, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "Hash256" + } + ], + [ + "Amendment", + { + "nth": 19, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "Hash256" + } + ], + [ + "HookOn", + { + "nth": 20, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "Hash256" + } + ], + [ + "Digest", + { + "nth": 21, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "Hash256" + } + ], + [ + "Channel", + { + "nth": 22, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "Hash256" + } + ], + [ + "ConsensusHash", + { + "nth": 23, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "Hash256" + } + ], + [ + "CheckID", + { + "nth": 24, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "Hash256" + } + ], + [ + "ValidatedHash", + { + "nth": 25, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "Hash256" + } + ], + [ + "PreviousPageMin", + { + "nth": 26, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "Hash256" + } + ], + [ + "NextPageMin", + { + "nth": 27, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "Hash256" + } + ], + [ + "NFTokenBuyOffer", + { + "nth": 28, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "Hash256" + } + ], + [ + "NFTokenSellOffer", + { + "nth": 29, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "Hash256" + } + ], + [ + "HookStateKey", + { + "nth": 30, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "Hash256" + } + ], + [ + "HookHash", + { + "nth": 31, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "Hash256" + } + ], + [ + "HookNamespace", + { + "nth": 32, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "Hash256" + } + ], + [ + "HookSetTxnID", + { + "nth": 33, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "Hash256" + } + ], + [ + "OfferID", + { + "nth": 34, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "Hash256" + } + ], + [ + "EscrowID", + { + "nth": 35, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "Hash256" + } + ], + [ + "URITokenID", + { + "nth": 36, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "Hash256" + } + ], + [ + "GovernanceFlags", + { + "nth": 99, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "Hash256" + } + ], + [ + "GovernanceMarks", + { + "nth": 98, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "Hash256" + } + ], + [ + "EmittedTxnID", + { + "nth": 97, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "Hash256" + } + ], + [ + "Amount", + { + "nth": 1, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "Amount" + } + ], + [ + "Balance", + { + "nth": 2, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "Amount" + } + ], + [ + "LimitAmount", + { + "nth": 3, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "Amount" + } + ], + [ + "TakerPays", + { + "nth": 4, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "Amount" + } + ], + [ + "TakerGets", + { + "nth": 5, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "Amount" + } + ], + [ + "LowLimit", + { + "nth": 6, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "Amount" + } + ], + [ + "HighLimit", + { + "nth": 7, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "Amount" + } + ], + [ + "Fee", + { + "nth": 8, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "Amount" + } + ], + [ + "SendMax", + { + "nth": 9, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "Amount" + } + ], + [ + "DeliverMin", + { + "nth": 10, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "Amount" + } + ], + [ + "MinimumOffer", + { + "nth": 16, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "Amount" + } + ], + [ + "RippleEscrow", + { + "nth": 17, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "Amount" + } + ], + [ + "DeliveredAmount", + { + "nth": 18, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "Amount" + } + ], + [ + "NFTokenBrokerFee", + { + "nth": 19, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "Amount" + } + ], + [ + "HookCallbackFee", + { + "nth": 20, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "Amount" + } + ], + [ + "LockedBalance", + { + "nth": 21, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "Amount" + } + ], + [ + "BaseFeeDrops", + { + "nth": 22, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "Amount" + } + ], + [ + "ReserveBaseDrops", + { + "nth": 23, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "Amount" + } + ], + [ + "ReserveIncrementDrops", + { + "nth": 24, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "Amount" + } + ], + [ + "PublicKey", + { + "nth": 1, + "isVLEncoded": true, + "isSerialized": true, + "isSigningField": true, + "type": "Blob" + } + ], + [ + "MessageKey", + { + "nth": 2, + "isVLEncoded": true, + "isSerialized": true, + "isSigningField": true, + "type": "Blob" + } + ], + [ + "SigningPubKey", + { + "nth": 3, + "isVLEncoded": true, + "isSerialized": true, + "isSigningField": true, + "type": "Blob" + } + ], + [ + "TxnSignature", + { + "nth": 4, + "isVLEncoded": true, + "isSerialized": true, + "isSigningField": false, + "type": "Blob" + } + ], + [ + "URI", + { + "nth": 5, + "isVLEncoded": true, + "isSerialized": true, + "isSigningField": true, + "type": "Blob" + } + ], + [ + "Signature", + { + "nth": 6, + "isVLEncoded": true, + "isSerialized": true, + "isSigningField": false, + "type": "Blob" + } + ], + [ + "Domain", + { + "nth": 7, + "isVLEncoded": true, + "isSerialized": true, + "isSigningField": true, + "type": "Blob" + } + ], + [ + "FundCode", + { + "nth": 8, + "isVLEncoded": true, + "isSerialized": true, + "isSigningField": true, + "type": "Blob" + } + ], + [ + "RemoveCode", + { + "nth": 9, + "isVLEncoded": true, + "isSerialized": true, + "isSigningField": true, + "type": "Blob" + } + ], + [ + "ExpireCode", + { + "nth": 10, + "isVLEncoded": true, + "isSerialized": true, + "isSigningField": true, + "type": "Blob" + } + ], + [ + "CreateCode", + { + "nth": 11, + "isVLEncoded": true, + "isSerialized": true, + "isSigningField": true, + "type": "Blob" + } + ], + [ + "MemoType", + { + "nth": 12, + "isVLEncoded": true, + "isSerialized": true, + "isSigningField": true, + "type": "Blob" + } + ], + [ + "MemoData", + { + "nth": 13, + "isVLEncoded": true, + "isSerialized": true, + "isSigningField": true, + "type": "Blob" + } + ], + [ + "MemoFormat", + { + "nth": 14, + "isVLEncoded": true, + "isSerialized": true, + "isSigningField": true, + "type": "Blob" + } + ], + [ + "Fulfillment", + { + "nth": 16, + "isVLEncoded": true, + "isSerialized": true, + "isSigningField": true, + "type": "Blob" + } + ], + [ + "Condition", + { + "nth": 17, + "isVLEncoded": true, + "isSerialized": true, + "isSigningField": true, + "type": "Blob" + } + ], + [ + "MasterSignature", + { + "nth": 18, + "isVLEncoded": true, + "isSerialized": true, + "isSigningField": false, + "type": "Blob" + } + ], + [ + "UNLModifyValidator", + { + "nth": 19, + "isVLEncoded": true, + "isSerialized": true, + "isSigningField": true, + "type": "Blob" + } + ], + [ + "ValidatorToDisable", + { + "nth": 20, + "isVLEncoded": true, + "isSerialized": true, + "isSigningField": true, + "type": "Blob" + } + ], + [ + "ValidatorToReEnable", + { + "nth": 21, + "isVLEncoded": true, + "isSerialized": true, + "isSigningField": true, + "type": "Blob" + } + ], + [ + "HookStateData", + { + "nth": 22, + "isVLEncoded": true, + "isSerialized": true, + "isSigningField": true, + "type": "Blob" + } + ], + [ + "HookReturnString", + { + "nth": 23, + "isVLEncoded": true, + "isSerialized": true, + "isSigningField": true, + "type": "Blob" + } + ], + [ + "HookParameterName", + { + "nth": 24, + "isVLEncoded": true, + "isSerialized": true, + "isSigningField": true, + "type": "Blob" + } + ], + [ + "HookParameterValue", + { + "nth": 25, + "isVLEncoded": true, + "isSerialized": true, + "isSigningField": true, + "type": "Blob" + } + ], + [ + "Blob", + { + "nth": 26, + "isVLEncoded": true, + "isSerialized": true, + "isSigningField": true, + "type": "Blob" + } + ], + [ + "Account", + { + "nth": 1, + "isVLEncoded": true, + "isSerialized": true, + "isSigningField": true, + "type": "AccountID" + } + ], + [ + "Owner", + { + "nth": 2, + "isVLEncoded": true, + "isSerialized": true, + "isSigningField": true, + "type": "AccountID" + } + ], + [ + "Destination", + { + "nth": 3, + "isVLEncoded": true, + "isSerialized": true, + "isSigningField": true, + "type": "AccountID" + } + ], + [ + "Issuer", + { + "nth": 4, + "isVLEncoded": true, + "isSerialized": true, + "isSigningField": true, + "type": "AccountID" + } + ], + [ + "Authorize", + { + "nth": 5, + "isVLEncoded": true, + "isSerialized": true, + "isSigningField": true, + "type": "AccountID" + } + ], + [ + "Unauthorize", + { + "nth": 6, + "isVLEncoded": true, + "isSerialized": true, + "isSigningField": true, + "type": "AccountID" + } + ], + [ + "RegularKey", + { + "nth": 8, + "isVLEncoded": true, + "isSerialized": true, + "isSigningField": true, + "type": "AccountID" + } + ], + [ + "NFTokenMinter", + { + "nth": 9, + "isVLEncoded": true, + "isSerialized": true, + "isSigningField": true, + "type": "AccountID" + } + ], + [ + "EmitCallback", + { + "nth": 10, + "isVLEncoded": true, + "isSerialized": true, + "isSigningField": true, + "type": "AccountID" + } + ], + [ + "HookAccount", + { + "nth": 16, + "isVLEncoded": true, + "isSerialized": true, + "isSigningField": true, + "type": "AccountID" + } + ], + [ + "Inform", + { + "nth": 99, + "isVLEncoded": true, + "isSerialized": true, + "isSigningField": true, + "type": "AccountID" + } + ], + [ + "Indexes", + { + "nth": 1, + "isVLEncoded": true, + "isSerialized": true, + "isSigningField": true, + "type": "Vector256" + } + ], + [ + "Hashes", + { + "nth": 2, + "isVLEncoded": true, + "isSerialized": true, + "isSigningField": true, + "type": "Vector256" + } + ], + [ + "Amendments", + { + "nth": 3, + "isVLEncoded": true, + "isSerialized": true, + "isSigningField": true, + "type": "Vector256" + } + ], + [ + "NFTokenOffers", + { + "nth": 4, + "isVLEncoded": true, + "isSerialized": true, + "isSigningField": true, + "type": "Vector256" + } + ], + [ + "HookNamespaces", + { + "nth": 5, + "isVLEncoded": true, + "isSerialized": true, + "isSigningField": true, + "type": "Vector256" + } + ], + [ + "URITokenIDs", + { + "nth": 99, + "isVLEncoded": true, + "isSerialized": true, + "isSigningField": true, + "type": "Vector256" + } + ], + [ + "Paths", + { + "nth": 1, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "PathSet" + } + ], + [ + "TransactionMetaData", + { + "nth": 2, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "STObject" + } + ], + [ + "CreatedNode", + { + "nth": 3, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "STObject" + } + ], + [ + "DeletedNode", + { + "nth": 4, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "STObject" + } + ], + [ + "ModifiedNode", + { + "nth": 5, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "STObject" + } + ], + [ + "PreviousFields", + { + "nth": 6, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "STObject" + } + ], + [ + "FinalFields", + { + "nth": 7, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "STObject" + } + ], + [ + "NewFields", + { + "nth": 8, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "STObject" + } + ], + [ + "TemplateEntry", + { + "nth": 9, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "STObject" + } + ], + [ + "Memo", + { + "nth": 10, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "STObject" + } + ], + [ + "SignerEntry", + { + "nth": 11, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "STObject" + } + ], + [ + "NFToken", + { + "nth": 12, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "STObject" + } + ], + [ + "EmitDetails", + { + "nth": 13, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "STObject" + } + ], + [ + "Hook", + { + "nth": 14, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "STObject" + } + ], + [ + "Signer", + { + "nth": 16, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "STObject" + } + ], + [ + "Majority", + { + "nth": 18, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "STObject" + } + ], + [ + "DisabledValidator", + { + "nth": 19, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "STObject" + } + ], + [ + "EmittedTxn", + { + "nth": 20, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "STObject" + } + ], + [ + "HookExecution", + { + "nth": 21, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "STObject" + } + ], + [ + "HookDefinition", + { + "nth": 22, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "STObject" + } + ], + [ + "HookParameter", + { + "nth": 23, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "STObject" + } + ], + [ + "HookGrant", + { + "nth": 24, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "STObject" + } + ], + [ + "GenesisMint", + { + "nth": 96, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "STObject" + } + ], + [ + "ActiveValidator", + { + "nth": 95, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "STObject" + } + ], + [ + "ImportVLKey", + { + "nth": 94, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "STObject" + } + ], + [ + "HookEmission", + { + "nth": 93, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "STObject" + } + ], + [ + "MintURIToken", + { + "nth": 92, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "STObject" + } + ], + [ + "AmountEntry", + { + "nth": 91, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "STObject" + } + ], + [ + "Signers", + { + "nth": 3, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": false, + "type": "STArray" + } + ], + [ + "SignerEntries", + { + "nth": 4, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "STArray" + } + ], + [ + "Template", + { + "nth": 5, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "STArray" + } + ], + [ + "Necessary", + { + "nth": 6, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "STArray" + } + ], + [ + "Sufficient", + { + "nth": 7, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "STArray" + } + ], + [ + "AffectedNodes", + { + "nth": 8, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "STArray" + } + ], + [ + "Memos", + { + "nth": 9, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "STArray" + } + ], + [ + "NFTokens", + { + "nth": 10, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "STArray" + } + ], + [ + "Hooks", + { + "nth": 11, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "STArray" + } + ], + [ + "Majorities", + { + "nth": 16, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "STArray" + } + ], + [ + "DisabledValidators", + { + "nth": 17, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "STArray" + } + ], + [ + "HookExecutions", + { + "nth": 18, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "STArray" + } + ], + [ + "HookParameters", + { + "nth": 19, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "STArray" + } + ], + [ + "HookGrants", + { + "nth": 20, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "STArray" + } + ], + [ + "GenesisMints", + { + "nth": 96, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "STArray" + } + ], + [ + "ActiveValidators", + { + "nth": 95, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "STArray" + } + ], + [ + "ImportVLKeys", + { + "nth": 94, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "STArray" + } + ], + [ + "HookEmissions", + { + "nth": 93, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "STArray" + } + ], + [ + "Amounts", + { + "nth": 92, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "STArray" + } + ] + ], + "TRANSACTION_RESULTS": { + "telLOCAL_ERROR": -399, + "telBAD_DOMAIN": -398, + "telBAD_PATH_COUNT": -397, + "telBAD_PUBLIC_KEY": -396, + "telFAILED_PROCESSING": -395, + "telINSUF_FEE_P": -394, + "telNO_DST_PARTIAL": -393, + "telCAN_NOT_QUEUE": -392, + "telCAN_NOT_QUEUE_BALANCE": -391, + "telCAN_NOT_QUEUE_BLOCKS": -390, + "telCAN_NOT_QUEUE_BLOCKED": -389, + "telCAN_NOT_QUEUE_FEE": -388, + "telCAN_NOT_QUEUE_FULL": -387, + "telWRONG_NETWORK": -386, + "telREQUIRES_NETWORK_ID": -385, + "telNETWORK_ID_MAKES_TX_NON_CANONICAL": -384, + "telNON_LOCAL_EMITTED_TXN": -383, + "telIMPORT_VL_KEY_NOT_RECOGNISED": -382, + "telCAN_NOT_QUEUE_IMPORT": -381, + + "temMALFORMED": -299, + "temBAD_AMOUNT": -298, + "temBAD_CURRENCY": -297, + "temBAD_EXPIRATION": -296, + "temBAD_FEE": -295, + "temBAD_ISSUER": -294, + "temBAD_LIMIT": -293, + "temBAD_OFFER": -292, + "temBAD_PATH": -291, + "temBAD_PATH_LOOP": -290, + "temBAD_REGKEY": -289, + "temBAD_SEND_NATIVE_LIMIT": -288, + "temBAD_SEND_NATIVE_MAX": -287, + "temBAD_SEND_NATIVE_NO_DIRECT": -286, + "temBAD_SEND_NATIVE_PARTIAL": -285, + "temBAD_SEND_NATIVE_PATHS": -284, + "temBAD_SEQUENCE": -283, + "temBAD_SIGNATURE": -282, + "temBAD_SRC_ACCOUNT": -281, + "temBAD_TRANSFER_RATE": -280, + "temDST_IS_SRC": -279, + "temDST_NEEDED": -278, + "temINVALID": -277, + "temINVALID_FLAG": -276, + "temREDUNDANT": -275, + "temRIPPLE_EMPTY": -274, + "temDISABLED": -273, + "temBAD_SIGNER": -272, + "temBAD_QUORUM": -271, + "temBAD_WEIGHT": -270, + "temBAD_TICK_SIZE": -269, + "temINVALID_ACCOUNT_ID": -268, + "temCANNOT_PREAUTH_SELF": -267, + "temINVALID_COUNT": -266, + "temUNCERTAIN": -265, + "temUNKNOWN": -264, + "temSEQ_AND_TICKET": -263, + "temBAD_NFTOKEN_TRANSFER_FEE": -262, + "temAMM_BAD_TOKENS": -261, + "temXCHAIN_EQUAL_DOOR_ACCOUNTS": -260, + "temXCHAIN_BAD_PROOF": -259, + "temXCHAIN_BRIDGE_BAD_ISSUES": -258, + "temXCHAIN_BRIDGE_NONDOOR_OWNER": -257, + "temXCHAIN_BRIDGE_BAD_MIN_ACCOUNT_CREATE_AMOUNT": -256, + "temXCHAIN_BRIDGE_BAD_REWARD_AMOUNT": -255, + "temXCHAIN_TOO_MANY_ATTESTATIONS": -254, + "temHOOK_DATA_TOO_LARGE": -253, + + "tefFAILURE": -199, + "tefALREADY": -198, + "tefBAD_ADD_AUTH": -197, + "tefBAD_AUTH": -196, + "tefBAD_LEDGER": -195, + "tefCREATED": -194, + "tefEXCEPTION": -193, + "tefINTERNAL": -192, + "tefNO_AUTH_REQUIRED": -191, + "tefPAST_SEQ": -190, + "tefWRONG_PRIOR": -189, + "tefMASTER_DISABLED": -188, + "tefMAX_LEDGER": -187, + "tefBAD_SIGNATURE": -186, + "tefBAD_QUORUM": -185, + "tefNOT_MULTI_SIGNING": -184, + "tefBAD_AUTH_MASTER": -183, + "tefINVARIANT_FAILED": -182, + "tefTOO_BIG": -181, + "tefNO_TICKET": -180, + "tefNFTOKEN_IS_NOT_TRANSFERABLE": -179, + "tefPAST_IMPORT_SEQ": -178, + "tefPAST_IMPORT_VL_SEQ": -177, + "tefNONDIR_EMIT": -176, + + "terRETRY": -99, + "terFUNDS_SPENT": -98, + "terINSUF_FEE_B": -97, + "terNO_ACCOUNT": -96, + "terNO_AUTH": -95, + "terNO_LINE": -94, + "terOWNERS": -93, + "terPRE_SEQ": -92, + "terLAST": -91, + "terNO_RIPPLE": -90, + "terQUEUED": -89, + "terPRE_TICKET": -88, + "terNO_AMM": -87, + "terNO_HOOK": -86, + + "tesSUCCESS": 0, + "tesPARTIAL": 1, + + "tecCLAIM": 100, + "tecPATH_PARTIAL": 101, + "tecUNFUNDED_ADD": 102, + "tecUNFUNDED_OFFER": 103, + "tecUNFUNDED_PAYMENT": 104, + "tecFAILED_PROCESSING": 105, + "tecDIR_FULL": 121, + "tecINSUF_RESERVE_LINE": 122, + "tecINSUF_RESERVE_OFFER": 123, + "tecNO_DST": 124, + "tecNO_DST_INSUF_NATIVE": 125, + "tecNO_LINE_INSUF_RESERVE": 126, + "tecNO_LINE_REDUNDANT": 127, + "tecPATH_DRY": 128, + "tecUNFUNDED": 129, + "tecNO_ALTERNATIVE_KEY": 130, + "tecNO_REGULAR_KEY": 131, + "tecOWNERS": 132, + "tecNO_ISSUER": 133, + "tecNO_AUTH": 134, + "tecNO_LINE": 135, + "tecINSUFF_FEE": 136, + "tecFROZEN": 137, + "tecNO_TARGET": 138, + "tecNO_PERMISSION": 139, + "tecNO_ENTRY": 140, + "tecINSUFFICIENT_RESERVE": 141, + "tecNEED_MASTER_KEY": 142, + "tecDST_TAG_NEEDED": 143, + "tecINTERNAL": 144, + "tecOVERSIZE": 145, + "tecCRYPTOCONDITION_ERROR": 146, + "tecINVARIANT_FAILED": 147, + "tecEXPIRED": 148, + "tecDUPLICATE": 149, + "tecKILLED": 150, + "tecHAS_OBLIGATIONS": 151, + "tecTOO_SOON": 152, + "tecHOOK_REJECTED": 153, + "tecMAX_SEQUENCE_REACHED": 154, + "tecNO_SUITABLE_NFTOKEN_PAGE": 155, + "tecNFTOKEN_BUY_SELL_MISMATCH": 156, + "tecNFTOKEN_OFFER_TYPE_MISMATCH": 157, + "tecCANT_ACCEPT_OWN_NFTOKEN_OFFER": 158, + "tecINSUFFICIENT_FUNDS": 159, + "tecOBJECT_NOT_FOUND": 160, + "tecINSUFFICIENT_PAYMENT": 161, + "tecAMM_UNFUNDED": 162, + "tecAMM_BALANCE": 163, + "tecAMM_FAILED_DEPOSIT": 164, + "tecAMM_FAILED_WITHDRAW": 165, + "tecAMM_INVALID_TOKENS": 166, + "tecAMM_FAILED_BID": 167, + "tecAMM_FAILED_VOTE": 168, + "tecREQUIRES_FLAG": 169, + "tecPRECISION_LOSS": 170, + "tecBAD_XCHAIN_TRANSFER_ISSUE": 171, + "tecXCHAIN_NO_CLAIM_ID": 172, + "tecXCHAIN_BAD_CLAIM_ID": 173, + "tecXCHAIN_CLAIM_NO_QUORUM": 174, + "tecXCHAIN_PROOF_UNKNOWN_KEY": 175, + "tecXCHAIN_CREATE_ACCOUNT_NONXRP_ISSUE": 176, + "tecXCHAIN_WRONG_CHAIN": 177, + "tecXCHAIN_REWARD_MISMATCH": 178, + "tecXCHAIN_NO_SIGNERS_LIST": 179, + "tecXCHAIN_SENDING_ACCOUNT_MISMATCH": 180, + "tecXCHAIN_INSUFF_CREATE_AMOUNT": 181, + "tecXCHAIN_ACCOUNT_CREATE_PAST": 182, + "tecXCHAIN_ACCOUNT_CREATE_TOO_MANY": 183, + "tecXCHAIN_PAYMENT_FAILED": 184, + "tecXCHAIN_SELF_COMMIT": 185, + "tecXCHAIN_BAD_PUBLIC_KEY_ACCOUNT_PAIR": 186, + "tecINSUF_RESERVE_SELLER": 187, + "tecLAST_POSSIBLE_ENTRY": 255 + }, + "TRANSACTION_TYPES": { + "Invalid": -1, + "Payment": 0, + "EscrowCreate": 1, + "EscrowFinish": 2, + "AccountSet": 3, + "EscrowCancel": 4, + "SetRegularKey": 5, + "NickNameSet": 6, + "OfferCreate": 7, + "OfferCancel": 8, + "Contract": 9, + "TicketCreate": 10, + "TicketCancel": 11, + "SignerListSet": 12, + "PaymentChannelCreate": 13, + "PaymentChannelFund": 14, + "PaymentChannelClaim": 15, + "CheckCreate": 16, + "CheckCash": 17, + "CheckCancel": 18, + "DepositPreauth": 19, + "TrustSet": 20, + "AccountDelete": 21, + "SetHook": 22, + "NFTokenMint": 25, + "NFTokenBurn": 26, + "NFTokenCreateOffer": 27, + "NFTokenCancelOffer": 28, + "NFTokenAcceptOffer": 29, + "URITokenMint": 45, + "URITokenBurn": 46, + "URITokenBuy": 47, + "URITokenCreateSellOffer": 48, + "URITokenCancelSellOffer": 49, + "Remit": 95, + "GenesisMint": 96, + "Import": 97, + "ClaimReward": 98, + "Invoke": 99, + "EnableAmendment": 100, + "SetFee": 101, + "UNLModify": 102, + "EmitFailure": 103, + "UNLReport": 104 + } +} diff --git a/packages/ripple-binary-codec/src/enums/definitions.json b/packages/ripple-binary-codec/src/enums/definitions.json index e051451e8e..7e571e1dd2 100644 --- a/packages/ripple-binary-codec/src/enums/definitions.json +++ b/packages/ripple-binary-codec/src/enums/definitions.json @@ -21,6 +21,9 @@ "UInt192": 21, "UInt384": 22, "UInt512": 23, + "Issue": 24, + "XChainBridge": 25, + "Currency": 26, "Transaction": 10001, "LedgerEntry": 10002, "Validation": 10003, @@ -34,10 +37,12 @@ "Ticket": 84, "SignerList": 83, "Offer": 111, + "Bridge": 105, "LedgerHashes": 104, "Amendments": 102, + "XChainOwnedClaimID": 113, + "XChainOwnedCreateAccountClaimID": 116, "FeeSettings": 115, - "ImportVLSequence": 73, "Escrow": 117, "PayChannel": 120, "Check": 67, @@ -45,17 +50,14 @@ "NegativeUNL": 78, "NFTokenPage": 80, "NFTokenOffer": 55, - "URIToken": 85, - "UNLReport": 82, + "AMM": 121, + "DID": 73, + "Oracle": 128, "Any": -3, "Child": -2, "Nickname": 110, "Contract": 99, - "GeneratorMap": 103, - "Hook": 72, - "HookState": 118, - "HookDefinition": 68, - "EmittedTxn": 69 + "GeneratorMap": 103 }, "FIELDS": [ [ @@ -208,6 +210,16 @@ "type": "UInt8" } ], + [ + "Scale", + { + "nth": 4, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt8" + } + ], [ "TickSize", { @@ -238,6 +250,16 @@ "type": "UInt8" } ], + [ + "WasLockingChainSend", + { + "nth": 19, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt8" + } + ], [ "LedgerEntryType", { @@ -278,6 +300,26 @@ "type": "UInt16" } ], + [ + "TradingFee", + { + "nth": 5, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt16" + } + ], + [ + "DiscountedFee", + { + "nth": 6, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt16" + } + ], [ "Version", { @@ -468,6 +510,16 @@ "type": "UInt32" } ], + [ + "LastUpdateTime", + { + "nth": 15, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt32" + } + ], [ "HighQualityIn", { @@ -779,9 +831,9 @@ } ], [ - "LockCount", + "VoteWeight", { - "nth": 49, + "nth": 48, "isVLEncoded": false, "isSerialized": true, "isSigningField": true, @@ -799,49 +851,9 @@ } ], [ - "XahauActivationLgrSeq", - { - "nth": 96, - "isVLEncoded": false, - "isSerialized": true, - "isSigningField": true, - "type": "UInt32" - } - ], - [ - "ImportSequence", - { - "nth": 97, - "isVLEncoded": false, - "isSerialized": true, - "isSigningField": true, - "type": "UInt32" - } - ], - [ - "RewardTime", - { - "nth": 98, - "isVLEncoded": false, - "isSerialized": true, - "isSigningField": true, - "type": "UInt32" - } - ], - [ - "RewardLgrFirst", - { - "nth": 99, - "isVLEncoded": false, - "isSerialized": true, - "isSigningField": true, - "type": "UInt32" - } - ], - [ - "RewardLgrLast", + "OracleDocumentID", { - "nth": 100, + "nth": 51, "isVLEncoded": false, "isSerialized": true, "isSigningField": true, @@ -978,6 +990,16 @@ "type": "UInt64" } ], + [ + "HookOn", + { + "nth": 16, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt64" + } + ], [ "HookInstructionCount", { @@ -1009,9 +1031,9 @@ } ], [ - "AccountIndex", + "XChainClaimID", { - "nth": 98, + "nth": 20, "isVLEncoded": false, "isSerialized": true, "isSigningField": true, @@ -1019,9 +1041,9 @@ } ], [ - "AccountCount", + "XChainAccountCreateCount", { - "nth": 99, + "nth": 21, "isVLEncoded": false, "isSerialized": true, "isSigningField": true, @@ -1029,9 +1051,19 @@ } ], [ - "RewardAccumulator", + "XChainAccountClaimCount", { - "nth": 100, + "nth": 22, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "UInt64" + } + ], + [ + "AssetPrice", + { + "nth": 23, "isVLEncoded": false, "isSerialized": true, "isSigningField": true, @@ -1219,9 +1251,9 @@ } ], [ - "BookDirectory", + "AMMID", { - "nth": 16, + "nth": 14, "isVLEncoded": false, "isSerialized": true, "isSigningField": true, @@ -1229,9 +1261,9 @@ } ], [ - "InvoiceID", + "BookDirectory", { - "nth": 17, + "nth": 16, "isVLEncoded": false, "isSerialized": true, "isSigningField": true, @@ -1239,9 +1271,9 @@ } ], [ - "Nickname", + "InvoiceID", { - "nth": 18, + "nth": 17, "isVLEncoded": false, "isSerialized": true, "isSigningField": true, @@ -1249,9 +1281,9 @@ } ], [ - "Amendment", + "Nickname", { - "nth": 19, + "nth": 18, "isVLEncoded": false, "isSerialized": true, "isSigningField": true, @@ -1259,9 +1291,9 @@ } ], [ - "HookOn", + "Amendment", { - "nth": 20, + "nth": 19, "isVLEncoded": false, "isSerialized": true, "isSigningField": true, @@ -1399,69 +1431,69 @@ } ], [ - "OfferID", + "Amount", { - "nth": 34, + "nth": 1, "isVLEncoded": false, "isSerialized": true, "isSigningField": true, - "type": "Hash256" + "type": "Amount" } ], [ - "EscrowID", + "Balance", { - "nth": 35, + "nth": 2, "isVLEncoded": false, "isSerialized": true, "isSigningField": true, - "type": "Hash256" + "type": "Amount" } ], [ - "URITokenID", + "LimitAmount", { - "nth": 36, + "nth": 3, "isVLEncoded": false, "isSerialized": true, "isSigningField": true, - "type": "Hash256" + "type": "Amount" } ], [ - "GovernanceFlags", + "TakerPays", { - "nth": 99, + "nth": 4, "isVLEncoded": false, "isSerialized": true, "isSigningField": true, - "type": "Hash256" + "type": "Amount" } ], [ - "GovernanceMarks", + "TakerGets", { - "nth": 98, + "nth": 5, "isVLEncoded": false, "isSerialized": true, "isSigningField": true, - "type": "Hash256" + "type": "Amount" } ], [ - "EmittedTxnID", + "LowLimit", { - "nth": 97, + "nth": 6, "isVLEncoded": false, "isSerialized": true, "isSigningField": true, - "type": "Hash256" + "type": "Amount" } ], [ - "Amount", + "HighLimit", { - "nth": 1, + "nth": 7, "isVLEncoded": false, "isSerialized": true, "isSigningField": true, @@ -1469,9 +1501,9 @@ } ], [ - "Balance", + "Fee", { - "nth": 2, + "nth": 8, "isVLEncoded": false, "isSerialized": true, "isSigningField": true, @@ -1479,9 +1511,9 @@ } ], [ - "LimitAmount", + "SendMax", { - "nth": 3, + "nth": 9, "isVLEncoded": false, "isSerialized": true, "isSigningField": true, @@ -1489,9 +1521,9 @@ } ], [ - "TakerPays", + "DeliverMin", { - "nth": 4, + "nth": 10, "isVLEncoded": false, "isSerialized": true, "isSigningField": true, @@ -1499,9 +1531,9 @@ } ], [ - "TakerGets", + "Amount2", { - "nth": 5, + "nth": 11, "isVLEncoded": false, "isSerialized": true, "isSigningField": true, @@ -1509,9 +1541,9 @@ } ], [ - "LowLimit", + "BidMin", { - "nth": 6, + "nth": 12, "isVLEncoded": false, "isSerialized": true, "isSigningField": true, @@ -1519,9 +1551,9 @@ } ], [ - "HighLimit", + "BidMax", { - "nth": 7, + "nth": 13, "isVLEncoded": false, "isSerialized": true, "isSigningField": true, @@ -1529,9 +1561,9 @@ } ], [ - "Fee", + "MinimumOffer", { - "nth": 8, + "nth": 16, "isVLEncoded": false, "isSerialized": true, "isSigningField": true, @@ -1539,9 +1571,9 @@ } ], [ - "SendMax", + "RippleEscrow", { - "nth": 9, + "nth": 17, "isVLEncoded": false, "isSerialized": true, "isSigningField": true, @@ -1549,9 +1581,9 @@ } ], [ - "DeliverMin", + "DeliveredAmount", { - "nth": 10, + "nth": 18, "isVLEncoded": false, "isSerialized": true, "isSigningField": true, @@ -1559,9 +1591,9 @@ } ], [ - "MinimumOffer", + "NFTokenBrokerFee", { - "nth": 16, + "nth": 19, "isVLEncoded": false, "isSerialized": true, "isSigningField": true, @@ -1569,9 +1601,9 @@ } ], [ - "RippleEscrow", + "BaseFeeDrops", { - "nth": 17, + "nth": 22, "isVLEncoded": false, "isSerialized": true, "isSigningField": true, @@ -1579,9 +1611,9 @@ } ], [ - "DeliveredAmount", + "ReserveBaseDrops", { - "nth": 18, + "nth": 23, "isVLEncoded": false, "isSerialized": true, "isSigningField": true, @@ -1589,9 +1621,9 @@ } ], [ - "NFTokenBrokerFee", + "ReserveIncrementDrops", { - "nth": 19, + "nth": 24, "isVLEncoded": false, "isSerialized": true, "isSigningField": true, @@ -1599,9 +1631,9 @@ } ], [ - "HookCallbackFee", + "LPTokenOut", { - "nth": 20, + "nth": 25, "isVLEncoded": false, "isSerialized": true, "isSigningField": true, @@ -1609,9 +1641,9 @@ } ], [ - "LockedBalance", + "LPTokenIn", { - "nth": 21, + "nth": 26, "isVLEncoded": false, "isSerialized": true, "isSigningField": true, @@ -1619,9 +1651,9 @@ } ], [ - "BaseFeeDrops", + "EPrice", { - "nth": 22, + "nth": 27, "isVLEncoded": false, "isSerialized": true, "isSigningField": true, @@ -1629,9 +1661,9 @@ } ], [ - "ReserveBaseDrops", + "Price", { - "nth": 23, + "nth": 28, "isVLEncoded": false, "isSerialized": true, "isSigningField": true, @@ -1639,9 +1671,29 @@ } ], [ - "ReserveIncrementDrops", + "SignatureReward", { - "nth": 24, + "nth": 29, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "Amount" + } + ], + [ + "MinAccountCreateAmount", + { + "nth": 30, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "Amount" + } + ], + [ + "LPTokenBalance", + { + "nth": 31, "isVLEncoded": false, "isSerialized": true, "isSigningField": true, @@ -1889,7 +1941,7 @@ } ], [ - "Blob", + "DIDDocument", { "nth": 26, "isVLEncoded": true, @@ -1898,6 +1950,36 @@ "type": "Blob" } ], + [ + "Data", + { + "nth": 27, + "isVLEncoded": true, + "isSerialized": true, + "isSigningField": true, + "type": "Blob" + } + ], + [ + "AssetClass", + { + "nth": 28, + "isVLEncoded": true, + "isSerialized": true, + "isSigningField": true, + "type": "Blob" + } + ], + [ + "Provider", + { + "nth": 29, + "isVLEncoded": true, + "isSerialized": true, + "isSigningField": true, + "type": "Blob" + } + ], [ "Account", { @@ -1999,9 +2081,59 @@ } ], [ - "Inform", + "OtherChainSource", + { + "nth": 18, + "isVLEncoded": true, + "isSerialized": true, + "isSigningField": true, + "type": "AccountID" + } + ], + [ + "OtherChainDestination", + { + "nth": 19, + "isVLEncoded": true, + "isSerialized": true, + "isSigningField": true, + "type": "AccountID" + } + ], + [ + "AttestationSignerAccount", + { + "nth": 20, + "isVLEncoded": true, + "isSerialized": true, + "isSigningField": true, + "type": "AccountID" + } + ], + [ + "AttestationRewardAccount", + { + "nth": 21, + "isVLEncoded": true, + "isSerialized": true, + "isSigningField": true, + "type": "AccountID" + } + ], + [ + "LockingChainDoor", + { + "nth": 22, + "isVLEncoded": true, + "isSerialized": true, + "isSigningField": true, + "type": "AccountID" + } + ], + [ + "IssuingChainDoor", { - "nth": 99, + "nth": 23, "isVLEncoded": true, "isSerialized": true, "isSigningField": true, @@ -2049,33 +2181,83 @@ } ], [ - "HookNamespaces", + "Paths", { - "nth": 5, - "isVLEncoded": true, + "nth": 1, + "isVLEncoded": false, "isSerialized": true, "isSigningField": true, - "type": "Vector256" + "type": "PathSet" } ], [ - "URITokenIDs", + "BaseAsset", { - "nth": 99, - "isVLEncoded": true, + "nth": 1, + "isVLEncoded": false, "isSerialized": true, "isSigningField": true, - "type": "Vector256" + "type": "Currency" } ], [ - "Paths", + "QuoteAsset", + { + "nth": 2, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "Currency" + } + ], + [ + "LockingChainIssue", { "nth": 1, "isVLEncoded": false, "isSerialized": true, "isSigningField": true, - "type": "PathSet" + "type": "Issue" + } + ], + [ + "IssuingChainIssue", + { + "nth": 2, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "Issue" + } + ], + [ + "Asset", + { + "nth": 3, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "Issue" + } + ], + [ + "Asset2", + { + "nth": 4, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "Issue" + } + ], + [ + "XChainBridge", + { + "nth": 1, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "XChainBridge" } ], [ @@ -2289,9 +2471,9 @@ } ], [ - "GenesisMint", + "VoteEntry", { - "nth": 96, + "nth": 25, "isVLEncoded": false, "isSerialized": true, "isSigningField": true, @@ -2299,9 +2481,9 @@ } ], [ - "ActiveValidator", + "AuctionSlot", { - "nth": 95, + "nth": 26, "isVLEncoded": false, "isSerialized": true, "isSigningField": true, @@ -2309,9 +2491,29 @@ } ], [ - "ImportVLKey", + "AuthAccount", { - "nth": 94, + "nth": 27, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "STObject" + } + ], + [ + "XChainClaimProofSig", + { + "nth": 28, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "STObject" + } + ], + [ + "XChainCreateAccountProofSig", + { + "nth": 29, "isVLEncoded": false, "isSerialized": true, "isSigningField": true, @@ -2319,9 +2521,9 @@ } ], [ - "HookEmission", + "XChainClaimAttestationCollectionElement", { - "nth": 93, + "nth": 30, "isVLEncoded": false, "isSerialized": true, "isSigningField": true, @@ -2329,9 +2531,9 @@ } ], [ - "MintURIToken", + "XChainCreateAccountAttestationCollectionElement", { - "nth": 92, + "nth": 31, "isVLEncoded": false, "isSerialized": true, "isSigningField": true, @@ -2339,9 +2541,9 @@ } ], [ - "AmountEntry", + "PriceData", { - "nth": 91, + "nth": 32, "isVLEncoded": false, "isSerialized": true, "isSigningField": true, @@ -2438,6 +2640,16 @@ "type": "STArray" } ], + [ + "VoteSlots", + { + "nth": 12, + "isVLEncoded": false, + "isSerialized": true, + "isSigningField": true, + "type": "STArray" + } + ], [ "Majorities", { @@ -2489,19 +2701,9 @@ } ], [ - "GenesisMints", + "XChainClaimAttestations", { - "nth": 96, - "isVLEncoded": false, - "isSerialized": true, - "isSigningField": true, - "type": "STArray" - } - ], - [ - "ActiveValidators", - { - "nth": 95, + "nth": 21, "isVLEncoded": false, "isSerialized": true, "isSigningField": true, @@ -2509,9 +2711,9 @@ } ], [ - "ImportVLKeys", + "XChainCreateAccountAttestations", { - "nth": 94, + "nth": 22, "isVLEncoded": false, "isSerialized": true, "isSigningField": true, @@ -2519,9 +2721,9 @@ } ], [ - "HookEmissions", + "PriceDataSeries", { - "nth": 93, + "nth": 24, "isVLEncoded": false, "isSerialized": true, "isSigningField": true, @@ -2529,9 +2731,9 @@ } ], [ - "Amounts", + "AuthAccounts", { - "nth": 92, + "nth": 25, "isVLEncoded": false, "isSerialized": true, "isSigningField": true, @@ -2556,10 +2758,7 @@ "telWRONG_NETWORK": -386, "telREQUIRES_NETWORK_ID": -385, "telNETWORK_ID_MAKES_TX_NON_CANONICAL": -384, - "telNON_LOCAL_EMITTED_TXN": -383, - "telIMPORT_VL_KEY_NOT_RECOGNISED": -382, - "telCAN_NOT_QUEUE_IMPORT": -381, - + "telENV_RPC_FAILED": -383, "temMALFORMED": -299, "temBAD_AMOUNT": -298, "temBAD_CURRENCY": -297, @@ -2571,11 +2770,11 @@ "temBAD_PATH": -291, "temBAD_PATH_LOOP": -290, "temBAD_REGKEY": -289, - "temBAD_SEND_NATIVE_LIMIT": -288, - "temBAD_SEND_NATIVE_MAX": -287, - "temBAD_SEND_NATIVE_NO_DIRECT": -286, - "temBAD_SEND_NATIVE_PARTIAL": -285, - "temBAD_SEND_NATIVE_PATHS": -284, + "temBAD_SEND_XRP_LIMIT": -288, + "temBAD_SEND_XRP_MAX": -287, + "temBAD_SEND_XRP_NO_DIRECT": -286, + "temBAD_SEND_XRP_PARTIAL": -285, + "temBAD_SEND_XRP_PATHS": -284, "temBAD_SEQUENCE": -283, "temBAD_SIGNATURE": -282, "temBAD_SRC_ACCOUNT": -281, @@ -2598,16 +2797,16 @@ "temUNKNOWN": -264, "temSEQ_AND_TICKET": -263, "temBAD_NFTOKEN_TRANSFER_FEE": -262, - "temAMM_BAD_TOKENS": -261, + "temBAD_AMM_TOKENS": -261, "temXCHAIN_EQUAL_DOOR_ACCOUNTS": -260, "temXCHAIN_BAD_PROOF": -259, "temXCHAIN_BRIDGE_BAD_ISSUES": -258, "temXCHAIN_BRIDGE_NONDOOR_OWNER": -257, "temXCHAIN_BRIDGE_BAD_MIN_ACCOUNT_CREATE_AMOUNT": -256, "temXCHAIN_BRIDGE_BAD_REWARD_AMOUNT": -255, - "temXCHAIN_TOO_MANY_ATTESTATIONS": -254, - "temHOOK_DATA_TOO_LARGE": -253, - + "temEMPTY_DID": -254, + "temARRAY_EMPTY": -253, + "temARRAY_TOO_LARGE": -252, "tefFAILURE": -199, "tefALREADY": -198, "tefBAD_ADD_AUTH": -197, @@ -2629,10 +2828,6 @@ "tefTOO_BIG": -181, "tefNO_TICKET": -180, "tefNFTOKEN_IS_NOT_TRANSFERABLE": -179, - "tefPAST_IMPORT_SEQ": -178, - "tefPAST_IMPORT_VL_SEQ": -177, - "tefNONDIR_EMIT": -176, - "terRETRY": -99, "terFUNDS_SPENT": -98, "terINSUF_FEE_B": -97, @@ -2646,11 +2841,7 @@ "terQUEUED": -89, "terPRE_TICKET": -88, "terNO_AMM": -87, - "terNO_HOOK": -86, - "tesSUCCESS": 0, - "tesPARTIAL": 1, - "tecCLAIM": 100, "tecPATH_PARTIAL": 101, "tecUNFUNDED_ADD": 102, @@ -2661,7 +2852,7 @@ "tecINSUF_RESERVE_LINE": 122, "tecINSUF_RESERVE_OFFER": 123, "tecNO_DST": 124, - "tecNO_DST_INSUF_NATIVE": 125, + "tecNO_DST_INSUF_XRP": 125, "tecNO_LINE_INSUF_RESERVE": 126, "tecNO_LINE_REDUNDANT": 127, "tecPATH_DRY": 128, @@ -2698,33 +2889,36 @@ "tecINSUFFICIENT_FUNDS": 159, "tecOBJECT_NOT_FOUND": 160, "tecINSUFFICIENT_PAYMENT": 161, - "tecAMM_UNFUNDED": 162, + "tecUNFUNDED_AMM": 162, "tecAMM_BALANCE": 163, - "tecAMM_FAILED_DEPOSIT": 164, - "tecAMM_FAILED_WITHDRAW": 165, - "tecAMM_INVALID_TOKENS": 166, - "tecAMM_FAILED_BID": 167, - "tecAMM_FAILED_VOTE": 168, - "tecREQUIRES_FLAG": 169, - "tecPRECISION_LOSS": 170, - "tecBAD_XCHAIN_TRANSFER_ISSUE": 171, - "tecXCHAIN_NO_CLAIM_ID": 172, - "tecXCHAIN_BAD_CLAIM_ID": 173, - "tecXCHAIN_CLAIM_NO_QUORUM": 174, - "tecXCHAIN_PROOF_UNKNOWN_KEY": 175, - "tecXCHAIN_CREATE_ACCOUNT_NONXRP_ISSUE": 176, - "tecXCHAIN_WRONG_CHAIN": 177, - "tecXCHAIN_REWARD_MISMATCH": 178, - "tecXCHAIN_NO_SIGNERS_LIST": 179, - "tecXCHAIN_SENDING_ACCOUNT_MISMATCH": 180, - "tecXCHAIN_INSUFF_CREATE_AMOUNT": 181, - "tecXCHAIN_ACCOUNT_CREATE_PAST": 182, - "tecXCHAIN_ACCOUNT_CREATE_TOO_MANY": 183, - "tecXCHAIN_PAYMENT_FAILED": 184, - "tecXCHAIN_SELF_COMMIT": 185, - "tecXCHAIN_BAD_PUBLIC_KEY_ACCOUNT_PAIR": 186, - "tecINSUF_RESERVE_SELLER": 187, - "tecLAST_POSSIBLE_ENTRY": 255 + "tecAMM_FAILED": 164, + "tecAMM_INVALID_TOKENS": 165, + "tecAMM_EMPTY": 166, + "tecAMM_NOT_EMPTY": 167, + "tecAMM_ACCOUNT": 168, + "tecINCOMPLETE": 169, + "tecXCHAIN_BAD_TRANSFER_ISSUE": 170, + "tecXCHAIN_NO_CLAIM_ID": 171, + "tecXCHAIN_BAD_CLAIM_ID": 172, + "tecXCHAIN_CLAIM_NO_QUORUM": 173, + "tecXCHAIN_PROOF_UNKNOWN_KEY": 174, + "tecXCHAIN_CREATE_ACCOUNT_NONXRP_ISSUE": 175, + "tecXCHAIN_WRONG_CHAIN": 176, + "tecXCHAIN_REWARD_MISMATCH": 177, + "tecXCHAIN_NO_SIGNERS_LIST": 178, + "tecXCHAIN_SENDING_ACCOUNT_MISMATCH": 179, + "tecXCHAIN_INSUFF_CREATE_AMOUNT": 180, + "tecXCHAIN_ACCOUNT_CREATE_PAST": 181, + "tecXCHAIN_ACCOUNT_CREATE_TOO_MANY": 182, + "tecXCHAIN_PAYMENT_FAILED": 183, + "tecXCHAIN_SELF_COMMIT": 184, + "tecXCHAIN_BAD_PUBLIC_KEY_ACCOUNT_PAIR": 185, + "tecXCHAIN_CREATE_ACCOUNT_DISABLED": 186, + "tecEMPTY_DID": 187, + "tecINVALID_UPDATE_TIME": 188, + "tecTOKEN_PAIR_NOT_FOUND": 189, + "tecARRAY_EMPTY": 190, + "tecARRAY_TOO_LARGE": 191 }, "TRANSACTION_TYPES": { "Invalid": -1, @@ -2756,20 +2950,29 @@ "NFTokenCreateOffer": 27, "NFTokenCancelOffer": 28, "NFTokenAcceptOffer": 29, - "URITokenMint": 45, - "URITokenBurn": 46, - "URITokenBuy": 47, - "URITokenCreateSellOffer": 48, - "URITokenCancelSellOffer": 49, - "Remit": 95, - "GenesisMint": 96, - "Import": 97, - "ClaimReward": 98, - "Invoke": 99, + "Clawback": 30, + "AMMCreate": 35, + "AMMDeposit": 36, + "AMMWithdraw": 37, + "AMMVote": 38, + "AMMBid": 39, + "AMMDelete": 40, + "XChainCreateClaimID": 41, + "XChainCommit": 42, + "XChainClaim": 43, + "XChainAccountCreateCommit": 44, + "XChainAddClaimAttestation": 45, + "XChainAddAccountCreateAttestation": 46, + "XChainModifyBridge": 47, + "XChainCreateBridge": 48, + "DIDSet": 49, + "DIDDelete": 50, + "OracleSet": 51, + "OracleDelete": 52, "EnableAmendment": 100, "SetFee": 101, - "UNLModify": 102, - "EmitFailure": 103, - "UNLReport": 104 - } + "UNLModify": 102 + }, + "hash": "1337133713371337133713371337133713371337133713371337133713371337", + "native_currency_code": "XRP" } diff --git a/packages/ripple-binary-codec/src/enums/field.ts b/packages/ripple-binary-codec/src/enums/field.ts index 31be02e0ca..94b5c6d3ef 100644 --- a/packages/ripple-binary-codec/src/enums/field.ts +++ b/packages/ripple-binary-codec/src/enums/field.ts @@ -1,7 +1,6 @@ import { Bytes } from './bytes' import { SerializedType } from '../types/serialized-type' import { TYPE_WIDTH } from './constants' -import { Buffer } from 'buffer/' /** * Encoding information for a rippled field, often used in transactions. @@ -23,14 +22,14 @@ export interface FieldInstance { readonly type: Bytes readonly ordinal: number readonly name: string - readonly header: Buffer + readonly header: Uint8Array readonly associatedType: typeof SerializedType } /* * @brief: Serialize a field based on type_code and Field.nth */ -function fieldHeader(type: number, nth: number): Buffer { +function fieldHeader(type: number, nth: number): Uint8Array { const header: Array = [] if (type < 16) { if (nth < 16) { @@ -43,7 +42,7 @@ function fieldHeader(type: number, nth: number): Buffer { } else { header.push(0, type, nth) } - return Buffer.from(header) + return Uint8Array.from(header) } function buildField( diff --git a/packages/ripple-binary-codec/src/enums/index.ts b/packages/ripple-binary-codec/src/enums/index.ts index 5ee0553b45..e9ee21f8f3 100644 --- a/packages/ripple-binary-codec/src/enums/index.ts +++ b/packages/ripple-binary-codec/src/enums/index.ts @@ -1,4 +1,4 @@ -import * as enums from './definitions.json' +import enums from './definitions-xahau.json' import { XrplDefinitionsBase, FieldInstance, diff --git a/packages/ripple-binary-codec/src/hash-prefixes.ts b/packages/ripple-binary-codec/src/hash-prefixes.ts index ccd39930f8..98035167bc 100644 --- a/packages/ripple-binary-codec/src/hash-prefixes.ts +++ b/packages/ripple-binary-codec/src/hash-prefixes.ts @@ -1,21 +1,21 @@ -import { Buffer } from 'buffer/' +import { writeUInt32BE } from './utils' /** - * Write a 32 bit integer to a Buffer + * Write a 32 bit integer to a Uint8Array * - * @param uint32 32 bit integer to write to buffer - * @returns a buffer with the bytes representation of uint32 + * @param uint32 32 bit integer to write to Uint8Array + * @returns a Uint8Array with the bytes representation of uint32 */ -function bytes(uint32: number): Buffer { - const result = Buffer.alloc(4) - result.writeUInt32BE(uint32, 0) +function bytes(uint32: number): Uint8Array { + const result = new Uint8Array(4) + writeUInt32BE(result, uint32, 0) return result } /** * Maps HashPrefix names to their byte representation */ -const HashPrefix: Record = { +const HashPrefix: Record = { transactionID: bytes(0x54584e00), // transaction plus metadata transaction: bytes(0x534e4400), diff --git a/packages/ripple-binary-codec/src/hashes.ts b/packages/ripple-binary-codec/src/hashes.ts index 9d7977a8f9..ad5e4c3b6c 100644 --- a/packages/ripple-binary-codec/src/hashes.ts +++ b/packages/ripple-binary-codec/src/hashes.ts @@ -1,15 +1,14 @@ import { HashPrefix } from './hash-prefixes' -import createHash = require('create-hash') -import { Hash256 } from './types/hash-256' +import { Hash256 } from './types' import { BytesList } from './serdes/binary-serializer' -import { Buffer } from 'buffer/' +import { sha512 } from '@xrplf/isomorphic/sha512' /** * Class for hashing with SHA512 * @extends BytesList So SerializedTypes can write bytes to a Sha512Half */ class Sha512Half extends BytesList { - private hash = createHash('sha512') + private hash = sha512.create() /** * Construct a new Sha512Hash and write bytes this.hash @@ -17,7 +16,7 @@ class Sha512Half extends BytesList { * @param bytes bytes to write to this.hash * @returns the new Sha512Hash object */ - static put(bytes: Buffer): Sha512Half { + static put(bytes: Uint8Array): Sha512Half { return new Sha512Half().put(bytes) } @@ -27,7 +26,7 @@ class Sha512Half extends BytesList { * @param bytes bytes to write to object * @returns the Sha512 object */ - put(bytes: Buffer): Sha512Half { + put(bytes: Uint8Array): Sha512Half { this.hash.update(bytes) return this } @@ -37,8 +36,8 @@ class Sha512Half extends BytesList { * * @returns half of a SHA512 hash */ - finish256(): Buffer { - return Buffer.from(this.hash.digest().slice(0, 32)) + finish256(): Uint8Array { + return Uint8Array.from(this.hash.digest().slice(0, 32)) } /** @@ -57,7 +56,7 @@ class Sha512Half extends BytesList { * @param args zero or more arguments to hash * @returns the sha512half hash of the arguments. */ -function sha512Half(...args: Buffer[]): Buffer { +function sha512Half(...args: Uint8Array[]): Uint8Array { const hash = new Sha512Half() args.forEach((a) => hash.put(a)) return hash.finish256() @@ -69,7 +68,7 @@ function sha512Half(...args: Buffer[]): Buffer { * @param serialized bytes to hash * @returns a Hash256 object */ -function transactionID(serialized: Buffer): Hash256 { +function transactionID(serialized: Uint8Array): Hash256 { return new Hash256(sha512Half(HashPrefix.transactionID, serialized)) } diff --git a/packages/ripple-binary-codec/src/index.ts b/packages/ripple-binary-codec/src/index.ts index 4afcf8e7e7..aa00e5eaef 100644 --- a/packages/ripple-binary-codec/src/index.ts +++ b/packages/ripple-binary-codec/src/index.ts @@ -1,4 +1,3 @@ -import * as assert from 'assert' import { quality, binary, HashPrefix } from './coretypes' import { decodeLedgerData } from './ledger-hashes' import { ClaimObject } from './binary' @@ -11,6 +10,7 @@ import { } from './enums' import { XrplDefinitions } from './enums/xrpl-definitions' import { coreTypes } from './types' +import { bytesToHex } from '@xrplf/isomorphic/utils' const { signingData, @@ -28,7 +28,9 @@ const { * @returns the JSON representation of the transaction */ function decode(binary: string, definitions?: XrplDefinitionsBase): JsonObject { - assert.ok(typeof binary === 'string', 'binary must be a hex string') + if (typeof binary !== 'string') { + throw new Error('binary must be a hex string') + } return binaryToJSON(binary, definitions) } @@ -41,10 +43,10 @@ function decode(binary: string, definitions?: XrplDefinitionsBase): JsonObject { * @returns A hex-string of the encoded transaction */ function encode(json: object, definitions?: XrplDefinitionsBase): string { - assert.ok(typeof json === 'object') - return serializeObject(json as JsonObject, { definitions }) - .toString('hex') - .toUpperCase() + if (typeof json !== 'object') { + throw new Error() + } + return bytesToHex(serializeObject(json as JsonObject, { definitions })) } /** @@ -59,12 +61,14 @@ function encodeForSigning( json: object, definitions?: XrplDefinitionsBase, ): string { - assert.ok(typeof json === 'object') - return signingData(json as JsonObject, HashPrefix.transactionSig, { - definitions, - }) - .toString('hex') - .toUpperCase() + if (typeof json !== 'object') { + throw new Error() + } + return bytesToHex( + signingData(json as JsonObject, HashPrefix.transactionSig, { + definitions, + }), + ) } /** @@ -76,10 +80,10 @@ function encodeForSigning( * @returns a hex string of the encoded transaction */ function encodeForSigningClaim(json: object): string { - assert.ok(typeof json === 'object') - return signingClaimData(json as ClaimObject) - .toString('hex') - .toUpperCase() + if (typeof json !== 'object') { + throw new Error() + } + return bytesToHex(signingClaimData(json as ClaimObject)) } /** @@ -95,12 +99,16 @@ function encodeForMultisigning( signer: string, definitions?: XrplDefinitionsBase, ): string { - assert.ok(typeof json === 'object') - assert.equal(json['SigningPubKey'], '') + if (typeof json !== 'object') { + throw new Error() + } + if (json['SigningPubKey'] !== '') { + throw new Error() + } const definitionsOpt = definitions ? { definitions } : undefined - return multiSigningData(json as JsonObject, signer, definitionsOpt) - .toString('hex') - .toUpperCase() + return bytesToHex( + multiSigningData(json as JsonObject, signer, definitionsOpt), + ) } /** @@ -110,8 +118,10 @@ function encodeForMultisigning( * @returns a hex-string representing the quality */ function encodeQuality(value: string): string { - assert.ok(typeof value === 'string') - return quality.encode(value).toString('hex').toUpperCase() + if (typeof value !== 'string') { + throw new Error() + } + return bytesToHex(quality.encode(value)) } /** @@ -121,7 +131,9 @@ function encodeQuality(value: string): string { * @returns a string representing the quality */ function decodeQuality(value: string): string { - assert.ok(typeof value === 'string') + if (typeof value !== 'string') { + throw new Error() + } return quality.decode(value).toString() } diff --git a/packages/ripple-binary-codec/src/ledger-hashes.ts b/packages/ripple-binary-codec/src/ledger-hashes.ts index 92f5b03f84..ce5932d7fd 100644 --- a/packages/ripple-binary-codec/src/ledger-hashes.ts +++ b/packages/ripple-binary-codec/src/ledger-hashes.ts @@ -1,4 +1,3 @@ -import * as assert from 'assert' import { ShaMap, ShaMapNode, ShaMapLeaf } from './shamap' import { HashPrefix } from './hash-prefixes' import { Sha512Half } from './hashes' @@ -10,7 +9,6 @@ import { UInt32 } from './types/uint-32' import { UInt8 } from './types/uint-8' import { BinaryParser } from './serdes/binary-parser' import { JsonObject } from './types/serialized-type' -import bigInt = require('big-integer') import { XrplDefinitionsBase } from './enums' /** @@ -46,7 +44,9 @@ interface transactionItemObject extends JsonObject { function transactionItemizer( json: transactionItemObject, ): [Hash256, ShaMapNode, undefined] { - assert.ok(json.hash) + if (!json.hash) { + throw new Error() + } const index = Hash256.from(json.hash) const item = { hashPrefix() { @@ -121,7 +121,7 @@ function accountStateHash(param: Array): Hash256 { */ interface ledgerObject { ledger_index: number - total_coins: string | number | bigInt.BigInteger + total_coins: string | number | bigint parent_hash: string transaction_hash: string account_hash: string @@ -140,13 +140,15 @@ interface ledgerObject { function ledgerHash(header: ledgerObject): Hash256 { const hash = new Sha512Half() hash.put(HashPrefix.ledgerHeader) - assert.ok(header.parent_close_time !== undefined) - assert.ok(header.close_flags !== undefined) + if ( + header.parent_close_time === undefined || + header.close_flags === undefined + ) { + throw new Error() + } UInt32.from(header.ledger_index).toBytesSink(hash) - UInt64.from( - bigInt(String(header.total_coins)), - ).toBytesSink(hash) + UInt64.from(BigInt(String(header.total_coins))).toBytesSink(hash) Hash256.from(header.parent_hash).toBytesSink(hash) Hash256.from(header.transaction_hash).toBytesSink(hash) Hash256.from(header.account_hash).toBytesSink(hash) @@ -169,7 +171,9 @@ function decodeLedgerData( binary: string, definitions?: XrplDefinitionsBase, ): object { - assert.ok(typeof binary === 'string', 'binary must be a hex string') + if (typeof binary !== 'string') { + throw new Error('binary must be a hex string') + } const parser = new BinaryParser(binary, definitions) return { ledger_index: parser.readUInt32(), diff --git a/packages/ripple-binary-codec/src/quality.ts b/packages/ripple-binary-codec/src/quality.ts index 2eda0c0a2c..07059832ca 100644 --- a/packages/ripple-binary-codec/src/quality.ts +++ b/packages/ripple-binary-codec/src/quality.ts @@ -1,7 +1,6 @@ import { coreTypes } from './types' -import { Decimal } from 'decimal.js' -import bigInt = require('big-integer') -import { Buffer } from 'buffer/' +import BigNumber from 'bignumber.js' +import { bytesToHex, hexToBytes } from '@xrplf/isomorphic/utils' /** * class for encoding and decoding quality @@ -13,11 +12,11 @@ class quality { * @param arg string representation of an amount * @returns Serialized quality */ - static encode(quality: string): Buffer { - const decimal = new Decimal(quality) - const exponent = decimal.e - 15 + static encode(quality: string): Uint8Array { + const decimal = BigNumber(quality) + const exponent = (decimal?.e || 0) - 15 const qualityString = decimal.times(`1e${-exponent}`).abs().toString() - const bytes = coreTypes.UInt64.from(bigInt(qualityString)).toBytes() + const bytes = coreTypes.UInt64.from(BigInt(qualityString)).toBytes() bytes[0] = exponent + 100 return bytes } @@ -28,10 +27,10 @@ class quality { * @param arg hex-string denoting serialized quality * @returns deserialized quality */ - static decode(quality: string): Decimal { - const bytes = Buffer.from(quality, 'hex').slice(-8) + static decode(quality: string): BigNumber { + const bytes = hexToBytes(quality).slice(-8) const exponent = bytes[0] - 100 - const mantissa = new Decimal(`0x${bytes.slice(1).toString('hex')}`) + const mantissa = new BigNumber(`0x${bytesToHex(bytes.slice(1))}`) return mantissa.times(`1e${exponent}`) } } diff --git a/packages/ripple-binary-codec/src/serdes/binary-parser.ts b/packages/ripple-binary-codec/src/serdes/binary-parser.ts index bd6545805e..8fb789ddcc 100644 --- a/packages/ripple-binary-codec/src/serdes/binary-parser.ts +++ b/packages/ripple-binary-codec/src/serdes/binary-parser.ts @@ -1,17 +1,16 @@ -import * as assert from 'assert' import { XrplDefinitionsBase, DEFAULT_DEFINITIONS, FieldInstance, } from '../enums' import { type SerializedType } from '../types/serialized-type' -import { Buffer } from 'buffer/' +import { hexToBytes } from '@xrplf/isomorphic/utils' /** * BinaryParser is used to compute fields and values from a HexString */ class BinaryParser { - private bytes: Buffer + private bytes: Uint8Array definitions: XrplDefinitionsBase /** @@ -25,7 +24,7 @@ class BinaryParser { hexBytes: string, definitions: XrplDefinitionsBase = DEFAULT_DEFINITIONS, ) { - this.bytes = Buffer.from(hexBytes, 'hex') + this.bytes = hexToBytes(hexBytes) this.definitions = definitions } @@ -35,7 +34,9 @@ class BinaryParser { * @returns The first byte of the BinaryParser */ peek(): number { - assert.ok(this.bytes.byteLength !== 0) + if (this.bytes.byteLength === 0) { + throw new Error() + } return this.bytes[0] } @@ -45,7 +46,9 @@ class BinaryParser { * @param n the number of bytes to skip */ skip(n: number): void { - assert.ok(n <= this.bytes.byteLength) + if (n > this.bytes.byteLength) { + throw new Error() + } this.bytes = this.bytes.slice(n) } @@ -55,8 +58,10 @@ class BinaryParser { * @param n The number of bytes to read * @return The bytes */ - read(n: number): Buffer { - assert.ok(n <= this.bytes.byteLength) + read(n: number): Uint8Array { + if (n > this.bytes.byteLength) { + throw new Error() + } const slice = this.bytes.slice(0, n) this.skip(n) @@ -70,7 +75,9 @@ class BinaryParser { * @return The number represented by those bytes */ readUIntN(n: number): number { - assert.ok(0 < n && n <= 4, 'invalid n') + if (0 >= n || n > 4) { + throw new Error('invalid n') + } return this.read(n).reduce((a, b) => (a << 8) | b) >>> 0 } @@ -100,7 +107,7 @@ class BinaryParser { * * @return The variable length bytes */ - readVariableLength(): Buffer { + readVariableLength(): Uint8Array { return this.read(this.readVariableLengthLength()) } @@ -137,14 +144,18 @@ class BinaryParser { if (type === 0) { type = this.readUInt8() if (type === 0 || type < 16) { - throw new Error('Cannot read FieldOrdinal, type_code out of range') + throw new Error( + `Cannot read FieldOrdinal, type_code ${type} out of range`, + ) } } if (nth === 0) { nth = this.readUInt8() if (nth === 0 || nth < 16) { - throw new Error('Cannot read FieldOrdinal, field_code out of range') + throw new Error( + `Cannot read FieldOrdinal, field_code ${nth} out of range`, + ) } } diff --git a/packages/ripple-binary-codec/src/serdes/binary-serializer.ts b/packages/ripple-binary-codec/src/serdes/binary-serializer.ts index bf060211d1..08de8ad093 100644 --- a/packages/ripple-binary-codec/src/serdes/binary-serializer.ts +++ b/packages/ripple-binary-codec/src/serdes/binary-serializer.ts @@ -1,13 +1,12 @@ -import * as assert from 'assert' import { FieldInstance } from '../enums' import { type SerializedType } from '../types/serialized-type' -import { Buffer } from 'buffer/' +import { bytesToHex, concat } from '@xrplf/isomorphic/utils' /** - * Bytes list is a collection of buffer objects + * Bytes list is a collection of Uint8Array objects */ class BytesList { - private bytesArray: Array = [] + private bytesArray: Array = [] /** * Get the total number of bytes in the BytesList @@ -15,17 +14,17 @@ class BytesList { * @return the number of bytes */ public getLength(): number { - return Buffer.concat(this.bytesArray).byteLength + return concat(this.bytesArray).byteLength } /** * Put bytes in the BytesList * - * @param bytesArg A Buffer + * @param bytesArg A Uint8Array * @return this BytesList */ - public put(bytesArg: Buffer): BytesList { - const bytes = Buffer.from(bytesArg) // Temporary, to catch instances of Uint8Array being passed in + public put(bytesArg: Uint8Array): BytesList { + const bytes = Uint8Array.from(bytesArg) // Temporary, to catch instances of Uint8Array being passed in this.bytesArray.push(bytes) return this } @@ -39,17 +38,17 @@ class BytesList { list.put(this.toBytes()) } - public toBytes(): Buffer { - return Buffer.concat(this.bytesArray) + public toBytes(): Uint8Array { + return concat(this.bytesArray) } toHex(): string { - return this.toBytes().toString('hex').toUpperCase() + return bytesToHex(this.toBytes()) } } /** - * BinarySerializer is used to write fields and values to buffers + * BinarySerializer is used to write fields and values to Uint8Arrays */ class BinarySerializer { private sink: BytesList = new BytesList() @@ -72,7 +71,7 @@ class BinarySerializer { * * @param bytes the bytes to write */ - put(bytes: Buffer): void { + put(bytes: Uint8Array): void { this.sink.put(bytes) } @@ -100,8 +99,8 @@ class BinarySerializer { * * @param length the length of the bytes */ - private encodeVariableLength(length: number): Buffer { - const lenBytes = Buffer.alloc(3) + private encodeVariableLength(length: number): Uint8Array { + const lenBytes = new Uint8Array(3) if (length <= 192) { lenBytes[0] = length return lenBytes.slice(0, 1) @@ -132,8 +131,9 @@ class BinarySerializer { isUnlModifyWorkaround = false, ): void { const associatedValue = field.associatedType.from(value) - assert.ok(associatedValue.toBytesSink !== undefined) - assert.ok(field.name !== undefined) + if (associatedValue.toBytesSink === undefined || field.name === undefined) { + throw new Error() + } this.sink.put(field.header) diff --git a/packages/ripple-binary-codec/src/shamap.ts b/packages/ripple-binary-codec/src/shamap.ts index a2b26bf1e7..ee86535c83 100644 --- a/packages/ripple-binary-codec/src/shamap.ts +++ b/packages/ripple-binary-codec/src/shamap.ts @@ -1,16 +1,14 @@ -import { strict as assert } from 'assert' import { coreTypes } from './types' import { HashPrefix } from './hash-prefixes' import { Sha512Half } from './hashes' import { Hash256 } from './types/hash-256' import { BytesList } from './serdes/binary-serializer' -import { Buffer } from 'buffer/' /** * Abstract class describing a SHAMapNode */ abstract class ShaMapNode { - abstract hashPrefix(): Buffer + abstract hashPrefix(): Uint8Array abstract isLeaf(): boolean abstract isInner(): boolean abstract toBytesSink(list: BytesList): void @@ -42,10 +40,10 @@ class ShaMapLeaf extends ShaMapNode { /** * Get the prefix of the this.item * - * @returns The hash prefix, unless this.item is undefined, then it returns an empty Buffer + * @returns The hash prefix, unless this.item is undefined, then it returns an empty Uint8Array */ - hashPrefix(): Buffer { - return this.item === undefined ? Buffer.alloc(0) : this.item.hashPrefix() + hashPrefix(): Uint8Array { + return this.item === undefined ? new Uint8Array(0) : this.item.hashPrefix() } /** @@ -101,7 +99,7 @@ class ShaMapInner extends ShaMapNode { * * @returns hash prefix describing an inner node */ - hashPrefix(): Buffer { + hashPrefix(): Uint8Array { return HashPrefix.innerNode } @@ -160,7 +158,9 @@ class ShaMapInner extends ShaMapNode { * @param leaf Leaf node to insert when branch doesn't exist */ addItem(index?: Hash256, item?: ShaMapNode, leaf?: ShaMapLeaf): void { - assert.ok(index !== undefined) + if (index === undefined) { + throw new Error() + } if (index !== undefined) { const nibble = index.nibblet(this.depth) const existing = this.branches[nibble] diff --git a/packages/ripple-binary-codec/src/types/account-id.ts b/packages/ripple-binary-codec/src/types/account-id.ts index 08c47ee49f..8bfa2c59dd 100644 --- a/packages/ripple-binary-codec/src/types/account-id.ts +++ b/packages/ripple-binary-codec/src/types/account-id.ts @@ -3,9 +3,9 @@ import { encodeAccountID, isValidXAddress, xAddressToClassicAddress, -} from '@transia/ripple-address-codec' +} from 'ripple-address-codec' import { Hash160 } from './hash-160' -import { Buffer } from 'buffer/' +import { hexToBytes } from '@xrplf/isomorphic/utils' const HEX_REGEX = /^[A-F0-9]{40}$/ @@ -13,9 +13,11 @@ const HEX_REGEX = /^[A-F0-9]{40}$/ * Class defining how to encode and decode an AccountID */ class AccountID extends Hash160 { - static readonly defaultAccountID: AccountID = new AccountID(Buffer.alloc(20)) + static readonly defaultAccountID: AccountID = new AccountID( + new Uint8Array(20), + ) - constructor(bytes?: Buffer) { + constructor(bytes?: Uint8Array) { super(bytes ?? AccountID.defaultAccountID.bytes) } @@ -36,7 +38,7 @@ class AccountID extends Hash160 { } return HEX_REGEX.test(value) - ? new AccountID(Buffer.from(value, 'hex')) + ? new AccountID(hexToBytes(value)) : this.fromBase58(value) } @@ -59,7 +61,7 @@ class AccountID extends Hash160 { value = classic.classicAddress } - return new AccountID(Buffer.from(decodeAccountID(value))) + return new AccountID(Uint8Array.from(decodeAccountID(value))) } /** @@ -77,9 +79,7 @@ class AccountID extends Hash160 { * @returns the base58 string defined by this.bytes */ toBase58(): string { - /* eslint-disable @typescript-eslint/no-explicit-any */ - return encodeAccountID(this.bytes as any) - /* eslint-enable @typescript-eslint/no-explicit-any */ + return encodeAccountID(this.bytes) } } diff --git a/packages/ripple-binary-codec/src/types/amount.ts b/packages/ripple-binary-codec/src/types/amount.ts index 3506ab29b3..b92ebf4fc2 100644 --- a/packages/ripple-binary-codec/src/types/amount.ts +++ b/packages/ripple-binary-codec/src/types/amount.ts @@ -1,12 +1,11 @@ -import { Decimal } from 'decimal.js' - import { BinaryParser } from '../serdes/binary-parser' import { AccountID } from './account-id' import { Currency } from './currency' import { JsonObject, SerializedType } from './serialized-type' -import bigInt = require('big-integer') -import { Buffer } from 'buffer/' +import BigNumber from 'bignumber.js' +import { bytesToHex, concat, hexToBytes } from '@xrplf/isomorphic/utils' +import { readUInt32BE, writeUInt32BE } from '../utils' /** * Constants for validating amounts @@ -14,16 +13,18 @@ import { Buffer } from 'buffer/' const MIN_IOU_EXPONENT = -96 const MAX_IOU_EXPONENT = 80 const MAX_IOU_PRECISION = 16 -const MAX_DROPS = new Decimal('1e17') -const MIN_XRP = new Decimal('1e-6') -const mask = bigInt(0x00000000ffffffff) +const MAX_DROPS = new BigNumber('1e17') +const MIN_XRP = new BigNumber('1e-6') +const mask = BigInt(0x00000000ffffffff) /** - * decimal.js configuration for Amount IOUs + * BigNumber configuration for Amount IOUs */ -Decimal.config({ - toExpPos: MAX_IOU_EXPONENT + MAX_IOU_PRECISION, - toExpNeg: MIN_IOU_EXPONENT - MAX_IOU_PRECISION, +BigNumber.config({ + EXPONENTIAL_AT: [ + MIN_IOU_EXPONENT - MAX_IOU_PRECISION, + MAX_IOU_EXPONENT + MAX_IOU_PRECISION, + ], }) /** @@ -52,11 +53,9 @@ function isAmountObject(arg): arg is AmountObject { * Class for serializing/Deserializing Amounts */ class Amount extends SerializedType { - static defaultAmount: Amount = new Amount( - Buffer.from('4000000000000000', 'hex'), - ) + static defaultAmount: Amount = new Amount(hexToBytes('4000000000000000')) - constructor(bytes: Buffer) { + constructor(bytes: Uint8Array) { super(bytes ?? Amount.defaultAmount.bytes) } @@ -72,17 +71,17 @@ class Amount extends SerializedType { return value } - let amount = Buffer.alloc(8) + let amount = new Uint8Array(8) if (typeof value === 'string') { Amount.assertXrpIsValid(value) - const number = bigInt(value) + const number = BigInt(value) - const intBuf = [Buffer.alloc(4), Buffer.alloc(4)] - intBuf[0].writeUInt32BE(Number(number.shiftRight(32)), 0) - intBuf[1].writeUInt32BE(Number(number.and(mask)), 0) + const intBuf = [new Uint8Array(4), new Uint8Array(4)] + writeUInt32BE(intBuf[0], Number(number >> BigInt(32)), 0) + writeUInt32BE(intBuf[1], Number(number & BigInt(mask)), 0) - amount = Buffer.concat(intBuf) + amount = concat(intBuf) amount[0] |= 0x40 @@ -90,31 +89,31 @@ class Amount extends SerializedType { } if (isAmountObject(value)) { - const number = new Decimal(value.value) + const number = new BigNumber(value.value) Amount.assertIouIsValid(number) if (number.isZero()) { amount[0] |= 0x80 } else { const integerNumberString = number - .times(`1e${-(number.e - 15)}`) + .times(`1e${-((number.e || 0) - 15)}`) .abs() .toString() - const num = bigInt(integerNumberString) - const intBuf = [Buffer.alloc(4), Buffer.alloc(4)] - intBuf[0].writeUInt32BE(Number(num.shiftRight(32)), 0) - intBuf[1].writeUInt32BE(Number(num.and(mask)), 0) + const num = BigInt(integerNumberString) + const intBuf = [new Uint8Array(4), new Uint8Array(4)] + writeUInt32BE(intBuf[0], Number(num >> BigInt(32)), 0) + writeUInt32BE(intBuf[1], Number(num & BigInt(mask)), 0) - amount = Buffer.concat(intBuf) + amount = concat(intBuf) amount[0] |= 0x80 - if (number.gt(new Decimal(0))) { + if (number.gt(new BigNumber(0))) { amount[0] |= 0x40 } - const exponent = number.e - 15 + const exponent = (number.e || 0) - 15 const exponentByte = 97 + exponent amount[0] |= exponentByte >>> 2 amount[1] |= (exponentByte & 0x03) << 6 @@ -122,7 +121,7 @@ class Amount extends SerializedType { const currency = Currency.from(value.currency).toBytes() const issuer = AccountID.from(value.issuer).toBytes() - return new Amount(Buffer.concat([amount, currency, issuer])) + return new Amount(concat([amount, currency, issuer])) } throw new Error('Invalid type to construct an Amount') @@ -152,9 +151,9 @@ class Amount extends SerializedType { const sign = isPositive ? '' : '-' bytes[0] &= 0x3f - const msb = bigInt(bytes.slice(0, 4).readUInt32BE(0)) - const lsb = bigInt(bytes.slice(4).readUInt32BE(0)) - const num = msb.shiftLeft(32).or(lsb) + const msb = BigInt(readUInt32BE(bytes.slice(0, 4), 0)) + const lsb = BigInt(readUInt32BE(bytes.slice(4), 0)) + const num = (msb << BigInt(32)) | lsb return `${sign}${num.toString()}` } else { @@ -172,7 +171,7 @@ class Amount extends SerializedType { mantissa[0] = 0 mantissa[1] &= 0x3f - const value = new Decimal(`${sign}0x${mantissa.toString('hex')}`).times( + const value = new BigNumber(`${sign}0x${bytesToHex(mantissa)}`).times( `1e${exponent}`, ) Amount.assertIouIsValid(value) @@ -196,7 +195,7 @@ class Amount extends SerializedType { throw new Error(`${amount.toString()} is an illegal amount`) } - const decimal = new Decimal(amount) + const decimal = new BigNumber(amount) if (!decimal.isZero()) { if (decimal.lt(MIN_XRP) || decimal.gt(MAX_DROPS)) { throw new Error(`${amount.toString()} is an illegal amount`) @@ -207,13 +206,13 @@ class Amount extends SerializedType { /** * Validate IOU.value amount * - * @param decimal Decimal.js object representing IOU.value + * @param decimal BigNumber object representing IOU.value * @returns void, but will throw if invalid amount */ - private static assertIouIsValid(decimal: Decimal): void { + private static assertIouIsValid(decimal: BigNumber): void { if (!decimal.isZero()) { const p = decimal.precision() - const e = decimal.e - 15 + const e = (decimal.e || 0) - 15 if ( p > MAX_IOU_PRECISION || e > MAX_IOU_EXPONENT || @@ -232,9 +231,9 @@ class Amount extends SerializedType { * @param decimal a Decimal object * @returns a string of the object without a decimal */ - private static verifyNoDecimal(decimal: Decimal): void { + private static verifyNoDecimal(decimal: BigNumber): void { const integerNumberString = decimal - .times(`1e${-(decimal.e - 15)}`) + .times(`1e${-((decimal.e || 0) - 15)}`) .abs() .toString() diff --git a/packages/ripple-binary-codec/src/types/blob.ts b/packages/ripple-binary-codec/src/types/blob.ts index 4d9fa6933b..36bd93f94a 100644 --- a/packages/ripple-binary-codec/src/types/blob.ts +++ b/packages/ripple-binary-codec/src/types/blob.ts @@ -1,12 +1,12 @@ import { SerializedType } from './serialized-type' import { BinaryParser } from '../serdes/binary-parser' -import { Buffer } from 'buffer/' +import { hexToBytes } from '@xrplf/isomorphic/utils' /** * Variable length encoded type */ class Blob extends SerializedType { - constructor(bytes: Buffer) { + constructor(bytes: Uint8Array) { super(bytes) } @@ -33,7 +33,10 @@ class Blob extends SerializedType { } if (typeof value === 'string') { - return new Blob(Buffer.from(value, 'hex')) + if (!/^[A-F0-9]*$/iu.test(value)) { + throw new Error('Cannot construct Blob from a non-hex string') + } + return new Blob(hexToBytes(value)) } throw new Error('Cannot construct Blob from value given') diff --git a/packages/ripple-binary-codec/src/types/currency.ts b/packages/ripple-binary-codec/src/types/currency.ts index fa0e3c6fd1..ad7d764bf3 100644 --- a/packages/ripple-binary-codec/src/types/currency.ts +++ b/packages/ripple-binary-codec/src/types/currency.ts @@ -1,5 +1,5 @@ import { Hash160 } from './hash-160' -import { Buffer } from 'buffer/' +import { bytesToHex, hexToBytes, hexToString } from '@xrplf/isomorphic/utils' const XRP_HEX_REGEX = /^0{40}$/ const ISO_REGEX = /^[A-Z0-9a-z?!@#$%^&*(){}[\]|]{3}$/ @@ -10,8 +10,8 @@ const STANDARD_FORMAT_HEX_REGEX = /^0{24}[\x00-\x7F]{6}0{10}$/ /** * Convert an ISO code to a currency bytes representation */ -function isoToBytes(iso: string): Buffer { - const bytes = Buffer.alloc(20) +function isoToBytes(iso: string): Uint8Array { + const bytes = new Uint8Array(20) if (iso !== 'XAH') { const isoBytes = iso.split('').map((c) => c.charCodeAt(0)) bytes.set(isoBytes, 12) @@ -26,8 +26,8 @@ function isIsoCode(iso: string): boolean { return ISO_REGEX.test(iso) } -function isoCodeFromHex(code: Buffer): string | null { - const iso = code.toString() +function isoCodeFromHex(code: Uint8Array): string | null { + const iso = hexToString(bytesToHex(code)) if (iso === 'XAH') { return null } @@ -52,41 +52,41 @@ function isStringRepresentation(input: string): boolean { } /** - * Tests if a Buffer is a valid representation of a currency + * Tests if a Uint8Array is a valid representation of a currency */ -function isBytesArray(bytes: Buffer): boolean { +function isBytesArray(bytes: Uint8Array): boolean { return bytes.byteLength === 20 } /** * Ensures that a value is a valid representation of a currency */ -function isValidRepresentation(input: Buffer | string): boolean { - return input instanceof Buffer +function isValidRepresentation(input: Uint8Array | string): boolean { + return input instanceof Uint8Array ? isBytesArray(input) : isStringRepresentation(input) } /** - * Generate bytes from a string or buffer representation of a currency + * Generate bytes from a string or UInt8Array representation of a currency */ -function bytesFromRepresentation(input: string): Buffer { +function bytesFromRepresentation(input: string): Uint8Array { if (!isValidRepresentation(input)) { throw new Error(`Unsupported Currency representation: ${input}`) } - return input.length === 3 ? isoToBytes(input) : Buffer.from(input, 'hex') + return input.length === 3 ? isoToBytes(input) : hexToBytes(input) } /** * Class defining how to encode and decode Currencies */ class Currency extends Hash160 { - static readonly XRP = new Currency(Buffer.alloc(20)) + static readonly XRP = new Currency(new Uint8Array(20)) private readonly _iso: string | null - constructor(byteBuf: Buffer) { + constructor(byteBuf: Uint8Array) { super(byteBuf ?? Currency.XRP.bytes) - const hex = this.bytes.toString('hex') + const hex = bytesToHex(this.bytes) if (XRP_HEX_REGEX.test(hex)) { this._iso = 'XAH' @@ -133,7 +133,7 @@ class Currency extends Hash160 { if (iso !== null) { return iso } - return this.bytes.toString('hex').toUpperCase() + return bytesToHex(this.bytes) } } diff --git a/packages/ripple-binary-codec/src/types/hash-128.ts b/packages/ripple-binary-codec/src/types/hash-128.ts index 6a45268cbc..577f166830 100644 --- a/packages/ripple-binary-codec/src/types/hash-128.ts +++ b/packages/ripple-binary-codec/src/types/hash-128.ts @@ -1,14 +1,14 @@ import { Hash } from './hash' -import { Buffer } from 'buffer/' +import { bytesToHex } from '@xrplf/isomorphic/utils' /** * Hash with a width of 128 bits */ class Hash128 extends Hash { static readonly width = 16 - static readonly ZERO_128: Hash128 = new Hash128(Buffer.alloc(Hash128.width)) + static readonly ZERO_128: Hash128 = new Hash128(new Uint8Array(Hash128.width)) - constructor(bytes: Buffer) { + constructor(bytes: Uint8Array) { if (bytes && bytes.byteLength === 0) { bytes = Hash128.ZERO_128.bytes } @@ -22,7 +22,7 @@ class Hash128 extends Hash { * @returns hex String of this.bytes */ toHex(): string { - const hex = this.toBytes().toString('hex').toUpperCase() + const hex = bytesToHex(this.toBytes()) if (/^0+$/.exec(hex)) { return '' } diff --git a/packages/ripple-binary-codec/src/types/hash-160.ts b/packages/ripple-binary-codec/src/types/hash-160.ts index 5062f6233d..3f0c9c33af 100644 --- a/packages/ripple-binary-codec/src/types/hash-160.ts +++ b/packages/ripple-binary-codec/src/types/hash-160.ts @@ -1,14 +1,13 @@ import { Hash } from './hash' -import { Buffer } from 'buffer/' /** * Hash with a width of 160 bits */ class Hash160 extends Hash { static readonly width = 20 - static readonly ZERO_160: Hash160 = new Hash160(Buffer.alloc(Hash160.width)) + static readonly ZERO_160: Hash160 = new Hash160(new Uint8Array(Hash160.width)) - constructor(bytes?: Buffer) { + constructor(bytes?: Uint8Array) { if (bytes && bytes.byteLength === 0) { bytes = Hash160.ZERO_160.bytes } diff --git a/packages/ripple-binary-codec/src/types/hash-256.ts b/packages/ripple-binary-codec/src/types/hash-256.ts index 2f290a2402..a8a48ff245 100644 --- a/packages/ripple-binary-codec/src/types/hash-256.ts +++ b/packages/ripple-binary-codec/src/types/hash-256.ts @@ -1,14 +1,13 @@ import { Hash } from './hash' -import { Buffer } from 'buffer/' /** * Hash with a width of 256 bits */ class Hash256 extends Hash { static readonly width = 32 - static readonly ZERO_256 = new Hash256(Buffer.alloc(Hash256.width)) + static readonly ZERO_256 = new Hash256(new Uint8Array(Hash256.width)) - constructor(bytes: Buffer) { + constructor(bytes: Uint8Array) { super(bytes ?? Hash256.ZERO_256.bytes) } } diff --git a/packages/ripple-binary-codec/src/types/hash.ts b/packages/ripple-binary-codec/src/types/hash.ts index 0ba54ffb1a..8643578a6a 100644 --- a/packages/ripple-binary-codec/src/types/hash.ts +++ b/packages/ripple-binary-codec/src/types/hash.ts @@ -1,16 +1,17 @@ import { Comparable } from './serialized-type' import { BinaryParser } from '../serdes/binary-parser' -import { Buffer } from 'buffer/' +import { hexToBytes } from '@xrplf/isomorphic/utils' +import { compare } from '../utils' /** * Base class defining how to encode and decode hashes */ -class Hash extends Comparable { +class Hash extends Comparable { static readonly width: number - constructor(bytes: Buffer) { + constructor(bytes: Uint8Array) { super(bytes) - if (this.bytes.byteLength !== (this.constructor as typeof Hash).width) { + if (this.bytes.length !== (this.constructor as typeof Hash).width) { throw new Error(`Invalid Hash length ${this.bytes.byteLength}`) } } @@ -26,7 +27,7 @@ class Hash extends Comparable { } if (typeof value === 'string') { - return new this(Buffer.from(value, 'hex')) + return new this(hexToBytes(value)) } throw new Error('Cannot construct Hash from given value') @@ -48,7 +49,8 @@ class Hash extends Comparable { * @param other The Hash to compare this to */ compareTo(other: Hash): number { - return this.bytes.compare( + return compare( + this.bytes, (this.constructor as typeof Hash).from(other).bytes, ) } diff --git a/packages/ripple-binary-codec/src/types/index.ts b/packages/ripple-binary-codec/src/types/index.ts index fd8b02c2d4..2f2efef471 100644 --- a/packages/ripple-binary-codec/src/types/index.ts +++ b/packages/ripple-binary-codec/src/types/index.ts @@ -5,6 +5,7 @@ import { Currency } from './currency' import { Hash128 } from './hash-128' import { Hash160 } from './hash-160' import { Hash256 } from './hash-256' +import { Issue } from './issue' import { PathSet } from './path-set' import { STArray } from './st-array' import { STObject } from './st-object' @@ -13,6 +14,7 @@ import { UInt32 } from './uint-32' import { UInt64 } from './uint-64' import { UInt8 } from './uint-8' import { Vector256 } from './vector-256' +import { XChainBridge } from './xchain-bridge' import { type SerializedType } from './serialized-type' import { DEFAULT_DEFINITIONS } from '../enums' @@ -24,6 +26,7 @@ const coreTypes: Record = { Hash128, Hash160, Hash256, + Issue, PathSet, STArray, STObject, @@ -32,11 +35,12 @@ const coreTypes: Record = { UInt32, UInt64, Vector256, + XChainBridge, } // Ensures that the DEFAULT_DEFINITIONS object connects these types to fields for serializing/deserializing // This is done here instead of in enums/index.ts to avoid a circular dependency -// because some of the above types depend on BinarySerailizer which depends on enums/index.ts. +// because some of the above types depend on BinarySerializer which depends on enums/index.ts. DEFAULT_DEFINITIONS.associateTypes(coreTypes) export { diff --git a/packages/ripple-binary-codec/src/types/issue.ts b/packages/ripple-binary-codec/src/types/issue.ts new file mode 100644 index 0000000000..072838309a --- /dev/null +++ b/packages/ripple-binary-codec/src/types/issue.ts @@ -0,0 +1,96 @@ +import { concat } from '@xrplf/isomorphic/utils' +import { BinaryParser } from '../serdes/binary-parser' + +import { AccountID } from './account-id' +import { Currency } from './currency' +import { JsonObject, SerializedType } from './serialized-type' + +/** + * Interface for JSON objects that represent amounts + */ +interface IssueObject extends JsonObject { + currency: string + issuer?: string +} + +/** + * Type guard for AmountObject + */ +function isIssueObject(arg): arg is IssueObject { + const keys = Object.keys(arg).sort() + if (keys.length === 1) { + return keys[0] === 'currency' + } + return keys.length === 2 && keys[0] === 'currency' && keys[1] === 'issuer' +} + +/** + * Class for serializing/Deserializing Amounts + */ +class Issue extends SerializedType { + static readonly ZERO_ISSUED_CURRENCY: Issue = new Issue(new Uint8Array(20)) + + constructor(bytes: Uint8Array) { + super(bytes ?? Issue.ZERO_ISSUED_CURRENCY.bytes) + } + + /** + * Construct an amount from an IOU or string amount + * + * @param value An Amount, object representing an IOU, or a string + * representing an integer amount + * @returns An Amount object + */ + static from(value: T): Issue { + if (value instanceof Issue) { + return value + } + + if (isIssueObject(value)) { + const currency = Currency.from(value.currency).toBytes() + if (value.issuer == null) { + return new Issue(currency) + } + const issuer = AccountID.from(value.issuer).toBytes() + return new Issue(concat([currency, issuer])) + } + + throw new Error('Invalid type to construct an Amount') + } + + /** + * Read an amount from a BinaryParser + * + * @param parser BinaryParser to read the Amount from + * @returns An Amount object + */ + static fromParser(parser: BinaryParser): Issue { + const currency = parser.read(20) + if (new Currency(currency).toJSON() === 'XAH') { + return new Issue(currency) + } + const currencyAndIssuer = [currency, parser.read(20)] + return new Issue(concat(currencyAndIssuer)) + } + + /** + * Get the JSON representation of this Amount + * + * @returns the JSON interpretation of this.bytes + */ + toJSON(): IssueObject { + const parser = new BinaryParser(this.toString()) + const currency = Currency.fromParser(parser) as Currency + if (currency.toJSON() === 'XAH') { + return { currency: currency.toJSON() } + } + const issuer = AccountID.fromParser(parser) as AccountID + + return { + currency: currency.toJSON(), + issuer: issuer.toJSON(), + } + } +} + +export { Issue, IssueObject } diff --git a/packages/ripple-binary-codec/src/types/path-set.ts b/packages/ripple-binary-codec/src/types/path-set.ts index 309b0dc990..4359255df9 100644 --- a/packages/ripple-binary-codec/src/types/path-set.ts +++ b/packages/ripple-binary-codec/src/types/path-set.ts @@ -2,7 +2,7 @@ import { AccountID } from './account-id' import { Currency } from './currency' import { BinaryParser } from '../serdes/binary-parser' import { SerializedType, JsonObject } from './serialized-type' -import { Buffer } from 'buffer/' +import { bytesToHex, concat } from '@xrplf/isomorphic/utils' /** * Constants for separating Paths in a PathSet @@ -63,7 +63,7 @@ class Hop extends SerializedType { return value } - const bytes: Array = [Buffer.from([0])] + const bytes: Array = [Uint8Array.from([0])] if (value.account) { bytes.push(AccountID.from(value.account).toBytes()) @@ -80,7 +80,7 @@ class Hop extends SerializedType { bytes[0][0] |= TYPE_ISSUER } - return new Hop(Buffer.concat(bytes)) + return new Hop(concat(bytes)) } /** @@ -91,7 +91,7 @@ class Hop extends SerializedType { */ static fromParser(parser: BinaryParser): Hop { const type = parser.readUInt8() - const bytes: Array = [Buffer.from([type])] + const bytes: Array = [Uint8Array.from([type])] if (type & TYPE_ACCOUNT) { bytes.push(parser.read(AccountID.width)) @@ -105,7 +105,7 @@ class Hop extends SerializedType { bytes.push(parser.read(AccountID.width)) } - return new Hop(Buffer.concat(bytes)) + return new Hop(concat(bytes)) } /** @@ -114,7 +114,7 @@ class Hop extends SerializedType { * @returns a HopObject, an JS object with optional account, issuer, and currency */ toJSON(): HopObject { - const hopParser = new BinaryParser(this.bytes.toString('hex')) + const hopParser = new BinaryParser(bytesToHex(this.bytes)) const type = hopParser.readUInt8() let account, currency, issuer @@ -171,12 +171,12 @@ class Path extends SerializedType { return value } - const bytes: Array = [] + const bytes: Array = [] value.forEach((hop: HopObject) => { bytes.push(Hop.from(hop).toBytes()) }) - return new Path(Buffer.concat(bytes)) + return new Path(concat(bytes)) } /** @@ -186,7 +186,7 @@ class Path extends SerializedType { * @returns the Path represented by the bytes read from the BinaryParser */ static fromParser(parser: BinaryParser): Path { - const bytes: Array = [] + const bytes: Array = [] while (!parser.end()) { bytes.push(Hop.fromParser(parser).toBytes()) @@ -197,7 +197,7 @@ class Path extends SerializedType { break } } - return new Path(Buffer.concat(bytes)) + return new Path(concat(bytes)) } /** @@ -233,16 +233,16 @@ class PathSet extends SerializedType { } if (isPathSet(value)) { - const bytes: Array = [] + const bytes: Array = [] value.forEach((path: Array) => { bytes.push(Path.from(path).toBytes()) - bytes.push(Buffer.from([PATH_SEPARATOR_BYTE])) + bytes.push(Uint8Array.from([PATH_SEPARATOR_BYTE])) }) - bytes[bytes.length - 1] = Buffer.from([PATHSET_END_BYTE]) + bytes[bytes.length - 1] = Uint8Array.from([PATHSET_END_BYTE]) - return new PathSet(Buffer.concat(bytes)) + return new PathSet(concat(bytes)) } throw new Error('Cannot construct PathSet from given value') @@ -255,7 +255,7 @@ class PathSet extends SerializedType { * @returns the PathSet read from parser */ static fromParser(parser: BinaryParser): PathSet { - const bytes: Array = [] + const bytes: Array = [] while (!parser.end()) { bytes.push(Path.fromParser(parser).toBytes()) @@ -266,7 +266,7 @@ class PathSet extends SerializedType { } } - return new PathSet(Buffer.concat(bytes)) + return new PathSet(concat(bytes)) } /** diff --git a/packages/ripple-binary-codec/src/types/serialized-type.ts b/packages/ripple-binary-codec/src/types/serialized-type.ts index 68048f26e3..eb27f5d5a7 100644 --- a/packages/ripple-binary-codec/src/types/serialized-type.ts +++ b/packages/ripple-binary-codec/src/types/serialized-type.ts @@ -1,7 +1,7 @@ import { BytesList } from '../serdes/binary-serializer' import { BinaryParser } from '../serdes/binary-parser' -import bigInt = require('big-integer') -import { Buffer } from 'buffer/' +import { XrplDefinitionsBase } from '../enums' +import { bytesToHex } from '@xrplf/isomorphic/utils' type JSON = string | number | boolean | null | undefined | JSON[] | JsonObject @@ -11,10 +11,10 @@ type JsonObject = { [key: string]: JSON } * The base class for all binary-codec types */ class SerializedType { - protected readonly bytes: Buffer = Buffer.alloc(0) + protected readonly bytes: Uint8Array = new Uint8Array(0) - constructor(bytes: Buffer) { - this.bytes = bytes ?? Buffer.alloc(0) + constructor(bytes?: Uint8Array) { + this.bytes = bytes ?? new Uint8Array(0) } static fromParser(parser: BinaryParser, hint?: number): SerializedType { @@ -22,9 +22,7 @@ class SerializedType { return this.fromParser(parser, hint) } - static from( - value: SerializedType | JSON | bigInt.BigInteger, - ): SerializedType { + static from(value: SerializedType | JSON | bigint): SerializedType { throw new Error('from not implemented') return this.from(value) } @@ -44,15 +42,15 @@ class SerializedType { * @returns hex String of this.bytes */ toHex(): string { - return this.toBytes().toString('hex').toUpperCase() + return bytesToHex(this.toBytes()) } /** * Get the bytes representation of a SerializedType * - * @returns A buffer of the bytes + * @returns A Uint8Array of the bytes */ - toBytes(): Buffer { + toBytes(): Uint8Array { if (this.bytes) { return this.bytes } @@ -64,9 +62,12 @@ class SerializedType { /** * Return the JSON representation of a SerializedType * + * @param _definitions rippled definitions used to parse the values of transaction types and such. + * Unused in default, but used in STObject, STArray + * Can be customized for sidechains and amendments. * @returns any type, if not overloaded returns hexString representation of bytes */ - toJSON(): JSON { + toJSON(_definitions?: XrplDefinitionsBase): JSON { return this.toHex() } @@ -79,26 +80,31 @@ class SerializedType { } /** - * Base class for SerializedTypes that are comparable + * Base class for SerializedTypes that are comparable. + * + * @template T - What types you want to allow comparisons between. You must specify all types. Primarily used to allow + * comparisons between built-in types (like `string`) and SerializedType subclasses (like `Hash`). + * + * Ex. `class Hash extends Comparable` */ -class Comparable extends SerializedType { - lt(other: Comparable): boolean { +class Comparable extends SerializedType { + lt(other: T): boolean { return this.compareTo(other) < 0 } - eq(other: Comparable): boolean { + eq(other: T): boolean { return this.compareTo(other) === 0 } - gt(other: Comparable): boolean { + gt(other: T): boolean { return this.compareTo(other) > 0 } - gte(other: Comparable): boolean { + gte(other: T): boolean { return this.compareTo(other) > -1 } - lte(other: Comparable): boolean { + lte(other: T): boolean { return this.compareTo(other) < 1 } @@ -108,7 +114,7 @@ class Comparable extends SerializedType { * @param other The comparable object to compare this to * @returns A number denoting the relationship of this and other */ - compareTo(other: Comparable): number { + compareTo(other: T): number { throw new Error(`cannot compare ${this.toString()} and ${other.toString()}`) } } diff --git a/packages/ripple-binary-codec/src/types/st-array.ts b/packages/ripple-binary-codec/src/types/st-array.ts index 10dab9b9a5..c705d4d864 100644 --- a/packages/ripple-binary-codec/src/types/st-array.ts +++ b/packages/ripple-binary-codec/src/types/st-array.ts @@ -1,19 +1,26 @@ +import { DEFAULT_DEFINITIONS, XrplDefinitionsBase } from '../enums' import { SerializedType, JsonObject } from './serialized-type' import { STObject } from './st-object' import { BinaryParser } from '../serdes/binary-parser' -import { Buffer } from 'buffer/' +import { concat } from '@xrplf/isomorphic/utils' -const ARRAY_END_MARKER = Buffer.from([0xf1]) +const ARRAY_END_MARKER = Uint8Array.from([0xf1]) const ARRAY_END_MARKER_NAME = 'ArrayEndMarker' -const OBJECT_END_MARKER = Buffer.from([0xe1]) +const OBJECT_END_MARKER = Uint8Array.from([0xe1]) /** * TypeGuard for Array */ function isObjects(args): args is Array { return ( - Array.isArray(args) && (args.length === 0 || typeof args[0] === 'object') + Array.isArray(args) && + args.every( + (arg) => + typeof arg === 'object' && + Object.keys(arg).length === 1 && + typeof Object.values(arg)[0] === 'object', + ) ) } @@ -28,7 +35,7 @@ class STArray extends SerializedType { * @returns An STArray Object */ static fromParser(parser: BinaryParser): STArray { - const bytes: Array = [] + const bytes: Array = [] while (!parser.end()) { const field = parser.readField() @@ -44,28 +51,32 @@ class STArray extends SerializedType { } bytes.push(ARRAY_END_MARKER) - return new STArray(Buffer.concat(bytes)) + return new STArray(concat(bytes)) } /** * Construct an STArray from an Array of JSON Objects * * @param value STArray or Array of Objects to parse into an STArray + * @param definitions optional, types and values to use to encode/decode a transaction * @returns An STArray object */ - static from>(value: T): STArray { + static from>( + value: T, + definitions: XrplDefinitionsBase = DEFAULT_DEFINITIONS, + ): STArray { if (value instanceof STArray) { return value } if (isObjects(value)) { - const bytes: Array = [] + const bytes: Array = [] value.forEach((obj) => { - bytes.push(STObject.from(obj).toBytes()) + bytes.push(STObject.from(obj, undefined, definitions).toBytes()) }) bytes.push(ARRAY_END_MARKER) - return new STArray(Buffer.concat(bytes)) + return new STArray(concat(bytes)) } throw new Error('Cannot construct STArray from value given') @@ -74,12 +85,15 @@ class STArray extends SerializedType { /** * Return the JSON representation of this.bytes * + * @param definitions optional, types and values to use to encode/decode a transaction * @returns An Array of JSON objects */ - toJSON(): Array { + toJSON( + definitions: XrplDefinitionsBase = DEFAULT_DEFINITIONS, + ): Array { const result: Array = [] - const arrayParser = new BinaryParser(this.toString()) + const arrayParser = new BinaryParser(this.toString(), definitions) while (!arrayParser.end()) { const field = arrayParser.readField() @@ -88,7 +102,7 @@ class STArray extends SerializedType { } const outer = {} - outer[field.name] = STObject.fromParser(arrayParser).toJSON() + outer[field.name] = STObject.fromParser(arrayParser).toJSON(definitions) result.push(outer) } diff --git a/packages/ripple-binary-codec/src/types/st-object.ts b/packages/ripple-binary-codec/src/types/st-object.ts index 3b3c29c7e4..75fec3a86c 100644 --- a/packages/ripple-binary-codec/src/types/st-object.ts +++ b/packages/ripple-binary-codec/src/types/st-object.ts @@ -5,15 +5,13 @@ import { XrplDefinitionsBase, } from '../enums' import { SerializedType, JsonObject } from './serialized-type' -import { - xAddressToClassicAddress, - isValidXAddress, -} from '@transia/ripple-address-codec' +import { xAddressToClassicAddress, isValidXAddress } from 'ripple-address-codec' import { BinaryParser } from '../serdes/binary-parser' import { BinarySerializer, BytesList } from '../serdes/binary-serializer' -import { Buffer } from 'buffer/' -const OBJECT_END_MARKER_BYTE = Buffer.from([0xe1]) +import { STArray } from './st-array' + +const OBJECT_END_MARKER_BYTE = Uint8Array.from([0xe1]) const OBJECT_END_MARKER = 'ObjectEndMarker' const ST_OBJECT = 'STObject' const DESTINATION = 'Destination' @@ -134,9 +132,12 @@ class STObject extends SerializedType { } sorted.forEach((field) => { - const associatedValue = field.associatedType.from( - xAddressDecoded[field.name], - ) + const associatedValue = + field.type.name === ST_OBJECT + ? this.from(xAddressDecoded[field.name], undefined, definitions) + : field.type.name === 'STArray' + ? STArray.from(xAddressDecoded[field.name], definitions) + : field.associatedType.from(xAddressDecoded[field.name]) if (associatedValue == undefined) { throw new TypeError( @@ -178,7 +179,10 @@ class STObject extends SerializedType { if (field.name === OBJECT_END_MARKER) { break } - accumulator[field.name] = objectParser.readFieldValue(field).toJSON() + + accumulator[field.name] = objectParser + .readFieldValue(field) + .toJSON(definitions) } return accumulator diff --git a/packages/ripple-binary-codec/src/types/uint-16.ts b/packages/ripple-binary-codec/src/types/uint-16.ts index 921b81c52a..5d680384e2 100644 --- a/packages/ripple-binary-codec/src/types/uint-16.ts +++ b/packages/ripple-binary-codec/src/types/uint-16.ts @@ -1,15 +1,17 @@ import { UInt } from './uint' import { BinaryParser } from '../serdes/binary-parser' -import { Buffer } from 'buffer/' +import { readUInt16BE, writeUInt16BE } from '../utils' /** * Derived UInt class for serializing/deserializing 16 bit UInt */ class UInt16 extends UInt { protected static readonly width: number = 16 / 8 // 2 - static readonly defaultUInt16: UInt16 = new UInt16(Buffer.alloc(UInt16.width)) + static readonly defaultUInt16: UInt16 = new UInt16( + new Uint8Array(UInt16.width), + ) - constructor(bytes: Buffer) { + constructor(bytes: Uint8Array) { super(bytes ?? UInt16.defaultUInt16.bytes) } @@ -28,8 +30,10 @@ class UInt16 extends UInt { } if (typeof val === 'number') { - const buf = Buffer.alloc(UInt16.width) - buf.writeUInt16BE(val, 0) + UInt16.checkUintRange(val, 0, 0xffff) + + const buf = new Uint8Array(UInt16.width) + writeUInt16BE(buf, val, 0) return new UInt16(buf) } @@ -42,7 +46,7 @@ class UInt16 extends UInt { * @returns the number represented by this.bytes */ valueOf(): number { - return this.bytes.readUInt16BE(0) + return parseInt(readUInt16BE(this.bytes, 0)) } } diff --git a/packages/ripple-binary-codec/src/types/uint-32.ts b/packages/ripple-binary-codec/src/types/uint-32.ts index aea301d989..abb5d8a987 100644 --- a/packages/ripple-binary-codec/src/types/uint-32.ts +++ b/packages/ripple-binary-codec/src/types/uint-32.ts @@ -1,15 +1,17 @@ import { UInt } from './uint' import { BinaryParser } from '../serdes/binary-parser' -import { Buffer } from 'buffer/' +import { readUInt32BE, writeUInt32BE } from '../utils' /** * Derived UInt class for serializing/deserializing 32 bit UInt */ class UInt32 extends UInt { protected static readonly width: number = 32 / 8 // 4 - static readonly defaultUInt32: UInt32 = new UInt32(Buffer.alloc(UInt32.width)) + static readonly defaultUInt32: UInt32 = new UInt32( + new Uint8Array(UInt32.width), + ) - constructor(bytes: Buffer) { + constructor(bytes: Uint8Array) { super(bytes ?? UInt32.defaultUInt32.bytes) } @@ -27,16 +29,17 @@ class UInt32 extends UInt { return val } - const buf = Buffer.alloc(UInt32.width) + const buf = new Uint8Array(UInt32.width) if (typeof val === 'string') { const num = Number.parseInt(val) - buf.writeUInt32BE(num, 0) + writeUInt32BE(buf, num, 0) return new UInt32(buf) } if (typeof val === 'number') { - buf.writeUInt32BE(val, 0) + UInt32.checkUintRange(val, 0, 0xffffffff) + writeUInt32BE(buf, val, 0) return new UInt32(buf) } @@ -49,7 +52,7 @@ class UInt32 extends UInt { * @returns the number represented by this.bytes */ valueOf(): number { - return this.bytes.readUInt32BE(0) + return parseInt(readUInt32BE(this.bytes, 0), 10) } } diff --git a/packages/ripple-binary-codec/src/types/uint-64.ts b/packages/ripple-binary-codec/src/types/uint-64.ts index e37a86ab53..584b468d65 100644 --- a/packages/ripple-binary-codec/src/types/uint-64.ts +++ b/packages/ripple-binary-codec/src/types/uint-64.ts @@ -1,20 +1,21 @@ import { UInt } from './uint' import { BinaryParser } from '../serdes/binary-parser' -import bigInt = require('big-integer') -import { isInstance } from 'big-integer' -import { Buffer } from 'buffer/' +import { bytesToHex, concat, hexToBytes } from '@xrplf/isomorphic/utils' +import { readUInt32BE, writeUInt32BE } from '../utils' const HEX_REGEX = /^[a-fA-F0-9]{1,16}$/ -const mask = bigInt(0x00000000ffffffff) +const mask = BigInt(0x00000000ffffffff) /** * Derived UInt class for serializing/deserializing 64 bit UInt */ class UInt64 extends UInt { protected static readonly width: number = 64 / 8 // 8 - static readonly defaultUInt64: UInt64 = new UInt64(Buffer.alloc(UInt64.width)) + static readonly defaultUInt64: UInt64 = new UInt64( + new Uint8Array(UInt64.width), + ) - constructor(bytes: Buffer) { + constructor(bytes: Uint8Array) { super(bytes ?? UInt64.defaultUInt64.bytes) } @@ -28,27 +29,25 @@ class UInt64 extends UInt { * @param val A UInt64, hex-string, bigInt, or number * @returns A UInt64 object */ - static from( - val: T, - ): UInt64 { + static from(val: T): UInt64 { if (val instanceof UInt64) { return val } - let buf = Buffer.alloc(UInt64.width) + let buf = new Uint8Array(UInt64.width) if (typeof val === 'number') { if (val < 0) { throw new Error('value must be an unsigned integer') } - const number = bigInt(val) + const number = BigInt(val) - const intBuf = [Buffer.alloc(4), Buffer.alloc(4)] - intBuf[0].writeUInt32BE(Number(number.shiftRight(32)), 0) - intBuf[1].writeUInt32BE(Number(number.and(mask)), 0) + const intBuf = [new Uint8Array(4), new Uint8Array(4)] + writeUInt32BE(intBuf[0], Number(number >> BigInt(32)), 0) + writeUInt32BE(intBuf[1], Number(number & BigInt(mask)), 0) - return new UInt64(Buffer.concat(intBuf)) + return new UInt64(concat(intBuf)) } if (typeof val === 'string') { @@ -57,16 +56,16 @@ class UInt64 extends UInt { } const strBuf = val.padStart(16, '0') - buf = Buffer.from(strBuf, 'hex') + buf = hexToBytes(strBuf) return new UInt64(buf) } - if (isInstance(val)) { - const intBuf = [Buffer.alloc(4), Buffer.alloc(4)] - intBuf[0].writeUInt32BE(Number(val.shiftRight(bigInt(32))), 0) - intBuf[1].writeUInt32BE(Number(val.and(mask)), 0) + if (typeof val === 'bigint') { + const intBuf = [new Uint8Array(4), new Uint8Array(4)] + writeUInt32BE(intBuf[0], Number(Number(val >> BigInt(32))), 0) + writeUInt32BE(intBuf[1], Number(val & BigInt(mask)), 0) - return new UInt64(Buffer.concat(intBuf)) + return new UInt64(concat(intBuf)) } throw new Error('Cannot construct UInt64 from given value') @@ -78,7 +77,7 @@ class UInt64 extends UInt { * @returns a hex-string */ toJSON(): string { - return this.bytes.toString('hex').toUpperCase() + return bytesToHex(this.bytes) } /** @@ -86,10 +85,10 @@ class UInt64 extends UInt { * * @returns the number represented buy this.bytes */ - valueOf(): bigInt.BigInteger { - const msb = bigInt(this.bytes.slice(0, 4).readUInt32BE(0)) - const lsb = bigInt(this.bytes.slice(4).readUInt32BE(0)) - return msb.shiftLeft(bigInt(32)).or(lsb) + valueOf(): bigint { + const msb = BigInt(readUInt32BE(this.bytes.slice(0, 4), 0)) + const lsb = BigInt(readUInt32BE(this.bytes.slice(4), 0)) + return (msb << BigInt(32)) | lsb } /** @@ -97,7 +96,7 @@ class UInt64 extends UInt { * * @returns 8 bytes representing the UInt64 */ - toBytes(): Buffer { + toBytes(): Uint8Array { return this.bytes } } diff --git a/packages/ripple-binary-codec/src/types/uint-8.ts b/packages/ripple-binary-codec/src/types/uint-8.ts index d83e140540..50c4cff773 100644 --- a/packages/ripple-binary-codec/src/types/uint-8.ts +++ b/packages/ripple-binary-codec/src/types/uint-8.ts @@ -1,15 +1,16 @@ import { UInt } from './uint' import { BinaryParser } from '../serdes/binary-parser' -import { Buffer } from 'buffer/' +import { bytesToHex } from '@xrplf/isomorphic/utils' +import { writeUInt8 } from '../utils' /** * Derived UInt class for serializing/deserializing 8 bit UInt */ class UInt8 extends UInt { protected static readonly width: number = 8 / 8 // 1 - static readonly defaultUInt8: UInt8 = new UInt8(Buffer.alloc(UInt8.width)) + static readonly defaultUInt8: UInt8 = new UInt8(new Uint8Array(UInt8.width)) - constructor(bytes: Buffer) { + constructor(bytes: Uint8Array) { super(bytes ?? UInt8.defaultUInt8.bytes) } @@ -28,8 +29,10 @@ class UInt8 extends UInt { } if (typeof val === 'number') { - const buf = Buffer.alloc(UInt8.width) - buf.writeUInt8(val, 0) + UInt8.checkUintRange(val, 0, 0xff) + + const buf = new Uint8Array(UInt8.width) + writeUInt8(buf, val, 0) return new UInt8(buf) } @@ -42,7 +45,7 @@ class UInt8 extends UInt { * @returns the number represented by this.bytes */ valueOf(): number { - return this.bytes.readUInt8(0) + return parseInt(bytesToHex(this.bytes), 16) } } diff --git a/packages/ripple-binary-codec/src/types/uint.ts b/packages/ripple-binary-codec/src/types/uint.ts index 91b7649631..62c9f7fa63 100644 --- a/packages/ripple-binary-codec/src/types/uint.ts +++ b/packages/ripple-binary-codec/src/types/uint.ts @@ -1,6 +1,4 @@ -import bigInt = require('big-integer') import { Comparable } from './serialized-type' -import { Buffer } from 'buffer/' /** * Compare numbers and bigInts n1 and n2 @@ -9,20 +7,17 @@ import { Buffer } from 'buffer/' * @param n2 Second object to compare * @returns -1, 0, or 1, depending on how the two objects compare */ -function compare( - n1: number | bigInt.BigInteger, - n2: number | bigInt.BigInteger, -): number { +function compare(n1: number | bigint, n2: number | bigint): number { return n1 < n2 ? -1 : n1 == n2 ? 0 : 1 } /** * Base class for serializing and deserializing unsigned integers. */ -abstract class UInt extends Comparable { +abstract class UInt extends Comparable { protected static width: number - constructor(bytes: Buffer) { + constructor(bytes: Uint8Array) { super(bytes) } @@ -32,7 +27,7 @@ abstract class UInt extends Comparable { * @param other other UInt to compare this to * @returns -1, 0, or 1 depending on how the objects relate to each other */ - compareTo(other: UInt): number { + compareTo(other: UInt | number): number { return compare(this.valueOf(), other.valueOf()) } @@ -51,7 +46,15 @@ abstract class UInt extends Comparable { * * @returns the value */ - abstract valueOf(): number | bigInt.BigInteger + abstract valueOf(): number | bigint + + static checkUintRange(val: number, min: number, max: number): void { + if (val < min || val > max) { + throw new Error( + `Invalid ${this.constructor.name}: ${val} must be >= ${min} and <= ${max}`, + ) + } + } } export { UInt } diff --git a/packages/ripple-binary-codec/src/types/vector-256.ts b/packages/ripple-binary-codec/src/types/vector-256.ts index afb3b63fd2..0f7bc2ccb0 100644 --- a/packages/ripple-binary-codec/src/types/vector-256.ts +++ b/packages/ripple-binary-codec/src/types/vector-256.ts @@ -2,7 +2,7 @@ import { SerializedType } from './serialized-type' import { BinaryParser } from '../serdes/binary-parser' import { Hash256 } from './hash-256' import { BytesList } from '../serdes/binary-serializer' -import { Buffer } from 'buffer/' +import { bytesToHex } from '@xrplf/isomorphic/utils' /** * TypeGuard for Array @@ -15,7 +15,7 @@ function isStrings(arg): arg is Array { * Class for serializing and deserializing vectors of Hash256 */ class Vector256 extends SerializedType { - constructor(bytes: Buffer) { + constructor(bytes: Uint8Array) { super(bytes) } @@ -70,12 +70,7 @@ class Vector256 extends SerializedType { const result: Array = [] for (let i = 0; i < this.bytes.byteLength; i += 32) { - result.push( - this.bytes - .slice(i, i + 32) - .toString('hex') - .toUpperCase(), - ) + result.push(bytesToHex(this.bytes.slice(i, i + 32))) } return result } diff --git a/packages/ripple-binary-codec/src/types/xchain-bridge.ts b/packages/ripple-binary-codec/src/types/xchain-bridge.ts new file mode 100644 index 0000000000..6bda43ae33 --- /dev/null +++ b/packages/ripple-binary-codec/src/types/xchain-bridge.ts @@ -0,0 +1,128 @@ +import { BinaryParser } from '../serdes/binary-parser' + +import { AccountID } from './account-id' +import { JsonObject, SerializedType } from './serialized-type' +import { Issue, IssueObject } from './issue' +import { concat } from '@xrplf/isomorphic/utils' + +/** + * Interface for JSON objects that represent cross-chain bridges + */ +interface XChainBridgeObject extends JsonObject { + LockingChainDoor: string + LockingChainIssue: IssueObject | string + IssuingChainDoor: string + IssuingChainIssue: IssueObject | string +} + +/** + * Type guard for XChainBridgeObject + */ +function isXChainBridgeObject(arg): arg is XChainBridgeObject { + const keys = Object.keys(arg).sort() + return ( + keys.length === 4 && + keys[0] === 'IssuingChainDoor' && + keys[1] === 'IssuingChainIssue' && + keys[2] === 'LockingChainDoor' && + keys[3] === 'LockingChainIssue' + ) +} + +/** + * Class for serializing/deserializing XChainBridges + */ +class XChainBridge extends SerializedType { + static readonly ZERO_XCHAIN_BRIDGE: XChainBridge = new XChainBridge( + concat([ + Uint8Array.from([0x14]), + new Uint8Array(40), + Uint8Array.from([0x14]), + new Uint8Array(40), + ]), + ) + + static readonly TYPE_ORDER: { name: string; type: typeof SerializedType }[] = + [ + { name: 'LockingChainDoor', type: AccountID }, + { name: 'LockingChainIssue', type: Issue }, + { name: 'IssuingChainDoor', type: AccountID }, + { name: 'IssuingChainIssue', type: Issue }, + ] + + constructor(bytes: Uint8Array) { + super(bytes ?? XChainBridge.ZERO_XCHAIN_BRIDGE.bytes) + } + + /** + * Construct a cross-chain bridge from a JSON + * + * @param value XChainBridge or JSON to parse into an XChainBridge + * @returns An XChainBridge object + */ + static from( + value: T, + ): XChainBridge { + if (value instanceof XChainBridge) { + return value + } + + if (!isXChainBridgeObject(value)) { + throw new Error('Invalid type to construct an XChainBridge') + } + + const bytes: Array = [] + this.TYPE_ORDER.forEach((item) => { + const { name, type } = item + if (type === AccountID) { + bytes.push(Uint8Array.from([0x14])) + } + const object = type.from(value[name]) + bytes.push(object.toBytes()) + }) + return new XChainBridge(concat(bytes)) + } + + /** + * Read an XChainBridge from a BinaryParser + * + * @param parser BinaryParser to read the XChainBridge from + * @returns An XChainBridge object + */ + static fromParser(parser: BinaryParser): XChainBridge { + const bytes: Array = [] + + this.TYPE_ORDER.forEach((item) => { + const { type } = item + if (type === AccountID) { + parser.skip(1) + bytes.push(Uint8Array.from([0x14])) + } + const object = type.fromParser(parser) + bytes.push(object.toBytes()) + }) + + return new XChainBridge(concat(bytes)) + } + + /** + * Get the JSON representation of this XChainBridge + * + * @returns the JSON interpretation of this.bytes + */ + toJSON(): XChainBridgeObject { + const parser = new BinaryParser(this.toString()) + const json = {} + XChainBridge.TYPE_ORDER.forEach((item) => { + const { name, type } = item + if (type === AccountID) { + parser.skip(1) + } + const object = type.fromParser(parser).toJSON() + json[name] = object + }) + return json as XChainBridgeObject + } +} + +export { XChainBridge, XChainBridgeObject } diff --git a/packages/ripple-binary-codec/src/utils.ts b/packages/ripple-binary-codec/src/utils.ts new file mode 100644 index 0000000000..27b2ce1b3e --- /dev/null +++ b/packages/ripple-binary-codec/src/utils.ts @@ -0,0 +1,152 @@ +// Even though this comes from NodeJS it is valid in the browser +import TypedArray = NodeJS.TypedArray + +/** + * Writes value to array at the specified offset. The value must be a valid unsigned 8-bit integer. + * @param array Uint8Array to be written to + * @param value Number to be written to array. + * @param offset plus the number of bytes written. + */ +export function writeUInt8( + array: Uint8Array, + value: number, + offset: number, +): void { + value = Number(value) + array[offset] = value +} + +/** + * Writes value to array at the specified offset as big-endian. The value must be a valid unsigned 16-bit integer. + * @param array Uint8Array to be written to + * @param value Number to be written to array. + * @param offset plus the number of bytes written. + */ +export function writeUInt16BE( + array: Uint8Array, + value: number, + offset: number, +): void { + value = Number(value) + + array[offset] = value >>> 8 + array[offset + 1] = value +} + +/** + * Writes value to array at the specified offset as big-endian. The value must be a valid unsigned 32-bit integer. + * @param array Uint8Array to be written to + * @param value Number to be written to array. + * @param offset plus the number of bytes written. + */ +export function writeUInt32BE( + array: Uint8Array, + value: number, + offset: number, +): void { + array[offset] = (value >>> 24) & 0xff + array[offset + 1] = (value >>> 16) & 0xff + array[offset + 2] = (value >>> 8) & 0xff + array[offset + 3] = value & 0xff +} + +/** + * Reads an unsigned, big-endian 16-bit integer from the array at the specified offset. + * @param array Uint8Array to read + * @param offset Number of bytes to skip before starting to read. Must satisfy 0 <= offset <= buf.length - 2 + */ +export function readUInt16BE(array: Uint8Array, offset: number): string { + return new DataView(array.buffer).getUint16(offset, false).toString(10) +} + +/** + * Reads an unsigned, big-endian 16-bit integer from the array at the specified offset. + * @param array Uint8Array to read + * @param offset Number of bytes to skip before starting to read. Must satisfy 0 <= offset <= buf.length - 4 + */ +export function readUInt32BE(array: Uint8Array, offset: number): string { + return new DataView(array.buffer).getUint32(offset, false).toString(10) +} + +/** + * Compares two Uint8Array or ArrayBuffers + * @param a first array to compare + * @param b second array to compare + */ +export function equal( + a: Uint8Array | ArrayBuffer, + b: Uint8Array | ArrayBuffer, +): boolean { + const aUInt = a instanceof ArrayBuffer ? new Uint8Array(a, 0) : a + const bUInt = b instanceof ArrayBuffer ? new Uint8Array(b, 0) : b + if (aUInt.byteLength != bUInt.byteLength) return false + if (aligned32(aUInt) && aligned32(bUInt)) return compare32(aUInt, bUInt) === 0 + if (aligned16(aUInt) && aligned16(bUInt)) return compare16(aUInt, bUInt) === 0 + return compare8(aUInt, bUInt) === 0 +} + +/** + * Compares two 8 bit aligned arrays + * @param a first array to compare + * @param b second array to compare + */ +function compare8(a, b) { + const ua = new Uint8Array(a.buffer, a.byteOffset, a.byteLength) + const ub = new Uint8Array(b.buffer, b.byteOffset, b.byteLength) + return compare(ua, ub) +} + +/** + * Compares two 16 bit aligned arrays + * @param a first array to compare + * @param b second array to compare + */ +function compare16(a: Uint8Array, b: Uint8Array) { + const ua = new Uint16Array(a.buffer, a.byteOffset, a.byteLength / 2) + const ub = new Uint16Array(b.buffer, b.byteOffset, b.byteLength / 2) + return compare(ua, ub) +} + +/** + * Compares two 32 bit aligned arrays + * @param a first array to compare + * @param b second array to compare + */ +function compare32(a: Uint8Array, b: Uint8Array) { + const ua = new Uint32Array(a.buffer, a.byteOffset, a.byteLength / 4) + const ub = new Uint32Array(b.buffer, b.byteOffset, b.byteLength / 4) + return compare(ua, ub) +} + +/** + * Compare two TypedArrays + * @param a first array to compare + * @param b second array to compare + */ +export function compare(a: TypedArray, b: TypedArray): 1 | -1 | 0 { + if (a.byteLength !== b.byteLength) { + throw new Error('Cannot compare arrays of different length') + } + + for (let i = 0; i < a.length - 1; i += 1) { + if (a[i] > b[i]) return 1 + if (a[i] < b[i]) return -1 + } + return 0 +} + +/** + * Determine if TypedArray is 16 bit aligned + * @param array The array to check + */ +function aligned16(array: TypedArray) { + return array.byteOffset % 2 === 0 && array.byteLength % 2 === 0 +} + +/** + * Determine if TypedArray is 32 bit aligned + * @param array The array to check + */ +function aligned32(array: TypedArray) { + return array.byteOffset % 4 === 0 && array.byteLength % 4 === 0 +} diff --git a/packages/ripple-binary-codec/test/amount.test.js b/packages/ripple-binary-codec/test/amount.test.ts similarity index 87% rename from packages/ripple-binary-codec/test/amount.test.js rename to packages/ripple-binary-codec/test/amount.test.ts index 7a480e8592..82b8c1c903 100644 --- a/packages/ripple-binary-codec/test/amount.test.js +++ b/packages/ripple-binary-codec/test/amount.test.ts @@ -1,7 +1,6 @@ -const { loadFixture } = require('./utils') -const { coreTypes } = require('../src/types') +import { coreTypes } from '../src/types' +import fixtures from './fixtures/data-driven-tests.json' const { Amount } = coreTypes -const fixtures = loadFixture('data-driven-tests.json') function amountErrorTests() { fixtures.values_tests diff --git a/packages/ripple-binary-codec/test/binary-json.test.js b/packages/ripple-binary-codec/test/binary-json.test.ts similarity index 63% rename from packages/ripple-binary-codec/test/binary-json.test.js rename to packages/ripple-binary-codec/test/binary-json.test.ts index d3e4c27457..3f3dc8227d 100644 --- a/packages/ripple-binary-codec/test/binary-json.test.js +++ b/packages/ripple-binary-codec/test/binary-json.test.ts @@ -1,5 +1,6 @@ -const fixtures = require('./fixtures/codec-fixtures.json') -const { decode, encode, decodeLedgerData } = require('../src') +import fixtures from './fixtures/codec-fixtures.json' +import xrplDefinitions from '../src/enums/definitions.json' +import { decode, encode, decodeLedgerData, XrplDefinitions } from '../src' function json(object) { return JSON.stringify(object) @@ -9,19 +10,21 @@ function truncateForDisplay(longStr) { return `${longStr.slice(0, 10)} ... ${longStr.slice(-10)}` } +const definitions = new XrplDefinitions(xrplDefinitions) + describe('ripple-binary-codec', function () { function makeSuite(name, entries) { describe(name, function () { entries.forEach((t, testN) => { - test(`${name}[${testN}] can encode ${truncateForDisplay( + it(`${name}[${testN}] can encode ${truncateForDisplay( json(t.json), )} to ${truncateForDisplay(t.binary)}`, () => { - expect(encode(t.json)).toEqual(t.binary) + expect(encode(t.json, definitions)).toEqual(t.binary) }) - test(`${name}[${testN}] can decode ${truncateForDisplay( + it(`${name}[${testN}] can decode ${truncateForDisplay( t.binary, )} to ${truncateForDisplay(json(t.json))}`, () => { - const decoded = decode(t.binary) + const decoded = decode(t.binary, definitions) expect(decoded).toEqual(t.json) }) }) @@ -33,7 +36,7 @@ describe('ripple-binary-codec', function () { describe('ledgerData', function () { if (fixtures.ledgerData) { fixtures.ledgerData.forEach((t, testN) => { - test(`ledgerData[${testN}] can decode ${t.binary} to ${json( + it(`ledgerData[${testN}] can decode ${t.binary} to ${json( t.json, )}`, () => { const decoded = decodeLedgerData(t.binary) diff --git a/packages/ripple-binary-codec/test/binary-parser.test.js b/packages/ripple-binary-codec/test/binary-parser.test.ts similarity index 70% rename from packages/ripple-binary-codec/test/binary-parser.test.js rename to packages/ripple-binary-codec/test/binary-parser.test.ts index ec9b1bf964..edd00046fa 100644 --- a/packages/ripple-binary-codec/test/binary-parser.test.js +++ b/packages/ripple-binary-codec/test/binary-parser.test.ts @@ -1,17 +1,15 @@ -const { coreTypes } = require('../src/types') -const Decimal = require('decimal.js') +import { hexOnly } from './utils' +import { coreTypes, Amount, Hash160 } from '../src/types' +import BigNumber from 'bignumber.js' -const { encodeAccountID } = require('@transia/ripple-address-codec') -const { binary } = require('../src/coretypes') -const { Amount, Hash160 } = coreTypes -const { makeParser, readJSON } = binary -const { Field, TransactionType } = require('./../src/enums') -const { parseHexOnly, hexOnly, loadFixture } = require('./utils') -const fixtures = loadFixture('data-driven-tests.json') -const { BytesList } = require('../src/serdes/binary-serializer') -const { Buffer } = require('buffer/') +import { encodeAccountID } from 'ripple-address-codec' +import { Field, TransactionType } from '../src/enums' +import { makeParser, readJSON } from '../src/binary' +import { BytesList } from '../src/serdes/binary-serializer' +import fixtures from './fixtures/data-driven-tests.json' + +const { bytesToHex } = require('@xrplf/isomorphic/utils') -const __ = hexOnly function toJSON(v) { return v.toJSON ? v.toJSON() : v } @@ -26,23 +24,23 @@ function assertEqualAmountJSON(actual, expected) { expect(actual.issuer).toEqual(expected.issuer) expect( actual.value === expected.value || - new Decimal(actual.value).equals(new Decimal(expected.value)), + new BigNumber(actual.value).eq(new BigNumber(expected.value)), ).toBe(true) } function basicApiTests() { - const bytes = parseHexOnly('00,01020304,0506', Uint8Array) - test('can read slices of bytes', () => { - const parser = makeParser(bytes) - expect(parser.bytes instanceof Buffer).toBe(true) + it('can read slices of bytes', () => { + const parser = makeParser('00010203040506') + // @ts-expect-error -- checking private variable type + expect(parser.bytes instanceof Uint8Array).toBe(true) const read1 = parser.read(1) - expect(read1 instanceof Buffer).toBe(true) - expect(read1).toEqual(Buffer.from([0])) - expect(parser.read(4)).toEqual(Buffer.from([1, 2, 3, 4])) - expect(parser.read(2)).toEqual(Buffer.from([5, 6])) + expect(read1 instanceof Uint8Array).toBe(true) + expect(read1).toEqual(Uint8Array.from([0])) + expect(parser.read(4)).toEqual(Uint8Array.from([1, 2, 3, 4])) + expect(parser.read(2)).toEqual(Uint8Array.from([5, 6])) expect(() => parser.read(1)).toThrow() }) - test('can read a Uint32 at full', () => { + it('can read a Uint32 at full', () => { const parser = makeParser('FFFFFFFF') expect(parser.readUInt32()).toEqual(0xffffffff) }) @@ -64,12 +62,12 @@ function transactionParsingTests() { }, TakerPays: '98957503520', TransactionType: 'OfferCreate', - TxnSignature: __(` + TxnSignature: hexOnly(` 304502202ABE08D5E78D1E74A4C18F2714F64E87B8BD57444AF A5733109EB3C077077520022100DB335EE97386E4C0591CAC02 4D50E9230D8F171EEB901B5E5E4BD6D1E0AEF98C`), }, - binary: __(` + binary: hexOnly(` 120007220000000024000195F964400000170A53AC2065D5460561E C9DE000000000000000000000000000494C53000000000092D70596 8936C419CE614BF264B5EEB1CEA47FF468400000000000000A73210 @@ -83,103 +81,104 @@ function transactionParsingTests() { const tx_json = transaction.json // These tests are basically development logs - test('can be done with low level apis', () => { + it('can be done with low level apis', () => { const parser = makeParser(transaction.binary) - expect(parser.readField()).toEqual(Field.TransactionType) + expect(parser.readField()).toEqual(Field['TransactionType']) expect(parser.readUInt16()).toEqual(7) - expect(parser.readField()).toEqual(Field.Flags) + expect(parser.readField()).toEqual(Field['Flags']) expect(parser.readUInt32()).toEqual(0) - expect(parser.readField()).toEqual(Field.Sequence) + expect(parser.readField()).toEqual(Field['Sequence']) expect(parser.readUInt32()).toEqual(103929) - expect(parser.readField()).toEqual(Field.TakerPays) + expect(parser.readField()).toEqual(Field['TakerPays']) parser.read(8) - expect(parser.readField()).toEqual(Field.TakerGets) + expect(parser.readField()).toEqual(Field['TakerGets']) // amount value expect(parser.read(8)).not.toBe([]) // amount currency expect(Hash160.fromParser(parser)).not.toBe([]) expect(encodeAccountID(parser.read(20))).toEqual(tx_json.TakerGets.issuer) - expect(parser.readField()).toEqual(Field.Fee) + expect(parser.readField()).toEqual(Field['Fee']) expect(parser.read(8)).not.toEqual([]) - expect(parser.readField()).toEqual(Field.SigningPubKey) + expect(parser.readField()).toEqual(Field['SigningPubKey']) expect(parser.readVariableLengthLength()).toBe(33) - expect(parser.read(33).toString('hex').toUpperCase()).toEqual( - tx_json.SigningPubKey, - ) - expect(parser.readField()).toEqual(Field.TxnSignature) - expect(parser.readVariableLength().toString('hex').toUpperCase()).toEqual( + expect(bytesToHex(parser.read(33))).toEqual(tx_json.SigningPubKey) + expect(parser.readField()).toEqual(Field['TxnSignature']) + expect(bytesToHex(parser.readVariableLength())).toEqual( tx_json.TxnSignature, ) - expect(parser.readField()).toEqual(Field.Account) + expect(parser.readField()).toEqual(Field['Account']) expect(encodeAccountID(parser.readVariableLength())).toEqual( tx_json.Account, ) expect(parser.end()).toBe(true) }) - test('can be done with high level apis', () => { + it('can be done with high level apis', () => { const parser = makeParser(transaction.binary) function readField() { return parser.readFieldAndValue() } { const [field, value] = readField() - expect(field).toEqual(Field.TransactionType) - expect(value).toEqual(TransactionType.OfferCreate) + expect(field).toEqual(Field['TransactionType']) + expect(value).toEqual(TransactionType['OfferCreate']) } { const [field, value] = readField() - expect(field).toEqual(Field.Flags) + expect(field).toEqual(Field['Flags']) expect(value.valueOf()).toEqual(0) } { const [field, value] = readField() - expect(field).toEqual(Field.Sequence) + expect(field).toEqual(Field['Sequence']) expect(value.valueOf()).toEqual(103929) } { const [field, value] = readField() - expect(field).toEqual(Field.TakerPays) - expect(value.isNative()).toEqual(true) + expect(field).toEqual(Field['TakerPays']) + // @ts-expect-error -- checking private variable type + expect((value as Amount).isNative()).toEqual(true) expect(value.toJSON()).toEqual('98957503520') } { const [field, value] = readField() - expect(field).toEqual(Field.TakerGets) - expect(value.isNative()).toEqual(false) - expect(value.toJSON().issuer).toEqual(tx_json.TakerGets.issuer) + expect(field).toEqual(Field['TakerGets']) + // @ts-expect-error -- checking private function + expect((value as Amount).isNative()).toEqual(false) + expect(value.toJSON()?.['issuer']).toEqual(tx_json.TakerGets.issuer) } { const [field, value] = readField() - expect(field).toEqual(Field.Fee) - expect(value.isNative()).toEqual(true) + expect(field).toEqual(Field['Fee']) + // @ts-expect-error -- checking private function + expect((value as Amount).isNative()).toEqual(true) } { const [field, value] = readField() - expect(field).toEqual(Field.SigningPubKey) + expect(field).toEqual(Field['SigningPubKey']) expect(value.toJSON()).toEqual(tx_json.SigningPubKey) } { const [field, value] = readField() - expect(field).toEqual(Field.TxnSignature) + expect(field).toEqual(Field['TxnSignature']) expect(value.toJSON()).toEqual(tx_json.TxnSignature) } { const [field, value] = readField() - expect(field).toEqual(Field.Account) + expect(field).toEqual(Field['Account']) expect(value.toJSON()).toEqual(tx_json.Account) } expect(parser.end()).toBe(true) }) - test('can be done with higher level apis', () => { + it('can be done with higher level apis', () => { const parser = makeParser(transaction.binary) const jsonFromBinary = readJSON(parser) expect(jsonFromBinary).toEqual(tx_json) }) - test('readJSON (binary.decode) does not return STObject ', () => { + it('readJSON (binary.decode) does not return STObject ', () => { const parser = makeParser(transaction.binary) const jsonFromBinary = readJSON(parser) expect(jsonFromBinary instanceof coreTypes.STObject).toBe(false) @@ -188,8 +187,20 @@ function transactionParsingTests() { }) } +interface AmountTest { + // eslint-disable-next-line @typescript-eslint/no-explicit-any -- it is json + test_json: any + type_id: number + is_native: boolean + type: string + expected_hex: string + is_negative?: boolean + exponent?: number + error?: string +} + function amountParsingTests() { - fixtures.values_tests + ;(fixtures.values_tests as AmountTest[]) .filter((obj) => obj.type === 'Amount') .forEach((f, i) => { if (f.error) { @@ -201,15 +212,15 @@ function amountParsingTests() { 16, )}... as ${JSON.stringify(f.test_json)}` - test(testName, () => { + it(testName, () => { const value = parser.readType(Amount) // May not actually be in canonical form. The fixtures are to be used // also for json -> binary; const json = toJSON(value) assertEqualAmountJSON(json, f.test_json) if (f.exponent) { - const exponent = new Decimal(json.value) - expect(exponent.e - 15).toEqual(f.exponent) + const exponent = new BigNumber(json.value) + expect((exponent.e ?? 0) - 15).toEqual(f?.exponent) } }) }) @@ -218,30 +229,36 @@ function amountParsingTests() { function fieldParsingTests() { fixtures.fields_tests.forEach((f, i) => { const parser = makeParser(f.expected_hex) - test(`fields[${i}]: parses ${f.expected_hex} as ${f.name}`, () => { + it(`fields[${i}]: parses ${f.expected_hex} as ${f.name}`, () => { const field = parser.readField() expect(field.name).toEqual(f.name) expect(field.type.name).toEqual(f.type_name) }) }) - test('Field throws when type code out of range', () => { + it('Field throws when type code out of range', () => { const parser = makeParser('0101') expect(() => parser.readField()).toThrow( - new Error('Cannot read FieldOrdinal, type_code out of range'), + new Error('Cannot read FieldOrdinal, type_code 1 out of range'), ) }) - test('Field throws when field code out of range', () => { + it('Field throws when field code out of range', () => { const parser = makeParser('1001') - expect(() => parser.readFieldOrdinal()).toThrowError( - new Error('Cannot read FieldOrdinal, field_code out of range'), + expect(() => parser.readFieldOrdinal()).toThrow( + new Error('Cannot read FieldOrdinal, field_code 1 out of range'), ) }) - test('Field throws when both type and field code out of range', () => { + it('Field throws when both type and field code out of range', () => { const parser = makeParser('000101') - expect(() => parser.readFieldOrdinal()).toThrowError( - new Error('Cannot read FieldOrdinal, type_code out of range'), + expect(() => parser.readFieldOrdinal()).toThrow( + new Error('Cannot read FieldOrdinal, type_code 1 out of range'), ) }) + it('readUIntN', () => { + const parser = makeParser('0009') + expect(parser.readUIntN(2)).toEqual(9) + expect(() => parser.readUIntN(-1)).toThrow(new Error('invalid n')) + expect(() => parser.readUIntN(5)).toThrow(new Error('invalid n')) + }) } function assertRecyclable(json, forField) { @@ -256,7 +273,7 @@ function assertRecyclable(json, forField) { function nestedObjectTests() { fixtures.whole_objects.forEach((f, i) => { - test(`whole_objects[${i}]: can parse blob into + it(`whole_objects[${i}]: can parse blob into ${JSON.stringify( f.tx_json, )}`, /* */ () => { @@ -264,7 +281,8 @@ function nestedObjectTests() { let ix = 0 while (!parser.end()) { const [field, value] = parser.readFieldAndValue() - const expected = f.fields[ix] + // eslint-disable-next-line @typescript-eslint/no-explicit-any -- this is a json object + const expected: any = f.fields[ix] const expectedJSON = expected[1].json const expectedField = expected[0] const actual = toJSON(value) @@ -283,7 +301,7 @@ function nestedObjectTests() { } function pathSetBinaryTests() { - const bytes = __( + const bytes = hexOnly( `1200002200000000240000002E2E00004BF161D4C71AFD498D00000000000000 0000000000000055534400000000000A20B3C85F482532A9578DBB3950B85CA0 6594D168400000000000000A69D446F8038585E9400000000000000000000000 @@ -377,7 +395,7 @@ function pathSetBinaryTests() { ], ] - test('works with long paths', () => { + it('works with long paths', () => { const parser = makeParser(bytes) const txn = readJSON(parser) expect(txn.Paths).toEqual(expectedJSON) diff --git a/packages/ripple-binary-codec/test/binary-serializer.test.js b/packages/ripple-binary-codec/test/binary-serializer.test.ts similarity index 75% rename from packages/ripple-binary-codec/test/binary-serializer.test.js rename to packages/ripple-binary-codec/test/binary-serializer.test.ts index 46412fa358..0de6b5487a 100644 --- a/packages/ripple-binary-codec/test/binary-serializer.test.js +++ b/packages/ripple-binary-codec/test/binary-serializer.test.ts @@ -1,13 +1,13 @@ +import { XrplDefinitions } from './../src/enums/xrpl-definitions' +import fixtures from './fixtures/data-driven-tests.json' +import xahauDefinitions from './../src/enums/definitions-xahau.json' + const { binary } = require('../src/coretypes') const { encode, decode } = require('../src') const { makeParser, BytesList, BinarySerializer } = binary const { coreTypes } = require('../src/types') const { UInt8, UInt16, UInt32, UInt64, STObject } = coreTypes -const bigInt = require('big-integer') -const { Buffer } = require('buffer/') -const { loadFixture } = require('./utils') -const fixtures = loadFixture('data-driven-tests.json') const deliverMinTx = require('./fixtures/delivermin-tx.json') const deliverMinTxBinary = require('./fixtures/delivermin-tx-binary.json') const SignerListSet = { @@ -118,20 +118,20 @@ const Remit = { function bytesListTest() { const list = new BytesList() - .put(Buffer.from([0])) - .put(Buffer.from([2, 3])) - .put(Buffer.from([4, 5])) - test('is an Array', function () { + .put(Uint8Array.from([0])) + .put(Uint8Array.from([2, 3])) + .put(Uint8Array.from([4, 5])) + it('is an Array', function () { expect(Array.isArray(list.bytesArray)).toBe(true) - expect(list.bytesArray[0] instanceof Buffer).toBe(true) + expect(list.bytesArray[0] instanceof Uint8Array).toBe(true) }) - test('keeps track of the length itself', function () { + it('keeps track of the length itself', function () { expect(list.getLength()).toBe(5) }) - test('can join all arrays into one via toBytes', function () { + it('can join all arrays into one via toBytes', function () { const joined = list.toBytes() - expect(joined).toHaveLength(5) - expect(joined).toEqual(Buffer.from([0, 2, 3, 4, 5])) + expect(joined.length).toEqual(5) + expect(joined).toEqual(Uint8Array.from([0, 2, 3, 4, 5])) }) } @@ -147,14 +147,14 @@ function assertRecycles(blob) { function nestedObjectTests() { fixtures.whole_objects.forEach((f, i) => { - test(`whole_objects[${i}]: can parse blob and dump out same blob`, () => { + it(`whole_objects[${i}]: can parse blob and dump out same blob`, () => { assertRecycles(f.blob_with_no_signing) }) }) } function check(type, n, expected) { - test(`Uint${type.width * 8} serializes ${n} as ${expected}`, function () { + it(`Uint${type.width * 8} serializes ${n} as ${expected}`, function () { const bl = new BytesList() const serializer = new BinarySerializer(bl) if (expected === 'throws') { @@ -162,10 +162,18 @@ function check(type, n, expected) { return } serializer.writeType(type, n) - expect(bl.toBytes()).toEqual(Buffer.from(expected)) + expect(bl.toBytes()).toEqual(Uint8Array.from(expected)) }) } +it(`Uint16 serializes 5 as 0,5`, function () { + const bl = new BytesList() + const serializer = new BinarySerializer(bl) + const expected = [0, 5] + serializer.writeType(UInt16, 5) + expect(bl.toBytes()).toEqual(Uint8Array.from(expected)) +}) + check(UInt8, 5, [5]) check(UInt16, 5, [0, 5]) check(UInt32, 5, [0, 0, 0, 5]) @@ -177,82 +185,88 @@ check(UInt64, 0xfeffffff, [0, 0, 0, 0, 254, 255, 255, 255]) check(UInt64, -1, 'throws') check(UInt64, 0, [0, 0, 0, 0, 0, 0, 0, 0]) check(UInt64, 1, [0, 0, 0, 0, 0, 0, 0, 1]) -check(UInt64, bigInt(1), [0, 0, 0, 0, 0, 0, 0, 1]) +check(UInt64, BigInt(1), [0, 0, 0, 0, 0, 0, 0, 1]) function deliverMinTest() { - test('can serialize DeliverMin', () => { + it('can serialize DeliverMin', () => { expect(encode(deliverMinTx)).toEqual(deliverMinTxBinary) }) } function SignerListSetTest() { - test('can serialize SignerListSet', () => { + it('can serialize SignerListSet', () => { expect(encode(SignerListSet.tx)).toEqual(SignerListSet.binary) }) - test('can serialize SignerListSet metadata', () => { + it('can serialize SignerListSet metadata', () => { expect(encode(SignerListSet.tx.meta)).toEqual(SignerListSet.meta) }) } function DepositPreauthTest() { - test('can serialize DepositPreauth', () => { + it('can serialize DepositPreauth', () => { expect(encode(DepositPreauth.tx)).toEqual(DepositPreauth.binary) }) - test('can serialize DepositPreauth metadata', () => { + it('can serialize DepositPreauth metadata', () => { expect(encode(DepositPreauth.tx.meta)).toEqual(DepositPreauth.meta) }) } function EscrowTest() { - test('can serialize EscrowCreate', () => { + it('can serialize EscrowCreate', () => { expect(encode(Escrow.create.tx)).toEqual(Escrow.create.binary) }) - test('can serialize EscrowFinish', () => { + it('can serialize EscrowFinish', () => { expect(encode(Escrow.finish.tx)).toEqual(Escrow.finish.binary) expect(encode(Escrow.finish.tx.meta)).toEqual(Escrow.finish.meta) }) - test('can serialize EscrowCancel', () => { + it('can serialize EscrowCancel', () => { expect(encode(Escrow.cancel.tx)).toEqual(Escrow.cancel.binary) }) } function PaymentChannelTest() { - test('can serialize PaymentChannelCreate', () => { + it('can serialize PaymentChannelCreate', () => { expect(encode(PaymentChannel.create.tx)).toEqual( PaymentChannel.create.binary, ) }) - test('can serialize PaymentChannelFund', () => { + it('can serialize PaymentChannelFund', () => { expect(encode(PaymentChannel.fund.tx)).toEqual(PaymentChannel.fund.binary) }) - test('can serialize PaymentChannelClaim', () => { + it('can serialize PaymentChannelClaim', () => { expect(encode(PaymentChannel.claim.tx)).toEqual(PaymentChannel.claim.binary) }) } function NegativeUNLTest() { - test('can serialize NegativeUNL', () => { + it('can serialize NegativeUNL', () => { expect(encode(NegativeUNL.tx)).toEqual(NegativeUNL.binary) }) - test('can deserialize NegativeUNL', () => { + it('can deserialize NegativeUNL', () => { expect(decode(NegativeUNL.binary)).toEqual(NegativeUNL.tx) }) } function UNLReportTest() { test('can serialize UNLReport', () => { - expect(encode(UNLReport.tx)).toEqual(UNLReport.binary) + expect(encode(UNLReport.tx, new XrplDefinitions(xahauDefinitions))).toEqual( + UNLReport.binary, + ) }) test('can serialize UNLReport metadata', () => { - expect(encode(UNLReport.tx.meta)).toEqual(UNLReport.meta) + expect( + encode(UNLReport.tx.meta, new XrplDefinitions(xahauDefinitions)), + ).toEqual(UNLReport.meta) }) test('can deserialize UNLReport metadata', () => { - expect(decode(UNLReport.meta)).toEqual(UNLReport.tx.meta) + expect( + decode(UNLReport.meta, new XrplDefinitions(xahauDefinitions)), + ).toEqual(UNLReport.tx.meta) }) } function omitUndefinedTest() { - test('omits fields with undefined value', () => { + it('omits fields with undefined value', () => { let encodedOmitted = encode(json_omitted) let encodedUndefined = encode(json_undefined) expect(encodedOmitted).toEqual(encodedUndefined) @@ -261,7 +275,7 @@ function omitUndefinedTest() { } function ticketTest() { - test('can serialize TicketCreate', () => { + it('can serialize TicketCreate', () => { expect(encode(Ticket.create.tx)).toEqual(Ticket.create.binary) }) } @@ -270,25 +284,25 @@ function nfTokenTest() { const fixtures = require('./fixtures/nf-token.json') for (const txName of Object.keys(fixtures)) { - test(`can serialize transaction ${txName}`, () => { + it(`can serialize transaction ${txName}`, () => { expect(encode(fixtures[txName].tx.json)).toEqual( fixtures[txName].tx.binary, ) }) - test(`can deserialize transaction ${txName}`, () => { + it(`can deserialize transaction ${txName}`, () => { expect(decode(fixtures[txName].tx.binary)).toEqual( fixtures[txName].tx.json, ) }) - test(`can serialize meta ${txName}`, () => { + it(`can serialize meta ${txName}`, () => { expect(encode(fixtures[txName].meta.json)).toEqual( fixtures[txName].meta.binary, ) }) - test(`can deserialize meta ${txName}`, () => { + it(`can deserialize meta ${txName}`, () => { expect(decode(fixtures[txName].meta.binary)).toEqual( fixtures[txName].meta.json, ) @@ -298,7 +312,9 @@ function nfTokenTest() { function RemitTest() { test('can serialize Remit', () => { - expect(encode(Remit.tx)).toEqual(Remit.binary) + expect(encode(Remit.tx, new XrplDefinitions(xahauDefinitions))).toEqual( + Remit.binary, + ) }) } diff --git a/packages/ripple-binary-codec/test/definitions.test.js b/packages/ripple-binary-codec/test/definitions.test.ts similarity index 56% rename from packages/ripple-binary-codec/test/definitions.test.js rename to packages/ripple-binary-codec/test/definitions.test.ts index 20a790e9f1..091fd2cade 100644 --- a/packages/ripple-binary-codec/test/definitions.test.js +++ b/packages/ripple-binary-codec/test/definitions.test.ts @@ -1,6 +1,6 @@ -const { encode, decode, XrplDefinitions } = require('../src') -const normalDefinitionsJson = require('../src/enums/definitions.json') -const { UInt32 } = require('../dist/types/uint-32') +import { encode, decode, XrplDefinitions } from '../src' +import normalDefinitionsJson from '../src/enums/definitions.json' +import { UInt32 } from '../src/types/uint-32' const txJson = { Account: 'r9LqNeG6qHxjeUocjvVki2XR35weJ9mZgQ', @@ -13,7 +13,7 @@ const txJson = { } describe('encode and decode using new types as a parameter', function () { - test('can encode and decode a new TransactionType', function () { + it('can encode and decode a new TransactionType', function () { const tx = { ...txJson, TransactionType: 'NewTestTransaction' } // Before updating the types, this should not be encodable expect(() => encode(tx)).toThrow() @@ -21,21 +21,21 @@ describe('encode and decode using new types as a parameter', function () { // Normally this would be generated directly from rippled with something like `server_definitions`. // Added here to make it easier to see what is actually changing in the definitions.json file. const definitions = JSON.parse(JSON.stringify(normalDefinitionsJson)) - definitions.TRANSACTION_TYPES['NewTestTransaction'] = 30 + definitions.TRANSACTION_TYPES['NewTestTransaction'] = 75 const newDefs = new XrplDefinitions(definitions) const encoded = encode(tx, newDefs) expect(() => decode(encoded)).toThrow() const decoded = decode(encoded, newDefs) - expect(decoded).toStrictEqual(tx) + expect(decoded).toEqual(tx) }) - test('can encode and decode a new Field', function () { + it('can encode and decode a new Field', function () { const tx = { ...txJson, NewFieldDefinition: 10 } // Before updating the types, undefined fields will be ignored on encode - expect(decode(encode(tx))).not.toStrictEqual(tx) + expect(decode(encode(tx))).not.toEqual(tx) // Normally this would be generated directly from rippled with something like `server_definitions`. // Added here to make it easier to see what is actually changing in the definitions.json file. @@ -57,10 +57,70 @@ describe('encode and decode using new types as a parameter', function () { const encoded = encode(tx, newDefs) expect(() => decode(encoded)).toThrow() const decoded = decode(encoded, newDefs) - expect(decoded).toStrictEqual(tx) + expect(decoded).toEqual(tx) }) - test('can encode and decode a new Type', function () { + it('can encode and decode a new Field nested in STObject in STArray in STObject', function () { + const tx = { + ...txJson, + NewFieldArray: [ + { + NewField: { + NewFieldValue: 10, + }, + }, + ], + } + + // Before updating the types, undefined fields will be ignored on encode + expect(decode(encode(tx))).not.toEqual(tx) + + // Normally this would be generated directly from rippled with something like `server_definitions`. + // Added here to make it easier to see what is actually changing in the definitions.json file. + const definitions = JSON.parse(JSON.stringify(normalDefinitionsJson)) + + definitions.FIELDS.push([ + 'NewFieldArray', + { + nth: 100, + isVLEncoded: false, + isSerialized: true, + isSigningField: true, + type: 'STArray', + }, + ]) + + definitions.FIELDS.push([ + 'NewField', + { + nth: 101, + isVLEncoded: false, + isSerialized: true, + isSigningField: true, + type: 'STObject', + }, + ]) + + definitions.FIELDS.push([ + 'NewFieldValue', + { + nth: 102, + isVLEncoded: false, + isSerialized: true, + isSigningField: true, + type: 'UInt32', + }, + ]) + + const newDefs = new XrplDefinitions(definitions) + + const encoded = encode(tx, newDefs) + expect(() => decode(encoded)).toThrow() + const decoded = decode(encoded, newDefs) + expect(decoded).toEqual(tx) + }) + + it('can encode and decode a new Type', function () { const tx = { ...txJson, TestField: 10, // Should work the same as a UInt32 @@ -69,7 +129,7 @@ describe('encode and decode using new types as a parameter', function () { // Normally this would be generated directly from rippled with something like `server_definitions`. // Added here to make it easier to see what is actually changing in the definitions.json file. const definitions = JSON.parse(JSON.stringify(normalDefinitionsJson)) - definitions.TYPES.NewType = 24 + definitions.TYPES.NewType = 48 definitions.FIELDS.push([ 'TestField', { @@ -82,7 +142,7 @@ describe('encode and decode using new types as a parameter', function () { ]) // Test that before updating the types this tx fails to decode correctly. Note that undefined fields are ignored on encode. - expect(decode(encode(tx))).not.toStrictEqual(tx) + expect(decode(encode(tx))).not.toEqual(tx) class NewType extends UInt32 { // Should be the same as UInt32 @@ -95,6 +155,6 @@ describe('encode and decode using new types as a parameter', function () { const encoded = encode(tx, newDefs) expect(() => decode(encoded)).toThrow() const decoded = decode(encoded, newDefs) - expect(decoded).toStrictEqual(tx) + expect(decoded).toEqual(tx) }) }) diff --git a/packages/ripple-binary-codec/test/fixtures/account-tx-transactions.db b/packages/ripple-binary-codec/test/fixtures/account-tx-transactions.db deleted file mode 100644 index 959dad9464..0000000000 Binary files a/packages/ripple-binary-codec/test/fixtures/account-tx-transactions.db and /dev/null differ diff --git a/packages/ripple-binary-codec/test/fixtures/codec-fixtures.json b/packages/ripple-binary-codec/test/fixtures/codec-fixtures.json index 15aa20f198..636ff0c6dd 100644 --- a/packages/ripple-binary-codec/test/fixtures/codec-fixtures.json +++ b/packages/ripple-binary-codec/test/fixtures/codec-fixtures.json @@ -4435,20 +4435,471 @@ } } ], - "transactions": [{ - "binary": "1200002200000000240000003E6140000002540BE40068400000000000000A7321034AADB09CFF4A4804073701EC53C3510CDC95917C2BB0150FB742D0C66E6CEE9E74473045022022EB32AECEF7C644C891C19F87966DF9C62B1F34BABA6BE774325E4BB8E2DD62022100A51437898C28C2B297112DF8131F2BB39EA5FE613487DDD611525F17962646398114550FC62003E785DC231A1058A05E56E3F09CF4E68314D4CC8AB5B21D86A82C3E9E8D0ECF2404B77FECBA", - "json": { - "Account": "r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV", - "Destination": "rLQBHVhFnaC5gLEkgr6HgBJJ3bgeZHg9cj", - "TransactionType": "Payment", - "TxnSignature": "3045022022EB32AECEF7C644C891C19F87966DF9C62B1F34BABA6BE774325E4BB8E2DD62022100A51437898C28C2B297112DF8131F2BB39EA5FE613487DDD611525F1796264639", - "SigningPubKey": "034AADB09CFF4A4804073701EC53C3510CDC95917C2BB0150FB742D0C66E6CEE9E", - "Amount": "10000000000", - "Fee": "10", - "Flags": 0, - "Sequence": 62 + "transactions": [ + { + "binary": "1200002200000000240000003E6140000002540BE40068400000000000000A7321034AADB09CFF4A4804073701EC53C3510CDC95917C2BB0150FB742D0C66E6CEE9E74473045022022EB32AECEF7C644C891C19F87966DF9C62B1F34BABA6BE774325E4BB8E2DD62022100A51437898C28C2B297112DF8131F2BB39EA5FE613487DDD611525F17962646398114550FC62003E785DC231A1058A05E56E3F09CF4E68314D4CC8AB5B21D86A82C3E9E8D0ECF2404B77FECBA", + "json": { + "Account": "r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV", + "Destination": "rLQBHVhFnaC5gLEkgr6HgBJJ3bgeZHg9cj", + "TransactionType": "Payment", + "TxnSignature": "3045022022EB32AECEF7C644C891C19F87966DF9C62B1F34BABA6BE774325E4BB8E2DD62022100A51437898C28C2B297112DF8131F2BB39EA5FE613487DDD611525F1796264639", + "SigningPubKey": "034AADB09CFF4A4804073701EC53C3510CDC95917C2BB0150FB742D0C66E6CEE9E", + "Amount": "10000000000", + "Fee": "10", + "Flags": 0, + "Sequence": 62 + } + }, + { + "binary": "1200302200000000240000000168400000000000000A601D40000000000003E8601E400000000000271073210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020744630440220101BCA4B5B5A37C6F44480F9A34752C9AA8B2CDF5AD47E3CB424DEDC21C06DB702206EEB257E82A89B1F46A0A2C7F070B0BD181D980FF86FE4269E369F6FC7A270918114B5F762798A53D543A014CAF8B297CFF8F2F937E8011914AF80285F637EE4AF3C20378F9DFB12511ACB8D27000000000000000000000000000000000000000014550FC62003E785DC231A1058A05E56E3F09CF4E60000000000000000000000000000000000000000", + "json": { + "Account": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", + "XChainBridge": { + "LockingChainDoor": "rGzx83BVoqTYbGn7tiVAnFw7cbxjin13jL", + "LockingChainIssue": {"currency": "XAH"}, + "IssuingChainDoor": "r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV", + "IssuingChainIssue": {"currency": "XAH"} + }, + "Fee": "10", + "Flags": 0, + "MinAccountCreateAmount": "10000", + "Sequence": 1, + "SignatureReward": "1000", + "SigningPubKey": "0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020", + "TransactionType": "XChainCreateBridge", + "TxnSignature": "30440220101BCA4B5B5A37C6F44480F9A34752C9AA8B2CDF5AD47E3CB424DEDC21C06DB702206EEB257E82A89B1F46A0A2C7F070B0BD181D980FF86FE4269E369F6FC7A27091" + } + }, + { + "binary": "12002F2200000000240000000168400000000000000A601D40000000000003E8601E400000000000271073210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074473045022100D2CABC1B0E0635A8EE2E6554F6D474C49BC292C995C5C9F83179F4A60634B04C02205D1DB569D9593136F2FBEA7140010C8F46794D653AFDBEA8D30B8750BA4805E58114B5F762798A53D543A014CAF8B297CFF8F2F937E8011914AF80285F637EE4AF3C20378F9DFB12511ACB8D27000000000000000000000000000000000000000014550FC62003E785DC231A1058A05E56E3F09CF4E60000000000000000000000000000000000000000", + "json": { + "Account": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", + "XChainBridge": { + "LockingChainDoor": "rGzx83BVoqTYbGn7tiVAnFw7cbxjin13jL", + "LockingChainIssue": {"currency": "XAH"}, + "IssuingChainDoor": "r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV", + "IssuingChainIssue": {"currency": "XAH"} + }, + "Fee": "10", + "Flags": 0, + "MinAccountCreateAmount": "10000", + "Sequence": 1, + "SignatureReward": "1000", + "SigningPubKey": "0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020", + "TransactionType": "XChainModifyBridge", + "TxnSignature": "3045022100D2CABC1B0E0635A8EE2E6554F6D474C49BC292C995C5C9F83179F4A60634B04C02205D1DB569D9593136F2FBEA7140010C8F46794D653AFDBEA8D30B8750BA4805E5" + } + }, + { + "binary": "1200292280000000240000000168400000000000000A601D400000000000271073210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020744630440220247B20A1B9C48E21A374CB9B3E1FE2A7C528151868DF8D307E9FBE15237E531A02207C20C092DDCC525E583EF4AB7CB91E862A6DED19426997D3F0A2C84E2BE8C5DD8114B5F762798A53D543A014CAF8B297CFF8F2F937E8801214AF80285F637EE4AF3C20378F9DFB12511ACB8D27011914AF80285F637EE4AF3C20378F9DFB12511ACB8D27000000000000000000000000000000000000000014550FC62003E785DC231A1058A05E56E3F09CF4E60000000000000000000000000000000000000000", + "json": { + "Account": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", + "XChainBridge": { + "LockingChainDoor": "rGzx83BVoqTYbGn7tiVAnFw7cbxjin13jL", + "LockingChainIssue": {"currency": "XAH"}, + "IssuingChainDoor": "r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV", + "IssuingChainIssue": {"currency": "XAH"} + }, + "Fee": "10", + "Flags": 2147483648, + "OtherChainSource": "rGzx83BVoqTYbGn7tiVAnFw7cbxjin13jL", + "Sequence": 1, + "SignatureReward": "10000", + "SigningPubKey": "0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020", + "TransactionType": "XChainCreateClaimID", + "TxnSignature": "30440220247B20A1B9C48E21A374CB9B3E1FE2A7C528151868DF8D307E9FBE15237E531A02207C20C092DDCC525E583EF4AB7CB91E862A6DED19426997D3F0A2C84E2BE8C5DD" + } + }, + { + "binary": "12002A228000000024000000013014000000000000000161400000000000271068400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074453043021F177323F0D93612C82A4393A99B23905A7E675753FD80C52997AFAB13F5F9D002203BFFAF457E90BDA65AABE8F8762BD96162FAD98A0C030CCD69B06EE9B12BBFFE8114B5F762798A53D543A014CAF8B297CFF8F2F937E8011914AF80285F637EE4AF3C20378F9DFB12511ACB8D27000000000000000000000000000000000000000014550FC62003E785DC231A1058A05E56E3F09CF4E60000000000000000000000000000000000000000", + "json": { + "Account": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", + "Amount": "10000", + "XChainBridge": { + "LockingChainDoor": "rGzx83BVoqTYbGn7tiVAnFw7cbxjin13jL", + "LockingChainIssue": {"currency": "XAH"}, + "IssuingChainDoor": "r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV", + "IssuingChainIssue": {"currency": "XAH"} + }, + "Fee": "10", + "Flags": 2147483648, + "Sequence": 1, + "SigningPubKey": "0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020", + "TransactionType": "XChainCommit", + "TxnSignature": "3043021F177323F0D93612C82A4393A99B23905A7E675753FD80C52997AFAB13F5F9D002203BFFAF457E90BDA65AABE8F8762BD96162FAD98A0C030CCD69B06EE9B12BBFFE", + "XChainClaimID": "0000000000000001" + } + }, + { + "binary": "12002B228000000024000000013014000000000000000161400000000000271068400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020744630440220445F7469FDA401787D9EE8A9B6E24DFF81E94F4C09FD311D2C0A58FCC02C684A022029E2EF34A5EA35F50D5BB57AC6320AD3AE12C13C8D1379B255A486D72CED142E8114B5F762798A53D543A014CAF8B297CFF8F2F937E88314550FC62003E785DC231A1058A05E56E3F09CF4E6011914AF80285F637EE4AF3C20378F9DFB12511ACB8D27000000000000000000000000000000000000000014550FC62003E785DC231A1058A05E56E3F09CF4E60000000000000000000000000000000000000000", + "json": { + "Account": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", + "Amount": "10000", + "XChainBridge": { + "LockingChainDoor": "rGzx83BVoqTYbGn7tiVAnFw7cbxjin13jL", + "LockingChainIssue": {"currency": "XAH"}, + "IssuingChainDoor": "r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV", + "IssuingChainIssue": {"currency": "XAH"} + }, + "Destination": "r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV", + "Fee": "10", + "Flags": 2147483648, + "Sequence": 1, + "SigningPubKey": "0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020", + "TransactionType": "XChainClaim", + "TxnSignature": "30440220445F7469FDA401787D9EE8A9B6E24DFF81E94F4C09FD311D2C0A58FCC02C684A022029E2EF34A5EA35F50D5BB57AC6320AD3AE12C13C8D1379B255A486D72CED142E", + "XChainClaimID": "0000000000000001" + } + }, + { + "binary": "12002C228000000024000000016140000000000F424068400000000000000A601D400000000000271073210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD0207446304402202984DDE7F0B566F081F7953D7212BF031ACBF8860FE114102E9512C4C8768C77022070113F4630B1DC3045E4A98DDD648CEBC31B12774F7B44A1B8123CD2C9F5CF188114B5F762798A53D543A014CAF8B297CFF8F2F937E88314AF80285F637EE4AF3C20378F9DFB12511ACB8D27011914AF80285F637EE4AF3C20378F9DFB12511ACB8D27000000000000000000000000000000000000000014550FC62003E785DC231A1058A05E56E3F09CF4E60000000000000000000000000000000000000000", + "json": { + "Account": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", + "XChainBridge": { + "LockingChainDoor": "rGzx83BVoqTYbGn7tiVAnFw7cbxjin13jL", + "LockingChainIssue": {"currency": "XAH"}, + "IssuingChainDoor": "r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV", + "IssuingChainIssue": {"currency": "XAH"} + }, + "Amount": "1000000", + "Fee": "10", + "Flags": 2147483648, + "Destination": "rGzx83BVoqTYbGn7tiVAnFw7cbxjin13jL", + "Sequence": 1, + "SignatureReward": "10000", + "SigningPubKey": "0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020", + "TransactionType": "XChainAccountCreateCommit", + "TxnSignature": "304402202984DDE7F0B566F081F7953D7212BF031ACBF8860FE114102E9512C4C8768C77022070113F4630B1DC3045E4A98DDD648CEBC31B12774F7B44A1B8123CD2C9F5CF18" + } + }, + { + "binary": "12002E2400000005201B0000000D30150000000000000006614000000000989680684000000000000014601D40000000000000647121ED1F4A024ACFEBDB6C7AA88DEDE3364E060487EA31B14CC9E0D610D152B31AADC27321EDF54108BA2E0A0D3DC2AE3897F8BE0EFE776AE8D0F9FB0D0B9D64233084A8DDD1744003E74AEF1F585F156786429D2FC87A89E5C6B5A56D68BFC9A6A329F3AC67CBF2B6958283C663A4522278CA162C69B23CF75149AF022B410EA0508C16F42058007640EEFCFA3DC2AB4AB7C4D2EBBC168CB621A11B82BABD86534DFC8EFA72439A49662D744073CD848E7A587A95B35162CDF9A69BB237E72C9537A987F5B8C394F30D81145E7A3E3D7200A794FA801C66CE3775B6416EE4128314C15F113E49BCC4B9FFF43CD0366C23ACD82F75638012143FD9ED9A79DEA67CB5D585111FEF0A29203FA0408014145E7A3E3D7200A794FA801C66CE3775B6416EE4128015145E7A3E3D7200A794FA801C66CE3775B6416EE4120010130101191486F0B1126CE1205E59FDFDD2661A9FB7505CA70F000000000000000000000000000000000000000014B5F762798A53D543A014CAF8B297CFF8F2F937E80000000000000000000000000000000000000000", + "json": { + "Account": "r9cYxdjQsoXAEz3qQJc961SNLaXRkWXCvT", + "Amount": "10000000", + "AttestationRewardAccount": "r9cYxdjQsoXAEz3qQJc961SNLaXRkWXCvT", + "AttestationSignerAccount": "r9cYxdjQsoXAEz3qQJc961SNLaXRkWXCvT", + "Destination": "rJdTJRJZ6GXCCRaamHJgEqVzB7Zy4557Pi", + "Fee": "20", + "LastLedgerSequence": 13, + "OtherChainSource": "raFcdz1g8LWJDJWJE2ZKLRGdmUmsTyxaym", + "PublicKey": "ED1F4A024ACFEBDB6C7AA88DEDE3364E060487EA31B14CC9E0D610D152B31AADC2", + "Sequence": 5, + "Signature": "EEFCFA3DC2AB4AB7C4D2EBBC168CB621A11B82BABD86534DFC8EFA72439A49662D744073CD848E7A587A95B35162CDF9A69BB237E72C9537A987F5B8C394F30D", + "SignatureReward": "100", + "SigningPubKey": "EDF54108BA2E0A0D3DC2AE3897F8BE0EFE776AE8D0F9FB0D0B9D64233084A8DDD1", + "TransactionType": "XChainAddAccountCreateAttestation", + "TxnSignature": "03E74AEF1F585F156786429D2FC87A89E5C6B5A56D68BFC9A6A329F3AC67CBF2B6958283C663A4522278CA162C69B23CF75149AF022B410EA0508C16F4205800", + "WasLockingChainSend": 1, + "XChainAccountCreateCount": "0000000000000006", + "XChainBridge": { + "IssuingChainDoor": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", + "IssuingChainIssue": { + "currency": "XAH" + }, + "LockingChainDoor": "rDJVtEuDKr4rj1B3qtW7R5TVWdXV2DY7Qg", + "LockingChainIssue": { + "currency": "XAH" + } + } + } + }, + { + "binary": "12002D2400000009201B00000013301400000000000000016140000000009896806840000000000000147121ED7541DEC700470F54276C90C333A13CDBB5D341FD43C60CEA12170F6D6D4E11367321ED0406B134786FE0751717226657F7BF8AFE96442C05D28ACEC66FB64852BA604C7440D0423649E48A44F181262CF5FC08A68E7FA5CD9E55843E4F09014B76E602574741E8553383A4B43CABD194BB96713647FC0B885BE248E4FFA068FA3E6994CF0476407C175050B08000AD35EEB2D87E16CD3F95A0AEEBF2A049474275153D9D4DD44528FE99AA50E71660A15B0B768E1B90E609BBD5DC7AFAFD45D9705D72D40EA10C81141F30A4D728AB98B0950EC3B9815E6C8D43A7D5598314C15F113E49BCC4B9FFF43CD0366C23ACD82F75638012143FD9ED9A79DEA67CB5D585111FEF0A29203FA0408014141F30A4D728AB98B0950EC3B9815E6C8D43A7D5598015141F30A4D728AB98B0950EC3B9815E6C8D43A7D5590010130101191486F0B1126CE1205E59FDFDD2661A9FB7505CA70F000000000000000000000000000000000000000014B5F762798A53D543A014CAF8B297CFF8F2F937E80000000000000000000000000000000000000000", + "json": { + "Account": "rsqvD8WFFEBBv4nztpoW9YYXJ7eRzLrtc3", + "Amount": "10000000", + "AttestationRewardAccount": "rsqvD8WFFEBBv4nztpoW9YYXJ7eRzLrtc3", + "AttestationSignerAccount": "rsqvD8WFFEBBv4nztpoW9YYXJ7eRzLrtc3", + "Destination": "rJdTJRJZ6GXCCRaamHJgEqVzB7Zy4557Pi", + "Fee": "20", + "LastLedgerSequence": 19, + "OtherChainSource": "raFcdz1g8LWJDJWJE2ZKLRGdmUmsTyxaym", + "PublicKey": "ED7541DEC700470F54276C90C333A13CDBB5D341FD43C60CEA12170F6D6D4E1136", + "Sequence": 9, + "Signature": "7C175050B08000AD35EEB2D87E16CD3F95A0AEEBF2A049474275153D9D4DD44528FE99AA50E71660A15B0B768E1B90E609BBD5DC7AFAFD45D9705D72D40EA10C", + "SigningPubKey": "ED0406B134786FE0751717226657F7BF8AFE96442C05D28ACEC66FB64852BA604C", + "TransactionType": "XChainAddClaimAttestation", + "TxnSignature": "D0423649E48A44F181262CF5FC08A68E7FA5CD9E55843E4F09014B76E602574741E8553383A4B43CABD194BB96713647FC0B885BE248E4FFA068FA3E6994CF04", + "WasLockingChainSend": 1, + "XChainBridge": { + "IssuingChainDoor": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", + "IssuingChainIssue": { + "currency": "XAH" + }, + "LockingChainDoor": "rDJVtEuDKr4rj1B3qtW7R5TVWdXV2DY7Qg", + "LockingChainIssue": { + "currency": "XAH" + } + }, + "XChainClaimID": "0000000000000001" + } + }, + { + "binary": "12002315000A2200000000240015DAE161400000000000271068400000000000000A6BD5838D7EA4C680000000000000000000000000004554480000000000FBEF9A3A2B814E807745FA3D9C32FFD155FA2E8C7321ED7453D2572A2104E7B266A45888C53F503CEB1F11DC4BB3710EB2995238EC65B87440B3154D968314FCEB58001E1B0C3A4CFB33DF9FF6C73207E5EAEB9BD07E2747672168E1A2786D950495C38BD8DEE3391BF45F3008DD36F4B12E7C07D82CA5250E8114F92F27CC5EE2F2760278FE096D0CBE32BDD3653A", + "json": { + "Account": "rP5ZkB5RZQaECsSVR4DeSFK4fAw52BYtbw", + "TransactionType": "AMMCreate", + "TxnSignature": "B3154D968314FCEB58001E1B0C3A4CFB33DF9FF6C73207E5EAEB9BD07E2747672168E1A2786D950495C38BD8DEE3391BF45F3008DD36F4B12E7C07D82CA5250E", + "Amount": "10000", + "Amount2": { + "currency": "ETH", + "issuer": "rPyfep3gcLzkosKC9XiE77Y8DZWG6iWDT9", + "value": "10000" + }, + "TradingFee": 10, + "Fee": "10", + "Flags": 0, + "Sequence": 1432289, + "SigningPubKey": "ED7453D2572A2104E7B266A45888C53F503CEB1F11DC4BB3710EB2995238EC65B8" + } + }, + { + "binary": "1200242200010000240015DAE168400000000000000A6019D5438D7EA4C68000B3813FCAB4EE68B3D0D735D6849465A9113EE048B3813FCAB4EE68B3D0D735D6849465A9113EE0487321ED7453D2572A2104E7B266A45888C53F503CEB1F11DC4BB3710EB2995238EC65B874408073C588E7EF672DD171E414638D9AF8DBE9A1359E030DE3E1C9AA6A38A2CE9E138CB56482BB844F7228D48B1E4AD7D09BB7E9F639C115958EEEA374749CA00B8114F92F27CC5EE2F2760278FE096D0CBE32BDD3653A0318000000000000000000000000000000000000000004180000000000000000000000004554480000000000FBEF9A3A2B814E807745FA3D9C32FFD155FA2E8C", + "json": { + "Account": "rP5ZkB5RZQaECsSVR4DeSFK4fAw52BYtbw", + "TransactionType": "AMMDeposit", + "TxnSignature": "8073C588E7EF672DD171E414638D9AF8DBE9A1359E030DE3E1C9AA6A38A2CE9E138CB56482BB844F7228D48B1E4AD7D09BB7E9F639C115958EEEA374749CA00B", + "Asset": {"currency": "XAH"}, + "Asset2": {"currency": "ETH", "issuer": "rPyfep3gcLzkosKC9XiE77Y8DZWG6iWDT9"}, + "LPTokenOut": {"currency": "B3813FCAB4EE68B3D0D735D6849465A9113EE048", "issuer": "rH438jEAzTs5PYtV6CHZqpDpwCKQmPW9Cg", "value": "1000"}, + "Fee": "10", + "Flags": 65536, + "Sequence": 1432289, + "SigningPubKey": "ED7453D2572A2104E7B266A45888C53F503CEB1F11DC4BB3710EB2995238EC65B8" + } + }, + { + "binary": "1200242200080000240015DAE16140000000000003E868400000000000000A7321ED7453D2572A2104E7B266A45888C53F503CEB1F11DC4BB3710EB2995238EC65B8744096CA066F42871C55088D2758D64148921B1ACAA5C6C648D0F7D675BBF47F87DF711F17C5BD172666D5AEC257520C587A849A6E063345609D91E121A78816EB048114F92F27CC5EE2F2760278FE096D0CBE32BDD3653A0318000000000000000000000000000000000000000004180000000000000000000000004554480000000000FBEF9A3A2B814E807745FA3D9C32FFD155FA2E8C", + "json": { + "Account": "rP5ZkB5RZQaECsSVR4DeSFK4fAw52BYtbw", + "TransactionType": "AMMDeposit", + "Asset": {"currency": "XAH"}, + "Asset2": {"currency": "ETH", "issuer": "rPyfep3gcLzkosKC9XiE77Y8DZWG6iWDT9"}, + "Amount": "1000", + "Fee": "10", + "Flags": 524288, + "Sequence": 1432289, + "SigningPubKey": "ED7453D2572A2104E7B266A45888C53F503CEB1F11DC4BB3710EB2995238EC65B8", + "TxnSignature": "96CA066F42871C55088D2758D64148921B1ACAA5C6C648D0F7D675BBF47F87DF711F17C5BD172666D5AEC257520C587A849A6E063345609D91E121A78816EB04" + } + }, + { + "binary": "1200242200100000240015DAE16140000000000003E868400000000000000A6BD511C37937E080000000000000000000000000004554480000000000FBEF9A3A2B814E807745FA3D9C32FFD155FA2E8C7321ED7453D2572A2104E7B266A45888C53F503CEB1F11DC4BB3710EB2995238EC65B87440FC22B16A098C236ED7EDB3EBC983026DFD218A03C8BAA848F3E1D5389D5B8B00473C1178C5BA257BFA2DCD433C414690A430A5CFD71C1C0A7F7BF725EC1759018114F92F27CC5EE2F2760278FE096D0CBE32BDD3653A0318000000000000000000000000000000000000000004180000000000000000000000004554480000000000FBEF9A3A2B814E807745FA3D9C32FFD155FA2E8C", + "json": { + "Account": "rP5ZkB5RZQaECsSVR4DeSFK4fAw52BYtbw", + "TransactionType": "AMMDeposit", + "Asset": {"currency": "XAH"}, + "Asset2": {"currency": "ETH", "issuer": "rPyfep3gcLzkosKC9XiE77Y8DZWG6iWDT9"}, + "Amount": "1000", + "Amount2": {"currency": "ETH", "issuer": "rPyfep3gcLzkosKC9XiE77Y8DZWG6iWDT9", "value": "500"}, + "Fee": "10", + "Flags": 1048576, + "Sequence": 1432289, + "SigningPubKey": "ED7453D2572A2104E7B266A45888C53F503CEB1F11DC4BB3710EB2995238EC65B8", + "TxnSignature": "FC22B16A098C236ED7EDB3EBC983026DFD218A03C8BAA848F3E1D5389D5B8B00473C1178C5BA257BFA2DCD433C414690A430A5CFD71C1C0A7F7BF725EC175901" + } + }, + { + "binary": "1200242200200000240015DAE16140000000000003E868400000000000000A6019D5438D7EA4C68000B3813FCAB4EE68B3D0D735D6849465A9113EE048B3813FCAB4EE68B3D0D735D6849465A9113EE0487321ED7453D2572A2104E7B266A45888C53F503CEB1F11DC4BB3710EB2995238EC65B87440117CF90F9B113AD3BD638B6DB63562B37C287D5180F278B3CCF58FC14A5BAEE98307EA0F6DFE19E2FBA887C92955BA5D1A04F92ADAAEB309DE89C3610D074C098114F92F27CC5EE2F2760278FE096D0CBE32BDD3653A0318000000000000000000000000000000000000000004180000000000000000000000004554480000000000FBEF9A3A2B814E807745FA3D9C32FFD155FA2E8C", + "json": { + "Account": "rP5ZkB5RZQaECsSVR4DeSFK4fAw52BYtbw", + "TransactionType": "AMMDeposit", + "Asset": {"currency": "XAH"}, + "Asset2": {"currency": "ETH", "issuer": "rPyfep3gcLzkosKC9XiE77Y8DZWG6iWDT9"}, + "Amount": "1000", + "LPTokenOut": {"currency": "B3813FCAB4EE68B3D0D735D6849465A9113EE048", "issuer": "rH438jEAzTs5PYtV6CHZqpDpwCKQmPW9Cg", "value": "1000"}, + "Fee": "10", + "Flags": 2097152, + "Sequence": 1432289, + "SigningPubKey": "ED7453D2572A2104E7B266A45888C53F503CEB1F11DC4BB3710EB2995238EC65B8", + "TxnSignature": "117CF90F9B113AD3BD638B6DB63562B37C287D5180F278B3CCF58FC14A5BAEE98307EA0F6DFE19E2FBA887C92955BA5D1A04F92ADAAEB309DE89C3610D074C09" + } + }, + { + "binary": "1200242200400000240015DAE16140000000000003E868400000000000000A601B40000000000000197321ED7453D2572A2104E7B266A45888C53F503CEB1F11DC4BB3710EB2995238EC65B874405E51EBC6B52A7C3BA5D0AE2FC8F62E779B80182009B3108A87AB6D770D68F56053C193DB0640128E4765565970625B1E2878E116AC854E6DED412202CCDE0B0D8114F92F27CC5EE2F2760278FE096D0CBE32BDD3653A0318000000000000000000000000000000000000000004180000000000000000000000004554480000000000FBEF9A3A2B814E807745FA3D9C32FFD155FA2E8C", + "json": { + "Account": "rP5ZkB5RZQaECsSVR4DeSFK4fAw52BYtbw", + "TransactionType": "AMMDeposit", + "Asset": {"currency": "XAH"}, + "Asset2": {"currency": "ETH", "issuer": "rPyfep3gcLzkosKC9XiE77Y8DZWG6iWDT9"}, + "Amount": "1000", + "EPrice": "25", + "Fee": "10", + "Flags": 4194304, + "Sequence": 1432289, + "SigningPubKey": "ED7453D2572A2104E7B266A45888C53F503CEB1F11DC4BB3710EB2995238EC65B8", + "TxnSignature": "5E51EBC6B52A7C3BA5D0AE2FC8F62E779B80182009B3108A87AB6D770D68F56053C193DB0640128E4765565970625B1E2878E116AC854E6DED412202CCDE0B0D" + } + }, + { + "binary": "1200252200010000240015DAE168400000000000000A601AD5438D7EA4C68000B3813FCAB4EE68B3D0D735D6849465A9113EE048B3813FCAB4EE68B3D0D735D6849465A9113EE0487321ED7453D2572A2104E7B266A45888C53F503CEB1F11DC4BB3710EB2995238EC65B874409D4F41FC452526C0AD17191959D9B6D04A3C73B3A6C29E0F34C8459675A83A7A7D6E3021390EC8C9BE6C93E11C167E12016465E523F64F9EB3194B0A52E418028114F92F27CC5EE2F2760278FE096D0CBE32BDD3653A0318000000000000000000000000000000000000000004180000000000000000000000004554480000000000FBEF9A3A2B814E807745FA3D9C32FFD155FA2E8C", + "json": { + "Account": "rP5ZkB5RZQaECsSVR4DeSFK4fAw52BYtbw", + "TransactionType": "AMMWithdraw", + "Asset": {"currency": "XAH"}, + "Asset2": {"currency": "ETH", "issuer": "rPyfep3gcLzkosKC9XiE77Y8DZWG6iWDT9"}, + "LPTokenIn": {"currency": "B3813FCAB4EE68B3D0D735D6849465A9113EE048", "issuer": "rH438jEAzTs5PYtV6CHZqpDpwCKQmPW9Cg", "value": "1000"}, + "Fee": "10", + "Flags": 65536, + "Sequence": 1432289, + "SigningPubKey": "ED7453D2572A2104E7B266A45888C53F503CEB1F11DC4BB3710EB2995238EC65B8", + "TxnSignature": "9D4F41FC452526C0AD17191959D9B6D04A3C73B3A6C29E0F34C8459675A83A7A7D6E3021390EC8C9BE6C93E11C167E12016465E523F64F9EB3194B0A52E41802" + } + }, + { + "binary": "1200252200080000240015DAE16140000000000003E868400000000000000A7321ED7453D2572A2104E7B266A45888C53F503CEB1F11DC4BB3710EB2995238EC65B87440E2C60D56C337D6D73E4B7D53579C93C666605494E82A89DD58CFDE79E2A4866BCF52370A2146877A2EF748E98168373710001133A51B645D89491849079035018114F92F27CC5EE2F2760278FE096D0CBE32BDD3653A0318000000000000000000000000000000000000000004180000000000000000000000004554480000000000FBEF9A3A2B814E807745FA3D9C32FFD155FA2E8C", + "json": { + "Account": "rP5ZkB5RZQaECsSVR4DeSFK4fAw52BYtbw", + "TransactionType": "AMMWithdraw", + "Asset": {"currency": "XAH"}, + "Asset2": {"currency": "ETH", "issuer": "rPyfep3gcLzkosKC9XiE77Y8DZWG6iWDT9"}, + "Amount": "1000", + "Fee": "10", + "Flags": 524288, + "Sequence": 1432289, + "SigningPubKey": "ED7453D2572A2104E7B266A45888C53F503CEB1F11DC4BB3710EB2995238EC65B8", + "TxnSignature": "E2C60D56C337D6D73E4B7D53579C93C666605494E82A89DD58CFDE79E2A4866BCF52370A2146877A2EF748E98168373710001133A51B645D8949184907903501" + } + }, + { + "binary": "1200252200100000240015DAE16140000000000003E868400000000000000A6BD511C37937E080000000000000000000000000004554480000000000FBEF9A3A2B814E807745FA3D9C32FFD155FA2E8C7321ED7453D2572A2104E7B266A45888C53F503CEB1F11DC4BB3710EB2995238EC65B87440D2FCD7D03E53358BC6188BA88A7BA4FF2519B639C3B5C0EBCBDCB704426CA2837111430E92A6003D1CD0D81C63682C74839320539EC4F89B82AA5607714952028114F92F27CC5EE2F2760278FE096D0CBE32BDD3653A0318000000000000000000000000000000000000000004180000000000000000000000004554480000000000FBEF9A3A2B814E807745FA3D9C32FFD155FA2E8C", + "json": { + "Account": "rP5ZkB5RZQaECsSVR4DeSFK4fAw52BYtbw", + "TransactionType": "AMMWithdraw", + "Asset": {"currency": "XAH"}, + "Asset2": {"currency": "ETH", "issuer": "rPyfep3gcLzkosKC9XiE77Y8DZWG6iWDT9"}, + "Amount": "1000", + "Amount2": {"currency": "ETH", "issuer": "rPyfep3gcLzkosKC9XiE77Y8DZWG6iWDT9", "value": "500"}, + "Fee": "10", + "Flags": 1048576, + "Sequence": 1432289, + "SigningPubKey": "ED7453D2572A2104E7B266A45888C53F503CEB1F11DC4BB3710EB2995238EC65B8", + "TxnSignature": "D2FCD7D03E53358BC6188BA88A7BA4FF2519B639C3B5C0EBCBDCB704426CA2837111430E92A6003D1CD0D81C63682C74839320539EC4F89B82AA560771495202" + } + }, + { + "binary": "1200252200200000240015DAE16140000000000003E868400000000000000A601AD5438D7EA4C68000B3813FCAB4EE68B3D0D735D6849465A9113EE048B3813FCAB4EE68B3D0D735D6849465A9113EE0487321ED7453D2572A2104E7B266A45888C53F503CEB1F11DC4BB3710EB2995238EC65B8744042DA5620E924E2D2059BBB4E0C4F03244140ACED93B543136FEEDF802165F814D09F45C7E2A4618468442516F4712A23B1D3332D5DBDBAE830337F39F259C90F8114F92F27CC5EE2F2760278FE096D0CBE32BDD3653A0318000000000000000000000000000000000000000004180000000000000000000000004554480000000000FBEF9A3A2B814E807745FA3D9C32FFD155FA2E8C", + "json": { + "Account": "rP5ZkB5RZQaECsSVR4DeSFK4fAw52BYtbw", + "TransactionType": "AMMWithdraw", + "Asset": {"currency": "XAH"}, + "Asset2": {"currency": "ETH", "issuer": "rPyfep3gcLzkosKC9XiE77Y8DZWG6iWDT9"}, + "Amount": "1000", + "LPTokenIn": {"currency": "B3813FCAB4EE68B3D0D735D6849465A9113EE048", "issuer": "rH438jEAzTs5PYtV6CHZqpDpwCKQmPW9Cg", "value": "1000"}, + "Fee": "10", + "Flags": 2097152, + "Sequence": 1432289, + "SigningPubKey": "ED7453D2572A2104E7B266A45888C53F503CEB1F11DC4BB3710EB2995238EC65B8", + "TxnSignature": "42DA5620E924E2D2059BBB4E0C4F03244140ACED93B543136FEEDF802165F814D09F45C7E2A4618468442516F4712A23B1D3332D5DBDBAE830337F39F259C90F" + } + }, + { + "binary": "1200252200400000240015DAE16140000000000003E868400000000000000A601B40000000000000197321ED7453D2572A2104E7B266A45888C53F503CEB1F11DC4BB3710EB2995238EC65B8744045BCEE5A12E5F5F1FB085A24F2F7FD962BBCB0D89A44A5319E3F7E3799E1870341880B6F684132971DDDF2E6B15356B3F407962D6D4E8DE10989F3B16E3CB90D8114F92F27CC5EE2F2760278FE096D0CBE32BDD3653A0318000000000000000000000000000000000000000004180000000000000000000000004554480000000000FBEF9A3A2B814E807745FA3D9C32FFD155FA2E8C", + "json": { + "Account": "rP5ZkB5RZQaECsSVR4DeSFK4fAw52BYtbw", + "TransactionType": "AMMWithdraw", + "Asset": {"currency": "XAH"}, + "Asset2": {"currency": "ETH", "issuer": "rPyfep3gcLzkosKC9XiE77Y8DZWG6iWDT9"}, + "Amount": "1000", + "EPrice": "25", + "Fee": "10", + "Flags": 4194304, + "Sequence": 1432289, + "SigningPubKey": "ED7453D2572A2104E7B266A45888C53F503CEB1F11DC4BB3710EB2995238EC65B8", + "TxnSignature": "45BCEE5A12E5F5F1FB085A24F2F7FD962BBCB0D89A44A5319E3F7E3799E1870341880B6F684132971DDDF2E6B15356B3F407962D6D4E8DE10989F3B16E3CB90D" + } + }, + { + "binary": "1200272200000000240015DAE168400000000000000A6CD4C8E1BC9BF04000B3813FCAB4EE68B3D0D735D6849465A9113EE048B3813FCAB4EE68B3D0D735D6849465A9113EE0486DD4CC6F3B40B6C000B3813FCAB4EE68B3D0D735D6849465A9113EE048B3813FCAB4EE68B3D0D735D6849465A9113EE0487321ED7453D2572A2104E7B266A45888C53F503CEB1F11DC4BB3710EB2995238EC65B87440F8EAAFB5EC1A69275167589969F0B9764BACE6BC8CC81482C2FC5ACCE691EDBD0D88D141137B1253BB1B9AC90A8A52CB37F5B6F7E1028B06DD06F91BE06F5A0F8114F92F27CC5EE2F2760278FE096D0CBE32BDD3653AF019E01B81149A91957F8F16BC57F3F200CD8C98375BF1791586E1F10318000000000000000000000000000000000000000004180000000000000000000000004554480000000000FBEF9A3A2B814E807745FA3D9C32FFD155FA2E8C", + "json": { + "Account": "rP5ZkB5RZQaECsSVR4DeSFK4fAw52BYtbw", + "TransactionType": "AMMBid", + "Asset": {"currency": "XAH"}, + "Asset2": {"currency": "ETH", "issuer": "rPyfep3gcLzkosKC9XiE77Y8DZWG6iWDT9"}, + "AuthAccounts": [{"AuthAccount": {"Account": "rEaHTti4HZsMBpxTAF4ncWxkcdqDh1h6P7"}}], + "BidMax": {"currency": "B3813FCAB4EE68B3D0D735D6849465A9113EE048", "issuer": "rH438jEAzTs5PYtV6CHZqpDpwCKQmPW9Cg", "value": "35"}, + "BidMin": {"currency": "B3813FCAB4EE68B3D0D735D6849465A9113EE048", "issuer": "rH438jEAzTs5PYtV6CHZqpDpwCKQmPW9Cg", "value": "25"}, + "Fee": "10", + "Flags": 0, + "Sequence": 1432289, + "SigningPubKey": "ED7453D2572A2104E7B266A45888C53F503CEB1F11DC4BB3710EB2995238EC65B8", + "TxnSignature": "F8EAAFB5EC1A69275167589969F0B9764BACE6BC8CC81482C2FC5ACCE691EDBD0D88D141137B1253BB1B9AC90A8A52CB37F5B6F7E1028B06DD06F91BE06F5A0F" + } + }, + { + "binary": "1200261500EA2200000000240015DAE168400000000000000A7321ED7453D2572A2104E7B266A45888C53F503CEB1F11DC4BB3710EB2995238EC65B87440BC2F6E76969E3747E9BDE183C97573B086212F09D5387460E6EE2F32953E85EAEB9618FBBEF077276E30E59D619FCF7C7BDCDDDD9EB94D7CE1DD5CE9246B21078114F92F27CC5EE2F2760278FE096D0CBE32BDD3653A0318000000000000000000000000000000000000000004180000000000000000000000004554480000000000FBEF9A3A2B814E807745FA3D9C32FFD155FA2E8C", + "json": { + "Account": "rP5ZkB5RZQaECsSVR4DeSFK4fAw52BYtbw", + "TransactionType": "AMMVote", + "Asset": {"currency": "XAH"}, + "Asset2": {"currency": "ETH", "issuer": "rPyfep3gcLzkosKC9XiE77Y8DZWG6iWDT9"}, + "TradingFee": 234, + "Fee": "10", + "Flags": 0, + "Sequence": 1432289, + "SigningPubKey": "ED7453D2572A2104E7B266A45888C53F503CEB1F11DC4BB3710EB2995238EC65B8", + "TxnSignature": "BC2F6E76969E3747E9BDE183C97573B086212F09D5387460E6EE2F32953E85EAEB9618FBBEF077276E30E59D619FCF7C7BDCDDDD9EB94D7CE1DD5CE9246B2107" + } + }, + { + "binary": "1200322280000000240000000468400000000000000A7321ED9861C4CB029C0DA737B823D7D3459A70F227958D5C0C111CC7CF947FC5A93347744071E28B12465A1B47162C22E121DF61089DCD9AAF5773704B76179E771666886C8AAD5A33A87E34CC381A7D924E3FE3645F0BF98D565DE42C81E1A7A7E7981802811401476926B590BA3245F63C829116A0A3AF7F382D", + "json": { + "Account": "rfmDuhDyLGgx94qiwf3YF8BUV5j6KSvE8", + "Fee": "10", + "Flags": 2147483648, + "Sequence": 4, + "SigningPubKey": "ED9861C4CB029C0DA737B823D7D3459A70F227958D5C0C111CC7CF947FC5A93347", + "TransactionType": "DIDDelete", + "TxnSignature": "71E28B12465A1B47162C22E121DF61089DCD9AAF5773704B76179E771666886C8AAD5A33A87E34CC381A7D924E3FE3645F0BF98D565DE42C81E1A7A7E7981802" + } + }, + { + "binary": "1200312280000000240000000368400000000000000A7321ED9861C4CB029C0DA737B823D7D3459A70F227958D5C0C111CC7CF947FC5A933477440AACD31A04CAE14670FC483A1382F393AA96B49C84479B58067F049FBD772999325667A6AA2520A63756EE84F3657298815019DD56A1AECE796B08535C4009C08750B6469645F6578616D706C65701A03646F63701B06617474657374811401476926B590BA3245F63C829116A0A3AF7F382D", + "json": { + "Account": "rfmDuhDyLGgx94qiwf3YF8BUV5j6KSvE8", + "Data": "617474657374", + "DIDDocument": "646F63", + "Fee": "10", + "Flags": 2147483648, + "Sequence": 3, + "SigningPubKey": "ED9861C4CB029C0DA737B823D7D3459A70F227958D5C0C111CC7CF947FC5A93347", + "TransactionType": "DIDSet", + "TxnSignature": "AACD31A04CAE14670FC483A1382F393AA96B49C84479B58067F049FBD772999325667A6AA2520A63756EE84F3657298815019DD56A1AECE796B08535C4009C08", + "URI": "6469645F6578616D706C65" + } + }, + { + "binary": "1200332FFFFFFFFF2033000004D2750B6469645F6578616D706C65701C0863757272656E6379701D0870726F7669646572811401476926B590BA3245F63C829116A0A3AF7F382DF018E020301700000000000001E2041003011A0000000000000000000000000000000000000000021A0000000000000000000000005553440000000000E1F1", + "json": { + "TransactionType": "OracleSet", + "Account": "rfmDuhDyLGgx94qiwf3YF8BUV5j6KSvE8", + "OracleDocumentID": 1234, + "LastUpdateTime": 4294967295, + "PriceDataSeries": [ + { + "PriceData": { + "BaseAsset": "XAH", + "QuoteAsset": "USD", + "AssetPrice": "00000000000001E2", + "Scale": 3 + } + } + ], + "Provider": "70726F7669646572", + "URI": "6469645F6578616D706C65", + "AssetClass": "63757272656E6379" + } + }, + { + "binary": "1200342033000004D2811401476926B590BA3245F63C829116A0A3AF7F382D", + "json": { + "TransactionType": "OracleDelete", + "Account": "rfmDuhDyLGgx94qiwf3YF8BUV5j6KSvE8", + "OracleDocumentID": 1234 + } } - }], + ], "ledgerData": [{ "binary": "01E91435016340767BF1C4A3EACEB081770D8ADE216C85445DD6FB002C6B5A2930F2DECE006DA18150CB18F6DD33F6F0990754C962A7CCE62F332FF9C13939B03B864117F0BDA86B6E9B4F873B5C3E520634D343EF5D9D9A4246643D64DAD278BA95DC0EAC6EB5350CF970D521276CDE21276CE60A00", "json": { @@ -4463,4 +4914,4 @@ "transaction_hash": "DD33F6F0990754C962A7CCE62F332FF9C13939B03B864117F0BDA86B6E9B4F87" } }] -} \ No newline at end of file +} diff --git a/packages/ripple-binary-codec/test/hash.test.js b/packages/ripple-binary-codec/test/hash.test.ts similarity index 64% rename from packages/ripple-binary-codec/test/hash.test.js rename to packages/ripple-binary-codec/test/hash.test.ts index 3822417205..f752fc0cbf 100644 --- a/packages/ripple-binary-codec/test/hash.test.js +++ b/packages/ripple-binary-codec/test/hash.test.ts @@ -1,16 +1,14 @@ -const { coreTypes } = require('../src/types') -const { Hash128, Hash160, Hash256, AccountID, Currency } = coreTypes -const { Buffer } = require('buffer/') +import { Hash128, Hash160, Hash256, AccountID, Currency } from '../src/types' describe('Hash128', function () { - test('has a static width member', function () { + it('has a static width member', function () { expect(Hash128.width).toBe(16) }) - test('can be unset', function () { + it('can be unset', function () { const h1 = Hash128.from('') expect(h1.toJSON()).toBe('') }) - test('can be compared against another', function () { + it('can be compared against another', function () { const h1 = Hash128.from('100000000000000000000000000000000') const h2 = Hash128.from('200000000000000000000000000000000') const h3 = Hash128.from('000000000000000000000000000000003') @@ -19,50 +17,50 @@ describe('Hash128', function () { expect(h2.gt(h1)).toBe(true) expect(h1.gt(h3)).toBe(true) }) - test('throws when constructed from invalid hash length', () => { + it('throws when constructed from invalid hash length', () => { expect(() => Hash128.from('1000000000000000000000000000000')).toThrow( - 'Invalid Hash length 15', + new Error('Invalid Hash length 15'), ) expect(() => Hash128.from('10000000000000000000000000000000000')).toThrow( - 'Invalid Hash length 17', + new Error('Invalid Hash length 17'), ) }) }) describe('Hash160', function () { - test('has a static width member', function () { + it('has a static width member', function () { expect(Hash160.width).toBe(20) }) - test('inherited by subclasses', function () { + it('inherited by subclasses', function () { expect(AccountID.width).toBe(20) expect(Currency.width).toBe(20) }) - test('can be compared against another', function () { + it('can be compared against another', function () { const h1 = Hash160.from('1000000000000000000000000000000000000000') const h2 = Hash160.from('2000000000000000000000000000000000000000') const h3 = Hash160.from('0000000000000000000000000000000000000003') expect(h1.lt(h2)).toBe(true) expect(h3.lt(h2)).toBe(true) }) - test('throws when constructed from invalid hash length', () => { + it('throws when constructed from invalid hash length', () => { expect(() => Hash160.from('10000000000000000000000000000000000000'), - ).toThrow('Invalid Hash length 19') + ).toThrow(new Error('Invalid Hash length 19')) expect(() => Hash160.from('100000000000000000000000000000000000000000'), - ).toThrow('Invalid Hash length 21') + ).toThrow(new Error('Invalid Hash length 21')) }) }) describe('Hash256', function () { - test('has a static width member', function () { + it('has a static width member', function () { expect(Hash256.width).toBe(32) }) - test('has a ZERO_256 member', function () { + it('has a ZERO_256 member', function () { expect(Hash256.ZERO_256.toJSON()).toBe( '0000000000000000000000000000000000000000000000000000000000000000', ) }) - test('supports getting the nibblet values at given positions', function () { + it('supports getting the nibblet values at given positions', function () { const h = Hash256.from( '1359BD0000000000000000000000000000000000000000000000000000000000', ) @@ -80,53 +78,55 @@ describe('Currency', function () { const currencyCode = '0000000000000000000000005841480000000000' expect(Currency.from(currencyCode).toJSON()).toBe(currencyCode) }) - test('Currency code with lowercase letters decodes to ISO code', () => { + it('Currency code with lowercase letters decodes to ISO code', () => { expect(Currency.from('xRp').toJSON()).toBe('xRp') }) - test('Currency codes with symbols decodes to ISO code', () => { + it('Currency codes with symbols decodes to ISO code', () => { expect(Currency.from('x|p').toJSON()).toBe('x|p') }) - test('Currency code with non-standard symbols decodes to hex', () => { + it('Currency code with non-standard symbols decodes to hex', () => { expect(Currency.from(':::').toJSON()).toBe( '0000000000000000000000003A3A3A0000000000', ) }) - test('Currency codes can be exclusively standard symbols', () => { + it('Currency codes can be exclusively standard symbols', () => { expect(Currency.from('![]').toJSON()).toBe('![]') }) - test('Currency codes with uppercase and 0-9 decode to ISO codes', () => { + it('Currency codes with uppercase and 0-9 decode to ISO codes', () => { expect(Currency.from('X8P').toJSON()).toBe('X8P') expect(Currency.from('USD').toJSON()).toBe('USD') }) - test('Currency codes with no contiguous zeroes in first 96 type code & reserved bits', function () { + it('Currency codes with no contiguous zeroes in first 96 type code & reserved bits', function () { expect( Currency.from('0000000023410000000000005852520000000000').iso(), ).toBe(null) }) - test('Currency codes with no contiguous zeroes in last 40 reserved bits', function () { + it('Currency codes with no contiguous zeroes in last 40 reserved bits', function () { expect( Currency.from('0000000000000000000000005852527570656500').iso(), ).toBe(null) }) test('can be constructed from a Buffer', function () { - const xrp = new Currency(Buffer.alloc(20)) + const xrp = new Currency(new Uint8Array(20)) expect(xrp.iso()).toBe('XAH') }) - test('Can handle non-standard currency codes', () => { + it('Can handle non-standard currency codes', () => { const currency = '015841551A748AD2C1F76FF6ECB0CCCD00000000' expect(Currency.from(currency).toJSON()).toBe(currency) }) - test('Can handle other non-standard currency codes', () => { + it('Can handle other non-standard currency codes', () => { const currency = '0000000000414C6F676F30330000000000000000' expect(Currency.from(currency).toJSON()).toBe(currency) }) - test('throws on invalid reprs', function () { - expect(() => Currency.from(Buffer.alloc(19))).toThrow() + it('throws on invalid reprs', function () { + // @ts-expect-error -- invalid type check + expect(() => Currency.from(new Uint8Array(19))).toThrow() + // @ts-expect-error -- invalid type check expect(() => Currency.from(1)).toThrow() expect(() => Currency.from('00000000000000000000000000000000000000m'), diff --git a/packages/ripple-binary-codec/test/ledger.test.js b/packages/ripple-binary-codec/test/ledger.test.js deleted file mode 100644 index 287363b685..0000000000 --- a/packages/ripple-binary-codec/test/ledger.test.js +++ /dev/null @@ -1,29 +0,0 @@ -const { loadFixture } = require('./utils') -const { - transactionTreeHash, - ledgerHash, - accountStateHash, -} = require('../src/ledger-hashes') - -describe('Ledger Hashes', function () { - function testFactory(ledgerFixture) { - describe(`can calculate hashes for ${ledgerFixture}`, function () { - const ledger = loadFixture(ledgerFixture) - test('computes correct account state hash', function () { - expect(accountStateHash(ledger.accountState).toHex()).toBe( - ledger.account_hash, - ) - }) - test('computes correct transaction tree hash', function () { - expect(transactionTreeHash(ledger.transactions).toHex()).toBe( - ledger.transaction_hash, - ) - }) - test('computes correct ledger header hash', function () { - expect(ledgerHash(ledger).toHex()).toBe(ledger.hash) - }) - }) - } - testFactory('ledger-full-40000.json') - testFactory('ledger-full-38129.json') -}) diff --git a/packages/ripple-binary-codec/test/ledger.test.ts b/packages/ripple-binary-codec/test/ledger.test.ts new file mode 100644 index 0000000000..1351a7701b --- /dev/null +++ b/packages/ripple-binary-codec/test/ledger.test.ts @@ -0,0 +1,33 @@ +import ledgerFull38129 from './fixtures/ledger-full-38129.json' +import ledgerFull40000 from './fixtures/ledger-full-40000.json' + +const { + transactionTreeHash, + ledgerHash, + accountStateHash, +} = require('../src/ledger-hashes') + +describe('Ledger Hashes', function () { + function testFactory( + ledgerIndex: number, + ledger: typeof ledgerFull38129 | typeof ledgerFull40000, + ) { + describe(`can calculate hashes for ledger ${ledgerIndex}`, function () { + it('computes correct account state hash', function () { + expect(accountStateHash(ledger.accountState).toHex()).toBe( + ledger.account_hash, + ) + }) + it('computes correct transaction tree hash', function () { + expect(transactionTreeHash(ledger.transactions).toHex()).toBe( + ledger.transaction_hash, + ) + }) + it('computes correct ledger header hash', function () { + expect(ledgerHash(ledger).toHex()).toBe(ledger.hash) + }) + }) + } + testFactory(38129, ledgerFull38129) + testFactory(40000, ledgerFull40000) +}) diff --git a/packages/ripple-binary-codec/test/lower-case-hex.test.js b/packages/ripple-binary-codec/test/lower-case-hex.test.ts similarity index 84% rename from packages/ripple-binary-codec/test/lower-case-hex.test.js rename to packages/ripple-binary-codec/test/lower-case-hex.test.ts index dae6546a85..55a1591668 100644 --- a/packages/ripple-binary-codec/test/lower-case-hex.test.js +++ b/packages/ripple-binary-codec/test/lower-case-hex.test.ts @@ -1,4 +1,4 @@ -const { encode, decode } = require('../src') +import { encode, decode } from '../src' let str = '1100612200000000240000000125000068652D0000000055B6632D6376A2D9319F20A1C6DCCB486432D1E4A79951229D4C3DE2946F51D56662400009184E72A00081140DD319918CD5AE792BF7EC80D63B0F01B4573BBC' @@ -31,16 +31,16 @@ let jsonUpper = { } describe('Lowercase hex test', () => { - test('Correctly decodes', () => { + it('Correctly decodes', () => { expect(decode(lower)).toEqual(decode(str)) }) - test('Re-encodes to uppercase hex', () => { + it('Re-encodes to uppercase hex', () => { expect(encode(decode(lower))).toEqual(str) }) - test('Encode when hex field lowercase', () => { + it('Encode when hex field lowercase', () => { expect(encode(json)).toBe(bin) }) - test('Re-decodes to uppercase hex', () => { + it('Re-decodes to uppercase hex', () => { expect(decode(encode(json))).toEqual(jsonUpper) }) }) diff --git a/packages/ripple-binary-codec/test/pseudo-transaction.test.js b/packages/ripple-binary-codec/test/pseudo-transaction.test.ts similarity index 71% rename from packages/ripple-binary-codec/test/pseudo-transaction.test.js rename to packages/ripple-binary-codec/test/pseudo-transaction.test.ts index 467bedca66..425328e804 100644 --- a/packages/ripple-binary-codec/test/pseudo-transaction.test.js +++ b/packages/ripple-binary-codec/test/pseudo-transaction.test.ts @@ -1,4 +1,4 @@ -const { encode, decode } = require('../src') +import { encode, decode } from '../src' let json = { Account: 'rrrrrrrrrrrrrrrrrrrrrhoLvTp', @@ -20,19 +20,19 @@ let binary = '24000000006840000000000000007300760081140000000000000000000000000000000000000000' describe('Can encode Pseudo Transactions', () => { - test('Correctly encodes Pseudo Transaciton', () => { + it('Correctly encodes Pseudo Transaciton', () => { expect(encode(json)).toEqual(binary) }) - test('Can decode account objects', () => { + it('Can decode account objects', () => { expect(decode(encode(json))).toEqual(json) }) - test('Blank AccountID is ACCOUNT_ZERO', () => { + it('Blank AccountID is ACCOUNT_ZERO', () => { expect(encode(json_blank_acct)).toEqual(binary) }) - test('Decodes Blank AccountID', () => { + it('Decodes Blank AccountID', () => { expect(decode(encode(json_blank_acct))).toEqual(json) }) }) diff --git a/packages/ripple-binary-codec/test/quality.test.js b/packages/ripple-binary-codec/test/quality.test.ts similarity index 68% rename from packages/ripple-binary-codec/test/quality.test.js rename to packages/ripple-binary-codec/test/quality.test.ts index fce475dc38..41a53fd53d 100644 --- a/packages/ripple-binary-codec/test/quality.test.js +++ b/packages/ripple-binary-codec/test/quality.test.ts @@ -1,15 +1,16 @@ const { quality } = require('../src/coretypes') +const { bytesToHex } = require('@xrplf/isomorphic/utils') describe('Quality encode/decode', function () { const bookDirectory = '4627DFFCFF8B5A265EDBD8AE8C14A52325DBFEDAF4F5C32E5D06F4C3362FE1D0' const expectedQuality = '195796912.5171664' - test('can decode', function () { + it('can decode', function () { const decimal = quality.decode(bookDirectory) expect(decimal.toString()).toBe(expectedQuality) }) - test('can encode', function () { + it('can encode', function () { const bytes = quality.encode(expectedQuality) - expect(bytes.toString('hex').toUpperCase()).toBe(bookDirectory.slice(-16)) + expect(bytesToHex(bytes)).toBe(bookDirectory.slice(-16)) }) }) diff --git a/packages/ripple-binary-codec/test/shamap.test.js b/packages/ripple-binary-codec/test/shamap.test.ts similarity index 51% rename from packages/ripple-binary-codec/test/shamap.test.js rename to packages/ripple-binary-codec/test/shamap.test.ts index 9ade520556..e9674c1cd7 100644 --- a/packages/ripple-binary-codec/test/shamap.test.js +++ b/packages/ripple-binary-codec/test/shamap.test.ts @@ -1,8 +1,10 @@ -const { ShaMap } = require('../src/shamap') -const { binary, HashPrefix } = require('../src/coretypes') -const { coreTypes } = require('../src/types') -const { loadFixture } = require('./utils') -const { Buffer } = require('buffer/') +import ledgerFull38129 from './fixtures/ledger-full-38129.json' +import ledgerFull40000 from './fixtures/ledger-full-40000.json' +import { BytesList } from '../src/serdes/binary-serializer' + +import { ShaMap, ShaMapLeaf, ShaMapNode } from '../src/shamap' +import { binary, HashPrefix } from '../src/coretypes' +import { coreTypes, Hash256 } from '../src/types' function now() { return Number(Date.now()) / 1000 @@ -10,18 +12,23 @@ function now() { const ZERO = '0000000000000000000000000000000000000000000000000000000000000000' -function makeItem(indexArg) { +function makeItem( + indexArg: string, +): [ + Hash256, + { toBytesSink: (sink: BytesList) => void; hashPrefix: () => Uint8Array }, +] { let str = indexArg while (str.length < 64) { str += '0' } - const index = coreTypes.Hash256.from(str) + const index = Hash256.from(str) const item = { - toBytesSink(sink) { + toBytesSink(sink: BytesList) { index.toBytesSink(sink) }, hashPrefix() { - return Buffer.from([1, 3, 3, 7]) + return Uint8Array.from([1, 3, 3, 7]) }, } return [index, item] @@ -30,11 +37,11 @@ function makeItem(indexArg) { describe('ShaMap', () => { now() - test('hashes to zero when empty', () => { + it('hashes to zero when empty', () => { const map = new ShaMap() expect(map.hash().toHex()).toBe(ZERO) }) - test('creates the same hash no matter which order items are added', () => { + it('creates the same hash no matter which order items are added', () => { let map = new ShaMap() const items = [ '0', @@ -47,22 +54,23 @@ describe('ShaMap', () => { '12', '122', ] - items.forEach((i) => map.addItem(...makeItem(i))) + // @ts-expect-error -- we are mocking nodes + items.forEach((i) => map.addItem(...(makeItem(i) as ShaMapNode))) const h1 = map.hash() expect(h1.eq(h1)).toBe(true) map = new ShaMap() - items.reverse().forEach((i) => map.addItem(...makeItem(i))) - expect(map.hash()).toStrictEqual(h1) + // @ts-expect-error -- we are mocking nodes + items.reverse().forEach((i) => map.addItem(...(makeItem(i) as ShaMapNode))) + expect(map.hash()).toEqual(h1) }) - function factory(fixture) { - test(`recreate account state hash from ${fixture}`, () => { + function factory(ledger: typeof ledgerFull38129 | typeof ledgerFull40000) { + it(`recreate account state hash from ${ledger}`, () => { const map = new ShaMap() - const ledger = loadFixture(fixture) // const t = now(); const leafNodePrefix = HashPrefix.accountStateEntry ledger.accountState - .map((e, i) => { - if ((i > 1000) & (i % 1000 === 0)) { + .map((e, i): ShaMapLeaf => { + if (i > 1000 && i % 1000 === 0) { console.log(e.index) console.log(i) } @@ -72,18 +80,16 @@ describe('ShaMap', () => { hashPrefix() { return leafNodePrefix }, - toBytesSink(sink) { + toBytesSink(sink: BytesList) { sink.put(bytes) }, - } + } as ShaMapLeaf }) - .forEach((so) => map.addItem(so.index, so)) + .forEach((so: ShaMapLeaf) => map.addItem(so.index, so)) expect(map.hash().toHex()).toBe(ledger.account_hash) // console.log('took seconds: ', (now() - t)); }) } - factory('ledger-full-38129.json') - factory('ledger-full-40000.json') - // factory('ledger-4320277.json'); - // factory('14280680.json'); + factory(ledgerFull38129) + factory(ledgerFull40000) }) diff --git a/packages/ripple-binary-codec/test/signing-data-encoding.test.js b/packages/ripple-binary-codec/test/signing-data-encoding.test.ts similarity index 74% rename from packages/ripple-binary-codec/test/signing-data-encoding.test.js rename to packages/ripple-binary-codec/test/signing-data-encoding.test.ts index ef4db5b05b..23ba0aa4e2 100644 --- a/packages/ripple-binary-codec/test/signing-data-encoding.test.js +++ b/packages/ripple-binary-codec/test/signing-data-encoding.test.ts @@ -1,10 +1,9 @@ -const { throws } = require('assert') +import { XrplDefinitions } from '../src/enums/xrpl-definitions' const { encodeForSigning, encodeForSigningClaim, encodeForMultisigning, } = require('../src') -const { XrplDefinitions } = require('../src/enums/xrpl-definitions') const normalDefinitions = require('../src/enums/definitions.json') @@ -29,7 +28,7 @@ const tx_json = { } describe('Signing data', function () { - test('can create single signing blobs', function () { + it('can create single signing blobs', function () { const actual = encodeForSigning(tx_json) expect(actual).toBe( [ @@ -70,7 +69,7 @@ describe('Signing data', function () { ) }) - test('can create single signing blobs with modified type', function () { + it('can create single signing blobs with modified type', function () { const customPaymentDefinitions = JSON.parse( JSON.stringify(normalDefinitions), ) @@ -117,16 +116,18 @@ describe('Signing data', function () { ) }) - test('can fail gracefully for invalid TransactionType', function () { + it('can fail gracefully for invalid TransactionType', function () { const invalidTransactionType = { ...tx_json, TransactionType: 'NotAPayment', } - throws(() => encodeForSigning(invalidTransactionType), /NotAPayment/u) + expect(() => encodeForSigning(invalidTransactionType)).toThrowError( + /NotAPayment/u, + ) }) - test('can create multi signing blobs', function () { + it('can create multi signing blobs', function () { const signingAccount = 'rJZdUusLDtY9NEsGea7ijqhVrXv98rYBYN' const signingJson = { ...tx_json, SigningPubKey: '' } const actual = encodeForMultisigning(signingJson, signingAccount) @@ -170,7 +171,59 @@ describe('Signing data', function () { ].join(''), ) }) - test('can create native claim blob', function () { + + it('can create multi signing blobs with custom definitions', function () { + const customPaymentDefinitions = JSON.parse( + JSON.stringify(normalDefinitions), + ) + customPaymentDefinitions.TRANSACTION_TYPES.Payment = 31 + + const newDefs = new XrplDefinitions(customPaymentDefinitions) + const signingAccount = 'rJZdUusLDtY9NEsGea7ijqhVrXv98rYBYN' + const signingJson = { ...tx_json, SigningPubKey: '' } + const actual = encodeForMultisigning(signingJson, signingAccount, newDefs) + expect(actual).toBe( + [ + '534D5400', // signingPrefix + // TransactionType + '12', + '001F', + // Flags + '22', + '80000000', + // Sequence + '24', + '00000001', + // Amount + '61', + // native amount + '40000000000003E8', + // Fee + '68', + // native amount + '400000000000000A', + // SigningPubKey + '73', + // VLLength + '00', + // '', + // Account + '81', + // VLLength + '14', + '5B812C9D57731E27A2DA8B1830195F88EF32A3B6', + // Destination + '83', + // VLLength + '14', + 'B5F762798A53D543A014CAF8B297CFF8F2F937E8', + // signingAccount suffix + 'C0A5ABEF242802EFED4B041E8F2D4A8CC86AE3D1', + ].join(''), + ) + }) + + it('can create claim blob', function () { const channel = '43904CBFCDCEC530B4037871F86EE90BF799DF8D2E0EA564BC8A3F332E4F5FB1' const amount = '1000' diff --git a/packages/ripple-binary-codec/test/tx-encode-decode.test.js b/packages/ripple-binary-codec/test/tx-encode-decode.test.ts similarity index 79% rename from packages/ripple-binary-codec/test/tx-encode-decode.test.js rename to packages/ripple-binary-codec/test/tx-encode-decode.test.ts index 5f26b9ef4f..aed4a28f73 100644 --- a/packages/ripple-binary-codec/test/tx-encode-decode.test.js +++ b/packages/ripple-binary-codec/test/tx-encode-decode.test.ts @@ -1,4 +1,4 @@ -const { encode, decode } = require('../src') +import { encode, decode } from '../src' // Notice: no Amount or Fee const tx_json = { @@ -19,12 +19,12 @@ const tx_json = { } describe('encoding and decoding tx_json', function () { - test('can encode tx_json without Amount or Fee', function () { + it('can encode tx_json without Amount or Fee', function () { const encoded = encode(tx_json) const decoded = decode(encoded) expect(tx_json).toEqual(decoded) }) - test('can encode tx_json with Amount and Fee', function () { + it('can encode tx_json with Amount and Fee', function () { const my_tx = Object.assign({}, tx_json, { Amount: '1000', Fee: '10', @@ -33,7 +33,7 @@ describe('encoding and decoding tx_json', function () { const decoded = decode(encoded) expect(my_tx).toEqual(decoded) }) - test('can encode tx_json with TicketCount', function () { + it('can encode tx_json with TicketCount', function () { const my_tx = Object.assign({}, tx_json, { TicketCount: 2, }) @@ -41,7 +41,7 @@ describe('encoding and decoding tx_json', function () { const decoded = decode(encoded) expect(my_tx).toEqual(decoded) }) - test('can encode tx_json with TicketSequence', function () { + it('can encode tx_json with TicketSequence', function () { const my_tx = Object.assign({}, tx_json, { Sequence: 0, TicketSequence: 2, @@ -50,7 +50,7 @@ describe('encoding and decoding tx_json', function () { const decoded = decode(encoded) expect(my_tx).toEqual(decoded) }) - test('can decode a transaction with an issued currency that evaluates to XRP', function () { + it('can decode a transaction with an issued currency that evaluates to XRP', function () { // Encoding is done prior, because this is disallowed during encoding with client libraries to avoid scam XRP tokens. const expectedTx = { TransactionType: 'TrustSet', @@ -72,7 +72,7 @@ describe('encoding and decoding tx_json', function () { const decoded = decode(encoded) expect(expectedTx).toEqual(decoded) }) - test('throws when Amount is invalid', function () { + it('throws when Amount is invalid', function () { const my_tx = Object.assign({}, tx_json, { Amount: '1000.001', Fee: '10', @@ -81,7 +81,7 @@ describe('encoding and decoding tx_json', function () { encode(my_tx) }).toThrow() }) - test('throws when Fee is invalid', function () { + it('throws when Fee is invalid', function () { const my_tx = Object.assign({}, tx_json, { Amount: '1000', Fee: '10.123', @@ -90,7 +90,7 @@ describe('encoding and decoding tx_json', function () { encode(my_tx) }).toThrow() }) - test('throws when Amount and Fee are invalid', function () { + it('throws when Amount and Fee are invalid', function () { const my_tx = Object.assign({}, tx_json, { Amount: '1000.789', Fee: '10.123', @@ -99,7 +99,7 @@ describe('encoding and decoding tx_json', function () { encode(my_tx) }).toThrow() }) - test('throws when Amount is a number instead of a string-encoded integer', function () { + it('throws when Amount is a number instead of a string-encoded integer', function () { const my_tx = Object.assign({}, tx_json, { Amount: 1000.789, }) @@ -108,7 +108,7 @@ describe('encoding and decoding tx_json', function () { }).toThrow() }) - test('throws when Fee is a number instead of a string-encoded integer', function () { + it('throws when Fee is a number instead of a string-encoded integer', function () { const my_tx = Object.assign({}, tx_json, { Amount: 1234.56, }) diff --git a/packages/ripple-binary-codec/test/types.test.js b/packages/ripple-binary-codec/test/types.test.js deleted file mode 100644 index 37db61716b..0000000000 --- a/packages/ripple-binary-codec/test/types.test.js +++ /dev/null @@ -1,34 +0,0 @@ -const { coreTypes } = require('../src/types') -const { SerializedType } = require('../src/types/serialized-type') - -describe('SerializedType interfaces', () => { - Object.entries(coreTypes).forEach(([name, Value]) => { - test(`${name} has a \`from\` static constructor`, () => { - expect(Value.from && Value.from !== Array.from).toBe(true) - }) - test(`${name} has a default constructor`, () => { - expect(new Value()).not.toBe(undefined) - }) - test(`${name}.from will return the same object`, () => { - const instance = new Value() - expect(Value.from(instance) === instance).toBe(true) - }) - test(`${name} instances have toBytesSink`, () => { - expect(new Value().toBytesSink).not.toBe(undefined) - }) - test(`${name} instances have toJSON`, () => { - expect(new Value().toJSON).not.toBe(undefined) - }) - test(`${name}.from(json).toJSON() == json`, () => { - const newJSON = new Value().toJSON() - expect(Value.from(newJSON).toJSON()).toEqual(newJSON) - }) - describe(`${name} supports all methods of the SerializedType mixin`, () => { - Object.keys(SerializedType.prototype).forEach((k) => { - test(`new ${name}.prototype.${k} !== undefined`, () => { - expect(Value.prototype[k]).not.toBe(undefined) - }) - }) - }) - }) -}) diff --git a/packages/ripple-binary-codec/test/types.test.ts b/packages/ripple-binary-codec/test/types.test.ts new file mode 100644 index 0000000000..4f4927fd55 --- /dev/null +++ b/packages/ripple-binary-codec/test/types.test.ts @@ -0,0 +1,32 @@ +import { SerializedType } from '../src/types/serialized-type' +import { coreTypes } from '../src/types' + +describe('SerializedType implementations', () => { + Object.entries(coreTypes).forEach(([name, Value]) => { + it(`${name} has a \`from\` static constructor`, () => { + expect(Value.from).toBeDefined() + expect(Value.from).not.toEqual(Array.from) + }) + it(`${name} has a default constructor`, () => { + expect(new Value()).not.toBe(undefined) + }) + it(`${name}.from will return the same object`, () => { + const instance = new Value() + expect(Value.from(instance) === instance).toBe(true) + }) + it(`${name} instances have toBytesSink`, () => { + expect(new Value().toBytesSink).not.toBe(undefined) + }) + it(`${name} instances have toJSON`, () => { + expect(new Value().toJSON).not.toBe(undefined) + }) + it(`${name}.from(json).toJSON() == json`, () => { + const newJSON = new Value().toJSON() + expect(Value.from(newJSON).toJSON()).toEqual(newJSON) + }) + it(`${name} extends SerializedType mixin`, () => { + const obj = new Value() + expect(obj).toBeInstanceOf(SerializedType) + }) + }) +}) diff --git a/packages/ripple-binary-codec/test/uint.test.js b/packages/ripple-binary-codec/test/uint.test.ts similarity index 89% rename from packages/ripple-binary-codec/test/uint.test.js rename to packages/ripple-binary-codec/test/uint.test.ts index 456d46f963..debfad4a87 100644 --- a/packages/ripple-binary-codec/test/uint.test.js +++ b/packages/ripple-binary-codec/test/uint.test.ts @@ -1,7 +1,5 @@ -const { coreTypes } = require('../src/types') -const { UInt8, UInt64 } = coreTypes - -const { encode } = require('../src') +import { UInt8, UInt64 } from '../src/types' +import { encode } from '../src' const binary = '11007222000300003700000000000000003800000000000000006280000000000000000000000000000000000000005553440000000000000000000000000000000000000000000000000166D5438D7EA4C680000000000000000000000000005553440000000000AE123A8556F3CF91154711376AFB0F894F832B3D67D5438D7EA4C680000000000000000000000000005553440000000000F51DFC2A09D62CBBA1DFBDD4691DAC96AD98B90F' @@ -98,51 +96,51 @@ const jsonEntry2 = { index: '0000041EFD027808D3F78C8352F97E324CB816318E00B977C74ECDDC7CD975B2', } -test('compareToTests[0]', () => { +it('compareToTests[0]', () => { expect(UInt8.from(124).compareTo(UInt64.from(124))).toBe(0) }) -test('compareToTest[1]', () => { +it('compareToTest[1]', () => { expect(UInt64.from(124).compareTo(UInt8.from(124))).toBe(0) }) -test('compareToTest[2]', () => { +it('compareToTest[2]', () => { expect(UInt64.from(124).compareTo(UInt8.from(123))).toBe(1) }) -test('compareToTest[3]', () => { +it('compareToTest[3]', () => { expect(UInt8.from(124).compareTo(UInt8.from(13))).toBe(1) }) -test('compareToTest[4]', () => { +it('compareToTest[4]', () => { expect(UInt8.from(124).compareTo(124)).toBe(0) }) -test('compareToTest[5]', () => { +it('compareToTest[5]', () => { expect(UInt64.from(124).compareTo(124)).toBe(0) }) -test('compareToTest[6]', () => { +it('compareToTest[6]', () => { expect(UInt64.from(124).compareTo(123)).toBe(1) }) -test('compareToTest[7]', () => { +it('compareToTest[7]', () => { expect(UInt8.from(124).compareTo(13)).toBe(1) }) -test('UInt64 from string zero', () => { +it('UInt64 from string zero', () => { expect(UInt64.from('0')).toEqual(UInt64.from(0)) expect(encode(json)).toEqual(binary) }) -test('UInt64 from non 16 length hex', () => { +it('UInt64 from non 16 length hex', () => { expect(encode(jsonEntry0)).toEqual(binaryEntry0) expect(encode(jsonEntry1)).toEqual(binaryEntry1) expect(encode(jsonEntry2)).toEqual(binaryEntry2) }) -test('valueOfTests', () => { +it('valueOf tests', () => { let val = UInt8.from(1) - val |= 0x2 - expect(val).toBe(3) + + expect(val.valueOf() | 0x2).toBe(3) }) diff --git a/packages/ripple-binary-codec/test/utils.js b/packages/ripple-binary-codec/test/utils.js deleted file mode 100644 index 8c65b6c477..0000000000 --- a/packages/ripple-binary-codec/test/utils.js +++ /dev/null @@ -1,30 +0,0 @@ -const fs = require("fs"); -const { Buffer } = require('buffer/') - -function hexOnly(hex) { - return hex.replace(/[^a-fA-F0-9]/g, ""); -} - -function unused() {} - -function parseHexOnly(hex) { - return Buffer.from(hexOnly(hex), "hex"); -} - -function loadFixture(relativePath) { - const fn = __dirname + "/fixtures/" + relativePath; - return require(fn); -} - -function loadFixtureText(relativePath) { - const fn = __dirname + "/fixtures/" + relativePath; - return fs.readFileSync(fn).toString("utf8"); -} - -module.exports = { - hexOnly, - parseHexOnly, - loadFixture, - loadFixtureText, - unused, -}; diff --git a/packages/ripple-binary-codec/test/utils.ts b/packages/ripple-binary-codec/test/utils.ts new file mode 100644 index 0000000000..625d77d776 --- /dev/null +++ b/packages/ripple-binary-codec/test/utils.ts @@ -0,0 +1,9 @@ +import { hexToBytes } from '@xrplf/isomorphic/utils' + +export function hexOnly(hex: string): string { + return hex.replace(/[^a-fA-F0-9]/g, '') +} + +export function parseHexOnly(hex: string): Uint8Array { + return hexToBytes(hexOnly(hex)) +} diff --git a/packages/ripple-binary-codec/test/webpack.config.js b/packages/ripple-binary-codec/test/webpack.config.js new file mode 100644 index 0000000000..db2ec8642d --- /dev/null +++ b/packages/ripple-binary-codec/test/webpack.config.js @@ -0,0 +1,9 @@ +'use strict' +const { merge } = require('webpack-merge') +const { webpackForTest } = require('../../../weback.test.config') +const { getDefaultConfiguration } = require('../../../webpack.config') + +module.exports = merge( + getDefaultConfiguration(), + webpackForTest('./test/index.ts', __dirname), +) diff --git a/packages/ripple-binary-codec/test/x-address.test.js b/packages/ripple-binary-codec/test/x-address.test.ts similarity index 80% rename from packages/ripple-binary-codec/test/x-address.test.js rename to packages/ripple-binary-codec/test/x-address.test.ts index 06529a9da8..d2c7478ece 100644 --- a/packages/ripple-binary-codec/test/x-address.test.js +++ b/packages/ripple-binary-codec/test/x-address.test.ts @@ -1,5 +1,5 @@ -const { encode, decode } = require('./../src/index') -const fixtures = require('./fixtures/x-codec-fixtures.json') +import { encode, decode } from '../src' +import fixtures from './fixtures/x-codec-fixtures.json' let json_x1 = { OwnerCount: 0, @@ -122,56 +122,56 @@ let json_issued_with_tag = { describe('X-Address Account is equivalent to a classic address w/ SourceTag', () => { let encoded_x = encode(json_x1) let encoded_r = encode(json_r1) - test('Can encode with x-Address', () => { + it('Can encode with x-Address', () => { expect(encoded_x).toEqual(encoded_r) }) - test('decoded X-address is object w/ source and tag', () => { + it('decoded X-address is object w/ source and tag', () => { let decoded_x = decode(encoded_x) expect(decoded_x).toEqual(json_r1) }) - test('Encoding issuer X-Address w/ undefined destination tag', () => { + it('Encoding issuer X-Address w/ undefined destination tag', () => { expect(encode(json_null_x)).toEqual(encode(json_null_r)) }) - test('Throws when X-Address is invalid', () => { - expect(() => encode(json_invalid_x)).toThrow('checksum_invalid') + it('Throws when X-Address is invalid', () => { + expect(() => encode(json_invalid_x)).toThrow(new Error('checksum_invalid')) }) - test('Encodes issued currency w/ x-address', () => { + it('Encodes issued currency w/ x-address', () => { expect(encode(json_issued_x)).toEqual(encode(json_issued_r)) }) }) describe('Invalid X-Address behavior', () => { - test('X-Address with tag throws value for invalid field', () => { + it('X-Address with tag throws value for invalid field', () => { expect(() => encode(invalid_json_issuer_tagged)).toThrow( new Error('Issuer cannot have an associated tag'), ) }) - test('Throws when Account has both X-Addr and Destination Tag', () => { + it('Throws when Account has both X-Addr and Destination Tag', () => { expect(() => encode(invalid_json_x_and_tagged)).toThrow( new Error('Cannot have Account X-Address and SourceTag'), ) }) - test('Throws when issued currency has tag', () => { + it('Throws when issued currency has tag', () => { expect(() => encode(json_issued_with_tag)).toThrow( - 'Only allowed to have tag on Account or Destination', + new Error('Only allowed to have tag on Account or Destination'), ) }) }) describe('ripple-binary-codec x-address test', function () { - function makeSuite(name, entries) { + function makeSuite(name: string, entries: typeof fixtures.transactions) { describe(name, function () { entries.forEach((t, testN) => { - test(`${name}[${testN}] encodes X-address json equivalent to classic address json`, () => { + it(`${name}[${testN}] encodes X-address json equivalent to classic address json`, () => { expect(encode(t.rjson)).toEqual(encode(t.xjson)) }) - test(`${name}[${testN}] decodes X-address json equivalent to classic address json`, () => { + it(`${name}[${testN}] decodes X-address json equivalent to classic address json`, () => { expect(decode(encode(t.xjson))).toEqual(t.rjson) }) }) diff --git a/packages/ripple-binary-codec/tsconfig.build.json b/packages/ripple-binary-codec/tsconfig.build.json new file mode 100644 index 0000000000..7f59b80d68 --- /dev/null +++ b/packages/ripple-binary-codec/tsconfig.build.json @@ -0,0 +1,7 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "rootDir": "./src", + }, + "include": ["./src/**/*.ts", "./src/**/*.json"] +} diff --git a/packages/ripple-binary-codec/tsconfig.eslint.json b/packages/ripple-binary-codec/tsconfig.eslint.json index fccfa7d062..32a0cfe52a 100644 --- a/packages/ripple-binary-codec/tsconfig.eslint.json +++ b/packages/ripple-binary-codec/tsconfig.eslint.json @@ -3,5 +3,5 @@ { // extend your base config so you don't have to redefine your compilerOptions "extends": "./tsconfig.json", - "include": ["src/**/*.ts", "test/**/*.js"] - } \ No newline at end of file + "include": ["src/**/*.ts", "test/**/*.ts"] + } diff --git a/packages/ripple-binary-codec/tsconfig.json b/packages/ripple-binary-codec/tsconfig.json index 9c8f38ba5b..38c30f5cdb 100644 --- a/packages/ripple-binary-codec/tsconfig.json +++ b/packages/ripple-binary-codec/tsconfig.json @@ -5,7 +5,6 @@ "lib": [ "es2017" ], - "rootDir": "./src", "outDir": "./dist", "noUnusedLocals": true, "noUnusedParameters": true, @@ -14,13 +13,15 @@ "noImplicitAny": false, "removeComments": false, "preserveConstEnums": false, - "suppressImplicitAnyIndexErrors": true, "skipLibCheck": true, "declaration": true }, "references": [ { - "path": "../ripple-address-codec/tsconfig.json" + "path": "../isomorphic/tsconfig.build.json" + }, + { + "path": "../ripple-address-codec/tsconfig.build.json" } ], "include": [ diff --git a/packages/ripple-keypairs/.eslintrc.js b/packages/ripple-keypairs/.eslintrc.js index 805ef33127..800da9680e 100644 --- a/packages/ripple-keypairs/.eslintrc.js +++ b/packages/ripple-keypairs/.eslintrc.js @@ -26,6 +26,9 @@ module.exports = { extends: ['@xrplf/eslint-config/base'], rules: { + // TODO: put in @xrplf/eslint-config/base ? + '@typescript-eslint/consistent-type-imports': 'error', + // ** TODO ** // all of the below are turned off for now during the migration to a // monorepo. They need to actually be addressed! diff --git a/packages/ripple-keypairs/.gitignore b/packages/ripple-keypairs/.gitignore deleted file mode 100644 index 0a7abd75d3..0000000000 --- a/packages/ripple-keypairs/.gitignore +++ /dev/null @@ -1,72 +0,0 @@ -# .gitignore - -# Ignore package locks other than npm -yarn.lock -npm-shrinkwrap.json - -# Ignore vim swap files. -*.swp - -# Ignore SCons support files. -.sconsign.dblite - -# Ignore python compiled files. -*.pyc - -# Ignore Macintosh Desktop Services Store files. -.DS_Store - -# Ignore backup/temps -*~ - -# Ignore object files. -*.o -build/ -tags -bin/rippled -Debug/*.* -Release/*.* - -# Ignore locally installed node_modules -node_modules -!test/node_modules - -# Ignore tmp directory. -tmp - -# Ignore database directory. -db/*.db -db/*.db-* - -# Ignore customized configs -rippled.cfg -validators.txt -test/config.js - -# Ignore coverage files -/lib-cov -/src-cov -/coverage.html -/coverage - -# Ignore IntelliJ files -.idea - -# Ignore npm-debug -npm-debug.log - -# Ignore dist folder, build for bower -dist/ - -# Ignore flow output directory -out/ - -# Ignore perf test cache -scripts/cache - -eslintrc - -distrib/ - -# nyc (istanbul) -.nyc_output diff --git a/packages/ripple-keypairs/.mocharc.js b/packages/ripple-keypairs/.mocharc.js deleted file mode 100644 index f828360a84..0000000000 --- a/packages/ripple-keypairs/.mocharc.js +++ /dev/null @@ -1,15 +0,0 @@ -module.exports = { - opts: false, - slow: 500, - timeout: 5000, - - // Required to get proper coverage on TypeScript files - // transpile-only is required if we use custom types - require: ['ts-node/register/transpile-only', 'source-map-support/register'], - - // Look for tests in subdirectories - recursive: true, - - // Check for global variable leaks - 'check-leaks': true, -} diff --git a/packages/ripple-keypairs/HISTORY.md b/packages/ripple-keypairs/HISTORY.md index c6b597a07c..7f4003b3a7 100644 --- a/packages/ripple-keypairs/HISTORY.md +++ b/packages/ripple-keypairs/HISTORY.md @@ -2,6 +2,31 @@ ## Unreleased +## 2.0.0 (2024-02-01) + +### BREAKING CHANGES +* Bump typescript to 5.x +* Remove Node 14 support +* Remove `assert` dependency. If you were catching `AssertionError` you need to change to `Error`. +* Fix `deriveKeypair` ignoring manual decoding algorithm. (Specifying algorithm=`ed25519` in `opts` now works on secrets like `sNa1...`) +* Remove `crypto` polyfills, `create-hash`, `elliptic`, `hash.js`, and their many dependencies in favor of `@noble/hashes` and `@nobel/curves` +* Remove `bytesToHex` and `hexToBytes`. They can now be found in `@xrplf/isomorphic/utils` +* `verifyTransaction` will throw an error if there is no signature +* Improved key algorithm detection. It will now throw Errors with helpful messages +* `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 +* Remove `brorand` as a dependency and use `@xrplf/isomorphic` instead. +* Eliminates 4 runtime dependencies: `base-x`, `base64-js`, `buffer`, and `ieee754`. + +## 1.3.1 (2023-09-27) +### Fixed +* Fix source-maps not finding their designated source + +## 1.3.0 (2023-06-13) +### Added +* Adds support for npm v9 + ## 1.1.5 (2023-03-08) ### Changed - All tests now use the Jest test runner and have been refactored for consistency across all packages diff --git a/packages/ripple-keypairs/karma.config.js b/packages/ripple-keypairs/karma.config.js new file mode 100644 index 0000000000..4ad4b5df2d --- /dev/null +++ b/packages/ripple-keypairs/karma.config.js @@ -0,0 +1,15 @@ +const baseKarmaConfig = require('../../karma.config') +const webpackConfig = require('./test/webpack.config') +delete webpackConfig.entry + +module.exports = function (config) { + baseKarmaConfig(config) + + config.set({ + base: '', + webpack: webpackConfig, + + // list of files / patterns to load in the browser + files: ['test/**/*.test.ts'], + }) +} diff --git a/packages/ripple-keypairs/nyc.config.js b/packages/ripple-keypairs/nyc.config.js deleted file mode 100644 index 0e6b344402..0000000000 --- a/packages/ripple-keypairs/nyc.config.js +++ /dev/null @@ -1,20 +0,0 @@ -module.exports = { - extension: ['.js', '.ts'], - - exclude: [ - '**/*.d.ts', - '*.js', - 'test/**/*', - 'coverage/**/*', - ], - - // Assert we remain at 100% code coverage - 'check-coverage': true, - 'branches': 100, - 'lines': 100, - 'functions': 100, - 'statements': 100, - - // Required to get coverage reported on every file, including those that aren't tested - all: true, -} diff --git a/packages/ripple-keypairs/package.json b/packages/ripple-keypairs/package.json index 4d834d1b40..375d07df68 100644 --- a/packages/ripple-keypairs/package.json +++ b/packages/ripple-keypairs/package.json @@ -1,28 +1,34 @@ { "name": "@transia/ripple-keypairs", - "version": "1.1.8-alpha.0", + "version": "2.0.0-alpha.0", "description": "Cryptographic key pairs for the XRP Ledger", "scripts": { - "build": "tsc -b", + "build": "tsc --build tsconfig.build.json", "test": "jest --verbose false --silent=false ./test/*.test.ts", - "clean": "rm -rf ./dist && rm -rf tsconfig.tsbuildinfo", + "test:browser": "npm run build && karma start ./karma.config.js", + "clean": "rm -rf ./dist ./coverage ./test/testCompiledForWeb tsconfig.build.tsbuildinfo", "lint": "eslint . --ext .ts", "prepublish": "npm run lint && npm test" }, "files": [ - "dist/*" + "dist/*", + "src/*" ], "main": "dist/", "directories": { "test": "test" }, "dependencies": { - "@transia/ripple-address-codec": "^4.2.8-alpha.0", - "bn.js": "^5.1.1", - "brorand": "^1.0.5", - "elliptic": "^6.5.4", - "hash.js": "^1.0.3" + "@noble/curves": "^1.0.0", + "@xrplf/isomorphic": "^1.0.0", + "ripple-address-codec": "npm:@transia/ripple-address-codec@^5.0.0-alpha.0" }, + "keywords": [ + "ripple", + "xrp", + "xrp ledger", + "xrpl" + ], "repository": { "type": "git", "url": "git@github.com/Transia-RnD/xrpl.js/tree/beta" @@ -30,6 +36,6 @@ "license": "ISC", "prettier": "@xrplf/prettier-config", "engines": { - "node": ">= 10" + "node": ">= 18" } } diff --git a/packages/ripple-keypairs/src/Sha512.ts b/packages/ripple-keypairs/src/Sha512.ts deleted file mode 100644 index a82cccfcbb..0000000000 --- a/packages/ripple-keypairs/src/Sha512.ts +++ /dev/null @@ -1,39 +0,0 @@ -/* eslint-disable no-bitwise -- - * lots of bitwise operators necessary for this */ -import * as hashjs from 'hash.js' -import BigNum = require('bn.js') - -export default class Sha512 { - // TODO: type of `hash`? - hash: any - - constructor() { - this.hash = hashjs.sha512() - } - - add(bytes) { - this.hash.update(bytes) - return this - } - - addU32(i) { - return this.add([ - (i >>> 24) & 0xff, - (i >>> 16) & 0xff, - (i >>> 8) & 0xff, - i & 0xff, - ]) - } - - finish() { - return this.hash.digest() - } - - first256() { - return this.finish().slice(0, 32) - } - - first256BN() { - return new BigNum(this.first256()) - } -} diff --git a/packages/ripple-keypairs/src/index.ts b/packages/ripple-keypairs/src/index.ts index 8c81e78032..f41326e535 100644 --- a/packages/ripple-keypairs/src/index.ts +++ b/packages/ripple-keypairs/src/index.ts @@ -1,162 +1,106 @@ -import * as assert from 'assert' -import brorand = require('brorand') -import * as hashjs from 'hash.js' -import * as elliptic from 'elliptic' - -import * as addressCodec from '@transia/ripple-address-codec' -import { derivePrivateKey, accountPublicFromPublicGenerator } from './secp256k1' -import * as utils from './utils' - -const Ed25519 = elliptic.eddsa('ed25519') -const Secp256k1 = elliptic.ec('secp256k1') - -const { hexToBytes } = utils -const { bytesToHex } = utils +import { + decodeNodePublic, + decodeSeed, + encodeAccountID, + encodeSeed, +} from 'ripple-address-codec' +import { ripemd160 } from '@xrplf/isomorphic/ripemd160' +import { sha256 } from '@xrplf/isomorphic/sha256' +import { hexToBytes, randomBytes } from '@xrplf/isomorphic/utils' + +import { accountPublicFromPublicGenerator } from './signing-schemes/secp256k1/utils' +import Sha512 from './utils/Sha512' +import assert from './utils/assert' +import type { Algorithm, HexString, KeyPair, SigningScheme } from './types' +import { + getAlgorithmFromPrivateKey, + getAlgorithmFromPublicKey, +} from './utils/getAlgorithmFromKey' + +import secp256k1 from './signing-schemes/secp256k1' +import ed25519 from './signing-schemes/ed25519' + +function getSigningScheme(algorithm: Algorithm): SigningScheme { + const schemes = { 'ecdsa-secp256k1': secp256k1, ed25519 } + return schemes[algorithm] +} function generateSeed( options: { entropy?: Uint8Array - algorithm?: 'ed25519' | 'ecdsa-secp256k1' + algorithm?: Algorithm } = {}, ): string { assert.ok( !options.entropy || options.entropy.length >= 16, 'entropy too short', ) - const entropy = options.entropy ? options.entropy.slice(0, 16) : brorand(16) + const entropy = options.entropy + ? options.entropy.slice(0, 16) + : randomBytes(16) const type = options.algorithm === 'ed25519' ? 'ed25519' : 'secp256k1' - return addressCodec.encodeSeed(Buffer.from(entropy), type) -} - -function hash(message): number[] { - return hashjs.sha512().update(message).digest().slice(0, 32) -} - -const secp256k1 = { - deriveKeypair( - entropy: Uint8Array, - options?: object, - ): { - privateKey: string - publicKey: string - } { - const prefix = '00' - - const privateKey = - prefix + derivePrivateKey(entropy, options).toString(16, 64).toUpperCase() - - const publicKey = bytesToHex( - Secp256k1.keyFromPrivate(privateKey.slice(2)) - .getPublic() - .encodeCompressed(), - ) - return { privateKey, publicKey } - }, - - sign(message, privateKey): string { - return bytesToHex( - Secp256k1.sign(hash(message), hexToBytes(privateKey), { - canonical: true, - }).toDER(), - ) - }, - - verify(message, signature, publicKey): boolean { - return Secp256k1.verify(hash(message), signature, hexToBytes(publicKey)) - }, -} - -const ed25519 = { - deriveKeypair(entropy: Uint8Array): { - privateKey: string - publicKey: string - } { - const prefix = 'ED' - const rawPrivateKey = hash(entropy) - const privateKey = prefix + bytesToHex(rawPrivateKey) - const publicKey = - prefix + bytesToHex(Ed25519.keyFromSecret(rawPrivateKey).pubBytes()) - return { privateKey, publicKey } - }, - - sign(message, privateKey): string { - // caution: Ed25519.sign interprets all strings as hex, stripping - // any non-hex characters without warning - assert.ok(Array.isArray(message), 'message must be array of octets') - return bytesToHex( - Ed25519.sign(message, hexToBytes(privateKey).slice(1)).toBytes(), - ) - }, - - verify(message, signature, publicKey): boolean { - return Ed25519.verify( - message, - hexToBytes(signature), - hexToBytes(publicKey).slice(1), - ) - }, -} - -function select(algorithm): any { - const methods = { 'ecdsa-secp256k1': secp256k1, ed25519 } - return methods[algorithm] + return encodeSeed(entropy, type) } function deriveKeypair( seed: string, - options?: object, -): { - publicKey: string - privateKey: string -} { - const decoded = addressCodec.decodeSeed(seed) - const algorithm = decoded.type === 'ed25519' ? 'ed25519' : 'ecdsa-secp256k1' - const method = select(algorithm) - const keypair = method.deriveKeypair(decoded.bytes, options) - const messageToVerify = hash('This test message should verify.') - const signature = method.sign(messageToVerify, keypair.privateKey) + options?: { + algorithm?: Algorithm + validator?: boolean + accountIndex?: number + }, +): KeyPair { + const decoded = decodeSeed(seed) + const proposedAlgorithm = options?.algorithm ?? decoded.type + const algorithm = + proposedAlgorithm === 'ed25519' ? 'ed25519' : 'ecdsa-secp256k1' + const scheme = getSigningScheme(algorithm) + const keypair = scheme.deriveKeypair(decoded.bytes, options) + const messageToVerify = Sha512.half('This test message should verify.') + const signature = scheme.sign(messageToVerify, keypair.privateKey) /* istanbul ignore if */ - if (method.verify(messageToVerify, signature, keypair.publicKey) !== true) { + if (!scheme.verify(messageToVerify, signature, keypair.publicKey)) { throw new Error('derived keypair did not generate verifiable signature') } return keypair } -function getAlgorithmFromKey(key): 'ed25519' | 'ecdsa-secp256k1' { - const bytes = hexToBytes(key) - return bytes.length === 33 && bytes[0] === 0xed - ? 'ed25519' - : 'ecdsa-secp256k1' +function sign(messageHex: HexString, privateKey: HexString): HexString { + const algorithm = getAlgorithmFromPrivateKey(privateKey) + return getSigningScheme(algorithm).sign(hexToBytes(messageHex), privateKey) } -function sign(messageHex, privateKey): string { - const algorithm = getAlgorithmFromKey(privateKey) - return select(algorithm).sign(hexToBytes(messageHex), privateKey) +function verify( + messageHex: HexString, + signature: HexString, + publicKey: HexString, +): boolean { + const algorithm = getAlgorithmFromPublicKey(publicKey) + return getSigningScheme(algorithm).verify( + hexToBytes(messageHex), + signature, + publicKey, + ) } -function verify(messageHex, signature, publicKey): boolean { - const algorithm = getAlgorithmFromKey(publicKey) - return select(algorithm).verify(hexToBytes(messageHex), signature, publicKey) +function computePublicKeyHash(publicKeyBytes: Uint8Array): Uint8Array { + return ripemd160(sha256(publicKeyBytes)) } -function deriveAddressFromBytes(publicKeyBytes: Buffer): string { - return addressCodec.encodeAccountID( - utils.computePublicKeyHash(publicKeyBytes), - ) +function deriveAddressFromBytes(publicKeyBytes: Uint8Array): string { + return encodeAccountID(computePublicKeyHash(publicKeyBytes)) } -function deriveAddress(publicKey): string { - return deriveAddressFromBytes(Buffer.from(hexToBytes(publicKey))) +function deriveAddress(publicKey: string): string { + return deriveAddressFromBytes(hexToBytes(publicKey)) } -function deriveNodeAddress(publicKey): string { - const generatorBytes = addressCodec.decodeNodePublic(publicKey) +function deriveNodeAddress(publicKey: string): string { + const generatorBytes = decodeNodePublic(publicKey) const accountPublicBytes = accountPublicFromPublicGenerator(generatorBytes) return deriveAddressFromBytes(accountPublicBytes) } -const { decodeSeed } = addressCodec - export { generateSeed, deriveKeypair, diff --git a/packages/ripple-keypairs/src/signing-schemes/ed25519/index.ts b/packages/ripple-keypairs/src/signing-schemes/ed25519/index.ts new file mode 100644 index 0000000000..dae0d12c83 --- /dev/null +++ b/packages/ripple-keypairs/src/signing-schemes/ed25519/index.ts @@ -0,0 +1,56 @@ +import { ed25519 as nobleEd25519 } from '@noble/curves/ed25519' +import { bytesToHex } from '@xrplf/isomorphic/utils' + +import type { HexString, SigningScheme } from '../../types' +import assert from '../../utils/assert' +import Sha512 from '../../utils/Sha512' + +const ED_PREFIX = 'ED' + +const ed25519: SigningScheme = { + deriveKeypair(entropy: Uint8Array): { + privateKey: string + publicKey: string + } { + const rawPrivateKey = Sha512.half(entropy) + const privateKey = ED_PREFIX + bytesToHex(rawPrivateKey) + const publicKey = + ED_PREFIX + bytesToHex(nobleEd25519.getPublicKey(rawPrivateKey)) + return { privateKey, publicKey } + }, + + sign(message: Uint8Array, privateKey: HexString): string { + assert.ok(message instanceof Uint8Array, 'message must be array of octets') + assert.ok( + privateKey.length === 66, + 'private key must be 33 bytes including prefix', + ) + return bytesToHex(nobleEd25519.sign(message, privateKey.slice(2))) + }, + + verify( + message: Uint8Array, + signature: HexString, + publicKey: string, + ): boolean { + // Unlikely to be triggered as these are internal and guarded by getAlgorithmFromKey + assert.ok( + publicKey.length === 66, + 'public key must be 33 bytes including prefix', + ) + return nobleEd25519.verify( + signature, + message, + // Remove the 0xED prefix + publicKey.slice(2), + // By default, set zip215 to false for compatibility reasons. + // ZIP 215 is a stricter Ed25519 signature verification scheme. + // However, setting it to false adheres to the more commonly used + // RFC8032 / NIST186-5 standards, making it compatible with systems + // like the XRP Ledger. + { zip215: false }, + ) + }, +} + +export default ed25519 diff --git a/packages/ripple-keypairs/src/signing-schemes/secp256k1/index.ts b/packages/ripple-keypairs/src/signing-schemes/secp256k1/index.ts new file mode 100644 index 0000000000..e1bd3019a1 --- /dev/null +++ b/packages/ripple-keypairs/src/signing-schemes/secp256k1/index.ts @@ -0,0 +1,64 @@ +import { numberToBytesBE } from '@noble/curves/abstract/utils' +import { secp256k1 as nobleSecp256k1 } from '@noble/curves/secp256k1' +import { bytesToHex } from '@xrplf/isomorphic/utils' + +import type { + DeriveKeyPairOptions, + HexString, + SigningScheme, +} from '../../types' + +import { derivePrivateKey } from './utils' +import assert from '../../utils/assert' +import Sha512 from '../../utils/Sha512' + +const SECP256K1_PREFIX = '00' + +const secp256k1: SigningScheme = { + deriveKeypair( + entropy: Uint8Array, + options?: DeriveKeyPairOptions, + ): { + privateKey: string + publicKey: string + } { + const derived = derivePrivateKey(entropy, options) + const privateKey = + SECP256K1_PREFIX + bytesToHex(numberToBytesBE(derived, 32)) + + const publicKey = bytesToHex(nobleSecp256k1.getPublicKey(derived, true)) + return { privateKey, publicKey } + }, + + sign(message: Uint8Array, privateKey: HexString): string { + // Some callers pass the privateKey with the prefix, others without. + // @noble/curves will throw if the key is not exactly 32 bytes, so we + // normalize it before passing to the sign method. + assert.ok( + (privateKey.length === 66 && privateKey.startsWith(SECP256K1_PREFIX)) || + privateKey.length === 64, + ) + const normedPrivateKey = + privateKey.length === 66 ? privateKey.slice(2) : privateKey + return nobleSecp256k1 + .sign(Sha512.half(message), normedPrivateKey, { + // "Canonical" signatures + lowS: true, + // Would fail tests if signatures aren't deterministic + extraEntropy: undefined, + }) + .toDERHex(true) + .toUpperCase() + }, + + verify( + message: Uint8Array, + signature: HexString, + publicKey: HexString, + ): boolean { + const decoded = nobleSecp256k1.Signature.fromDER(signature) + return nobleSecp256k1.verify(decoded, Sha512.half(message), publicKey) + }, +} + +export default secp256k1 diff --git a/packages/ripple-keypairs/src/secp256k1.ts b/packages/ripple-keypairs/src/signing-schemes/secp256k1/utils.ts similarity index 65% rename from packages/ripple-keypairs/src/secp256k1.ts rename to packages/ripple-keypairs/src/signing-schemes/secp256k1/utils.ts index 6f307f1e6c..b1870fb3e2 100644 --- a/packages/ripple-keypairs/src/secp256k1.ts +++ b/packages/ripple-keypairs/src/signing-schemes/secp256k1/utils.ts @@ -1,13 +1,13 @@ -import * as elliptic from 'elliptic' +import { secp256k1 } from '@noble/curves/secp256k1' -import Sha512 from './Sha512' +import Sha512 from '../../utils/Sha512' -const secp256k1 = elliptic.ec('secp256k1') +const ZERO = BigInt(0) -function deriveScalar(bytes, discrim?: number) { - const order = secp256k1.curve.n - for (let i = 0; i <= 0xffffffff; i++) { - // We hash the bytes to find a 256 bit number, looping until we are sure it +function deriveScalar(bytes: Uint8Array, discrim?: number): bigint { + const order = secp256k1.CURVE.n + for (let i = 0; i <= 0xffff_ffff; i++) { + // We hash the bytes to find a 256-bit number, looping until we are sure it // is less than the order of the curve. const hasher = new Sha512().add(bytes) // If the optional discriminator index was passed in, update the hash. @@ -15,9 +15,9 @@ function deriveScalar(bytes, discrim?: number) { hasher.addU32(discrim) } hasher.addU32(i) - const key = hasher.first256BN() + const key = hasher.first256BigInt() /* istanbul ignore else */ - if (key.cmpn(0) > 0 && key.cmp(order) < 0) { + if (key > ZERO && key < order) { return key } } @@ -27,7 +27,7 @@ function deriveScalar(bytes, discrim?: number) { // How often will an (essentially) random number generated by Sha512 be larger than that? // There's 2^32 chances (the for loop) to get a number smaller than the order, // and it's rare that you'll even get past the first loop iteration. - // Note that in TypeScript we actually need the throw, otherwise the function signature would be BN | undefined + // Note that in TypeScript we actually need the throw, otherwise the function signature would be bigint | undefined // /* istanbul ignore next */ throw new Error('impossible unicorn ;)') @@ -39,18 +39,18 @@ function deriveScalar(bytes, discrim?: number) { * @param [opts.accountIndex=0] - The account number to generate. * @param [opts.validator=false] - Generate root key-pair, * as used by validators. - * @returns {bn.js} 256 bit scalar value. + * @returns {bigint} 256 bit scalar value. * */ export function derivePrivateKey( - seed, + seed: Uint8Array, opts: { validator?: boolean accountIndex?: number } = {}, -) { +): bigint { const root = opts.validator - const order = secp256k1.curve.n + const order = secp256k1.CURVE.n // This private generator represents the `root` private key, and is what's // used by validators for signing when a keypair is generated from a seed. @@ -59,19 +59,18 @@ export function derivePrivateKey( // As returned by validation_create for a given seed return privateGen } - const publicGen = secp256k1.g.mul(privateGen) + const publicGen = + secp256k1.ProjectivePoint.BASE.multiply(privateGen).toRawBytes(true) // A seed can generate many keypairs as a function of the seed and a uint32. // Almost everyone just uses the first account, `0`. const accountIndex = opts.accountIndex || 0 - return deriveScalar(publicGen.encodeCompressed(), accountIndex) - .add(privateGen) - .mod(order) + return (deriveScalar(publicGen, accountIndex) + privateGen) % order } -export function accountPublicFromPublicGenerator(publicGenBytes) { - const rootPubPoint = secp256k1.curve.decodePoint(publicGenBytes) +export function accountPublicFromPublicGenerator(publicGenBytes: Uint8Array) { + const rootPubPoint = secp256k1.ProjectivePoint.fromHex(publicGenBytes) const scalar = deriveScalar(publicGenBytes, 0) - const point = secp256k1.g.mul(scalar) + const point = secp256k1.ProjectivePoint.BASE.multiply(scalar) const offset = rootPubPoint.add(point) - return offset.encodeCompressed() + return offset.toRawBytes(true) } diff --git a/packages/ripple-keypairs/src/types.ts b/packages/ripple-keypairs/src/types.ts new file mode 100644 index 0000000000..dbeb0a1b38 --- /dev/null +++ b/packages/ripple-keypairs/src/types.ts @@ -0,0 +1,35 @@ +export type HexString = string +export type Algorithm = 'ecdsa-secp256k1' | 'ed25519' +export type KeyType = 'private' | 'public' + +export interface KeyPair { + privateKey: HexString + publicKey: HexString +} + +export interface DeriveKeyPairOptions { + validator?: boolean + accountIndex?: number +} + +export interface SigningScheme { + deriveKeypair: ( + entropy: Uint8Array, + options?: DeriveKeyPairOptions, + ) => KeyPair + + sign: ( + // deriveKeyPair creates a Sha512.half as Uint8Array so that's why it takes this + // though it /COULD/ take HexString as well + // for consistency it should be Uint8Array | HexString everywhere, + // or HexString everywhere + message: Uint8Array, + privateKey: HexString, + ) => HexString + + verify: ( + message: Uint8Array, + signature: HexString, + publicKey: HexString, + ) => boolean +} diff --git a/packages/ripple-keypairs/src/utils.ts b/packages/ripple-keypairs/src/utils.ts deleted file mode 100644 index 564c4f65ef..0000000000 --- a/packages/ripple-keypairs/src/utils.ts +++ /dev/null @@ -1,27 +0,0 @@ -import * as assert from 'assert' -import * as hashjs from 'hash.js' -import BN = require('bn.js') - -function bytesToHex(a: Iterable | ArrayLike): string { - return Array.from(a, (byteValue) => { - const hex = byteValue.toString(16).toUpperCase() - return hex.length > 1 ? hex : `0${hex}` - }).join('') -} - -function hexToBytes(a): number[] { - assert.ok(a.length % 2 === 0) - // Special-case length zero to return []. - // BN.toArray intentionally returns [0] rather than [] for length zero, - // which may make sense for BigNum data, but not for byte strings. - return a.length === 0 ? [] : new BN(a, 16).toArray(null, a.length / 2) -} - -function computePublicKeyHash(publicKeyBytes: Buffer): Buffer { - const hash256 = hashjs.sha256().update(publicKeyBytes).digest() - - const hash160 = hashjs.ripemd160().update(hash256).digest() - return Buffer.from(hash160) -} - -export { bytesToHex, hexToBytes, computePublicKeyHash } diff --git a/packages/ripple-keypairs/src/utils/Sha512.ts b/packages/ripple-keypairs/src/utils/Sha512.ts new file mode 100644 index 0000000000..be5789d693 --- /dev/null +++ b/packages/ripple-keypairs/src/utils/Sha512.ts @@ -0,0 +1,36 @@ +import { sha512 } from '@xrplf/isomorphic/sha512' +import { bytesToNumberBE } from '@noble/curves/abstract/utils' + +type Input = Uint8Array | number[] | string + +export default class Sha512 { + // instantiate empty sha512 hash + hash = sha512.create() + + static half(input: Input): Uint8Array { + return new Sha512().add(input).first256() + } + + add(bytes: Input): this { + this.hash.update(bytes) + return this + } + + addU32(i: number): this { + const buffer = new Uint8Array(4) + new DataView(buffer.buffer).setUint32(0, i) + return this.add(buffer) + } + + finish(): Uint8Array { + return this.hash.digest() + } + + first256(): Uint8Array { + return this.finish().slice(0, 32) + } + + first256BigInt(): bigint { + return bytesToNumberBE(this.first256()) + } +} diff --git a/packages/ripple-keypairs/src/utils/assert.ts b/packages/ripple-keypairs/src/utils/assert.ts new file mode 100644 index 0000000000..0dd7ecb519 --- /dev/null +++ b/packages/ripple-keypairs/src/utils/assert.ts @@ -0,0 +1,11 @@ +const assertHelper: { + ok: (cond: boolean, message?: string) => asserts cond is true +} = { + ok(cond, message): asserts cond is true { + if (!cond) { + throw new Error(message) + } + }, +} + +export default assertHelper diff --git a/packages/ripple-keypairs/src/utils/getAlgorithmFromKey.ts b/packages/ripple-keypairs/src/utils/getAlgorithmFromKey.ts new file mode 100644 index 0000000000..b90e5a3ca8 --- /dev/null +++ b/packages/ripple-keypairs/src/utils/getAlgorithmFromKey.ts @@ -0,0 +1,121 @@ +import type { Algorithm, HexString, KeyType } from '../types' + +enum Prefix { + NONE = -1, + ED25519 = 0xed, + SECP256K1_PUB_X = 0x02, + SECP256K1_PUB_X_ODD_Y = 0x03, + SECP256K1_PUB_XY = 0x04, + SECP256K1_PRIVATE = 0x00, +} + +type CompositeKey = `${KeyType}_${Prefix}_${number}` + +/** + * | Curve | Type | Prefix | Length | Description | Algorithm | + * |-----------|-------------|:------:|:------:|-------------------------------------------------------|----------------:| + * | ed25519 | Private | 0xED | 33 | prefix + Uint256LE (0 < n < order ) | ed25519 | + * | ed25519 | Public | 0xED | 33 | prefix + 32 y-bytes | ed25519 | + * | secp256k1 | Public (1) | 0x02 | 33 | prefix + 32 x-bytes | ecdsa-secp256k1 | + * | secp256k1 | Public (2) | 0x03 | 33 | prefix + 32 x-bytes (y is odd) | ecdsa-secp256k1 | + * | secp256k1 | Public (3) | 0x04 | 65 | prefix + 32 x-bytes + 32 y-bytes | ecdsa-secp256k1 | + * | secp256k1 | Private (1) | None | 32 | Uint256BE (0 < n < order) | ecdsa-secp256k1 | + * | secp256k1 | Private (2) | 0x00 | 33 | prefix + Uint256BE (0 < n < order) | ecdsa-secp256k1 | + * + * Note: The 0x00 prefix for secpk256k1 Private (2) essentially 0 pads the number + * and the interpreted number is the same as 32 bytes. + */ +const KEY_TYPES: Record = { + [`private_${Prefix.NONE}_32`]: 'ecdsa-secp256k1', + [`private_${Prefix.SECP256K1_PRIVATE}_33`]: 'ecdsa-secp256k1', + [`private_${Prefix.ED25519}_33`]: 'ed25519', + [`public_${Prefix.ED25519}_33`]: 'ed25519', + [`public_${Prefix.SECP256K1_PUB_X}_33`]: 'ecdsa-secp256k1', + [`public_${Prefix.SECP256K1_PUB_X_ODD_Y}_33`]: 'ecdsa-secp256k1', + [`public_${Prefix.SECP256K1_PUB_XY}_65`]: 'ecdsa-secp256k1', +} + +function getKeyInfo(key: HexString) { + return { + prefix: key.length < 2 ? Prefix.NONE : parseInt(key.slice(0, 2), 16), + len: key.length / 2, + } +} + +function prefixRepr(prefix: Prefix): string { + return prefix === Prefix.NONE + ? 'None' + : `0x${prefix.toString(16).padStart(2, '0')}` +} + +function getValidFormatsTable(type: KeyType) { + // No need overkill with renderTable method + const padding = 2 + const colWidth = { + algorithm: 'ecdsa-secp256k1'.length + padding, + prefix: '0x00'.length + padding, + } + + return Object.entries(KEY_TYPES) + .filter(([key]) => key.startsWith(type)) + .map(([key, algorithm]) => { + const [, prefix, length] = key.split('_') + const paddedAlgo = algorithm.padEnd(colWidth.algorithm) + const paddedPrefix = prefixRepr(Number(prefix)).padEnd(colWidth.prefix) + return `${paddedAlgo} - Prefix: ${paddedPrefix} Length: ${length} bytes` + }) + .join('\n') +} + +function keyError({ + key, + type, + prefix, + len, +}: { + key: string + type: KeyType + prefix: number + len: number +}) { + const validFormats = getValidFormatsTable(type) + + return `invalid_key: + +Type: ${type} +Key: ${key} +Prefix: ${prefixRepr(prefix)} +Length: ${len} bytes + +Acceptable ${type} formats are: +${validFormats} +` +} + +/** + * Determines the algorithm associated with a given key (public/private). + * + * @param key - hexadecimal string representation of the key. + * @param type - whether expected key is public or private + * @returns Algorithm algorithm for signing/verifying + * @throws Error when key is invalid + */ +export function getAlgorithmFromKey(key: HexString, type: KeyType): Algorithm { + const { prefix, len } = getKeyInfo(key) + // Special case back compat support for no prefix + const usedPrefix = type === 'private' && len === 32 ? Prefix.NONE : prefix + const algorithm = KEY_TYPES[`${type}_${usedPrefix}_${len}`] + + if (!algorithm) { + throw new Error(keyError({ key, type, len, prefix: usedPrefix })) + } + return algorithm +} + +export function getAlgorithmFromPublicKey(key: HexString): Algorithm { + return getAlgorithmFromKey(key, 'public') +} + +export function getAlgorithmFromPrivateKey(key: HexString): Algorithm { + return getAlgorithmFromKey(key, 'private') +} diff --git a/packages/ripple-keypairs/test/api.test.ts b/packages/ripple-keypairs/test/api.test.ts index 3ac8885bb3..91c19d6189 100644 --- a/packages/ripple-keypairs/test/api.test.ts +++ b/packages/ripple-keypairs/test/api.test.ts @@ -1,116 +1,122 @@ -import assert from 'assert' -import * as fixtures from './fixtures/api.json' -import * as api from '../src' +import fixtures from './fixtures/api.json' +import { + decodeSeed, + deriveAddress, + deriveKeypair, + deriveNodeAddress, + generateSeed, + sign, + verify, +} from '../src' +import { stringToHex } from '@xrplf/isomorphic/utils' -const decodeSeed = api.decodeSeed const entropy = new Uint8Array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, ]) describe('api', () => { it('generateSeed - secp256k1', () => { - assert.strictEqual(api.generateSeed({ entropy }), fixtures.secp256k1.seed) + expect(generateSeed({ entropy })).toEqual(fixtures.secp256k1.seed) }) it('generateSeed - secp256k1, random', () => { - const seed = api.generateSeed() - assert(seed.startsWith('s')) + const seed = generateSeed() + expect(seed.startsWith('s')).toBeTruthy() const { type, bytes } = decodeSeed(seed) - assert(type === 'secp256k1') - assert(bytes.length === 16) + expect(type).toEqual('secp256k1') + expect(bytes.length).toEqual(16) }) it('generateSeed - ed25519', () => { - assert.strictEqual( - api.generateSeed({ entropy, algorithm: 'ed25519' }), + expect(generateSeed({ entropy, algorithm: 'ed25519' })).toEqual( fixtures.ed25519.seed, ) }) it('generateSeed - ed25519, random', () => { - const seed = api.generateSeed({ algorithm: 'ed25519' }) - assert(seed.startsWith('sEd')) + const seed = generateSeed({ algorithm: 'ed25519' }) + expect(seed.startsWith('sEd')).toBeTruthy() const { type, bytes } = decodeSeed(seed) - assert(type === 'ed25519') - assert(bytes.length === 16) + expect(type).toEqual('ed25519') + expect(bytes.length).toEqual(16) }) it('deriveKeypair - secp256k1', () => { - const keypair = api.deriveKeypair(fixtures.secp256k1.seed) - assert.deepEqual(keypair, fixtures.secp256k1.keypair) + const keypair = deriveKeypair(fixtures.secp256k1.seed) + expect(keypair).toEqual(fixtures.secp256k1.keypair) }) it('deriveKeypair - ed25519', () => { - const keypair = api.deriveKeypair(fixtures.ed25519.seed) - assert.deepEqual(keypair, fixtures.ed25519.keypair) + const keypair = deriveKeypair(fixtures.ed25519.seed) + expect(keypair).toEqual(fixtures.ed25519.keypair) }) it('deriveKeypair - secp256k1 - validator', () => { - const keypair = api.deriveKeypair(fixtures.secp256k1.seed, { + const keypair = deriveKeypair(fixtures.secp256k1.seed, { validator: true, }) - assert.deepEqual(keypair, fixtures.secp256k1.validatorKeypair) + expect(keypair).toEqual(fixtures.secp256k1.validatorKeypair) }) it('deriveKeypair - ed25519 - validator', () => { - const keypair = api.deriveKeypair(fixtures.ed25519.seed, { + const keypair = deriveKeypair(fixtures.ed25519.seed, { validator: true, }) - assert.deepEqual(keypair, fixtures.ed25519.validatorKeypair) + expect(keypair).toEqual(fixtures.ed25519.validatorKeypair) }) it('deriveAddress - secp256k1 public key', () => { - const address = api.deriveAddress(fixtures.secp256k1.keypair.publicKey) - assert.strictEqual(address, fixtures.secp256k1.address) + const address = deriveAddress(fixtures.secp256k1.keypair.publicKey) + expect(address).toEqual(fixtures.secp256k1.address) }) it('deriveAddress - ed25519 public key', () => { - const address = api.deriveAddress(fixtures.ed25519.keypair.publicKey) - assert.strictEqual(address, fixtures.ed25519.address) + const address = deriveAddress(fixtures.ed25519.keypair.publicKey) + expect(address).toEqual(fixtures.ed25519.address) }) it('sign - secp256k1', () => { const privateKey = fixtures.secp256k1.keypair.privateKey const message = fixtures.secp256k1.message - const messageHex = Buffer.from(message, 'utf8').toString('hex') - const signature = api.sign(messageHex, privateKey) - assert.strictEqual(signature, fixtures.secp256k1.signature) + const messageHex = stringToHex(message) + const signature = sign(messageHex, privateKey) + expect(signature).toEqual(fixtures.secp256k1.signature) }) it('verify - secp256k1', () => { const signature = fixtures.secp256k1.signature const publicKey = fixtures.secp256k1.keypair.publicKey const message = fixtures.secp256k1.message - const messageHex = Buffer.from(message, 'utf8').toString('hex') - assert(api.verify(messageHex, signature, publicKey)) + const messageHex = stringToHex(message) + expect(verify(messageHex, signature, publicKey)).toBeTruthy() }) it('sign - ed25519', () => { const privateKey = fixtures.ed25519.keypair.privateKey const message = fixtures.ed25519.message - const messageHex = Buffer.from(message, 'utf8').toString('hex') - const signature = api.sign(messageHex, privateKey) - assert.strictEqual(signature, fixtures.ed25519.signature) + const messageHex = stringToHex(message) + const signature = sign(messageHex, privateKey) + expect(signature).toEqual(fixtures.ed25519.signature) }) it('verify - ed25519', () => { const signature = fixtures.ed25519.signature const publicKey = fixtures.ed25519.keypair.publicKey const message = fixtures.ed25519.message - const messageHex = Buffer.from(message, 'utf8').toString('hex') - assert(api.verify(messageHex, signature, publicKey)) + const messageHex = stringToHex(message) + expect(verify(messageHex, signature, publicKey)).toBeTruthy() }) it('deriveNodeAddress', () => { const addrX = 'n9KHn8NfbBsZV5q8bLfS72XyGqwFt5mgoPbcTV4c6qKiuPTAtXYk' const addrY = 'rU7bM9ENDkybaxNrefAVjdLTyNLuue1KaJ' - assert.strictEqual(api.deriveNodeAddress(addrX), addrY) + expect(deriveNodeAddress(addrX)).toEqual(addrY) }) it('Random Address', () => { - const seed = api.generateSeed() - const keypair = api.deriveKeypair(seed) - const address = api.deriveAddress(keypair.publicKey) - assert(address.startsWith('r')) + const seed = generateSeed() + const keypair = deriveKeypair(seed) + const address = deriveAddress(keypair.publicKey) + expect(address.startsWith('r')).toBeTruthy() }) }) diff --git a/packages/ripple-keypairs/test/codec.test.ts b/packages/ripple-keypairs/test/codec.test.ts deleted file mode 100644 index 07ad8e9b9b..0000000000 --- a/packages/ripple-keypairs/test/codec.test.ts +++ /dev/null @@ -1,58 +0,0 @@ -import assert from 'assert' -import * as api from '@transia/ripple-address-codec' - -function toHex(bytes) { - return Buffer.from(bytes).toString('hex').toUpperCase() -} - -function toBytes(hex) { - return Buffer.from(hex, 'hex').toJSON().data -} - -describe('ripple-address-codec', function () { - function makeTest(type, base58, hex) { - it(`can translate between ${hex} and ${base58} (encode ${type})`, () => { - const actual = api[`encode${type}`](toBytes(hex)) - assert.equal(actual, base58) - }) - it(`can translate between ${base58} and ${hex} (decode ${type})`, () => { - const buf = api[`decode${type}`](base58) - assert.equal(toHex(buf), hex) - }) - } - - makeTest( - 'AccountID', - 'rJrRMgiRgrU6hDF4pgu5DXQdWyPbY35ErN', - 'BA8E78626EE42C41B46D46C3048DF3A1C3C87072', - ) - - makeTest( - 'NodePublic', - 'n9MXXueo837zYH36DvMc13BwHcqtfAWNJY5czWVbp7uYTj7x17TH', - '0388E5BA87A000CB807240DF8C848EB0B5FFA5C8E5A521BC8E105C0F0A44217828', - ) - - it('can decode arbitrary seeds', () => { - const decoded = api.decodeSeed('sEdTM1uX8pu2do5XvTnutH6HsouMaM2') - assert.equal(toHex(decoded.bytes), '4C3A1D213FBDFB14C7C28D609469B341') - assert.equal(decoded.type, 'ed25519') - - const decoded2 = api.decodeSeed('sn259rEFXrQrWyx3Q7XneWcwV6dfL') - assert.equal(toHex(decoded2.bytes), 'CF2DE378FBDD7E2EE87D486DFB5A7BFF') - assert.equal(decoded2.type, 'secp256k1') - }) - - it('can pass a type as second arg to encodeSeed', () => { - const edSeed = 'sEdTM1uX8pu2do5XvTnutH6HsouMaM2' - const decoded = api.decodeSeed(edSeed) - assert.equal(toHex(decoded.bytes), '4C3A1D213FBDFB14C7C28D609469B341') - assert.equal(decoded.type, 'ed25519') - if (decoded.type === null) { - assert.fail('decoded.type should not be null') - } - assert.equal(api.encodeSeed(decoded.bytes, decoded.type), edSeed) - }) -}) - -export {} diff --git a/packages/ripple-keypairs/test/getAlgorithmFromKey.test.ts b/packages/ripple-keypairs/test/getAlgorithmFromKey.test.ts new file mode 100644 index 0000000000..875db249ca --- /dev/null +++ b/packages/ripple-keypairs/test/getAlgorithmFromKey.test.ts @@ -0,0 +1,96 @@ +import { getAlgorithmFromKey } from '../src/utils/getAlgorithmFromKey' + +function hexData(count: number) { + // for our purposes any hex will do + return 'a'.repeat(count) +} + +// Remove leading tabs +function dedent(str) { + return `${str}`.replace(/(?\n)\s+/gu, '$1') +} + +describe('getAlgorithmFromKey', () => { + it('should return ed25519 for valid ed25519 private key', () => { + const privateKey = `ed${hexData(64)}` + expect(getAlgorithmFromKey(privateKey, 'private')).toEqual('ed25519') + }) + + it('should return ed25519 for valid ed25519 public key', () => { + const publicKey = `ed${hexData(64)}` + expect(getAlgorithmFromKey(publicKey, 'public')).toEqual('ed25519') + }) + + it('should return ecdsa-secp256k1 for valid secp256k1 private key without prefix', () => { + // 32 bytes, no prefix + const privateKey = hexData(64) + expect(getAlgorithmFromKey(privateKey, 'private')).toEqual( + 'ecdsa-secp256k1', + ) + }) + + it('should return ecdsa-secp256k1 for valid secp256k1 private key with 0x00 prefix', () => { + // 33 bytes, 0x00 prefix + const privateKey = `00${hexData(64)}` + expect(getAlgorithmFromKey(privateKey, 'private')).toEqual( + 'ecdsa-secp256k1', + ) + }) + + it('should return ecdsa-secp256k1 for valid secp256k1 public key with 0x02 prefix', () => { + // 33 bytes, 0x02 prefix + const publicKey = `02${hexData(64)}` + expect(getAlgorithmFromKey(publicKey, 'public')).toEqual('ecdsa-secp256k1') + }) + + it('should throw error for invalid private key format', () => { + // Invalid tag and length + const privateKey = `ff${hexData(60)}` + try { + getAlgorithmFromKey(privateKey, 'private') + } catch (error: unknown) { + if (error instanceof Error) { + expect(dedent(error.message)).toEqual( + dedent(`invalid_key: + + Type: private + Key: ffaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + Prefix: 0xff + Length: 31 bytes + + Acceptable private formats are: + ecdsa-secp256k1 - Prefix: None Length: 32 bytes + ecdsa-secp256k1 - Prefix: 0x00 Length: 33 bytes + ed25519 - Prefix: 0xed Length: 33 bytes + `), + ) + } + } + }) + + it('should throw error for invalid public key format', () => { + // Invalid tag and length + const publicKey = `ff${hexData(60)}` + try { + getAlgorithmFromKey(publicKey, 'public') + } catch (error: unknown) { + if (error instanceof Error) { + expect(dedent(error.message)).toEqual( + dedent(`invalid_key: + + Type: public + Key: ffaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + Prefix: 0xff + Length: 31 bytes + + Acceptable public formats are: + ed25519 - Prefix: 0xed Length: 33 bytes + ecdsa-secp256k1 - Prefix: 0x02 Length: 33 bytes + ecdsa-secp256k1 - Prefix: 0x03 Length: 33 bytes + ecdsa-secp256k1 - Prefix: 0x04 Length: 65 bytes + `), + ) + } + } + }) +}) diff --git a/packages/ripple-keypairs/test/utils.test.ts b/packages/ripple-keypairs/test/utils.test.ts deleted file mode 100644 index 2283845a20..0000000000 --- a/packages/ripple-keypairs/test/utils.test.ts +++ /dev/null @@ -1,29 +0,0 @@ -import assert from 'assert' -import * as utils from '../src/utils' - -describe('utils', function () { - it('hexToBytes - empty', () => { - assert.deepEqual(utils.hexToBytes(''), []) - }) - - it('hexToBytes - zero', () => { - assert.deepEqual(utils.hexToBytes('000000'), [0, 0, 0]) - }) - - it('hexToBytes - DEADBEEF', () => { - assert.deepEqual(utils.hexToBytes('DEADBEEF'), [222, 173, 190, 239]) - }) - - it('bytesToHex - DEADBEEF', () => { - assert.deepEqual(utils.bytesToHex([222, 173, 190, 239]), 'DEADBEEF') - }) - - it('bytesToHex - DEADBEEF (Uint8Array)', () => { - assert.deepEqual( - utils.bytesToHex(new Uint8Array([222, 173, 190, 239])), - 'DEADBEEF', - ) - }) -}) - -export {} diff --git a/packages/ripple-keypairs/test/webpack.config.js b/packages/ripple-keypairs/test/webpack.config.js new file mode 100644 index 0000000000..db2ec8642d --- /dev/null +++ b/packages/ripple-keypairs/test/webpack.config.js @@ -0,0 +1,9 @@ +'use strict' +const { merge } = require('webpack-merge') +const { webpackForTest } = require('../../../weback.test.config') +const { getDefaultConfiguration } = require('../../../webpack.config') + +module.exports = merge( + getDefaultConfiguration(), + webpackForTest('./test/index.ts', __dirname), +) diff --git a/packages/ripple-keypairs/test/xrp-codec.test.ts b/packages/ripple-keypairs/test/xrp-codec.test.ts deleted file mode 100644 index 015ba27836..0000000000 --- a/packages/ripple-keypairs/test/xrp-codec.test.ts +++ /dev/null @@ -1,99 +0,0 @@ -import assert from 'assert' -import * as api from '@transia/ripple-address-codec' - -function toHex(bytes: Buffer) { - return Buffer.from(bytes).toString('hex').toUpperCase() -} - -function toBytes(hex: string) { - return Buffer.from(hex, 'hex').toJSON().data -} - -describe('ripple-address-codec', function () { - describe('encodeSeed', function () { - it('encodes a secp256k1 seed', () => { - const result = api.encodeSeed( - Buffer.from(toBytes('CF2DE378FBDD7E2EE87D486DFB5A7BFF')), - 'secp256k1', - ) - assert.equal(result, 'sn259rEFXrQrWyx3Q7XneWcwV6dfL') - }) - - it('encodes low secp256k1 seed', () => { - const result = api.encodeSeed( - Buffer.from(toBytes('00000000000000000000000000000000')), - 'secp256k1', - ) - assert.equal(result, 'sp6JS7f14BuwFY8Mw6bTtLKWauoUs') - }) - - it('encodes high secp256k1 seed', () => { - const result = api.encodeSeed( - Buffer.from(toBytes('FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')), - 'secp256k1', - ) - assert.equal(result, 'saGwBRReqUNKuWNLpUAq8i8NkXEPN') - }) - - it('encodes an ed25519 seed', () => { - const result = api.encodeSeed( - Buffer.from(toBytes('4C3A1D213FBDFB14C7C28D609469B341')), - 'ed25519', - ) - assert.equal(result, 'sEdTM1uX8pu2do5XvTnutH6HsouMaM2') - }) - - it('encodes low ed25519 seed', () => { - const result = api.encodeSeed( - Buffer.from(toBytes('00000000000000000000000000000000')), - 'ed25519', - ) - assert.equal(result, 'sEdSJHS4oiAdz7w2X2ni1gFiqtbJHqE') - }) - - it('encodes high ed25519 seed', () => { - const result = api.encodeSeed( - Buffer.from(toBytes('FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')), - 'ed25519', - ) - assert.equal(result, 'sEdV19BLfeQeKdEXyYA4NhjPJe6XBfG') - }) - }) - - describe('decodeSeed', function () { - it('can decode an Ed25519 seed', () => { - const decoded = api.decodeSeed('sEdTM1uX8pu2do5XvTnutH6HsouMaM2') - assert.equal(toHex(decoded.bytes), '4C3A1D213FBDFB14C7C28D609469B341') - assert.equal(decoded.type, 'ed25519') - }) - - it('can decode a secp256k1 seed', () => { - const decoded = api.decodeSeed('sn259rEFXrQrWyx3Q7XneWcwV6dfL') - assert.equal(toHex(decoded.bytes), 'CF2DE378FBDD7E2EE87D486DFB5A7BFF') - assert.equal(decoded.type, 'secp256k1') - }) - }) - - describe('encodeAccountID', function () { - it('can encode an AccountID', () => { - const encoded = api.encodeAccountID( - Buffer.from(toBytes('BA8E78626EE42C41B46D46C3048DF3A1C3C87072')), - ) - assert.equal(encoded, 'rJrRMgiRgrU6hDF4pgu5DXQdWyPbY35ErN') - }) - }) - - describe('decodeNodePublic', function () { - it('can decode a NodePublic', () => { - const decoded = api.decodeNodePublic( - 'n9MXXueo837zYH36DvMc13BwHcqtfAWNJY5czWVbp7uYTj7x17TH', - ) - assert.equal( - toHex(decoded), - '0388E5BA87A000CB807240DF8C848EB0B5FFA5C8E5A521BC8E105C0F0A44217828', - ) - }) - }) -}) - -export {} diff --git a/packages/ripple-keypairs/tsconfig.build.json b/packages/ripple-keypairs/tsconfig.build.json new file mode 100644 index 0000000000..7f59b80d68 --- /dev/null +++ b/packages/ripple-keypairs/tsconfig.build.json @@ -0,0 +1,7 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "rootDir": "./src", + }, + "include": ["./src/**/*.ts", "./src/**/*.json"] +} diff --git a/packages/ripple-keypairs/tsconfig.json b/packages/ripple-keypairs/tsconfig.json index 40ef635a1c..999a8f3b3f 100644 --- a/packages/ripple-keypairs/tsconfig.json +++ b/packages/ripple-keypairs/tsconfig.json @@ -5,7 +5,6 @@ "declaration": true, "declarationMap": true, "outDir": "./dist", - "rootDir": "./src", "noImplicitAny": false, "noUnusedLocals": true, "noUnusedParameters": true, @@ -15,8 +14,15 @@ "strictNullChecks": true, "resolveJsonModule": true }, - "references": [{ - "path": "../ripple-address-codec/tsconfig.json" - }], - "include": ["src/**/*.ts"] + "references": [ + { + "path": "../isomorphic/tsconfig.build.json" + }, + { + "path": "../ripple-address-codec/tsconfig.build.json" + } + ], + "include": [ + "src/**/*.ts" + ] } diff --git a/packages/secret-numbers/.eslintignore b/packages/secret-numbers/.eslintignore new file mode 100644 index 0000000000..0fc0705592 --- /dev/null +++ b/packages/secret-numbers/.eslintignore @@ -0,0 +1,12 @@ +# Don't ever lint node_modules +node_modules + +# Don't lint build output +dist + +# don't lint nyc coverage output +coverage +.nyc_output + +# Don't lint NYC configuration +nyc.config.js diff --git a/packages/secret-numbers/.eslintrc.js b/packages/secret-numbers/.eslintrc.js new file mode 100644 index 0000000000..c8a3adcfa4 --- /dev/null +++ b/packages/secret-numbers/.eslintrc.js @@ -0,0 +1,47 @@ +module.exports = { + root: true, + + parser: "@typescript-eslint/parser", // Make ESLint compatible with TypeScript + parserOptions: { + // Enable linting rules with type information from our tsconfig + tsconfigRootDir: __dirname, + project: ["./tsconfig.eslint.json"], + + sourceType: "module", // Allow the use of imports / ES modules + + ecmaFeatures: { + impliedStrict: true, // Enable global strict mode + }, + }, + + // Specify global variables that are predefined + env: { + browser: true, // Enable browser global variables + node: true, // Enable node global variables & Node.js scoping + es2020: true, // Add all ECMAScript 2020 globals and automatically set the ecmaVersion parser option to ES2020 + }, + + plugins: [], + extends: ["@xrplf/eslint-config/base"], + + rules: { + // This creates a lot of false positives. We should turn this off in our + // general config. + "jsdoc/require-description-complete-sentence": "off", + + // ** TODO ** + // all of the below are turned off for now during the migration to a + // monorepo. They need to actually be addressed! + // ** + "@typescript-eslint/no-magic-numbers": "off", + "jsdoc/require-returns": "off", + "jsdoc/check-param-names": "off", + "jsdoc/require-throws": "off", + "jsdoc/require-jsdoc": "off", + "jsdoc/require-param": "off", + "jsdoc/check-examples": "off", // Not implemented in eslint 8 + "tsdoc/syntax": "off", + "@typescript-eslint/no-require-imports": "off", + "@typescript-eslint/explicit-member-accessibility": "off", + }, +}; diff --git a/packages/secret-numbers/HISTORY.md b/packages/secret-numbers/HISTORY.md new file mode 100644 index 0000000000..15311a3edf --- /dev/null +++ b/packages/secret-numbers/HISTORY.md @@ -0,0 +1,21 @@ +# @xrplf/secret-numbers (xrpl-secret-numbers) Release History + +Subscribe to [the **xrpl-announce** mailing list](https://groups.google.com/g/xrpl-announce) for release announcements. We recommend that `@xrplf/secret-numbers` users stay up-to-date with the latest stable release. + +## Unreleased + +## 1.0.0 (2024-02-01) + +### BREAKING CHANGES: +* `xrpl-secret-numbers` is now `@xrplf/secret-numbers`. +* 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. +* * Moved all methods that were on `Utils` are now individually exported. +* `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 +* Add `xrpl-secret-numbers` by @WietseWind to the mono repo. +* `unpkg` and `jsdelivr` support was simplified. +* Unit tests run in a browser and node. +* Remove `brorand` as a dependency and use `@xrplf/isomorphic` instead. +* Eliminates 4 runtime dependencies: `base-x`, `base64-js`, `buffer`, and `ieee754`. diff --git a/packages/secret-numbers/LICENSE b/packages/secret-numbers/LICENSE new file mode 100644 index 0000000000..d85dc9a85e --- /dev/null +++ b/packages/secret-numbers/LICENSE @@ -0,0 +1,15 @@ +ISC License + +Copyright (c) 2019-2023 Contributers to xrpl.js + +Permission to use, copy, modify, and distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/packages/secret-numbers/README.md b/packages/secret-numbers/README.md new file mode 100644 index 0000000000..b6afef5227 --- /dev/null +++ b/packages/secret-numbers/README.md @@ -0,0 +1,97 @@ +# XRPL Secret Numbers [![npm version](https://badge.fury.io/js/@xrplf%2Fsecret-numbers.svg)](https://www.npmjs.com/@xrplf/secret-numbers) + +For more background information, please read the [proposed Standard](https://github.com/xrp-community/standards-drafts/issues/15). + +A tool to convert Secret Numbers to the widely used Family Seed `s...` format is [available here](https://github.com/WietseWind/secret-numbers-to-family-seed/releases) + +A bundled version of this lib is available at NPM (`build/xrplf-secret-numbers-latest.js`), CDN: https://cdn.jsdelivr.net/npm/@xrplf/secret-numbers. You can access the library as `xrplf_secret_numbers`. Sample: +https://jsfiddle.net/WietseWind/uo1zy0q7/ + +#### Generate XRPL Accounts with a number-based secret: 8 chunks of 6 digits. + +The common formats for XRPL account secrets are (at the time of writing this, July 2019): + +- Family Seed, eg. `sh1HiK7SwjS1VxFdXi7qeMHRedrYX` +- Mnemonic, eg. `car banana apple road ...` + +These formats are prone to typo's and not that user friendly. Using numbers means it's language (spoken, written) agnostic as well. They may be especially intimidating for the public that's relatively new to cryptocurrencies / blockchain technology. + +This library encodes the entropy to generate accounts into 8 chunks of 6 digits, of which 5 digits are 1/8th of the entropy, and a 6th digit contains a checksum allowing realtime typo detection. + +##### A secret now looks like: + +``` +554872 394230 209376 323698 +140250 387423 652803 258676 +``` + +For compatibility with existing clients, this library supports exporting the family seed for a generated / entered "Secret Number"-set as well. + +## API + +The typescript code to use resides in `./src/` and the compiled js in `./dist/` of the package. See the `./samples/` folder for some simple JS samples. + +##### Generating a new account: + +``` +const {Account} = require('@xrplf/secret-numbers') +const account = new Account() +``` + +##### Importing an existing account: + +``` +const {Account} = require('@xrplf/secret-numbers') +const secret = '399150 474506 009147 088773 432160 282843 253738 605430' +const account = new Account(secret) +``` + +Or importing with custom entropy (buffer, 16): + +``` +const {Account} = require('@xrplf/secret-numbers') +const entropy = Buffer.from('0123456789ABCDEF0123456789ABCDEF', 'hex') +const account = new Account(entropy) +``` + +##### After generating / importing: + +You can fetch the account details (address, secret, etc.) using these methods: + +``` +console.log(account.getAddress()) +console.log(account.getSecret()) +``` + +##### Available methods: + +- `getSecret()`: Array[8] +- `getSecretString()`: string `012345 456789 ...` +- `getAddress()`: string `rXXXXXXXX...` +- `getFamilySeed()`: string `sXXXXXXXX...` +- `getKeypair()`: `Keypair({privateKey, publicKey}` + +##### To split/check/encode/decode some more: + +There's a `Utils` export as well: + +``` +const {Account, Utils} = require('@xrplf/secret-numbers') +``` + +Some Utils methods (that you may want to use in your UI / ... before using the Account constructor): + + - To calculate the 6th decimal for a group of 5 digits: + `calculateChecksum(position: number, value: number)`: number + - To check a checksum (either sliced or the 6th char of a string containing numbers: + `checkChecksum(position: number, value: number | string, checksum?: number)`: Boolean + +## Development + +Run `npm run prepublish` to clean, lint, test and build. Or just run `npm run build`, `npm run test` or `npm run lint`. + +Tests are in `./test/` + +## Credits + +This concept is based on an idea by [@nbougalis](https://github.com/nbougalis). diff --git a/packages/secret-numbers/jest.config.js b/packages/secret-numbers/jest.config.js new file mode 100644 index 0000000000..e508e8bda8 --- /dev/null +++ b/packages/secret-numbers/jest.config.js @@ -0,0 +1,8 @@ +// Jest configuration for api +const base = require("../../jest.config.base.js"); + +module.exports = { + ...base, + roots: [...base.roots, "/test"], + displayName: "@xrplf/secret-numbers", +}; diff --git a/packages/secret-numbers/karma.config.js b/packages/secret-numbers/karma.config.js new file mode 100644 index 0000000000..ccafdf0463 --- /dev/null +++ b/packages/secret-numbers/karma.config.js @@ -0,0 +1,14 @@ +const webpackConfig = require("./test/webpack.config"); +const baseKarmaConfig = require("../../karma.config"); +delete webpackConfig.entry; + +module.exports = function (config) { + config.set({ + webpack: webpackConfig, + + // list of files / patterns to load in the browser + files: ["build/xrplf-secret-numbers-latest.js", "test/*.test.ts"], + }); + + baseKarmaConfig(config); +}; diff --git a/packages/secret-numbers/package.json b/packages/secret-numbers/package.json new file mode 100644 index 0000000000..d1eff80d79 --- /dev/null +++ b/packages/secret-numbers/package.json @@ -0,0 +1,48 @@ +{ + "name": "@xrplf/secret-numbers", + "version": "1.0.0", + "description": "Generate XRPL Accounts with a number-based secret: 8 chunks of 6 digits", + "main": "dist/index.js", + "unpkg": "build/xrplf-secret-numbers-latest-min.js", + "jsdelivr": "build/xrplf-secret-numbers-latest-min.js", + "types": "dist/index.d.ts", + "scripts": { + "prepublish": "npm run clean && npm run lint && npm run test && npm run test:browser && npm run build", + "clean": "rm -rf ./dist ./coverage ./test/testCompiledForWeb tsconfig.build.tsbuildinfo", + "test": "jest --verbose", + "test:browser": "npm run build && npm run build:browserTests && karma start ./karma.config.js", + "build": "run-s build:lib build:web", + "build:lib": "tsc --build tsconfig.build.json", + "build:web": "webpack", + "build:browserTests": "webpack --config ./test/webpack.config.js", + "lint": "eslint . --ext .ts --ext .test.ts --fix", + "analyze": "webpack --analyze" + }, + "files": [ + "build/*", + "dist/**/*.js", + "dist/**/*.js.map", + "dist/**/*.d.ts", + "src/*" + ], + "directories": { + "test": "test" + }, + "dependencies": { + "ripple-keypairs": "npm:@transia/ripple-keypairs@^2.0.0-alpha.0", + "@xrplf/isomorphic": "^1.0.0" + }, + "prettier": "@xrplf/prettier-config", + "repository": { + "type": "git", + "url": "git@github.com:XRPLF/xrpl.js.git" + }, + "license": "ISC", + "readmeFilename": "README.md", + "keywords": [ + "xrp", + "xrpl-ledger", + "multi sign", + "sign" + ] +} diff --git a/packages/secret-numbers/samples/es5.js b/packages/secret-numbers/samples/es5.js new file mode 100644 index 0000000000..4e9da83d4b --- /dev/null +++ b/packages/secret-numbers/samples/es5.js @@ -0,0 +1,26 @@ +const {Account} = require('../dist/') + +console.log(`😎 Generate an account`) +const generatedAccount = new Account() +console.log(`\n Generated account address\n `, generatedAccount.getAddress()) +console.log(`\n Generated numbers (secret)\n `, generatedAccount.getSecretString()) + +console.log(`\n\n`) + +const account = [ + '399150', '474506', '009147', '088773', '432160', '282843', '253738', '605430' +] +console.log(`😎 Import account "${account.join(' ')}"`) +const importedAccount = new Account(account) +console.log(`\n Imported account address\n `, importedAccount.getAddress()) +console.log(`\n Imported account family seed\n `, importedAccount.getFamilySeed()) + +console.log(`\n\n`) + +const entropy = Buffer.from('0123456789ABCDEF0123456789ABCDEF', 'hex') +console.log(`😎 Import account from entropy buffer "${entropy.toString('hex')}"`) +const entropyAccount = new Account(entropy) +console.log(`\n Imported account address\n `, entropyAccount.getAddress()) +console.log(`\n Imported account family seed\n `, entropyAccount.getFamilySeed()) + +console.log(`\n\n`) diff --git a/packages/secret-numbers/src/index.ts b/packages/secret-numbers/src/index.ts new file mode 100644 index 0000000000..4478f58788 --- /dev/null +++ b/packages/secret-numbers/src/index.ts @@ -0,0 +1,2 @@ +export * from './schema/Account' +export * from './utils' diff --git a/packages/secret-numbers/src/schema/Account.ts b/packages/secret-numbers/src/schema/Account.ts new file mode 100644 index 0000000000..03678d0716 --- /dev/null +++ b/packages/secret-numbers/src/schema/Account.ts @@ -0,0 +1,101 @@ +import { deriveAddress, deriveKeypair, generateSeed } from 'ripple-keypairs' + +import { + entropyToSecret, + parseSecretString, + randomSecret, + secretToEntropy, +} from '../utils' + +/* Types ==================================================================== */ + +export interface Keypair { + publicKey: string + privateKey: string +} + +interface AccountData { + familySeed: string + address: string + keypair: Keypair +} + +/* Class ==================================================================== */ + +export class Account { + private readonly _secret: string[] + private readonly _account: AccountData = { + familySeed: '', + address: '', + keypair: { + publicKey: '', + privateKey: '', + }, + } + + constructor(secretNumbers?: string[] | string | Uint8Array) { + if (typeof secretNumbers === 'string') { + this._secret = parseSecretString(secretNumbers) + } else if (Array.isArray(secretNumbers)) { + this._secret = secretNumbers + } else if (secretNumbers instanceof Uint8Array) { + this._secret = entropyToSecret(secretNumbers) + } else { + this._secret = randomSecret() + } + + validateLengths(this._secret) + this.derive() + } + + getSecret(): string[] { + return this._secret + } + + getSecretString(): string { + return this._secret.join(' ') + } + + getAddress(): string { + return this._account.address + } + + getFamilySeed(): string { + return this._account.familySeed + } + + getKeypair(): Keypair { + return this._account.keypair + } + + toString(): string { + return this.getSecretString() + } + + private derive(): void { + try { + const entropy = secretToEntropy(this._secret) + this._account.familySeed = generateSeed({ entropy }) + this._account.keypair = deriveKeypair(this._account.familySeed) + this._account.address = deriveAddress(this._account.keypair.publicKey) + } catch (error) { + let message = 'Unknown Error' + if (error instanceof Error) { + message = error.message + } + // we'll proceed, but let's report it + throw new Error(message) + } + } +} + +function validateLengths(secretNumbers: string[]): void { + if (secretNumbers.length !== 8) { + throw new Error('Secret must have 8 numbers') + } + secretNumbers.forEach((num) => { + if (num.length !== 6) { + throw new Error('Each secret number must be 6 digits') + } + }) +} diff --git a/packages/secret-numbers/src/utils/index.ts b/packages/secret-numbers/src/utils/index.ts new file mode 100644 index 0000000000..47b9bd9a96 --- /dev/null +++ b/packages/secret-numbers/src/utils/index.ts @@ -0,0 +1,95 @@ +import { + bytesToHex, + concat, + hexToBytes, + randomBytes, +} from '@xrplf/isomorphic/utils' + +function randomEntropy(): Uint8Array { + return randomBytes(16) +} + +function calculateChecksum(position: number, value: number): number { + return (value * (position * 2 + 1)) % 9 +} + +function checkChecksum( + position: number, + value: number | string, + checksum?: number, +): boolean { + let normalizedChecksum: number + let normalizedValue: number + + if (typeof value === 'string') { + if (value.length !== 6) { + throw new Error('value must have a length of 6') + } + normalizedChecksum = parseInt(value.slice(5), 10) + normalizedValue = parseInt(value.slice(0, 5), 10) + } else { + if (typeof checksum !== 'number') { + throw new Error('checksum must be a number when value is a number') + } + normalizedChecksum = checksum + normalizedValue = value + } + return (normalizedValue * (position * 2 + 1)) % 9 === normalizedChecksum +} + +function entropyToSecret(entropy: Uint8Array): string[] { + const len = new Array(Math.ceil(entropy.length / 2)) + const chunks = Array.from(len, (_a, chunk) => { + const buffChunk = entropy.slice(chunk * 2, (chunk + 1) * 2) + const no = parseInt(bytesToHex(buffChunk), 16) + const fill = '0'.repeat(5 - String(no).length) + return fill + String(no) + String(calculateChecksum(chunk, no)) + }) + if (chunks.length !== 8) { + throw new Error('Chucks must have 8 digits') + } + return chunks +} + +function randomSecret(): string[] { + return entropyToSecret(randomEntropy()) +} + +function secretToEntropy(secret: string[]): Uint8Array { + return concat( + secret.map((chunk, i) => { + const no = Number(chunk.slice(0, 5)) + const checksum = Number(chunk.slice(5)) + if (chunk.length !== 6) { + throw new Error('Invalid secret: number invalid') + } + if (!checkChecksum(i, no, checksum)) { + throw new Error('Invalid secret part: checksum invalid') + } + const hex = `0000${no.toString(16)}`.slice(-4) + return hexToBytes(hex) + }), + ) +} + +function parseSecretString(secret: string): string[] { + const normalizedSecret = secret.replace(/[^0-9]/gu, '') + if (normalizedSecret.length !== 48) { + throw new Error( + 'Invalid secret string (should contain 8 blocks of 6 digits', + ) + } + return Array.from(new Array(8), (_a, index) => { + return normalizedSecret.slice(index * 6, (index + 1) * 6) + }) +} + +export { + randomEntropy, + randomSecret, + entropyToSecret, + secretToEntropy, + calculateChecksum, + checkChecksum, + parseSecretString, +} diff --git a/packages/secret-numbers/test/api.test.ts b/packages/secret-numbers/test/api.test.ts new file mode 100644 index 0000000000..b9c4c7cb0b --- /dev/null +++ b/packages/secret-numbers/test/api.test.ts @@ -0,0 +1,96 @@ +import { hexToBytes } from '@xrplf/isomorphic/utils' +import { deriveAddress, deriveKeypair, generateSeed } from 'ripple-keypairs' + +import { Account, secretToEntropy } from '../src' + +describe('API: XRPL Secret Numbers', () => { + describe('Generate new account', () => { + const account = new Account() + it('Output sanity checks', () => { + expect(account.getAddress()).toMatch(/^r[a-zA-Z0-9]{19,}$/u) + const entropy = secretToEntropy(`${account.toString()}`.split(' ')) + const familySeed = generateSeed({ entropy }) + const keypair = deriveKeypair(familySeed) + const address = deriveAddress(keypair.publicKey) + expect(address).toEqual(account.getAddress()) + expect(familySeed).toEqual(account.getFamilySeed()) + }) + }) + + describe('Account based on entropy', () => { + const entropy = hexToBytes('0123456789ABCDEF0123456789ABCDEF') + const account = new Account(entropy) + + it('familySeed as expected', () => { + expect(account.getFamilySeed()).toEqual('sp5DmDCut79BpgumfHhvRzdxXYQyU') + }) + it('address as expected', () => { + expect(account.getAddress()).toEqual('rMCcybKHfwCSkDHd3M36PAeUniEoygwjR3') + }) + it('Account object to string as expected', () => { + const accountAsStr = + '002913 177673 352434 527196 002910 177672 352435 527190' + expect(`${account.toString()}`).toEqual(accountAsStr) + }) + }) + + describe('Account based on existing secret', () => { + const secret = [ + '084677', + '005323', + '580272', + '282388', + '626800', + '105300', + '560913', + '071783', + ] + + const account = new Account(secret) + + it('familySeed as expected', () => { + expect(account.getFamilySeed()).toEqual('sswpWwri7Y11dNCSmXdphgcoPZk3y') + }) + it('publicKey as expected', () => { + const pubkey = + '020526A0EDC9123F7FBB7588402518B80FCD2C8D8AB4C45F5A68A2F220098EA06F' + expect(account.getKeypair().publicKey).toEqual(pubkey) + }) + it('privateKey as expected', () => { + const privkey = + '005122B2127B4635FEE7D242FA6EC9B02B611C04494D0D7D49764374D90C8BC8D3' + expect(account.getKeypair().privateKey).toEqual(privkey) + }) + it('address as expected', () => { + expect(account.getAddress()).toEqual('rfqJsRLLmr7wdWnEzW1mP6AVaPSdzmso9Z') + }) + it('Account object to string as expected', () => { + const accountAsStr = + '084677 005323 580272 282388 626800 105300 560913 071783' + expect(`${account.toString()}`).toEqual(accountAsStr) + }) + }) + + describe('Checksum error', () => { + const secret = [ + '084677', + '005324', + '580272', + '626800', + '282388', + '105300', + '560913', + '071783', + ] + it('Should throw an Checksum Error', () => { + expect(() => { + // eslint-disable-next-line no-new -- Don't want unused variable + new Account(secret) + }) + // TODO: Remove if jest is removed. + // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- Jest and Jasmine have two different signatures. + // @ts-expect-error + .toThrowError(Error, 'Invalid secret part: checksum invalid') + }) + }) +}) diff --git a/packages/secret-numbers/test/index.ts b/packages/secret-numbers/test/index.ts new file mode 100644 index 0000000000..856e1b127a --- /dev/null +++ b/packages/secret-numbers/test/index.ts @@ -0,0 +1 @@ +/* eslint-disable import/unambiguous -- silence is golden */ diff --git a/packages/secret-numbers/test/utils.test.ts b/packages/secret-numbers/test/utils.test.ts new file mode 100644 index 0000000000..4dc725bf51 --- /dev/null +++ b/packages/secret-numbers/test/utils.test.ts @@ -0,0 +1,115 @@ +import { bytesToHex, hexToBytes } from '@xrplf/isomorphic/utils' + +import { + calculateChecksum, + checkChecksum, + entropyToSecret, + parseSecretString, + randomEntropy, + randomSecret, + secretToEntropy, +} from '../src/utils' + +describe('Utils', () => { + it('randomEntropy: valid output', () => { + const data = randomEntropy() + expect(typeof data).toEqual('object') + expect(data instanceof Uint8Array).toBeTruthy() + expect(data.length).toEqual(16) + expect(bytesToHex(data).length).toEqual(32) + expect(bytesToHex(data)).toMatch(/^[A-F0-9]+$/u) + }) + + it('calculateChecksum: 1st position', () => { + expect(calculateChecksum(0, 55988)).toEqual(8) + }) + + it('calculateChecksum: 8th position', () => { + expect(calculateChecksum(7, 49962)).toEqual(0) + }) + + it('checkChecksum: 2nd position, split numbers', () => { + expect(checkChecksum(1, 55450, 3)).toBeTruthy() + }) + + it('checkChecksum: 7th position, split numbers', () => { + expect(checkChecksum(6, 18373, 7)).toBeTruthy() + }) + + it('checkChecksum: 4th position, as string', () => { + expect(checkChecksum(3, '391566')).toBeTruthy() + }) + + it('randomSecret: valid checksums', () => { + randomSecret() + expect(0).toEqual(0) + }) + + it('randomSecret: valid output', () => { + const data = randomSecret() + expect(Array.isArray(data)).toBeTruthy() + expect(data.length).toEqual(8) + expect(typeof data[0]).toEqual('string') + expect(data[0].length).toEqual(6) + expect(data[7].length).toEqual(6) + }) + + it('entropyToSecret', () => { + const entropy = hexToBytes('76ebb2d06879b45b7568fb9c1ded097c') + const secret = [ + '304435', + '457766', + '267453', + '461717', + '300560', + '644127', + '076618', + '024286', + ] + expect(entropyToSecret(entropy)).toEqual(secret) + }) + + it('secretToEntropy', () => { + const secret = [ + '304435', + '457766', + '267453', + '461717', + '300560', + '644127', + '076618', + '024286', + ] + const entropy = hexToBytes('76ebb2d06879b45b7568fb9c1ded097c') + expect(secretToEntropy(secret)).toEqual(entropy) + }) + + it('parseSecretString with spaces valid', () => { + const secret = [ + '304435', + '457766', + '267453', + '461717', + '300560', + '644127', + '076618', + '024286', + ] + expect( + parseSecretString( + '304435 457766 267453 461717 300560 644127 076618 024286', + ), + ).toEqual(secret) + expect( + parseSecretString('304435457766267453461717300560644127076618024286'), + ).toEqual(secret) + expect( + parseSecretString(` + 304435 457766 + 267453 461717 + 300560 644127 + 076618 024286 + `), + ).toEqual(secret) + }) +}) diff --git a/packages/secret-numbers/test/webpack.config.js b/packages/secret-numbers/test/webpack.config.js new file mode 100644 index 0000000000..a99403f1a6 --- /dev/null +++ b/packages/secret-numbers/test/webpack.config.js @@ -0,0 +1,9 @@ +"use strict"; +const { merge } = require("webpack-merge"); +const { webpackForTest } = require("../../../weback.test.config"); +const baseConfig = require("../webpack.base.config"); + +module.exports = merge( + baseConfig, + webpackForTest("./test/index.ts", __dirname) +); diff --git a/packages/secret-numbers/tsconfig.build.json b/packages/secret-numbers/tsconfig.build.json new file mode 100644 index 0000000000..34f205ac23 --- /dev/null +++ b/packages/secret-numbers/tsconfig.build.json @@ -0,0 +1,12 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "rootDir": "./src", + }, + "include": ["./src/**/*.ts", "./src/**/*.json"], + "references": [ + { + "path": "../ripple-keypairs/tsconfig.json" + } + ] +} diff --git a/packages/secret-numbers/tsconfig.eslint.json b/packages/secret-numbers/tsconfig.eslint.json new file mode 100644 index 0000000000..fb1f25450a --- /dev/null +++ b/packages/secret-numbers/tsconfig.eslint.json @@ -0,0 +1,4 @@ +{ + "extends": "./tsconfig.json", + "include": ["src/**/*.ts", "test/**/*.ts"] +} diff --git a/packages/secret-numbers/tsconfig.json b/packages/secret-numbers/tsconfig.json new file mode 100644 index 0000000000..fcb2dad123 --- /dev/null +++ b/packages/secret-numbers/tsconfig.json @@ -0,0 +1,20 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "pretty": true, + "target": "es6", + "lib": ["es2019", "dom"], + "outDir": "./dist", + "declaration": true, + "declarationMap": true, + "strictNullChecks": true, + "noImplicitAny": false, + "noUnusedLocals": true, + "removeComments": true, + "preserveConstEnums": false, + "esModuleInterop": true, + "resolveJsonModule": true, + "preserveSymlinks": true + }, + "include": ["src/**/*.ts", "src/**/*.json"] +} diff --git a/packages/secret-numbers/webpack.base.config.js b/packages/secret-numbers/webpack.base.config.js new file mode 100644 index 0000000000..814959ef93 --- /dev/null +++ b/packages/secret-numbers/webpack.base.config.js @@ -0,0 +1,14 @@ +"use strict"; +const { merge } = require("webpack-merge"); +const { getDefaultConfiguration, wrapForEnv } = require("../../webpack.config"); +const path = require("path"); + +module.exports = merge(getDefaultConfiguration(), { + entry: "./dist/index.js", + // overriding the output path and filename + output: { + library: "xrplf_secret_numbers", + filename: `xrplf-secret-numbers.default.js`, + path: path.join(__dirname, "build/"), + }, +}); diff --git a/packages/secret-numbers/webpack.config.js b/packages/secret-numbers/webpack.config.js new file mode 100644 index 0000000000..fa008d687a --- /dev/null +++ b/packages/secret-numbers/webpack.config.js @@ -0,0 +1,8 @@ +const path = require("path"); +const { getDefaultConfiguration, wrapForEnv } = require("../../webpack.config"); +const { merge } = require("webpack-merge"); + +module.exports = wrapForEnv( + "xrplf-secret-numbers", + merge(getDefaultConfiguration(), require("./webpack.base.config")) +); diff --git a/packages/xrpl/.eslintignore b/packages/xrpl/.eslintignore index 1d39d0006a..b24141f320 100644 --- a/packages/xrpl/.eslintignore +++ b/packages/xrpl/.eslintignore @@ -2,3 +2,5 @@ dist node_modules .github .vscode +karma.config.js +karma-setup.js diff --git a/packages/xrpl/.eslintrc.js b/packages/xrpl/.eslintrc.js index f0264d8fcb..2321616dfa 100644 --- a/packages/xrpl/.eslintrc.js +++ b/packages/xrpl/.eslintrc.js @@ -59,9 +59,13 @@ module.exports = { 'no-shadow': 'off', '@typescript-eslint/no-shadow': ['error'], 'jsdoc/check-examples': 'off', + // We want to use certain fields like "@interface" to make join types treated as interfaces. + 'jsdoc/check-tag-names': 'off', + 'jsdoc/require-hyphen-before-param-description': 'off', 'tsdoc/syntax': 'off', 'jsdoc/require-description-complete-sentence': 'off', + 'import/prefer-default-export': 'off', }, overrides: [ { @@ -80,7 +84,6 @@ module.exports = { 'max-statements': 'off', // Snippets have logs on console to better understand the working. 'no-console': 'off', - 'import/no-extraneous-dependencies': 'off', }, }, { @@ -124,6 +127,12 @@ module.exports = { '@typescript-eslint/no-explicit-any': 'off', }, }, + { + files: ['src/models/**/*.ts'], + rules: { + complexity: ['off'], + }, + }, { files: ['.eslintrc.js', 'jest.config.js'], rules: { @@ -137,5 +146,17 @@ module.exports = { 'import/no-unused-modules': 'off', }, }, + { + files: ['tools/*.ts', 'tools/*.js'], + rules: { + 'no-console': ['off'], + 'node/no-process-exit': ['off'], + '@typescript-eslint/no-magic-numbers': ['off'], + 'max-lines-per-function': ['off'], + 'max-statements': ['off'], + complexity: ['off'], + 'max-depth': ['warn', 3], + }, + }, ], } diff --git a/packages/xrpl/.gitignore b/packages/xrpl/.gitignore index a54fdc4067..8dac6e5bbd 100644 --- a/packages/xrpl/.gitignore +++ b/packages/xrpl/.gitignore @@ -1,75 +1,3 @@ -# .gitignore - -# Ignore package locks other than npm. -yarn.lock -npm-shrinkwrap.json - -# Ignore vim swap files. -*.swp - -# Ignore SCons support files. -.sconsign.dblite - -# Ignore python compiled files. -*.pyc - -# Ignore Macintosh Desktop Services Store files. -.DS_Store - -# Ignore backup/temps -*~ - -# Ignore object files. -*.o -build/ -tags -bin/rippled -Debug/*.* -Release/*.* - -# Ignore locally installed node_modules -node_modules -!test/node_modules - -# Ignore tmp directory. -tmp - -# Ignore database directory. -db/*.db -db/*.db-* - -# Ignore customized configs -rippled.cfg -validators.txt -test/config.js - -# Ignore coverage files -/lib-cov -/src-cov -/coverage.html -/coverage - -# Ignore IntelliJ files -.idea - -# Ignore npm-debug -npm-debug.log - -# Ignore dist folder, built from tsc -dist/ - -# TypeScript incremental compilation cache -*.tsbuildinfo - -# Ignore perf test cache -scripts/cache - -.eslintrc - -# nyc (istanbul) -.nyc_output - -# browser tests -testCompiledForWeb - -dist-doc/ +# Replaced by root README during the prepare lifecycle phase because npm does not allow symlinking README files +# https://docs.npmjs.com/cli/v7/using-npm/scripts#npm-publish +README.md diff --git a/packages/xrpl/.nycrc b/packages/xrpl/.nycrc deleted file mode 100644 index 1aabf3e38f..0000000000 --- a/packages/xrpl/.nycrc +++ /dev/null @@ -1,10 +0,0 @@ -{ - "include": ["src/**/*.ts"], - "exclude": ["src/**/*.d.ts"], - "extension": [".ts"], - "require": ["ts-node/register"], - "reporter": ["text-summary", "html"], - "sourceMap": true, - "instrument": true, - "cache": true -} \ No newline at end of file diff --git a/packages/xrpl/HISTORY.md b/packages/xrpl/HISTORY.md index c21b9eb853..00c452d576 100644 --- a/packages/xrpl/HISTORY.md +++ b/packages/xrpl/HISTORY.md @@ -1,13 +1,206 @@ -# xrpl.js (ripple-lib) Release History +# xrpl.js Release History Subscribe to [the **xrpl-announce** mailing list](https://groups.google.com/g/xrpl-announce) for release announcements. We recommend that xrpl.js (ripple-lib) users stay up-to-date with the latest stable release. -## Unreleased + +## 4.0.0 (2024-07-15) + +### BREAKING CHANGES +* Use rippled api_version v2 as default while maintaining support for v1. ### Added -* Null and undefined values in transactions are now treated as though the field was not passed in. +* Add `nfts_by_issuer` clio-only API definition +* Support for the `fixPreviousTxnID` amendment. +* Support for the user version of the `feature` RPC. +* Add `hash` field to `ledger` command response + +### Removed +* Remove references to the Hooks testnet faucet in the xrpl.js code repository. + +## 3.1.0 (2024-06-03) + +### BREAKING CHANGES +* Small fix in the API to use a new flag name `tfNoDirectRipple` instead of the existing flag name `tfNoRippleDirect` +* Node.js has been upgraded to a minimum version of 18 +* `fetch` now relies on the native javascript environment in browsers and Node.js + +### Added +* Support for the Price Oracles amendment (XLS-47). + +### Fixed +* Typo in `Channel` type `source_tab` -> `source_tag` +* Fix `client.requestAll` to handle filters better +* Add the missing `AMMDeposit` flag `tfTwoAssetIfEmpty` +* Add missing `lsfAMMNode` flag to `RippleState` ledger object +* Add `PreviousFields` to `DeletedNode` metadata type + +## 3.0.0 (2024-02-01) + +### BREAKING CHANGES +* Bump typescript to 5.x +* Remove Node 14 support +* Remove `crypto` polyfills, `create-hash`, `elliptic`, `hash.js`, and their many dependencies in favor of `@noble/hashes` and `@nobel/curves` +* Remove `bip32` and `bip39` in favor of `@scure/bip32` and `@scure/bip39` +* Remove `assert` dependency. If you were catching `AssertionError` you need to change to `Error` +* Configuring a proxy: + * Instead of passing various parameters on the `ConnectionsOptions` you know specify the `agent` parameter. This object can use be created by libraries such as `https-proxy-agent` or any that implements the `http.Agent`. + * This was changed to both support the latest `https-proxy-agent` and to remove the need to include the package in bundlers. Tests will still be done using `https-proxy-agent` and only tested in a node environment which was the only way it was previously supported anyway +* Remove `BroadcastClient` which was deprecated +* Uses `@xrplf/secret-numbers` instead of `xrpl-secret-numbers` +* Improve key algorithm detection. It will now throw Errors with helpful messages +* Move `authorizeChannel` from `wallet/signer` to `wallet/authorizeChannel` to solve a circular dependency issue. +* When using a bundler you must remove the mapping of `ws` to `WSWrapper`. ex. `ws: 'xrpl/dist/npm/client/WSWrapper'`. See [../UNIQUE_STEPS](Unique Steps) for the new, much smaller, configs. +* `Transaction` type has been redefined to include all transactions and `SubmittableTransaction` was created to define the old value. The following functions which only handle transactions to be submitted now use `SubmittableTransaction`: + * `Client.autofill` + * `Client.submit` + * `Client.submitAndWait` + * `Client.prepareTransaction` + * `getSignedTx` + * `isAccountDelete` +* `dropsToXRP` and `Client.getXrpBalance` now return a `number` instead of a `string` +* `Buffer` has been replaced with `UInt8Array` for both params and return values. `Buffer` may continue to work with params since they extend `UInt8Arrays`. + +### Bundling Changes +Bundler configurations are much more simplified. See [../UNIQUE_STEPS](Unique Steps) for the new, much smaller, configs. +* removed the following polyfills: + * `buffer` + * `assert` + * `crypto-browserify` + * `https-browserify` + * `os-browserify` + * `process` + * `stream-browserify` + * `stream-http` + * `url` + * `util` - previously added automatically by `webpack` + * `events` - previously added automatically by `webpack` but manual for `vite`** +* Removed mappings for: + * `ws` to `WsWrapper` + * Excluding `https-proxy-agent` + +### Non-Breaking Changes +* Deprecated: + * `convertHexToString` in favor of `@xrplf/isomorphic/utils`'s `hexToString` + * `convertStringToHex` in favor of `@xrplf/isomorphic/utils`'s `stringToHex` + +## 2.14.1 (2024-02-01) + +### Fixed +* Fix `AMM` ledger object's `LPTokenBalance` type to `IssuedCurrencyAmount`. + +## 2.14.0 (2023-11-30) + +### Added +* Support for the DID amendment (XLS-40). +* Support for `server_definitions` RPC +* Support for Concise Transaction Identifier (ctid) as defined in [XLS-37](https://github.com/XRPLF/XRPL-Standards/discussions/91) + +### Fixed +* Allow flag maps when submitting `NFTokenMint` and `NFTokenCreateOffer` transactions like others with flags +* Fix parseNFTokenID to return the correct taxon if large serial and (or) taxon were used + +### Removed +* Remove AMM devnet which is being decommissioned + +## 2.13.0 (2023-10-18) + +### Fixed +* Allow flag maps when submitting `NFTokenMint` and `NFTokenCreateOffer` transactions like others with flags +* Add pseudo transaction types to `tx` and `ledger` method responses. +* Add missing `type` param to `ledger_data` and `ledger` requests +* Type assertions around `PreviousTxnID` and `PreviousTxnLgrSeq` missing on some ledger objects +* Transaction fields that represent an address no longer allow an empty string (`''`). If you want to specify [ACCOUNT_ZERO](https://xrpl.org/addresses.html#special-addresses), you can specify `rrrrrrrrrrrrrrrrrrrrrhoLvTp`. ⚠️ **WARNING:** `rrrrrrrrrrrrrrrrrrrrrhoLvTp` is a black hole address, with no corresponding private key. Accounts/funds controlled by this address are not accessible. +* Invalid addresses on a transaction now throws a `ValidationError` when submitting a transaction instead of `Error('checksum_invalid')` + +### Changed +* Make `LedgerEntryResponse` a generic so it can be used like `LedgerEntryResponse` +* Clean up typing of `type` param and the response property `account_objects` of the `account_objects` request. +* Error messages for fields that equate to an address, `DestinationTag`, or `NFTokenID`. They will still be of type `ValidationError`. +* Add alias type of `Account` to improve intellisense for Transaction fields that equate to an address. +* Removed sidechain-devnet faucet support as it is being moved to Devnet + +## 2.12.0 (2023-09-27) +### Added +* Added `ports` field to `ServerInfoResponse` +* Support for the XChainBridge amendment. + +### Fixed +* Fix request model fields related to AMM +* Rename `AMMAccount` to `Account` on `AMM` ledger objects +* Fixed `EscrowCancel` and `EscrowFinish` validation + +## 2.11.0 (2023-08-24) + +### Added +* Add AMM support [XLS-30](https://github.com/XRPLF/XRPL-Standards/discussions/78) +* Add `walletFromSecretNumbers` to derive a wallet from [XLS-12](https://github.com/XRPLF/XRPL-Standards/issues/15). Currently only works with `secp256k1` keys, but will work with `ED25519` keys as part of 3.0 via [#2376](https://github.com/XRPLF/xrpl.js/pull/2376). + +### Fixed +* Fix source-maps not finding their designated source + +## 2.10.0 (2023-08-07) + +### Added +* Add a new Clawback transaction +* Add account flag lsfAllowTrustLineClawback +* Add support for bitwise flag checking of 64 bit flags + +## 2.9.1 (2023-07-18) +### Fixed +* Passing Definitions from `STObject` to `STArray` back to `STObject`, both for signing & decoding (to JSON) + +## 2.9.0 (2023-07-12) + +### Added +* `NetworkId` field support including auto-filling and to `server_info` response +* Add `BurnedNFTokens`, `FirstNFTSequence`, `MintedNFTokens`, +`NFTokenMinter`, and `WalletLocator` to `AccountRoot` +* Add `ledger_hash` and `ledger_index` to `account_nfts`, + `nft_buy_offers`, and `nft_sell_offers` requests +* Add `nft_page` to `ledger_entry` request +* Add types for `NFTokenPage` and `NFTokenOffer` LedgerEntries. +* Add type for NFToken object that is stored on a `NFTokenPage` +* Add type for `account_info`'s `account_flags` property +* Add types for `EnableAmendment`, `SetFee`, and `UNLModify` transactions +* Add the new fields for `XRPFees` amendment and id for the `FeeSettings` +* Add `FeeSettings`, `NegativeUNL`, and `Amendments` singleton ledger entry ids +* Add `WalletLocator` to `SignerEntry` on `SignerList` (LedgerEntry) +* Export many nested types and interfaces ### Fixed +* `getNFTokenID` now also accepts metadata from `tx` in binary format +* Allowing the removal of a signer list +* Importing `Wallet` as a named import. + +### Breaking +* If you were deep importing these types previously you will need to import them from `xrpl` and rename them: + * `methods/accountLines`: `Trustline` -> `AccountLinesTrustline` + * `methods/bookOffers`: `TakerAmount` -> `BookOfferCurrency` + * `methods/ledgerData`: `BinaryLedgerEntry` -> `LedgerDataBinaryLedgerEntry` + +## 2.8.1 (2023-06-13) + +### Fixed +* Points to latest version of `ripple-keypairs` instead of a beta release + +## 2.8.0 (2023-06-13) + +### Added +* Adds support for npm v9 + +### Fixed +* Fixed `ServerState.transitions` typing, it is now a string instead of a number. (Only used in return from `server_state` request) * Added `destination_amount` to `PathOption` which is returned as part of a `path_find` request +* Removed the `decode(encode(tx)) == tx` check from the wallet signing process +* Fixed the location of `signer_lists` in the `account_info` response so that it matches rippled +* Guard check for signing algorithm used in `Wallet.generate()` +* Null and undefined values in transactions are now treated as though the field was not passed in. +* Improved the type definition of the return value of `submitAndWait()` + +### Changed +* Added sidechain devnet support to faucet generation + +### Removed +* RPCs and utils related to the old sidechain design ## 2.7.0 (2023-03-08) @@ -96,6 +289,7 @@ Wallet.fromMmnemonic() ## 2.2.1 (2022-04-21) ### Fixed * Fix return field of NFT offer +* Updated `getOrderbook` docs and param names to reflect actual behavior of checking both sides of order book. ## 2.2.0 (2022-04-19) ### Added diff --git a/packages/xrpl/README.md b/packages/xrpl/README.md deleted file mode 100644 index 3eb5482531..0000000000 --- a/packages/xrpl/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# xrpl.js - -This package includes the `xrpl` library. This repository uses a monorepo -layout. Please find the README for `xrpl` [here](https://github.com/XRPLF/xrpl.js/tree/main/README.md). - -READMEs for other packages in this monorepo are located at the root of their -package, but since newcomers to XRPL are likely to want to use the `xrpl` -package this README is at the root of the project. diff --git a/packages/xrpl/jest.config.integration.js b/packages/xrpl/jest.config.integration.js new file mode 100644 index 0000000000..e0b00ac205 --- /dev/null +++ b/packages/xrpl/jest.config.integration.js @@ -0,0 +1,36 @@ +// Jest configuration for api +const base = require('../../jest.config.base.js') + +module.exports = { + ...base, + roots: [...base.roots, '/test'], + testTimeout: 20000, + testMatch: [ + '/test/integration/**/*.test.ts', + '/test/integration/*.test.ts', + ], + testPathIgnorePatterns: [ + '/test/integration/requests/ammInfo.test.ts', + '/test/integration/transactions/ammBid.test.ts', + '/test/integration/transactions/ammCreate.test.ts', + '/test/integration/transactions/ammDelete.test.ts', + '/test/integration/transactions/ammDeposit.test.ts', + '/test/integration/transactions/ammVote.test.ts', + '/test/integration/transactions/ammWithdraw.test.ts', + '/test/integration/transactions/clawback.test.ts', + '/test/integration/transactions/didDelete.test.ts', + '/test/integration/transactions/didSet.test.ts', + '/test/integration/transactions/oracleDelete.test.ts', + '/test/integration/transactions/oracleSet.test.ts', + '/test/integration/transactions/xchainAccountCreateCommit.test.ts', + '/test/integration/transactions/xchainAddAccountCreateAttestation.test.ts', + '/test/integration/transactions/xchainAddClaimAttestation.test.ts', + '/test/integration/transactions/xchainClaim.test.ts', + '/test/integration/transactions/xchainCommit.test.ts', + '/test/integration/transactions/xchainCreateBridge.test.ts', + '/test/integration/transactions/xchainCreateClaimID.test.ts', + '/test/integration/transactions/xchainModifyBridge.test.ts', + ], + + displayName: 'xrpl.js', +} diff --git a/packages/xrpl/jest.config.unit.js b/packages/xrpl/jest.config.unit.js new file mode 100644 index 0000000000..bd708eadbf --- /dev/null +++ b/packages/xrpl/jest.config.unit.js @@ -0,0 +1,34 @@ +// Jest configuration for api +const base = require('../../jest.config.base.js') + +module.exports = { + ...base, + roots: [...base.roots, '/test'], + testMatch: ['/test/**/*.test.ts'], + testPathIgnorePatterns: [ + '/test/integration', + '/test/fixtures', + '/test/models/AMMCreate.test.ts', + '/test/models/AMMDelete.test.ts', + '/test/models/AMMDeposit.test.ts', + '/test/models/AMMWithdraw.test.ts', + '/test/models/AMMBid.test.ts', + '/test/models/AMMVote.test.ts', + '/test/models/ammInfo.test.ts', + '/test/models/XChainClaim.test.ts', + '/test/models/XChainCommit.test.ts', + '/test/models/XChainCreateBridge.test.ts', + '/test/models/XChainModifyBridge.test.ts', + '/test/models/XChainCreateClaimID.test.ts', + '/test/models/XChainAccountCreateCommit.test.ts', + '/test/models/XChainAddAccountCreateAttestation.test.ts', + '/test/models/XChainAddClaimAttestation.test.ts', + '/test/models/XChainAddClaimAttestation.test.ts', + '/test/models/DIDSet.test.ts', + '/test/models/DIDDelete.test.ts', + '/test/models/clawback.test.ts', + '/test/models/oracleSet.test.ts', + '/test/models/oracleDelete.test.ts', + ], + displayName: 'xrpl.js', +} diff --git a/packages/xrpl/karma-setup.js b/packages/xrpl/karma-setup.js deleted file mode 100644 index 4378f9ce4f..0000000000 --- a/packages/xrpl/karma-setup.js +++ /dev/null @@ -1,14 +0,0 @@ -// the jest.fn() API -import * as jest from 'jest-mock' -// The matchers API -import expect from 'expect' - -// Add missing Jest functions -window.test = window.it -window.test.each = (inputs) => (testName, test) => - inputs.forEach((args) => window.it(testName, () => test(...args))) -window.test.todo = function () { - return undefined -} -window.jest = jest -window.expect = expect diff --git a/packages/xrpl/karma.config.js b/packages/xrpl/karma.config.js index b5b6aba6e3..41db67a3d4 100644 --- a/packages/xrpl/karma.config.js +++ b/packages/xrpl/karma.config.js @@ -1,34 +1,14 @@ -const webpackConfig = require('./test/webpack.config')[0]() +const baseKarmaConfig = require('../../karma.config') +const webpackConfig = require('./test/webpack.config') delete webpackConfig.entry module.exports = function (config) { config.set({ - plugins: ['karma-webpack', 'karma-jasmine', 'karma-chrome-launcher'], - - // base path that will be used to resolve all patterns (eg. files, exclude) - basePath: '', - webpack: webpackConfig, - // frameworks to use - // available frameworks: https://npmjs.org/browse/keyword/karma-adapter - frameworks: ['jasmine'], - // list of files / patterns to load in the browser - files: [ - 'build/xrpl-latest.js', - 'test/integration/index.ts', - 'karma-setup.js', - ], - - // preprocess matching files before serving them to the browser - // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor - preprocessors: { - 'karma-setup.js': ['webpack'], - // Use webpack to bundle our test files - 'test/integration/index.ts': ['webpack'], - }, - - browsers: ['ChromeHeadless'], + files: ['build/xrpl-latest.js', 'test/integration/**/*.test.ts'], }) + + baseKarmaConfig(config) } diff --git a/packages/xrpl/package.json b/packages/xrpl/package.json index 5412fa2ffb..750358b5c5 100644 --- a/packages/xrpl/package.json +++ b/packages/xrpl/package.json @@ -1,14 +1,15 @@ { "name": "@transia/xrpl", - "version": "2.7.3-alpha.28", + "version": "4.0.0-alpha.28", "license": "ISC", "description": "A TypeScript/JavaScript API for interacting with the XRP Ledger in Node.js and the browser", "files": [ - "dist/npm/*", "build/xrpl-latest-min.js", "build/xrpl-latest-min.js.map", "build/xrpl-latest.js", - "build/xrpl-latest.js.map" + "build/xrpl-latest.js.map", + "dist/npm/*", + "src/*" ], "main": "dist/npm/", "unpkg": "build/xrpl-latest-min.js", @@ -18,34 +19,32 @@ "test": "test" }, "browser": { - "ws": "./dist/npm/client/WSWrapper.js", - "https-proxy-agent": false + "ws": "./dist/npm/client/WSWrapper.js" }, "dependencies": { - "@transia/ripple-address-codec": "^4.2.8-alpha.0", - "@transia/ripple-binary-codec": "^1.4.6-alpha.10", - "@transia/ripple-keypairs": "^1.1.8-alpha.0", + "@scure/bip32": "^1.3.1", + "@scure/bip39": "^1.2.1", + "@xrplf/isomorphic": "^1.0.1", + "@xrplf/secret-numbers": "^1.0.0", "bignumber.js": "^9.0.0", - "bip32": "^2.0.6", - "bip39": "^3.0.4", - "https-proxy-agent": "^5.0.0", - "lodash": "^4.17.4", - "ws": "^8.2.2" + "eventemitter3": "^5.0.1", + "ripple-address-codec": "npm:@transia/ripple-address-codec@^5.0.0-alpha.0", + "ripple-binary-codec": "npm:@transia/ripple-binary-codec@^2.1.0-alpha.10", + "ripple-keypairs": "npm:@transia/ripple-keypairs@^2.0.0-alpha.0" }, "devDependencies": { - "@geut/browser-node-core": "^2.0.13", - "@types/node": "^14.18.36", - "assert-browserify": "^2.0.0", - "browserify-fs": "^1.0.0", - "constants-browserify": "^1.0.0", - "https-browserify": "^1.0.0", + "@types/node": "^18.18.38", + "eventemitter3": "^5.0.1", + "https-proxy-agent": "^7.0.1", "karma": "^6.4.1", "karma-chrome-launcher": "^3.1.1", "karma-jasmine": "^5.1.0", "karma-webpack": "^5.0.0", - "node-polyfill-webpack-plugin": "^2.0.1", + "lodash": "^4.17.4", "react": "^18.2.0", - "typedoc": "^0.23.24" + "run-s": "^0.0.0", + "typedoc": "0.26.3", + "ws": "^8.14.2" }, "resolutions": { "elliptic": "^6.5.4" @@ -57,14 +56,15 @@ "build:models": "tsc --build tsconfig.models.json", "build:web": "webpack", "build:browserTests": "webpack --config ./test/webpack.config.js", - "analyze": "run-s build:web --analyze", + "analyze": "webpack --analyze", "watch": "run-s build:lib --watch", - "clean": "rm -rf dist build coverage", + "clean": "rm -rf ./dist ./coverage ./test/testCompiledForWeb tsconfig.build.tsbuildinfo", "docgen": "tsc --build tsconfig.docs.json && typedoc && echo js.xrpl.org >> ../../docs/CNAME", + "prepare": "copyfiles ../../README.md xrpl/README.md", "prepublish": "run-s clean build", - "test": "jest --verbose false --silent=false ./test/**/*.test.ts --testPathIgnorePatterns=./test/integration --testPathIgnorePatterns=./test/fixtures", - "test:integration": "TS_NODE_PROJECT=tsconfig.build.json jest --verbose false --silent=false --runInBand ./test/integration/**/*.test.ts", - "test:browser": "npm run build && npm run build:browserTests && karma start ./karma.config.js --single-run", + "test": "jest --config=jest.config.unit.js --verbose false --silent=false", + "test:integration": "TS_NODE_PROJECT=tsconfig.build.json jest --config=jest.config.integration.js --verbose false --silent=false --runInBand", + "test:browser": "npm run build && npm run build:browserTests && karma start ./karma.config.js", "test:watch": "jest --watch --verbose false --silent=false --runInBand ./test/**/*.test.ts --testPathIgnorePatterns=./test/integration --testPathIgnorePatterns=./test/fixtures", "format": "prettier --write '{src,test}/**/*.ts'", "lint": "eslint . --ext .ts --max-warnings 0", @@ -79,8 +79,14 @@ "url": "git@github.com/Transia-RnD/xrpl.js/tree/beta" }, "readmeFilename": "README.md", + "keywords": [ + "ripple-lib", + "ripple", + "xrp", + "xrp ledger", + "xrpl" + ], "engines": { - "node": ">=10.13.0" - }, - "gitHead": "3b234ec8ec1c677e0f3f534fd2985c985871c87e" + "node": ">=18.0.0" + } } diff --git a/packages/xrpl/snippets/src/bridgeTransfer.ts b/packages/xrpl/snippets/src/bridgeTransfer.ts new file mode 100644 index 0000000000..8e43155cc8 --- /dev/null +++ b/packages/xrpl/snippets/src/bridgeTransfer.ts @@ -0,0 +1,170 @@ +/* eslint-disable max-depth -- needed for attestation checking */ +/* eslint-disable @typescript-eslint/consistent-type-assertions -- needed here */ +/* eslint-disable no-await-in-loop -- needed here */ +import { + AccountObjectsRequest, + LedgerEntry, + Client, + XChainAccountCreateCommit, + XChainBridge, + XChainCommit, + XChainCreateClaimID, + xrpToDrops, + Wallet, + getXChainClaimID, +} from '../../src' + +async function sleep(sec: number): Promise { + return new Promise((resolve) => { + setTimeout(resolve, sec * 1000) + }) +} + +const lockingClient = new Client('wss://s.devnet.rippletest.net:51233') +const issuingClient = new Client( + 'wss://sidechain-net2.devnet.rippletest.net:51233', +) +const MAX_LEDGERS_WAITED = 5 +const LEDGER_CLOSE_TIME = 4 + +void bridgeTransfer() + +async function bridgeTransfer(): Promise { + await lockingClient.connect() + await issuingClient.connect() + const lockingChainDoor = 'rnQAXXWoFNN6PEqwqsdTngCtFPCrmfuqFJ' + + const accountObjectsRequest: AccountObjectsRequest = { + command: 'account_objects', + account: lockingChainDoor, + type: 'bridge', + } + const lockingAccountObjects = ( + await lockingClient.request(accountObjectsRequest) + ).result.account_objects + // There will only be one here - a door account can only have one bridge per currency + const bridgeData = lockingAccountObjects.filter( + (obj) => + obj.LedgerEntryType === 'Bridge' && + obj.XChainBridge.LockingChainIssue.currency === 'XAH', + )[0] as LedgerEntry.Bridge + const bridge: XChainBridge = bridgeData.XChainBridge + console.log(bridge) + + console.log('Creating wallet on the locking chain via the faucet...') + const { wallet: wallet1 } = await lockingClient.fundWallet() + console.log(wallet1) + const wallet2 = Wallet.generate() + + console.log( + `Creating ${wallet2.classicAddress} on the issuing chain via the bridge...`, + ) + + const fundTx: XChainAccountCreateCommit = { + TransactionType: 'XChainAccountCreateCommit', + Account: wallet1.classicAddress, + XChainBridge: bridge, + SignatureReward: bridgeData.SignatureReward, + Destination: wallet2.classicAddress, + Amount: ( + parseInt(bridgeData.MinAccountCreateAmount as string, 10) * 2 + ).toString(), + } + const fundResponse = await lockingClient.submitAndWait(fundTx, { + wallet: wallet1, + }) + console.log(fundResponse) + + console.log( + 'Waiting for the attestation to go through... (usually 8-12 seconds)', + ) + let ledgersWaited = 0 + let initialBalance = 0 + while (ledgersWaited < MAX_LEDGERS_WAITED) { + await sleep(LEDGER_CLOSE_TIME) + try { + initialBalance = await issuingClient.getXrpBalance(wallet2.classicAddress) + console.log( + `Wallet ${wallet2.classicAddress} has been funded with a balance of ${initialBalance} XRP`, + ) + break + } catch (_error) { + ledgersWaited += 1 + if (ledgersWaited === MAX_LEDGERS_WAITED) { + // This error should never be hit if the bridge is running + throw Error('Destination account creation via the bridge failed.') + } + } + } + + console.log( + `Transferring funds from ${wallet1.classicAddress} on the locking chain to ` + + `${wallet2.classicAddress} on the issuing_chain...`, + ) + + // Fetch the claim ID for the transfer + console.log('Step 1: Fetching the claim ID for the transfer...') + const claimIdTx: XChainCreateClaimID = { + TransactionType: 'XChainCreateClaimID', + Account: wallet2.classicAddress, + XChainBridge: bridge, + SignatureReward: bridgeData.SignatureReward, + OtherChainSource: wallet1.classicAddress, + } + const claimIdResult = await issuingClient.submitAndWait(claimIdTx, { + wallet: wallet2, + }) + console.log(claimIdResult) + + // Extract new claim ID from metadata + const xchainClaimId = getXChainClaimID(claimIdResult.result.meta) + if (xchainClaimId == null) { + // This shouldn't trigger assuming the transaction succeeded + throw Error('Could not extract XChainClaimID') + } + + console.log(`Claim ID for the transfer: ${xchainClaimId}`) + + console.log( + 'Step 2: Locking the funds on the locking chain with an XChainCommit transaction...', + ) + const commitTx: XChainCommit = { + TransactionType: 'XChainCommit', + Account: wallet1.classicAddress, + Amount: xrpToDrops(1), + XChainBridge: bridge, + XChainClaimID: xchainClaimId, + OtherChainDestination: wallet2.classicAddress, + } + const commitResult = await lockingClient.submitAndWait(commitTx, { + wallet: wallet1, + }) + console.log(commitResult) + + console.log( + 'Waiting for the attestation to go through... (usually 8-12 seconds)', + ) + ledgersWaited = 0 + while (ledgersWaited < MAX_LEDGERS_WAITED) { + await sleep(LEDGER_CLOSE_TIME) + const currentBalance = await issuingClient.getXrpBalance( + wallet2.classicAddress, + ) + console.log(initialBalance, currentBalance) + if (currentBalance > initialBalance) { + console.log('Transfer is complete') + console.log( + `New balance of ${wallet2.classicAddress} is ${currentBalance} XRP`, + ) + break + } + + ledgersWaited += 1 + if (ledgersWaited === MAX_LEDGERS_WAITED) { + throw Error('Bridge transfer failed.') + } + } + + await lockingClient.disconnect() + await issuingClient.disconnect() +} diff --git a/packages/xrpl/snippets/src/claimPayChannel.ts b/packages/xrpl/snippets/src/claimPayChannel.ts index e29340474e..d24bd03580 100644 --- a/packages/xrpl/snippets/src/claimPayChannel.ts +++ b/packages/xrpl/snippets/src/claimPayChannel.ts @@ -56,7 +56,7 @@ async function claimPayChannel(): Promise { Channel: hashes.hashPaymentChannel( wallet1.classicAddress, wallet2.classicAddress, - paymentChannelResponse.result.Sequence ?? 0, + paymentChannelResponse.result.tx_json.Sequence ?? 0, ), Amount: '100', } diff --git a/packages/xrpl/snippets/src/getTransaction.ts b/packages/xrpl/snippets/src/getTransaction.ts index c1417ed130..777a9291e4 100644 --- a/packages/xrpl/snippets/src/getTransaction.ts +++ b/packages/xrpl/snippets/src/getTransaction.ts @@ -1,10 +1,10 @@ -import { Client, LedgerResponse, TxResponse } from '../../src' +import { Client } from '../../src' -const client = new Client('wss://s.altnet.rippletest.net:51233') +const client = new Client('wss://s2.ripple.com:51233') async function getTransaction(): Promise { await client.connect() - const ledger: LedgerResponse = await client.request({ + const ledger = await client.request({ command: 'ledger', transactions: true, ledger_index: 'validated', @@ -12,17 +12,18 @@ async function getTransaction(): Promise { console.log(ledger) const transactions = ledger.result.ledger.transactions - if (transactions) { - const tx: TxResponse = await client.request({ + if (transactions && transactions.length > 0) { + const tx = await client.request({ command: 'tx', transaction: transactions[0], }) console.log(tx) - // The meta field would be a string(hex) when the `binary` parameter is `true` for the `tx` request. + // The meta field can be undefined if the transaction has not been validated yet (and so has not changed the ledger). if (tx.result.meta == null) { throw new Error('meta not included in the response') } + /* * delivered_amount is the amount actually received by the destination account. * Use this field to determine how much was delivered, regardless of whether the transaction is a partial payment. diff --git a/packages/xrpl/snippets/src/multisigning.ts b/packages/xrpl/snippets/src/multisigning.ts index 1ab04470a7..983afdefcf 100644 --- a/packages/xrpl/snippets/src/multisigning.ts +++ b/packages/xrpl/snippets/src/multisigning.ts @@ -4,6 +4,7 @@ import { AccountSet, convertStringToHex, SignerListSet, + Wallet, } from '../../src' const client = new Client('wss://s.altnet.rippletest.net:51233') @@ -15,9 +16,11 @@ async function multisigning(): Promise { * In practice, users generally will not have all keys in one spot, * hence, users need to implement a way to get signatures. */ - const { wallet: wallet1 } = await client.fundWallet() - const { wallet: wallet2 } = await client.fundWallet() - const { wallet: walletMaster } = await client.fundWallet() + const wallet1 = Wallet.generate() + const wallet2 = Wallet.generate() + const { wallet: walletMaster } = await client.fundWallet(null, { + usageContext: 'code snippets', + }) const signerListSet: SignerListSet = { TransactionType: 'SignerListSet', Account: walletMaster.classicAddress, diff --git a/packages/xrpl/snippets/src/partialPayment.ts b/packages/xrpl/snippets/src/partialPayment.ts index 1e713f7bb3..7f4c181cbc 100644 --- a/packages/xrpl/snippets/src/partialPayment.ts +++ b/packages/xrpl/snippets/src/partialPayment.ts @@ -7,8 +7,12 @@ async function partialPayment(): Promise { await client.connect() // creating wallets as prerequisite - const { wallet: wallet1 } = await client.fundWallet() - const { wallet: wallet2 } = await client.fundWallet() + const { wallet: wallet1 } = await client.fundWallet(null, { + usageContext: 'code snippets', + }) + const { wallet: wallet2 } = await client.fundWallet(null, { + usageContext: 'code snippets', + }) // create a trustline to issue an IOU `FOO` and set limit on it. const trust_set_tx: TrustSet = { diff --git a/packages/xrpl/snippets/src/paths.ts b/packages/xrpl/snippets/src/paths.ts index 8cdc6e9efa..3e9b420264 100644 --- a/packages/xrpl/snippets/src/paths.ts +++ b/packages/xrpl/snippets/src/paths.ts @@ -1,11 +1,13 @@ -import { Client, Payment, RipplePathFindResponse } from '../../src' +import { Client, Payment } from '../../src' const client = new Client('wss://s.altnet.rippletest.net:51233') async function createTxWithPaths(): Promise { await client.connect() - const { wallet } = await client.fundWallet() + const { wallet } = await client.fundWallet(null, { + usageContext: 'code snippets', + }) const destination_account = 'rKT4JX4cCof6LcDYRz8o3rGRu7qxzZ2Zwj' const destination_amount = { value: '0.001', @@ -13,7 +15,8 @@ async function createTxWithPaths(): Promise { issuer: 'rVnYNK9yuxBz4uP8zC8LEFokM2nqH3poc', } - const request = { + const resp = await client.request({ + // TOOD: Replace with path_find - https://github.com/XRPLF/xrpl.js/issues/2385 command: 'ripple_path_find', source_account: wallet.classicAddress, source_currencies: [ @@ -23,9 +26,7 @@ async function createTxWithPaths(): Promise { ], destination_account, destination_amount, - } - - const resp: RipplePathFindResponse = await client.request(request) + }) console.log(resp) const paths = resp.result.alternatives[0].paths_computed diff --git a/packages/xrpl/snippets/src/reliableTransactionSubmission.ts b/packages/xrpl/snippets/src/reliableTransactionSubmission.ts index 74901443b6..241dd5c72a 100644 --- a/packages/xrpl/snippets/src/reliableTransactionSubmission.ts +++ b/packages/xrpl/snippets/src/reliableTransactionSubmission.ts @@ -45,8 +45,12 @@ async function sendReliableTx(): Promise { await client.connect() // creating wallets as prerequisite - const { wallet: wallet1 } = await client.fundWallet() - const { wallet: wallet2 } = await client.fundWallet() + const { wallet: wallet1 } = await client.fundWallet(null, { + usageContext: 'code snippets', + }) + const { wallet: wallet2 } = await client.fundWallet(null, { + usageContext: 'code snippets', + }) console.log('Balances of wallets before Payment tx') console.log( diff --git a/packages/xrpl/snippets/src/sendEscrow.ts b/packages/xrpl/snippets/src/sendEscrow.ts index 154f60525f..3744b9b0ca 100644 --- a/packages/xrpl/snippets/src/sendEscrow.ts +++ b/packages/xrpl/snippets/src/sendEscrow.ts @@ -15,8 +15,12 @@ async function sendEscrow(): Promise { await client.connect() // creating wallets as prerequisite - const { wallet: wallet1 } = await client.fundWallet() - const { wallet: wallet2 } = await client.fundWallet() + const { wallet: wallet1 } = await client.fundWallet(null, { + usageContext: 'code snippets', + }) + const { wallet: wallet2 } = await client.fundWallet(null, { + usageContext: 'code snippets', + }) console.log('Balances of wallets before Escrow tx was created:') console.log( @@ -59,7 +63,7 @@ async function sendEscrow(): Promise { TransactionType: 'EscrowFinish', Account: wallet1.classicAddress, Owner: wallet1.classicAddress, - OfferSequence: Number(createEscrowResponse.result.Sequence), + OfferSequence: Number(createEscrowResponse.result.tx_json.Sequence), } await client.submit(finishTx, { diff --git a/packages/xrpl/snippets/src/setRegularKey.ts b/packages/xrpl/snippets/src/setRegularKey.ts index b49e513952..ccf9ad31db 100644 --- a/packages/xrpl/snippets/src/setRegularKey.ts +++ b/packages/xrpl/snippets/src/setRegularKey.ts @@ -8,9 +8,15 @@ const client = new Client('wss://s.altnet.rippletest.net:51233') */ async function setRegularKey(): Promise { await client.connect() - const { wallet: wallet1 } = await client.fundWallet() - const { wallet: wallet2 } = await client.fundWallet() - const { wallet: regularKeyWallet } = await client.fundWallet() + const { wallet: wallet1 } = await client.fundWallet(null, { + usageContext: 'code snippets', + }) + const { wallet: wallet2 } = await client.fundWallet(null, { + usageContext: 'code snippets', + }) + const { wallet: regularKeyWallet } = await client.fundWallet(null, { + usageContext: 'code snippets', + }) console.log('Balances before payment') console.log(await client.getXrpBalance(wallet1.classicAddress)) diff --git a/packages/xrpl/src/Wallet/authorizeChannel.ts b/packages/xrpl/src/Wallet/authorizeChannel.ts new file mode 100644 index 0000000000..b9185b444a --- /dev/null +++ b/packages/xrpl/src/Wallet/authorizeChannel.ts @@ -0,0 +1,26 @@ +import { encodeForSigningClaim } from 'ripple-binary-codec' +import { sign } from 'ripple-keypairs' + +import { Wallet } from './index' + +/** + * Creates a signature that can be used to redeem a specific amount of XRP from a payment channel. + * + * @param wallet - The account that will sign for this payment channel. + * @param channelId - An id for the payment channel to redeem XRP from. + * @param amount - The amount in drops to redeem. + * @returns A signature that can be used to redeem a specific amount of XRP from a payment channel. + * @category Utilities + */ +export function authorizeChannel( + wallet: Wallet, + channelId: string, + amount: string, +): string { + const signingData = encodeForSigningClaim({ + channel: channelId, + amount, + }) + + return sign(signingData, wallet.privateKey) +} diff --git a/packages/xrpl/src/Wallet/defaultFaucets.ts b/packages/xrpl/src/Wallet/defaultFaucets.ts index f720cbd99d..bf5c38ae51 100644 --- a/packages/xrpl/src/Wallet/defaultFaucets.ts +++ b/packages/xrpl/src/Wallet/defaultFaucets.ts @@ -14,15 +14,11 @@ export interface FaucetWallet { export enum FaucetNetwork { Testnet = 'faucet.altnet.rippletest.net', Devnet = 'faucet.devnet.rippletest.net', - AMMDevnet = 'ammfaucet.devnet.rippletest.net', - HooksV2Testnet = 'hooks-testnet-v2.xrpl-labs.com', } export const FaucetNetworkPaths: Record = { [FaucetNetwork.Testnet]: '/accounts', [FaucetNetwork.Devnet]: '/accounts', - [FaucetNetwork.AMMDevnet]: '/accounts', - [FaucetNetwork.HooksV2Testnet]: '/accounts', } /** @@ -35,17 +31,15 @@ export const FaucetNetworkPaths: Record = { export function getFaucetHost(client: Client): FaucetNetwork | undefined { const connectionUrl = client.url - if (connectionUrl.includes('hooks-testnet-v2')) { - return FaucetNetwork.HooksV2Testnet - } - // 'altnet' for Ripple Testnet server and 'testnet' for XRPL Labs Testnet server if (connectionUrl.includes('altnet') || connectionUrl.includes('testnet')) { return FaucetNetwork.Testnet } - if (connectionUrl.includes('amm')) { - return FaucetNetwork.AMMDevnet + if (connectionUrl.includes('sidechain-net2')) { + throw new XRPLFaucetError( + 'Cannot fund an account on an issuing chain. Accounts must be created via the bridge.', + ) } if (connectionUrl.includes('devnet')) { diff --git a/packages/xrpl/src/Wallet/fundWallet.ts b/packages/xrpl/src/Wallet/fundWallet.ts index 0ab1daff9d..2a9560c064 100644 --- a/packages/xrpl/src/Wallet/fundWallet.ts +++ b/packages/xrpl/src/Wallet/fundWallet.ts @@ -1,10 +1,7 @@ -import { IncomingMessage } from 'http' -import { request as httpsRequest, RequestOptions } from 'https' - -import { isValidClassicAddress } from '@transia/ripple-address-codec' +import { isValidClassicAddress } from 'ripple-address-codec' import type { Client } from '../client' -import { RippledError, XRPLFaucetError } from '../errors' +import { XRPLFaucetError } from '../errors' import { FaucetWallet, @@ -12,210 +9,186 @@ import { getDefaultFaucetPath, } from './defaultFaucets' -import Wallet from '.' +import { Wallet } from '.' // Interval to check an account balance const INTERVAL_SECONDS = 1 // Maximum attempts to retrieve a balance const MAX_ATTEMPTS = 20 +export interface FundingOptions { + /** + * A custom amount to fund, if undefined or null, the default amount will be 1000. + */ + amount?: string + /** + * A custom host for a faucet server. On devnet, testnet, AMM devnet, and HooksV3 testnet, `fundWallet` will + * attempt to determine the correct server automatically. In other environments, or if you would like to customize + * the faucet host in devnet or testnet, you should provide the host using this option. + */ + faucetHost?: string + /** + * A custom path for a faucet server. On devnet, + * testnet, AMM devnet, and HooksV3 testnet, `fundWallet` will + * attempt to determine the correct path automatically. In other environments, + * or if you would like to customize the faucet path in devnet or testnet, + * you should provide the path using this option. + * Ex: client.fundWallet(null,{'faucet.altnet.rippletest.net', '/accounts'}) + * specifies a request to 'faucet.altnet.rippletest.net/accounts' to fund a new wallet. + */ + faucetPath?: string + /** + * An optional field to indicate the use case context of the faucet transaction + * Ex: integration test, code snippets. + */ + usageContext?: string +} + +/** + * Parameters to pass into a faucet request to fund an XRP account. + */ +export interface FaucetRequestBody { + /** + * The address to fund. If no address is provided the faucet will fund a random account. + */ + destination?: string + /** + * The total amount of XRP to fund the account with. + */ + xrpAmount?: string + /** + * An optional field to indicate the use case context of the faucet transaction + * Ex: integration test, code snippets. + */ + usageContext?: string + /** + * Information about the context of where the faucet is being called from. + * Ex: xrpl.js or xrpl-py + */ + userAgent: string +} + +/** + * Generate a new wallet to fund if no existing wallet is provided or its address is invalid. + * + * @param wallet - Optional existing wallet. + * @returns The wallet to fund. + */ +export function generateWalletToFund(wallet?: Wallet | null): Wallet { + if (wallet && isValidClassicAddress(wallet.classicAddress)) { + return wallet + } + return Wallet.generate() +} + +/** + * Get the starting balance of the wallet. + * + * @param client - The client object. + * @param classicAddress - The classic address of the wallet. + * @returns The starting balance. + */ +export async function getStartingBalance( + client: Client, + classicAddress: string, +): Promise { + let startingBalance = 0 + try { + startingBalance = Number(await client.getXrpBalance(classicAddress)) + } catch { + // startingBalance remains '0' + } + return startingBalance +} + +export interface FundWalletOptions { + faucetHost?: string + faucetPath?: string + amount?: string + usageContext?: string +} + /** - * Generates a random wallet with some amount of XRP (usually 1000 XRP). * - * @example - * ```typescript - * const api = new xrpl.Client("wss://s.altnet.rippletest.net:51233") - * await api.connect() - * const { wallet, balance } = await api.fundWallet() - * ``` + * Helper function to request funding from a faucet. Should not be called directly from outside the xrpl.js library. * - * @param this - Client. - * @param wallet - An existing XRPL Wallet to fund. If undefined or null, a new Wallet will be created. - * @param options - See below. + * @param options - See below * @param options.faucetHost - A custom host for a faucet server. On devnet, - * testnet, AMM devnet, and HooksV2 testnet, `fundWallet` will + * testnet, AMM devnet, and HooksV3 testnet, `fundWallet` will * attempt to determine the correct server automatically. In other environments, * or if you would like to customize the faucet host in devnet or testnet, * you should provide the host using this option. * @param options.faucetPath - A custom path for a faucet server. On devnet, - * testnet, AMM devnet, and HooksV2 testnet, `fundWallet` will + * testnet, AMM devnet, and HooksV3 testnet, `fundWallet` will * attempt to determine the correct path automatically. In other environments, * or if you would like to customize the faucet path in devnet or testnet, * you should provide the path using this option. * Ex: client.fundWallet(null,{'faucet.altnet.rippletest.net', '/accounts'}) * specifies a request to 'faucet.altnet.rippletest.net/accounts' to fund a new wallet. * @param options.amount - A custom amount to fund, if undefined or null, the default amount will be 1000. - * @returns A Wallet on the Testnet or Devnet that contains some amount of XRP, - * and that wallet's balance in XRP. - * @throws When either Client isn't connected or unable to fund wallet address. + * @param client - A connection to the XRPL to send requests and transactions. + * @param startingBalance - The amount of XRP in the given walletToFund on ledger already. + * @param walletToFund - An existing XRPL Wallet to fund. + * @param postBody - The content to send the faucet to indicate which address to fund, how much to fund it, and + * where the request is coming from. + * @returns A promise that resolves to a funded wallet and the balance within it. */ -// eslint-disable-next-line max-lines-per-function -- All lines necessary -async function fundWallet( - this: Client, - wallet?: Wallet | null, - options?: { - faucetHost?: string - faucetPath?: string - amount?: string - }, -): Promise<{ - wallet: Wallet - balance: number -}> { - if (!this.isConnected()) { - throw new RippledError('Client not connected, cannot call faucet') - } - - // Generate a new Wallet if no existing Wallet is provided or its address is invalid to fund - const walletToFund = - wallet && isValidClassicAddress(wallet.classicAddress) - ? wallet - : Wallet.generate() - - // Create the POST request body - const postBody = Buffer.from( - new TextEncoder().encode( - JSON.stringify({ - destination: walletToFund.classicAddress, - xrpAmount: options?.amount, - }), - ), - ) - - let startingBalance = 0 - try { - startingBalance = Number( - await this.getXrpBalance(walletToFund.classicAddress), - ) - } catch { - /* startingBalance remains '0' */ - } - // Options to pass to https.request - const httpOptions = getHTTPOptions(this, postBody, { - hostname: options?.faucetHost, - pathname: options?.faucetPath, - }) - - return returnPromise( - httpOptions, - this, - startingBalance, - walletToFund, - postBody, - ) -} - // eslint-disable-next-line max-params -- Helper function created for organizational purposes -async function returnPromise( - options: RequestOptions, +export async function requestFunding( + options: FundingOptions, client: Client, startingBalance: number, walletToFund: Wallet, - postBody: Buffer, + postBody: FaucetRequestBody, ): Promise<{ wallet: Wallet balance: number }> { - return new Promise((resolve, reject) => { - const request = httpsRequest(options, (response) => { - const chunks: Uint8Array[] = [] - response.on('data', (data) => chunks.push(data)) - // eslint-disable-next-line @typescript-eslint/no-misused-promises -- not actually misused, different resolve/reject - response.on('end', async () => - onEnd( - response, - chunks, - client, - startingBalance, - walletToFund, - resolve, - reject, - ), - ) - }) - // POST the body - request.write(postBody) - - request.on('error', (error) => { - reject(error) - }) - - request.end() - }) -} - -function getHTTPOptions( - client: Client, - postBody: Uint8Array, - options?: { - hostname?: string - pathname?: string - }, -): RequestOptions { - const finalHostname = options?.hostname ?? getFaucetHost(client) - const finalPathname = options?.pathname ?? getDefaultFaucetPath(finalHostname) - return { - hostname: finalHostname, - port: 443, - path: finalPathname, + const hostname = options.faucetHost ?? getFaucetHost(client) + if (!hostname) { + throw new XRPLFaucetError('No faucet hostname could be derived') + } + const pathname = options.faucetPath ?? getDefaultFaucetPath(hostname) + const response = await fetch(`https://${hostname}${pathname}`, { method: 'POST', headers: { 'Content-Type': 'application/json', - 'Content-Length': postBody.length, }, - } -} - -// eslint-disable-next-line max-params -- Helper function created for organizational purposes -async function onEnd( - response: IncomingMessage, - chunks: Uint8Array[], - client: Client, - startingBalance: number, - walletToFund: Wallet, - resolve: (response: { wallet: Wallet; balance: number }) => void, - reject: (err: ErrorConstructor | Error | unknown) => void, -): Promise { - const body = Buffer.concat(chunks).toString() + body: JSON.stringify(postBody), + }) - // "application/json; charset=utf-8" - if (response.headers['content-type']?.startsWith('application/json')) { - // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- We know this is safe and correct - const faucetWallet: FaucetWallet = JSON.parse(body) - const classicAddress = faucetWallet.account.classicAddress - await processSuccessfulResponse( + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- it can be anything + const body = await response.json() + if ( + response.ok && + response.headers.get('Content-Type')?.startsWith('application/json') + ) { + // eslint-disable-next-line @typescript-eslint/consistent-type-assertions -- It's a FaucetWallet + const classicAddress = (body as FaucetWallet).account.classicAddress + return processSuccessfulResponse( client, classicAddress, walletToFund, startingBalance, - resolve, - reject, - ) - } else { - reject( - new XRPLFaucetError( - `Content type is not \`application/json\`: ${JSON.stringify({ - statusCode: response.statusCode, - contentType: response.headers['content-type'], - body, - })}`, - ), ) } + return processError(response, body) } -// eslint-disable-next-line max-params, max-lines-per-function -- Only used as a helper function, lines inc due to added balance. +// eslint-disable-next-line max-params -- Only used as a helper function, lines inc due to added balance. async function processSuccessfulResponse( client: Client, classicAddress: string | undefined, walletToFund: Wallet, startingBalance: number, - resolve: (response: { wallet: Wallet; balance: number }) => void, - reject: (err: ErrorConstructor | Error | unknown) => void, -): Promise { +): Promise<{ + wallet: Wallet + balance: number +}> { if (!classicAddress) { - reject(new XRPLFaucetError(`The faucet account is undefined`)) - return + return Promise.reject( + new XRPLFaucetError(`The faucet account is undefined`), + ) } try { // Check at regular interval if the address is enabled on the XRPL and funded @@ -226,31 +199,37 @@ async function processSuccessfulResponse( ) if (updatedBalance > startingBalance) { - resolve({ + return { wallet: walletToFund, - balance: await getUpdatedBalance( - client, - walletToFund.classicAddress, - startingBalance, - ), - }) - } else { - reject( - new XRPLFaucetError( - `Unable to fund address with faucet after waiting ${ - INTERVAL_SECONDS * MAX_ATTEMPTS - } seconds`, - ), - ) + balance: updatedBalance, + } } + throw new XRPLFaucetError( + `Unable to fund address with faucet after waiting ${ + INTERVAL_SECONDS * MAX_ATTEMPTS + } seconds`, + ) } catch (err) { if (err instanceof Error) { - reject(new XRPLFaucetError(err.message)) + throw new XRPLFaucetError(err.message) } - reject(err) + throw err } } +async function processError(response: Response, body): Promise { + return Promise.reject( + new XRPLFaucetError( + `Request failed: ${JSON.stringify({ + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- json response could be anything + body: body || {}, + contentType: response.headers.get('Content-Type'), + statusCode: response.status, + })}`, + ), + ) +} + /** * Check at regular interval if the address is enabled on the XRPL and funded. * @@ -301,5 +280,3 @@ async function getUpdatedBalance( }, INTERVAL_SECONDS * 1000) }) } - -export default fundWallet diff --git a/packages/xrpl/src/Wallet/index.ts b/packages/xrpl/src/Wallet/index.ts index 7e468f85aa..c5ce5baca5 100644 --- a/packages/xrpl/src/Wallet/index.ts +++ b/packages/xrpl/src/Wallet/index.ts @@ -1,45 +1,52 @@ -/* eslint-disable max-lines -- There are lots of equivalent constructors which make sense to have here. */ +import { HDKey } from '@scure/bip32' +import { mnemonicToSeedSync, validateMnemonic } from '@scure/bip39' +import { wordlist } from '@scure/bip39/wordlists/english' +import { bytesToHex } from '@xrplf/isomorphic/utils' +import BigNumber from 'bignumber.js' import { classicAddressToXAddress, isValidXAddress, xAddressToClassicAddress, encodeSeed, -} from '@transia/ripple-address-codec' +} from 'ripple-address-codec' import { - decode, encodeForSigning, encodeForMultisigning, encode, -} from '@transia/ripple-binary-codec' +} from 'ripple-binary-codec' import { deriveAddress, deriveKeypair, generateSeed, - verify, sign, -} from '@transia/ripple-keypairs' -import BigNumber from 'bignumber.js' -import { fromSeed } from 'bip32' -import { mnemonicToSeedSync, validateMnemonic } from 'bip39' -import isEqual from 'lodash/isEqual' -import omitBy from 'lodash/omitBy' +} from 'ripple-keypairs' import ECDSA from '../ECDSA' -import { ValidationError, XrplError } from '../errors' -import { IssuedCurrencyAmount } from '../models/common' +import { ValidationError } from '../errors' import { Transaction, validate } from '../models/transactions' -import { isIssuedCurrency } from '../models/transactions/common' -import { isHex } from '../models/utils' import { ensureClassicAddress } from '../sugar/utils' +import { omitBy } from '../utils/collections' import { hashSignedTx } from '../utils/hashes/hashLedger' import { rfc1751MnemonicToKey } from './rfc1751' +import { verifySignature } from './signer' const DEFAULT_ALGORITHM: ECDSA = ECDSA.ed25519 const DEFAULT_DERIVATION_PATH = "m/44'/144'/0'/0/0" -function hexFromBuffer(buffer: Buffer): string { - return buffer.toString('hex').toUpperCase() +type ValidHDKey = HDKey & { + privateKey: Uint8Array + publicKey: Uint8Array +} + +function validateKey(node: HDKey): asserts node is ValidHDKey { + if (!(node.privateKey instanceof Uint8Array)) { + throw new ValidationError('Unable to derive privateKey from mnemonic input') + } + + if (!(node.publicKey instanceof Uint8Array)) { + throw new ValidationError('Unable to derive publicKey from mnemonic input') + } } /** @@ -81,7 +88,7 @@ function hexFromBuffer(buffer: Buffer): string { * * @category Signing */ -class Wallet { +export class Wallet { public readonly publicKey: string public readonly privateKey: string public readonly classicAddress: string @@ -122,14 +129,27 @@ class Wallet { } /** - * Generates a new Wallet using a generated seed. + * `generate()` creates a new random Wallet. In order to make this a valid account on ledger, you must + * Send XRP to it. On test networks that can be done with "faucets" which send XRP to any account which asks + * For it. You can call `client.fundWallet()` in order to generate credentials and fund the account on test networks. + * + * @example + * ```ts + * const { Wallet } = require('xrpl') + * const wallet = Wallet.generate() + * ``` * * @param algorithm - The digital signature algorithm to generate an address for. * @returns A new Wallet derived from a generated seed. + * + * @throws ValidationError when signing algorithm isn't valid */ public static generate(algorithm: ECDSA = DEFAULT_ALGORITHM): Wallet { + if (!Object.values(ECDSA).includes(algorithm)) { + throw new ValidationError('Invalid cryptographic signing algorithm') + } const seed = generateSeed({ algorithm }) - return Wallet.fromSeed(seed) + return Wallet.fromSeed(seed, { algorithm }) } /** @@ -224,25 +244,21 @@ class Wallet { }) } // Otherwise decode using bip39's mnemonic standard - if (!validateMnemonic(mnemonic)) { + if (!validateMnemonic(mnemonic, wordlist)) { throw new ValidationError( 'Unable to parse the given mnemonic using bip39 encoding', ) } const seed = mnemonicToSeedSync(mnemonic) - const masterNode = fromSeed(seed) - const node = masterNode.derivePath( + const masterNode = HDKey.fromMasterSeed(seed) + const node = masterNode.derive( opts.derivationPath ?? DEFAULT_DERIVATION_PATH, ) - if (node.privateKey === undefined) { - throw new ValidationError( - 'Unable to derive privateKey from mnemonic input', - ) - } + validateKey(node) - const publicKey = hexFromBuffer(node.publicKey) - const privateKey = hexFromBuffer(node.privateKey) + const publicKey = bytesToHex(node.publicKey) + const privateKey = bytesToHex(node.privateKey) return new Wallet(publicKey, `00${privateKey}`, { masterAddress: opts.masterAddress, }) @@ -301,6 +317,53 @@ class Wallet { /** * Signs a transaction offline. * + * @example + * + * ```ts + * const { Client, Wallet } = require('xrpl') + * const client = new Client('wss://s.altnet.rippletest.net:51233') + * + * async function signTransaction() { + * await client.connect() + * const { balance: balance1, wallet: wallet1 } = client.fundWallet() + * const { balance: balance2, wallet: wallet2 } = client.fundWallet() + * + * const transaction = { + * TransactionType: 'Payment', + * Account: wallet1.address, + * Destination: wallet2.address, + * Amount: '10' + * } + * + * try { + * await client.autofill(transaction) + * const { tx_blob: signed_tx_blob, hash} = await wallet1.sign(transaction) + * console.log(signed_tx_blob) + * } catch (error) { + * console.error(`Failed to sign transaction: ${error}`) + * } + * const result = await client.submit(signed_tx_blob) + * await client.disconnect() + * } + * + * signTransaction() + * ``` + * In order for a transaction to be validated, it must be signed by the account sending the transaction to prove + * That the owner is actually the one deciding to take that action. + * + * In this example, we created, signed, and then submitted a transaction to testnet. You may notice that the + * Output of `sign` includes a `tx_blob` and a `hash`, both of which are needed to submit & verify the results. + * Note: If you pass a `Wallet` to `client.submit` or `client.submitAndWait` it will do signing like this under the hood. + * + * `tx_blob` is a binary representation of a transaction on the XRP Ledger. It's essentially a byte array + * that encodes all of the data necessary to execute the transaction, including the source address, the destination + * address, the amount, and any additional fields required for the specific transaction type. + * + * `hash` is a unique identifier that's generated from the signed transaction data on the XRP Ledger. It's essentially + * A cryptographic digest of the signed transaction blob, created using a hash function. The signed transaction hash is + * Useful for identifying and tracking specific transactions on the XRP Ledger. It can be used to query transaction + * Information, verify the authenticity of a transaction, and detect any tampering with the transaction data. + * * @param this - Wallet instance. * @param transaction - A transaction to be signed offline. * @param multisign - Specify true/false to use multisign or actual address (classic/x-address) to make multisign tx request. @@ -368,7 +431,6 @@ class Wallet { } const serialized = encode(txToSignAndEncode) - this.checkTxSerialization(serialized, tx) return { tx_blob: serialized, hash: hashSignedTx(serialized), @@ -380,15 +442,10 @@ class Wallet { * * @param signedTransaction - A signed transaction (hex string of signTransaction result) to be verified offline. * @returns Returns true if a signedTransaction is valid. + * @throws {Error} Transaction is missing a signature, TxnSignature */ public verifyTransaction(signedTransaction: Transaction | string): boolean { - const tx = - typeof signedTransaction === 'string' - ? decode(signedTransaction) - : signedTransaction - const messageHex: string = encodeForSigning(tx) - const signature = tx.TxnSignature - return verify(messageHex, signature, this.publicKey) + return verifySignature(signedTransaction, this.publicKey) } /** @@ -401,124 +458,6 @@ class Wallet { public getXAddress(tag: number | false = false, isTestnet = false): string { return classicAddressToXAddress(this.classicAddress, tag, isTestnet) } - - /** - * Decode a serialized transaction, remove the fields that are added during the signing process, - * and verify that it matches the transaction prior to signing. This gives the user a sanity check - * to ensure that what they try to encode matches the message that will be recieved by rippled. - * - * @param serialized - A signed and serialized transaction. - * @param tx - The transaction prior to signing. - * @throws A ValidationError if the transaction does not have a TxnSignature/Signers property, or if - * the serialized Transaction desn't match the original transaction. - * @throws XrplError if the transaction includes an issued currency which is equivalent to XRP ignoring case. - */ - // eslint-disable-next-line class-methods-use-this, max-lines-per-function -- Helper for organization purposes - private checkTxSerialization(serialized: string, tx: Transaction): void { - // Decode the serialized transaction: - const decoded = decode(serialized) - const txCopy = { ...tx } - - /* - * And ensure it is equal to the original tx, except: - * - It must have a TxnSignature or Signers (multisign). - */ - if (!decoded.TxnSignature && !decoded.Signers) { - throw new ValidationError( - 'Serialized transaction must have a TxnSignature or Signers property', - ) - } - // - We know that the original tx did not have TxnSignature, so we should delete it: - delete decoded.TxnSignature - // - We know that the original tx did not have Signers, so if it exists, we should delete it: - delete decoded.Signers - - /* - * - If SigningPubKey was not in the original tx, then we should delete it. - * But if it was in the original tx, then we should ensure that it has not been changed. - */ - if (!tx.SigningPubKey) { - delete decoded.SigningPubKey - } - - /* - * - Memos have exclusively hex data which should ignore case. - * Since decode goes to upper case, we set all tx memos to be uppercase for the comparison. - */ - txCopy.Memos?.map((memo) => { - const memoCopy = { ...memo } - if (memo.Memo.MemoData) { - if (!isHex(memo.Memo.MemoData)) { - throw new ValidationError('MemoData field must be a hex value') - } - memoCopy.Memo.MemoData = memo.Memo.MemoData.toUpperCase() - } - - if (memo.Memo.MemoType) { - if (!isHex(memo.Memo.MemoType)) { - throw new ValidationError('MemoType field must be a hex value') - } - memoCopy.Memo.MemoType = memo.Memo.MemoType.toUpperCase() - } - - if (memo.Memo.MemoFormat) { - if (!isHex(memo.Memo.MemoFormat)) { - throw new ValidationError('MemoFormat field must be a hex value') - } - memoCopy.Memo.MemoFormat = memo.Memo.MemoFormat.toUpperCase() - } - - return memo - }) - - if (txCopy.TransactionType === 'NFTokenMint' && txCopy.URI) { - txCopy.URI = txCopy.URI.toUpperCase() - } - - /* eslint-disable @typescript-eslint/consistent-type-assertions -- We check at runtime that this is safe */ - Object.keys(txCopy).forEach((key) => { - const standard_currency_code_len = 3 - if (txCopy[key] && isIssuedCurrency(txCopy[key])) { - const decodedAmount = decoded[key] as unknown as IssuedCurrencyAmount - const decodedCurrency = decodedAmount.currency - const txCurrency = (txCopy[key] as IssuedCurrencyAmount).currency - - if ( - txCurrency.length === standard_currency_code_len && - txCurrency.toUpperCase() === 'XAH' - ) { - throw new XrplError( - `Trying to sign an issued currency with a similar standard code to XAH (received '${txCurrency}'). XAH is not an issued currency.`, - ) - } - - // Standardize the format of currency codes to the 40 byte hex string for comparison - const amount = txCopy[key] as IssuedCurrencyAmount - if (amount.currency.length !== decodedCurrency.length) { - /* eslint-disable-next-line max-depth -- Easier to read with two if-statements */ - if (decodedCurrency.length === standard_currency_code_len) { - decodedAmount.currency = isoToHex(decodedCurrency) - } else { - /* eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- We need to update txCopy directly */ - txCopy[key].currency = isoToHex(txCopy[key].currency) - } - } - } - }) - /* eslint-enable @typescript-eslint/consistent-type-assertions -- Done with dynamic checking */ - - if (!isEqual(decoded, txCopy)) { - const data = { - decoded, - tx, - } - const error = new ValidationError( - 'Serialized transaction does not match original txJSON. See error.data', - data, - ) - throw error - } - } } /** @@ -566,21 +505,3 @@ function removeTrailingZeros(tx: Transaction): void { tx.Amount.value = new BigNumber(tx.Amount.value).toString() } } - -/** - * Convert an ISO code to a hex string representation - * - * @param iso - A 3 letter standard currency code - */ -/* eslint-disable @typescript-eslint/no-magic-numbers -- Magic numbers are from rippleds of currency code encoding */ -function isoToHex(iso: string): string { - const bytes = Buffer.alloc(20) - if (iso !== 'XAH') { - const isoBytes = iso.split('').map((chr) => chr.charCodeAt(0)) - bytes.set(isoBytes, 12) - } - return bytes.toString('hex').toUpperCase() -} -/* eslint-enable @typescript-eslint/no-magic-numbers -- Only needed in this function */ - -export default Wallet diff --git a/packages/xrpl/src/Wallet/rfc1751.ts b/packages/xrpl/src/Wallet/rfc1751.ts index 1080d0362e..b825a87e53 100644 --- a/packages/xrpl/src/Wallet/rfc1751.ts +++ b/packages/xrpl/src/Wallet/rfc1751.ts @@ -10,6 +10,8 @@ *is part of the public domain. */ +import { hexToBytes, concat } from '@xrplf/isomorphic/utils' + import rfc1751Words from './rfc1751Words.json' const rfc1751WordList: string[] = rfc1751Words @@ -59,7 +61,7 @@ function extract(key: string, start: number, length: number): number { */ function keyToRFC1751Mnemonic(hex_key: string): string { // Remove whitespace and interpret hex - const buf = Buffer.from(hex_key.replace(/\s+/gu, ''), 'hex') + const buf = hexToBytes(hex_key.replace(/\s+/gu, '')) // Swap byte order and use rfc1751 let key: number[] = bufferToArray(swap128(buf)) @@ -97,7 +99,7 @@ function keyToRFC1751Mnemonic(hex_key: string): string { * @throws Error if the parity after decoding does not match. * @returns A Buffer containing an encoded secret. */ -function rfc1751MnemonicToKey(english: string): Buffer { +function rfc1751MnemonicToKey(english: string): Uint8Array { const words = english.split(' ') let key: number[] = [] @@ -123,7 +125,7 @@ function rfc1751MnemonicToKey(english: string): Buffer { } // This is a step specific to the XRPL's implementation - const bufferKey = swap128(Buffer.from(key)) + const bufferKey = swap128(Uint8Array.from(key)) return bufferKey } @@ -165,26 +167,53 @@ function getSubKey( return { subKey, word } } -function bufferToArray(buf: Buffer): number[] { +function bufferToArray(buf: Uint8Array): number[] { /* eslint-disable-next-line @typescript-eslint/consistent-type-assertions -- We know the end type */ return Array.prototype.slice.call(buf) as number[] } +function swap(arr: Uint8Array, n: number, m: number): void { + const i = arr[n] + // eslint-disable-next-line no-param-reassign -- we have to swap + arr[n] = arr[m] + // eslint-disable-next-line no-param-reassign -- see above + arr[m] = i +} + +/** + * Interprets arr as an array of 64-bit numbers and swaps byte order in 64 bit chunks. + * Example of two 64 bit numbers 0000000100000002 => 1000000020000000 + * + * @param arr A Uint8Array representation of one or more 64 bit numbers + * @returns Uint8Array An array containing the bytes of 64 bit numbers each with reversed endianness + */ +function swap64(arr: Uint8Array): Uint8Array { + const len = arr.length + + for (let i = 0; i < len; i += 8) { + swap(arr, i, i + 7) + swap(arr, i + 1, i + 6) + swap(arr, i + 2, i + 5) + swap(arr, i + 3, i + 4) + } + + return arr +} + /** - * Swap the byte order of a 128-bit buffer. + * Swap the byte order of a 128-bit array. + * Ex. 0000000100000002 => 2000000010000000 * - * @param buf - A 128-bit (16 byte) buffer - * @returns A buffer containing the same data with reversed endianness + * @param arr - A 128-bit (16 byte) array + * @returns An array containing the same data with reversed endianness */ -function swap128(buf: Buffer): Buffer { - // Interprets buffer as an array of (two, in this case) 64-bit numbers and swaps byte order in-place. - const reversedBytes = buf.swap64() - - // Swap the two 64-bit numbers since our buffer is 128 bits. - return Buffer.concat( - [reversedBytes.slice(8, 16), reversedBytes.slice(0, 8)], - 16, - ) +function swap128(arr: Uint8Array): Uint8Array { + // Interprets arr as an array of (two, in this case) 64-bit numbers and swaps byte order in 64 bit chunks. + // Ex. 0000000100000002 => 1000000020000000 + const reversedBytes = swap64(arr) + // Further swap the two 64-bit numbers since our buffer is 128 bits. + // Ex. 1000000020000000 => 2000000010000000 + return concat([reversedBytes.slice(8, 16), reversedBytes.slice(0, 8)]) } export { rfc1751MnemonicToKey, keyToRFC1751Mnemonic } diff --git a/packages/xrpl/src/Wallet/signer.ts b/packages/xrpl/src/Wallet/signer.ts index 1d76dd5fca..126e629cd7 100644 --- a/packages/xrpl/src/Wallet/signer.ts +++ b/packages/xrpl/src/Wallet/signer.ts @@ -1,20 +1,13 @@ -import { decodeAccountID } from '@transia/ripple-address-codec' -import { - decode, - encode, - encodeForSigning, - encodeForSigningClaim, -} from '@transia/ripple-binary-codec' -import { sign as signWithKeypair, verify } from '@transia/ripple-keypairs' +import { bytesToHex } from '@xrplf/isomorphic/utils' import { BigNumber } from 'bignumber.js' -import { flatMap } from 'lodash' +import { decodeAccountID } from 'ripple-address-codec' +import { decode, encode, encodeForSigning } from 'ripple-binary-codec' +import { verify } from 'ripple-keypairs' import { ValidationError } from '../errors' import { Signer } from '../models/common' import { Transaction, validate } from '../models/transactions' -import Wallet from '.' - /** * Takes several transactions with Signer fields (in object or blob form) and creates a * single transaction with all Signers that then gets signed and returned. @@ -32,9 +25,13 @@ function multisign(transactions: Array): string { throw new ValidationError('There were 0 transactions to multisign') } - transactions.forEach((txOrBlob) => { - const tx: Transaction = getDecodedTransaction(txOrBlob) + const decodedTransactions: Transaction[] = transactions.map( + (txOrBlob: string | Transaction) => { + return getDecodedTransaction(txOrBlob) + }, + ) + decodedTransactions.forEach((tx) => { /* * This will throw a more clear error for JS users if any of the supplied transactions has incorrect formatting */ @@ -53,53 +50,45 @@ function multisign(transactions: Array): string { } }) - const decodedTransactions: Transaction[] = transactions.map( - (txOrBlob: string | Transaction) => { - return getDecodedTransaction(txOrBlob) - }, - ) - validateTransactionEquivalence(decodedTransactions) return encode(getTransactionWithAllSigners(decodedTransactions)) } -/** - * Creates a signature that can be used to redeem a specific amount of XRP from a payment channel. - * - * @param wallet - The account that will sign for this payment channel. - * @param channelId - An id for the payment channel to redeem XRP from. - * @param amount - The amount in drops to redeem. - * @returns A signature that can be used to redeem a specific amount of XRP from a payment channel. - * @category Utilities - */ -function authorizeChannel( - wallet: Wallet, - channelId: string, - amount: string, -): string { - const signingData = encodeForSigningClaim({ - channel: channelId, - amount, - }) - - return signWithKeypair(signingData, wallet.privateKey) -} - /** * Verifies that the given transaction has a valid signature based on public-key encryption. * * @param tx - A transaction to verify the signature of. (Can be in object or encoded string format). + * @param [publicKey] Specific public key to use to verify. If not specified the `SigningPublicKey` of tx will be used. * @returns Returns true if tx has a valid signature, and returns false otherwise. + * @throws Error when transaction is missing TxnSignature + * @throws Error when publicKey is not provided and transaction is missing SigningPubKey * @category Utilities */ -function verifySignature(tx: Transaction | string): boolean { +function verifySignature( + tx: Transaction | string, + publicKey?: string, +): boolean { const decodedTx: Transaction = getDecodedTransaction(tx) - return verify( - encodeForSigning(decodedTx), - decodedTx.TxnSignature, - decodedTx.SigningPubKey, - ) + let key = publicKey + + // Need a SignedTransaction class where TxnSignature is not optional. + if (typeof decodedTx.TxnSignature !== 'string' || !decodedTx.TxnSignature) { + throw new Error('Transaction is missing a signature, TxnSignature') + } + + if (!key) { + // Need a SignedTransaction class where TxnSignature is not optional. + if ( + typeof decodedTx.SigningPubKey !== 'string' || + !decodedTx.SigningPubKey + ) { + throw new Error('Transaction is missing a public key, SigningPubKey') + } + key = decodedTx.SigningPubKey + } + + return verify(encodeForSigning(decodedTx), decodedTx.TxnSignature, key) } /** @@ -130,10 +119,9 @@ function getTransactionWithAllSigners( transactions: Transaction[], ): Transaction { // Signers must be sorted in the combined transaction - See compareSigners' documentation for more details - const sortedSigners: Signer[] = flatMap( - transactions, - (tx) => tx.Signers ?? [], - ).sort(compareSigners) + const sortedSigners: Signer[] = transactions + .flatMap((tx) => tx.Signers ?? []) + .sort(compareSigners) return { ...transactions[0], Signers: sortedSigners } } @@ -154,10 +142,11 @@ function compareSigners(left: Signer, right: Signer): number { ) } +const NUM_BITS_IN_HEX = 16 + function addressToBigNumber(address: string): BigNumber { - const hex = Buffer.from(decodeAccountID(address)).toString('hex') - const numberOfBitsInHex = 16 - return new BigNumber(hex, numberOfBitsInHex) + const hex = bytesToHex(decodeAccountID(address)) + return new BigNumber(hex, NUM_BITS_IN_HEX) } function getDecodedTransaction(txOrBlob: Transaction | string): Transaction { @@ -171,4 +160,4 @@ function getDecodedTransaction(txOrBlob: Transaction | string): Transaction { return decode(txOrBlob) as unknown as Transaction } -export { authorizeChannel, verifySignature, multisign } +export { verifySignature, multisign } diff --git a/packages/xrpl/src/Wallet/walletFromSecretNumbers.ts b/packages/xrpl/src/Wallet/walletFromSecretNumbers.ts new file mode 100644 index 0000000000..1670a5378a --- /dev/null +++ b/packages/xrpl/src/Wallet/walletFromSecretNumbers.ts @@ -0,0 +1,37 @@ +import { Account } from '@xrplf/secret-numbers' + +import ECDSA from '../ECDSA' + +import { Wallet } from '.' + +/** + * Derives a wallet from secret numbers. + * NOTE: This uses a default encoding algorithm of secp256k1 to match the popular wallet + * [Xumm (aka Xaman)](https://xumm.app/)'s behavior. + * This may be different from the DEFAULT_ALGORITHM for other ways to generate a Wallet. + * + * @param secretNumbers - A string consisting of 8 times 6 numbers (whitespace delimited) used to derive a wallet. + * @param opts - (Optional) Options to derive a Wallet. + * @param opts.masterAddress - Include if a Wallet uses a Regular Key Pair. It must be the master address of the account. + * @param opts.algorithm - The digital signature algorithm to generate an address for. + * @returns A Wallet derived from secret numbers. + * @throws ValidationError if unable to derive private key from secret number input. + */ +export function walletFromSecretNumbers( + secretNumbers: string[] | string, + opts?: { masterAddress?: string; algorithm?: ECDSA }, +): Wallet { + const secret = new Account(secretNumbers).getFamilySeed() + const updatedOpts: { masterAddress?: string; algorithm?: ECDSA } = { + masterAddress: undefined, + algorithm: undefined, + } + // Use secp256k1 since that's the algorithm used by popular wallets like Xumm when generating secret number accounts + if (opts === undefined) { + updatedOpts.algorithm = ECDSA.secp256k1 + } else { + updatedOpts.masterAddress = opts.masterAddress + updatedOpts.algorithm = opts.algorithm ?? ECDSA.secp256k1 + } + return Wallet.fromSecret(secret, updatedOpts) +} diff --git a/packages/xrpl/src/client/BroadcastClient.ts b/packages/xrpl/src/client/BroadcastClient.ts deleted file mode 100644 index 8797056940..0000000000 --- a/packages/xrpl/src/client/BroadcastClient.ts +++ /dev/null @@ -1,84 +0,0 @@ -import { Client, ClientOptions } from '.' - -/** - * Client that can rely on multiple different servers. - * - * @deprecated since version 2.2.0. - * Will be deleted in version 3.0.0. - * - * Currently this implementation does not provide better reliability. - * To get better reliability, implement reconnect/error handling logic - * and choose a reliable endpoint. - * - * If you need the ability to fall-back to different endpoints, consider - * using [xrpl-client](https://github.com/XRPL-Labs/xrpl-client/) - * - * @category Clients - */ -export default class BroadcastClient extends Client { - private readonly clients: Client[] - - /** - * Creates a new BroadcastClient. - * - * @category Constructor - * @param servers - An array of names of servers. - * @param options - Options for the clients. - */ - public constructor(servers: string[], options: ClientOptions = {}) { - super(servers[0], options) - - const clients: Client[] = servers.map( - (server) => new Client(server, options), - ) - - this.clients = clients - this.getMethodNames().forEach((name: string) => { - this[name] = async (...args): Promise => - /* eslint-disable @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-call -- Generates types - from the Client */ - Promise.race(clients.map(async (client) => client[name](...args))) - /* eslint-enable @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-call */ - }) - - // connection methods must be overridden to apply to all client instances - this.connect = async (): Promise => { - await Promise.all(clients.map(async (client) => client.connect())) - } - this.disconnect = async (): Promise => { - await Promise.all(clients.map(async (client) => client.disconnect())) - } - this.isConnected = (): boolean => - clients.map((client) => client.isConnected()).every(Boolean) - - clients.forEach((client) => { - client.on('error', (errorCode, errorMessage, data) => - this.emit('error', errorCode, errorMessage, data), - ) - }) - } - - /** - * Gets the method names of all the methods of the client. - * - * @returns A list of the names of all the methods of the client. - */ - private getMethodNames(): string[] { - const methodNames: string[] = [] - const firstClient = this.clients[0] - const methods = Object.getOwnPropertyNames(firstClient) - methods.push( - ...Object.getOwnPropertyNames(Object.getPrototypeOf(firstClient)), - ) - for (const name of methods) { - if ( - typeof firstClient[name] === 'function' && - name !== 'constructor' && - name !== 'on' - ) { - methodNames.push(name) - } - } - return methodNames - } -} diff --git a/packages/xrpl/src/client/RequestManager.ts b/packages/xrpl/src/client/RequestManager.ts index 9e7edb04cc..79712140ac 100644 --- a/packages/xrpl/src/client/RequestManager.ts +++ b/packages/xrpl/src/client/RequestManager.ts @@ -4,9 +4,16 @@ import { TimeoutError, XrplError, } from '../errors' -import { Response } from '../models/methods' +import type { APIVersion } from '../models' +import { Response, RequestResponseMap } from '../models/methods' import { BaseRequest, ErrorResponse } from '../models/methods/baseMethod' +interface PromiseEntry { + resolve: (value: T | PromiseLike) => void + reject: (value: Error) => void + timer: ReturnType +} + /** * Manage all the requests made to the websocket, and their async responses * that come in from the WebSocket. Responses come in over the WS connection @@ -17,13 +24,31 @@ export default class RequestManager { private nextId = 0 private readonly promisesAwaitingResponse = new Map< string | number, - { - resolve: (value: Response | PromiseLike) => void - reject: (value: Error) => void - timer: ReturnType - } + // eslint-disable-next-line @typescript-eslint/no-explicit-any -- Necessary and typed wrapper in addPromise method + PromiseEntry >() + /** + * Adds a promise to the collection of promises awaiting response. Handles typing with generics. + * + * @template T The generic type parameter representing the resolved value type. + * @param newId - The identifier for the new promise. + * @param timer - The timer associated with the promise. + * @returns A promise that resolves to the specified generic type. + */ + public async addPromise< + R extends BaseRequest, + T = RequestResponseMap, + >(newId: string | number, timer: ReturnType): Promise { + return new Promise((resolve, reject) => { + this.promisesAwaitingResponse.set(newId, { + resolve, + reject, + timer, + }) + }) + } + /** * Successfully resolves a request. * @@ -31,7 +56,10 @@ export default class RequestManager { * @param response - Response to return. * @throws Error if no existing promise with the given ID. */ - public resolve(id: string | number, response: Response): void { + public resolve( + id: string | number, + response: Partial>, + ): void { const promise = this.promisesAwaitingResponse.get(id) if (promise == null) { throw new XrplError(`No existing promise with id ${id}`, { @@ -87,10 +115,10 @@ export default class RequestManager { * @returns Request ID, new request form, and the promise for resolving the request. * @throws XrplError if request with the same ID is already pending. */ - public createRequest( - request: T, - timeout: number, - ): [string | number, string, Promise] { + public createRequest< + R extends BaseRequest, + T = RequestResponseMap, + >(request: R, timeout: number): [string | number, string, Promise] { let newId: string | number if (request.id == null) { newId = this.nextId @@ -129,11 +157,13 @@ export default class RequestManager { request, ) } - const newPromise = new Promise( - (resolve: (value: Response | PromiseLike) => void, reject) => { - this.promisesAwaitingResponse.set(newId, { resolve, reject, timer }) - }, - ) + const newPromise = new Promise((resolve, reject) => { + this.promisesAwaitingResponse.set(newId, { + resolve, + reject, + timer, + }) + }) return [newId, newRequest, newPromise] } @@ -145,7 +175,9 @@ export default class RequestManager { * @param response - The response to handle. * @throws ResponseFormatError if the response format is invalid, RippledError if rippled returns an error. */ - public handleResponse(response: Partial): void { + public handleResponse( + response: Partial | ErrorResponse>, + ): void { if ( response.id == null || !(typeof response.id === 'string' || typeof response.id === 'number') @@ -179,8 +211,7 @@ export default class RequestManager { } // status no longer needed because error is thrown if status is not "success" delete response.status - // eslint-disable-next-line @typescript-eslint/consistent-type-assertions -- Must be a valid Response here - this.resolve(response.id, response as unknown as Response) + this.resolve(response.id, response) } /** diff --git a/packages/xrpl/src/client/connection.ts b/packages/xrpl/src/client/connection.ts index 8210039fb8..3214b557e2 100644 --- a/packages/xrpl/src/client/connection.ts +++ b/packages/xrpl/src/client/connection.ts @@ -1,9 +1,9 @@ /* eslint-disable max-lines -- Connection is a large file w/ lots of imports/exports */ -import { EventEmitter } from 'events' -import { Agent } from 'http' +import type { Agent } from 'http' -import omitBy from 'lodash/omitBy' -import WebSocket from 'ws' +import { bytesToHex, hexToString } from '@xrplf/isomorphic/utils' +import WebSocket, { ClientOptions } from '@xrplf/isomorphic/ws' +import { EventEmitter } from 'eventemitter3' import { DisconnectedError, @@ -11,6 +11,7 @@ import { ConnectionError, XrplError, } from '../errors' +import type { APIVersion, RequestResponseMap } from '../models' import { BaseRequest } from '../models/methods/baseMethod' import ConnectionManager from './ConnectionManager' @@ -26,17 +27,11 @@ const CONNECTION_TIMEOUT = 5 */ interface ConnectionOptions { trace?: boolean | ((id: string, message: string) => void) - proxy?: string - proxyAuthorization?: string + headers?: { [key: string]: string } + agent?: Agent authorization?: string - trustedCertificates?: string[] - key?: string - passphrase?: string - certificate?: string - // request timeout - timeout: number connectionTimeout: number - headers?: { [key: string]: string } + timeout: number } /** @@ -55,52 +50,6 @@ export const INTENTIONAL_DISCONNECT_CODE = 4000 type WebsocketState = 0 | 1 | 2 | 3 -function getAgent(url: string, config: ConnectionOptions): Agent | undefined { - if (config.proxy == null) { - return undefined - } - - const parsedURL = new URL(url) - const parsedProxyURL = new URL(config.proxy) - - const proxyOptions = omitBy( - { - secureEndpoint: parsedURL.protocol === 'wss:', - secureProxy: parsedProxyURL.protocol === 'https:', - auth: config.proxyAuthorization, - ca: config.trustedCertificates, - key: config.key, - passphrase: config.passphrase, - cert: config.certificate, - href: parsedProxyURL.href, - origin: parsedProxyURL.origin, - protocol: parsedProxyURL.protocol, - username: parsedProxyURL.username, - password: parsedProxyURL.password, - host: parsedProxyURL.host, - hostname: parsedProxyURL.hostname, - port: parsedProxyURL.port, - pathname: parsedProxyURL.pathname, - search: parsedProxyURL.search, - hash: parsedProxyURL.hash, - }, - (value) => value == null, - ) - - let HttpsProxyAgent: new (opt: typeof proxyOptions) => Agent - try { - /* eslint-disable @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-require-imports, - node/global-require, global-require, -- Necessary for the `require` */ - HttpsProxyAgent = require('https-proxy-agent') - /* eslint-enable @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-require-imports, - node/global-require, global-require, */ - } catch (_error) { - throw new Error('"proxy" option is not supported in the browser') - } - - return new HttpsProxyAgent(proxyOptions) -} - /** * Create a new websocket given your URL and optional proxy/certificate * configuration. @@ -113,37 +62,20 @@ function createWebSocket( url: string, config: ConnectionOptions, ): WebSocket | null { - const options: WebSocket.ClientOptions = {} - options.agent = getAgent(url, config) + const options: ClientOptions = { + agent: config.agent, + } if (config.headers) { options.headers = config.headers } if (config.authorization != null) { - const base64 = Buffer.from(config.authorization).toString('base64') options.headers = { ...options.headers, - Authorization: `Basic ${base64}`, + Authorization: `Basic ${btoa(config.authorization)}`, } } - const optionsOverrides = omitBy( - { - ca: config.trustedCertificates, - key: config.key, - passphrase: config.passphrase, - cert: config.certificate, - }, - (value) => value == null, - ) - const websocketOptions = { ...options, ...optionsOverrides } - const websocket = new WebSocket(url, websocketOptions) - /* - * we will have a listener for each outstanding request, - * so we have to raise the limit (the default is 10) - */ - if (typeof websocket.setMaxListeners === 'function') { - websocket.setMaxListeners(Infinity) - } - return websocket + const websocketOptions = { ...options } + return new WebSocket(url, websocketOptions) } /** @@ -177,7 +109,7 @@ export class Connection extends EventEmitter { private ws: WebSocket | null = null // Typing necessary for Jest tests running in browser private reconnectTimeoutID: null | ReturnType = null - // Typing necessary for Jest tetsts running in browser + // Typing necessary for Jest tests running in browser private heartbeatIntervalID: null | ReturnType = null private readonly retryConnectionBackoff = new ExponentialBackoff({ min: 100, @@ -196,7 +128,6 @@ export class Connection extends EventEmitter { */ public constructor(url?: string, options: ConnectionUserOptions = {}) { super() - this.setMaxListeners(Infinity) this.url = url this.config = { timeout: TIMEOUT * 1000, @@ -336,6 +267,7 @@ export class Connection extends EventEmitter { /** * Disconnect the websocket, then connect again. + * */ public async reconnect(): Promise { /* @@ -356,17 +288,17 @@ export class Connection extends EventEmitter { * @returns The response from the rippled server. * @throws NotConnectedError if the Connection isn't connected to a server. */ - public async request( - request: T, - timeout?: number, - ): Promise { + public async request< + R extends BaseRequest, + T = RequestResponseMap, + >(request: R, timeout?: number): Promise { if (!this.shouldBeConnected || this.ws == null) { throw new NotConnectedError(JSON.stringify(request), request) } - const [id, message, responsePromise] = this.requestManager.createRequest( - request, - timeout ?? this.config.timeout, - ) + const [id, message, responsePromise] = this.requestManager.createRequest< + R, + T + >(request, timeout ?? this.config.timeout) this.trace('send', message) websocketSendAsync(this.ws, message).catch((error) => { this.requestManager.reject(id, error) @@ -451,7 +383,7 @@ export class Connection extends EventEmitter { this.emit('error', 'websocket', error.message, error), ) // Handle a closed connection: reconnect if it was unexpected - this.ws.once('close', (code?: number, reason?: Buffer) => { + this.ws.once('close', (code?: number, reason?: Uint8Array) => { if (this.ws == null) { throw new XrplError('onceClose: ws is null') } @@ -459,7 +391,9 @@ export class Connection extends EventEmitter { this.clearHeartbeatInterval() this.requestManager.rejectAll( new DisconnectedError( - `websocket was closed, ${new TextDecoder('utf-8').decode(reason)}`, + `websocket was closed, ${ + reason ? hexToString(bytesToHex(reason)) : '' + }`, ), ) this.ws.removeAllListeners() @@ -535,6 +469,7 @@ export class Connection extends EventEmitter { /** * Starts a heartbeat to check the connection with the server. + * */ private startHeartbeatInterval(): void { this.clearHeartbeatInterval() diff --git a/packages/xrpl/src/client/index.ts b/packages/xrpl/src/client/index.ts index 6543b9d327..e360b2f800 100644 --- a/packages/xrpl/src/client/index.ts +++ b/packages/xrpl/src/client/index.ts @@ -1,109 +1,88 @@ /* eslint-disable jsdoc/require-jsdoc -- Request has many aliases, but they don't need unique docs */ -/* eslint-disable @typescript-eslint/member-ordering -- TODO: remove when instance methods aren't members */ + /* eslint-disable max-lines -- Client is a large file w/ lots of imports/exports */ -import * as assert from 'assert' -import { EventEmitter } from 'events' +import { EventEmitter } from 'eventemitter3' -import { NotFoundError, ValidationError, XrplError } from '../errors' +import { + RippledError, + NotFoundError, + ValidationError, + XrplError, +} from '../errors' +import { + APIVersion, + LedgerIndex, + Balance, + DEFAULT_API_VERSION, +} from '../models/common' +import { Amendments } from '../models/ledger' import { Request, - Response, // account methods AccountChannelsRequest, AccountChannelsResponse, - AccountCurrenciesRequest, - AccountCurrenciesResponse, AccountInfoRequest, - AccountInfoResponse, AccountLinesRequest, AccountLinesResponse, - AccountNFTsRequest, - AccountNFTsResponse, AccountObjectsRequest, AccountObjectsResponse, AccountOffersRequest, AccountOffersResponse, AccountTxRequest, AccountTxResponse, - GatewayBalancesRequest, - GatewayBalancesResponse, - NoRippleCheckRequest, - NoRippleCheckResponse, // ledger methods - LedgerRequest, - LedgerResponse, - LedgerClosedRequest, - LedgerClosedResponse, - LedgerCurrentRequest, - LedgerCurrentResponse, LedgerDataRequest, LedgerDataResponse, - LedgerEntryRequest, - LedgerEntryResponse, - // transaction methods - SubmitRequest, - SubmitResponse, - SubmitMultisignedRequest, - SubmitMultisignedResponse, - TransactionEntryRequest, - TransactionEntryResponse, - TxRequest, TxResponse, - // path and order book methods - BookOffersRequest, - BookOffersResponse, - DepositAuthorizedRequest, - DepositAuthorizedResponse, - PathFindRequest, - PathFindResponse, - RipplePathFindRequest, - RipplePathFindResponse, - // payment channel methods - ChannelVerifyRequest, - ChannelVerifyResponse, - // server info methods - FeeRequest, - FeeResponse, - ManifestRequest, - ManifestResponse, - ServerInfoRequest, - ServerInfoResponse, - ServerStateRequest, - ServerStateResponse, - // utility methods - PingRequest, - PingResponse, - RandomRequest, - RandomResponse, - LedgerStream, - ValidationStream, - TransactionStream, - PathFindStream, - PeerStatusStream, - ConsensusStream, - SubscribeRequest, - SubscribeResponse, - UnsubscribeRequest, - UnsubscribeResponse, - // NFT methods - NFTBuyOffersRequest, - NFTBuyOffersResponse, - NFTSellOffersRequest, - NFTSellOffersResponse, } from '../models/methods' -import { BaseRequest, BaseResponse } from '../models/methods/baseMethod' +import type { + RequestResponseMap, + RequestAllResponseMap, + MarkerRequest, + MarkerResponse, + SubmitResponse, + LedgerEntryResponse, +} from '../models/methods' +import type { BookOffer, BookOfferCurrency } from '../models/methods/bookOffers' +import type { + EventTypes, + OnEventToListenerMap, +} from '../models/methods/subscribe' +import type { SubmittableTransaction } from '../models/transactions' +import { setTransactionFlagsToNumber } from '../models/utils/flags' import { - autofill, ensureClassicAddress, - getLedgerIndex, - getOrderbook, - getBalances, - getXrpBalance, - submit, - submitAndWait, - getNetworkID, + submitRequest, + getSignedTx, + getLastLedgerSequence, + waitForFinalTransactionOutcome, } from '../sugar' -import fundWallet from '../Wallet/fundWallet' +import { + setValidAddresses, + setNextValidSequenceNumber, + calculateFeePerTransactionType, + setLatestValidatedLedgerSequence, + checkAccountDeleteBlockers, + txNeedsNetworkID, +} from '../sugar/autofill' +import { formatBalances } from '../sugar/balances' +import { + validateOrderbookOptions, + createBookOffersRequest, + requestAllOffers, + reverseRequest, + extractOffers, + combineOrders, + separateBuySellOrders, + sortAndLimitOffers, +} from '../sugar/getOrderbook' +import { dropsToXrp, hashes, isValidClassicAddress } from '../utils' +import { Wallet } from '../Wallet' +import { + type FaucetRequestBody, + FundingOptions, + requestFunding, +} from '../Wallet/fundWallet' import { Connection, @@ -116,12 +95,49 @@ import { } from './partialPayment' export interface ClientOptions extends ConnectionUserOptions { + /** + * Multiplication factor to multiply estimated fee by to provide a cushion in case the + * required fee rises during submission of a transaction. Defaults to 1.2. + * + * @category Fee + */ feeCushion?: number + /** + * Maximum transaction cost to allow, in decimal XRP. Must be a string-encoded + * number. Defaults to '2'. + * + * @category Fee + */ maxFeeXRP?: string - proxy?: string + /** + * Duration to wait for a request to timeout. + */ timeout?: number } +// Make sure to update both this and `RequestNextPageReturnMap` at the same time +type RequestNextPageType = + | AccountChannelsRequest + | AccountLinesRequest + | AccountObjectsRequest + | AccountOffersRequest + | AccountTxRequest + | LedgerDataRequest + +type RequestNextPageReturnMap = T extends AccountChannelsRequest + ? AccountChannelsResponse + : T extends AccountLinesRequest + ? AccountLinesResponse + : T extends AccountObjectsRequest + ? AccountObjectsResponse + : T extends AccountOffersRequest + ? AccountOffersResponse + : T extends AccountTxRequest + ? AccountTxResponse + : T extends LedgerDataRequest + ? LedgerDataResponse + : never + /** * Get the response key / property name that contains the listed data for a * command. This varies from command to command, but we need to know it to @@ -151,19 +167,10 @@ function getCollectKeyFromCommand(command: string): string | null { } function clamp(value: number, min: number, max: number): number { - assert.ok(min <= max, 'Illegal clamp bounds') - return Math.min(Math.max(value, min), max) -} - -interface MarkerRequest extends BaseRequest { - limit?: number - marker?: unknown -} - -interface MarkerResponse extends BaseResponse { - result: { - marker?: unknown + if (min > max) { + throw new Error('Illegal clamp bounds') } + return Math.min(Math.max(value, min), max) } const DEFAULT_FEE_CUSHION = 1.2 @@ -179,7 +186,7 @@ const NORMAL_DISCONNECT_CODE = 1000 * * @category Clients */ -class Client extends EventEmitter { +class Client extends EventEmitter { /* * Underlying connection to rippled. */ @@ -202,11 +209,28 @@ class Client extends EventEmitter { public readonly maxFeeXRP: string /** - * Network ID of the server this sdk is connected to + * Network ID of the server this client is connected to * - * @category Fee */ - public networkID: number + public networkID: number | undefined + + /** + * Rippled Version used by the server this client is connected to + * + */ + public buildVersion: string | undefined + + /** + * API Version used by the server this client is connected to + * + */ + public apiVersion: APIVersion = DEFAULT_API_VERSION + + /** + * Whether hooks amendment is enabled. + * + */ + public hooksEnabled = true /** * Creates a new Client with a websocket connection to a rippled server. @@ -214,8 +238,14 @@ class Client extends EventEmitter { * @param server - URL of the server to connect to. * @param options - Options for client settings. * @category Constructor + * + * @example + * ```ts + * import { Client } from "xrpl" + * const client = new Client('wss://s.altnet.rippletest.net:51233') + * ``` */ - // eslint-disable-next-line max-lines-per-function -- okay because we have to set up all the connection handlers + /* eslint-disable max-lines-per-function -- the constructor requires more lines to implement the logic */ public constructor(server: string, options: ClientOptions = {}) { super() if (typeof server !== 'string' || !/wss?(?:\+unix)?:\/\//u.exec(server)) { @@ -226,7 +256,6 @@ class Client extends EventEmitter { this.feeCushion = options.feeCushion ?? DEFAULT_FEE_CUSHION this.maxFeeXRP = options.maxFeeXRP ?? DEFAULT_MAX_FEE_XRP - this.networkID = 1 this.connection = new Connection(server, options) @@ -234,8 +263,8 @@ class Client extends EventEmitter { this.emit('error', errorCode, errorMessage, data) }) - this.connection.on('connected', () => { - this.emit('connected') + this.connection.on('reconnect', () => { + this.connection.on('connected', () => this.emit('connected')) }) this.connection.on('disconnected', (code: number) => { @@ -280,6 +309,7 @@ class Client extends EventEmitter { this.emit('path_find', path) }) } + /* eslint-enable max-lines-per-function */ /** * Get the url that the client is connected to. @@ -291,81 +321,37 @@ class Client extends EventEmitter { return this.connection.getUrl() } - /** - * @category Network - */ - public async request( - r: AccountChannelsRequest, - ): Promise - public async request( - r: AccountCurrenciesRequest, - ): Promise - public async request(r: AccountInfoRequest): Promise - public async request(r: AccountLinesRequest): Promise - public async request(r: AccountNFTsRequest): Promise - public async request( - r: AccountObjectsRequest, - ): Promise - public async request(r: AccountOffersRequest): Promise - public async request(r: AccountTxRequest): Promise - public async request(r: BookOffersRequest): Promise - public async request(r: ChannelVerifyRequest): Promise - public async request( - r: DepositAuthorizedRequest, - ): Promise - public async request(r: FeeRequest): Promise - public async request( - r: GatewayBalancesRequest, - ): Promise - public async request(r: LedgerRequest): Promise - public async request(r: LedgerClosedRequest): Promise - public async request(r: LedgerCurrentRequest): Promise - public async request(r: LedgerDataRequest): Promise - public async request(r: LedgerEntryRequest): Promise - public async request(r: ManifestRequest): Promise - public async request(r: NFTBuyOffersRequest): Promise - public async request(r: NFTSellOffersRequest): Promise - public async request(r: NoRippleCheckRequest): Promise - public async request(r: PathFindRequest): Promise - public async request(r: PingRequest): Promise - public async request(r: RandomRequest): Promise - public async request( - r: RipplePathFindRequest, - ): Promise - public async request(r: ServerInfoRequest): Promise - public async request(r: ServerStateRequest): Promise - public async request(r: SubmitRequest): Promise - public async request( - r: SubmitMultisignedRequest, - ): Promise - public request(r: SubscribeRequest): Promise - public request(r: UnsubscribeRequest): Promise - public async request( - r: TransactionEntryRequest, - ): Promise - public async request(r: TxRequest): Promise - public async request( - r: R, - ): Promise /** * Makes a request to the client with the given command and * additional request body parameters. * + * @category Network * @param req - Request to send to the server. * @returns The response from the server. - * @category Network + * + * @example + * ```ts + * const response = await client.request({ + * command: 'account_info', + * account: 'r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59', + * }) + * console.log(response) + * ``` */ - public async request( - req: R, - ): Promise { - // eslint-disable-next-line @typescript-eslint/consistent-type-assertions -- Necessary for overloading - const response = (await this.connection.request({ + public async request< + R extends Request, + V extends APIVersion = typeof DEFAULT_API_VERSION, + T = RequestResponseMap, + >(req: R): Promise { + const request = { ...req, - account: req.account - ? // eslint-disable-next-line @typescript-eslint/consistent-type-assertions -- Must be string - ensureClassicAddress(req.account as string) - : undefined, - })) as T + account: + typeof req.account === 'string' + ? ensureClassicAddress(req.account) + : undefined, + api_version: req.api_version ?? this.apiVersion, + } + const response = await this.connection.request(request) // mutates `response` to add warnings handlePartialPayment(req.command, response) @@ -373,44 +359,34 @@ class Client extends EventEmitter { return response } - /** - * @category Network - */ - public async requestNextPage( - req: AccountChannelsRequest, - resp: AccountChannelsResponse, - ): Promise - public async requestNextPage( - req: AccountLinesRequest, - resp: AccountLinesResponse, - ): Promise - public async requestNextPage( - req: AccountObjectsRequest, - resp: AccountObjectsResponse, - ): Promise - public async requestNextPage( - req: AccountOffersRequest, - resp: AccountOffersResponse, - ): Promise - public async requestNextPage( - req: AccountTxRequest, - resp: AccountTxResponse, - ): Promise - public async requestNextPage( - req: LedgerDataRequest, - resp: LedgerDataResponse, - ): Promise /** * Requests the next page of data. * + * @category Network + * * @param req - Request to send. * @param resp - Response with the marker to use in the request. * @returns The response with the next page of data. + * + * @example + * ```ts + * const response = await client.request({ + * command: 'account_tx', + * account: 'r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59', + * }) + * console.log(response) + * const nextResponse = await client.requestNextPage({ + * command: 'account_tx', + * account: 'r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59', + * }, + * response) + * console.log(nextResponse) + * ``` */ public async requestNextPage< - T extends MarkerRequest, - U extends MarkerResponse, - >(req: T, resp: U): Promise { + T extends RequestNextPageType, + U extends RequestNextPageReturnMap, + >(req: T, resp: U): Promise> { if (!resp.result.marker) { return Promise.reject( new NotFoundError('response does not have a next page'), @@ -424,11 +400,17 @@ class Client extends EventEmitter { /** * Event handler for subscription streams. * - * @example + * @category Network + * + * @param eventName - Name of the event. Only forwards streams. + * @param listener - Function to run on event. + * @returns This, because it inherits from EventEmitter. + * + * * @example * ```ts * const api = new Client('wss://s.altnet.rippletest.net:51233') * - * api.on('transactions', (tx: TransactionStream) => { + * api.on('transaction', (tx: TransactionStream) => { * console.log("Received Transaction") * console.log(tx) * }) @@ -439,68 +421,15 @@ class Client extends EventEmitter { * streams: ['transactions_proposed'] * }) * ``` - * - * @category Network */ - public on(event: 'connected', listener: () => void): this - public on(event: 'disconnected', listener: (code: number) => void): this - public on( - event: 'ledgerClosed', - listener: (ledger: LedgerStream) => void, - ): this - public on( - event: 'validationReceived', - listener: (validation: ValidationStream) => void, - ): this - public on( - event: 'transaction', - listener: (tx: TransactionStream) => void, - ): this - public on( - event: 'peerStatusChange', - listener: (status: PeerStatusStream) => void, - ): this - public on( - event: 'consensusPhase', - listener: (phase: ConsensusStream) => void, - ): this - public on( - event: 'manifestReceived', - listener: (manifest: ManifestResponse) => void, - ): this - public on(event: 'path_find', listener: (path: PathFindStream) => void): this - // eslint-disable-next-line @typescript-eslint/no-explicit-any -- needs to be any for overload - public on(event: 'error', listener: (...err: any[]) => void): this - /** - * Event handler for subscription streams. - * - * @param eventName - Name of the event. Only forwards streams. - * @param listener - Function to run on event. - * @returns This, because it inherits from EventEmitter. - */ - // eslint-disable-next-line @typescript-eslint/no-explicit-any -- needs to be any for overload - public on(eventName: string, listener: (...args: any[]) => void): this { + public on< + T extends EventTypes, + // eslint-disable-next-line @typescript-eslint/no-explicit-any -- needs to be any for overload + U extends (...args: any[]) => void = OnEventToListenerMap, + >(eventName: T, listener: U): this { return super.on(eventName, listener) } - /** - * @category Network - */ - public async requestAll( - req: AccountChannelsRequest, - ): Promise - public async requestAll( - req: AccountLinesRequest, - ): Promise - public async requestAll( - req: AccountObjectsRequest, - ): Promise - public async requestAll( - req: AccountOffersRequest, - ): Promise - public async requestAll(req: AccountTxRequest): Promise - public async requestAll(req: BookOffersRequest): Promise - public async requestAll(req: LedgerDataRequest): Promise /** * Makes multiple paged requests to the client to return a given number of * resources. Multiple paged requests will be made until the `limit` @@ -514,15 +443,28 @@ class Client extends EventEmitter { * general use. Instead, use rippled's built-in pagination and make multiple * requests as needed. * + * @category Network + * * @param request - The initial request to send to the server. * @param collect - (Optional) the param to use to collect the array of resources (only needed if command is unknown). * @returns The array of all responses. * @throws ValidationError if there is no collection key (either from a known command or for the unknown command). + * + * @example + * // Request all ledger data pages + * const allResponses = await client.requestAll({ command: 'ledger_data' }); + * console.log(allResponses); + * + * @example + * // Request all transaction data pages + * const allResponses = await client.requestAll({ command: 'transaction_data' }); + * console.log(allResponses); */ - public async requestAll( - request: T, - collect?: string, - ): Promise { + + public async requestAll< + T extends MarkerRequest, + U = RequestAllResponseMap, + >(request: T, collect?: string): Promise { /* * The data under collection is keyed based on the command. Fail if command * not recognized and collection key not provided. @@ -538,7 +480,6 @@ class Client extends EventEmitter { const countTo: number = request.limit == null ? Infinity : request.limit let count = 0 let marker: unknown = request.marker - let lastBatchLength: number const results: U[] = [] do { const countRemaining = clamp(countTo - count, MIN_LIMIT, MAX_LIMIT) @@ -550,7 +491,7 @@ class Client extends EventEmitter { // eslint-disable-next-line no-await-in-loop -- Necessary for this, it really has to wait const singleResponse = await this.connection.request(repeatProps) // eslint-disable-next-line @typescript-eslint/consistent-type-assertions -- Should be true - const singleResult = (singleResponse as U).result + const singleResult = (singleResponse as MarkerResponse).result if (!(collectKey in singleResult)) { throw new XrplError(`${collectKey} not in result`) } @@ -562,26 +503,99 @@ class Client extends EventEmitter { // Make sure we handle when no data (not even an empty array) is returned. if (Array.isArray(collectedData)) { count += collectedData.length - lastBatchLength = collectedData.length - } else { - lastBatchLength = 0 } - } while (Boolean(marker) && count < countTo && lastBatchLength !== 0) + } while (Boolean(marker) && count < countTo) return results } + /** + * Get networkID and buildVersion from server_info + * + * @returns void + * @example + * ```ts + * const { Client } = require('xrpl') + * const client = new Client('wss://s.altnet.rippletest.net:51233') + * await client.getServerInfo() + * console.log(client.networkID) + * console.log(client.buildVersion) + * ``` + */ + public async getServerInfo(): Promise { + try { + const response = await this.request({ + command: 'server_info', + }) + this.networkID = response.result.info.network_id ?? undefined + this.buildVersion = response.result.info.build_version + } catch (error) { + // eslint-disable-next-line no-console -- Print the error to console but allows client to be connected. + console.error(error) + } + } + + public async getHooksEnabled(): Promise { + const response: LedgerEntryResponse = await this.request({ + command: 'ledger_entry', + index: '7DB0788C020F02780A673DC74757F23823FA3014C1866E72CC4CD8B226CD6EF4', + }) + this.hooksEnabled = + response.result.node?.Amendments?.includes( + 'ECE6819DBA5DB528F1A241695F5A9811EF99467CDE22510954FD357780BBD078', + ) ?? false + } + /** * Tells the Client instance to connect to its rippled server. * + * @example + * + * Client.connect() establishes a connection between a Client object and the server. + * + * ```ts + * const { Client } = require('xrpl') + * const client = new Client('wss://s.altnet.rippletest.net:51233') + * await client.connect() + * // do something with the client + * await client.disconnect() + * ``` + * If you open a client connection, be sure to close it with `await client.disconnect()` + * before exiting your application. * @returns A promise that resolves with a void value when a connection is established. * @category Network + * + * @example + * ```ts + * const { Client } = require('xrpl') + * const client = new Client('wss://s.altnet.rippletest.net:51233') + * await client.connect() + * // do something with the client + * await client.disconnect() + * ``` */ public async connect(): Promise { - return this.connection.connect() + return this.connection.connect().then(async () => { + await Promise.all([this.getServerInfo(), this.getHooksEnabled()]) + this.emit('connected') + }) } /** - * Tells the Client instance to disconnect from it's rippled server. + * Disconnects the XRPL client from the server and cancels all pending requests and subscriptions. Call when + * you want to disconnect the client from the server, such as when you're finished using the client or when you + * need to switch to a different server. + * + * @example + * + * To use the disconnect() method, you first need to create a new Client object and connect it to a server: + * + * ```ts + * const { Client } = require('xrpl') + * const client = new Client('wss://s.altnet.rippletest.net:51233') + * await client.connect() + * // do something with the client + * await client.disconnect() + * ``` * * @returns A promise that resolves with a void value when a connection is destroyed. * @category Network @@ -599,59 +613,614 @@ class Client extends EventEmitter { * * @returns Whether the client instance is connected. * @category Network + * @example + * ```ts + * const { Client } = require('xrpl') + * const client = new Client('wss://s.altnet.rippletest.net:51233') + * await client.connect() + * console.log(client.isConnected()) + * // true + * await client.disconnect() + * console.log(client.isConnected()) + * // false + * ``` */ public isConnected(): boolean { return this.connection.isConnected() } /** + * Autofills fields in a transaction. This will set `Sequence`, `Fee`, + * `lastLedgerSequence` according to the current state of the server this Client + * is connected to. It also converts all X-Addresses to classic addresses and + * flags interfaces into numbers. + * * @category Core + * + * @example + * + * ```ts + * const { Client } = require('xrpl') + * + * const client = new Client('wss://s.altnet.rippletest.net:51233') + * + * async function createAndAutofillTransaction() { + * const transaction = { + * TransactionType: 'Payment', + * Account: 'rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh', + * Destination: 'r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59', + * Amount: '10000000' // 10 XRP in drops (1/1,000,000th of an XRP) + * } + * + * try { + * const autofilledTransaction = await client.autofill(transaction) + * console.log(autofilledTransaction) + * } catch (error) { + * console.error(`Failed to autofill transaction: ${error}`) + * } + * } + * + * createAndAutofillTransaction() + * ``` + * + * Autofill helps fill in fields which should be included in a transaction, but can be determined automatically + * such as `LastLedgerSequence` and `Fee`. If you override one of the fields `autofill` changes, your explicit + * values will be used instead. By default, this is done as part of `submit` and `submitAndWait` when you pass + * in an unsigned transaction along with your wallet to be submitted. + * + * @template T + * @param transaction - A {@link SubmittableTransaction} in JSON format + * @param signersCount - The expected number of signers for this transaction. + * Only used for multisigned transactions. + * @returns The autofilled transaction. + * @throws ValidationError If Amount and DeliverMax fields are not identical in a Payment Transaction */ - public autofill = autofill + + // eslint-disable-next-line complexity -- handling Payment transaction API v2 requires more logic + public async autofill( + transaction: T, + signersCount?: number, + ): Promise { + const tx = { ...transaction } + + setValidAddresses(tx) + setTransactionFlagsToNumber(tx) + + const promises: Array> = [] + if (tx.NetworkID == null) { + tx.NetworkID = txNeedsNetworkID(this) ? this.networkID : undefined + } + if (tx.Sequence == null) { + promises.push(setNextValidSequenceNumber(this, tx)) + } + if (tx.Fee == null) { + promises.push(calculateFeePerTransactionType(this, tx, signersCount)) + } + if (tx.LastLedgerSequence == null) { + promises.push(setLatestValidatedLedgerSequence(this, tx)) + } + if (tx.TransactionType === 'AccountDelete') { + promises.push(checkAccountDeleteBlockers(this, tx)) + } + + // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- ignore type-assertions on the DeliverMax property + // @ts-expect-error -- DeliverMax property exists only at the RPC level, not at the protocol level + if (tx.TransactionType === 'Payment' && tx.DeliverMax != null) { + // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- This is a valid null check for Amount + if (tx.Amount == null) { + // If only DeliverMax is provided, use it to populate the Amount field + // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- ignore type-assertions on the DeliverMax property + // @ts-expect-error -- DeliverMax property exists only at the RPC level, not at the protocol level + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- DeliverMax is a known RPC-level property + tx.Amount = tx.DeliverMax + } + + // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- ignore type-assertions on the DeliverMax property + // @ts-expect-error -- DeliverMax property exists only at the RPC level, not at the protocol level + // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- This is a valid null check for Amount + if (tx.Amount != null && tx.Amount !== tx.DeliverMax) { + return Promise.reject( + new ValidationError( + 'PaymentTransaction: Amount and DeliverMax fields must be identical when both are provided', + ), + ) + } + + // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- ignore type-assertions on the DeliverMax property + // @ts-expect-error -- DeliverMax property exists only at the RPC level, not at the protocol level + delete tx.DeliverMax + } + + return Promise.all(promises).then(() => tx) + } /** + * Submits a signed/unsigned transaction. + * Steps performed on a transaction: + * 1. Autofill. + * 2. Sign & Encode. + * 3. Submit. + * * @category Core + * + * @param transaction - A transaction to autofill, sign & encode, and submit. + * @param opts - (Optional) Options used to sign and submit a transaction. + * @param opts.autofill - If true, autofill a transaction. + * @param opts.failHard - If true, and the transaction fails locally, do not retry or relay the transaction to other servers. + * @param opts.wallet - A wallet to sign a transaction. It must be provided when submitting an unsigned transaction. + * + * @returns A promise that contains SubmitResponse. + * @throws RippledError if submit request fails. + * + * @example + * ```ts + * const { Client, Wallet } = require('xrpl') + * const client = new Client('wss://s.altnet.rippletest.net:51233') + * await client.connect() + * const wallet = Wallet.generate() + * const transaction = { + * TransactionType: 'Payment', + * Account: wallet.classicAddress, + * Destination: 'r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59', + * Amount: '10000000' // 10 XRP in drops (1/1,000,000th of an XRP) + * } + * const submitResponse = await client.submit(transaction, { wallet }) + * console.log(submitResponse) + * ``` */ - public submit = submit + public async submit( + transaction: SubmittableTransaction | string, + opts?: { + // If true, autofill a transaction. + autofill?: boolean + // If true, and the transaction fails locally, do not retry or relay the transaction to other servers. + failHard?: boolean + // A wallet to sign a transaction. It must be provided when submitting an unsigned transaction. + wallet?: Wallet + }, + ): Promise { + const signedTx = await getSignedTx(this, transaction, opts) + return submitRequest(this, signedTx, opts?.failHard) + } + /** + * Asynchronously submits a transaction and verifies that it has been included in a + * validated ledger (or has errored/will not be included for some reason). + * See [Reliable Transaction Submission](https://xrpl.org/reliable-transaction-submission.html). + * * @category Core + * + * @example + * + * ```ts + * const { Client, Wallet } = require('xrpl') + * const client = new Client('wss://s.altnet.rippletest.net:51233') + * + * async function submitTransaction() { + * const senderWallet = client.fundWallet() + * const recipientWallet = client.fundWallet() + * + * const transaction = { + * TransactionType: 'Payment', + * Account: senderWallet.address, + * Destination: recipientWallet.address, + * Amount: '10' + * } + * + * try { + * await client.submit(signedTransaction, { wallet: senderWallet }) + * console.log(result) + * } catch (error) { + * console.error(`Failed to submit transaction: ${error}`) + * } + * } + * + * submitTransaction() + * ``` + * + * In this example we submit a payment transaction between two newly created testnet accounts. + * + * Under the hood, `submit` will call `client.autofill` by default, and because we've passed in a `Wallet` it + * Will also sign the transaction for us before submitting the signed transaction binary blob to the ledger. + * + * This is similar to `submitAndWait` which does all of the above, but also waits to see if the transaction has been validated. + * @param transaction - A transaction to autofill, sign & encode, and submit. + * @param opts - (Optional) Options used to sign and submit a transaction. + * @param opts.autofill - If true, autofill a transaction. + * @param opts.failHard - If true, and the transaction fails locally, do not retry or relay the transaction to other servers. + * @param opts.wallet - A wallet to sign a transaction. It must be provided when submitting an unsigned transaction. + * @throws Connection errors: If the `Client` object is unable to establish a connection to the specified WebSocket endpoint, + * an error will be thrown. + * @throws Transaction errors: If the submitted transaction is invalid or cannot be included in a validated ledger for any + * reason, the promise returned by `submitAndWait()` will be rejected with an error. This could include issues with insufficient + * balance, invalid transaction fields, or other issues specific to the transaction being submitted. + * @throws Ledger errors: If the ledger being used to submit the transaction is undergoing maintenance or otherwise unavailable, + * an error will be thrown. + * @throws Timeout errors: If the transaction takes longer than the specified timeout period to be included in a validated + * ledger, the promise returned by `submitAndWait()` will be rejected with an error. + * @returns A promise that contains TxResponse, that will return when the transaction has been validated. */ - public submitAndWait = submitAndWait + public async submitAndWait< + T extends SubmittableTransaction = SubmittableTransaction, + >( + transaction: T | string, + opts?: { + // If true, autofill a transaction. + autofill?: boolean + // If true, and the transaction fails locally, do not retry or relay the transaction to other servers. + failHard?: boolean + // A wallet to sign a transaction. It must be provided when submitting an unsigned transaction. + wallet?: Wallet + }, + ): Promise> { + const signedTx = await getSignedTx(this, transaction, opts) + + const lastLedger = getLastLedgerSequence(signedTx) + if (lastLedger == null) { + throw new ValidationError( + 'Transaction must contain a LastLedgerSequence value for reliable submission.', + ) + } + + const response = await submitRequest(this, signedTx, opts?.failHard) + + const txHash = hashes.hashSignedTx(signedTx) + return waitForFinalTransactionOutcome( + this, + txHash, + lastLedger, + response.result.engine_result, + ) + } /** + * Deprecated: Use autofill instead, provided for users familiar with v1 + * + * @param transaction - A {@link Transaction} in JSON format + * @param signersCount - The expected number of signers for this transaction. + * Only used for multisigned transactions. * @deprecated Use autofill instead, provided for users familiar with v1 */ - public prepareTransaction = autofill + public async prepareTransaction( + transaction: SubmittableTransaction, + signersCount?: number, + ): ReturnType { + return this.autofill(transaction, signersCount) + } /** + * Retrieves the XRP balance of a given account address. + * * @category Abstraction + * + * @example + * ```ts + * const client = new Client(wss://s.altnet.rippletest.net:51233) + * await client.connect() + * const balance = await client.getXrpBalance('rG1QQv2nh2gr7RCZ1P8YYcBUKCCN633jCn') + * console.log(balance) + * await client.disconnect() + * /// '200' + * ``` + * + * @param address - The XRP address to retrieve the balance for. + * @param [options] - Additional options for fetching the balance (optional). + * @param [options.ledger_hash] - The hash of the ledger to retrieve the balance from (optional). + * @param [options.ledger_index] - The index of the ledger to retrieve the balance from (optional). + * @returns A promise that resolves with the XRP balance as a number. */ - public getXrpBalance = getXrpBalance + public async getXrpBalance( + address: string, + options: { + ledger_hash?: string + ledger_index?: LedgerIndex + } = {}, + ): Promise { + const xrpRequest: AccountInfoRequest = { + command: 'account_info', + account: address, + ledger_index: options.ledger_index ?? 'validated', + ledger_hash: options.ledger_hash, + } + const response = await this.request(xrpRequest) + return dropsToXrp(response.result.account_data.Balance) + } /** + * Get XRP/non-XRP balances for an account. + * * @category Abstraction + * + * @example + * ```ts + * const { Client } = require('xrpl') + * const client = new Client('wss://s.altnet.rippletest.net:51233') + * await client.connect() + * + * async function getAccountBalances(address) { + * try { + * const options = { + * ledger_index: 'validated', + * limit: 10 + * }; + * + * const balances = await xrplClient.getBalances(address, options); + * + * console.log('Account Balances:'); + * balances.forEach((balance) => { + * console.log(`Currency: ${balance.currency}`); + * console.log(`Value: ${balance.value}`); + * console.log(`Issuer: ${balance.issuer}`); + * console.log('---'); + * }); + * } catch (error) { + * console.error('Error retrieving account balances:', error); + * } + * } + * + * const address = 'rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh'; + * await getAccountBalances(address); + * await client.disconnect(); + * ``` + * + * @param address - Address of the account to retrieve balances for. + * @param options - Allows the client to specify a ledger_hash, ledger_index, + * filter by peer, and/or limit number of balances. + * @param options.ledger_index - Retrieve the account balances at a given + * ledger_index. + * @param options.ledger_hash - Retrieve the account balances at the ledger with + * a given ledger_hash. + * @param options.peer - Filter balances by peer. + * @param options.limit - Limit number of balances to return. + * @returns An array of XRP/non-XRP balances for the given account. */ - public getBalances = getBalances + /* eslint-disable max-lines-per-function -- getBalances requires more lines to implement logic */ + public async getBalances( + address: string, + options: { + ledger_hash?: string + ledger_index?: LedgerIndex + peer?: string + limit?: number + } = {}, + ): Promise< + Array<{ value: string; currency: string; issuer?: string | undefined }> + > { + const balances: Balance[] = [] - /** - * @category Abstraction - */ - public getOrderbook = getOrderbook + // get XRP balance + let xrpPromise: Promise = Promise.resolve(0) + if (!options.peer) { + xrpPromise = this.getXrpBalance(address, { + ledger_hash: options.ledger_hash, + ledger_index: options.ledger_index, + }) + } + + // get non-XRP balances + const linesRequest: AccountLinesRequest = { + command: 'account_lines', + account: address, + ledger_index: options.ledger_index ?? 'validated', + ledger_hash: options.ledger_hash, + peer: options.peer, + limit: options.limit, + } + const linesPromise = this.requestAll(linesRequest) + + // combine results + await Promise.all([xrpPromise, linesPromise]).then( + ([xrpBalance, linesResponses]) => { + const accountLinesBalance = linesResponses.flatMap((response) => + formatBalances(response.result.lines), + ) + if (xrpBalance !== 0) { + balances.push({ currency: 'XAH', value: xrpBalance.toString() }) + } + balances.push(...accountLinesBalance) + }, + ) + return balances.slice(0, options.limit) + } + /* eslint-enable max-lines-per-function */ /** + * Fetch orderbook (buy/sell orders) between two currency pairs. This checks both sides of the orderbook + * by making two `order_book` requests (with the second reversing takerPays and takerGets). Returned offers are + * not normalized in this function, so either currency could be takerGets or takerPays. + * * @category Abstraction + * + * @param currency1 - Specification of one currency involved. (With a currency code and optionally an issuer) + * @param currency2 - Specification of a second currency involved. (With a currency code and optionally an issuer) + * @param options - Options allowing the client to specify ledger_index, + * ledger_hash, filter by taker, and/or limit number of orders. + * @param options.ledger_index - Retrieve the orderbook at a given ledger_index. + * @param options.ledger_hash - Retrieve the orderbook at the ledger with a + * given ledger_hash. + * @param options.taker - Filter orders by taker. + * @param options.limit - The limit passed into each book_offers request. + * Can return more than this due to two calls being made. Defaults to 20. + * @returns An object containing buy and sell objects. */ - public getLedgerIndex = getLedgerIndex + + public async getOrderbook( + currency1: BookOfferCurrency, + currency2: BookOfferCurrency, + options: { + limit?: number + ledger_index?: LedgerIndex + ledger_hash?: string | null + taker?: string | null + } = {}, + ): Promise<{ + buy: BookOffer[] + sell: BookOffer[] + }> { + validateOrderbookOptions(options) + + const request = createBookOffersRequest(currency1, currency2, options) + + const directOfferResults = await requestAllOffers(this, request) + const reverseOfferResults = await requestAllOffers( + this, + reverseRequest(request), + ) + + const directOffers = extractOffers(directOfferResults) + const reverseOffers = extractOffers(reverseOfferResults) + + const orders = combineOrders(directOffers, reverseOffers) + + const { buy, sell } = separateBuySellOrders(orders) + + /* + * Sort the orders + * for both buys and sells, lowest quality is closest to mid-market + * we sort the orders so that earlier orders are closer to mid-market + */ + return { + buy: sortAndLimitOffers(buy, options.limit), + sell: sortAndLimitOffers(sell, options.limit), + } + } /** + * Returns the index of the most recently validated ledger. + * * @category Abstraction + * + * @returns The most recently validated ledger index. + * + * @example + * ```ts + * const { Client } = require('xrpl') + * const client = new Client('wss://s.altnet.rippletest.net:51233') + * await client.connect() + * const ledgerIndex = await client.getLedgerIndex() + * console.log(ledgerIndex) + * // 884039 + * ``` */ - public getNetworkID = getNetworkID + public async getLedgerIndex(): Promise { + const ledgerResponse = await this.request({ + command: 'ledger', + ledger_index: 'validated', + }) + return ledgerResponse.result.ledger_index + } /** + * The fundWallet() method is used to send an amount of XRP (usually 1000) to a new (randomly generated) + * or existing XRP Ledger wallet. + * * @category Faucet + * + * @example + * + * Example 1: Fund a randomly generated wallet + * const { Client, Wallet } = require('xrpl') + * + * const client = new Client('wss://s.altnet.rippletest.net:51233') + * await client.connect() + * const { balance, wallet } = await client.fundWallet() + * + * Under the hood, this will use `Wallet.generate()` to create a new random wallet, then ask a testnet faucet + * To send it XRP on ledger to make it a real account. If successful, this will return the new account balance in XRP + * Along with the Wallet object to track the keys for that account. If you'd like, you can also re-fill an existing + * Account by passing in a Wallet you already have. + * ```ts + * const api = new xrpl.Client("wss://s.altnet.rippletest.net:51233") + * await api.connect() + * const { wallet, balance } = await api.fundWallet() + * ``` + * + * Example 2: Fund wallet using a custom faucet host and known wallet address + * + * `fundWallet` will try to infer the url of a faucet API from the network your client is connected to. + * There are hardcoded default faucets for popular test networks like testnet and devnet. + * However, if you're working with a newer or more obscure network, you may have to specify the faucetHost + * And faucetPath so `fundWallet` can ask that faucet to fund your wallet. + * + * ```ts + * const newWallet = Wallet.generate() + * const { balance, wallet } = await client.fundWallet(newWallet, { + * amount: '10', + * faucetHost: 'https://custom-faucet.example.com', + * faucetPath: '/accounts' + * }) + * console.log(`Sent 10 XRP to wallet: ${address} from the given faucet. Resulting balance: ${balance} XRP`) + * } catch (error) { + * console.error(`Failed to fund wallet: ${error}`) + * } + * } + * ``` + * + * @param wallet - An existing XRPL Wallet to fund. If undefined or null, a new Wallet will be created. + * @param options - See below. + * @param options.faucetHost - A custom host for a faucet server. On devnet, + * testnet, AMM devnet, and HooksV3 testnet, `fundWallet` will + * attempt to determine the correct server automatically. In other environments, + * or if you would like to customize the faucet host in devnet or testnet, + * you should provide the host using this option. + * @param options.faucetPath - A custom path for a faucet server. On devnet, + * testnet, AMM devnet, and HooksV3 testnet, `fundWallet` will + * attempt to determine the correct path automatically. In other environments, + * or if you would like to customize the faucet path in devnet or testnet, + * you should provide the path using this option. + * Ex: client.fundWallet(null,{'faucet.altnet.rippletest.net', '/accounts'}) + * specifies a request to 'faucet.altnet.rippletest.net/accounts' to fund a new wallet. + * @param options.amount - A custom amount to fund, if undefined or null, the default amount will be 1000. + * @returns A Wallet on the Testnet or Devnet that contains some amount of XRP, + * and that wallet's balance in XRP. + * @throws When either Client isn't connected or unable to fund wallet address. */ - public fundWallet = fundWallet + public async fundWallet( + this: Client, + wallet?: Wallet | null, + options: FundingOptions = {}, + ): Promise<{ + wallet: Wallet + balance: number + }> { + if (!this.isConnected()) { + throw new RippledError('Client not connected, cannot call faucet') + } + const existingWallet = Boolean(wallet) + + // Generate a new Wallet if no existing Wallet is provided or its address is invalid to fund + const walletToFund = + wallet && isValidClassicAddress(wallet.classicAddress) + ? wallet + : Wallet.generate() + + // Create the POST request body + const postBody: FaucetRequestBody = { + destination: walletToFund.classicAddress, + xrpAmount: options.amount, + usageContext: options.usageContext, + userAgent: 'xrpl.js', + } + + let startingBalance = 0 + if (existingWallet) { + try { + startingBalance = Number( + await this.getXrpBalance(walletToFund.classicAddress), + ) + } catch { + /* startingBalance remains what it was previously */ + } + } + + return requestFunding( + options, + this, + startingBalance, + walletToFund, + postBody, + ) + } } export { Client } diff --git a/packages/xrpl/src/client/partialPayment.ts b/packages/xrpl/src/client/partialPayment.ts index 701fc2fefb..0616c8f3ea 100644 --- a/packages/xrpl/src/client/partialPayment.ts +++ b/packages/xrpl/src/client/partialPayment.ts @@ -1,14 +1,15 @@ -import { decode } from '@transia/ripple-binary-codec' import BigNumber from 'bignumber.js' +import { decode } from 'ripple-binary-codec' import type { - AccountTxResponse, - Response, TransactionEntryResponse, TransactionStream, TxResponse, } from '..' -import type { Amount } from '../models/common' +import type { Amount, APIVersion, DEFAULT_API_VERSION } from '../models/common' +import type { RequestResponseMap } from '../models/methods' +import { AccountTxVersionResponseMap } from '../models/methods/accountTx' +import { BaseRequest, BaseResponse } from '../models/methods/baseMethod' import { PaymentFlags, Transaction } from '../models/transactions' import type { TransactionMetadata } from '../models/transactions/metadata' import { isFlagEnabled } from '../models/utils' @@ -62,7 +63,10 @@ function isPartialPayment( } const delivered = meta.delivered_amount - const amount = tx.Amount + // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- DeliverMax is a valid field on Payment response + // @ts-expect-error -- DeliverMax is a valid field on Payment response + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- DeliverMax is a valid field on Payment response + const amount = tx.DeliverMax if (delivered === undefined) { return false @@ -72,20 +76,35 @@ function isPartialPayment( } function txHasPartialPayment(response: TxResponse): boolean { - return isPartialPayment(response.result, response.result.meta) + return isPartialPayment(response.result.tx_json, response.result.meta) } function txEntryHasPartialPayment(response: TransactionEntryResponse): boolean { return isPartialPayment(response.result.tx_json, response.result.metadata) } -function accountTxHasPartialPayment(response: AccountTxResponse): boolean { +function accountTxHasPartialPayment< + Version extends APIVersion = typeof DEFAULT_API_VERSION, +>(response: AccountTxVersionResponseMap): boolean { const { transactions } = response.result - const foo = transactions.some((tx) => isPartialPayment(tx.tx, tx.meta)) + const foo = transactions.some((tx) => { + // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- api_version 1 + if (tx.tx_json != null) { + const transaction = tx + return isPartialPayment(transaction.tx_json, transaction.meta) + } + + const transaction = tx + return isPartialPayment(transaction.tx, transaction.meta) + }) return foo } -function hasPartialPayment(command: string, response: Response): boolean { +function hasPartialPayment< + R extends BaseRequest, + V extends APIVersion = typeof DEFAULT_API_VERSION, + T = RequestResponseMap, +>(command: string, response: T): boolean { /* eslint-disable @typescript-eslint/consistent-type-assertions -- Request type is known at runtime from command */ switch (command) { case 'tx': @@ -93,7 +112,9 @@ function hasPartialPayment(command: string, response: Response): boolean { case 'transaction_entry': return txEntryHasPartialPayment(response as TransactionEntryResponse) case 'account_tx': - return accountTxHasPartialPayment(response as AccountTxResponse) + return accountTxHasPartialPayment( + response as AccountTxVersionResponseMap, + ) default: return false } @@ -106,12 +127,13 @@ function hasPartialPayment(command: string, response: Response): boolean { * @param command - Command from the request, tells us what response to expect. * @param response - Response to check for a partial payment. */ -export function handlePartialPayment( - command: string, - response: Response, -): void { +export function handlePartialPayment< + R extends BaseRequest, + T = RequestResponseMap, +>(command: string, response: T): void { if (hasPartialPayment(command, response)) { - const warnings = response.warnings ?? [] + // eslint-disable-next-line @typescript-eslint/consistent-type-assertions -- We are checking dynamically and safely. + const warnings = (response as BaseResponse).warnings ?? [] const warning = { id: WARN_PARTIAL_PAYMENT_CODE, @@ -120,6 +142,8 @@ export function handlePartialPayment( warnings.push(warning) + // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- We are checking dynamically and safely. + // @ts-expect-error -- We are checking dynamically and safely. response.warnings = warnings } } diff --git a/packages/xrpl/src/errors.ts b/packages/xrpl/src/errors.ts index e1437fffc4..ffde0de5aa 100644 --- a/packages/xrpl/src/errors.ts +++ b/packages/xrpl/src/errors.ts @@ -1,6 +1,4 @@ /* eslint-disable max-classes-per-file -- Errors can be defined in the same file */ -import { inspect } from 'util' - /** * Base Error class for xrpl.js. All Errors thrown by xrpl.js should throw * XrplErrors. @@ -38,7 +36,7 @@ class XrplError extends Error { public toString(): string { let result = `[${this.name}(${this.message}` if (this.data) { - result += `, ${inspect(this.data)}` + result += `, ${JSON.stringify(this.data)}` } result += ')]' return result diff --git a/packages/xrpl/src/index.ts b/packages/xrpl/src/index.ts index 39f84a7795..fdf34b844b 100644 --- a/packages/xrpl/src/index.ts +++ b/packages/xrpl/src/index.ts @@ -1,15 +1,17 @@ -// Broadcast client is experimental -export { default as BroadcastClient } from './client/BroadcastClient' - export { Client, ClientOptions } from './client' export * from './models' export * from './utils' +export { default as ECDSA } from './ECDSA' + export * from './errors' -export { default as Wallet } from './Wallet' +export { FundingOptions } from './Wallet/fundWallet' +export { Wallet } from './Wallet' + +export { walletFromSecretNumbers } from './Wallet/walletFromSecretNumbers' export { keyToRFC1751Mnemonic, rfc1751MnemonicToKey } from './Wallet/rfc1751' diff --git a/packages/xrpl/src/models/common/index.ts b/packages/xrpl/src/models/common/index.ts index da0b946a9f..e49e8287df 100644 --- a/packages/xrpl/src/models/common/index.ts +++ b/packages/xrpl/src/models/common/index.ts @@ -1,10 +1,15 @@ +export const RIPPLED_API_V1 = 1 +export const RIPPLED_API_V2 = 2 +export const DEFAULT_API_VERSION = RIPPLED_API_V1 +export type APIVersion = typeof RIPPLED_API_V1 | typeof RIPPLED_API_V2 export type LedgerIndex = number | ('validated' | 'closed' | 'current') -interface XRP { +export interface XRP { currency: 'XAH' + issuer?: never } -interface IssuedCurrency { +export interface IssuedCurrency { currency: string issuer: string } @@ -19,6 +24,12 @@ export type Amount = IssuedCurrencyAmount | string export type AmountEntry = Amount +export interface Balance { + currency: string + issuer?: string + value: string +} + export interface Signer { Signer: { Account: string @@ -45,7 +56,7 @@ export type StreamType = | 'server' | 'validations' -interface PathStep { +export interface PathStep { account?: string currency?: string issuer?: string @@ -177,6 +188,10 @@ export interface ResponseOnlyTxInfo { * The sequence number of the ledger that included this transaction. */ ledger_index?: number + /** + * The hash of the ledger included this transaction. + */ + ledger_hash?: string /** * @deprecated Alias for ledger_index. */ @@ -198,6 +213,70 @@ export interface NFTOffer { expiration?: number } +/** + * One NFToken that might be returned from an {@link NFTInfoResponse} + * + * @category Responses + */ +export interface NFToken { + nft_id: string + ledger_index: number + owner: string + is_burned: boolean + flags: number + transfer_fee: number + issuer: string + nft_taxon: number + nft_serial: number + uri: string +} + +export interface AuthAccount { + AuthAccount: { + Account: string + } +} + +export interface XChainBridge { + LockingChainDoor: string + LockingChainIssue: Currency + IssuingChainDoor: string + IssuingChainIssue: Currency +} + +/** + * A PriceData object represents the price information for a token pair. + * + */ +export interface PriceData { + PriceData: { + /** + * The primary asset in a trading pair. Any valid identifier, such as a stock symbol, bond CUSIP, or currency code is allowed. + * For example, in the BTC/USD pair, BTC is the base asset; in 912810RR9/BTC, 912810RR9 is the base asset. + */ + BaseAsset: string + + /** + * The quote asset in a trading pair. The quote asset denotes the price of one unit of the base asset. For example, in the + * BTC/USD pair,BTC is the base asset; in 912810RR9/BTC, 912810RR9 is the base asset. + */ + QuoteAsset: string + + /** + * The asset price after applying the Scale precision level. It's not included if the last update transaction didn't include + * the BaseAsset/QuoteAsset pair. + */ + AssetPrice?: number | string + + /** + * The scaling factor to apply to an asset price. For example, if Scale is 6 and original price is 0.155, then the scaled + * price is 155000. Valid scale ranges are 0-10. It's not included if the last update transaction didn't include the + * BaseAsset/QuoteAsset pair. + */ + Scale?: number + } +} + /** * This information is added to emitted Transactions. */ diff --git a/packages/xrpl/src/models/index.ts b/packages/xrpl/src/models/index.ts index ea087b5b04..4462584846 100644 --- a/packages/xrpl/src/models/index.ts +++ b/packages/xrpl/src/models/index.ts @@ -13,3 +13,4 @@ export { } from './utils/flags' export * from './methods' export * from './transactions' +export * from './common' diff --git a/packages/xrpl/src/models/ledger/AMM.ts b/packages/xrpl/src/models/ledger/AMM.ts new file mode 100644 index 0000000000..5db38227a5 --- /dev/null +++ b/packages/xrpl/src/models/ledger/AMM.ts @@ -0,0 +1,78 @@ +import { AuthAccount, Currency, IssuedCurrencyAmount } from '../common' + +import { BaseLedgerEntry, HasOptionalPreviousTxnID } from './BaseLedgerEntry' + +export interface VoteSlot { + VoteEntry: { + Account: string + TradingFee: number + VoteWeight: number + } +} + +/** + * The AMM object type describes a single Automated Market Maker (AMM) instance. + * + * @category Ledger Entries + */ +export default interface AMM extends BaseLedgerEntry, HasOptionalPreviousTxnID { + LedgerEntryType: 'AMM' + /** + * The address of the special account that holds this AMM's assets. + */ + Account: string + /** + * The definition for one of the two assets this AMM holds. + */ + Asset: Currency + /** + * The definition for the other asset this AMM holds. + */ + Asset2: Currency + /** + * Details of the current owner of the auction slot. + */ + AuctionSlot?: { + /** + * The current owner of this auction slot. + */ + Account: string + /** + * A list of at most 4 additional accounts that are authorized to trade at the discounted fee for this AMM instance. + */ + AuthAccounts?: AuthAccount[] + /** + * The trading fee to be charged to the auction owner, in the same format as TradingFee. + * By default this is 0, meaning that the auction owner can trade at no fee instead of the standard fee for this AMM. + */ + DiscountedFee: number + /** + * The time when this slot expires, in seconds since the Ripple Epoch. + */ + Expiration: number + /** + * The amount the auction owner paid to win this slot, in LP Tokens. + */ + Price: IssuedCurrencyAmount + } + /** + * The total outstanding balance of liquidity provider tokens from this AMM instance. + * The holders of these tokens can vote on the AMM's trading fee in proportion to their holdings, + * or redeem the tokens for a share of the AMM's assets which grows with the trading fees collected. + */ + LPTokenBalance: IssuedCurrencyAmount + /** + * The percentage fee to be charged for trades against this AMM instance, in units of 1/100,000. + * The maximum value is 1000, for a 1% fee. + */ + TradingFee: number + /** + * A list of vote objects, representing votes on the pool's trading fee. + */ + VoteSlots?: VoteSlot[] + /** + * A bit-map of boolean flags. No flags are defined for the AMM object + * type, so this value is always 0. + */ + Flags: 0 +} diff --git a/packages/xrpl/src/models/ledger/AccountRoot.ts b/packages/xrpl/src/models/ledger/AccountRoot.ts index 1d4167ce42..c5a00ff623 100644 --- a/packages/xrpl/src/models/ledger/AccountRoot.ts +++ b/packages/xrpl/src/models/ledger/AccountRoot.ts @@ -1,4 +1,4 @@ -import BaseLedgerEntry from './BaseLedgerEntry' +import { BaseLedgerEntry, HasPreviousTxnID } from './BaseLedgerEntry' /** * The AccountRoot object type describes a single account, its settings, and @@ -6,7 +6,7 @@ import BaseLedgerEntry from './BaseLedgerEntry' * * @category Ledger Entries */ -export default interface AccountRoot extends BaseLedgerEntry { +export default interface AccountRoot extends BaseLedgerEntry, HasPreviousTxnID { LedgerEntryType: 'AccountRoot' /** The identifying (classic) address of this account. */ Account: string @@ -19,16 +19,6 @@ export default interface AccountRoot extends BaseLedgerEntry { * to its owner reserve. */ OwnerCount: number - /** - * The identifying hash of the transaction that most recently modified this - * object. - */ - PreviousTxnID: string - /** - * The index of the ledger that contains the transaction that most recently - * modified this object. - */ - PreviousTxnLgrSeq: number /** The sequence number of the next valid transaction for this account. */ Sequence: number /** @@ -38,6 +28,12 @@ export default interface AccountRoot extends BaseLedgerEntry { * `asfAccountTxnID` flag enabled. */ AccountTxnID?: string + /** + * The ledger entry ID of the corresponding AMM ledger entry. + * Set during account creation; cannot be modified. + * If present, indicates that this is a special AMM AccountRoot; always omitted on non-AMM accounts. + */ + AMMID?: string /** * A domain associated with this account. In JSON, this is the hexadecimal * for the ASCII representation of the domain. @@ -72,9 +68,17 @@ export default interface AccountRoot extends BaseLedgerEntry { * account to each other. */ TransferRate?: number - NFTokenMinter?: string - MintedNFTokens?: number + /** An arbitrary 256-bit value that users can set. */ + WalletLocator?: string + /** Total NFTokens this account's issued that have been burned. This number is always equal or less than MintedNFTokens. */ BurnedNFTokens?: number + /** The sequence that the account first minted an NFToken */ + FirstNFTSequence: number + /** Total NFTokens have been minted by and on behalf of this account. */ + MintedNFTokens?: number + /** Another account that can mint NFTokens on behalf of this account. */ + NFTokenMinter?: string + HookStateCount?: number HookNamespaces?: string[] RewardLgrFirst?: number @@ -130,6 +134,10 @@ export interface AccountRootFlagsInterface { * (It has DepositAuth enabled.) */ lsfDepositAuth?: boolean + /** + * This account is an Automated Market Maker (AMM) instance. + */ + lsfAMM?: boolean /** * Disallow incoming NFTOffers from other accounts. */ @@ -146,6 +154,10 @@ export interface AccountRootFlagsInterface { * Disallow incoming Trustlines from other accounts. */ lsfDisallowIncomingTrustline?: boolean + /** + * This address can claw back issued IOUs. Once enabled, cannot be disabled. + */ + // lsfAllowTrustLineClawback?: boolean /** * Disallow incoming Trustlines from other accounts. */ @@ -190,6 +202,10 @@ export enum AccountRootFlags { * (It has DepositAuth enabled.) */ lsfDepositAuth = 0x01000000, + /** + * This account is an Automated Market Maker (AMM) instance. + */ + lsfAMM = 0x02000000, /** * Disallow incoming NFTOffers from other accounts. */ @@ -206,6 +222,10 @@ export enum AccountRootFlags { * Disallow incoming Trustlines from other accounts. */ lsfDisallowIncomingTrustline = 0x20000000, + /** + * This address can claw back issued IOUs. Once enabled, cannot be disabled. + */ + // lsfAllowTrustLineClawback = 0x80000000, /** * The account has issued a URIToken. */ diff --git a/packages/xrpl/src/models/ledger/Amendments.ts b/packages/xrpl/src/models/ledger/Amendments.ts index e1a5156787..f80e207964 100644 --- a/packages/xrpl/src/models/ledger/Amendments.ts +++ b/packages/xrpl/src/models/ledger/Amendments.ts @@ -1,6 +1,12 @@ -import BaseLedgerEntry from './BaseLedgerEntry' +import { BaseLedgerEntry, HasOptionalPreviousTxnID } from './BaseLedgerEntry' -interface Majority { +/** + * The unique id for the Amendments object https://xrpl.org/amendments-object.html#amendments-id-format + */ +export const AMENDMENTS_ID = + '7DB0788C020F02780A673DC74757F23823FA3014C1866E72CC4CD8B226CD6EF4' + +export interface Majority { Majority: { /** The Amendment ID of the pending amendment. */ Amendment: string @@ -18,7 +24,9 @@ interface Majority { * * @category Ledger Entries */ -export default interface Amendments extends BaseLedgerEntry { +export default interface Amendments + extends BaseLedgerEntry, + HasOptionalPreviousTxnID { LedgerEntryType: 'Amendments' /** * Array of 256-bit amendment IDs for all currently-enabled amendments. If diff --git a/packages/xrpl/src/models/ledger/BaseLedgerEntry.ts b/packages/xrpl/src/models/ledger/BaseLedgerEntry.ts index 4bf9e5c219..abc474c1c6 100644 --- a/packages/xrpl/src/models/ledger/BaseLedgerEntry.ts +++ b/packages/xrpl/src/models/ledger/BaseLedgerEntry.ts @@ -1,3 +1,31 @@ -export default interface BaseLedgerEntry { +export interface BaseLedgerEntry { index: string } + +export interface HasPreviousTxnID { + /** + * The identifying hash of the transaction that most recently modified this + * object. + */ + PreviousTxnID: string + /** + * The index of the ledger that contains the transaction that most recently + * modified this object. + */ + PreviousTxnLgrSeq: number +} + +export interface HasOptionalPreviousTxnID { + /** + * The identifying hash of the transaction that most recently modified this + * object. This field was added in the `fixPreviousTxnID` amendment, so it + * may not be present in every object. + */ + PreviousTxnID?: string + /** + * The index of the ledger that contains the transaction that most recently + * modified this object. This field was added in the `fixPreviousTxnID` + * amendment, so it may not be present in every object. + */ + PreviousTxnLgrSeq?: number +} diff --git a/packages/xrpl/src/models/ledger/Bridge.ts b/packages/xrpl/src/models/ledger/Bridge.ts new file mode 100644 index 0000000000..5b773200e1 --- /dev/null +++ b/packages/xrpl/src/models/ledger/Bridge.ts @@ -0,0 +1,72 @@ +import { Amount, XChainBridge } from '../common' + +import { BaseLedgerEntry, HasPreviousTxnID } from './BaseLedgerEntry' + +/** + * A Bridge objects represents a cross-chain bridge and includes information about + * the door accounts, assets, signature rewards, and the minimum account create + * amount. + * + * @category Ledger Entries + */ +export default interface Bridge extends BaseLedgerEntry, HasPreviousTxnID { + LedgerEntryType: 'Bridge' + + /** The door account that owns the bridge. */ + Account: string + + /** + * The total amount, in XRP, to be rewarded for providing a signature for + * cross-chain transfer or for signing for the cross-chain reward. This amount + * will be split among the signers. + */ + SignatureReward: Amount + + /** + * The door accounts and assets of the bridge this object correlates to. + */ + XChainBridge: XChainBridge + + /** + * The value of the next XChainClaimID to be created. + */ + XChainClaimID: string + + /** + * A counter used to order the execution of account create transactions. It is + * incremented every time a successful {@link XChainAccountCreateCommit} + * transaction is run for the source chain. + */ + XChainAccountCreateCount: string + + /** + * A counter used to order the execution of account create transactions. It is + * incremented every time a {@link XChainAccountCreateCommit} transaction is + * "claimed" on the destination chain. When the "claim" transaction is run on + * the destination chain, the XChainAccountClaimCount must match the value that + * the XChainAccountCreateCount had at the time the XChainAccountClaimCount was + * run on the source chain. This orders the claims so that they run in the same + * order that the XChainAccountCreateCommit transactions ran on the source chain, + * to prevent transaction replay. + */ + XChainAccountClaimCount: string + + /** + * The minimum amount, in XRP, required for an {@link XChainAccountCreateCommit} + * transaction. If this isn't present, the {@link XChainAccountCreateCommit} + * transaction will fail. This field can only be present on XRP-XRP bridges. + */ + MinAccountCreateAmount?: string + + /** + * A bit-map of boolean flags. No flags are defined for Bridges, so this value + * is always 0. + */ + Flags: 0 + + /** + * A hint indicating which page of the sender's owner directory links to this + * object, in case the directory consists of multiple pages. + */ + OwnerNode: string +} diff --git a/packages/xrpl/src/models/ledger/Check.ts b/packages/xrpl/src/models/ledger/Check.ts index 252885529a..653b6b8822 100644 --- a/packages/xrpl/src/models/ledger/Check.ts +++ b/packages/xrpl/src/models/ledger/Check.ts @@ -1,6 +1,6 @@ import { Amount } from '../common' -import BaseLedgerEntry from './BaseLedgerEntry' +import { BaseLedgerEntry, HasPreviousTxnID } from './BaseLedgerEntry' /** * A Check object describes a check, similar to a paper personal check, which @@ -8,7 +8,7 @@ import BaseLedgerEntry from './BaseLedgerEntry' * * @category Ledger Entries */ -export default interface Check extends BaseLedgerEntry { +export default interface Check extends BaseLedgerEntry, HasPreviousTxnID { LedgerEntryType: 'Check' /** The sender of the Check. Cashing the Check debits this address's balance. */ Account: string diff --git a/packages/xrpl/src/models/ledger/DID.ts b/packages/xrpl/src/models/ledger/DID.ts new file mode 100644 index 0000000000..d85d71af70 --- /dev/null +++ b/packages/xrpl/src/models/ledger/DID.ts @@ -0,0 +1,22 @@ +import { BaseLedgerEntry, HasPreviousTxnID } from './BaseLedgerEntry' + +// TODO: add docs + +/** + * @category Ledger Entries + */ +export default interface DID extends BaseLedgerEntry, HasPreviousTxnID { + LedgerEntryType: 'DID' + + Account: string + + Data: string + + DIDDocument: string + + URI: string + + Flags: 0 + + OwnerNode: string +} diff --git a/packages/xrpl/src/models/ledger/DepositPreauth.ts b/packages/xrpl/src/models/ledger/DepositPreauth.ts index 2387e6e29f..70ba7d24a3 100644 --- a/packages/xrpl/src/models/ledger/DepositPreauth.ts +++ b/packages/xrpl/src/models/ledger/DepositPreauth.ts @@ -1,4 +1,4 @@ -import BaseLedgerEntry from './BaseLedgerEntry' +import { BaseLedgerEntry, HasPreviousTxnID } from './BaseLedgerEntry' /** * A DepositPreauth object tracks a preauthorization from one account to @@ -6,7 +6,9 @@ import BaseLedgerEntry from './BaseLedgerEntry' * * @category Ledger Entries */ -export default interface DepositPreauth extends BaseLedgerEntry { +export default interface DepositPreauth + extends BaseLedgerEntry, + HasPreviousTxnID { LedgerEntryType: 'DepositPreauth' /** The account that granted the preauthorization. */ Account: string @@ -22,14 +24,4 @@ export default interface DepositPreauth extends BaseLedgerEntry { * object, in case the directory consists of multiple pages. */ OwnerNode: string - /** - * The identifying hash of the transaction that most recently modified this - * object. - */ - PreviousTxnID: string - /** - * The index of the ledger that contains the transaction that most recently - * modified this object. - */ - PreviousTxnLgrSeq: number } diff --git a/packages/xrpl/src/models/ledger/DirectoryNode.ts b/packages/xrpl/src/models/ledger/DirectoryNode.ts index 5c44625158..ea9d240532 100644 --- a/packages/xrpl/src/models/ledger/DirectoryNode.ts +++ b/packages/xrpl/src/models/ledger/DirectoryNode.ts @@ -1,4 +1,4 @@ -import BaseLedgerEntry from './BaseLedgerEntry' +import { BaseLedgerEntry, HasOptionalPreviousTxnID } from './BaseLedgerEntry' /** * The DirectoryNode object type provides a list of links to other objects in @@ -6,7 +6,9 @@ import BaseLedgerEntry from './BaseLedgerEntry' * * @category Ledger Entries */ -export default interface DirectoryNode extends BaseLedgerEntry { +export default interface DirectoryNode + extends BaseLedgerEntry, + HasOptionalPreviousTxnID { LedgerEntryType: 'DirectoryNode' /** * A bit-map of boolean flags enabled for this directory. Currently, the diff --git a/packages/xrpl/src/models/ledger/EmittedTxn.ts b/packages/xrpl/src/models/ledger/EmittedTxn.ts index e2a690aa09..c3b938dc74 100644 --- a/packages/xrpl/src/models/ledger/EmittedTxn.ts +++ b/packages/xrpl/src/models/ledger/EmittedTxn.ts @@ -1,6 +1,6 @@ import { Transaction } from '../transactions' -import BaseLedgerEntry from './BaseLedgerEntry' +import { BaseLedgerEntry } from './BaseLedgerEntry' /** * The EmittedTxn object type contains the diff --git a/packages/xrpl/src/models/ledger/Escrow.ts b/packages/xrpl/src/models/ledger/Escrow.ts index f56eee94c7..a5f5daf407 100644 --- a/packages/xrpl/src/models/ledger/Escrow.ts +++ b/packages/xrpl/src/models/ledger/Escrow.ts @@ -1,6 +1,6 @@ import { Amount } from '../common' -import BaseLedgerEntry from './BaseLedgerEntry' +import { BaseLedgerEntry, HasPreviousTxnID } from './BaseLedgerEntry' /** * The Escrow object type represents a held payment waiting to be @@ -8,7 +8,7 @@ import BaseLedgerEntry from './BaseLedgerEntry' * * @category Ledger Entries */ -export default interface Escrow extends BaseLedgerEntry { +export default interface Escrow extends BaseLedgerEntry, HasPreviousTxnID { LedgerEntryType: 'Escrow' /** * The address of the owner (sender) of this held payment. This is the diff --git a/packages/xrpl/src/models/ledger/FeeSettings.ts b/packages/xrpl/src/models/ledger/FeeSettings.ts index 96ddb2c7e0..0a452ea6c0 100644 --- a/packages/xrpl/src/models/ledger/FeeSettings.ts +++ b/packages/xrpl/src/models/ledger/FeeSettings.ts @@ -1,17 +1,13 @@ -import BaseLedgerEntry from './BaseLedgerEntry' +import { BaseLedgerEntry, HasOptionalPreviousTxnID } from './BaseLedgerEntry' /** - * The FeeSettings object type contains the current base transaction cost and - * reserve amounts as determined by fee voting. - * - * @category Ledger Entries + * The unique id for the FeeSettings object https://xrpl.org/feesettings.html#feesettings-id-format */ -export default interface FeeSettings extends BaseLedgerEntry { - LedgerEntryType: 'FeeSettings' - /** - * The transaction cost of the "reference transaction" in drops of XRP as - * hexadecimal. - */ +export const FEE_SETTINGS_ID = + '4BC50C9B0D8515D3EAAE1E74B29A95804346C491EE1A95BF25E4AAB854A6A651' + +export interface FeeSettingsPreAmendmentFields { + /** The transaction cost of the "reference transaction" in drops of XRP as hexadecimal. */ BaseFee: string /** The BaseFee translated into "fee units". */ ReferenceFeeUnits: number @@ -27,3 +23,39 @@ export default interface FeeSettings extends BaseLedgerEntry { XahauActivationLgrSeq?: number AccountCount?: number } + +export interface FeeSettingsPostAmendmentFields { + /** The transaction cost of the "reference transaction" in drops of XRP as hexadecimal. */ + BaseFeeDrops: string + /** The base reserve for an account in the XRP Ledger, as drops of XRP. */ + ReserveBaseDrops: string + /** The incremental owner reserve for owning objects, as drops of XRP. */ + ReserveIncrementDrops: string +} + +export interface FeeSettingsBase + extends BaseLedgerEntry, + HasOptionalPreviousTxnID { + LedgerEntryType: 'FeeSettings' + /** + * A bit-map of boolean flags for this object. No flags are defined for this type. + */ + Flags: 0 +} + +/** + * The FeeSettings object type contains the current base transaction cost and + * reserve amounts as determined by fee voting. + * + * The fields will be based on the status of the `XRPFees` amendment. + * - Before: {@link FeeSettingsPreAmendmentFields} + * - After: {@link FeeSettingsPostAmendmentFields} + * + * @interface + * + * @category Ledger Entries + */ +type FeeSettings = FeeSettingsBase & + (FeeSettingsPreAmendmentFields | FeeSettingsPostAmendmentFields) + +export default FeeSettings diff --git a/packages/xrpl/src/models/ledger/Hook.ts b/packages/xrpl/src/models/ledger/Hook.ts index aeb31ebd1c..33df8eddee 100644 --- a/packages/xrpl/src/models/ledger/Hook.ts +++ b/packages/xrpl/src/models/ledger/Hook.ts @@ -1,6 +1,6 @@ import { Hook as WHook } from '../common' -import BaseLedgerEntry from './BaseLedgerEntry' +import { BaseLedgerEntry } from './BaseLedgerEntry' /** * The Hook object type contains the diff --git a/packages/xrpl/src/models/ledger/HookDefinition.ts b/packages/xrpl/src/models/ledger/HookDefinition.ts index 547edbcc96..847676cd20 100644 --- a/packages/xrpl/src/models/ledger/HookDefinition.ts +++ b/packages/xrpl/src/models/ledger/HookDefinition.ts @@ -1,6 +1,6 @@ import { HookParameter } from '../common' -import BaseLedgerEntry from './BaseLedgerEntry' +import { BaseLedgerEntry } from './BaseLedgerEntry' /** * The HookDefintion object type contains the diff --git a/packages/xrpl/src/models/ledger/HookState.ts b/packages/xrpl/src/models/ledger/HookState.ts index f236afecf1..d351789cd0 100644 --- a/packages/xrpl/src/models/ledger/HookState.ts +++ b/packages/xrpl/src/models/ledger/HookState.ts @@ -1,4 +1,4 @@ -import BaseLedgerEntry from './BaseLedgerEntry' +import { BaseLedgerEntry } from './BaseLedgerEntry' /** * The HookState object type contains the diff --git a/packages/xrpl/src/models/ledger/ImportVLSequence.ts b/packages/xrpl/src/models/ledger/ImportVLSequence.ts index 0c6d8c900d..77350faaa8 100644 --- a/packages/xrpl/src/models/ledger/ImportVLSequence.ts +++ b/packages/xrpl/src/models/ledger/ImportVLSequence.ts @@ -1,4 +1,4 @@ -import BaseLedgerEntry from './BaseLedgerEntry' +import { BaseLedgerEntry } from './BaseLedgerEntry' /** * diff --git a/packages/xrpl/src/models/ledger/Ledger.ts b/packages/xrpl/src/models/ledger/Ledger.ts index 20c2b3b0e2..a43701732b 100644 --- a/packages/xrpl/src/models/ledger/Ledger.ts +++ b/packages/xrpl/src/models/ledger/Ledger.ts @@ -1,17 +1,17 @@ +import { APIVersion, DEFAULT_API_VERSION, RIPPLED_API_V1 } from '../common' import { Transaction, TransactionMetadata } from '../transactions' -import LedgerEntry from './LedgerEntry' +import { LedgerEntry } from './LedgerEntry' /** - * A ledger is a block of transactions and shared state data. It has a unique - * header that describes its contents using cryptographic hashes. + * Common properties for ledger entries. * * @category Ledger Entries */ -export default interface Ledger { +interface BaseLedger { /** The SHA-512Half of this ledger's state tree information. */ account_hash: string - /** All the state information in this ledger. */ + /** All the state information in this ledger. Admin only. */ accountState?: LedgerEntry[] /** A bit-map of flags relating to the closing of this ledger. */ close_flags: number @@ -38,11 +38,6 @@ export default interface Ledger { * for this ledger and all its contents. */ ledger_hash: string - /** - * The ledger index of the ledger. Some API methods display this as a quoted - * integer; some display it as a native JSON number. - */ - ledger_index: string /** The approximate time at which the previous ledger was closed. */ parent_close_time: number /** @@ -61,5 +56,47 @@ export default interface Ledger { * either JSON or binary depending on whether the request specified binary * as true. */ - transactions?: Array + transactions?: Array< + Transaction & { + hash: string + metaData?: TransactionMetadata + } + > +} + +/** + * A ledger is a block of transactions and shared state data. It has a unique + * header that describes its contents using cryptographic hashes. + * + * @category Ledger Entries + */ +export interface Ledger extends BaseLedger { + /** + * The ledger index of the ledger. Represented as a number. + */ + ledger_index: number } + +/** + * A ledger is a block of transactions and shared state data. It has a unique + * header that describes its contents using cryptographic hashes. This is used + * in api_version 1. + * + * @category Ledger Entries + */ +export interface LedgerV1 extends BaseLedger { + /** + * The ledger index of the ledger. Some API methods display this as a quoted + * integer; some display it as a number. + */ + ledger_index: string +} + +/** + * Type to map between the API version and the Ledger type. + * + * @category Responses + */ +export type LedgerVersionMap< + Version extends APIVersion = typeof DEFAULT_API_VERSION, +> = Version extends typeof RIPPLED_API_V1 ? LedgerV1 : Ledger diff --git a/packages/xrpl/src/models/ledger/LedgerEntry.ts b/packages/xrpl/src/models/ledger/LedgerEntry.ts index 4cb325a13f..a569a4702a 100644 --- a/packages/xrpl/src/models/ledger/LedgerEntry.ts +++ b/packages/xrpl/src/models/ledger/LedgerEntry.ts @@ -1,5 +1,7 @@ import AccountRoot from './AccountRoot' import Amendments from './Amendments' +import AMM from './AMM' +import Bridge from './Bridge' import Check from './Check' import DepositPreauth from './DepositPreauth' import DirectoryNode from './DirectoryNode' @@ -13,16 +15,21 @@ import ImportVLSequence from './ImportVLSequence' import LedgerHashes from './LedgerHashes' import NegativeUNL from './NegativeUNL' import Offer from './Offer' +import Oracle from './Oracle' import PayChannel from './PayChannel' import RippleState from './RippleState' import SignerList from './SignerList' import Ticket from './Ticket' import UNLReport from './UNLReport' import URIToken from './URIToken' +import XChainOwnedClaimID from './XChainOwnedClaimID' +import XChainOwnedCreateAccountClaimID from './XChainOwnedCreateAccountClaimID' type LedgerEntry = | AccountRoot | Amendments + | AMM + | Bridge | Check | DepositPreauth | DirectoryNode @@ -36,11 +43,44 @@ type LedgerEntry = | LedgerHashes | NegativeUNL | Offer + | Oracle | PayChannel | RippleState | SignerList | Ticket | UNLReport | URIToken + | XChainOwnedClaimID + | XChainOwnedCreateAccountClaimID -export default LedgerEntry +type LedgerEntryFilter = + | 'account' + | 'amendments' + | 'amm' + | 'bridge' + | 'check' + | 'deposit_preauth' + | 'did' + | 'directory' + | 'escrow' + | 'emitted_txn' + | 'hook' + | 'hook_definition' + | 'hook_state' + | 'fee' + | 'hashes' + | 'import_vlseq' + | 'nft_offer' + | 'nft_page' + | 'offer' + | 'oracle' + | 'payment_channel' + | 'uri_token' + | 'signer_list' + | 'state' + | 'ticket' + | 'unl_report' + | 'xchain_owned_create_account_claim_id' + | 'xchain_owned_claim_id' + +export { LedgerEntry, LedgerEntryFilter } diff --git a/packages/xrpl/src/models/ledger/LedgerHashes.ts b/packages/xrpl/src/models/ledger/LedgerHashes.ts index 8c5802d820..be35f81672 100644 --- a/packages/xrpl/src/models/ledger/LedgerHashes.ts +++ b/packages/xrpl/src/models/ledger/LedgerHashes.ts @@ -1,4 +1,4 @@ -import BaseLedgerEntry from './BaseLedgerEntry' +import { BaseLedgerEntry } from './BaseLedgerEntry' /** * The LedgerHashes objects exist to make it possible to look up a previous diff --git a/packages/xrpl/src/models/ledger/NFTokenOffer.ts b/packages/xrpl/src/models/ledger/NFTokenOffer.ts new file mode 100644 index 0000000000..9dcca5d832 --- /dev/null +++ b/packages/xrpl/src/models/ledger/NFTokenOffer.ts @@ -0,0 +1,14 @@ +import { Amount } from '../common' + +import { BaseLedgerEntry, HasPreviousTxnID } from './BaseLedgerEntry' + +export interface NFTokenOffer extends BaseLedgerEntry, HasPreviousTxnID { + LedgerEntryType: 'NFTokenOffer' + Amount: Amount + Destination?: string + Expiration: number + Flags: number + NFTokenOfferNode?: string + Owner: string + OwnerNode?: string +} diff --git a/packages/xrpl/src/models/ledger/NFTokenPage.ts b/packages/xrpl/src/models/ledger/NFTokenPage.ts new file mode 100644 index 0000000000..fadb8ec8e9 --- /dev/null +++ b/packages/xrpl/src/models/ledger/NFTokenPage.ts @@ -0,0 +1,18 @@ +import { BaseLedgerEntry, HasPreviousTxnID } from './BaseLedgerEntry' + +export interface NFToken { + NFToken: { + Flags: number + Issuer: string + NFTokenID: string + NFTokenTaxon: number + URI?: string + } +} + +export interface NFTokenPage extends BaseLedgerEntry, HasPreviousTxnID { + LedgerEntryType: 'NFTokenPage' + NextPageMin?: string + NFTokens: NFToken[] + PreviousPageMin?: string +} diff --git a/packages/xrpl/src/models/ledger/NegativeUNL.ts b/packages/xrpl/src/models/ledger/NegativeUNL.ts index 1a62a96c48..b9c0d51f3a 100644 --- a/packages/xrpl/src/models/ledger/NegativeUNL.ts +++ b/packages/xrpl/src/models/ledger/NegativeUNL.ts @@ -1,9 +1,10 @@ -import BaseLedgerEntry from './BaseLedgerEntry' +import { BaseLedgerEntry, HasOptionalPreviousTxnID } from './BaseLedgerEntry' -interface DisabledValidator { - FirstLedgerSequence: number - PublicKey: string -} +/** + * The unique id for the nUNL object https://xrpl.org/negativeunl.html#negativeunl-id-format + */ +export const NEGATIVE_UNL_ID = + '2E8A59AA9D3B5B186B0B9E0F62E6C02587CA74A4D778938E957B6357D364B244' /** * The NegativeUNL object type contains the current status of the Negative UNL, @@ -11,12 +12,17 @@ interface DisabledValidator { * * @category Ledger Entries */ -export default interface NegativeUNL extends BaseLedgerEntry { +export default interface NegativeUNL + extends BaseLedgerEntry, + HasOptionalPreviousTxnID { LedgerEntryType: 'NegativeUNL' /** * A list of trusted validators that are currently disabled. */ - DisabledValidators?: DisabledValidator[] + DisabledValidators?: Array<{ + FirstLedgerSequence: number + PublicKey: string + }> /** * The public key of a trusted validator that is scheduled to be disabled in * the next flag ledger. diff --git a/packages/xrpl/src/models/ledger/Offer.ts b/packages/xrpl/src/models/ledger/Offer.ts index 2da06deb77..54030bf26a 100644 --- a/packages/xrpl/src/models/ledger/Offer.ts +++ b/packages/xrpl/src/models/ledger/Offer.ts @@ -1,8 +1,8 @@ import { Amount } from '../common' -import BaseLedgerEntry from './BaseLedgerEntry' +import { BaseLedgerEntry, HasPreviousTxnID } from './BaseLedgerEntry' -export default interface Offer extends BaseLedgerEntry { +export default interface Offer extends BaseLedgerEntry, HasPreviousTxnID { LedgerEntryType: 'Offer' /** A bit-map of boolean flags enabled for this Offer. */ Flags: number @@ -32,16 +32,6 @@ export default interface Offer extends BaseLedgerEntry { * in case the directory consists of multiple pages. */ OwnerNode: string - /** - * The identifying hash of the transaction that most recently modified this - * object. - */ - PreviousTxnID: string - /** - * The index of the ledger that contains the transaction that most recently - * modified this object. - */ - PreviousTxnLgrSeq: number /** The time this Offer expires, in seconds since the Ripple Epoch. */ Expiration?: number } diff --git a/packages/xrpl/src/models/ledger/Oracle.ts b/packages/xrpl/src/models/ledger/Oracle.ts new file mode 100644 index 0000000000..37d77b6c8d --- /dev/null +++ b/packages/xrpl/src/models/ledger/Oracle.ts @@ -0,0 +1,43 @@ +import { PriceData } from '../common' + +import { BaseLedgerEntry, HasPreviousTxnID } from './BaseLedgerEntry' + +/** + * The Oracle object type describes a single Price Oracle instance. + * + * @category Ledger Entries + */ +export default interface Oracle extends BaseLedgerEntry, HasPreviousTxnID { + LedgerEntryType: 'Oracle' + + /** + * The time the data was last updated, represented as a unix timestamp in seconds. + */ + LastUpdateTime: number + + /** + * The XRPL account with update and delete privileges for the oracle. + */ + Owner: string + + /** + * Describes the type of asset, such as "currency", "commodity", or "index". + */ + AssetClass: string + + /** + * The oracle provider, such as Chainlink, Band, or DIA. + */ + Provider: string + + /** + * An array of up to 10 PriceData objects. + */ + PriceDataSeries: PriceData[] + + /** + * A bit-map of boolean flags. No flags are defined for the Oracle object + * type, so this value is always 0. + */ + Flags: 0 +} diff --git a/packages/xrpl/src/models/ledger/PayChannel.ts b/packages/xrpl/src/models/ledger/PayChannel.ts index de7de22786..4d7e7771ee 100644 --- a/packages/xrpl/src/models/ledger/PayChannel.ts +++ b/packages/xrpl/src/models/ledger/PayChannel.ts @@ -1,6 +1,6 @@ import { Amount } from '../common' -import BaseLedgerEntry from './BaseLedgerEntry' +import { BaseLedgerEntry, HasPreviousTxnID } from './BaseLedgerEntry' /** * The PayChannel object type represents a payment channel. Payment channels @@ -11,7 +11,7 @@ import BaseLedgerEntry from './BaseLedgerEntry' * * @category Ledger Entries */ -export default interface PayChannel extends BaseLedgerEntry { +export default interface PayChannel extends BaseLedgerEntry, HasPreviousTxnID { LedgerEntryType: 'PayChannel' /** * The source address that owns this payment channel. This comes from the @@ -62,16 +62,6 @@ export default interface PayChannel extends BaseLedgerEntry { * to this object, in case the directory consists of multiple pages. */ OwnerNode: string - /** - * The identifying hash of the transaction that most recently modified this - * object. - */ - PreviousTxnID: string - /** - * The index of the ledger that contains the transaction that most recently - * modified this object. - */ - PreviousTxnLgrSeq: number /** * A bit-map of boolean flags enabled for this payment channel. Currently, * the protocol defines no flags for PayChannel objects. diff --git a/packages/xrpl/src/models/ledger/RippleState.ts b/packages/xrpl/src/models/ledger/RippleState.ts index 4fa6546bcd..907907e010 100644 --- a/packages/xrpl/src/models/ledger/RippleState.ts +++ b/packages/xrpl/src/models/ledger/RippleState.ts @@ -1,13 +1,13 @@ import { IssuedCurrencyAmount } from '../common' -import BaseLedgerEntry from './BaseLedgerEntry' +import { BaseLedgerEntry, HasPreviousTxnID } from './BaseLedgerEntry' /** * The RippleState object type connects two accounts in a single currency. * * @category Ledger Entries */ -export default interface RippleState extends BaseLedgerEntry { +export default interface RippleState extends BaseLedgerEntry, HasPreviousTxnID { LedgerEntryType: 'RippleState' /** A bit-map of boolean options enabled for this object. */ Flags: number @@ -27,16 +27,6 @@ export default interface RippleState extends BaseLedgerEntry { * the address of the high account that set this limit. */ HighLimit: IssuedCurrencyAmount - /** - * The identifying hash of the transaction that most recently modified this - * object. - */ - PreviousTxnID: string - /** - * The index of the ledger that contains the transaction that most recently - * modified this object. - */ - PreviousTxnLgrSeq: number /** * A hint indicating which page of the low account's owner directory links to * this object, in case the directory consists of multiple pages. @@ -85,4 +75,6 @@ export enum RippleStateFlags { lsfLowFreeze = 0x00400000, // True, high side has set freeze flag lsfHighFreeze = 0x00800000, + // True, trust line to AMM. Used by client apps to identify payments via AMM. + lsfAMMNode = 0x01000000, } diff --git a/packages/xrpl/src/models/ledger/SignerList.ts b/packages/xrpl/src/models/ledger/SignerList.ts index 777ad5a7a7..cae2bbb8d3 100644 --- a/packages/xrpl/src/models/ledger/SignerList.ts +++ b/packages/xrpl/src/models/ledger/SignerList.ts @@ -1,11 +1,6 @@ -import BaseLedgerEntry from './BaseLedgerEntry' +import { SignerEntry } from '../common' -interface SignerEntry { - SignerEntry: { - Account: string - SignerWeight: number - } -} +import { BaseLedgerEntry, HasPreviousTxnID } from './BaseLedgerEntry' /** * The SignerList object type represents a list of parties that, as a group, @@ -15,23 +10,13 @@ interface SignerEntry { * * @category Ledger Entries */ -export default interface SignerList extends BaseLedgerEntry { +export default interface SignerList extends BaseLedgerEntry, HasPreviousTxnID { LedgerEntryType: 'SignerList' /** * A bit-map of Boolean flags enabled for this signer list. For more * information, see SignerList Flags. */ Flags: number - /** - * The identifying hash of the transaction that most recently modified this - * object. - */ - PreviousTxnID: string - /** - * The index of the ledger that contains the transaction that most recently - * modified this object. - */ - PreviousTxnLgrSeq: number /** * A hint indicating which page of the owner directory links to this object, * in case the directory consists of multiple pages. diff --git a/packages/xrpl/src/models/ledger/Ticket.ts b/packages/xrpl/src/models/ledger/Ticket.ts index 1320e6c22b..e45d860718 100644 --- a/packages/xrpl/src/models/ledger/Ticket.ts +++ b/packages/xrpl/src/models/ledger/Ticket.ts @@ -1,4 +1,4 @@ -import BaseLedgerEntry from './BaseLedgerEntry' +import { BaseLedgerEntry, HasPreviousTxnID } from './BaseLedgerEntry' /** * The Ticket object type represents a Ticket, which tracks an account sequence @@ -7,7 +7,7 @@ import BaseLedgerEntry from './BaseLedgerEntry' * * @category Ledger Entries */ -export default interface Ticket extends BaseLedgerEntry { +export default interface Ticket extends BaseLedgerEntry, HasPreviousTxnID { LedgerEntryType: 'Ticket' /** The account that owns this Ticket. */ Account: string @@ -21,16 +21,6 @@ export default interface Ticket extends BaseLedgerEntry { * in case the directory consists of multiple pages. */ OwnerNode: string - /** - * The identifying hash of the transaction that most recently modified this - * object. - */ - PreviousTxnID: string - /** - * The index of the ledger that contains the transaction that most recently - * modified this object. - */ - PreviousTxnLgrSeq: number /** The Sequence Number this Ticket sets aside. */ TicketSequence: number } diff --git a/packages/xrpl/src/models/ledger/UNLReport.ts b/packages/xrpl/src/models/ledger/UNLReport.ts index a64e9ea899..387f5652ea 100644 --- a/packages/xrpl/src/models/ledger/UNLReport.ts +++ b/packages/xrpl/src/models/ledger/UNLReport.ts @@ -1,4 +1,4 @@ -import BaseLedgerEntry from './BaseLedgerEntry' +import { BaseLedgerEntry } from './BaseLedgerEntry' interface ImportVLKey { ImportVLKey: { diff --git a/packages/xrpl/src/models/ledger/URIToken.ts b/packages/xrpl/src/models/ledger/URIToken.ts index 72cd9cf755..90d9bde358 100644 --- a/packages/xrpl/src/models/ledger/URIToken.ts +++ b/packages/xrpl/src/models/ledger/URIToken.ts @@ -1,6 +1,6 @@ import { Amount } from '../common' -import BaseLedgerEntry from './BaseLedgerEntry' +import { BaseLedgerEntry } from './BaseLedgerEntry' /** * The URIToken object type contains the diff --git a/packages/xrpl/src/models/ledger/XChainOwnedClaimID.ts b/packages/xrpl/src/models/ledger/XChainOwnedClaimID.ts new file mode 100644 index 0000000000..0724aa7b8a --- /dev/null +++ b/packages/xrpl/src/models/ledger/XChainOwnedClaimID.ts @@ -0,0 +1,81 @@ +import { Amount } from 'ripple-binary-codec/dist/types' + +import { XChainBridge } from '../common' + +import { BaseLedgerEntry, HasPreviousTxnID } from './BaseLedgerEntry' + +/** + * An XChainOwnedClaimID object represents one cross-chain transfer of value + * and includes information of the account on the source chain that locks or + * burns the funds on the source chain. + * + * @category Ledger Entries + */ +export default interface XChainOwnedClaimID + extends BaseLedgerEntry, + HasPreviousTxnID { + LedgerEntryType: 'XChainOwnedClaimID' + + /** The account that checked out this unique claim ID value. */ + Account: string + + /** + * The door accounts and assets of the bridge this object correlates to. + */ + XChainBridge: XChainBridge + + /** + * The unique sequence number for a cross-chain transfer. + */ + XChainClaimID: string + + /** + * The account that must send the corresponding {@link XChainCommit} on the + * source chain. The destination may be specified in the {@link XChainCommit} + * transaction, which means that if the OtherChainSource isn't specified, + * another account can try to specify a different destination and steal the + * funds. This also allows tracking only a single set of signatures, since we + * know which account will send the {@link XChainCommit} transaction. + */ + OtherChainSource: string + + /** + * Attestations collected from the witness servers. This includes the parameters + * needed to recreate the message that was signed, including the amount, which + * chain (locking or issuing), optional destination, and reward account for that + * signature. + */ + XChainClaimAttestations: Array<{ + // TODO: add docs + XChainClaimProofSig: { + Amount: Amount + + AttestationRewardAccount: string + + AttestationSignerAccount: string + + Destination?: string + + PublicKey: string + + WasLockingChainSend: 0 | 1 + } + }> + + /** + * The total amount to pay the witness servers for their signatures. It must be at + * least the value of the SignatureReward in the {@link Bridge} ledger object. + */ + SignatureReward: string + + /** + * A bit-map of boolean flags. No flags are defined for XChainOwnedClaimIDs, + * so this value is always 0. + */ + Flags: 0 + /** + * A hint indicating which page of the sender's owner directory links to this + * object, in case the directory consists of multiple pages. + */ + OwnerNode: string +} diff --git a/packages/xrpl/src/models/ledger/XChainOwnedCreateAccountClaimID.ts b/packages/xrpl/src/models/ledger/XChainOwnedCreateAccountClaimID.ts new file mode 100644 index 0000000000..02b873f419 --- /dev/null +++ b/packages/xrpl/src/models/ledger/XChainOwnedCreateAccountClaimID.ts @@ -0,0 +1,65 @@ +import { XChainBridge } from '../common' + +import { BaseLedgerEntry, HasPreviousTxnID } from './BaseLedgerEntry' + +/** + * The XChainOwnedCreateAccountClaimID ledger object is used to collect attestations + * for creating an account via a cross-chain transfer. + * + * @category Ledger Entries + */ +export default interface XChainOwnedCreateAccountClaimID + extends BaseLedgerEntry, + HasPreviousTxnID { + LedgerEntryType: 'XChainOwnedCreateAccountClaimID' + + /** The account that owns this object. */ + Account: string + + /** + * The door accounts and assets of the bridge this object correlates to. + */ + XChainBridge: XChainBridge + + /** + * An integer that determines the order that accounts created through + * cross-chain transfers must be performed. Smaller numbers must execute + * before larger numbers. + */ + XChainAccountCreateCount: number + + /** + * Attestations collected from the witness servers. This includes the parameters + * needed to recreate the message that was signed, including the amount, destination, + * signature reward amount, and reward account for that signature. With the + * exception of the reward account, all signatures must sign the message created with + * common parameters. + */ + XChainCreateAccountAttestations: Array<{ + // TODO: add docs + XChainCreateAccountProofSig: { + Amount: string + + AttestationRewardAccount: string + + AttestationSignerAccount: string + + Destination: string + + PublicKey: string + + WasLockingChainSend: 0 | 1 + } + }> + + /** + * A bit-map of boolean flags. No flags are defined for, + * XChainOwnedCreateAccountClaimIDs, so this value is always 0. + */ + Flags: 0 + /** + * A hint indicating which page of the sender's owner directory links to this + * object, in case the directory consists of multiple pages. + */ + OwnerNode: string +} diff --git a/packages/xrpl/src/models/ledger/index.ts b/packages/xrpl/src/models/ledger/index.ts index c8df176211..45fa9f930a 100644 --- a/packages/xrpl/src/models/ledger/index.ts +++ b/packages/xrpl/src/models/ledger/index.ts @@ -2,50 +2,77 @@ import AccountRoot, { AccountRootFlags, AccountRootFlagsInterface, } from './AccountRoot' -import Amendments from './Amendments' +import Amendments, { Majority, AMENDMENTS_ID } from './Amendments' +import AMM, { VoteSlot } from './AMM' +import Bridge from './Bridge' import Check from './Check' import DepositPreauth from './DepositPreauth' +import DID from './DID' import DirectoryNode from './DirectoryNode' import EmittedTxn from './EmittedTxn' import Escrow from './Escrow' -import FeeSettings from './FeeSettings' +import FeeSettings, { + FeeSettingsPreAmendmentFields, + FeeSettingsPostAmendmentFields, + FEE_SETTINGS_ID, +} from './FeeSettings' import Hook from './Hook' import HookDefinition from './HookDefinition' import HookState from './HookState' import ImportVLSequence from './ImportVLSequence' -import Ledger from './Ledger' -import LedgerEntry from './LedgerEntry' +import { Ledger, LedgerV1 } from './Ledger' +import { LedgerEntry, LedgerEntryFilter } from './LedgerEntry' import LedgerHashes from './LedgerHashes' -import NegativeUNL from './NegativeUNL' +import NegativeUNL, { NEGATIVE_UNL_ID } from './NegativeUNL' +import { NFTokenOffer } from './NFTokenOffer' +import { NFToken, NFTokenPage } from './NFTokenPage' import Offer, { OfferFlags } from './Offer' +import Oracle from './Oracle' import PayChannel from './PayChannel' import RippleState, { RippleStateFlags } from './RippleState' import SignerList, { SignerListFlags } from './SignerList' import Ticket from './Ticket' import UNLReport from './UNLReport' import URIToken from './URIToken' +import XChainOwnedClaimID from './XChainOwnedClaimID' +import XChainOwnedCreateAccountClaimID from './XChainOwnedCreateAccountClaimID' export { AccountRoot, AccountRootFlags, AccountRootFlagsInterface, + AMENDMENTS_ID, Amendments, + AMM, + Bridge, Check, DepositPreauth, DirectoryNode, + DID, EmittedTxn, Escrow, + FEE_SETTINGS_ID, FeeSettings, + FeeSettingsPreAmendmentFields, + FeeSettingsPostAmendmentFields, Hook, HookDefinition, HookState, ImportVLSequence, Ledger, + LedgerV1, + LedgerEntryFilter, LedgerEntry, LedgerHashes, + Majority, + NEGATIVE_UNL_ID, NegativeUNL, + NFTokenOffer, + NFTokenPage, + NFToken, Offer, OfferFlags, + Oracle, PayChannel, RippleState, RippleStateFlags, @@ -54,4 +81,7 @@ export { Ticket, UNLReport, URIToken, + XChainOwnedClaimID, + XChainOwnedCreateAccountClaimID, + VoteSlot, } diff --git a/packages/xrpl/src/models/methods/accountChannels.ts b/packages/xrpl/src/models/methods/accountChannels.ts index beb0e2a3ae..ab31730ae7 100644 --- a/packages/xrpl/src/models/methods/accountChannels.ts +++ b/packages/xrpl/src/models/methods/accountChannels.ts @@ -1,19 +1,82 @@ -import { Amount, LedgerIndex } from '../common' +import { Amount } from '../common' -import { BaseRequest, BaseResponse } from './baseMethod' +import { BaseRequest, BaseResponse, LookupByLedgerRequest } from './baseMethod' -interface Channel { +/** + * Represents a payment channel in the XRP Ledger. + */ +export interface Channel { + /** The owner of the channel, as an Address. */ account: string + + /** The total amount of XRP, in drops allocated to this channel. */ amount: Amount + + /** + * The total amount of XRP, in drops, paid out from this channel, + * as of the ledger version used. (You can calculate the amount of + * XRP left in the channel by subtracting balance from amount.) + */ balance: string + + /** + * A unique ID for this channel, as a 64-character hexadecimal string. + * This is also the ID of the channel object in the ledger's state data. + */ channel_id: string + + /** + * The destination account of the channel, as an Address. + * Only this account can receive the XRP in the channel while it is open. + */ destination_account: string + + /** + * The number of seconds the payment channel must stay open after the owner + * of the channel requests to close it. + */ settle_delay: number + + /** + * The public key for the payment channel in the XRP Ledger's base58 format. + * Signed claims against this channel must be redeemed with the matching key pair. + */ public_key?: string + + /** + * The public key for the payment channel in hexadecimal format, if one was + * specified at channel creation. Signed claims against this channel must be + * redeemed with the matching key pair. + */ public_key_hex?: string + + /** + * Time, in seconds since the Ripple Epoch, when this channel is set to expire. + * This expiration date is mutable. If this is before the close time of the most + * recent validated ledger, the channel is expired. + */ expiration?: number + + /** + * Time, in seconds since the Ripple Epoch, of this channel's immutable expiration, + * if one was specified at channel creation. If this is before the close time of the + * most recent validated ledger, the channel is expired. + */ cancel_after?: number - source_tab?: number + + /** + * A 32-bit unsigned integer to use as a source tag for payments through this payment channel, + * if one was specified at channel creation. This indicates the payment channel's originator or + * other purpose at the source account. Conventionally, if you bounce payments from this channel, + * you should specify this value in the DestinationTag of the return payment. + */ + source_tag?: number + + /** + * A 32-bit unsigned integer to use as a destination tag for payments through this channel, + * if one was specified at channel creation. This indicates the payment channel's beneficiary + * or other purpose at the destination account. + */ destination_tag?: number transfer_rate?: number } @@ -27,7 +90,9 @@ interface Channel { * * @category Requests */ -export interface AccountChannelsRequest extends BaseRequest { +export interface AccountChannelsRequest + extends BaseRequest, + LookupByLedgerRequest { command: 'account_channels' /** * The unique identifier of an account, typically the account's address. The @@ -41,13 +106,6 @@ export interface AccountChannelsRequest extends BaseRequest { * account. */ destination_account?: string - /** 20-byte hex string for the ledger version to use. */ - ledger_hash?: string - /** - * The ledger index of the ledger to use, or a shortcut string to choose a - * ledger automatically. - */ - ledger_index?: LedgerIndex /** * Limit the number of transactions to retrieve. Cannot be less than 10 or * more than 400. The default is 200. diff --git a/packages/xrpl/src/models/methods/accountCurrencies.ts b/packages/xrpl/src/models/methods/accountCurrencies.ts index f0df11b3fb..2e0df1a754 100644 --- a/packages/xrpl/src/models/methods/accountCurrencies.ts +++ b/packages/xrpl/src/models/methods/accountCurrencies.ts @@ -1,6 +1,4 @@ -import { LedgerIndex } from '../common' - -import { BaseRequest, BaseResponse } from './baseMethod' +import { BaseRequest, BaseResponse, LookupByLedgerRequest } from './baseMethod' /** * The `account_currencies` command retrieves a list of currencies that an @@ -9,17 +7,12 @@ import { BaseRequest, BaseResponse } from './baseMethod' * * @category Requests */ -export interface AccountCurrenciesRequest extends BaseRequest { +export interface AccountCurrenciesRequest + extends BaseRequest, + LookupByLedgerRequest { command: 'account_currencies' /** A unique identifier for the account, most commonly the account's address. */ account: string - /** A 20-byte hex string for the ledger version to use. */ - ledger_hash?: string - /** - * The ledger index of the ledger to use, or a shortcut string to choose a - * ledger automatically. - */ - ledger_index?: LedgerIndex /** * If true, then the account field only accepts a public key or XRP Ledger * address. Otherwise, account can be a secret or passphrase (not diff --git a/packages/xrpl/src/models/methods/accountInfo.ts b/packages/xrpl/src/models/methods/accountInfo.ts index 3024a5d553..9d31f81faa 100644 --- a/packages/xrpl/src/models/methods/accountInfo.ts +++ b/packages/xrpl/src/models/methods/accountInfo.ts @@ -1,7 +1,7 @@ -import { LedgerIndex } from '../common' +import { APIVersion, DEFAULT_API_VERSION, RIPPLED_API_V1 } from '../common' import { AccountRoot, SignerList } from '../ledger' -import { BaseRequest, BaseResponse } from './baseMethod' +import { BaseRequest, BaseResponse, LookupByLedgerRequest } from './baseMethod' /** * The `account_info` command retrieves information about an account, its @@ -10,17 +10,10 @@ import { BaseRequest, BaseResponse } from './baseMethod' * * @category Requests */ -export interface AccountInfoRequest extends BaseRequest { +export interface AccountInfoRequest extends BaseRequest, LookupByLedgerRequest { command: 'account_info' /** A unique identifier for the account, most commonly the account's address. */ account: string - /** A 20-byte hex string for the ledger version to use. */ - ledger_hash?: string - /** - * The ledger index of the ledger to use, or a shortcut string to choose a - * ledger automatically. - */ - ledger_index?: LedgerIndex /** * Whether to get info about this account's queued transactions. Can only be * used when querying for the data from the current open ledger. Not available @@ -39,7 +32,7 @@ export interface AccountInfoRequest extends BaseRequest { strict?: boolean } -interface QueueTransaction { +export interface AccountQueueTransaction { /** * Whether this transaction changes this address's ways of authorizing * transactions. @@ -58,7 +51,7 @@ interface QueueTransaction { seq: number } -interface QueueData { +export interface AccountQueueData { /** Number of queued transactions from this address. */ txn_count: number /** @@ -78,15 +71,70 @@ interface QueueData { */ max_spend_drops_total?: string /** Information about each queued transaction from this address. */ - transactions?: QueueTransaction[] + transactions?: AccountQueueTransaction[] } -/** - * Response expected from an {@link AccountInfoRequest}. - * - * @category Responses - */ -export interface AccountInfoResponse extends BaseResponse { +export interface AccountInfoAccountFlags { + /** + * Enable rippling on this address's trust lines by default. Required for issuing addresses; discouraged for others. + */ + defaultRipple: boolean + /** + * This account can only receive funds from transactions it sends, and from preauthorized accounts. + * (It has DepositAuth enabled.) + */ + depositAuth: boolean + /** + * Disallows use of the master key to sign transactions for this account. + */ + disableMasterKey: boolean + /** + * Disallow incoming Checks from other accounts. + */ + disallowIncomingCheck?: boolean + /** + * Disallow incoming NFTOffers from other accounts. Part of the DisallowIncoming amendment. + */ + disallowIncomingNFTokenOffer?: boolean + /** + * Disallow incoming PayChannels from other accounts. Part of the DisallowIncoming amendment. + */ + disallowIncomingPayChan?: boolean + /** + * Disallow incoming Trustlines from other accounts. Part of the DisallowIncoming amendment. + */ + disallowIncomingTrustline?: boolean + /** + * Client applications should not send XRP to this account. Not enforced by rippled. + */ + disallowIncomingXRP: boolean + /** + * All assets issued by this address are frozen. + */ + globalFreeze: boolean + /** + * This address cannot freeze trust lines connected to it. Once enabled, cannot be disabled. + */ + noFreeze: boolean + /** + * The account has used its free SetRegularKey transaction. + */ + passwordSpent: boolean + /** + * This account must individually approve other users for those users to hold this account's issued currencies. + */ + requireAuthorization: boolean + /** + * Requires incoming payments to specify a Destination Tag. + */ + requireDestinationTag: boolean + /** + * This address can claw back issued IOUs. Once enabled, cannot be disabled. + */ + allowTrustLineClawback: boolean +} + +interface BaseAccountInfoResponse extends BaseResponse { result: { /** * The AccountRoot ledger object with this account's information, as stored @@ -94,11 +142,9 @@ export interface AccountInfoResponse extends BaseResponse { */ account_data: AccountRoot /** - * Array of SignerList ledger objects associated with this account for - * Multi-Signing. Since an account can own at most one SignerList, this - * array must have exactly one member if it is present. + * A map of account flags parsed out. This will only be available for rippled nodes 1.11.0 and higher. */ - signer_lists?: SignerList[] + account_flags?: AccountInfoAccountFlags /** * The ledger index of the current in-progress ledger, which was used when * retrieving this information. @@ -117,7 +163,7 @@ export interface AccountInfoResponse extends BaseResponse { * fields may be omitted because the values are calculated "lazily" by the * queuing mechanism. */ - queue_data?: QueueData + queue_data?: AccountQueueData /** * True if this data is from a validated ledger version; if omitted or set * to false, this data is not final. @@ -125,3 +171,58 @@ export interface AccountInfoResponse extends BaseResponse { validated?: boolean } } + +/** + * Response expected from a {@link AccountInfoRequest}. + * + * @category Responses + */ +export interface AccountInfoResponse extends BaseAccountInfoResponse { + result: BaseAccountInfoResponse['result'] & { + /** + * If requested, array of SignerList ledger objects associated with this account for Multi-Signing. + * Since an account can own at most one SignerList, this array must have exactly one + * member if it is present. + */ + signer_lists?: SignerList[] + } +} + +/** + * Response expected from a {@link AccountInfoRequest} using API version 1. + * + * @category ResponsesV1 + */ +export interface AccountInfoV1Response extends BaseAccountInfoResponse { + result: BaseAccountInfoResponse['result'] & { + /** + * The AccountRoot ledger object with this account's information, as stored + * in the ledger. + * If requested, also includes Array of SignerList ledger objects + * associated with this account for Multi-Signing. Since an account can own + * at most one SignerList, this array must have exactly one member if it is + * present. + */ + account_data: BaseAccountInfoResponse['result']['account_data'] & { + /** + * Array of SignerList ledger objects associated with this account for Multi-Signing. + * Since an account can own at most one SignerList, this array must have exactly one + * member if it is present. + * Quirk: In API version 1, this field is nested under account_data. For this method, + * Clio implements the API version 2 behavior where is field is not nested under account_data. + */ + signer_lists?: SignerList[] + } + } +} + +/** + * Type to map between the API version and the response type. + * + * @category Responses + */ +export type AccountInfoVersionResponseMap< + Version extends APIVersion = typeof DEFAULT_API_VERSION, +> = Version extends typeof RIPPLED_API_V1 + ? AccountInfoV1Response + : AccountInfoResponse diff --git a/packages/xrpl/src/models/methods/accountLines.ts b/packages/xrpl/src/models/methods/accountLines.ts index 45e53ffc88..4c70d02328 100644 --- a/packages/xrpl/src/models/methods/accountLines.ts +++ b/packages/xrpl/src/models/methods/accountLines.ts @@ -1,8 +1,8 @@ -import { Amount, LedgerIndex } from '../common' +import { Amount } from '../common' -import { BaseRequest, BaseResponse } from './baseMethod' +import { BaseRequest, BaseResponse, LookupByLedgerRequest } from './baseMethod' -export interface Trustline { +export interface AccountLinesTrustline { /** The unique Address of the counterparty to this trust line. */ account: string /** @@ -82,17 +82,12 @@ export interface Trustline { * * @category Requests */ -export interface AccountLinesRequest extends BaseRequest { +export interface AccountLinesRequest + extends BaseRequest, + LookupByLedgerRequest { command: 'account_lines' /** A unique identifier for the account, most commonly the account's Address. */ account: string - /** A 20-byte hex string for the ledger version to use. */ - ledger_hash?: string - /** - * The ledger index of the ledger to use, or a shortcut string to choose a - * ledger automatically. - */ - ledger_index?: LedgerIndex /** * The Address of a second account. If provided, show only lines of trust * connecting the two accounts. @@ -126,7 +121,7 @@ export interface AccountLinesResponse extends BaseResponse { * Array of trust line objects. If the number of trust lines is large, only * returns up to the limit at a time. */ - lines: Trustline[] + lines: AccountLinesTrustline[] /** * The ledger index of the current open ledger, which was used when * retrieving this information. diff --git a/packages/xrpl/src/models/methods/accountNFTs.ts b/packages/xrpl/src/models/methods/accountNFTs.ts index c5d5965b20..c0921e6d4d 100644 --- a/packages/xrpl/src/models/methods/accountNFTs.ts +++ b/packages/xrpl/src/models/methods/accountNFTs.ts @@ -1,4 +1,4 @@ -import { BaseRequest, BaseResponse } from './baseMethod' +import { BaseRequest, BaseResponse, LookupByLedgerRequest } from './baseMethod' /** * The `account_nfts` method retrieves all of the NFTs currently owned by the @@ -6,7 +6,7 @@ import { BaseRequest, BaseResponse } from './baseMethod' * * @category Requests */ -export interface AccountNFTsRequest extends BaseRequest { +export interface AccountNFTsRequest extends BaseRequest, LookupByLedgerRequest { command: 'account_nfts' /** * The unique identifier of an account, typically the account's address. The diff --git a/packages/xrpl/src/models/methods/accountObjects.ts b/packages/xrpl/src/models/methods/accountObjects.ts index c30d1e80cf..90092847ce 100644 --- a/packages/xrpl/src/models/methods/accountObjects.ts +++ b/packages/xrpl/src/models/methods/accountObjects.ts @@ -1,32 +1,12 @@ -import { LedgerIndex } from '../common' -import { - Check, - DepositPreauth, - Escrow, - Hook, - Offer, - PayChannel, - RippleState, - SignerList, - Ticket, - URIToken, -} from '../ledger' +import { Amendments, FeeSettings, LedgerHashes } from '../ledger' +import { LedgerEntry, LedgerEntryFilter } from '../ledger/LedgerEntry' -import { BaseRequest, BaseResponse } from './baseMethod' - -type AccountObjectType = - | 'check' - | 'deposit_preauth' - | 'escrow' - | 'hook' - | 'nft_offer' - | 'offer' - | 'payment_channel' - | 'signer_list' - | 'state' - | 'ticket' - | 'uritoken' +import { BaseRequest, BaseResponse, LookupByLedgerRequest } from './baseMethod' +export type AccountObjectType = Exclude< + LedgerEntryFilter, + 'amendments' | 'fee' | 'hashes' +> /** * The account_objects command returns the raw ledger format for all objects * owned by an account. For a higher-level view of an account's trust lines and @@ -35,14 +15,14 @@ type AccountObjectType = * * @category Requests */ -export interface AccountObjectsRequest extends BaseRequest { +export interface AccountObjectsRequest + extends BaseRequest, + LookupByLedgerRequest { command: 'account_objects' /** A unique identifier for the account, most commonly the account's address. */ account: string /** * If included, filter results to include only this type of ledger object. - * The valid types are: Check , DepositPreauth, Escrow, Offer, PayChannel, - * SignerList, Ticket, and RippleState (trust line). */ type?: AccountObjectType /** @@ -50,13 +30,6 @@ export interface AccountObjectsRequest extends BaseRequest { * from being deleted. The default is false. */ deletion_blockers_only?: boolean - /** A 20-byte hex string for the ledger version to use. */ - ledger_hash?: string - /** - * The ledger index of the ledger to use, or a shortcut string to choose a - * Ledger automatically. - */ - ledger_index?: LedgerIndex /** * The maximum number of objects to include in the results. Must be within * the inclusive range 10 to 400 on non-admin connections. The default is 200. @@ -73,17 +46,10 @@ export interface AccountObjectsRequest extends BaseRequest { * Account Objects can be a Check, a DepositPreauth, an Escrow, an Offer, a * PayChannel, a SignerList, a Ticket, or a RippleState. */ -type AccountObject = - | Check - | DepositPreauth - | Escrow - | Hook - | Offer - | PayChannel - | SignerList - | RippleState - | Ticket - | URIToken +export type AccountObject = Exclude< + LedgerEntry, + Amendments | FeeSettings | LedgerHashes +> /** * Response expected from an {@link AccountObjectsRequest}. diff --git a/packages/xrpl/src/models/methods/accountOffers.ts b/packages/xrpl/src/models/methods/accountOffers.ts index 908a0c7115..7b061506ac 100644 --- a/packages/xrpl/src/models/methods/accountOffers.ts +++ b/packages/xrpl/src/models/methods/accountOffers.ts @@ -1,6 +1,6 @@ -import { Amount, LedgerIndex } from '../common' +import { Amount } from '../common' -import { BaseRequest, BaseResponse } from './baseMethod' +import { BaseRequest, BaseResponse, LookupByLedgerRequest } from './baseMethod' /** * The account_offers method retrieves a list of offers made by a given account @@ -9,17 +9,12 @@ import { BaseRequest, BaseResponse } from './baseMethod' * * @category Requests */ -export interface AccountOffersRequest extends BaseRequest { +export interface AccountOffersRequest + extends BaseRequest, + LookupByLedgerRequest { command: 'account_offers' /** A unique identifier for the account, most commonly the account's Address. */ account: string - /** A 20-byte hex string identifying the ledger version to use. */ - ledger_hash?: string - /** - * The ledger index of the ledger to use, or "current", "closed", or - * "validated" to select a ledger dynamically. - */ - ledger_index?: LedgerIndex /** * Limit the number of transactions to retrieve. The server is not required * to honor this value. Must be within the inclusive range 10 to 400. diff --git a/packages/xrpl/src/models/methods/accountTx.ts b/packages/xrpl/src/models/methods/accountTx.ts index a722902cc5..1715737100 100644 --- a/packages/xrpl/src/models/methods/accountTx.ts +++ b/packages/xrpl/src/models/methods/accountTx.ts @@ -1,7 +1,13 @@ -import { LedgerIndex, ResponseOnlyTxInfo } from '../common' +import { + APIVersion, + DEFAULT_API_VERSION, + RIPPLED_API_V1, + RIPPLED_API_V2, + ResponseOnlyTxInfo, +} from '../common' import { Transaction, TransactionMetadata } from '../transactions' -import { BaseRequest, BaseResponse } from './baseMethod' +import { BaseRequest, BaseResponse, LookupByLedgerRequest } from './baseMethod' /** * The account_tx method retrieves a list of transactions that involved the @@ -10,7 +16,7 @@ import { BaseRequest, BaseResponse } from './baseMethod' * * @category Requests */ -export interface AccountTxRequest extends BaseRequest { +export interface AccountTxRequest extends BaseRequest, LookupByLedgerRequest { command: 'account_tx' /** A unique identifier for the account, most commonly the account's address. */ account: string @@ -26,10 +32,6 @@ export interface AccountTxRequest extends BaseRequest { * version available. */ ledger_index_max?: number - /** Use to look for transactions from a single ledger only. */ - ledger_hash?: string - /** Use to look for transactions from a single ledger only. */ - ledger_index?: LedgerIndex /** * If true, return transactions as hex strings instead of JSON. The default is * false. @@ -53,7 +55,9 @@ export interface AccountTxRequest extends BaseRequest { marker?: unknown } -interface AccountTransaction { +export interface AccountTxTransaction< + Version extends APIVersion = typeof DEFAULT_API_VERSION, +> { /** The ledger index of the ledger version that included this transaction. */ ledger_index: number /** @@ -62,7 +66,15 @@ interface AccountTransaction { */ meta: string | TransactionMetadata /** JSON object defining the transaction. */ - tx?: Transaction & ResponseOnlyTxInfo + tx_json?: Version extends typeof RIPPLED_API_V2 + ? Transaction & ResponseOnlyTxInfo + : never + /** JSON object defining the transaction in rippled API v1. */ + tx?: Version extends typeof RIPPLED_API_V1 + ? Transaction & ResponseOnlyTxInfo + : never + /** The hash of the transaction. */ + hash?: Version extends typeof RIPPLED_API_V2 ? string : never /** Unique hashed String representing the transaction. */ tx_blob?: string /** @@ -73,11 +85,11 @@ interface AccountTransaction { } /** - * Expected response from an {@link AccountTxRequest}. - * - * @category Responses + * Base interface for account transaction responses. */ -export interface AccountTxResponse extends BaseResponse { +interface AccountTxResponseBase< + Version extends APIVersion = typeof DEFAULT_API_VERSION, +> extends BaseResponse { result: { /** Unique Address identifying the related account. */ account: string @@ -102,7 +114,7 @@ export interface AccountTxResponse extends BaseResponse { * Array of transactions matching the request's criteria, as explained * below. */ - transactions: AccountTransaction[] + transactions: Array> /** * If included and set to true, the information in this response comes from * a validated ledger version. Otherwise, the information is subject to @@ -111,3 +123,28 @@ export interface AccountTxResponse extends BaseResponse { validated?: boolean } } + +/** + * Expected response from an {@link AccountTxRequest}. + * + * @category Responses + */ +export type AccountTxResponse = AccountTxResponseBase + +/** + * Expected response from an {@link AccountTxRequest} with `api_version` set to 1. + * + * @category ResponsesV1 + */ +export type AccountTxV1Response = AccountTxResponseBase + +/** + * Type to map between the API version and the response type. + * + * @category Responses + */ +export type AccountTxVersionResponseMap< + Version extends APIVersion = typeof DEFAULT_API_VERSION, +> = Version extends typeof RIPPLED_API_V1 + ? AccountTxV1Response + : AccountTxResponse diff --git a/packages/xrpl/src/models/methods/ammInfo.ts b/packages/xrpl/src/models/methods/ammInfo.ts new file mode 100644 index 0000000000..3f503e6e79 --- /dev/null +++ b/packages/xrpl/src/models/methods/ammInfo.ts @@ -0,0 +1,150 @@ +import { Amount, Currency, IssuedCurrencyAmount } from '../common' + +import { BaseRequest, BaseResponse } from './baseMethod' + +/** + * The `amm_info` method gets information about an Automated Market Maker (AMM) instance. + * Returns an {@link AMMInfoResponse}. + * + * @category Requests + */ +export interface AMMInfoRequest extends BaseRequest { + command: 'amm_info' + + /** + * The address of the AMM Account to look up. + */ + amm_account?: string + + /** + * One of the assets of the AMM pool to look up. + */ + asset?: Currency + + /** + * The other asset of the AMM pool. + */ + asset2?: Currency +} + +/** + * Response expected from an {@link AMMInfoRequest}. + * + * @category Responses + */ +export interface AMMInfoResponse extends BaseResponse { + result: { + amm: { + /** + * The address of the AMM Account. + */ + account: string + + /** + * The total amount of one asset in the AMM's pool. + * (Note: This could be asset or asset2 from the request) + */ + amount: Amount + + /** + * The total amount of the other asset in the AMM's pool. + * (Note: This could be asset or asset2 from the request) + */ + amount2: Amount + + /** + * (Omitted for XRP) If true, the amount currency is currently frozen for asset. + */ + asset_frozen?: boolean + + /** + * (Omitted for XRP) If true, the amount currency is currently frozen for asset2. + */ + asset2_frozen?: boolean + + /** + * (May be omitted) An Auction Slot Object describing the current auction slot holder, if there is one. + */ + auction_slot?: { + /** + * The address of the account that owns the auction slot. + */ + account: string + + /** + * A list of additional accounts that the auction slot holder has designated as being eligible + * of the discounted trading fee. + * Each member of this array is an object with one field, account, containing the address of the designated account. + */ + auth_accounts: Array<{ + account: string + }> + + /** + * The discounted trading fee that applies to the auction slot holder, and any eligible accounts + * when trading against this AMM. + * This is always 0. + */ + discounted_fee: number + + /** + * The ISO 8601 UTC timestamp after which this auction slot expires. + * After expired, the auction slot does not apply (but the data can remain in the ledger + * until another transaction replaces it or cleans it up). + */ + expiration: string + + /** + * The amount, in LP Tokens, that the auction slot holder paid to win the auction slot. + * This affects the price to outbid the current slot holder. + */ + price: IssuedCurrencyAmount + + /** + * The current 72-minute time interval this auction slot is in, from 0 to 19. + * The auction slot expires after 24 hours (20 intervals of 72 minutes) + * and affects the cost to outbid the current holder and how much the current holder is refunded if someone outbids them. + */ + time_interval: number + } + + /** + * The total amount of this AMM's LP Tokens outstanding. + */ + lp_token: IssuedCurrencyAmount + + /** + * The AMM's current trading fee, in units of 1/100,000; a value of 1 is equivalent to a 0.001% fee. + */ + trading_fee: number + + /** + * (May be omitted) The current votes for the AMM's trading fee, as Vote Slot Objects. + */ + vote_slots?: Array<{ + account: string + trading_fee: number + vote_weight: number + }> + } + + /** + * The identifying hash of the ledger that was used to generate this + * response. + */ + ledger_hash?: string + + /** + * The ledger index of the ledger version that was used to generate this + * response. + */ + ledger_index?: number + + /** + * If included and set to true, the information in this response comes from + * a validated ledger version. Otherwise, the information is subject to + * change. + */ + validated?: boolean + } +} diff --git a/packages/xrpl/src/models/methods/baseMethod.ts b/packages/xrpl/src/models/methods/baseMethod.ts index a909eb86a5..85dcf90efb 100644 --- a/packages/xrpl/src/models/methods/baseMethod.ts +++ b/packages/xrpl/src/models/methods/baseMethod.ts @@ -1,3 +1,5 @@ +import { LedgerIndex } from '../common' + import type { Request } from '.' export interface BaseRequest { @@ -14,7 +16,14 @@ export interface BaseRequest { api_version?: number } -interface Warning { +export interface LookupByLedgerRequest { + /** A 20-byte hex string for the ledger version to use. */ + ledger_hash?: string + /** The ledger index of the ledger to use, or a shortcut string. */ + ledger_index?: LedgerIndex +} + +export interface ResponseWarning { id: number message: string details?: { [key: string]: string } @@ -26,7 +35,7 @@ export interface BaseResponse { type: 'response' | string result: unknown warning?: 'load' - warnings?: Warning[] + warnings?: ResponseWarning[] forwarded?: boolean api_version?: number } diff --git a/packages/xrpl/src/models/methods/bookOffers.ts b/packages/xrpl/src/models/methods/bookOffers.ts index 7726c97fdb..0482816be7 100644 --- a/packages/xrpl/src/models/methods/bookOffers.ts +++ b/packages/xrpl/src/models/methods/bookOffers.ts @@ -1,9 +1,9 @@ -import { Amount, LedgerIndex } from '../common' +import { Amount } from '../common' import { Offer } from '../ledger' -import { BaseRequest, BaseResponse } from './baseMethod' +import { BaseRequest, BaseResponse, LookupByLedgerRequest } from './baseMethod' -export interface TakerAmount { +export interface BookOfferCurrency { currency: string issuer?: string } @@ -14,15 +14,8 @@ export interface TakerAmount { * * @category Requests */ -export interface BookOffersRequest extends BaseRequest { +export interface BookOffersRequest extends BaseRequest, LookupByLedgerRequest { command: 'book_offers' - /** A 20-byte hex string for the ledger version to use. */ - ledger_hash?: string - /** - * The ledger index of the ledger to use, or a shortcut string to choose a - * ledger automatically. - */ - ledger_index?: LedgerIndex /** * If provided, the server does not provide more than this many offers in the * results. The total number of results returned may be fewer than the limit, @@ -39,13 +32,13 @@ export interface BookOffersRequest extends BaseRequest { * receive, as an object with currency and issuer fields (omit issuer for * XRP), like currency amounts. */ - taker_gets: TakerAmount + taker_gets: BookOfferCurrency /** * Specification of which currency the account taking the offer would pay, as * an object with currency and issuer fields (omit issuer for XRP), like * currency amounts. */ - taker_pays: TakerAmount + taker_pays: BookOfferCurrency } export interface BookOffer extends Offer { diff --git a/packages/xrpl/src/models/methods/depositAuthorized.ts b/packages/xrpl/src/models/methods/depositAuthorized.ts index 9e7942211a..47952ad47a 100644 --- a/packages/xrpl/src/models/methods/depositAuthorized.ts +++ b/packages/xrpl/src/models/methods/depositAuthorized.ts @@ -1,6 +1,4 @@ -import { LedgerIndex } from '../common' - -import { BaseRequest, BaseResponse } from './baseMethod' +import { BaseRequest, BaseResponse, LookupByLedgerRequest } from './baseMethod' /** * The deposit_authorized command indicates whether one account is authorized to @@ -9,19 +7,14 @@ import { BaseRequest, BaseResponse } from './baseMethod' * * @category Requests */ -export interface DepositAuthorizedRequest extends BaseRequest { +export interface DepositAuthorizedRequest + extends BaseRequest, + LookupByLedgerRequest { command: 'deposit_authorized' /** The sender of a possible payment. */ source_account: string /** The recipient of a possible payment. */ destination_account: string - /** A 20-byte hex string for the ledger version to use. */ - ledger_hash?: string - /** - * The ledger index of the ledger to use, or a shortcut string to choose a - * ledger automatically. - */ - ledger_index?: LedgerIndex } /** diff --git a/packages/xrpl/src/models/methods/feature.ts b/packages/xrpl/src/models/methods/feature.ts new file mode 100644 index 0000000000..955be97451 --- /dev/null +++ b/packages/xrpl/src/models/methods/feature.ts @@ -0,0 +1,68 @@ +import { BaseRequest, BaseResponse } from './baseMethod' + +export interface FeatureAllRequest extends BaseRequest { + command: 'feature' + + feature?: never +} + +export interface FeatureOneRequest extends BaseRequest { + command: 'feature' + + feature: string +} + +/** + * The `feature` command returns information about amendments this server knows about, including whether they are enabled. + * Returns an {@link FeatureResponse}. + * + * @category Requests + */ +export type FeatureRequest = FeatureAllRequest | FeatureOneRequest + +export interface FeatureAllResponse extends BaseResponse { + result: { + features: Record< + string, + { + /* + * Whether this amendment is currently enabled in the latest ledger. + */ + enabled: boolean + + /* + * The human-readable name for this amendment, if known. + */ + name: string + + supported: boolean + } + > + } +} + +export interface FeatureOneResponse extends BaseResponse { + result: Record< + string, + { + /* + * Whether this amendment is currently enabled in the latest ledger. + */ + enabled: boolean + + /* + * The human-readable name for this amendment, if known. + */ + name: string + + supported: boolean + } + > +} + +/** + * Response expected from an {@link FeatureRequest}. + * + * @category Responses + */ +export type FeatureResponse = FeatureAllResponse | FeatureOneResponse diff --git a/packages/xrpl/src/models/methods/federatorInfo.ts b/packages/xrpl/src/models/methods/federatorInfo.ts deleted file mode 100644 index bae462aba6..0000000000 --- a/packages/xrpl/src/models/methods/federatorInfo.ts +++ /dev/null @@ -1,78 +0,0 @@ -import { BaseRequest, BaseResponse } from './baseMethod' - -/** - * The `federator_info` command asks the federator for information - * about the door account and other bridge-related information. This - * method only exists on sidechain federators. Expects a response in - * the form of a {@link FederatorInfoResponse}. - * - * @category Requests - */ -export interface FederatorInfoRequest extends BaseRequest { - command: 'federator_info' -} - -/** - * Response expected from a {@link FederatorInfoRequest}. - * - * @category Responses - */ -export interface FederatorInfoResponse extends BaseResponse { - result: { - info: { - mainchain: { - door_status: { - initialized: boolean - status: 'open' | 'opening' | 'closed' | 'closing' - } - last_transaction_sent_seq: number - listener_info: { - state: 'syncing' | 'normal' - } - pending_transactions: Array<{ - amount: string - destination_account: string - signatures: Array<{ - public_key: string - seq: number - }> - }> - sequence: number - tickets: { - initialized: boolean - tickets: Array<{ - status: 'taken' | 'available' - ticket_seq: number - }> - } - } - public_key: string - sidechain: { - door_status: { - initialized: boolean - status: 'open' | 'opening' | 'closed' | 'closing' - } - last_transaction_sent_seq: number - listener_info: { - state: 'syncing' | 'normal' - } - pending_transactions: Array<{ - amount: string - destination_account: string - signatures: Array<{ - public_key: string - seq: number - }> - }> - sequence: number - tickets: { - initialized: boolean - tickets: Array<{ - status: 'taken' | 'available' - ticket_seq: number - }> - } - } - } - } -} diff --git a/packages/xrpl/src/models/methods/gatewayBalances.ts b/packages/xrpl/src/models/methods/gatewayBalances.ts index a150a408ad..569908a722 100644 --- a/packages/xrpl/src/models/methods/gatewayBalances.ts +++ b/packages/xrpl/src/models/methods/gatewayBalances.ts @@ -1,6 +1,4 @@ -import { LedgerIndex } from '../common' - -import { BaseRequest, BaseResponse } from './baseMethod' +import { BaseRequest, BaseResponse, LookupByLedgerRequest } from './baseMethod' /** * The gateway_balances command calculates the total balances issued by a given @@ -21,7 +19,9 @@ import { BaseRequest, BaseResponse } from './baseMethod' * * @category Requests */ -export interface GatewayBalancesRequest extends BaseRequest { +export interface GatewayBalancesRequest + extends BaseRequest, + LookupByLedgerRequest { command: 'gateway_balances' /** The Address to check. This should be the issuing address. */ account: string @@ -35,16 +35,9 @@ export interface GatewayBalancesRequest extends BaseRequest { * Such addresses. */ hotwallet?: string | string[] - /** A 20-byte hex string for the ledger version to use. */ - ledger_hash?: string - /** - * The ledger index of the ledger version to use, or a shortcut string to - * choose a ledger automatically. - */ - ledger_index?: LedgerIndex } -interface Balance { +export interface GatewayBalance { currency: string value: string } @@ -67,12 +60,12 @@ export interface GatewayBalancesResponse extends BaseResponse { * Amounts issued to the hotwallet addresses from the request. The keys are * addresses and the values are arrays of currency amounts they hold. */ - balances?: { [address: string]: Balance[] } + balances?: { [address: string]: GatewayBalance[] } /** * Total amounts held that are issued by others. In the recommended * configuration, the issuing address should have none. */ - assets?: { [address: string]: Balance[] } + assets?: { [address: string]: GatewayBalance[] } /** * The identifying hash of the ledger version that was used to generate * this response. diff --git a/packages/xrpl/src/models/methods/getAggregatePrice.ts b/packages/xrpl/src/models/methods/getAggregatePrice.ts new file mode 100644 index 0000000000..82d9ecfdd3 --- /dev/null +++ b/packages/xrpl/src/models/methods/getAggregatePrice.ts @@ -0,0 +1,119 @@ +import { BaseRequest, BaseResponse } from './baseMethod' + +/** + * The `get_aggregate_price` method retrieves the aggregate price of specified Oracle objects, + * returning three price statistics: mean, median, and trimmed mean. + * Returns an {@link GetAggregatePriceResponse}. + * + * @category Requests + */ +export interface GetAggregatePriceRequest extends BaseRequest { + command: 'get_aggregate_price' + + /** + * The currency code of the asset to be priced. + */ + base_asset: string + + /** + * The currency code of the asset to quote the price of the base asset. + */ + quote_asset: string + + /** + * The oracle identifier. + */ + oracles: Array<{ + /** + * The XRPL account that controls the Oracle object. + */ + account: string + + /** + * A unique identifier of the price oracle for the Account + */ + oracle_document_id: string | number + }> + + /** + * The percentage of outliers to trim. Valid trim range is 1-25. If included, the API returns statistics for the trimmed mean. + */ + trim?: number + + /** + * Defines a time range in seconds for filtering out older price data. Default value is 0, which doesn't filter any data. + */ + trim_threshold?: number +} + +/** + * Response expected from an {@link GetAggregatePriceRequest}. + * + * @category Responses + */ +export interface GetAggregatePriceResponse extends BaseResponse { + result: { + /** + * The statistics from the collected oracle prices. + */ + entire_set: { + /** + * The simple mean. + */ + mean: string + + /** + * The size of the data set to calculate the mean. + */ + size: number + + /** + * The standard deviation. + */ + standard_deviation: string + } + + /** + * The trimmed statistics from the collected oracle prices. Only appears if the trim field was specified in the request. + */ + trimmed_set?: { + /** + * The simple mean of the trimmed data. + */ + mean: string + + /** + * The size of the data to calculate the trimmed mean. + */ + size: number + + /** + * The standard deviation of the trimmed data. + */ + standard_deviation: string + } + + /** + * The median of the collected oracle prices. + */ + median: string + + /** + * The most recent timestamp out of all LastUpdateTime values. + */ + time: number + + /** + * The ledger index of the ledger version that was used to generate this + * response. + */ + ledger_current_index: number + + /** + * If included and set to true, the information in this response comes from + * a validated ledger version. Otherwise, the information is subject to + * change. + */ + validated: boolean + } +} diff --git a/packages/xrpl/src/models/methods/index.ts b/packages/xrpl/src/models/methods/index.ts index 2a91fec464..76a248ea11 100644 --- a/packages/xrpl/src/models/methods/index.ts +++ b/packages/xrpl/src/models/methods/index.ts @@ -1,45 +1,126 @@ +/* eslint-disable no-inline-comments -- Necessary for important note */ +/* eslint-disable max-lines -- There is a lot to export */ +import type { APIVersion, DEFAULT_API_VERSION } from '../common' + import { AccountChannelsRequest, AccountChannelsResponse, + Channel, } from './accountChannels' import { AccountCurrenciesRequest, AccountCurrenciesResponse, } from './accountCurrencies' -import { AccountInfoRequest, AccountInfoResponse } from './accountInfo' -import { AccountLinesRequest, AccountLinesResponse } from './accountLines' +import { + AccountInfoAccountFlags, + AccountInfoRequest, + AccountInfoResponse, + AccountInfoV1Response, + AccountInfoVersionResponseMap, + AccountQueueData, + AccountQueueTransaction, +} from './accountInfo' +import { + AccountLinesRequest, + AccountLinesResponse, + AccountLinesTrustline, +} from './accountLines' import { AccountNamespaceRequest, AccountNamespaceResponse, } from './accountNamespace' -import { AccountNFTsRequest, AccountNFTsResponse } from './accountNFTs' -import { AccountObjectsRequest, AccountObjectsResponse } from './accountObjects' +import { + AccountNFToken, + AccountNFTsRequest, + AccountNFTsResponse, +} from './accountNFTs' +import { + AccountObject, + AccountObjectsRequest, + AccountObjectsResponse, + AccountObjectType, +} from './accountObjects' import { AccountOffer, AccountOffersRequest, AccountOffersResponse, } from './accountOffers' -import { AccountTxRequest, AccountTxResponse } from './accountTx' -import { ErrorResponse } from './baseMethod' -import { BookOffersRequest, BookOffer, BookOffersResponse } from './bookOffers' +import { + AccountTxRequest, + AccountTxResponse, + AccountTxV1Response, + AccountTxVersionResponseMap, + AccountTxTransaction, +} from './accountTx' +import { AMMInfoRequest, AMMInfoResponse } from './ammInfo' +import { + BaseRequest, + BaseResponse, + ErrorResponse, + ResponseWarning, +} from './baseMethod' +import { + BookOffersRequest, + BookOffer, + BookOffersResponse, + BookOfferCurrency, +} from './bookOffers' import { ChannelVerifyRequest, ChannelVerifyResponse } from './channelVerify' import { DepositAuthorizedRequest, DepositAuthorizedResponse, } from './depositAuthorized' -import { FederatorInfoRequest, FederatorInfoResponse } from './federatorInfo' +import { + FeatureAllRequest, + FeatureAllResponse, + FeatureOneRequest, + FeatureOneResponse, + FeatureRequest, + FeatureResponse, +} from './feature' import { FeeRequest, FeeResponse } from './fee' import { + GatewayBalance, GatewayBalancesRequest, GatewayBalancesResponse, } from './gatewayBalances' -import { LedgerRequest, LedgerResponse } from './ledger' +import { + GetAggregatePriceRequest, + GetAggregatePriceResponse, +} from './getAggregatePrice' +import { + LedgerBinary, + LedgerModifiedOfferCreateTransaction, + LedgerQueueData, + LedgerRequest, + LedgerResponse, + LedgerV1Response, + LedgerRequestExpandedTransactionsOnly, + LedgerResponseExpanded, + LedgerRequestExpandedAccountsAndTransactions, + LedgerRequestExpandedAccountsOnly, + LedgerRequestExpandedTransactionsBinary, + LedgerVersionResponseMap, +} from './ledger' import { LedgerClosedRequest, LedgerClosedResponse } from './ledgerClosed' import { LedgerCurrentRequest, LedgerCurrentResponse } from './ledgerCurrent' -import { LedgerDataRequest, LedgerDataResponse } from './ledgerData' +import { + LedgerDataBinaryLedgerEntry, + LedgerDataLabeledLedgerEntry, + LedgerDataLedgerState, + LedgerDataRequest, + LedgerDataResponse, +} from './ledgerData' import { LedgerEntryRequest, LedgerEntryResponse } from './ledgerEntry' import { ManifestRequest, ManifestResponse } from './manifest' import { NFTBuyOffersRequest, NFTBuyOffersResponse } from './nftBuyOffers' +import { + NFTHistoryRequest, + NFTHistoryResponse, + NFTHistoryTransaction, +} from './nftHistory' +import { NFTInfoRequest, NFTInfoResponse } from './nftInfo' +import { NFTsByIssuerRequest, NFTsByIssuerResponse } from './nftsByIssuer' import { NFTSellOffersRequest, NFTSellOffersResponse } from './nftSellOffers' import { NoRippleCheckRequest, NoRippleCheckResponse } from './norippleCheck' import { @@ -48,24 +129,46 @@ import { PathFindCreateRequest, PathFindStatusRequest, PathFindResponse, + PathFindPathOption, } from './pathFind' import { PingRequest, PingResponse } from './ping' import { RandomRequest, RandomResponse } from './random' -import { RipplePathFindRequest, RipplePathFindResponse } from './ripplePathFind' -import { ServerInfoRequest, ServerInfoResponse } from './serverInfo' +import { + RipplePathFindPathOption, + RipplePathFindRequest, + RipplePathFindResponse, + SourceCurrencyAmount, +} from './ripplePathFind' +import { + ServerDefinitionsRequest, + ServerDefinitionsResponse, +} from './serverDefinitions' +import { + JobType, + ServerInfoRequest, + ServerInfoResponse, + ServerState, + StateAccounting, + StateAccountingFinal, +} from './serverInfo' import { ServerStateRequest, ServerStateResponse } from './serverState' import { SubmitRequest, SubmitResponse } from './submit' import { SubmitMultisignedRequest, SubmitMultisignedResponse, + SubmitMultisignedV1Response, + SubmitMultisignedVersionResponseMap, } from './submitMultisigned' import { + BooksSnapshot, ConsensusStream, LedgerStream, + LedgerStreamResponse, OrderBookStream, PathFindStream, PeerStatusStream, Stream, + SubscribeBook, SubscribeRequest, SubscribeResponse, TransactionStream, @@ -75,9 +178,12 @@ import { TransactionEntryRequest, TransactionEntryResponse, } from './transactionEntry' -import { TxRequest, TxResponse } from './tx' -import { UnsubscribeRequest, UnsubscribeResponse } from './unsubscribe' - +import { TxRequest, TxResponse, TxV1Response, TxVersionResponseMap } from './tx' +import { + UnsubscribeBook, + UnsubscribeRequest, + UnsubscribeResponse, +} from './unsubscribe' /** * @category Requests */ @@ -118,42 +224,50 @@ type Request = // server info methods | FeeRequest | ManifestRequest + | ServerDefinitionsRequest | ServerInfoRequest | ServerStateRequest + | FeatureRequest // utility methods | PingRequest | RandomRequest // NFT methods | NFTBuyOffersRequest | NFTSellOffersRequest - // sidechain methods - | FederatorInfoRequest + // clio only methods + | NFTInfoRequest + | NFTHistoryRequest + | NFTsByIssuerRequest + // AMM methods + | AMMInfoRequest + // Price Oracle methods + | GetAggregatePriceRequest /** * @category Responses */ -type Response = +type Response = // account methods | AccountChannelsResponse | AccountCurrenciesResponse - | AccountInfoResponse + | AccountInfoVersionResponseMap | AccountLinesResponse | AccountNamespaceResponse | AccountNFTsResponse | AccountObjectsResponse | AccountOffersResponse - | AccountTxResponse + | AccountTxVersionResponseMap | GatewayBalancesResponse | NoRippleCheckResponse // ledger methods - | LedgerResponse + | LedgerVersionResponseMap | LedgerClosedResponse | LedgerCurrentResponse | LedgerDataResponse | LedgerEntryResponse // transaction methods | SubmitResponse - | SubmitMultisignedResponse + | SubmitMultisignedVersionResponseMap | TransactionEntryResponse | TxResponse // path and order book methods @@ -169,31 +283,237 @@ type Response = // server info methods | FeeResponse | ManifestResponse + | ServerDefinitionsResponse | ServerInfoResponse | ServerStateResponse + | FeatureResponse // utility methods | PingResponse | RandomResponse // NFT methods | NFTBuyOffersResponse | NFTSellOffersResponse - // sidechain methods - | FederatorInfoResponse + // clio only methods + | NFTInfoResponse + | NFTHistoryResponse + | NFTsByIssuerResponse + // AMM methods + | AMMInfoResponse + // Price Oracle methods + | GetAggregatePriceResponse + +export type RequestResponseMap< + T, + Version extends APIVersion = typeof DEFAULT_API_VERSION, +> = T extends AccountChannelsRequest + ? AccountChannelsResponse + : T extends AccountCurrenciesRequest + ? AccountCurrenciesResponse + : T extends AccountInfoRequest + ? AccountInfoVersionResponseMap + : T extends AccountLinesRequest + ? AccountLinesResponse + : T extends AccountNFTsRequest + ? AccountNFTsResponse + : T extends AccountObjectsRequest + ? AccountObjectsResponse + : T extends AccountOffersRequest + ? AccountOffersResponse + : T extends AccountTxRequest + ? AccountTxVersionResponseMap + : T extends AMMInfoRequest + ? AMMInfoResponse + : T extends GatewayBalancesRequest + ? GatewayBalancesResponse + : T extends GetAggregatePriceRequest + ? GetAggregatePriceResponse + : T extends NoRippleCheckRequest + ? NoRippleCheckResponse + : // NOTE: The order of these LedgerRequest types is important + // to get the proper type matching overrides based on parameters set + // in the request. For example LedgerRequestExpandedTransactionsBinary + // should match LedgerRequestExpandedTransactionsOnly, but not + // LedgerRequestExpandedAccountsOnly. This is because the + // LedgerRequestExpandedTransactionsBinary type is a superset of + // LedgerRequestExpandedTransactionsOnly, but not of the other. + // This is why LedgerRequestExpandedTransactionsBinary is listed + // first in the type list. + // + // Here is an example using real data: + // LedgerRequestExpandedTransactionsBinary = { + // command: 'ledger', + // ledger_index: 'validated', + // expand: true, + // transactions: true, + // binary: true, + // } + // LedgerRequestExpandedTransactionsOnly = { + // command: 'ledger', + // ledger_index: 'validated', + // expand: true, + // transactions: true, + // } + // LedgerRequestExpandedAccountsOnly = { + // command: 'ledger', + // ledger_index: 'validated', + // accounts: true, + // expand: true, + // } + // LedgerRequest = { + // command: 'ledger', + // ledger_index: 'validated', + // } + // + // The type with the most parameters set should be listed first. In this + // case LedgerRequestExpandedTransactionsBinary has the most parameters (`expand`, `transactions`, and `binary`) + // set, so it is listed first. When TypeScript tries to match the type of + // a request to a response, it will try to match the request type to the + // response type in the order they are listed. So, if we have a request + // with the following parameters: + // { + // command: 'ledger', + // ledger_index: 'validated', + // expand: true, + // transactions: true, + // binary: true, + // } + // TypeScript will first try to match the request type to + // LedgerRequestExpandedTransactionsBinary, which will succeed. It will + // then try to match the response type to LedgerResponseExpanded, which + // will also succeed. If we had listed LedgerRequestExpandedTransactionsOnly + // first, TypeScript would have tried to match the request type to + // LedgerRequestExpandedTransactionsOnly, which would have succeeded, but + // then we'd get the wrong response type, LedgerResponse, instead of + // LedgerResponseExpanded. + T extends LedgerRequestExpandedTransactionsBinary + ? LedgerVersionResponseMap + : T extends LedgerRequestExpandedAccountsAndTransactions + ? LedgerResponseExpanded + : T extends LedgerRequestExpandedTransactionsOnly + ? LedgerResponseExpanded + : T extends LedgerRequestExpandedAccountsOnly + ? LedgerResponseExpanded + : T extends LedgerRequest + ? LedgerVersionResponseMap + : T extends LedgerClosedRequest + ? LedgerClosedResponse + : T extends LedgerCurrentRequest + ? LedgerCurrentResponse + : T extends LedgerDataRequest + ? LedgerDataResponse + : T extends LedgerEntryRequest + ? LedgerEntryResponse + : T extends SubmitRequest + ? SubmitResponse + : T extends SubmitMultisignedRequest + ? SubmitMultisignedVersionResponseMap + : T extends TransactionEntryRequest + ? TransactionEntryResponse + : T extends TxRequest + ? TxVersionResponseMap + : T extends BookOffersRequest + ? BookOffersResponse + : T extends DepositAuthorizedRequest + ? DepositAuthorizedResponse + : T extends PathFindRequest + ? PathFindResponse + : T extends RipplePathFindRequest + ? RipplePathFindResponse + : T extends ChannelVerifyRequest + ? ChannelVerifyResponse + : T extends SubscribeRequest + ? SubscribeResponse + : T extends UnsubscribeRequest + ? UnsubscribeResponse + : T extends FeeRequest + ? FeeResponse + : T extends ManifestRequest + ? ManifestResponse + : T extends ServerInfoRequest + ? ServerInfoResponse + : T extends ServerStateRequest + ? ServerStateResponse + : T extends ServerDefinitionsRequest + ? ServerDefinitionsResponse + : T extends FeatureAllRequest + ? FeatureAllResponse + : T extends FeatureOneRequest + ? FeatureOneResponse + : T extends PingRequest + ? PingResponse + : T extends RandomRequest + ? RandomResponse + : T extends NFTBuyOffersRequest + ? NFTBuyOffersResponse + : T extends NFTSellOffersRequest + ? NFTSellOffersResponse + : T extends NFTInfoRequest + ? NFTInfoResponse + : T extends NFTsByIssuerRequest + ? NFTsByIssuerResponse + : T extends NFTHistoryRequest + ? NFTHistoryResponse + : Response + +export type MarkerRequest = Request & { + limit?: number + marker?: unknown +} + +export type MarkerResponse< + Version extends APIVersion = typeof DEFAULT_API_VERSION, +> = Response & { + result: { + marker?: unknown + } +} + +export type RequestAllResponseMap< + T, + Version extends APIVersion = typeof DEFAULT_API_VERSION, +> = T extends AccountChannelsRequest + ? AccountChannelsResponse + : T extends AccountLinesRequest + ? AccountLinesResponse + : T extends AccountObjectsRequest + ? AccountObjectsResponse + : T extends AccountOffersRequest + ? AccountOffersResponse + : T extends AccountTxRequest + ? AccountTxVersionResponseMap + : T extends LedgerDataRequest + ? LedgerDataResponse + : T extends BookOffersRequest + ? BookOffersResponse + : MarkerResponse export { + // Allow users to define their own requests and responses. This is useful for releasing experimental versions + BaseRequest, + BaseResponse, Request, Response, - // account methods + ResponseWarning, + // account methods with types + Channel, AccountChannelsRequest, AccountChannelsResponse, AccountCurrenciesRequest, AccountCurrenciesResponse, + AccountInfoAccountFlags, AccountInfoRequest, AccountInfoResponse, + AccountInfoV1Response, + AccountQueueData, + AccountQueueTransaction, AccountLinesRequest, AccountLinesResponse, + AccountLinesTrustline, + AccountNFToken, AccountNFTsRequest, AccountNFTsResponse, + AccountObject, + AccountObjectType, AccountObjectsRequest, AccountObjectsResponse, AccountOffer, @@ -201,51 +521,72 @@ export { AccountOffersResponse, AccountTxRequest, AccountTxResponse, + AccountTxV1Response, + AccountTxTransaction, + GatewayBalance, GatewayBalancesRequest, GatewayBalancesResponse, + GetAggregatePriceRequest, + GetAggregatePriceResponse, NoRippleCheckRequest, NoRippleCheckResponse, // ledger methods LedgerRequest, LedgerResponse, + LedgerV1Response, + LedgerQueueData, + LedgerBinary, + LedgerModifiedOfferCreateTransaction, LedgerClosedRequest, LedgerClosedResponse, LedgerCurrentRequest, LedgerCurrentResponse, LedgerDataRequest, + LedgerDataLabeledLedgerEntry, + LedgerDataBinaryLedgerEntry, LedgerDataResponse, + LedgerDataLedgerState, LedgerEntryRequest, LedgerEntryResponse, - // transaction methods + // transaction methods with types SubmitRequest, SubmitResponse, SubmitMultisignedRequest, SubmitMultisignedResponse, + SubmitMultisignedV1Response, TransactionEntryRequest, TransactionEntryResponse, TxRequest, TxResponse, - // path and order book methods + TxV1Response, + // path and order book methods with types BookOffersRequest, BookOffer, + BookOfferCurrency, BookOffersResponse, DepositAuthorizedRequest, DepositAuthorizedResponse, PathFindRequest, PathFindCreateRequest, PathFindCloseRequest, + PathFindPathOption, PathFindStatusRequest, PathFindResponse, + RipplePathFindPathOption, RipplePathFindRequest, RipplePathFindResponse, + SourceCurrencyAmount, // payment channel methods ChannelVerifyRequest, ChannelVerifyResponse, - // Subscribe methods/streams + // Subscribe methods/streams with types SubscribeRequest, SubscribeResponse, + SubscribeBook, Stream, + BooksSnapshot, LedgerStream, + LedgerStreamResponse, ValidationStream, TransactionStream, PathFindStream, @@ -254,15 +595,24 @@ export { ConsensusStream, UnsubscribeRequest, UnsubscribeResponse, - // server info methods + UnsubscribeBook, + // server info methods with types FeeRequest, FeeResponse, ManifestRequest, ManifestResponse, + ServerDefinitionsRequest, + ServerDefinitionsResponse, ServerInfoRequest, ServerInfoResponse, ServerStateRequest, ServerStateResponse, + JobType, + ServerState, + StateAccountingFinal, + StateAccounting, + FeatureRequest, + FeatureResponse, // utility methods PingRequest, PingResponse, @@ -274,7 +624,15 @@ export { NFTBuyOffersResponse, NFTSellOffersRequest, NFTSellOffersResponse, - // sidechain methods - FederatorInfoRequest, - FederatorInfoResponse, + // clio only methods + NFTInfoRequest, + NFTInfoResponse, + NFTHistoryRequest, + NFTHistoryResponse, + NFTHistoryTransaction, + NFTsByIssuerRequest, + NFTsByIssuerResponse, + // AMM methods + AMMInfoRequest, + AMMInfoResponse, } diff --git a/packages/xrpl/src/models/methods/ledger.ts b/packages/xrpl/src/models/methods/ledger.ts index 798a616019..07c72cc27e 100644 --- a/packages/xrpl/src/models/methods/ledger.ts +++ b/packages/xrpl/src/models/methods/ledger.ts @@ -1,9 +1,10 @@ -import { LedgerIndex } from '../common' -import { Ledger } from '../ledger' +import { APIVersion, DEFAULT_API_VERSION, RIPPLED_API_V1 } from '../common' +import { Ledger, LedgerV1, LedgerVersionMap } from '../ledger/Ledger' +import { LedgerEntryFilter } from '../ledger/LedgerEntry' import { Transaction, TransactionAndMetadata } from '../transactions' import { TransactionMetadata } from '../transactions/metadata' -import { BaseRequest, BaseResponse } from './baseMethod' +import { BaseRequest, BaseResponse, LookupByLedgerRequest } from './baseMethod' /** * Retrieve information about the public ledger. Expects a response in the form @@ -25,15 +26,8 @@ import { BaseRequest, BaseResponse } from './baseMethod' * * @category Requests */ -export interface LedgerRequest extends BaseRequest { +export interface LedgerRequest extends BaseRequest, LookupByLedgerRequest { command: 'ledger' - /** A 20-byte hex string for the ledger version to use. */ - ledger_hash?: string - /** - * The ledger index of the ledger to use, or a shortcut string to choose a - * ledger automatically. - */ - ledger_index?: LedgerIndex /** * Admin required If true, return full information on the entire ledger. * Ignored if you did not specify a ledger version. Defaults to false. @@ -73,22 +67,131 @@ export interface LedgerRequest extends BaseRequest { * array of queued transactions in the results. */ queue?: boolean + /** + * If included, filter results to include only this type of ledger object. + */ + type?: LedgerEntryFilter +} + +/** + * Retrieve information about the public ledger. Expects a response in the form + * of a {@link LedgerResponseExpanded}. Will return full JSON-formatted transaction data instead of string hashes. + * + * @example + * ```ts + * const ledger: LedgerRequest = { + * "id": 14, + * "command": "ledger", + * "ledger_index": "validated", + * "full": false, + * "accounts": false, + * "transactions": false, + * "expand": true, + * "owner_funds": false + * } + * ``` + * + * @category Requests + */ +export interface LedgerRequestExpandedTransactionsOnly extends LedgerRequest { + expand: true + transactions: true } -interface ModifiedMetadata extends TransactionMetadata { - owner_funds: string +/** + * Retrieve information about the public ledger. Expects a response in the form + * of a {@link LedgerResponseExpanded}. Will return full JSON-formatted `accountState` data instead of string hashes. + * + * @example + * ```ts + * const ledger: LedgerRequest = { + * "id": 14, + * "command": "ledger", + * "ledger_index": "validated", + * "full": false, + * "accounts": true, + * "transactions": false, + * "expand": true, + * "owner_funds": false + * } + * ``` + * + * @category Requests + */ +export interface LedgerRequestExpandedAccountsOnly extends LedgerRequest { + expand: true + accounts: true } -interface ModifiedOfferCreateTransaction { +/** + * Retrieve information about the public ledger. Expects a response in the form + * of a {@link LedgerResponseExpanded}. Will return full JSON-formatted `accountState` and `transactions` + * data instead of string hashes. + * + * @example + * ```ts + * const ledger: LedgerRequest = { + * "id": 14, + * "command": "ledger", + * "ledger_index": "validated", + * "full": false, + * "accounts": true, + * "transactions": true, + * "expand": true, + * "owner_funds": false + * } + * ``` + * + * @category Requests + */ +export interface LedgerRequestExpandedAccountsAndTransactions + extends LedgerRequest { + expand: true + accounts: true + transactions: true +} + +/** + * Retrieve information about the public ledger. Expects a response in the form + * of a {@link LedgerResponse}. Will return binary (hexadecimal string) format + * instead of JSON or string hashes for `transactions` data. + * + * @example + * ```ts + * const ledger: LedgerRequest = { + * "id": 14, + * "command": "ledger", + * "ledger_index": "validated", + * "full": false, + * "accounts": true, + * "transactions": true, + * "expand": true, + * "owner_funds": false, + * "binary": true + * } + * ``` + * + * @category Requests + */ +export interface LedgerRequestExpandedTransactionsBinary extends LedgerRequest { + expand: true + transactions: true + binary: true +} + +/** + * Special case transaction definition when the request contains `owner_funds: true`. + */ +export interface LedgerModifiedOfferCreateTransaction { transaction: Transaction - metadata: ModifiedMetadata + metadata: TransactionMetadata & { owner_funds: string } } -interface LedgerQueueData { +export interface LedgerQueueData { account: string tx: | TransactionAndMetadata - | ModifiedOfferCreateTransaction + | LedgerModifiedOfferCreateTransaction | { tx_blob: string } retries_remaining: number preflight_result: string @@ -99,36 +202,94 @@ interface LedgerQueueData { max_spend_drops?: string } -interface BinaryLedger +export interface LedgerBinary extends Omit, 'accountState'> { accountState?: string[] transactions?: string[] } +export interface LedgerBinaryV1 + extends Omit, 'accountState'> { + accountState?: string[] + transactions?: string[] +} + +interface LedgerResponseBase { + /** Unique identifying hash of the entire ledger. */ + ledger_hash: string + /** The Ledger Index of this ledger. */ + ledger_index: number + /** + * If true, this is a validated ledger version. If omitted or set to false, + * this ledger's data is not final. + */ + queue_data?: Array + /** + * Array of objects describing queued transactions, in the same order as + * the queue. If the request specified expand as true, members contain full + * representations of the transactions, in either JSON or binary depending + * on whether the request specified binary as true. + */ + validated?: boolean +} + +interface LedgerResponseResult extends LedgerResponseBase { + /** The complete header data of this {@link Ledger}. */ + ledger: LedgerBinary +} + +interface LedgerV1ResponseResult extends LedgerResponseBase { + /** The complete header data of this {@link Ledger}. */ + ledger: LedgerBinaryV1 +} + /** * Response expected from a {@link LedgerRequest}. + * This is the default request response, triggered when `expand` and `binary` are both false. * * @category Responses */ export interface LedgerResponse extends BaseResponse { - result: { - /** The complete header data of this {@link Ledger}. */ - ledger: Ledger | BinaryLedger - /** Unique identifying hash of the entire ledger. */ - ledger_hash: string - /** The Ledger Index of this ledger. */ - ledger_index: number - /** - * If true, this is a validated ledger version. If omitted or set to false, - * this ledger's data is not final. - */ - queue_data?: Array - /** - * Array of objects describing queued transactions, in the same order as - * the queue. If the request specified expand as true, members contain full - * representations of the transactions, in either JSON or binary depending - * on whether the request specified binary as true. - */ - validated?: boolean - } + result: LedgerResponseResult +} + +/** + * Response expected from a {@link LedgerRequest}. + * This is the default request response, triggered when `expand` and `binary` are both false. + * This is the response for API version 1. + * + * @category ResponsesV1 + */ +export interface LedgerV1Response extends BaseResponse { + result: LedgerV1ResponseResult +} + +/** + * Type to map between the API version and the response type. + * + * @category Responses + */ +export type LedgerVersionResponseMap< + Version extends APIVersion = typeof DEFAULT_API_VERSION, +> = Version extends typeof RIPPLED_API_V1 ? LedgerV1Response : LedgerResponse + +interface LedgerResponseExpandedResult< + Version extends APIVersion = typeof DEFAULT_API_VERSION, +> extends LedgerResponseBase { + /** The complete header data of this {@link Ledger}. */ + ledger: LedgerVersionMap +} + +/** + * Response expected from a {@link LedgerRequest} when the request contains `expanded` is true. See {@link LedgerRequestExpanded}. + * This response will contain full JSON-formatted data instead of string hashes. + * The response will contain either `accounts` or `transactions` or both. + * `binary` will be missing altogether. + * + * @category Responses + */ +export interface LedgerResponseExpanded< + Version extends APIVersion = typeof DEFAULT_API_VERSION, +> extends BaseResponse { + result: LedgerResponseExpandedResult } diff --git a/packages/xrpl/src/models/methods/ledgerData.ts b/packages/xrpl/src/models/methods/ledgerData.ts index ba419c744e..d88a7d2d21 100644 --- a/packages/xrpl/src/models/methods/ledgerData.ts +++ b/packages/xrpl/src/models/methods/ledgerData.ts @@ -1,7 +1,6 @@ -import { LedgerIndex } from '../common' -import { LedgerEntry } from '../ledger' +import { LedgerEntry, LedgerEntryFilter } from '../ledger' -import { BaseRequest, BaseResponse } from './baseMethod' +import { BaseRequest, BaseResponse, LookupByLedgerRequest } from './baseMethod' /** * The `ledger_data` method retrieves contents of the specified ledger. You can @@ -21,15 +20,8 @@ import { BaseRequest, BaseResponse } from './baseMethod' * * @category Requests */ -export interface LedgerDataRequest extends BaseRequest { +export interface LedgerDataRequest extends BaseRequest, LookupByLedgerRequest { command: 'ledger_data' - /** A 20-byte hex string for the ledger version to use. */ - ledger_hash?: string - /** - * The ledger index of the ledger to use, or a shortcut string to choose a - * ledger automatically. - */ - ledger_index?: LedgerIndex /** * If set to true, return ledger objects as hashed hex strings instead of * JSON. @@ -45,15 +37,24 @@ export interface LedgerDataRequest extends BaseRequest { * that response left off. */ marker?: unknown + /** + * If included, filter results to include only this type of ledger object. + */ + type?: LedgerEntryFilter } -type LabeledLedgerEntry = { ledgerEntryType: string } & LedgerEntry +export type LedgerDataLabeledLedgerEntry = { + ledgerEntryType: string +} & LedgerEntry -export interface BinaryLedgerEntry { +export interface LedgerDataBinaryLedgerEntry { data: string } -type State = { index: string } & (BinaryLedgerEntry | LabeledLedgerEntry) +export type LedgerDataLedgerState = { index: string } & ( + | LedgerDataBinaryLedgerEntry + | LedgerDataLabeledLedgerEntry +) /** * The response expected from a {@link LedgerDataRequest}. @@ -70,7 +71,7 @@ export interface LedgerDataResponse extends BaseResponse { * Array of JSON objects containing data from the ledger's state tree, * as defined below. */ - state: State[] + state: LedgerDataLedgerState[] /** * Server-defined value indicating the response is paginated. Pass this to * the next call to resume where this call left off. diff --git a/packages/xrpl/src/models/methods/ledgerEntry.ts b/packages/xrpl/src/models/methods/ledgerEntry.ts index 46a554a0cf..41c3e50f0f 100644 --- a/packages/xrpl/src/models/methods/ledgerEntry.ts +++ b/packages/xrpl/src/models/methods/ledgerEntry.ts @@ -1,7 +1,7 @@ -import { LedgerIndex } from '../common' +import { Currency, XChainBridge } from '../common' import { LedgerEntry } from '../ledger' -import { BaseRequest, BaseResponse } from './baseMethod' +import { BaseRequest, BaseResponse, LookupByLedgerRequest } from './baseMethod' /** * The `ledger_entry` method returns a single ledger object from the XRP Ledger @@ -19,18 +19,29 @@ import { BaseRequest, BaseResponse } from './baseMethod' * * @category Requests */ -export interface LedgerEntryRequest extends BaseRequest { +export interface LedgerEntryRequest extends BaseRequest, LookupByLedgerRequest { command: 'ledger_entry' + /** + * Retrieve an Automated Market Maker (AMM) object from the ledger. + * This is similar to amm_info method, but the ledger_entry version returns only the ledger entry as stored. + */ + amm?: { + asset: { + currency: string + issuer?: string + } + asset2: { + currency: string + issuer?: string + } + } + /** * If true, return the requested ledger object's contents as a hex string in * the XRP Ledger's binary format. Otherwise, return data in JSON format. The * default is false. */ binary?: boolean - /** A 20-byte hex string for the ledger version to use. */ - ledger_hash?: string - /** The ledger index of the ledger to use, or a shortcut string. */ - ledger_index?: LedgerIndex /* * Only one of the following properties should be defined in a single request @@ -63,6 +74,12 @@ export interface LedgerEntryRequest extends BaseRequest { } | string + /** + * Specify a DID object to retrieve. If a string, must be the + * object ID of the DID object, as hexadecimal, or the account ID. + */ + did?: string + /** * The DirectoryNode to retrieve. If a string, must be the object ID of the * directory, as hexadecimal. If an object, requires either `dir_root` o @@ -184,6 +201,35 @@ export interface LedgerEntryRequest extends BaseRequest { } | string + /** + * Must be the object ID of the NFToken page, as hexadecimal + */ + nft_page?: string + + bridge_account?: string + + bridge?: XChainBridge + + xchain_owned_claim_id?: + | { + locking_chain_door: string + locking_chain_issue: Currency + issuing_chain_door: string + issuing_chain_issue: Currency + xchain_owned_claim_id: string | number + } + | string + + xchain_owned_create_account_claim_id?: + | { + locking_chain_door: string + locking_chain_issue: Currency + issuing_chain_door: string + issuing_chain_issue: Currency + xchain_owned_create_account_claim_id: string | number + } + | string + /** * The URIToken object to retrieve. If a string, must be the object ID of the * URIToken, as hexadecimal. If an object, the `issuer` and `uri` @@ -204,7 +250,7 @@ export interface LedgerEntryRequest extends BaseRequest { * * @category Responses */ -export interface LedgerEntryResponse extends BaseResponse { +export interface LedgerEntryResponse extends BaseResponse { result: { /** The unique ID of this ledger object. */ index: string @@ -214,7 +260,7 @@ export interface LedgerEntryResponse extends BaseResponse { * Object containing the data of this ledger object, according to the * ledger format. */ - node?: LedgerEntry + node?: T /** The binary representation of the ledger object, as hexadecimal. */ node_binary?: string validated?: boolean diff --git a/packages/xrpl/src/models/methods/nftBuyOffers.ts b/packages/xrpl/src/models/methods/nftBuyOffers.ts index 24e57eafda..5c64e7881e 100644 --- a/packages/xrpl/src/models/methods/nftBuyOffers.ts +++ b/packages/xrpl/src/models/methods/nftBuyOffers.ts @@ -1,6 +1,6 @@ import { NFTOffer } from '../common' -import { BaseRequest, BaseResponse } from './baseMethod' +import { BaseRequest, BaseResponse, LookupByLedgerRequest } from './baseMethod' /** * The `nft_buy_offers` method retrieves all of buy offers for the specified @@ -8,7 +8,9 @@ import { BaseRequest, BaseResponse } from './baseMethod' * * @category Requests */ -export interface NFTBuyOffersRequest extends BaseRequest { +export interface NFTBuyOffersRequest + extends BaseRequest, + LookupByLedgerRequest { command: 'nft_buy_offers' /** * The unique identifier of an NFToken. The request returns buy offers for this NFToken. diff --git a/packages/xrpl/src/models/methods/nftHistory.ts b/packages/xrpl/src/models/methods/nftHistory.ts new file mode 100644 index 0000000000..22064b3540 --- /dev/null +++ b/packages/xrpl/src/models/methods/nftHistory.ts @@ -0,0 +1,113 @@ +import { ResponseOnlyTxInfo } from '../common' +import { Transaction, TransactionMetadata } from '../transactions' + +import { BaseRequest, BaseResponse, LookupByLedgerRequest } from './baseMethod' + +/** + * The nft_history method retrieves a list of transactions that involved the + * specified NFToken. Expects a response in the form of a {@link + * NFTHistoryResponse}. + * + * @category Requests + */ +export interface NFTHistoryRequest extends BaseRequest, LookupByLedgerRequest { + command: 'nft_history' + /** + * The unique identifier of an NFToken. + */ + nft_id: string + /** + * Use to specify the earliest ledger to include transactions from. A value + * of -1 instructs the server to use the earliest validated ledger version + * available. + */ + ledger_index_min?: number + /** + * Use to specify the most recent ledger to include transactions from. A + * value of -1 instructs the server to use the most recent validated ledger + * version available. + */ + ledger_index_max?: number + /** + * If true, return transactions as hex strings instead of JSON. The default is + * false. + */ + binary?: boolean + /** + * If true, returns values indexed with the oldest ledger first. Otherwise, + * the results are indexed with the newest ledger first. + */ + forward?: boolean + /** + * Default varies. Limit the number of transactions to retrieve. The server + * is not required to honor this value. + */ + limit?: number + /** + * Value from a previous paginated response. Resume retrieving data where + * that response left off. This value is stable even if there is a change in + * the server's range of available ledgers. + */ + marker?: unknown +} + +export interface NFTHistoryTransaction { + /** The ledger index of the ledger version that included this transaction. */ + ledger_index: number + /** + * If binary is True, then this is a hex string of the transaction metadata. + * Otherwise, the transaction metadata is included in JSON format. + */ + meta: string | TransactionMetadata + /** JSON object defining the transaction. */ + tx?: Transaction & ResponseOnlyTxInfo + /** Unique hashed String representing the transaction. */ + tx_blob?: string + /** + * Whether or not the transaction is included in a validated ledger. Any + * transaction not yet in a validated ledger is subject to change. + */ + validated: boolean +} + +/** + * Expected response from an {@link NFTHistoryRequest}. + * + * @category Responses + */ +export interface NFTHistoryResponse extends BaseResponse { + result: { + /** + * The unique identifier of an NFToken. + */ + nft_id: string + /** + * The ledger index of the earliest ledger actually searched for + * transactions. + */ + ledger_index_min: number + /** + * The ledger index of the most recent ledger actually searched for + * transactions. + */ + ledger_index_max: number + /** The limit value used in the request. */ + limit?: number + /** + * Server-defined value indicating the response is paginated. Pass this + * to the next call to resume where this call left off. + */ + marker?: unknown + /** + * Array of transactions matching the request's criteria, as explained + * below. + */ + transactions: NFTHistoryTransaction[] + /** + * If included and set to true, the information in this response comes from + * a validated ledger version. Otherwise, the information is subject to + * change. + */ + validated?: boolean + } +} diff --git a/packages/xrpl/src/models/methods/nftInfo.ts b/packages/xrpl/src/models/methods/nftInfo.ts new file mode 100644 index 0000000000..150f068c27 --- /dev/null +++ b/packages/xrpl/src/models/methods/nftInfo.ts @@ -0,0 +1,25 @@ +import { NFToken } from '../common' + +import { BaseRequest, BaseResponse, LookupByLedgerRequest } from './baseMethod' + +/** + * The `nft_info` method retrieves information about an NFToken. + * + * @category Requests + */ +export interface NFTInfoRequest extends BaseRequest, LookupByLedgerRequest { + command: 'nft_info' + /** + * The unique identifier of an NFToken. + */ + nft_id: string +} + +/** + * Response expected from an {@link NFTInfoRequest}. + * + * @category Responses + */ +export interface NFTInfoResponse extends BaseResponse { + result: NFToken +} diff --git a/packages/xrpl/src/models/methods/nftSellOffers.ts b/packages/xrpl/src/models/methods/nftSellOffers.ts index 7e56ad4119..93788872b2 100644 --- a/packages/xrpl/src/models/methods/nftSellOffers.ts +++ b/packages/xrpl/src/models/methods/nftSellOffers.ts @@ -1,6 +1,6 @@ import { NFTOffer } from '../common' -import { BaseRequest, BaseResponse } from './baseMethod' +import { BaseRequest, BaseResponse, LookupByLedgerRequest } from './baseMethod' /** * The `nft_sell_offers` method retrieves all of sell offers for the specified @@ -8,7 +8,9 @@ import { BaseRequest, BaseResponse } from './baseMethod' * * @category Requests */ -export interface NFTSellOffersRequest extends BaseRequest { +export interface NFTSellOffersRequest + extends BaseRequest, + LookupByLedgerRequest { command: 'nft_sell_offers' /** * The unique identifier of an NFToken. The request returns sell offers for this NFToken. diff --git a/packages/xrpl/src/models/methods/nftsByIssuer.ts b/packages/xrpl/src/models/methods/nftsByIssuer.ts new file mode 100644 index 0000000000..ac46a4b7b4 --- /dev/null +++ b/packages/xrpl/src/models/methods/nftsByIssuer.ts @@ -0,0 +1,68 @@ +import { NFToken } from '../common' + +import { BaseRequest, BaseResponse, LookupByLedgerRequest } from './baseMethod' + +/** + * The nfts_by_issuer method returns a list of NFTokens issued by the account. + * The order of the NFTs is not associated with the date the NFTs were minted. + * Expects a response in the form of a {@link + * NFTsByIssuerResponse}. + * + * @category Requests + */ +export interface NFTsByIssuerRequest + extends BaseRequest, + LookupByLedgerRequest { + command: 'nfts_by_issuer' + /** + * A unique identifier for the account, most commonly the account's address + */ + issuer: string + /** + * Value from a previous paginated response. Resume retrieving data where + * that response left off. This value is stable even if there is a change in + * the server's range of available ledgers. + */ + marker?: unknown + /** + * Filter NFTs issued by this issuer that have this taxon. + */ + nft_taxon?: number + /** + * Default varies. Limit the number of transactions to retrieve. The server + * is not required to honor this value. + */ + limit?: number +} + +/** + * Expected response from an {@link NFTsByIssuerRequest}. + * + * @category Responses + */ +export interface NFTsByIssuerResponse extends BaseResponse { + result: { + /** + * The unique identifier for the account, most commonly the account's address + */ + issuer: string + /** + * A list of NFTs issued by the account. + * The order of the NFTs is not associated with the date the NFTs were minted. + */ + nfts: NFToken[] + /** + * Server-defined value indicating the response is paginated. Pass this + * to the next call to resume where this call left off. + */ + marker?: unknown + /** + * The limit value used in the request. + */ + limit?: number + /** + * Use to filter NFTs issued by this issuer that have this taxon. + */ + nft_taxon?: number + } +} diff --git a/packages/xrpl/src/models/methods/pathFind.ts b/packages/xrpl/src/models/methods/pathFind.ts index 92b0946030..02e9f07d6e 100644 --- a/packages/xrpl/src/models/methods/pathFind.ts +++ b/packages/xrpl/src/models/methods/pathFind.ts @@ -55,7 +55,7 @@ export type PathFindRequest = | PathFindCloseRequest | PathFindStatusRequest -interface PathOption { +export interface PathFindPathOption { /** Array of arrays of objects defining payment paths. */ paths_computed: Path[] /** @@ -82,7 +82,7 @@ export interface PathFindResponse extends BaseResponse { * empty, then no paths were found connecting the source and destination * accounts. */ - alternatives: PathOption[] + alternatives: PathFindPathOption[] /** Unique address of the account that would receive a transaction. */ destination_account: string /** Currency amount provided in the WebSocket request. */ diff --git a/packages/xrpl/src/models/methods/ripplePathFind.ts b/packages/xrpl/src/models/methods/ripplePathFind.ts index c90acca85d..69c0652556 100644 --- a/packages/xrpl/src/models/methods/ripplePathFind.ts +++ b/packages/xrpl/src/models/methods/ripplePathFind.ts @@ -1,8 +1,8 @@ -import { Amount, LedgerIndex, Path } from '../common' +import { Amount, Path } from '../common' -import { BaseRequest, BaseResponse } from './baseMethod' +import { BaseRequest, BaseResponse, LookupByLedgerRequest } from './baseMethod' -interface SourceCurrencyAmount { +export interface SourceCurrencyAmount { currency: string issuer?: string } @@ -14,7 +14,9 @@ interface SourceCurrencyAmount { * * @category Requests */ -export interface RipplePathFindRequest extends BaseRequest { +export interface RipplePathFindRequest + extends BaseRequest, + LookupByLedgerRequest { command: 'ripple_path_find' /** Unique address of the account that would send funds in a transaction. */ source_account: string @@ -35,17 +37,10 @@ export interface RipplePathFindRequest extends BaseRequest { * entry in the array should be a JSON object with a mandatory currency field * and optional issuer field, like how currency amounts are specified. */ - source_currencies?: SourceCurrencyAmount - /** A 20-byte hex string for the ledger version to use. */ - ledger_hash?: string - /** - * The ledger index of the ledger to use, or a shortcut string to choose a - * ledger automatically. - */ - ledger_index?: LedgerIndex + source_currencies?: SourceCurrencyAmount[] } -interface PathOption { +export interface RipplePathFindPathOption { /** Array of arrays of objects defining payment paths. */ paths_computed: Path[] /** @@ -67,7 +62,7 @@ export interface RipplePathFindResponse extends BaseResponse { * empty, then there are no paths connecting the source and destination * accounts. */ - alternatives: PathOption[] + alternatives: RipplePathFindPathOption[] /** Unique address of the account that would receive a payment transaction. */ destination_account: string /** diff --git a/packages/xrpl/src/models/methods/serverDefinitions.ts b/packages/xrpl/src/models/methods/serverDefinitions.ts new file mode 100644 index 0000000000..9f786bef93 --- /dev/null +++ b/packages/xrpl/src/models/methods/serverDefinitions.ts @@ -0,0 +1,61 @@ +import { BaseRequest, BaseResponse } from './baseMethod' + +/** + * The `server_definitions` method retrieves information about the definition + * enums available in this rippled node. Expects a response in the form of a + * {@link ServerDefinitionsResponse}. + * + * @category Requests + */ +export interface ServerDefinitionsRequest extends BaseRequest { + command: 'server_definitions' + /** + * The hash of a `server_definitions` response. + */ + hash?: string +} + +/** + * Response expected from an {@link ServerDefinitionsRequest}. + * + * @category Responses + */ +export interface ServerDefinitionsResponse extends BaseResponse { + result: { + hash: string + } & ( + | { + FIELDS: Array< + [ + string, + { + nth: number + isVLEncoded: boolean + isSerialized: boolean + isSigningField: boolean + type: string + }, + ] + > + + LEDGER_ENTRY_TYPES: Record + + TRANSACTION_RESULTS: Record + + TRANSACTION_TYPES: Record + + TYPES: Record + } + | { + FIELDS?: never + + LEDGER_ENTRY_TYPES?: never + + TRANSACTION_RESULTS?: never + + TRANSACTION_TYPES?: never + + TYPES?: never + } + ) +} diff --git a/packages/xrpl/src/models/methods/serverInfo.ts b/packages/xrpl/src/models/methods/serverInfo.ts index 5bd3dd2b6d..ec637a7885 100644 --- a/packages/xrpl/src/models/methods/serverInfo.ts +++ b/packages/xrpl/src/models/methods/serverInfo.ts @@ -22,7 +22,7 @@ export type ServerState = export interface StateAccounting { duration_us: string - transitions: number + transitions: string } export interface JobType { @@ -33,6 +33,22 @@ export interface JobType { in_progress?: number } +export type protocol = + | 'http' + | 'https' + | 'grpc' + | 'peer' + | 'ws' + | 'ws2' + | 'wss' + | 'wss2' + +export interface ServerPort { + port: string + /** The values in protocol are sorted in alphabetical order */ + protocol: protocol[] +} + // The states for validating and proposing do not exist in the field state_accounting // See https://github.com/XRPLF/rippled/blob/develop/src/ripple/app/misc/NetworkOPs.cpp#L4545 // https://github.com/XRPLF/rippled/blob/develop/src/ripple/app/misc/NetworkOPs.h#L66 @@ -181,6 +197,11 @@ export interface ServerInfoResponse extends BaseResponse { network_ledger?: 'waiting' /** How many other rippled servers this one is currently connected to. */ peers: number + /** + * What Websocket/RPC ports rippled is listening on. This allows crawlers to build a richer topology without needing to + * port-scan nodes. For non-admin users (including peers), info about admin ports is excluded. + */ + ports: ServerPort[] /** * Public key used to verify this server for peer-to-peer communications. * This node key pair is automatically generated by the server the first diff --git a/packages/xrpl/src/models/methods/submit.ts b/packages/xrpl/src/models/methods/submit.ts index 7de1b844bb..fd4a4a135e 100644 --- a/packages/xrpl/src/models/methods/submit.ts +++ b/packages/xrpl/src/models/methods/submit.ts @@ -1,4 +1,4 @@ -import { Transaction } from '../transactions' +import { SubmittableTransaction } from '../transactions' import { BaseRequest, BaseResponse } from './baseMethod' @@ -39,7 +39,7 @@ export interface SubmitResponse extends BaseResponse { /** The complete transaction in hex string format. */ tx_blob: string /** The complete transaction in JSON format. */ - tx_json: Transaction & { hash?: string } + tx_json: SubmittableTransaction & { hash?: string } /** * The value true indicates that the transaction was applied, queued, * broadcast, or kept for later. The value `false` indicates that none of diff --git a/packages/xrpl/src/models/methods/submitMultisigned.ts b/packages/xrpl/src/models/methods/submitMultisigned.ts index 2398418b15..da220bdc0c 100644 --- a/packages/xrpl/src/models/methods/submitMultisigned.ts +++ b/packages/xrpl/src/models/methods/submitMultisigned.ts @@ -1,3 +1,4 @@ +import { APIVersion, DEFAULT_API_VERSION, RIPPLED_API_V1 } from '../common' import { Transaction } from '../transactions' import { BaseRequest, BaseResponse } from './baseMethod' @@ -14,7 +15,7 @@ export interface SubmitMultisignedRequest extends BaseRequest { /** * Transaction in JSON format with an array of Signers. To be successful, the * weights of the signatures must be equal or higher than the quorum of the. - * {@link SignerList}. + * {@link Transaction Type/SignerList}. */ tx_json: Transaction /** @@ -24,28 +25,59 @@ export interface SubmitMultisignedRequest extends BaseRequest { fail_hard?: boolean } +/** + * Common properties for multisigned transaction responses. + * + * @category Responses + */ +interface BaseSubmitMultisignedResult { + /** + * Code indicating the preliminary result of the transaction, for example. + * `tesSUCCESS`. + */ + engine_result: string + /** + * Numeric code indicating the preliminary result of the transaction, + * directly correlated to `engine_result`. + */ + engine_result_code: number + /** Human-readable explanation of the preliminary transaction result. */ + engine_result_message: string + /** The complete transaction in hex string format. */ + tx_blob: string + /** The complete transaction in JSON format. */ + tx_json: Transaction +} + /** * Response expected from a {@link SubmitMultisignedRequest}. * * @category Responses */ export interface SubmitMultisignedResponse extends BaseResponse { - result: { - /** - * Code indicating the preliminary result of the transaction, for example. - * `tesSUCCESS` . - */ - engine_result: string - /** - * Numeric code indicating the preliminary result of the transaction, - * directly correlated to `engine_result`. - */ - engine_result_code: number - /** Human-readable explanation of the preliminary transaction result. */ - engine_result_message: string - /** The complete transaction in hex string format. */ - tx_blob: string - /** The complete transaction in JSON format. */ + result: BaseSubmitMultisignedResult & { + hash?: string + } +} + +/** + * Response expected from a {@link SubmitMultisignedRequest} using api_version 1. + * + * @category ResponsesV1 + */ +export interface SubmitMultisignedV1Response extends BaseResponse { + result: BaseSubmitMultisignedResult & { tx_json: Transaction & { hash?: string } } } + +/** + * Type to map between the API version and the response type. + * + * @category Responses + */ +export type SubmitMultisignedVersionResponseMap< + Version extends APIVersion = typeof DEFAULT_API_VERSION, +> = Version extends typeof RIPPLED_API_V1 + ? SubmitMultisignedV1Response + : SubmitMultisignedResponse diff --git a/packages/xrpl/src/models/methods/subscribe.ts b/packages/xrpl/src/models/methods/subscribe.ts index 33df74b771..acc0c2c050 100644 --- a/packages/xrpl/src/models/methods/subscribe.ts +++ b/packages/xrpl/src/models/methods/subscribe.ts @@ -10,8 +10,9 @@ import { OfferCreate, Transaction } from '../transactions' import { TransactionMetadata } from '../transactions/metadata' import type { BaseRequest, BaseResponse } from './baseMethod' +import { ManifestRequest } from './manifest' -interface Book { +export interface SubscribeBook { /** * Specification of which currency the account taking the Offer would * receive, as a currency object with no amount. @@ -38,7 +39,7 @@ interface Book { /** * The subscribe method requests periodic notifications from the server when - * certain events happen. Expects a response in the form of a. + * certain events happen. Expects a response in the form of a * {@link SubscribeResponse}. * * @category Requests @@ -60,7 +61,7 @@ export interface SubscribeRequest extends BaseRequest { * Array of objects defining order books to monitor for updates, as detailed * Below. */ - books?: Book[] + books?: SubscribeBook[] /** * URL where the server sends a JSON-RPC callbacks for each event. * Admin-only. @@ -72,7 +73,7 @@ export interface SubscribeRequest extends BaseRequest { url_password?: string } -type BooksSnapshot = Offer[] +export type BooksSnapshot = Offer[] /** * Response expected from a {@link SubscribeRequest}. @@ -102,8 +103,8 @@ export interface LedgerStream extends BaseStream { * Transaction cost applies starting with the following ledger version. */ fee_base: number - /** The reference transaction cost in "fee units". */ - fee_ref: number + /** The reference transaction cost in "fee units". This is not returned after the SetFees amendment is enabled. */ + fee_ref?: number /** The identifying hash of the ledger version that was closed. */ ledger_hash: string /** The ledger index of the ledger that was closed. */ @@ -143,8 +144,8 @@ export interface LedgerStreamResponse { * Transaction cost applies starting with the following ledger version. */ fee_base: number - /** The reference transaction cost in "fee units". */ - fee_ref: number + /** The reference transaction cost in "fee units". This is not returned after the SetFees amendment is enabled. */ + fee_ref?: number /** The identifying hash of the ledger version that was closed. */ ledger_hash: string /** The ledger index of the ledger that was closed. */ @@ -433,3 +434,38 @@ export type Stream = | PeerStatusStream | OrderBookStream | ConsensusStream + +export type EventTypes = + | 'connected' + | 'disconnected' + | 'ledgerClosed' + | 'validationReceived' + | 'transaction' + | 'peerStatusChange' + | 'consensusPhase' + | 'manifestReceived' + | 'path_find' + | 'error' + +export type OnEventToListenerMap = T extends 'connected' + ? () => void + : T extends 'disconnected' + ? (code: number) => void + : T extends 'ledgerClosed' + ? (ledger: LedgerStream) => void + : T extends 'validationReceived' + ? (validation: ValidationStream) => void + : T extends 'transaction' + ? (transaction: TransactionStream) => void + : T extends 'peerStatusChange' + ? (peerStatus: PeerStatusStream) => void + : T extends 'consensusPhase' + ? (consensus: ConsensusStream) => void + : T extends 'manifestReceived' + ? (manifest: ManifestRequest) => void + : T extends 'path_find' + ? (path: PathFindStream) => void + : T extends 'error' + ? // eslint-disable-next-line @typescript-eslint/no-explicit-any -- needs to be any for overload + (...err: any[]) => void + : (...args: never[]) => void diff --git a/packages/xrpl/src/models/methods/transactionEntry.ts b/packages/xrpl/src/models/methods/transactionEntry.ts index d0dbe3a69b..feee70fd79 100644 --- a/packages/xrpl/src/models/methods/transactionEntry.ts +++ b/packages/xrpl/src/models/methods/transactionEntry.ts @@ -1,7 +1,7 @@ -import { LedgerIndex, ResponseOnlyTxInfo } from '../common' +import { ResponseOnlyTxInfo } from '../common' import { Transaction, TransactionMetadata } from '../transactions' -import { BaseRequest, BaseResponse } from './baseMethod' +import { BaseRequest, BaseResponse, LookupByLedgerRequest } from './baseMethod' /** * The `transaction_entry` method retrieves information on a single transaction @@ -10,15 +10,11 @@ import { BaseRequest, BaseResponse } from './baseMethod' * * @category Requests */ -export interface TransactionEntryRequest extends BaseRequest { +export interface TransactionEntryRequest + extends BaseRequest, + LookupByLedgerRequest { command: 'transaction_entry' - /** A 20-byte hex string for the ledger version to use. */ - ledger_hash?: string - /** - * The ledger index of the ledger to use, or a shortcut string to choose a - * ledger automatically. - */ - ledger_index?: LedgerIndex + /** Unique hash of the transaction you are looking up. */ tx_hash: string } diff --git a/packages/xrpl/src/models/methods/tx.ts b/packages/xrpl/src/models/methods/tx.ts index 3ef586a60e..c8df683fb2 100644 --- a/packages/xrpl/src/models/methods/tx.ts +++ b/packages/xrpl/src/models/methods/tx.ts @@ -1,4 +1,11 @@ +import { + APIVersion, + DEFAULT_API_VERSION, + RIPPLED_API_V1, + RIPPLED_API_V2, +} from '../common' import { Transaction, TransactionMetadata } from '../transactions' +import { BaseTransaction } from '../transactions/common' import { BaseRequest, BaseResponse } from './baseMethod' @@ -10,7 +17,14 @@ import { BaseRequest, BaseResponse } from './baseMethod' */ export interface TxRequest extends BaseRequest { command: 'tx' - transaction: string + /** + * The transaction hash to look up. Exactly one of `transaction` or `ctid` must be specified for a TxRequest. + */ + transaction?: string + /** + * The Concise Transaction ID to look up. Exactly one of `transaction` or `ctid` must be specified for a TxRequest. + */ + ctid?: string /** * If true, return transaction data and metadata as binary serialized to * hexadecimal strings. If false, return transaction data and metadata as. @@ -33,29 +47,55 @@ export interface TxRequest extends BaseRequest { max_ledger?: number } +/** + * Common properties of transaction responses. + * + * @category Responses + */ +interface BaseTxResult< + Version extends APIVersion = typeof DEFAULT_API_VERSION, + T extends BaseTransaction = Transaction, +> { + /** The SHA-512 hash of the transaction. */ + hash: string + /** + * The Concise Transaction Identifier of the transaction (16-byte hex string) + */ + ctid?: string + /** The ledger index of the ledger that includes this transaction. */ + ledger_index?: number + /** Unique hashed string Transaction metadata blob, which describes the results of the transaction. + * Can be undefined if a transaction has not been validated yet. This field is omitted if binary + * binary format is not requested. */ + meta_blob?: Version extends typeof RIPPLED_API_V2 + ? TransactionMetadata | string + : never + /** Transaction metadata, which describes the results of the transaction. + * Can be undefined if a transaction has not been validated yet. */ + meta?: TransactionMetadata | string + /** + * If true, this data comes from a validated ledger version; if omitted or. + * Set to false, this data is not final. + */ + validated?: boolean + /** + * The time the transaction was closed, in seconds since the Ripple Epoch. + */ + close_time_iso?: string + /** + * This number measures the number of seconds since the "Ripple Epoch" of January 1, 2000 (00:00 UTC) + */ + date?: number +} + /** * Response expected from a {@link TxRequest}. * * @category Responses */ -export interface TxResponse extends BaseResponse { - result: { - /** The SHA-512 hash of the transaction. */ - hash: string - /** The ledger index of the ledger that includes this transaction. */ - ledger_index?: number - /** Transaction metadata, which describes the results of the transaction. */ - meta?: TransactionMetadata | string - /** - * If true, this data comes from a validated ledger version; if omitted or. - * Set to false, this data is not final. - */ - validated?: boolean - /** - * This number measures the number of seconds since the "Ripple Epoch" of January 1, 2000 (00:00 UTC) - */ - date?: number - } & Transaction +export interface TxResponse + extends BaseResponse { + result: BaseTxResult & { tx_json: T } /** * If true, the server was able to search all of the specified ledger * versions, and the transaction was in none of them. If false, the server did @@ -64,3 +104,29 @@ export interface TxResponse extends BaseResponse { */ searched_all?: boolean } + +/** + * Response expected from a {@link TxRequest} using API version 1. + * + * @category ResponsesV1 + */ +export interface TxV1Response + extends BaseResponse { + result: BaseTxResult & T + /** + * If true, the server was able to search all of the specified ledger + * versions, and the transaction was in none of them. If false, the server did + * not have all of the specified ledger versions available, so it is not sure. + * If one of them might contain the transaction. + */ + searched_all?: boolean +} + +/** + * Type to map between the API version and the response type. + * + * @category Responses + */ +export type TxVersionResponseMap< + Version extends APIVersion = typeof DEFAULT_API_VERSION, +> = Version extends typeof RIPPLED_API_V1 ? TxV1Response : TxResponse diff --git a/packages/xrpl/src/models/methods/unsubscribe.ts b/packages/xrpl/src/models/methods/unsubscribe.ts index ecb4b1955c..405d85eb9a 100644 --- a/packages/xrpl/src/models/methods/unsubscribe.ts +++ b/packages/xrpl/src/models/methods/unsubscribe.ts @@ -2,7 +2,7 @@ import { Currency, StreamType } from '../common' import type { BaseRequest, BaseResponse } from './baseMethod' -interface Book { +export interface UnsubscribeBook { taker_gets: Currency taker_pays: Currency both?: boolean @@ -36,7 +36,7 @@ export interface UnsubscribeRequest extends BaseRequest { * Array of objects defining order books to unsubscribe from, as explained * below. */ - books?: Book[] + books?: UnsubscribeBook[] } /** diff --git a/packages/xrpl/src/models/transactions/AMMBid.ts b/packages/xrpl/src/models/transactions/AMMBid.ts new file mode 100644 index 0000000000..046aeacceb --- /dev/null +++ b/packages/xrpl/src/models/transactions/AMMBid.ts @@ -0,0 +1,139 @@ +import { ValidationError } from '../../errors' +import { AuthAccount, Currency, IssuedCurrencyAmount } from '../common' + +import { + BaseTransaction, + isAmount, + isCurrency, + validateBaseTransaction, +} from './common' + +const MAX_AUTH_ACCOUNTS = 4 + +/** + * Bid on an Automated Market Maker's (AMM's) auction slot. + * + * If you win, you can trade against the AMM at a discounted fee until you are outbid or 24 hours have passed. + * If you are outbid before 24 hours have passed, you are refunded part of the cost of your bid based on how much time remains. + * You bid using the AMM's LP Tokens; the amount of a winning bid is returned to the AMM, + * decreasing the outstanding balance of LP Tokens. + */ +export interface AMMBid extends BaseTransaction { + TransactionType: 'AMMBid' + + /** + * The definition for one of the assets in the AMM's pool. + */ + Asset: Currency + + /** + * The definition for the other asset in the AMM's pool. + */ + Asset2: Currency + + /** + * Pay at least this LPToken amount for the slot. + * Setting this value higher makes it harder for others to outbid you. + * If omitted, pay the minimum necessary to win the bid. + */ + BidMin?: IssuedCurrencyAmount + + /** + * Pay at most this LPToken amount for the slot. + * If the cost to win the bid is higher than this amount, the transaction fails. + * If omitted, pay as much as necessary to win the bid. + */ + BidMax?: IssuedCurrencyAmount + + /** + * A list of up to 4 additional accounts that you allow to trade at the discounted fee. + * This cannot include the address of the transaction sender. + */ + AuthAccounts?: AuthAccount[] +} + +/** + * Verify the form and type of an AMMBid at runtime. + * + * @param tx - An AMMBid Transaction. + * @throws When the AMMBid is Malformed. + */ +export function validateAMMBid(tx: Record): void { + validateBaseTransaction(tx) + + if (tx.Asset == null) { + throw new ValidationError('AMMBid: missing field Asset') + } + + if (!isCurrency(tx.Asset)) { + throw new ValidationError('AMMBid: Asset must be a Currency') + } + + if (tx.Asset2 == null) { + throw new ValidationError('AMMBid: missing field Asset2') + } + + if (!isCurrency(tx.Asset2)) { + throw new ValidationError('AMMBid: Asset2 must be a Currency') + } + + if (tx.BidMin != null && !isAmount(tx.BidMin)) { + throw new ValidationError('AMMBid: BidMin must be an Amount') + } + + if (tx.BidMax != null && !isAmount(tx.BidMax)) { + throw new ValidationError('AMMBid: BidMax must be an Amount') + } + + if (tx.AuthAccounts != null) { + if (!Array.isArray(tx.AuthAccounts)) { + throw new ValidationError( + `AMMBid: AuthAccounts must be an AuthAccount array`, + ) + } + if (tx.AuthAccounts.length > MAX_AUTH_ACCOUNTS) { + throw new ValidationError( + `AMMBid: AuthAccounts length must not be greater than ${MAX_AUTH_ACCOUNTS}`, + ) + } + validateAuthAccounts( + // eslint-disable-next-line @typescript-eslint/consistent-type-assertions -- Only used by JS + tx.Account as string, + // eslint-disable-next-line @typescript-eslint/consistent-type-assertions -- Only used by JS + tx.AuthAccounts as Array>, + ) + } +} + +function validateAuthAccounts( + senderAddress: string, + authAccounts: Array>, +): boolean { + for (const authAccount of authAccounts) { + if ( + authAccount.AuthAccount == null || + typeof authAccount.AuthAccount !== 'object' + ) { + throw new ValidationError(`AMMBid: invalid AuthAccounts`) + } + // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- used for null check + // @ts-expect-error -- used for null check + if (authAccount.AuthAccount.Account == null) { + throw new ValidationError(`AMMBid: invalid AuthAccounts`) + } + // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- used for null check + // @ts-expect-error -- used for null check + if (typeof authAccount.AuthAccount.Account !== 'string') { + throw new ValidationError(`AMMBid: invalid AuthAccounts`) + } + // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- used for null check + // @ts-expect-error -- used for null check + if (authAccount.AuthAccount.Account === senderAddress) { + throw new ValidationError( + `AMMBid: AuthAccounts must not include sender's address`, + ) + } + } + + return true +} diff --git a/packages/xrpl/src/models/transactions/AMMCreate.ts b/packages/xrpl/src/models/transactions/AMMCreate.ts new file mode 100644 index 0000000000..8924fa75ff --- /dev/null +++ b/packages/xrpl/src/models/transactions/AMMCreate.ts @@ -0,0 +1,80 @@ +import { ValidationError } from '../../errors' +import { Amount } from '../common' + +import { BaseTransaction, isAmount, validateBaseTransaction } from './common' + +export const AMM_MAX_TRADING_FEE = 1000 + +/** + * Create a new Automated Market Maker (AMM) instance for trading a pair of assets (fungible tokens or XRP). + * + * Creates both an AMM object and a special AccountRoot object to represent the AMM. + * Also transfers ownership of the starting balance of both assets from the sender to the created AccountRoot + * and issues an initial balance of liquidity provider tokens (LP Tokens) from the AMM account to the sender. + * + * CAUTION: When you create the AMM, you should fund it with (approximately) equal-value amounts of each asset. + * Otherwise, other users can profit at your expense by trading with this AMM (performing arbitrage). + * The currency risk that liquidity providers take on increases with the volatility (potential for imbalance) of the asset pair. + * The higher the trading fee, the more it offsets this risk, + * so it's best to set the trading fee based on the volatility of the asset pair. + */ +export interface AMMCreate extends BaseTransaction { + TransactionType: 'AMMCreate' + + /** + * The first of the two assets to fund this AMM with. This must be a positive amount. + */ + Amount: Amount + + /** + * The second of the two assets to fund this AMM with. This must be a positive amount. + */ + Amount2: Amount + + /** + * The fee to charge for trades against this AMM instance, in units of 1/100,000; a value of 1 is equivalent to 0.001%. + * The maximum value is 1000, indicating a 1% fee. + * The minimum value is 0. + */ + TradingFee: number +} + +/** + * Verify the form and type of an AMMCreate at runtime. + * + * @param tx - An AMMCreate Transaction. + * @throws When the AMMCreate is Malformed. + */ +export function validateAMMCreate(tx: Record): void { + validateBaseTransaction(tx) + + if (tx.Amount == null) { + throw new ValidationError('AMMCreate: missing field Amount') + } + + if (!isAmount(tx.Amount)) { + throw new ValidationError('AMMCreate: Amount must be an Amount') + } + + if (tx.Amount2 == null) { + throw new ValidationError('AMMCreate: missing field Amount2') + } + + if (!isAmount(tx.Amount2)) { + throw new ValidationError('AMMCreate: Amount2 must be an Amount') + } + + if (tx.TradingFee == null) { + throw new ValidationError('AMMCreate: missing field TradingFee') + } + + if (typeof tx.TradingFee !== 'number') { + throw new ValidationError('AMMCreate: TradingFee must be a number') + } + + if (tx.TradingFee < 0 || tx.TradingFee > AMM_MAX_TRADING_FEE) { + throw new ValidationError( + `AMMCreate: TradingFee must be between 0 and ${AMM_MAX_TRADING_FEE}`, + ) + } +} diff --git a/packages/xrpl/src/models/transactions/AMMDelete.ts b/packages/xrpl/src/models/transactions/AMMDelete.ts new file mode 100644 index 0000000000..6e64f8c58b --- /dev/null +++ b/packages/xrpl/src/models/transactions/AMMDelete.ts @@ -0,0 +1,55 @@ +import { ValidationError } from '../../errors' +import { Currency } from '../common' + +import { BaseTransaction, isCurrency, validateBaseTransaction } from './common' + +/** + * Delete an empty Automated Market Maker (AMM) instance that could not be fully deleted automatically. + * + * Tip: The AMMWithdraw transaction automatically tries to delete an AMM, along with associated ledger + * entries such as empty trust lines, if it withdrew all the assets from the AMM's pool. + * However, if there are too many trust lines to the AMM account to remove in one transaction, + * it may stop before fully removing the AMM. Similarly, an AMMDelete transaction removes up to + * a maximum number of trust lines; in extreme cases, it may take several AMMDelete transactions + * to fully delete the trust lines and the associated AMM. + * In all cases, the AMM ledger entry and AMM account are deleted by the last such transaction. + */ +export interface AMMDelete extends BaseTransaction { + TransactionType: 'AMMDelete' + + /** + * The definition for one of the assets in the AMM's pool. + */ + Asset: Currency + + /** + * The definition for the other asset in the AMM's pool. + */ + Asset2: Currency +} + +/** + * Verify the form and type of an AMMDelete at runtime. + * + * @param tx - An AMMDelete Transaction. + * @throws When the AMMDelete is Malformed. + */ +export function validateAMMDelete(tx: Record): void { + validateBaseTransaction(tx) + + if (tx.Asset == null) { + throw new ValidationError('AMMDelete: missing field Asset') + } + + if (!isCurrency(tx.Asset)) { + throw new ValidationError('AMMDelete: Asset must be a Currency') + } + + if (tx.Asset2 == null) { + throw new ValidationError('AMMDelete: missing field Asset2') + } + + if (!isCurrency(tx.Asset2)) { + throw new ValidationError('AMMDelete: Asset2 must be a Currency') + } +} diff --git a/packages/xrpl/src/models/transactions/AMMDeposit.ts b/packages/xrpl/src/models/transactions/AMMDeposit.ts new file mode 100644 index 0000000000..2dd8d27e39 --- /dev/null +++ b/packages/xrpl/src/models/transactions/AMMDeposit.ts @@ -0,0 +1,131 @@ +import { ValidationError } from '../../errors' +import { Amount, Currency, IssuedCurrencyAmount } from '../common' + +import { + BaseTransaction, + GlobalFlags, + isAmount, + isCurrency, + isIssuedCurrency, + validateBaseTransaction, +} from './common' + +/** + * Enum representing values for AMMDeposit Transaction Flags. + * + * @category Transaction Flags + */ +export enum AMMDepositFlags { + tfLPToken = 0x00010000, + tfSingleAsset = 0x00080000, + tfTwoAsset = 0x00100000, + tfOneAssetLPToken = 0x00200000, + tfLimitLPToken = 0x00400000, + tfTwoAssetIfEmpty = 0x00800000, +} + +export interface AMMDepositFlagsInterface extends GlobalFlags { + tfLPToken?: boolean + tfSingleAsset?: boolean + tfTwoAsset?: boolean + tfOneAssetLPToken?: boolean + tfLimitLPToken?: boolean + tfTwoAssetIfEmpty?: boolean +} + +/** + * Deposit funds into an Automated Market Maker (AMM) instance + * and receive the AMM's liquidity provider tokens (LP Tokens) in exchange. + * + * You can deposit one or both of the assets in the AMM's pool. + * If successful, this transaction creates a trust line to the AMM Account (limit 0) to hold the LP Tokens. + */ +export interface AMMDeposit extends BaseTransaction { + TransactionType: 'AMMDeposit' + + /** + * The definition for one of the assets in the AMM's pool. + */ + Asset: Currency + + /** + * The definition for the other asset in the AMM's pool. + */ + Asset2: Currency + + /** + * The amount of one asset to deposit to the AMM. + * If present, this must match the type of one of the assets (tokens or XRP) in the AMM's pool. + */ + Amount?: Amount + + /** + * The amount of another asset to add to the AMM. + * If present, this must match the type of the other asset in the AMM's pool and cannot be the same asset as Amount. + */ + Amount2?: Amount + + /** + * The maximum effective price, in the deposit asset, to pay for each LP Token received. + */ + EPrice?: Amount + + /** + * How many of the AMM's LP Tokens to buy. + */ + LPTokenOut?: IssuedCurrencyAmount +} + +/** + * Verify the form and type of an AMMDeposit at runtime. + * + * @param tx - An AMMDeposit Transaction. + * @throws When the AMMDeposit is Malformed. + */ +export function validateAMMDeposit(tx: Record): void { + validateBaseTransaction(tx) + + if (tx.Asset == null) { + throw new ValidationError('AMMDeposit: missing field Asset') + } + + if (!isCurrency(tx.Asset)) { + throw new ValidationError('AMMDeposit: Asset must be a Currency') + } + + if (tx.Asset2 == null) { + throw new ValidationError('AMMDeposit: missing field Asset2') + } + + if (!isCurrency(tx.Asset2)) { + throw new ValidationError('AMMDeposit: Asset2 must be a Currency') + } + + if (tx.Amount2 != null && tx.Amount == null) { + throw new ValidationError('AMMDeposit: must set Amount with Amount2') + } else if (tx.EPrice != null && tx.Amount == null) { + throw new ValidationError('AMMDeposit: must set Amount with EPrice') + } else if (tx.LPTokenOut == null && tx.Amount == null) { + throw new ValidationError( + 'AMMDeposit: must set at least LPTokenOut or Amount', + ) + } + + if (tx.LPTokenOut != null && !isIssuedCurrency(tx.LPTokenOut)) { + throw new ValidationError( + 'AMMDeposit: LPTokenOut must be an IssuedCurrencyAmount', + ) + } + + if (tx.Amount != null && !isAmount(tx.Amount)) { + throw new ValidationError('AMMDeposit: Amount must be an Amount') + } + + if (tx.Amount2 != null && !isAmount(tx.Amount2)) { + throw new ValidationError('AMMDeposit: Amount2 must be an Amount') + } + + if (tx.EPrice != null && !isAmount(tx.EPrice)) { + throw new ValidationError('AMMDeposit: EPrice must be an Amount') + } +} diff --git a/packages/xrpl/src/models/transactions/AMMVote.ts b/packages/xrpl/src/models/transactions/AMMVote.ts new file mode 100644 index 0000000000..0d469fa0a8 --- /dev/null +++ b/packages/xrpl/src/models/transactions/AMMVote.ts @@ -0,0 +1,71 @@ +import { ValidationError } from '../../errors' +import { Currency } from '../common' + +import { AMM_MAX_TRADING_FEE } from './AMMCreate' +import { BaseTransaction, isCurrency, validateBaseTransaction } from './common' + +/** + * Vote on the trading fee for an Automated Market Maker (AMM) instance. + * + * Up to 8 accounts can vote in proportion to the amount of the AMM's LP Tokens they hold. + * Each new vote re-calculates the AMM's trading fee based on a weighted average of the votes. + */ +export interface AMMVote extends BaseTransaction { + TransactionType: 'AMMVote' + + /** + * The definition for one of the assets in the AMM's pool. + */ + Asset: Currency + + /** + * The definition for the other asset in the AMM's pool. + */ + Asset2: Currency + + /** + * The proposed fee to vote for, in units of 1/100,000; a value of 1 is equivalent to 0.001%. + * The maximum value is 1000, indicating a 1% fee. + */ + TradingFee: number +} + +/** + * Verify the form and type of an AMMVote at runtime. + * + * @param tx - An AMMVote Transaction. + * @throws When the AMMVote is Malformed. + */ +export function validateAMMVote(tx: Record): void { + validateBaseTransaction(tx) + + if (tx.Asset == null) { + throw new ValidationError('AMMVote: missing field Asset') + } + + if (!isCurrency(tx.Asset)) { + throw new ValidationError('AMMVote: Asset must be a Currency') + } + + if (tx.Asset2 == null) { + throw new ValidationError('AMMVote: missing field Asset2') + } + + if (!isCurrency(tx.Asset2)) { + throw new ValidationError('AMMVote: Asset2 must be a Currency') + } + + if (tx.TradingFee == null) { + throw new ValidationError('AMMVote: missing field TradingFee') + } + + if (typeof tx.TradingFee !== 'number') { + throw new ValidationError('AMMVote: TradingFee must be a number') + } + + if (tx.TradingFee < 0 || tx.TradingFee > AMM_MAX_TRADING_FEE) { + throw new ValidationError( + `AMMVote: TradingFee must be between 0 and ${AMM_MAX_TRADING_FEE}`, + ) + } +} diff --git a/packages/xrpl/src/models/transactions/AMMWithdraw.ts b/packages/xrpl/src/models/transactions/AMMWithdraw.ts new file mode 100644 index 0000000000..fcce5912b3 --- /dev/null +++ b/packages/xrpl/src/models/transactions/AMMWithdraw.ts @@ -0,0 +1,125 @@ +import { ValidationError } from '../../errors' +import { Amount, Currency, IssuedCurrencyAmount } from '../common' + +import { + BaseTransaction, + GlobalFlags, + isAmount, + isCurrency, + isIssuedCurrency, + validateBaseTransaction, +} from './common' + +/** + * Enum representing values for AMMWithdrawFlags Transaction Flags. + * + * @category Transaction Flags + */ +export enum AMMWithdrawFlags { + tfLPToken = 0x00010000, + tfWithdrawAll = 0x00020000, + tfOneAssetWithdrawAll = 0x00040000, + tfSingleAsset = 0x00080000, + tfTwoAsset = 0x00100000, + tfOneAssetLPToken = 0x00200000, + tfLimitLPToken = 0x00400000, +} + +export interface AMMWithdrawFlagsInterface extends GlobalFlags { + tfLPToken?: boolean + tfWithdrawAll?: boolean + tfOneAssetWithdrawAll?: boolean + tfSingleAsset?: boolean + tfTwoAsset?: boolean + tfOneAssetLPToken?: boolean + tfLimitLPToken?: boolean +} + +/** + * Withdraw assets from an Automated Market Maker (AMM) instance by returning the AMM's liquidity provider tokens (LP Tokens). + */ +export interface AMMWithdraw extends BaseTransaction { + TransactionType: 'AMMWithdraw' + + /** + * The definition for one of the assets in the AMM's pool. + */ + Asset: Currency + + /** + * The definition for the other asset in the AMM's pool. + */ + Asset2: Currency + + /** + * The amount of one asset to withdraw from the AMM. + * This must match the type of one of the assets (tokens or XRP) in the AMM's pool. + */ + Amount?: Amount + + /** + * The amount of another asset to withdraw from the AMM. + * If present, this must match the type of the other asset in the AMM's pool and cannot be the same type as Amount. + */ + Amount2?: Amount + + /** + * The minimum effective price, in LP Token returned, to pay per unit of the asset to withdraw. + */ + EPrice?: Amount + + /** + * How many of the AMM's LP Tokens to redeem. + */ + LPTokenIn?: IssuedCurrencyAmount +} + +/** + * Verify the form and type of an AMMWithdraw at runtime. + * + * @param tx - An AMMWithdraw Transaction. + * @throws When the AMMWithdraw is Malformed. + */ +export function validateAMMWithdraw(tx: Record): void { + validateBaseTransaction(tx) + + if (tx.Asset == null) { + throw new ValidationError('AMMWithdraw: missing field Asset') + } + + if (!isCurrency(tx.Asset)) { + throw new ValidationError('AMMWithdraw: Asset must be a Currency') + } + + if (tx.Asset2 == null) { + throw new ValidationError('AMMWithdraw: missing field Asset2') + } + + if (!isCurrency(tx.Asset2)) { + throw new ValidationError('AMMWithdraw: Asset2 must be a Currency') + } + + if (tx.Amount2 != null && tx.Amount == null) { + throw new ValidationError('AMMWithdraw: must set Amount with Amount2') + } else if (tx.EPrice != null && tx.Amount == null) { + throw new ValidationError('AMMWithdraw: must set Amount with EPrice') + } + + if (tx.LPTokenIn != null && !isIssuedCurrency(tx.LPTokenIn)) { + throw new ValidationError( + 'AMMWithdraw: LPTokenIn must be an IssuedCurrencyAmount', + ) + } + + if (tx.Amount != null && !isAmount(tx.Amount)) { + throw new ValidationError('AMMWithdraw: Amount must be an Amount') + } + + if (tx.Amount2 != null && !isAmount(tx.Amount2)) { + throw new ValidationError('AMMWithdraw: Amount2 must be an Amount') + } + + if (tx.EPrice != null && !isAmount(tx.EPrice)) { + throw new ValidationError('AMMWithdraw: EPrice must be an Amount') + } +} diff --git a/packages/xrpl/src/models/transactions/DIDDelete.ts b/packages/xrpl/src/models/transactions/DIDDelete.ts new file mode 100644 index 0000000000..1cc2a4214d --- /dev/null +++ b/packages/xrpl/src/models/transactions/DIDDelete.ts @@ -0,0 +1,20 @@ +import { BaseTransaction, validateBaseTransaction } from './common' + +// TODO: add docs + +/** + * @category Transaction Models + */ +export interface DIDDelete extends BaseTransaction { + TransactionType: 'DIDDelete' +} + +/** + * Verify the form and type of a DIDDelete at runtime. + * + * @param tx - A DIDDelete Transaction. + * @throws When the DIDDelete is malformed. + */ +export function validateDIDDelete(tx: Record): void { + validateBaseTransaction(tx) +} diff --git a/packages/xrpl/src/models/transactions/DIDSet.ts b/packages/xrpl/src/models/transactions/DIDSet.ts new file mode 100644 index 0000000000..11416899fd --- /dev/null +++ b/packages/xrpl/src/models/transactions/DIDSet.ts @@ -0,0 +1,49 @@ +import { ValidationError } from '../../errors' + +import { + BaseTransaction, + isString, + validateBaseTransaction, + validateOptionalField, +} from './common' + +// TODO: add docs + +/** + * @category Transaction Models + */ +export interface DIDSet extends BaseTransaction { + TransactionType: 'DIDSet' + + Data?: string + + DIDDocument?: string + + URI?: string +} + +/** + * Verify the form and type of a DIDSet at runtime. + * + * @param tx - A DIDSet Transaction. + * @throws When the DIDSet is malformed. + */ +export function validateDIDSet(tx: Record): void { + validateBaseTransaction(tx) + + validateOptionalField(tx, 'Data', isString) + + validateOptionalField(tx, 'DIDDocument', isString) + + validateOptionalField(tx, 'URI', isString) + + if ( + tx.Data === undefined && + tx.DIDDocument === undefined && + tx.URI === undefined + ) { + throw new ValidationError( + 'DIDSet: Must have at least one of `Data`, `DIDDocument`, and `URI`', + ) + } +} diff --git a/packages/xrpl/src/models/transactions/NFTokenAcceptOffer.ts b/packages/xrpl/src/models/transactions/NFTokenAcceptOffer.ts index 1d4de2a9e3..1a33f46e5f 100644 --- a/packages/xrpl/src/models/transactions/NFTokenAcceptOffer.ts +++ b/packages/xrpl/src/models/transactions/NFTokenAcceptOffer.ts @@ -6,6 +6,7 @@ import { parseAmountValue, validateBaseTransaction, } from './common' +import type { TransactionMetadataBase } from './metadata' /** * The NFTokenOfferAccept transaction is used to accept offers @@ -64,6 +65,11 @@ export interface NFTokenAcceptOffer extends BaseTransaction { NFTokenBrokerFee?: Amount } +export interface NFTokenAcceptOfferMetadata extends TransactionMetadataBase { + // rippled 1.11.0 or later + nftoken_id?: string +} + function validateNFTokenBrokerFee(tx: Record): void { const value = parseAmountValue(tx.NFTokenBrokerFee) if (Number.isNaN(value)) { diff --git a/packages/xrpl/src/models/transactions/NFTokenBurn.ts b/packages/xrpl/src/models/transactions/NFTokenBurn.ts index 572c7c4b0a..00df462459 100644 --- a/packages/xrpl/src/models/transactions/NFTokenBurn.ts +++ b/packages/xrpl/src/models/transactions/NFTokenBurn.ts @@ -1,6 +1,12 @@ -import { ValidationError } from '../../errors' - -import { BaseTransaction, validateBaseTransaction } from './common' +import { + Account, + BaseTransaction, + isAccount, + isString, + validateBaseTransaction, + validateOptionalField, + validateRequiredField, +} from './common' /** * The NFTokenBurn transaction is used to remove an NFToken object from the @@ -20,7 +26,7 @@ export interface NFTokenBurn extends BaseTransaction { * in the NFToken, either the issuer account or an account authorized by the * issuer, i.e. MintAccount. */ - Account: string + Account: Account /** * Identifies the NFToken object to be removed by the transaction. */ @@ -30,7 +36,7 @@ export interface NFTokenBurn extends BaseTransaction { * Account. Only used to burn tokens which have the lsfBurnable flag enabled * and are not owned by the signing account. */ - Owner?: string + Owner?: Account } /** @@ -41,8 +47,6 @@ export interface NFTokenBurn extends BaseTransaction { */ export function validateNFTokenBurn(tx: Record): void { validateBaseTransaction(tx) - - if (tx.NFTokenID == null) { - throw new ValidationError('NFTokenBurn: missing field NFTokenID') - } + validateRequiredField(tx, 'NFTokenID', isString) + validateOptionalField(tx, 'Owner', isAccount) } diff --git a/packages/xrpl/src/models/transactions/NFTokenCancelOffer.ts b/packages/xrpl/src/models/transactions/NFTokenCancelOffer.ts index 367cc2957b..b0b8bcd228 100644 --- a/packages/xrpl/src/models/transactions/NFTokenCancelOffer.ts +++ b/packages/xrpl/src/models/transactions/NFTokenCancelOffer.ts @@ -1,6 +1,7 @@ import { ValidationError } from '../../errors' import { BaseTransaction, validateBaseTransaction } from './common' +import type { TransactionMetadataBase } from './metadata' /** * The NFTokenCancelOffer transaction deletes existing NFTokenOffer objects. @@ -26,6 +27,11 @@ export interface NFTokenCancelOffer extends BaseTransaction { NFTokenOffers: string[] } +export interface NFTokenCancelOfferMetadata extends TransactionMetadataBase { + // rippled 1.11.0 or later + nftoken_ids?: string[] +} + /** * Verify the form and type of an NFTokenCancelOffer at runtime. * diff --git a/packages/xrpl/src/models/transactions/NFTokenCreateOffer.ts b/packages/xrpl/src/models/transactions/NFTokenCreateOffer.ts index bc1b081c8b..9575d1b6be 100644 --- a/packages/xrpl/src/models/transactions/NFTokenCreateOffer.ts +++ b/packages/xrpl/src/models/transactions/NFTokenCreateOffer.ts @@ -8,7 +8,11 @@ import { validateBaseTransaction, isAmount, parseAmountValue, + isAccount, + validateOptionalField, + Account, } from './common' +import type { TransactionMetadataBase } from './metadata' /** * Transaction Flags for an NFTokenCreateOffer Transaction. @@ -67,7 +71,7 @@ export interface NFTokenCreateOffer extends BaseTransaction { * (since an offer to sell a token one doesn't already hold * is meaningless). */ - Owner?: string + Owner?: Account /** * Indicates the time after which the offer will no longer * be valid. The value is the number of seconds since the @@ -79,10 +83,15 @@ export interface NFTokenCreateOffer extends BaseTransaction { * accepted by the specified account. Attempts by other * accounts to accept this offer MUST fail. */ - Destination?: string + Destination?: Account Flags?: number | NFTokenCreateOfferFlagsInterface } +export interface NFTokenCreateOfferMetadata extends TransactionMetadataBase { + // rippled 1.11.0 or later + offer_id?: string +} + function validateNFTokenSellOfferCases(tx: Record): void { if (tx.Owner != null) { throw new ValidationError( @@ -126,6 +135,9 @@ export function validateNFTokenCreateOffer(tx: Record): void { ) } + validateOptionalField(tx, 'Destination', isAccount) + validateOptionalField(tx, 'Owner', isAccount) + if (tx.NFTokenID == null) { throw new ValidationError('NFTokenCreateOffer: missing field NFTokenID') } diff --git a/packages/xrpl/src/models/transactions/NFTokenMint.ts b/packages/xrpl/src/models/transactions/NFTokenMint.ts index adfe7beade..2630a6b9c6 100644 --- a/packages/xrpl/src/models/transactions/NFTokenMint.ts +++ b/packages/xrpl/src/models/transactions/NFTokenMint.ts @@ -1,7 +1,15 @@ import { ValidationError } from '../../errors' import { isHex } from '../utils' -import { BaseTransaction, GlobalFlags, validateBaseTransaction } from './common' +import { + Account, + BaseTransaction, + GlobalFlags, + isAccount, + validateBaseTransaction, + validateOptionalField, +} from './common' +import type { TransactionMetadataBase } from './metadata' /** * Transaction Flags for an NFTokenMint Transaction. @@ -68,7 +76,7 @@ export interface NFTokenMint extends BaseTransaction { * present, the `MintAccount` field in the `AccountRoot` of the `Issuer` * field must match the `Account`, otherwise the transaction will fail. */ - Issuer?: string + Issuer?: Account /** * Specifies the fee charged by the issuer for secondary sales of the Token, * if such sales are allowed. Valid values for this field are between 0 and @@ -94,6 +102,11 @@ export interface NFTokenMint extends BaseTransaction { Flags?: number | NFTokenMintFlagsInterface } +export interface NFTokenMintMetadata extends TransactionMetadataBase { + // rippled 1.11.0 or later + nftoken_id?: string +} + /** * Verify the form and type of an NFTokenMint at runtime. * @@ -109,6 +122,8 @@ export function validateNFTokenMint(tx: Record): void { ) } + validateOptionalField(tx, 'Issuer', isAccount) + if (typeof tx.URI === 'string' && tx.URI === '') { throw new ValidationError('NFTokenMint: URI must not be empty string') } diff --git a/packages/xrpl/src/models/transactions/UNLModify.ts b/packages/xrpl/src/models/transactions/UNLModify.ts new file mode 100644 index 0000000000..41570f562c --- /dev/null +++ b/packages/xrpl/src/models/transactions/UNLModify.ts @@ -0,0 +1,22 @@ +import { BaseTransaction } from './common' + +/** + * Mark a change to the Negative UNL. + * + * @category Pseudo Transaction Models + */ +export interface UNLModify extends BaseTransaction { + TransactionType: 'UNLModify' + /** + * The ledger index where this pseudo-transaction appears. + * This distinguishes the pseudo-transaction from other occurrences of the same change. + */ + LedgerSequence: number + /** + * If 0, this change represents removing a validator from the Negative UNL. + * If 1, this change represents adding a validator to the Negative UNL. + */ + UNLModifyDisabling: 0 | 1 + /** The validator to add or remove, as identified by its master public key. */ + UNLModifyValidator: string +} diff --git a/packages/xrpl/src/models/transactions/XChainAccountCreateCommit.ts b/packages/xrpl/src/models/transactions/XChainAccountCreateCommit.ts new file mode 100644 index 0000000000..167a203503 --- /dev/null +++ b/packages/xrpl/src/models/transactions/XChainAccountCreateCommit.ts @@ -0,0 +1,69 @@ +import { Amount, XChainBridge } from '../common' + +import { + BaseTransaction, + isAmount, + isXChainBridge, + validateBaseTransaction, + validateRequiredField, + isAccount, + Account, +} from './common' + +/** + * The XChainAccountCreateCommit transaction creates a new account on one of the + * chains a bridge connects, which serves as the bridge entrance for that chain. + * + * WARNING: This transaction should only be executed if the witness attestations + * will be reliably delivered to the destination chain. If the signatures aren't + * delivered, then account creation will be blocked until attestations are received. + * This can be used maliciously; to disable this transaction on XRP-XRP bridges, + * the bridge's MinAccountCreateAmount shouldn't be present. + * + * @category Transaction Models + */ +export interface XChainAccountCreateCommit extends BaseTransaction { + TransactionType: 'XChainAccountCreateCommit' + + /** + * The bridge to create accounts for. + */ + XChainBridge: XChainBridge + + /** + * The amount, in XRP, to be used to reward the witness servers for providing + * signatures. This must match the amount on the {@link Bridge} ledger object. + */ + SignatureReward: Amount + + /** + * The destination account on the destination chain. + */ + Destination: Account + + /** + * The amount, in XRP, to use for account creation. This must be greater than or + * equal to the MinAccountCreateAmount specified in the {@link Bridge} ledger object. + */ + Amount: Amount +} + +/** + * Verify the form and type of an XChainAccountCreateCommit at runtime. + * + * @param tx - An XChainAccountCreateCommit Transaction. + * @throws When the XChainAccountCreateCommit is malformed. + */ +export function validateXChainAccountCreateCommit( + tx: Record, +): void { + validateBaseTransaction(tx) + + validateRequiredField(tx, 'XChainBridge', isXChainBridge) + + validateRequiredField(tx, 'SignatureReward', isAmount) + + validateRequiredField(tx, 'Destination', isAccount) + + validateRequiredField(tx, 'Amount', isAmount) +} diff --git a/packages/xrpl/src/models/transactions/XChainAddAccountCreateAttestation.ts b/packages/xrpl/src/models/transactions/XChainAddAccountCreateAttestation.ts new file mode 100644 index 0000000000..16d27035a1 --- /dev/null +++ b/packages/xrpl/src/models/transactions/XChainAddAccountCreateAttestation.ts @@ -0,0 +1,123 @@ +import { Amount, XChainBridge } from '../common' + +import { + Account, + BaseTransaction, + isAccount, + isAmount, + isNumber, + isString, + isXChainBridge, + validateBaseTransaction, + validateRequiredField, +} from './common' + +/** + * The XChainAddAccountCreateAttestation transaction provides an attestation + * from a witness server that a {@link XChainAccountCreateCommit} transaction + * occurred on the other chain. + * + * @category Transaction Models + */ +export interface XChainAddAccountCreateAttestation extends BaseTransaction { + TransactionType: 'XChainAddAccountCreateAttestation' + + /** + * The amount committed by the {@link XChainAccountCreateCommit} transaction + * on the source chain. + */ + Amount: Amount + + /** + * The account that should receive this signer's share of the SignatureReward. + */ + AttestationRewardAccount: Account + + /** + * The account on the door account's signer list that is signing the transaction. + */ + AttestationSignerAccount: Account + + /** + * The destination account for the funds on the destination chain. + */ + Destination: Account + + /** + * The account on the source chain that submitted the {@link XChainAccountCreateCommit} + * transaction that triggered the event associated with the attestation. + */ + OtherChainSource: Account + + /** + * The public key used to verify the signature. + */ + PublicKey: string + + /** + * The signature attesting to the event on the other chain. + */ + Signature: string + + /** + * The signature reward paid in the {@link XChainAccountCreateCommit} transaction. + */ + SignatureReward: Amount + + /** + * A boolean representing the chain where the event occurred. + */ + WasLockingChainSend: 0 | 1 + + /** + * The counter that represents the order that the claims must be processed in. + */ + XChainAccountCreateCount: number | string + + /** + * The bridge associated with the attestation. + */ + XChainBridge: XChainBridge +} + +/** + * Verify the form and type of an XChainAddAccountCreateAttestation at runtime. + * + * @param tx - An XChainAddAccountCreateAttestation Transaction. + * @throws When the XChainAddAccountCreateAttestation is malformed. + */ +export function validateXChainAddAccountCreateAttestation( + tx: Record, +): void { + validateBaseTransaction(tx) + + validateRequiredField(tx, 'Amount', isAmount) + + validateRequiredField(tx, 'AttestationRewardAccount', isAccount) + + validateRequiredField(tx, 'AttestationSignerAccount', isAccount) + + validateRequiredField(tx, 'Destination', isAccount) + + validateRequiredField(tx, 'OtherChainSource', isAccount) + + validateRequiredField(tx, 'PublicKey', isString) + + validateRequiredField(tx, 'Signature', isString) + + validateRequiredField(tx, 'SignatureReward', isAmount) + + validateRequiredField( + tx, + 'WasLockingChainSend', + (inp) => inp === 0 || inp === 1, + ) + + validateRequiredField( + tx, + 'XChainAccountCreateCount', + (inp) => isNumber(inp) || isString(inp), + ) + + validateRequiredField(tx, 'XChainBridge', isXChainBridge) +} diff --git a/packages/xrpl/src/models/transactions/XChainAddClaimAttestation.ts b/packages/xrpl/src/models/transactions/XChainAddClaimAttestation.ts new file mode 100644 index 0000000000..90f09c0bc7 --- /dev/null +++ b/packages/xrpl/src/models/transactions/XChainAddClaimAttestation.ts @@ -0,0 +1,117 @@ +import { Amount, XChainBridge } from '../common' + +import { + Account, + BaseTransaction, + isAccount, + isAmount, + isNumber, + isString, + isXChainBridge, + validateBaseTransaction, + validateOptionalField, + validateRequiredField, +} from './common' + +/** + * The XChainAddClaimAttestation transaction provides proof from a witness server, + * attesting to an {@link XChainCommit} transaction. + * + * @category Transaction Models + */ +export interface XChainAddClaimAttestation extends BaseTransaction { + TransactionType: 'XChainAddClaimAttestation' + + /** + * The amount committed by the {@link XChainCommit} transaction on the source chain. + */ + Amount: Amount + + /** + * The account that should receive this signer's share of the SignatureReward. + */ + AttestationRewardAccount: Account + + /** + * The account on the door account's signer list that is signing the transaction. + */ + AttestationSignerAccount: Account + + /** + * The destination account for the funds on the destination chain (taken from + * the {@link XChainCommit} transaction). + */ + Destination?: Account + + /** + * The account on the source chain that submitted the {@link XChainCommit} + * transaction that triggered the event associated with the attestation. + */ + OtherChainSource: Account + + /** + * The public key used to verify the attestation signature. + */ + PublicKey: string + + /** + * The signature attesting to the event on the other chain. + */ + Signature: string + + /** + * A boolean representing the chain where the event occurred. + */ + WasLockingChainSend: 0 | 1 + + /** + * The bridge to use to transfer funds. + */ + XChainBridge: XChainBridge + + /** + * The XChainClaimID associated with the transfer, which was included in the + * {@link XChainCommit} transaction. + */ + XChainClaimID: number | string +} + +/** + * Verify the form and type of an XChainAddClaimAttestation at runtime. + * + * @param tx - An XChainAddClaimAttestation Transaction. + * @throws When the XChainAddClaimAttestation is malformed. + */ +export function validateXChainAddClaimAttestation( + tx: Record, +): void { + validateBaseTransaction(tx) + + validateRequiredField(tx, 'Amount', isAmount) + + validateRequiredField(tx, 'AttestationRewardAccount', isAccount) + + validateRequiredField(tx, 'AttestationSignerAccount', isAccount) + + validateOptionalField(tx, 'Destination', isAccount) + + validateRequiredField(tx, 'OtherChainSource', isAccount) + + validateRequiredField(tx, 'PublicKey', isString) + + validateRequiredField(tx, 'Signature', isString) + + validateRequiredField( + tx, + 'WasLockingChainSend', + (inp) => inp === 0 || inp === 1, + ) + + validateRequiredField(tx, 'XChainBridge', isXChainBridge) + + validateRequiredField( + tx, + 'XChainClaimID', + (inp) => isNumber(inp) || isString(inp), + ) +} diff --git a/packages/xrpl/src/models/transactions/XChainClaim.ts b/packages/xrpl/src/models/transactions/XChainClaim.ts new file mode 100644 index 0000000000..124f5f468c --- /dev/null +++ b/packages/xrpl/src/models/transactions/XChainClaim.ts @@ -0,0 +1,79 @@ +import { Amount, XChainBridge } from '../common' + +import { + Account, + BaseTransaction, + isAccount, + isAmount, + isNumber, + isString, + isXChainBridge, + validateBaseTransaction, + validateOptionalField, + validateRequiredField, +} from './common' + +/** + * The XChainClaim transaction completes a cross-chain transfer of value. It + * allows a user to claim the value on the destination chain - the equivalent + * of the value locked on the source chain. + * + * @category Transaction Models + */ +export interface XChainClaim extends BaseTransaction { + TransactionType: 'XChainClaim' + + /** + * The bridge to use for the transfer. + */ + XChainBridge: XChainBridge + + /** + * The unique integer ID for the cross-chain transfer that was referenced in the + * corresponding {@link XChainCommit} transaction. + */ + XChainClaimID: number | string + + /** + * The destination account on the destination chain. It must exist or the + * transaction will fail. However, if the transaction fails in this case, the + * sequence number and collected signatures won't be destroyed, and the + * transaction can be rerun with a different destination. + */ + Destination: Account + + /** + * An integer destination tag. + */ + DestinationTag?: number + + /** + * The amount to claim on the destination chain. This must match the amount + * attested to on the attestations associated with this XChainClaimID. + */ + Amount: Amount +} + +/** + * Verify the form and type of an XChainClaim at runtime. + * + * @param tx - An XChainClaim Transaction. + * @throws When the XChainClaim is malformed. + */ +export function validateXChainClaim(tx: Record): void { + validateBaseTransaction(tx) + + validateRequiredField(tx, 'XChainBridge', isXChainBridge) + + validateRequiredField( + tx, + 'XChainClaimID', + (inp) => isNumber(inp) || isString(inp), + ) + + validateRequiredField(tx, 'Destination', isAccount) + + validateOptionalField(tx, 'DestinationTag', isNumber) + + validateRequiredField(tx, 'Amount', isAmount) +} diff --git a/packages/xrpl/src/models/transactions/XChainCommit.ts b/packages/xrpl/src/models/transactions/XChainCommit.ts new file mode 100644 index 0000000000..a7434c0fbd --- /dev/null +++ b/packages/xrpl/src/models/transactions/XChainCommit.ts @@ -0,0 +1,76 @@ +import { Amount, XChainBridge } from '../common' + +import { + Account, + BaseTransaction, + isAccount, + isAmount, + isNumber, + isString, + isXChainBridge, + validateBaseTransaction, + validateOptionalField, + validateRequiredField, +} from './common' + +/** + * The XChainCommit is the second step in a cross-chain transfer. It puts assets + * into trust on the locking chain so that they can be wrapped on the issuing + * chain, or burns wrapped assets on the issuing chain so that they can be returned + * on the locking chain. + * + * @category Transaction Models + */ +export interface XChainCommit extends BaseTransaction { + TransactionType: 'XChainCommit' + + /** + * The bridge to use to transfer funds. + */ + XChainBridge: XChainBridge + + /** + * The unique integer ID for a cross-chain transfer. This must be acquired on + * the destination chain (via a {@link XChainCreateClaimID} transaction) and + * checked from a validated ledger before submitting this transaction. If an + * incorrect sequence number is specified, the funds will be lost. + */ + XChainClaimID: number | string + + /** + * The destination account on the destination chain. If this is not specified, + * the account that submitted the {@link XChainCreateClaimID} transaction on the + * destination chain will need to submit a {@link XChainClaim} transaction to + * claim the funds. + */ + OtherChainDestination?: Account + + /** + * The asset to commit, and the quantity. This must match the door account's + * LockingChainIssue (if on the locking chain) or the door account's + * IssuingChainIssue (if on the issuing chain). + */ + Amount: Amount +} + +/** + * Verify the form and type of an XChainCommit at runtime. + * + * @param tx - An XChainCommit Transaction. + * @throws When the XChainCommit is malformed. + */ +export function validateXChainCommit(tx: Record): void { + validateBaseTransaction(tx) + + validateRequiredField(tx, 'XChainBridge', isXChainBridge) + + validateRequiredField( + tx, + 'XChainClaimID', + (inp) => isNumber(inp) || isString(inp), + ) + + validateOptionalField(tx, 'OtherChainDestination', isAccount) + + validateRequiredField(tx, 'Amount', isAmount) +} diff --git a/packages/xrpl/src/models/transactions/XChainCreateBridge.ts b/packages/xrpl/src/models/transactions/XChainCreateBridge.ts new file mode 100644 index 0000000000..e9d638bfe8 --- /dev/null +++ b/packages/xrpl/src/models/transactions/XChainCreateBridge.ts @@ -0,0 +1,56 @@ +import { Amount, XChainBridge } from '../common' + +import { + BaseTransaction, + isAmount, + isXChainBridge, + validateBaseTransaction, + validateOptionalField, + validateRequiredField, +} from './common' + +/** + * The XChainCreateBridge transaction creates a new {@link Bridge} ledger object + * and defines a new cross-chain bridge entrance on the chain that the transaction + * is submitted on. It includes information about door accounts and assets for the + * bridge. + * + * @category Transaction Models + */ +export interface XChainCreateBridge extends BaseTransaction { + TransactionType: 'XChainCreateBridge' + + /** + * The bridge (door accounts and assets) to create. + */ + XChainBridge: XChainBridge + + /** + * The total amount to pay the witness servers for their signatures. This amount + * will be split among the signers. + */ + SignatureReward: Amount + + /** + * The minimum amount, in XRP, required for a {@link XChainAccountCreateCommit} + * transaction. If this isn't present, the {@link XChainAccountCreateCommit} + * transaction will fail. This field can only be present on XRP-XRP bridges. + */ + MinAccountCreateAmount?: Amount +} + +/** + * Verify the form and type of an XChainCreateBridge at runtime. + * + * @param tx - An XChainCreateBridge Transaction. + * @throws When the XChainCreateBridge is malformed. + */ +export function validateXChainCreateBridge(tx: Record): void { + validateBaseTransaction(tx) + + validateRequiredField(tx, 'XChainBridge', isXChainBridge) + + validateRequiredField(tx, 'SignatureReward', isAmount) + + validateOptionalField(tx, 'MinAccountCreateAmount', isAmount) +} diff --git a/packages/xrpl/src/models/transactions/XChainCreateClaimID.ts b/packages/xrpl/src/models/transactions/XChainCreateClaimID.ts new file mode 100644 index 0000000000..a10136e573 --- /dev/null +++ b/packages/xrpl/src/models/transactions/XChainCreateClaimID.ts @@ -0,0 +1,54 @@ +import { Amount, XChainBridge } from '../common' + +import { + Account, + BaseTransaction, + isAccount, + isAmount, + isXChainBridge, + validateBaseTransaction, + validateRequiredField, +} from './common' + +/** + * The XChainCreateClaimID transaction creates a new cross-chain claim ID that is + * used for a cross-chain transfer. A cross-chain claim ID represents one + * cross-chain transfer of value. + * + * @category Transaction Models + */ +export interface XChainCreateClaimID extends BaseTransaction { + TransactionType: 'XChainCreateClaimID' + + /** + * The bridge to create the claim ID for. + */ + XChainBridge: XChainBridge + + /** + * The amount, in XRP, to reward the witness servers for providing signatures. + * This must match the amount on the {@link Bridge} ledger object. + */ + SignatureReward: Amount + + /** + * The account that must send the {@link XChainCommit} transaction on the source chain. + */ + OtherChainSource: Account +} + +/** + * Verify the form and type of an XChainCreateClaimID at runtime. + * + * @param tx - An XChainCreateClaimID Transaction. + * @throws When the XChainCreateClaimID is malformed. + */ +export function validateXChainCreateClaimID(tx: Record): void { + validateBaseTransaction(tx) + + validateRequiredField(tx, 'XChainBridge', isXChainBridge) + + validateRequiredField(tx, 'SignatureReward', isAmount) + + validateRequiredField(tx, 'OtherChainSource', isAccount) +} diff --git a/packages/xrpl/src/models/transactions/XChainModifyBridge.ts b/packages/xrpl/src/models/transactions/XChainModifyBridge.ts new file mode 100644 index 0000000000..841960b8f0 --- /dev/null +++ b/packages/xrpl/src/models/transactions/XChainModifyBridge.ts @@ -0,0 +1,77 @@ +import { Amount, XChainBridge } from '../common' + +import { + BaseTransaction, + GlobalFlags, + isAmount, + isXChainBridge, + validateBaseTransaction, + validateOptionalField, + validateRequiredField, +} from './common' + +/** + * Enum representing values of {@link XChainModifyBridge} transaction flags. + * + * @category Transaction Flags + */ +export enum XChainModifyBridgeFlags { + /** Clears the MinAccountCreateAmount of the bridge. */ + tfClearAccountCreateAmount = 0x00010000, +} + +/** + * Map of flags to boolean values representing {@link XChainModifyBridge} transaction + * flags. + * + * @category Transaction Flags + */ +export interface XChainModifyBridgeFlagsInterface extends GlobalFlags { + /** Clears the MinAccountCreateAmount of the bridge. */ + tfClearAccountCreateAmount?: boolean +} + +/** + * The XChainModifyBridge transaction allows bridge managers to modify the parameters + * of the bridge. + * + * @category Transaction Models + */ +export interface XChainModifyBridge extends BaseTransaction { + TransactionType: 'XChainModifyBridge' + + /** + * The bridge to modify. + */ + XChainBridge: XChainBridge + + /** + * The signature reward split between the witnesses for submitting attestations. + */ + SignatureReward?: Amount + + /** + * The minimum amount, in XRP, required for a {@link XChainAccountCreateCommit} + * transaction. If this is not present, the {@link XChainAccountCreateCommit} + * transaction will fail. This field can only be present on XRP-XRP bridges. + */ + MinAccountCreateAmount?: Amount + + Flags?: number | XChainModifyBridgeFlagsInterface +} + +/** + * Verify the form and type of an XChainModifyBridge at runtime. + * + * @param tx - An XChainModifyBridge Transaction. + * @throws When the XChainModifyBridge is malformed. + */ +export function validateXChainModifyBridge(tx: Record): void { + validateBaseTransaction(tx) + + validateRequiredField(tx, 'XChainBridge', isXChainBridge) + + validateOptionalField(tx, 'SignatureReward', isAmount) + + validateOptionalField(tx, 'MinAccountCreateAmount', isAmount) +} diff --git a/packages/xrpl/src/models/transactions/accountDelete.ts b/packages/xrpl/src/models/transactions/accountDelete.ts index 9e8c403c8e..bf9282ad5b 100644 --- a/packages/xrpl/src/models/transactions/accountDelete.ts +++ b/packages/xrpl/src/models/transactions/accountDelete.ts @@ -1,6 +1,12 @@ -import { ValidationError } from '../../errors' - -import { BaseTransaction, validateBaseTransaction } from './common' +import { + Account, + BaseTransaction, + isAccount, + isNumber, + validateBaseTransaction, + validateOptionalField, + validateRequiredField, +} from './common' /** * An AccountDelete transaction deletes an account and any objects it owns in @@ -16,7 +22,7 @@ export interface AccountDelete extends BaseTransaction { * sending account. Must be a funded account in the ledger, and must not be. * the sending account. */ - Destination: string + Destination: Account /** * Arbitrary destination tag that identifies a hosted recipient or other. * information for the recipient of the deleted account's leftover XRP. @@ -33,18 +39,6 @@ export interface AccountDelete extends BaseTransaction { export function validateAccountDelete(tx: Record): void { validateBaseTransaction(tx) - if (tx.Destination === undefined) { - throw new ValidationError('AccountDelete: missing field Destination') - } - - if (typeof tx.Destination !== 'string') { - throw new ValidationError('AccountDelete: invalid Destination') - } - - if ( - tx.DestinationTag !== undefined && - typeof tx.DestinationTag !== 'number' - ) { - throw new ValidationError('AccountDelete: invalid DestinationTag') - } + validateRequiredField(tx, 'Destination', isAccount) + validateOptionalField(tx, 'DestinationTag', isNumber) } diff --git a/packages/xrpl/src/models/transactions/accountSet.ts b/packages/xrpl/src/models/transactions/accountSet.ts index b46b836229..d2df57ee05 100644 --- a/packages/xrpl/src/models/transactions/accountSet.ts +++ b/packages/xrpl/src/models/transactions/accountSet.ts @@ -1,10 +1,12 @@ -/* eslint-disable complexity -- Necessary for validateAccountSet */ - -import { isValidClassicAddress } from '@transia/ripple-address-codec' - import { ValidationError } from '../../errors' -import { BaseTransaction, validateBaseTransaction } from './common' +import { + Account, + BaseTransaction, + isAccount, + validateBaseTransaction, + validateOptionalField, +} from './common' /** * Enum for AccountSet Flags. @@ -57,6 +59,8 @@ export enum AccountSetAsfFlags { asfDisallowIncomingPayChan = 14, /** Disallow other accounts from creating incoming Trustlines */ asfDisallowIncomingTrustline = 15, + /** Permanently gain the ability to claw back issued IOUs */ + // asfAllowTrustLineClawback = 16, /** Disallow other accounts from sending incoming Remits */ asfDisallowIncomingRemit = 16, } @@ -158,7 +162,7 @@ export interface AccountSet extends BaseTransaction { * Sets an alternate account that is allowed to mint NFTokens on this * account's behalf using NFTokenMint's `Issuer` field. */ - NFTokenMinter?: string + NFTokenMinter?: Account } const MIN_TICK_SIZE = 3 @@ -170,16 +174,11 @@ const MAX_TICK_SIZE = 15 * @param tx - An AccountSet Transaction. * @throws When the AccountSet is Malformed. */ -// eslint-disable-next-line max-lines-per-function, max-statements -- okay for this method, only a little over +// eslint-disable-next-line max-lines-per-function -- okay for this method, only a little over export function validateAccountSet(tx: Record): void { validateBaseTransaction(tx) - if ( - tx.NFTokenMinter !== undefined && - !isValidClassicAddress(String(tx.NFTokenMinter)) - ) { - throw new ValidationError('AccountSet: invalid NFTokenMinter') - } + validateOptionalField(tx, 'NFTokenMinter', isAccount) if (tx.ClearFlag !== undefined) { if (typeof tx.ClearFlag !== 'number') { diff --git a/packages/xrpl/src/models/transactions/checkCash.ts b/packages/xrpl/src/models/transactions/checkCash.ts index e33afb5c60..462f1944c6 100644 --- a/packages/xrpl/src/models/transactions/checkCash.ts +++ b/packages/xrpl/src/models/transactions/checkCash.ts @@ -1,4 +1,3 @@ -/* eslint-disable complexity -- Necessary for validateCheckCash */ import { ValidationError } from '../../errors' import { Amount } from '../common' diff --git a/packages/xrpl/src/models/transactions/checkCreate.ts b/packages/xrpl/src/models/transactions/checkCreate.ts index 332ad79a0f..c8a84430f4 100644 --- a/packages/xrpl/src/models/transactions/checkCreate.ts +++ b/packages/xrpl/src/models/transactions/checkCreate.ts @@ -1,4 +1,3 @@ -/* eslint-disable complexity -- Necessary for validateCheckCreate */ import { ValidationError } from '../../errors' import { Amount } from '../common' @@ -6,6 +5,11 @@ import { BaseTransaction, validateBaseTransaction, isIssuedCurrency, + isAccount, + validateRequiredField, + validateOptionalField, + isNumber, + Account, } from './common' /** @@ -18,7 +22,7 @@ import { export interface CheckCreate extends BaseTransaction { TransactionType: 'CheckCreate' /** The unique address of the account that can cash the Check. */ - Destination: string + Destination: Account /** * Maximum amount of source currency the Check is allowed to debit the * sender, including transfer fees on non-XRP currencies. The Check can only @@ -57,9 +61,8 @@ export function validateCheckCreate(tx: Record): void { throw new ValidationError('CheckCreate: missing field SendMax') } - if (tx.Destination === undefined) { - throw new ValidationError('CheckCreate: missing field Destination') - } + validateRequiredField(tx, 'Destination', isAccount) + validateOptionalField(tx, 'DestinationTag', isNumber) if ( typeof tx.SendMax !== 'string' && @@ -69,17 +72,6 @@ export function validateCheckCreate(tx: Record): void { throw new ValidationError('CheckCreate: invalid SendMax') } - if (typeof tx.Destination !== 'string') { - throw new ValidationError('CheckCreate: invalid Destination') - } - - if ( - tx.DestinationTag !== undefined && - typeof tx.DestinationTag !== 'number' - ) { - throw new ValidationError('CheckCreate: invalid DestinationTag') - } - if (tx.Expiration !== undefined && typeof tx.Expiration !== 'number') { throw new ValidationError('CheckCreate: invalid Expiration') } diff --git a/packages/xrpl/src/models/transactions/clawback.ts b/packages/xrpl/src/models/transactions/clawback.ts new file mode 100644 index 0000000000..fb51859cfc --- /dev/null +++ b/packages/xrpl/src/models/transactions/clawback.ts @@ -0,0 +1,49 @@ +import { ValidationError } from '../../errors' +import { IssuedCurrencyAmount } from '../common' + +import { + BaseTransaction, + validateBaseTransaction, + isIssuedCurrency, +} from './common' + +/** + * The Clawback transaction is used by the token issuer to claw back + * issued tokens from a holder. + */ +export interface Clawback extends BaseTransaction { + TransactionType: 'Clawback' + /** + * Indicates the AccountID that submitted this transaction. The account MUST + * be the issuer of the currency. + */ + Account: string + /** + * The amount of currency to deliver, and it must be non-XRP. The nested field + * names MUST be lower-case. The `issuer` field MUST be the holder's address, + * whom to be clawed back. + */ + Amount: IssuedCurrencyAmount +} + +/** + * Verify the form and type of an Clawback at runtime. + * + * @param tx - An Clawback Transaction. + * @throws When the Clawback is Malformed. + */ +export function validateClawback(tx: Record): void { + validateBaseTransaction(tx) + + if (tx.Amount == null) { + throw new ValidationError('Clawback: missing field Amount') + } + + if (!isIssuedCurrency(tx.Amount)) { + throw new ValidationError('Clawback: invalid Amount') + } + + if (isIssuedCurrency(tx.Amount) && tx.Account === tx.Amount.issuer) { + throw new ValidationError('Clawback: invalid holder Account') + } +} diff --git a/packages/xrpl/src/models/transactions/common.ts b/packages/xrpl/src/models/transactions/common.ts index 41915eddd4..d5db1ff33c 100644 --- a/packages/xrpl/src/models/transactions/common.ts +++ b/packages/xrpl/src/models/transactions/common.ts @@ -1,16 +1,16 @@ -/* eslint-disable max-lines-per-function -- Necessary for validateBaseTransaction */ -/* eslint-disable complexity -- Necessary for validateBaseTransaction */ -/* eslint-disable max-statements -- Necessary for validateBaseTransaction */ -import { TRANSACTION_TYPES } from '@transia/ripple-binary-codec' +import { isValidClassicAddress, isValidXAddress } from 'ripple-address-codec' +import { TRANSACTION_TYPES } from 'ripple-binary-codec' import { ValidationError } from '../../errors' import { Amount, HookParameter, + EmitDetails, + Currency, IssuedCurrencyAmount, Memo, Signer, - EmitDetails, + XChainBridge, } from '../common' import { onlyHasFields } from '../utils' @@ -57,17 +57,57 @@ function isSigner(obj: unknown): boolean { ) } +const XRP_CURRENCY_SIZE = 1 +const ISSUE_SIZE = 2 const ISSUED_CURRENCY_SIZE = 3 +const XCHAIN_BRIDGE_SIZE = 4 function isRecord(value: unknown): value is Record { return value !== null && typeof value === 'object' } +/** + * Verify the form and type of a string at runtime. + * + * @param str - The object to check the form and type of. + * @returns Whether the string is properly formed. + */ +export function isString(str: unknown): str is string { + return typeof str === 'string' +} + +/** + * Verify the form and type of a number at runtime. + * + * @param num - The object to check the form and type of. + * @returns Whether the number is properly formed. + */ +export function isNumber(num: unknown): num is number { + return typeof num === 'number' +} + +/** + * Verify the form and type of an IssuedCurrency at runtime. + * + * @param input - The input to check the form and type of. + * @returns Whether the IssuedCurrency is properly formed. + */ +export function isCurrency(input: unknown): input is Currency { + return ( + isRecord(input) && + ((Object.keys(input).length === ISSUE_SIZE && + typeof input.issuer === 'string' && + typeof input.currency === 'string') || + (Object.keys(input).length === XRP_CURRENCY_SIZE && + input.currency === 'XAH')) + ) +} + /** * Verify the form and type of an IssuedCurrencyAmount at runtime. * * @param input - The input to check the form and type of. - * @returns Whether the IssuedCurrencyAmount is malformed. + * @returns Whether the IssuedCurrencyAmount is properly formed. */ export function isIssuedCurrency( input: unknown, @@ -81,16 +121,101 @@ export function isIssuedCurrency( ) } +/** + * Must be a valid account address + */ +export type Account = string + +/** + * Verify a string is in fact a valid account address. + * + * @param account - The object to check the form and type of. + * @returns Whether the account is properly formed account for a transaction. + */ +export function isAccount(account: unknown): account is Account { + return ( + typeof account === 'string' && + (isValidClassicAddress(account) || isValidXAddress(account)) + ) +} + /** * Verify the form and type of an Amount at runtime. * * @param amount - The object to check the form and type of. - * @returns Whether the Amount is malformed. + * @returns Whether the Amount is properly formed. */ export function isAmount(amount: unknown): amount is Amount { return typeof amount === 'string' || isIssuedCurrency(amount) } +/** + * Verify the form and type of an XChainBridge at runtime. + * + * @param input - The input to check the form and type of. + * @returns Whether the XChainBridge is properly formed. + */ +export function isXChainBridge(input: unknown): input is XChainBridge { + return ( + isRecord(input) && + Object.keys(input).length === XCHAIN_BRIDGE_SIZE && + typeof input.LockingChainDoor === 'string' && + isCurrency(input.LockingChainIssue) && + typeof input.IssuingChainDoor === 'string' && + isCurrency(input.IssuingChainIssue) + ) +} + +/* eslint-disable @typescript-eslint/restrict-template-expressions -- tx.TransactionType is checked before any calls */ + +/** + * Verify the form and type of a required type for a transaction at runtime. + * + * @param tx - The transaction input to check the form and type of. + * @param paramName - The name of the transaction parameter. + * @param checkValidity - The function to use to check the type. + * @throws + */ +export function validateRequiredField( + tx: Record, + paramName: string, + checkValidity: (inp: unknown) => boolean, +): void { + if (tx[paramName] == null) { + throw new ValidationError( + `${tx.TransactionType}: missing field ${paramName}`, + ) + } + + if (!checkValidity(tx[paramName])) { + throw new ValidationError( + `${tx.TransactionType}: invalid field ${paramName}`, + ) + } +} + +/** + * Verify the form and type of an optional type for a transaction at runtime. + * + * @param tx - The transaction input to check the form and type of. + * @param paramName - The name of the transaction parameter. + * @param checkValidity - The function to use to check the type. + * @throws + */ +export function validateOptionalField( + tx: Record, + paramName: string, + checkValidity: (inp: unknown) => boolean, +): void { + if (tx[paramName] !== undefined && !checkValidity(tx[paramName])) { + throw new ValidationError( + `${tx.TransactionType}: invalid field ${paramName}`, + ) + } +} + +/* eslint-enable @typescript-eslint/restrict-template-expressions -- checked before */ + // eslint-disable-next-line @typescript-eslint/no-empty-interface -- no global flags right now, so this is fine export interface GlobalFlags {} @@ -98,13 +223,11 @@ export interface GlobalFlags {} * Every transaction has the same set of common fields. */ export interface BaseTransaction { - /** The unique address of the account that initiated the transaction. */ - Account: string + /** The unique address of the transaction sender. */ + Account: Account /** * The type of transaction. Valid types include: `Payment`, `OfferCreate`, - * `SignerListSet`, `EscrowCreate`, `EscrowFinish`, `EscrowCancel`, - * `PaymentChannelCreate`, `PaymentChannelFund`, `PaymentChannelClaim`, and - * `DepositPreauth`. + * `TrustSet`, and many others. */ TransactionType: string /** @@ -193,14 +316,6 @@ export interface BaseTransaction { * @throws When the common param is malformed. */ export function validateBaseTransaction(common: Record): void { - if (common.Account === undefined) { - throw new ValidationError('BaseTransaction: missing field Account') - } - - if (typeof common.Account !== 'string') { - throw new ValidationError('BaseTransaction: Account not string') - } - if (common.TransactionType === undefined) { throw new ValidationError('BaseTransaction: missing field TransactionType') } @@ -213,27 +328,15 @@ export function validateBaseTransaction(common: Record): void { throw new ValidationError('BaseTransaction: Unknown TransactionType') } - if (common.Fee !== undefined && typeof common.Fee !== 'string') { - throw new ValidationError('BaseTransaction: invalid Fee') - } + validateRequiredField(common, 'Account', isString) - if (common.Sequence !== undefined && typeof common.Sequence !== 'number') { - throw new ValidationError('BaseTransaction: invalid Sequence') - } + validateOptionalField(common, 'Fee', isString) - if ( - common.AccountTxnID !== undefined && - typeof common.AccountTxnID !== 'string' - ) { - throw new ValidationError('BaseTransaction: invalid AccountTxnID') - } + validateOptionalField(common, 'Sequence', isNumber) - if ( - common.LastLedgerSequence !== undefined && - typeof common.LastLedgerSequence !== 'number' - ) { - throw new ValidationError('BaseTransaction: invalid LastLedgerSequence') - } + validateOptionalField(common, 'AccountTxnID', isString) + + validateOptionalField(common, 'LastLedgerSequence', isNumber) // eslint-disable-next-line @typescript-eslint/consistent-type-assertions -- Only used by JS const memos = common.Memos as Array<{ Memo?: unknown }> | undefined @@ -251,33 +354,15 @@ export function validateBaseTransaction(common: Record): void { throw new ValidationError('BaseTransaction: invalid Signers') } - if (common.SourceTag !== undefined && typeof common.SourceTag !== 'number') { - throw new ValidationError('BaseTransaction: invalid SourceTag') - } + validateOptionalField(common, 'SourceTag', isNumber) - if ( - common.SigningPubKey !== undefined && - typeof common.SigningPubKey !== 'string' - ) { - throw new ValidationError('BaseTransaction: invalid SigningPubKey') - } + validateOptionalField(common, 'SigningPubKey', isString) - if ( - common.TicketSequence !== undefined && - typeof common.TicketSequence !== 'number' - ) { - throw new ValidationError('BaseTransaction: invalid TicketSequence') - } + validateOptionalField(common, 'TicketSequence', isNumber) - if ( - common.TxnSignature !== undefined && - typeof common.TxnSignature !== 'string' - ) { - throw new ValidationError('BaseTransaction: invalid TxnSignature') - } - if (common.NetworkID !== undefined && typeof common.NetworkID !== 'number') { - throw new ValidationError('BaseTransaction: invalid NetworkID') - } + validateOptionalField(common, 'TxnSignature', isString) + + validateOptionalField(common, 'NetworkID', isNumber) } /** diff --git a/packages/xrpl/src/models/transactions/depositPreauth.ts b/packages/xrpl/src/models/transactions/depositPreauth.ts index 802488e80c..eaf186e8b1 100644 --- a/packages/xrpl/src/models/transactions/depositPreauth.ts +++ b/packages/xrpl/src/models/transactions/depositPreauth.ts @@ -1,4 +1,3 @@ -/* eslint-disable complexity -- Necessary for validateDepositPreauth */ import { ValidationError } from '../../errors' import { BaseTransaction, validateBaseTransaction } from './common' diff --git a/packages/xrpl/src/models/transactions/enableAmendment.ts b/packages/xrpl/src/models/transactions/enableAmendment.ts new file mode 100644 index 0000000000..638139e68f --- /dev/null +++ b/packages/xrpl/src/models/transactions/enableAmendment.ts @@ -0,0 +1,26 @@ +import { BaseTransaction } from './common' + +/** + * Transaction Flags for an EnableAmendment Transaction. + * + * @category Transaction Flags + */ +export enum EnableAmendmentFlags { + /** Support for this amendment increased to at least 80% of trusted validators starting with this ledger version. */ + tfGotMajority = 0x00010000, + /** Support for this amendment decreased to less than 80% of trusted validators starting with this ledger version. */ + tfLostMajority = 0x00020000, +} + +/** + * Mark a change in the status of a proposed amendment when it gains majority, looses majority, or is enabled. + * + * @category Pseudo Transaction Models + */ +export interface EnableAmendment extends BaseTransaction { + TransactionType: 'EnableAmendment' + /** A unique identifier for the amendment. */ + Amendment: string + /** The ledger index where this pseudo-transaction appears. */ + LedgerSequence: number +} diff --git a/packages/xrpl/src/models/transactions/escrowCancel.ts b/packages/xrpl/src/models/transactions/escrowCancel.ts index b51649a4c5..d676584e24 100644 --- a/packages/xrpl/src/models/transactions/escrowCancel.ts +++ b/packages/xrpl/src/models/transactions/escrowCancel.ts @@ -1,6 +1,12 @@ import { ValidationError } from '../../errors' -import { BaseTransaction, validateBaseTransaction } from './common' +import { + Account, + BaseTransaction, + isAccount, + validateBaseTransaction, + validateRequiredField, +} from './common' /** * Return escrowed amount to the sender. @@ -10,12 +16,12 @@ import { BaseTransaction, validateBaseTransaction } from './common' export interface EscrowCancel extends BaseTransaction { TransactionType: 'EscrowCancel' /** Address of the source account that funded the escrow payment. */ - Owner: string + Owner: Account /** * Transaction sequence (or Ticket number) of EscrowCreate transaction that. * created the escrow to cancel. */ - OfferSequence?: number + OfferSequence?: number | string /** * The ID of the Escrow ledger object to cancel as a 64-character hexadecimal * string. @@ -32,25 +38,24 @@ export interface EscrowCancel extends BaseTransaction { export function validateEscrowCancel(tx: Record): void { validateBaseTransaction(tx) - if (tx.Owner === undefined) { - throw new ValidationError('EscrowCancel: missing Owner') - } - - if (typeof tx.Owner !== 'string') { - throw new ValidationError('EscrowCancel: Owner must be a string') - } + validateRequiredField(tx, 'Owner', isAccount) - if (tx.OfferSequence === undefined && tx.EscrowID === undefined) { + if (tx.OfferSequence == null && tx.EscrowID == null) { throw new ValidationError( 'EscrowCancel: must include OfferSequence or EscrowID', ) } - if (tx.OfferSequence !== undefined && typeof tx.OfferSequence !== 'number') { - throw new ValidationError('EscrowCancel: invalid OfferSequence') + if (tx.EscrowID != null && typeof tx.EscrowID !== 'string') { + throw new ValidationError('EscrowCancel: invalid EscrowID') } - if (tx.EscrowID !== undefined && typeof tx.EscrowID !== 'string') { - throw new ValidationError('EscrowCancel: invalid EscrowID') + if ( + (tx.OfferSequence != null && + typeof tx.OfferSequence !== 'number' && + typeof tx.OfferSequence !== 'string') || + Number.isNaN(Number(tx.OfferSequence)) + ) { + throw new ValidationError('EscrowCancel: OfferSequence must be a number') } } diff --git a/packages/xrpl/src/models/transactions/escrowCreate.ts b/packages/xrpl/src/models/transactions/escrowCreate.ts index 8c0a327f0d..349cb33313 100644 --- a/packages/xrpl/src/models/transactions/escrowCreate.ts +++ b/packages/xrpl/src/models/transactions/escrowCreate.ts @@ -1,8 +1,16 @@ -/* eslint-disable complexity -- Necessary for validateEscrowCreate */ import { ValidationError } from '../../errors' import { Amount } from '../common' -import { BaseTransaction, isAmount, validateBaseTransaction } from './common' +import { + Account, + BaseTransaction, + isAccount, + isAmount, + isNumber, + validateBaseTransaction, + validateOptionalField, + validateRequiredField, +} from './common' /** * Sequester amount until the escrow process either finishes or is canceled. @@ -18,7 +26,7 @@ export interface EscrowCreate extends BaseTransaction { */ Amount: Amount /** Address to receive escrowed amount. */ - Destination: string + Destination: Account /** * The time, in seconds since the Ripple Epoch, when this escrow expires. * This value is immutable; the funds can only be returned the sender after. @@ -60,13 +68,8 @@ export function validateEscrowCreate(tx: Record): void { throw new ValidationError('EscrowCreate: Amount must be an Amount') } - if (tx.Destination === undefined) { - throw new ValidationError('EscrowCreate: missing field Destination') - } - - if (typeof tx.Destination !== 'string') { - throw new ValidationError('EscrowCreate: Destination must be a string') - } + validateRequiredField(tx, 'Destination', isAccount) + validateOptionalField(tx, 'DestinationTag', isNumber) if (tx.CancelAfter === undefined && tx.FinishAfter === undefined) { throw new ValidationError( @@ -91,11 +94,4 @@ export function validateEscrowCreate(tx: Record): void { if (tx.Condition !== undefined && typeof tx.Condition !== 'string') { throw new ValidationError('EscrowCreate: Condition must be a string') } - - if ( - tx.DestinationTag !== undefined && - typeof tx.DestinationTag !== 'number' - ) { - throw new ValidationError('EscrowCreate: DestinationTag must be a number') - } } diff --git a/packages/xrpl/src/models/transactions/escrowFinish.ts b/packages/xrpl/src/models/transactions/escrowFinish.ts index 1382402ccf..d54efcc68e 100644 --- a/packages/xrpl/src/models/transactions/escrowFinish.ts +++ b/packages/xrpl/src/models/transactions/escrowFinish.ts @@ -1,6 +1,12 @@ import { ValidationError } from '../../errors' -import { BaseTransaction, validateBaseTransaction } from './common' +import { + Account, + BaseTransaction, + isAccount, + validateBaseTransaction, + validateRequiredField, +} from './common' /** * Deliver amount from a held payment to the recipient. @@ -10,12 +16,12 @@ import { BaseTransaction, validateBaseTransaction } from './common' export interface EscrowFinish extends BaseTransaction { TransactionType: 'EscrowFinish' /** Address of the source account that funded the held payment. */ - Owner: string + Owner: Account /** * Transaction sequence of EscrowCreate transaction that created the held. * payment to finish. */ - OfferSequence: number + OfferSequence: number | string /** * Hex value matching the previously-supplied PREIMAGE-SHA-256. * crypto-condition of the held payment. @@ -37,19 +43,17 @@ export interface EscrowFinish extends BaseTransaction { export function validateEscrowFinish(tx: Record): void { validateBaseTransaction(tx) - if (tx.Owner === undefined) { - throw new ValidationError('EscrowFinish: missing field Owner') - } - - if (typeof tx.Owner !== 'string') { - throw new ValidationError('EscrowFinish: Owner must be a string') - } + validateRequiredField(tx, 'Owner', isAccount) - if (tx.OfferSequence === undefined) { + if (tx.OfferSequence == null) { throw new ValidationError('EscrowFinish: missing field OfferSequence') } - if (typeof tx.OfferSequence !== 'number') { + if ( + (typeof tx.OfferSequence !== 'number' && + typeof tx.OfferSequence !== 'string') || + Number.isNaN(Number(tx.OfferSequence)) + ) { throw new ValidationError('EscrowFinish: OfferSequence must be a number') } diff --git a/packages/xrpl/src/models/transactions/index.ts b/packages/xrpl/src/models/transactions/index.ts index fbe057773c..17eaceae4f 100644 --- a/packages/xrpl/src/models/transactions/index.ts +++ b/packages/xrpl/src/models/transactions/index.ts @@ -1,5 +1,12 @@ -export { validate, TransactionAndMetadata, Transaction } from './transaction' -export { TransactionMetadata } from './metadata' +export { BaseTransaction } from './common' +export { + validate, + PseudoTransaction, + SubmittableTransaction, + TransactionAndMetadata, + Transaction, +} from './transaction' +export * from './metadata' export { AccountSetAsfFlags, AccountSetTfFlags, @@ -7,14 +14,32 @@ export { AccountSet, } from './accountSet' export { AccountDelete } from './accountDelete' +export { AMMBid } from './AMMBid' +export { AMMDelete } from './AMMDelete' +export { + AMMDepositFlags, + AMMDepositFlagsInterface, + AMMDeposit, +} from './AMMDeposit' +export { AMMCreate } from './AMMCreate' +export { AMMVote } from './AMMVote' +export { + AMMWithdrawFlags, + AMMWithdrawFlagsInterface, + AMMWithdraw, +} from './AMMWithdraw' export { CheckCancel } from './checkCancel' export { CheckCash } from './checkCash' export { CheckCreate } from './checkCreate' export { ClaimReward } from './claimReward' +export { Clawback } from './clawback' +export { DIDDelete } from './DIDDelete' +export { DIDSet } from './DIDSet' export { DepositPreauth } from './depositPreauth' export { EscrowCancel } from './escrowCancel' export { EscrowCreate } from './escrowCreate' export { EscrowFinish } from './escrowFinish' +export { EnableAmendment, EnableAmendmentFlags } from './enableAmendment' export { Import } from './import' export { Invoke } from './invoke' export { NFTokenAcceptOffer } from './NFTokenAcceptOffer' @@ -36,6 +61,8 @@ export { OfferCreateFlagsInterface, OfferCreate, } from './offerCreate' +export { OracleDelete } from './oracleDelete' +export { OracleSet } from './oracleSet' export { PaymentFlags, PaymentFlagsInterface, Payment } from './payment' export { PaymentChannelClaimFlags, @@ -46,10 +73,12 @@ export { PaymentChannelCreate } from './paymentChannelCreate' export { PaymentChannelFund } from './paymentChannelFund' export { Remit } from './remit' export { SetHookFlagsInterface, SetHookFlags, SetHook } from './setHook' +export { SetFee, SetFeePreAmendment, SetFeePostAmendment } from './setFee' export { SetRegularKey } from './setRegularKey' export { SignerListSet } from './signerListSet' export { TicketCreate } from './ticketCreate' export { TrustSetFlagsInterface, TrustSetFlags, TrustSet } from './trustSet' +export { UNLModify } from './UNLModify' export { URITokenMintFlagsInterface, URITokenMintFlags, @@ -59,3 +88,15 @@ export { URITokenBurn } from './uriTokenBurn' export { URITokenCreateSellOffer } from './uriTokenCreateSellOffer' export { URITokenBuy } from './uriTokenBuy' export { URITokenCancelSellOffer } from './uriTokenCancelSellOffer' +export { XChainAddAccountCreateAttestation } from './XChainAddAccountCreateAttestation' +export { XChainAddClaimAttestation } from './XChainAddClaimAttestation' +export { XChainClaim } from './XChainClaim' +export { XChainCommit } from './XChainCommit' +export { XChainCreateBridge } from './XChainCreateBridge' +export { XChainCreateClaimID } from './XChainCreateClaimID' +export { XChainAccountCreateCommit } from './XChainAccountCreateCommit' +export { + XChainModifyBridge, + XChainModifyBridgeFlags, + XChainModifyBridgeFlagsInterface, +} from './XChainModifyBridge' diff --git a/packages/xrpl/src/models/transactions/metadata.ts b/packages/xrpl/src/models/transactions/metadata.ts index fa7167618f..25662a9838 100644 --- a/packages/xrpl/src/models/transactions/metadata.ts +++ b/packages/xrpl/src/models/transactions/metadata.ts @@ -1,5 +1,21 @@ import { Amount } from '../common' +import { BaseTransaction } from './common' +import { + NFTokenAcceptOffer, + NFTokenAcceptOfferMetadata, +} from './NFTokenAcceptOffer' +import { + NFTokenCancelOffer, + NFTokenCancelOfferMetadata, +} from './NFTokenCancelOffer' +import { + NFTokenCreateOffer, + NFTokenCreateOfferMetadata, +} from './NFTokenCreateOffer' +import { NFTokenMint, NFTokenMintMetadata } from './NFTokenMint' +import { Payment, PaymentMetadata } from './payment' + export interface HookExecution { HookExecution: { HookAccount: string @@ -47,6 +63,7 @@ export interface DeletedNode { DeletedNode: { LedgerEntryType: string LedgerIndex: string + PreviousFields?: { [field: string]: unknown } FinalFields: { [field: string]: unknown } } } @@ -83,13 +100,26 @@ export function isDeletedNode(node: Node): node is DeletedNode { return Object.prototype.hasOwnProperty.call(node, `DeletedNode`) } -export interface TransactionMetadata { +export interface TransactionMetadataBase { + AffectedNodes: Node[] HookExecutions?: HookExecution[] HookEmissions?: HookEmission[] - AffectedNodes: Node[] DeliveredAmount?: Amount // "unavailable" possible for transactions before 2014-01-20 delivered_amount?: Amount | 'unavailable' TransactionIndex: number TransactionResult: string } + +export type TransactionMetadata = + T extends Payment + ? PaymentMetadata + : T extends NFTokenMint + ? NFTokenMintMetadata + : T extends NFTokenCreateOffer + ? NFTokenCreateOfferMetadata + : T extends NFTokenAcceptOffer + ? NFTokenAcceptOfferMetadata + : T extends NFTokenCancelOffer + ? NFTokenCancelOfferMetadata + : TransactionMetadataBase diff --git a/packages/xrpl/src/models/transactions/offerCreate.ts b/packages/xrpl/src/models/transactions/offerCreate.ts index e8bad10003..62be4e94b1 100644 --- a/packages/xrpl/src/models/transactions/offerCreate.ts +++ b/packages/xrpl/src/models/transactions/offerCreate.ts @@ -1,4 +1,3 @@ -/* eslint-disable complexity -- Necessary for validateOfferCreate */ import { ValidationError } from '../../errors' import { Amount } from '../common' diff --git a/packages/xrpl/src/models/transactions/oracleDelete.ts b/packages/xrpl/src/models/transactions/oracleDelete.ts new file mode 100644 index 0000000000..2fda7a91e2 --- /dev/null +++ b/packages/xrpl/src/models/transactions/oracleDelete.ts @@ -0,0 +1,32 @@ +import { + BaseTransaction, + isNumber, + validateBaseTransaction, + validateRequiredField, +} from './common' + +/** + * Delete an Oracle ledger entry. + * + * @category Transaction Models + */ +export interface OracleDelete extends BaseTransaction { + TransactionType: 'OracleDelete' + + /** + * A unique identifier of the price oracle for the Account. + */ + OracleDocumentID: number +} + +/** + * Verify the form and type of a OracleDelete at runtime. + * + * @param tx - A OracleDelete Transaction. + * @throws When the OracleDelete is malformed. + */ +export function validateOracleDelete(tx: Record): void { + validateBaseTransaction(tx) + + validateRequiredField(tx, 'OracleDocumentID', isNumber) +} diff --git a/packages/xrpl/src/models/transactions/oracleSet.ts b/packages/xrpl/src/models/transactions/oracleSet.ts new file mode 100644 index 0000000000..6b3f395d0d --- /dev/null +++ b/packages/xrpl/src/models/transactions/oracleSet.ts @@ -0,0 +1,176 @@ +import { ValidationError } from '../../errors' +import { PriceData } from '../common' + +import { + BaseTransaction, + isNumber, + isString, + validateBaseTransaction, + validateOptionalField, + validateRequiredField, +} from './common' + +const PRICE_DATA_SERIES_MAX_LENGTH = 10 +const SCALE_MAX = 10 + +/** + * Creates a new Oracle ledger entry or updates the fields of an existing one, using the Oracle ID. + * + * The oracle provider must complete these steps before submitting this transaction: + * 1. Create or own the XRPL account in the Owner field and have enough XRP to meet the reserve and transaction fee requirements. + * 2. Publish the XRPL account public key, so it can be used for verification by dApps. + * 3. Publish a registry of available price oracles with their unique OracleDocumentID. + * + * @category Transaction Models + */ +export interface OracleSet extends BaseTransaction { + TransactionType: 'OracleSet' + + /** + * A unique identifier of the price oracle for the Account. + */ + OracleDocumentID: number + + /** + * The time the data was last updated, represented as a unix timestamp in seconds. + */ + LastUpdateTime: number + + /** + * An array of up to 10 PriceData objects, each representing the price information + * for a token pair. More than five PriceData objects require two owner reserves. + */ + PriceDataSeries: PriceData[] + + /** + * An arbitrary value that identifies an oracle provider, such as Chainlink, Band, + * or DIA. This field is a string, up to 256 ASCII hex encoded characters (0x20-0x7E). + * This field is required when creating a new Oracle ledger entry, but is optional for updates. + */ + Provider?: string + + /** + * An optional Universal Resource Identifier to reference price data off-chain. This field is limited to 256 bytes. + */ + URI?: string + + /** + * Describes the type of asset, such as "currency", "commodity", or "index". This field is a string, up to 16 ASCII + * hex encoded characters (0x20-0x7E). This field is required when creating a new Oracle ledger entry, but is optional + * for updates. + */ + AssetClass?: string +} + +/** + * Verify the form and type of a OracleSet at runtime. + * + * @param tx - A OracleSet Transaction. + * @throws When the OracleSet is malformed. + */ +// eslint-disable-next-line max-lines-per-function -- necessary to validate many fields +export function validateOracleSet(tx: Record): void { + validateBaseTransaction(tx) + + validateRequiredField(tx, 'OracleDocumentID', isNumber) + + validateRequiredField(tx, 'LastUpdateTime', isNumber) + + validateOptionalField(tx, 'Provider', isString) + + validateOptionalField(tx, 'URI', isString) + + validateOptionalField(tx, 'AssetClass', isString) + + // eslint-disable-next-line max-lines-per-function -- necessary to validate many fields + validateRequiredField(tx, 'PriceDataSeries', (value) => { + if (!Array.isArray(value)) { + throw new ValidationError('OracleSet: PriceDataSeries must be an array') + } + + if (value.length > PRICE_DATA_SERIES_MAX_LENGTH) { + throw new ValidationError( + `OracleSet: PriceDataSeries must have at most ${PRICE_DATA_SERIES_MAX_LENGTH} PriceData objects`, + ) + } + + // TODO: add support for handling inner objects easier (similar to validateRequiredField/validateOptionalField) + for (const priceData of value) { + if (typeof priceData !== 'object') { + throw new ValidationError( + 'OracleSet: PriceDataSeries must be an array of objects', + ) + } + + // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- we are validating the type + if (priceData.PriceData == null) { + throw new ValidationError( + 'OracleSet: PriceDataSeries must have a `PriceData` object', + ) + } + + // check if priceData only has PriceData + if (Object.keys(priceData).length !== 1) { + throw new ValidationError( + 'OracleSet: PriceDataSeries must only have a single PriceData object', + ) + } + + // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- we are validating the type + if (typeof priceData.PriceData.BaseAsset !== 'string') { + throw new ValidationError( + 'OracleSet: PriceDataSeries must have a `BaseAsset` string', + ) + } + + // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- we are validating the type + if (typeof priceData.PriceData.QuoteAsset !== 'string') { + throw new ValidationError( + 'OracleSet: PriceDataSeries must have a `QuoteAsset` string', + ) + } + + // Either AssetPrice and Scale are both present or both excluded + if ( + // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- we are validating the type + (priceData.PriceData.AssetPrice == null) !== + // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- we are validating the type + (priceData.PriceData.Scale == null) + ) { + throw new ValidationError( + 'OracleSet: PriceDataSeries must have both `AssetPrice` and `Scale` if any are present', + ) + } + + if ( + // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- we are validating the type + 'AssetPrice' in priceData.PriceData && + // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- we are validating the type + !isNumber(priceData.PriceData.AssetPrice) + ) { + throw new ValidationError('OracleSet: invalid field AssetPrice') + } + + if ( + // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- we are validating the type + 'Scale' in priceData.PriceData && + // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- we are validating the type + !isNumber(priceData.PriceData.Scale) + ) { + throw new ValidationError('OracleSet: invalid field Scale') + } + + if ( + // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- we are validating the type + priceData.PriceData.Scale < 0 || + // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- we are validating the type + priceData.PriceData.Scale > SCALE_MAX + ) { + throw new ValidationError( + `OracleSet: Scale must be in range 0-${SCALE_MAX}`, + ) + } + } + return true + }) +} diff --git a/packages/xrpl/src/models/transactions/payment.ts b/packages/xrpl/src/models/transactions/payment.ts index 118e88a534..91d0b86c47 100644 --- a/packages/xrpl/src/models/transactions/payment.ts +++ b/packages/xrpl/src/models/transactions/payment.ts @@ -1,4 +1,3 @@ -/* eslint-disable complexity -- Necessary for validatePayment */ import { ValidationError } from '../../errors' import { Amount, Path } from '../common' import { isFlagEnabled } from '../utils' @@ -8,7 +7,13 @@ import { isAmount, GlobalFlags, validateBaseTransaction, + isAccount, + validateRequiredField, + validateOptionalField, + isNumber, + Account, } from './common' +import type { TransactionMetadataBase } from './metadata' /** * Enum representing values for Payment Transaction Flags. @@ -21,7 +26,7 @@ export enum PaymentFlags { * This is intended to force the transaction to take arbitrage opportunities. * Most clients do not need this. */ - tfNoDirectRipple = 0x00010000, + tfNoRippleDirect = 0x00010000, /** * If the specified Amount cannot be sent without spending more than SendMax, * reduce the received amount instead of failing outright. See Partial. @@ -83,7 +88,7 @@ export interface PaymentFlagsInterface extends GlobalFlags { * This is intended to force the transaction to take arbitrage opportunities. * Most clients do not need this. */ - tfNoDirectRipple?: boolean + tfNoRippleDirect?: boolean /** * If the specified Amount cannot be sent without spending more than SendMax, * reduce the received amount instead of failing outright. See Partial. @@ -113,7 +118,7 @@ export interface Payment extends BaseTransaction { */ Amount: Amount /** The unique address of the account receiving the payment. */ - Destination: string + Destination: Account /** * Arbitrary tag that identifies the reason for the payment to the * destination, or a hosted recipient to pay. @@ -147,6 +152,11 @@ export interface Payment extends BaseTransaction { Flags?: number | PaymentFlagsInterface } +export interface PaymentMetadata extends TransactionMetadataBase { + DeliveredAmount?: Amount + delivered_amount?: Amount | 'unavailable' +} + /** * Verify the form and type of a Payment at runtime. * @@ -164,19 +174,8 @@ export function validatePayment(tx: Record): void { throw new ValidationError('PaymentTransaction: invalid Amount') } - if (tx.Destination === undefined) { - throw new ValidationError('PaymentTransaction: missing field Destination') - } - - if (!isAmount(tx.Destination)) { - throw new ValidationError('PaymentTransaction: invalid Destination') - } - - if (tx.DestinationTag != null && typeof tx.DestinationTag !== 'number') { - throw new ValidationError( - 'PaymentTransaction: DestinationTag must be a number', - ) - } + validateRequiredField(tx, 'Destination', isAccount) + validateOptionalField(tx, 'DestinationTag', isNumber) if (tx.InvoiceID !== undefined && typeof tx.InvoiceID !== 'string') { throw new ValidationError('PaymentTransaction: InvoiceID must be a string') diff --git a/packages/xrpl/src/models/transactions/paymentChannelClaim.ts b/packages/xrpl/src/models/transactions/paymentChannelClaim.ts index 2d4e1535a8..991e02eb2e 100644 --- a/packages/xrpl/src/models/transactions/paymentChannelClaim.ts +++ b/packages/xrpl/src/models/transactions/paymentChannelClaim.ts @@ -1,4 +1,3 @@ -/* eslint-disable complexity -- Necessary for validatePaymentChannelClaim */ import { ValidationError } from '../../errors' import { Amount } from '../common' diff --git a/packages/xrpl/src/models/transactions/paymentChannelCreate.ts b/packages/xrpl/src/models/transactions/paymentChannelCreate.ts index 90f98ea6ce..a0cbf0985e 100644 --- a/packages/xrpl/src/models/transactions/paymentChannelCreate.ts +++ b/packages/xrpl/src/models/transactions/paymentChannelCreate.ts @@ -1,8 +1,16 @@ -/* eslint-disable complexity -- Necessary for validatePaymentChannelCreate */ import { ValidationError } from '../../errors' import { Amount } from '../common' -import { BaseTransaction, validateBaseTransaction, isAmount } from './common' +import { + Account, + BaseTransaction, + isAccount, + isAmount, + isNumber, + validateBaseTransaction, + validateOptionalField, + validateRequiredField, +} from './common' /** * Create a unidirectional channel and fund it. The address sending @@ -23,7 +31,7 @@ export interface PaymentChannelCreate extends BaseTransaction { * Address to receive claims against this channel. This is also known as * the "destination address" for the channel. */ - Destination: string + Destination: Account /** * Amount of time the source address must wait before closing the channel if * it has unclaimed amount. @@ -56,7 +64,6 @@ export interface PaymentChannelCreate extends BaseTransaction { * @param tx - An PaymentChannelCreate Transaction. * @throws When the PaymentChannelCreate is Malformed. */ -// eslint-disable-next-line max-lines-per-function -- okay for this function, there's a lot of things to check export function validatePaymentChannelCreate( tx: Record, ): void { @@ -70,15 +77,8 @@ export function validatePaymentChannelCreate( throw new ValidationError('PaymentChannelCreate: Amount must be an Amount') } - if (tx.Destination === undefined) { - throw new ValidationError('PaymentChannelCreate: missing Destination') - } - - if (typeof tx.Destination !== 'string') { - throw new ValidationError( - 'PaymentChannelCreate: Destination must be a string', - ) - } + validateRequiredField(tx, 'Destination', isAccount) + validateOptionalField(tx, 'DestinationTag', isNumber) if (tx.SettleDelay === undefined) { throw new ValidationError('PaymentChannelCreate: missing SettleDelay') @@ -105,13 +105,4 @@ export function validatePaymentChannelCreate( 'PaymentChannelCreate: CancelAfter must be a number', ) } - - if ( - tx.DestinationTag !== undefined && - typeof tx.DestinationTag !== 'number' - ) { - throw new ValidationError( - 'PaymentChannelCreate: DestinationTag must be a number', - ) - } } diff --git a/packages/xrpl/src/models/transactions/remit.ts b/packages/xrpl/src/models/transactions/remit.ts index 80d7136a00..6db6dfad2c 100644 --- a/packages/xrpl/src/models/transactions/remit.ts +++ b/packages/xrpl/src/models/transactions/remit.ts @@ -55,7 +55,6 @@ export interface Remit extends BaseTransaction { * @param tx - A Remit Transaction. * @throws When the Remit is malformed. */ -// eslint-disable-next-line complexity -- ignore export function validateRemit(tx: Record): void { validateBaseTransaction(tx) @@ -167,7 +166,6 @@ function checkURITokenIDs(tx: Record): void { } } -// eslint-disable-next-line complexity -- ignore function checkMintURIToken(tx: Record): void { function isRecord(value: unknown): value is Record { return value !== null && typeof value === 'object' diff --git a/packages/xrpl/src/models/transactions/setFee.ts b/packages/xrpl/src/models/transactions/setFee.ts new file mode 100644 index 0000000000..157d547e84 --- /dev/null +++ b/packages/xrpl/src/models/transactions/setFee.ts @@ -0,0 +1,48 @@ +import { BaseTransaction } from './common' + +export interface SetFeePreAmendment extends BaseTransaction { + /** + * The charge, in drops of XRP, for the reference transaction, as hex. (This is the transaction cost before scaling for load.) + */ + BaseFee: string + /** + * The cost, in fee units, of the [reference transaction](https://xrpl.org/transaction-cost.html#reference-transaction-cost) + */ + ReferenceFeeUnits: number + /** + * The base reserve, in drops + */ + ReserveBase: number + /** + * The incremental reserve, in drops + */ + ReserveIncrement: number +} + +export interface SetFeePostAmendment extends BaseTransaction { + /** + * The charge, in drops of XRP, for the reference transaction. (This is the transaction cost before scaling for load.) + */ + BaseFeeDrops: string + /** + * The base reserve, in drops + */ + ReserveBaseDrops: string + /** + * The incremental reserve, in drops + */ + ReserveIncrementDrops: string +} + +/** + * Marks a change in transaction cost or reserve requirements as a result of Fee Voting. + * + * The output will be based on the status of the `XRPFees` amendment at the time of this transaction. + * - Before: {@link SetFeePostAmendment} + * - After: {@link SetFeePostAmendment} + * + * @category Pseudo Transaction Models + */ +export type SetFee = { + TransactionType: 'SetFee' +} & (SetFeePreAmendment | SetFeePostAmendment) diff --git a/packages/xrpl/src/models/transactions/signerListSet.ts b/packages/xrpl/src/models/transactions/signerListSet.ts index bfeb9b8c5a..f264d55b2f 100644 --- a/packages/xrpl/src/models/transactions/signerListSet.ts +++ b/packages/xrpl/src/models/transactions/signerListSet.ts @@ -36,7 +36,6 @@ const HEX_WALLET_LOCATOR_REGEX = /^[0-9A-Fa-f]{64}$/u * @param tx - An SignerListSet Transaction. * @throws When the SignerListSet is Malformed. */ -// eslint-disable-next-line complexity -- validation can be complex export function validateSignerListSet(tx: Record): void { validateBaseTransaction(tx) @@ -48,6 +47,7 @@ export function validateSignerListSet(tx: Record): void { throw new ValidationError('SignerListSet: invalid SignerQuorum') } + // All other checks are for if SignerQuorum is greater than 0 if (tx.SignerQuorum === 0) { return } diff --git a/packages/xrpl/src/models/transactions/transaction.ts b/packages/xrpl/src/models/transactions/transaction.ts index ea6cc15712..40a82fce37 100644 --- a/packages/xrpl/src/models/transactions/transaction.ts +++ b/packages/xrpl/src/models/transactions/transaction.ts @@ -1,16 +1,29 @@ -/* eslint-disable complexity -- verifies 19 tx types hence a lot of checks needed */ +/* eslint-disable max-lines -- need to work with a lot of transactions in a switch statement */ /* eslint-disable max-lines-per-function -- need to work with a lot of Tx verifications */ import { ValidationError } from '../../errors' +import { IssuedCurrencyAmount, Memo } from '../common' +import { isHex } from '../utils' import { setTransactionFlagsToNumber } from '../utils/flags' import { AccountDelete, validateAccountDelete } from './accountDelete' import { AccountSet, validateAccountSet } from './accountSet' +import { AMMBid, validateAMMBid } from './AMMBid' +import { AMMCreate, validateAMMCreate } from './AMMCreate' +import { AMMDelete, validateAMMDelete } from './AMMDelete' +import { AMMDeposit, validateAMMDeposit } from './AMMDeposit' +import { AMMVote, validateAMMVote } from './AMMVote' +import { AMMWithdraw, validateAMMWithdraw } from './AMMWithdraw' import { CheckCancel, validateCheckCancel } from './checkCancel' import { CheckCash, validateCheckCash } from './checkCash' import { CheckCreate, validateCheckCreate } from './checkCreate' import { ClaimReward, validateClaimReward } from './claimReward' +import { Clawback, validateClawback } from './clawback' +import { BaseTransaction, isIssuedCurrency } from './common' import { DepositPreauth, validateDepositPreauth } from './depositPreauth' +import { DIDDelete, validateDIDDelete } from './DIDDelete' +import { DIDSet, validateDIDSet } from './DIDSet' +import { EnableAmendment } from './enableAmendment' import { EscrowCancel, validateEscrowCancel } from './escrowCancel' import { EscrowCreate, validateEscrowCreate } from './escrowCreate' import { EscrowFinish, validateEscrowFinish } from './escrowFinish' @@ -33,6 +46,8 @@ import { import { NFTokenMint, validateNFTokenMint } from './NFTokenMint' import { OfferCancel, validateOfferCancel } from './offerCancel' import { OfferCreate, validateOfferCreate } from './offerCreate' +import { OracleDelete, validateOracleDelete } from './oracleDelete' +import { OracleSet, validateOracleSet } from './oracleSet' import { Payment, validatePayment } from './payment' import { PaymentChannelClaim, @@ -47,11 +62,13 @@ import { validatePaymentChannelFund, } from './paymentChannelFund' import { Remit, validateRemit } from './remit' +import { SetFee } from './setFee' import { SetHook, validateSetHook } from './setHook' import { SetRegularKey, validateSetRegularKey } from './setRegularKey' import { SignerListSet, validateSignerListSet } from './signerListSet' import { TicketCreate, validateTicketCreate } from './ticketCreate' import { TrustSet, validateTrustSet } from './trustSet' +import { UNLModify } from './UNLModify' import { URITokenBurn, validateURITokenBurn } from './uriTokenBurn' import { URITokenBuy, validateURITokenBuy } from './uriTokenBuy' import { @@ -63,17 +80,54 @@ import { validateURITokenCreateSellOffer, } from './uriTokenCreateSellOffer' import { URITokenMint, validateURITokenMint } from './uriTokenMint' +import { + XChainAccountCreateCommit, + validateXChainAccountCreateCommit, +} from './XChainAccountCreateCommit' +import { + XChainAddAccountCreateAttestation, + validateXChainAddAccountCreateAttestation, +} from './XChainAddAccountCreateAttestation' +import { + XChainAddClaimAttestation, + validateXChainAddClaimAttestation, +} from './XChainAddClaimAttestation' +import { XChainClaim, validateXChainClaim } from './XChainClaim' +import { XChainCommit, validateXChainCommit } from './XChainCommit' +import { + XChainCreateBridge, + validateXChainCreateBridge, +} from './XChainCreateBridge' +import { + XChainCreateClaimID, + validateXChainCreateClaimID, +} from './XChainCreateClaimID' +import { + XChainModifyBridge, + validateXChainModifyBridge, +} from './XChainModifyBridge' /** + * Transactions that can be submitted by clients + * * @category Transaction Models */ -export type Transaction = +export type SubmittableTransaction = + | AMMBid + | AMMCreate + | AMMDelete + | AMMDeposit + | AMMVote + | AMMWithdraw | AccountDelete | AccountSet | CheckCancel | CheckCash | CheckCreate | ClaimReward + | Clawback + | DIDDelete + | DIDSet | DepositPreauth | EscrowCancel | EscrowCreate @@ -87,6 +141,8 @@ export type Transaction = | NFTokenMint | OfferCancel | OfferCreate + | OracleDelete + | OracleSet | Payment | PaymentChannelClaim | PaymentChannelCreate @@ -102,13 +158,37 @@ export type Transaction = | URITokenCancelSellOffer | URITokenMint | URITokenCreateSellOffer + | XChainAccountCreateCommit + | XChainAddAccountCreateAttestation + | XChainAddClaimAttestation + | XChainClaim + | XChainCommit + | XChainCreateBridge + | XChainCreateClaimID + | XChainModifyBridge + +/** + * Transactions that can only be created by validators. + * + * @category Transaction Models + */ +export type PseudoTransaction = EnableAmendment | SetFee | UNLModify + +/** + * All transactions that can live on the XRPL + * + * @category Transaction Models + */ +export type Transaction = SubmittableTransaction | PseudoTransaction /** * @category Transaction Models */ -export interface TransactionAndMetadata { - transaction: Transaction - metadata: TransactionMetadata +export interface TransactionAndMetadata< + T extends BaseTransaction = Transaction, +> { + transaction: T + metadata: TransactionMetadata } /** @@ -127,9 +207,83 @@ export function validate(transaction: Record): void { if (typeof tx.TransactionType !== 'string') { throw new ValidationError("Object's `TransactionType` is not a string") } + + /* + * - Memos have exclusively hex data. + */ + if (tx.Memos != null && typeof tx.Memos !== 'object') { + throw new ValidationError('Memo must be array') + } + if (tx.Memos != null) { + // eslint-disable-next-line @typescript-eslint/consistent-type-assertions -- needed here + ;(tx.Memos as Array).forEach((memo) => { + if (memo?.Memo == null) { + throw new ValidationError('Memo data must be in a `Memo` field') + } + if (memo.Memo.MemoData) { + if (!isHex(memo.Memo.MemoData)) { + throw new ValidationError('MemoData field must be a hex value') + } + } + + if (memo.Memo.MemoType) { + if (!isHex(memo.Memo.MemoType)) { + throw new ValidationError('MemoType field must be a hex value') + } + } + + if (memo.Memo.MemoFormat) { + if (!isHex(memo.Memo.MemoFormat)) { + throw new ValidationError('MemoFormat field must be a hex value') + } + } + }) + } + + Object.keys(tx).forEach((key) => { + const standard_currency_code_len = 3 + if (tx[key] && isIssuedCurrency(tx[key])) { + // eslint-disable-next-line @typescript-eslint/consistent-type-assertions -- needed + const txCurrency = (tx[key] as IssuedCurrencyAmount).currency + + if ( + txCurrency.length === standard_currency_code_len && + txCurrency.toUpperCase() === 'XAH' + ) { + throw new ValidationError( + `Cannot have an issued currency with a similar standard code to XAH (received '${txCurrency}'). XAH is not an issued currency.`, + ) + } + } + }) + // eslint-disable-next-line @typescript-eslint/consistent-type-assertions -- okay here setTransactionFlagsToNumber(tx as unknown as Transaction) switch (tx.TransactionType) { + case 'AMMBid': + validateAMMBid(tx) + break + + case 'AMMCreate': + validateAMMCreate(tx) + break + + case 'AMMDelete': + validateAMMDelete(tx) + break + + case 'AMMDeposit': + validateAMMDeposit(tx) + break + + case 'AMMVote': + validateAMMVote(tx) + break + + case 'AMMWithdraw': + validateAMMWithdraw(tx) + break + case 'AccountDelete': validateAccountDelete(tx) break @@ -154,6 +308,18 @@ export function validate(transaction: Record): void { validateClaimReward(tx) break + case 'Clawback': + validateClawback(tx) + break + + case 'DIDDelete': + validateDIDDelete(tx) + break + + case 'DIDSet': + validateDIDSet(tx) + break + case 'DepositPreauth': validateDepositPreauth(tx) break @@ -206,6 +372,14 @@ export function validate(transaction: Record): void { validateOfferCreate(tx) break + case 'OracleDelete': + validateOracleDelete(tx) + break + + case 'OracleSet': + validateOracleSet(tx) + break + case 'Payment': validatePayment(tx) break @@ -266,6 +440,38 @@ export function validate(transaction: Record): void { validateURITokenCancelSellOffer(tx) break + case 'XChainAccountCreateCommit': + validateXChainAccountCreateCommit(tx) + break + + case 'XChainAddAccountCreateAttestation': + validateXChainAddAccountCreateAttestation(tx) + break + + case 'XChainAddClaimAttestation': + validateXChainAddClaimAttestation(tx) + break + + case 'XChainClaim': + validateXChainClaim(tx) + break + + case 'XChainCommit': + validateXChainCommit(tx) + break + + case 'XChainCreateBridge': + validateXChainCreateBridge(tx) + break + + case 'XChainCreateClaimID': + validateXChainCreateClaimID(tx) + break + + case 'XChainModifyBridge': + validateXChainModifyBridge(tx) + break + default: throw new ValidationError( `Invalid field TransactionType: ${tx.TransactionType}`, diff --git a/packages/xrpl/src/models/utils/flags.ts b/packages/xrpl/src/models/utils/flags.ts index b29095ab63..d0417ee032 100644 --- a/packages/xrpl/src/models/utils/flags.ts +++ b/packages/xrpl/src/models/utils/flags.ts @@ -7,23 +7,19 @@ import { AccountRootFlagsInterface, AccountRootFlags, } from '../ledger/AccountRoot' -import { - AccountSetFlagsInterface, - AccountSetTfFlags, -} from '../transactions/accountSet' +import { AccountSetTfFlags } from '../transactions/accountSet' +import { AMMDepositFlags } from '../transactions/AMMDeposit' +import { AMMWithdrawFlags } from '../transactions/AMMWithdraw' import { GlobalFlags } from '../transactions/common' -import { - OfferCreateFlagsInterface, - OfferCreateFlags, -} from '../transactions/offerCreate' -import { PaymentFlagsInterface, PaymentFlags } from '../transactions/payment' -import { - PaymentChannelClaimFlagsInterface, - PaymentChannelClaimFlags, -} from '../transactions/paymentChannelClaim' -import { SetHookFlagsInterface, SetHookFlags } from '../transactions/setHook' +import { NFTokenCreateOfferFlags } from '../transactions/NFTokenCreateOffer' +import { NFTokenMintFlags } from '../transactions/NFTokenMint' +import { OfferCreateFlags } from '../transactions/offerCreate' +import { PaymentFlags } from '../transactions/payment' +import { PaymentChannelClaimFlags } from '../transactions/paymentChannelClaim' +import { SetHookFlags, SetHookFlagsInterface } from '../transactions/setHook' import type { Transaction } from '../transactions/transaction' -import { TrustSetFlagsInterface, TrustSetFlags } from '../transactions/trustSet' +import { TrustSetFlags } from '../transactions/trustSet' +import { XChainModifyBridgeFlags } from '../transactions/XChainModifyBridge' import { isFlagEnabled } from '.' @@ -38,8 +34,12 @@ export function parseAccountRootFlags( ): AccountRootFlagsInterface { const flagsInterface: AccountRootFlagsInterface = {} - Object.keys(AccountRootFlags).forEach((flag) => { - if (isFlagEnabled(flags, AccountRootFlags[flag])) { + // If we use keys all will be strings and enums are reversed during transpilation + Object.values(AccountRootFlags).forEach((flag) => { + if ( + typeof flag === 'string' && + isFlagEnabled(flags, AccountRootFlags[flag]) + ) { flagsInterface[flag] = true } }) @@ -47,6 +47,20 @@ export function parseAccountRootFlags( return flagsInterface } +const txToFlag = { + AccountSet: AccountSetTfFlags, + AMMDeposit: AMMDepositFlags, + AMMWithdraw: AMMWithdrawFlags, + NFTokenCreateOffer: NFTokenCreateOfferFlags, + NFTokenMint: NFTokenMintFlags, + OfferCreate: OfferCreateFlags, + PaymentChannelClaim: PaymentChannelClaimFlags, + Payment: PaymentFlags, + TrustSet: TrustSetFlags, + XChainModifyBridge: XChainModifyBridgeFlags, + SetHook: SetHookFlags, +} + /** * Sets a transaction's flags to its numeric representation. * @@ -61,68 +75,37 @@ export function setTransactionFlagsToNumber(tx: Transaction): void { return } - switch (tx.TransactionType) { - case 'AccountSet': - tx.Flags = convertAccountSetFlagsToNumber(tx.Flags) - return - case 'OfferCreate': - tx.Flags = convertOfferCreateFlagsToNumber(tx.Flags) - return - case 'PaymentChannelClaim': - tx.Flags = convertPaymentChannelClaimFlagsToNumber(tx.Flags) - return - case 'Payment': - tx.Flags = convertPaymentTransactionFlagsToNumber(tx.Flags) - return - case 'TrustSet': - tx.Flags = convertTrustSetFlagsToNumber(tx.Flags) - return - case 'SetHook': - tx.Flags = convertSetHookFlagsToNumber(tx.Flags) - tx.Hooks.forEach((hook: Hook) => { - hook.Hook.Flags = convertSetHookFlagsToNumber( - // eslint-disable-next-line @typescript-eslint/consistent-type-assertions -- idk - hook.Hook.Flags as SetHookFlagsInterface, - ) - }) - return - default: - tx.Flags = 0 + tx.Flags = txToFlag[tx.TransactionType] + ? convertFlagsToNumber(tx.Flags, txToFlag[tx.TransactionType]) + : 0 + if (tx.TransactionType === 'SetHook') { + tx.Hooks.forEach((hook: Hook) => { + hook.Hook.Flags = convertSetHookFlagsToNumber( + // eslint-disable-next-line @typescript-eslint/consistent-type-assertions -- idk + hook.Hook.Flags as SetHookFlagsInterface, + ) + }) } } -function convertAccountSetFlagsToNumber( - flags: AccountSetFlagsInterface, -): number { - return reduceFlags(flags, AccountSetTfFlags) -} - -function convertOfferCreateFlagsToNumber( - flags: OfferCreateFlagsInterface, -): number { - return reduceFlags(flags, OfferCreateFlags) -} - -function convertPaymentChannelClaimFlagsToNumber( - flags: PaymentChannelClaimFlagsInterface, -): number { - return reduceFlags(flags, PaymentChannelClaimFlags) -} - -function convertPaymentTransactionFlagsToNumber( - flags: PaymentFlagsInterface, -): number { - return reduceFlags(flags, PaymentFlags) -} - -function convertTrustSetFlagsToNumber(flags: TrustSetFlagsInterface): number { - return reduceFlags(flags, TrustSetFlags) -} - function convertSetHookFlagsToNumber(flags: SetHookFlagsInterface): number { return reduceFlags(flags, SetHookFlags) } +// eslint-disable-next-line @typescript-eslint/no-explicit-any -- added ValidationError check for flagEnum +function convertFlagsToNumber(flags: GlobalFlags, flagEnum: any): number { + return Object.keys(flags).reduce((resultFlags, flag) => { + // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- safe member access + if (flagEnum[flag] == null) { + throw new ValidationError( + `flag ${flag} doesn't exist in flagEnum: ${JSON.stringify(flagEnum)}`, + ) + } + // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- safe member access + return flags[flag] ? resultFlags | flagEnum[flag] : resultFlags + }, 0) +} + // eslint-disable-next-line @typescript-eslint/no-explicit-any -- added ValidationError check for flagEnum function reduceFlags(flags: GlobalFlags, flagEnum: any): number { return Object.keys(flags).reduce((resultFlags, flag) => { diff --git a/packages/xrpl/src/models/utils/index.ts b/packages/xrpl/src/models/utils/index.ts index cb79719707..5a1d7520f0 100644 --- a/packages/xrpl/src/models/utils/index.ts +++ b/packages/xrpl/src/models/utils/index.ts @@ -22,8 +22,8 @@ export function onlyHasFields( * @returns True if checkFlag is enabled within Flags. */ export function isFlagEnabled(Flags: number, checkFlag: number): boolean { - // eslint-disable-next-line no-bitwise -- flags needs bitwise - return (checkFlag & Flags) === checkFlag + // eslint-disable-next-line no-bitwise -- flags need bitwise + return (BigInt(checkFlag) & BigInt(Flags)) === BigInt(checkFlag) } /** diff --git a/packages/xrpl/src/sugar/autofill.ts b/packages/xrpl/src/sugar/autofill.ts index eae529dcd9..760007afe8 100644 --- a/packages/xrpl/src/sugar/autofill.ts +++ b/packages/xrpl/src/sugar/autofill.ts @@ -1,69 +1,123 @@ -import { - xAddressToClassicAddress, - isValidXAddress, -} from '@transia/ripple-address-codec' -import { encode } from '@transia/ripple-binary-codec' +import BigNumber from 'bignumber.js' +import { xAddressToClassicAddress, isValidXAddress } from 'ripple-address-codec' +import { encode } from 'ripple-binary-codec' -import type { Client } from '..' +import { type Client } from '..' import { ValidationError, XrplError } from '../errors' import { AccountInfoRequest, AccountObjectsRequest } from '../models/methods' import { Transaction } from '../models/transactions' -import { setTransactionFlagsToNumber } from '../models/utils/flags' +import { xrpToDrops } from '../utils' -import { getFeeEstimateXrp } from './getFeeXrp' +import { getFeeEstimateXrp, getFeeXrp } from './getFeeXrp' // Expire unconfirmed transactions after 20 ledger versions, approximately 1 minute, by default const LEDGER_OFFSET = 20 +// Sidechains are expected to have network IDs above this. +// Networks with ID above this restricted number are expected specify an accurate NetworkID field +// in every transaction to that chain to prevent replay attacks. +// Mainnet and testnet are exceptions. More context: https://github.com/XRPLF/rippled/pull/4370 const RESTRICTED_NETWORKS = 1024 -interface ClassicAccountAndTag { - classicAccount: string - tag: number | false | undefined -} +const REQUIRED_NETWORKID_VERSION = '1.11.0' /** - * Autofills fields in a transaction. This will set `Sequence`, `Fee`, - * `lastLedgerSequence` according to the current state of the server this Client - * is connected to. It also converts all X-Addresses to classic addresses and - * flags interfaces into numbers. + * Determines whether the source rippled version is not later than the target rippled version. + * Example usage: isNotLaterRippledVersion('1.10.0', '1.11.0') returns true. + * isNotLaterRippledVersion('1.10.0', '1.10.0-b1') returns false. * - * @param this - A client. - * @param transaction - A {@link Transaction} in JSON format - * @param signersCount - The expected number of signers for this transaction. - * Only used for multisigned transactions. - * @returns The autofilled transaction. + * @param source -- The source rippled version. + * @param target -- The target rippled version. + * @returns True if source is earlier than target, false otherwise. */ -async function autofill( - this: Client, - transaction: T, - signersCount?: number, -): Promise { - const tx = { ...transaction } +// eslint-disable-next-line max-lines-per-function, max-statements -- Disable for this helper functions. +function isNotLaterRippledVersion(source: string, target: string): boolean { + if (source === target) { + return true + } + const sourceDecomp = source.split('.') + const targetDecomp = target.split('.') + const sourceMajor = parseInt(sourceDecomp[0], 10) + const sourceMinor = parseInt(sourceDecomp[1], 10) + const targetMajor = parseInt(targetDecomp[0], 10) + const targetMinor = parseInt(targetDecomp[1], 10) + // Compare major version + if (sourceMajor !== targetMajor) { + return sourceMajor < targetMajor + } + // Compare minor version + if (sourceMinor !== targetMinor) { + return sourceMinor < targetMinor + } + const sourcePatch = sourceDecomp[2].split('-') + const targetPatch = targetDecomp[2].split('-') - setValidAddresses(tx) + const sourcePatchVersion = parseInt(sourcePatch[0], 10) + const targetPatchVersion = parseInt(targetPatch[0], 10) - setTransactionFlagsToNumber(tx) - const promises: Array> = [] - if (this.networkID > RESTRICTED_NETWORKS && tx.NetworkID == null) { - tx.NetworkID = this.networkID + // Compare patch version + if (sourcePatchVersion !== targetPatchVersion) { + return sourcePatchVersion < targetPatchVersion } - if (tx.Sequence == null) { - promises.push(setNextValidSequenceNumber(this, tx)) - } - if (tx.LastLedgerSequence == null) { - promises.push(setLatestValidatedLedgerSequence(this, tx)) + + // Compare release version + if (sourcePatch.length !== targetPatch.length) { + return sourcePatch.length > targetPatch.length } - if (tx.TransactionType === 'AccountDelete') { - promises.push(checkAccountDeleteBlockers(this, tx)) + + if (sourcePatch.length === 2) { + // Compare different release types + if (!sourcePatch[1][0].startsWith(targetPatch[1][0])) { + return sourcePatch[1] < targetPatch[1] + } + // Compare beta version + if (sourcePatch[1].startsWith('b')) { + return ( + parseInt(sourcePatch[1].slice(1), 10) < + parseInt(targetPatch[1].slice(1), 10) + ) + } + // Compare rc version + return ( + parseInt(sourcePatch[1].slice(2), 10) < + parseInt(targetPatch[1].slice(2), 10) + ) } - await Promise.all(promises).then(() => tx) - if (tx.Fee == null) { - await calculateFeePerTransactionType(this, tx, signersCount) + return false +} + +/** + * Determine if the transaction required a networkID to be valid. + * Transaction needs networkID if later than restricted ID and build version is >= 1.11.0 + * + * @param client -- The connected client. + * @returns True if required networkID, false otherwise. + */ +export function txNeedsNetworkID(client: Client): boolean { + if ( + client.networkID !== undefined && + client.networkID > RESTRICTED_NETWORKS + ) { + if ( + client.buildVersion && + isNotLaterRippledVersion(REQUIRED_NETWORKID_VERSION, client.buildVersion) + ) { + return true + } } - return tx + return false } -function setValidAddresses(tx: Transaction): void { +interface ClassicAccountAndTag { + classicAccount: string + tag: number | false | undefined +} + +/** + * Sets valid addresses for the transaction. + * + * @param tx - The transaction object. + */ +export function setValidAddresses(tx: Transaction): void { validateAccountAddress(tx, 'Account', 'SourceTag') // eslint-disable-next-line @typescript-eslint/dot-notation -- Destination can exist on Transaction if (tx['Destination'] != null) { @@ -79,6 +133,14 @@ function setValidAddresses(tx: Transaction): void { convertToClassicAddress(tx, 'RegularKey') } +/** + * Validates the account address in a transaction object. + * + * @param tx - The transaction object. + * @param accountField - The field name for the account address in the transaction object. + * @param tagField - The field name for the tag in the transaction object. + * @throws {ValidationError} If the tag field does not match the tag of the account address. + */ function validateAccountAddress( tx: Transaction, accountField: string, @@ -100,6 +162,14 @@ function validateAccountAddress( } } +/** + * Retrieves the classic account and tag from an account address. + * + * @param Account - The account address. + * @param [expectedTag] - The expected tag for the account address. + * @returns The classic account and tag. + * @throws {ValidationError} If the address includes a tag that does not match the tag specified in the transaction. + */ function getClassicAccountAndTag( Account: string, expectedTag?: number, @@ -122,6 +192,12 @@ function getClassicAccountAndTag( } } +/** + * Converts the specified field of a transaction object to a classic address format. + * + * @param tx - The transaction object. + * @param fieldName - The name of the field to convert.export + */ function convertToClassicAddress(tx: Transaction, fieldName: string): void { // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- assignment is safe const account = tx[fieldName] @@ -132,7 +208,15 @@ function convertToClassicAddress(tx: Transaction, fieldName: string): void { } } -async function setNextValidSequenceNumber( +/** + * Sets the next valid sequence number for a transaction. + * + * @param client - The client object used for making requests. + * @param tx - The transaction object for which the sequence number needs to be set. + * @returns A Promise that resolves when the sequence number is set. + * @throws {Error} If there is an error retrieving the account information. + */ +export async function setNextValidSequenceNumber( client: Client, tx: Transaction, ): Promise { @@ -146,20 +230,110 @@ async function setNextValidSequenceNumber( tx.Sequence = data.result.account_data.Sequence } -async function calculateFeePerTransactionType( +/** + * Fetches the account deletion fee from the server state using the provided client. + * + * @param client - The client object used to make the request. + * @returns A Promise that resolves to the account deletion fee as a BigNumber. + * @throws {Error} Throws an error if the account deletion fee cannot be fetched. + */ +async function fetchAccountDeleteFee(client: Client): Promise { + const response = await client.request({ command: 'server_state' }) + const fee = response.result.state.validated_ledger?.reserve_inc + + if (fee == null) { + return Promise.reject(new Error('Could not fetch Owner Reserve.')) + } + + return new BigNumber(fee) +} + +/** + * Calculates the fee per transaction type. + * + * @param client - The client object. + * @param tx - The transaction object. + * @param [signersCount=0] - The number of signers (default is 0). Only used for multisigning. + * @returns A promise that resolves with void. Modifies the `tx` parameter to give it the calculated fee. + */ +export async function calculateFeePerTransactionType( client: Client, tx: Transaction, signersCount = 0, ): Promise { - const copyTx = { ...tx } - copyTx.SigningPubKey = `` - copyTx.Fee = `0` - const tx_blob = encode(copyTx) - // eslint-disable-next-line require-atomic-updates, no-param-reassign -- ignore - tx.Fee = await getFeeEstimateXrp(client, tx_blob, signersCount) + if (client.hooksEnabled) { + const copyTx = { ...tx } + copyTx.SigningPubKey = `` + copyTx.Fee = `0` + const tx_blob = encode(copyTx) + const totalFee = await getFeeEstimateXrp(client, tx_blob) + // eslint-disable-next-line max-len -- long line + // eslint-disable-next-line no-param-reassign, @typescript-eslint/no-magic-numbers, require-atomic-updates -- param reassign is safe, base 10 magic num + tx.Fee = new BigNumber(totalFee).dp(0, BigNumber.ROUND_CEIL).toString(10) + return + } + + // netFee is usually 0.00001 XRP (10 drops) + const netFeeXRP = await getFeeXrp(client) + const netFeeDrops = xrpToDrops(netFeeXRP) + let baseFee = new BigNumber(netFeeDrops) + + // EscrowFinish Transaction with Fulfillment + if (tx.TransactionType === 'EscrowFinish' && tx.Fulfillment != null) { + const fulfillmentBytesSize: number = Math.ceil(tx.Fulfillment.length / 2) + // 10 drops × (33 + (Fulfillment size in bytes / 16)) + const product = new BigNumber( + // eslint-disable-next-line @typescript-eslint/no-magic-numbers -- expected use of magic numbers + scaleValue(netFeeDrops, 33 + fulfillmentBytesSize / 16), + ) + baseFee = product.dp(0, BigNumber.ROUND_CEIL) + } + + if ( + tx.TransactionType === 'AccountDelete' || + tx.TransactionType === 'AMMCreate' + ) { + baseFee = await fetchAccountDeleteFee(client) + } + + /* + * Multi-signed Transaction + * 10 drops × (1 + Number of Signatures Provided) + */ + if (signersCount > 0) { + baseFee = BigNumber.sum(baseFee, scaleValue(netFeeDrops, 1 + signersCount)) + } + + const maxFeeDrops = xrpToDrops(client.maxFeeXRP) + const totalFee = + tx.TransactionType === 'AccountDelete' + ? baseFee + : BigNumber.min(baseFee, maxFeeDrops) + + // Round up baseFee and return it as a string + // eslint-disable-next-line no-param-reassign, @typescript-eslint/no-magic-numbers -- param reassign is safe, base 10 magic num + tx.Fee = totalFee.dp(0, BigNumber.ROUND_CEIL).toString(10) +} + +/** + * Scales the given value by multiplying it with the provided multiplier. + * + * @param value - The value to be scaled. + * @param multiplier - The multiplier to scale the value. + * @returns The scaled value as a string. + */ +function scaleValue(value, multiplier): string { + return new BigNumber(value).times(multiplier).toString() } -async function setLatestValidatedLedgerSequence( +/** + * Sets the latest validated ledger sequence for the transaction. + * + * @param client - The client object. + * @param tx - The transaction object. + * @returns A promise that resolves with void. Modifies the `tx` parameter setting `LastLedgerSequence`. + */ +export async function setLatestValidatedLedgerSequence( client: Client, tx: Transaction, ): Promise { @@ -168,7 +342,14 @@ async function setLatestValidatedLedgerSequence( tx.LastLedgerSequence = ledgerSequence + LEDGER_OFFSET } -async function checkAccountDeleteBlockers( +/** + * Checks for any blockers that prevent the deletion of an account. + * + * @param client - The client object. + * @param tx - The transaction object. + * @returns A promise that resolves with void if there are no blockers, or rejects with an XrplError if there are blockers. + */ +export async function checkAccountDeleteBlockers( client: Client, tx: Transaction, ): Promise { @@ -191,5 +372,3 @@ async function checkAccountDeleteBlockers( resolve() }) } - -export default autofill diff --git a/packages/xrpl/src/sugar/balances.ts b/packages/xrpl/src/sugar/balances.ts index 863cee41f6..a9de61fe9c 100644 --- a/packages/xrpl/src/sugar/balances.ts +++ b/packages/xrpl/src/sugar/balances.ts @@ -1,126 +1,15 @@ -import flatMap from 'lodash/flatMap' +import { AccountLinesTrustline, Balance } from '../models' -import type { Client } from '..' -import { LedgerIndex } from '../models/common' -import { AccountInfoRequest } from '../models/methods' -import { AccountLinesRequest, Trustline } from '../models/methods/accountLines' -import { dropsToXrp } from '../utils' - -interface Balance { - value: string - currency: string - issuer?: string -} - -function formatBalances(trustlines: Trustline[]): Balance[] { +/** + * Formats an array of trustlines into an array of balances. + * + * @param trustlines - The array of trustlines to format. + * @returns An array of balances, each containing the value, currency, and issuer. + */ +export function formatBalances(trustlines: AccountLinesTrustline[]): Balance[] { return trustlines.map((trustline) => ({ value: trustline.balance, currency: trustline.currency, issuer: trustline.account, })) } - -/** - * Get the XRP balance for an account. - * - * @example - * ```ts - * const client = new Client(wss://s.altnet.rippletest.net:51233) - * const balance = await client.getXrpBalance('rG1QQv2nh2gr7RCZ1P8YYcBUKCCN633jCn') - * console.log(balance) - * /// '200' - * ``` - * - * @param this - Client. - * @param address - Address of the account to retrieve XRP balance. - * @param options - Options to include for getting the XRP balance. - * @param options.ledger_index - Retrieve the account balances at a given - * ledger_index. - * @param options.ledger_hash - Retrieve the account balances at the ledger with - * a given ledger_hash. - * @returns The XRP balance of the account (as a string). - */ -async function getXrpBalance( - this: Client, - address: string, - options: { - ledger_hash?: string - ledger_index?: LedgerIndex - } = {}, -): Promise { - const xrpRequest: AccountInfoRequest = { - command: 'account_info', - account: address, - ledger_index: options.ledger_index ?? 'validated', - ledger_hash: options.ledger_hash, - } - const response = await this.request(xrpRequest) - return dropsToXrp(response.result.account_data.Balance) -} - -/** - * Get XRP/non-XRP balances for an account. - * - * @param this - Client. - * @param address - Address of the account to retrieve balances for. - * @param options - Allows the client to specify a ledger_hash, ledger_index, - * filter by peer, and/or limit number of balances. - * @param options.ledger_index - Retrieve the account balances at a given - * ledger_index. - * @param options.ledger_hash - Retrieve the account balances at the ledger with - * a given ledger_hash. - * @param options.peer - Filter balances by peer. - * @param options.limit - Limit number of balances to return. - * @returns An array of XRP/non-XRP balances for the given account. - */ -// eslint-disable-next-line max-lines-per-function -- Longer definition is required for end users to see the definition. -async function getBalances( - this: Client, - address: string, - options: { - ledger_hash?: string - ledger_index?: LedgerIndex - peer?: string - limit?: number - } = {}, -): Promise< - Array<{ value: string; currency: string; issuer?: string | undefined }> -> { - const balances: Balance[] = [] - - // get XRP balance - let xrpPromise: Promise = Promise.resolve('') - if (!options.peer) { - xrpPromise = this.getXrpBalance(address, { - ledger_hash: options.ledger_hash, - ledger_index: options.ledger_index, - }) - } - - // get non-XRP balances - const linesRequest: AccountLinesRequest = { - command: 'account_lines', - account: address, - ledger_index: options.ledger_index ?? 'validated', - ledger_hash: options.ledger_hash, - peer: options.peer, - limit: options.limit, - } - const linesPromise = this.requestAll(linesRequest) - - // combine results - await Promise.all([xrpPromise, linesPromise]).then( - ([xrpBalance, linesResponses]) => { - const accountLinesBalance = flatMap(linesResponses, (response) => - formatBalances(response.result.lines), - ) - if (xrpBalance !== '') { - balances.push({ currency: 'XAH', value: xrpBalance }) - } - balances.push(...accountLinesBalance) - }, - ) - return balances.slice(0, options.limit) -} - -export { getXrpBalance, getBalances } diff --git a/packages/xrpl/src/sugar/getFeeXrp.ts b/packages/xrpl/src/sugar/getFeeXrp.ts index fb7940f180..4acaf0f5ae 100644 --- a/packages/xrpl/src/sugar/getFeeXrp.ts +++ b/packages/xrpl/src/sugar/getFeeXrp.ts @@ -1,6 +1,6 @@ import BigNumber from 'bignumber.js' -import type { Client } from '..' +import { type Client } from '..' import { XrplError } from '../errors' const NUM_DECIMAL_PLACES = 6 @@ -20,8 +20,11 @@ export async function getFeeXrp( ): Promise { const feeCushion = cushion ?? client.feeCushion - const serverInfo = (await client.request({ command: 'server_info' })).result - .info + const serverInfo = ( + await client.request({ + command: 'server_info', + }) + ).result.info const baseFee = serverInfo.validated_ledger?.base_fee_xrp @@ -50,20 +53,18 @@ export async function getFeeXrp( * * @param client - The Client used to connect to the ledger. * @param txBlob - The encoded transaction to estimate the fee for. - * @param signersCount - The number of multisigners. * @returns The transaction fee. */ export async function getFeeEstimateXrp( client: Client, txBlob: string, - signersCount = 0, ): Promise { const response = await client.request({ command: 'fee', tx_blob: txBlob, }) - const openLedgerFee = response.result.drops.open_ledger_fee - const baseFee = new BigNumber(response.result.drops.base_fee) - const totalFee = BigNumber.sum(openLedgerFee, Number(baseFee) * signersCount) - return new BigNumber(totalFee.toFixed(NUM_DECIMAL_PLACES)).toString(BASE_10) + const openLedgerFee = new BigNumber(response.result.drops.open_ledger_fee) + return new BigNumber(openLedgerFee.toFixed(NUM_DECIMAL_PLACES)).toString( + BASE_10, + ) } diff --git a/packages/xrpl/src/sugar/getLedgerIndex.ts b/packages/xrpl/src/sugar/getLedgerIndex.ts deleted file mode 100644 index c4d1c3cb2f..0000000000 --- a/packages/xrpl/src/sugar/getLedgerIndex.ts +++ /dev/null @@ -1,15 +0,0 @@ -import type { Client } from '..' - -/** - * Returns the index of the most recently validated ledger. - * - * @param this - The Client used to connect to the ledger. - * @returns The most recently validated ledger index. - */ -export default async function getLedgerIndex(this: Client): Promise { - const ledgerResponse = await this.request({ - command: 'ledger', - ledger_index: 'validated', - }) - return ledgerResponse.result.ledger_index -} diff --git a/packages/xrpl/src/sugar/getNetworkID.ts b/packages/xrpl/src/sugar/getNetworkID.ts deleted file mode 100644 index d7c3489f2a..0000000000 --- a/packages/xrpl/src/sugar/getNetworkID.ts +++ /dev/null @@ -1,15 +0,0 @@ -import type { Client } from '..' -// import { XrplError } from '../errors' - -/** - * Returns the network ID of the rippled server. - * - * @param this - The Client used to connect to the ledger. - * @returns The network id. - */ -export default async function getNetworkID(this: Client): Promise { - const response = await this.request({ - command: 'server_info', - }) - return response.result.info.network_id ?? 1 -} diff --git a/packages/xrpl/src/sugar/getOrderbook.ts b/packages/xrpl/src/sugar/getOrderbook.ts index 3ba2799907..285a9d8f28 100644 --- a/packages/xrpl/src/sugar/getOrderbook.ts +++ b/packages/xrpl/src/sugar/getOrderbook.ts @@ -1,6 +1,4 @@ -/* eslint-disable max-lines-per-function -- Needs to process orderbooks. */ import BigNumber from 'bignumber.js' -import flatMap from 'lodash/flatMap' import type { Client } from '../client' import { ValidationError } from '../errors' @@ -8,8 +6,8 @@ import { LedgerIndex } from '../models/common' import { OfferFlags } from '../models/ledger/Offer' import { BookOffer, + BookOfferCurrency, BookOffersRequest, - TakerAmount, } from '../models/methods/bookOffers' const DEFAULT_LIMIT = 20 @@ -31,43 +29,40 @@ const getOrderbookOptionsSet = new Set([ ]) /** - * Fetch orderbook (buy/sell orders) between two accounts. + * Represents the options for retrieving the order book. + */ +export interface GetOrderBookOptions { + /** + * The limit on the number of offers to return. + */ + limit?: number + /** + * The ledger index of the ledger to use. + */ + ledger_index?: LedgerIndex + /** + * The ledger hash of the ledger to use. + */ + ledger_hash?: string | null + /** + * The account that takes the offers. + */ + taker?: string | null +} + +/** + * Validates the options for retrieving the order book. * - * @param this - Client. - * @param takerPays - Specification of which currency the account taking the - * offer would pay, as an object with `currency` and `issuer` fields. - * @param takerGets - Specification of which currency the account taking the - * offer would receive, as an object with `currency` and `issuer` fields. - * @param options - Options allowing the client to specify ledger_index, - * ledger_hash, filter by taker, and/or limit number of orders. - * @param options.ledger_index - Retrieve the orderbook at a given ledger_index. - * @param options.ledger_hash - Retrieve the orderbook at the ledger with a - * given ledger_hash. - * @param options.taker - Filter orders by taker. - * @param options.limit - Limit number of order books to fetch for each side of - * the order book. Defaults to 20. - * @returns An object containing buy and sell objects. + * @param options - The options to validate. + * @throws {ValidationError} If any validation errors occur. */ -// eslint-disable-next-line max-params, complexity -- Once bound to Client, getOrderbook only has 3 parameters. -async function getOrderbook( - this: Client, - takerPays: TakerAmount, - takerGets: TakerAmount, - options: { - limit?: number - ledger_index?: LedgerIndex - ledger_hash?: string | null - taker?: string | null - } = {}, -): Promise<{ - buy: BookOffer[] - sell: BookOffer[] -}> { - Object.keys(options).forEach((key) => { +// eslint-disable-next-line complexity -- Necessary for validation. +export function validateOrderbookOptions(options: GetOrderBookOptions): void { + for (const key of Object.keys(options)) { if (!getOrderbookOptionsSet.has(key)) { throw new ValidationError(`Unexpected option: ${key}`, options) } - }) + } if (options.limit && typeof options.limit !== 'number') { throw new ValidationError('limit must be a number', options.limit) @@ -101,35 +96,111 @@ async function getOrderbook( if (options.taker !== undefined && typeof options.taker !== 'string') { throw new ValidationError('taker must be a string', options.taker) } +} +/** + * Creates a request object for retrieving book offers. + * + * @param currency1 - The first currency in the pair. + * @param currency2 - The second currency in the pair. + * @param options - Additional options for the request. + * @param [options.limit] - The maximum number of offers to retrieve. + * @param [options.ledger_index] - The ledger index to use for retrieval. + * @param [options.ledger_hash] - The ledger hash to use for retrieval. + * @param [options.taker] - The taker address for retrieval. + * @returns The created request object. + */ +export function createBookOffersRequest( + currency1: BookOfferCurrency, + currency2: BookOfferCurrency, + options: { + limit?: number + ledger_index?: LedgerIndex + ledger_hash?: string | null + taker?: string | null + }, +): BookOffersRequest { const request: BookOffersRequest = { command: 'book_offers', - taker_pays: takerPays, - taker_gets: takerGets, + taker_pays: currency1, + taker_gets: currency2, ledger_index: options.ledger_index ?? 'validated', ledger_hash: options.ledger_hash === null ? undefined : options.ledger_hash, limit: options.limit ?? DEFAULT_LIMIT, taker: options.taker ? options.taker : undefined, } - // 2. Make Request - const directOfferResults = await this.requestAll(request) - request.taker_gets = takerPays - request.taker_pays = takerGets - const reverseOfferResults = await this.requestAll(request) - // 3. Return Formatted Response - const directOffers = flatMap( - directOfferResults, - (directOfferResult) => directOfferResult.result.offers, - ) - const reverseOffers = flatMap( - reverseOfferResults, - (reverseOfferResult) => reverseOfferResult.result.offers, - ) - - const orders = [...directOffers, ...reverseOffers] - // separate out the buy and sell orders + + return request +} + +type BookOfferResult = BookOffer[] + +/** + * Retrieves all book offer results using the given request. + * + * @param client - The Ripple client. + * @param request - The request object. + * @returns The array of book offer results. + */ +export async function requestAllOffers( + client: Client, + request: BookOffersRequest, +): Promise { + const results = await client.requestAll(request) + return results.map((result) => result.result.offers) +} + +/** + * Creates a reverse request object by swapping the taker pays and taker gets amounts. + * + * @param request - The original request object. + * @returns The reverse request object. + */ +export function reverseRequest(request: BookOffersRequest): BookOffersRequest { + return { + ...request, + taker_pays: request.taker_gets, + taker_gets: request.taker_pays, + } +} + +/** + * Extracts the offers from the book offer results. + * + * @param offerResults - The array of book offer results. + * @returns The extracted offers. + */ +export function extractOffers(offerResults: BookOfferResult[]): BookOffer[] { + return offerResults.flatMap((offerResult) => offerResult) +} + +/** + * Combines the direct and reverse offers into a single array. + * + * @param directOffers - The direct offers. + * @param reverseOffers - The reverse offers. + * @returns The combined array of offers. + */ +export function combineOrders( + directOffers: BookOffer[], + reverseOffers: BookOffer[], +): BookOffer[] { + return [...directOffers, ...reverseOffers] +} + +/** + * Separates the buy and sell orders from the given array of orders. + * + * @param orders - The array of orders. + * @returns The separated buy and sell orders. + */ +export function separateBuySellOrders(orders: BookOffer[]): { + buy: BookOffer[] + sell: BookOffer[] +} { const buy: BookOffer[] = [] const sell: BookOffer[] = [] + orders.forEach((order) => { // eslint-disable-next-line no-bitwise -- necessary for flags check if ((order.Flags & OfferFlags.lsfSell) === 0) { @@ -138,15 +209,21 @@ async function getOrderbook( sell.push(order) } }) - /* - * Sort the orders - * for both buys and sells, lowest quality is closest to mid-market - * we sort the orders so that earlier orders are closer to mid-market - */ - return { - buy: sortOffers(buy).slice(0, options.limit), - sell: sortOffers(sell).slice(0, options.limit), - } + + return { buy, sell } } -export default getOrderbook +/** + * Sorts and limits the given array of offers. + * + * @param offers - The array of offers to sort and limit. + * @param [limit] - The maximum number of offers to include. + * @returns The sorted and limited array of offers. + */ +export function sortAndLimitOffers( + offers: BookOffer[], + limit?: number, +): BookOffer[] { + const sortedOffers = sortOffers(offers) + return sortedOffers.slice(0, limit) +} diff --git a/packages/xrpl/src/sugar/index.ts b/packages/xrpl/src/sugar/index.ts index 15ec38e950..0047432011 100644 --- a/packages/xrpl/src/sugar/index.ts +++ b/packages/xrpl/src/sugar/index.ts @@ -1,14 +1,3 @@ -export { default as autofill } from './autofill' - -export { getBalances, getXrpBalance } from './balances' - -export { default as getLedgerIndex } from './getLedgerIndex' - -export { default as getOrderbook } from './getOrderbook' -export { getFeeXrp, getFeeEstimateXrp } from './getFeeXrp' - -export { default as getNetworkID } from './getNetworkID' - export * from './submit' export * from './utils' diff --git a/packages/xrpl/src/sugar/submit.ts b/packages/xrpl/src/sugar/submit.ts index 2c6cdb7072..423a863cf8 100644 --- a/packages/xrpl/src/sugar/submit.ts +++ b/packages/xrpl/src/sugar/submit.ts @@ -1,10 +1,17 @@ -import { decode, encode } from '@transia/ripple-binary-codec' +import { decode, encode } from 'ripple-binary-codec' -import type { Client, SubmitRequest, SubmitResponse, Wallet } from '..' +import type { + Client, + SubmitRequest, + SubmitResponse, + SubmittableTransaction, + Transaction, + Wallet, +} from '..' import { ValidationError, XrplError } from '../errors' +import { Signer } from '../models/common' import { TxResponse } from '../models/methods' -import { Transaction } from '../models/transactions' -import { hashes } from '../utils' +import { BaseTransaction } from '../models/transactions/common' /** Approximate time for a ledger to close, in milliseconds */ const LEDGER_CLOSE_TIME = 1000 @@ -15,89 +22,33 @@ async function sleep(ms: number): Promise { }) } -/** - * Submits a signed/unsigned transaction. - * Steps performed on a transaction: - * 1. Autofill. - * 2. Sign & Encode. - * 3. Submit. - * - * @param this - A Client. - * @param transaction - A transaction to autofill, sign & encode, and submit. - * @param opts - (Optional) Options used to sign and submit a transaction. - * @param opts.autofill - If true, autofill a transaction. - * @param opts.failHard - If true, and the transaction fails locally, do not retry or relay the transaction to other servers. - * @param opts.wallet - A wallet to sign a transaction. It must be provided when submitting an unsigned transaction. - * @returns A promise that contains SubmitResponse. - * @throws RippledError if submit request fails. - */ -async function submit( - this: Client, - transaction: Transaction | string, - opts?: { - // If true, autofill a transaction. - autofill?: boolean - // If true, and the transaction fails locally, do not retry or relay the transaction to other servers. - failHard?: boolean - // A wallet to sign a transaction. It must be provided when submitting an unsigned transaction. - wallet?: Wallet - }, -): Promise { - const signedTx = await getSignedTx(this, transaction, opts) - return submitRequest(this, signedTx, opts?.failHard) -} +// Helper functions /** - * Asynchronously submits a transaction and verifies that it has been included in a - * validated ledger (or has errored/will not be included for some reason). - * See [Reliable Transaction Submission](https://xrpl.org/reliable-transaction-submission.html). - * - * @param this - A Client. - * @param transaction - A transaction to autofill, sign & encode, and submit. - * @param opts - (Optional) Options used to sign and submit a transaction. - * @param opts.autofill - If true, autofill a transaction. - * @param opts.failHard - If true, and the transaction fails locally, do not retry or relay the transaction to other servers. - * @param opts.wallet - A wallet to sign a transaction. It must be provided when submitting an unsigned transaction. - * @returns A promise that contains TxResponse, that will return when the transaction has been validated. + * Submits a request to the client with a signed transaction. + * + * @param client - The client to submit the request to. + * @param signedTransaction - The signed transaction to submit. It can be either a Transaction object or a + * string (encode from ripple-binary-codec) representation of the transaction. + * @param [failHard=false] - Optional. Determines whether the submission should fail hard (true) or not (false). Default is false. + * @returns A promise that resolves with the response from the client. + * @throws {ValidationError} If the signed transaction is not valid (not signed). + * + * @example + * import { Client } from "xrpl" + * const client = new Client("wss://s.altnet.rippletest.net:51233"); + * await client.connect(); + * const signedTransaction = createSignedTransaction(); + * // Example 1: Submitting a Transaction object + * const response1 = await submitRequest(client, signedTransaction); + * + * // Example 2: Submitting a string representation of the transaction + * const signedTransactionString = encode(signedTransaction); + * const response2 = await submitRequest(client, signedTransactionString, true); */ -async function submitAndWait( - this: Client, - transaction: Transaction | string, - opts?: { - // If true, autofill a transaction. - autofill?: boolean - // If true, and the transaction fails locally, do not retry or relay the transaction to other servers. - failHard?: boolean - // A wallet to sign a transaction. It must be provided when submitting an unsigned transaction. - wallet?: Wallet - }, -): Promise { - const signedTx = await getSignedTx(this, transaction, opts) - - const lastLedger = getLastLedgerSequence(signedTx) - if (lastLedger == null) { - throw new ValidationError( - 'Transaction must contain a LastLedgerSequence value for reliable submission.', - ) - } - - const response = await submitRequest(this, signedTx, opts?.failHard) - - const txHash = hashes.hashSignedTx(signedTx) - return waitForFinalTransactionOutcome( - this, - txHash, - lastLedger, - response.result.engine_result, - ) -} - -// Helper functions - -// Encodes and submits a signed transaction. -async function submitRequest( +export async function submitRequest( client: Client, - signedTransaction: Transaction | string, + signedTransaction: SubmittableTransaction | string, failHard = false, ): Promise { if (!isSigned(signedTransaction)) { @@ -116,19 +67,56 @@ async function submitRequest( return client.request(request) } -/* - * The core logic of reliable submission. This polls the ledger until the result of the - * transaction can be considered final, meaning it has either been included in a - * validated ledger, or the transaction's lastLedgerSequence has been surpassed by the - * latest ledger sequence (meaning it will never be included in a validated ledger). +/** + * Waits for the final outcome of a transaction by polling the ledger until the result can be considered final, + * meaning it has either been included in a validated ledger, or the transaction's lastLedgerSequence has been + * surpassed by the latest ledger sequence (meaning it will never be included in a validated ledger). + * + * @template T - The type of the transaction. Defaults to `Transaction`. + * @param client - The client to use for requesting transaction information. + * @param txHash - The hash of the transaction to wait for. + * @param lastLedger - The last ledger sequence of the transaction. + * @param submissionResult - The preliminary result of the transaction. + * @returns A promise that resolves with the final transaction response. + * + * @throws {XrplError} If the latest ledger sequence surpasses the transaction's lastLedgerSequence. + * + * @example + * import { hashes, Client } from "xrpl" + * const client = new Client("wss://s.altnet.rippletest.net:51233") + * await client.connect() + * + * const transaction = createTransaction() // your transaction function + * + * const signedTx = await getSignedTx(this, transaction) + * + * const lastLedger = getLastLedgerSequence(signedTx) + * + * if (lastLedger == null) { + * throw new ValidationError( + * 'Transaction must contain a LastLedgerSequence value for reliable submission.', + * ) + * } + * + * const response = await submitRequest(this, signedTx, opts?.failHard) + * + * const txHash = hashes.hashSignedTx(signedTx) + * return waitForFinalTransactionOutcome( + * this, + * txHash, + * lastLedger, + * response.result.engine_result, + * ) */ // eslint-disable-next-line max-params, max-lines-per-function -- this function needs to display and do with more information. -async function waitForFinalTransactionOutcome( +export async function waitForFinalTransactionOutcome< + T extends BaseTransaction = SubmittableTransaction, +>( client: Client, txHash: string, lastLedger: number, submissionResult: string, -): Promise { +): Promise> { await sleep(LEDGER_CLOSE_TIME) const latestLedger = await client.getLedgerIndex() @@ -150,7 +138,7 @@ async function waitForFinalTransactionOutcome( // eslint-disable-next-line @typescript-eslint/consistent-type-assertions,@typescript-eslint/no-unsafe-member-access -- ^ const message = error?.data?.error as string if (message === 'txnNotFound') { - return waitForFinalTransactionOutcome( + return waitForFinalTransactionOutcome( client, txHash, lastLedger, @@ -165,10 +153,12 @@ async function waitForFinalTransactionOutcome( }) if (txResponse.result.validated) { - return txResponse + // TODO: resolve the type assertion below + // eslint-disable-next-line @typescript-eslint/consistent-type-assertions -- we know that txResponse is of type TxResponse + return txResponse as TxResponse } - return waitForFinalTransactionOutcome( + return waitForFinalTransactionOutcome( client, txHash, lastLedger, @@ -177,30 +167,76 @@ async function waitForFinalTransactionOutcome( } // checks if the transaction has been signed -function isSigned(transaction: Transaction | string): boolean { +function isSigned(transaction: SubmittableTransaction | string): boolean { const tx = typeof transaction === 'string' ? decode(transaction) : transaction - return ( - typeof tx !== 'string' && - (tx.SigningPubKey != null || tx.TxnSignature != null) - ) + if (typeof tx === 'string') { + return false + } + if (tx.Signers != null) { + // eslint-disable-next-line @typescript-eslint/consistent-type-assertions -- we know that tx.Signers is an array of Signers + const signers = tx.Signers as Signer[] + for (const signer of signers) { + // eslint-disable-next-line max-depth -- necessary for checking if signer is signed + if ( + // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- necessary check + signer.Signer.SigningPubKey == null || + // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- necessary check + signer.Signer.TxnSignature == null + ) { + return false + } + } + return true + } + return tx.SigningPubKey != null && tx.TxnSignature != null } -// initializes a transaction for a submit request -async function getSignedTx( +/** + * Updates a transaction with `autofill` then signs it if it is unsigned. + * + * @param client - The client from which to retrieve the signed transaction. + * @param transaction - The transaction to retrieve. It can be either a Transaction object or + * a string (encode from ripple-binary-codec) representation of the transaction. + * @param [options={}] - Optional. Additional options for retrieving the signed transaction. + * @param [options.autofill=true] - Optional. Determines whether the transaction should be autofilled (true) + * or not (false). Default is true. + * @param [options.wallet] - Optional. A wallet to sign the transaction. It must be provided when submitting + * an unsigned transaction. Default is undefined. + * @returns A promise that resolves with the signed transaction. + * + * @throws {ValidationError} If the transaction is not signed and no wallet is provided. + * + * @example + * import { Client } from "xrpl" + * import { encode } from "ripple-binary-codec" + * + * const client = new Client("wss://s.altnet.rippletest.net:51233"); + * await client.connect(): + * const transaction = createTransaction(); // createTransaction is your function to create a transaction + * const options = { + * autofill: true, + * wallet: myWallet, + * }; + * + * // Example 1: Retrieving a signed Transaction object + * const signedTx1 = await getSignedTx(client, transaction, options); + * + * // Example 2: Retrieving a string representation of the signed transaction + * const signedTxString = await getSignedTx(client, encode(transaction), options); + */ +export async function getSignedTx( client: Client, - transaction: Transaction | string, + transaction: SubmittableTransaction | string, { autofill = true, wallet, }: { // If true, autofill a transaction. autofill?: boolean - // If true, and the transaction fails locally, do not retry or relay the transaction to other servers. - failHard?: boolean // A wallet to sign a transaction. It must be provided when submitting an unsigned transaction. wallet?: Wallet } = {}, -): Promise { +): Promise { if (isSigned(transaction)) { return transaction } @@ -214,7 +250,7 @@ async function getSignedTx( let tx = typeof transaction === 'string' ? // eslint-disable-next-line @typescript-eslint/consistent-type-assertions -- converts JsonObject to correct Transaction type - (decode(transaction) as unknown as Transaction) + (decode(transaction) as unknown as SubmittableTransaction) : transaction if (autofill) { @@ -225,7 +261,26 @@ async function getSignedTx( } // checks if there is a LastLedgerSequence as a part of the transaction -function getLastLedgerSequence( +/** + * Retrieves the last ledger sequence from a transaction. + * + * @param transaction - The transaction to retrieve the last ledger sequence from. It can be either a Transaction object or + * a string (encode from ripple-binary-codec) representation of the transaction. + * @returns The last ledger sequence of the transaction, or null if not available. + * + * @example + * const transaction = createTransaction(); // your function to create a transaction + * + * // Example 1: Retrieving the last ledger sequence from a Transaction object + * const lastLedgerSequence1 = getLastLedgerSequence(transaction); + * console.log(lastLedgerSequence1); // Output: 12345 + * + * // Example 2: Retrieving the last ledger sequence from a string representation of the transaction + * const transactionString = encode(transaction); + * const lastLedgerSequence2 = getLastLedgerSequence(transactionString); + * console.log(lastLedgerSequence2); // Output: 67890 + */ +export function getLastLedgerSequence( transaction: Transaction | string, ): number | null { const tx = typeof transaction === 'string' ? decode(transaction) : transaction @@ -238,5 +293,3 @@ function isAccountDelete(transaction: Transaction | string): boolean { const tx = typeof transaction === 'string' ? decode(transaction) : transaction return tx.TransactionType === 'AccountDelete' } - -export { submit, submitAndWait } diff --git a/packages/xrpl/src/sugar/utils.ts b/packages/xrpl/src/sugar/utils.ts index c11ce5c5fb..39775d13d3 100644 --- a/packages/xrpl/src/sugar/utils.ts +++ b/packages/xrpl/src/sugar/utils.ts @@ -1,7 +1,4 @@ -import { - xAddressToClassicAddress, - isValidXAddress, -} from '@transia/ripple-address-codec' +import { xAddressToClassicAddress, isValidXAddress } from 'ripple-address-codec' /** * If an address is an X-Address, converts it to a classic address. @@ -10,7 +7,6 @@ import { * @returns The account's classic address. * @throws Error if the X-Address has an associated tag. */ -// eslint-disable-next-line import/prefer-default-export -- okay for a utils file - there could be more exports later export function ensureClassicAddress(account: string): string { if (isValidXAddress(account)) { const { classicAddress, tag } = xAddressToClassicAddress(account) diff --git a/packages/xrpl/src/utils/collections.ts b/packages/xrpl/src/utils/collections.ts new file mode 100644 index 0000000000..31cb9a22e0 --- /dev/null +++ b/packages/xrpl/src/utils/collections.ts @@ -0,0 +1,57 @@ +type ValueOf = T[keyof T] + +/** + * Creates an object composed of keys generated from the results of running each element of collection thru iteratee. + * The order of grouped values is determined by the order they occur in collection. + * The corresponding value of each key is an array of elements responsible for generating the key. + * + * Similar to lodash's groupBy + * + * @param array - array to iterate over + * @param iteratee - function that returns key of the group to place the item + * + * @returns a map of arrays + */ +export function groupBy( + array: T[], + iteratee: (value: T, index: number, array: T[]) => string | number, +): Record { + // eslint-disable-next-line max-params -- need all the params for the fallback + function predicate( + acc: Record, + value: T, + index: number, + arrayReference: T[], + ): Record { + const key = iteratee(value, index, arrayReference) || 0 + // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Find existing group or create a new one + const group = acc[key] || [] + group.push(value) + acc[key] = group + return acc + } + + return array.reduce(predicate, {}) +} + +/** + * Creates an object composed of the own and inherited enumerable string keyed properties of object that + * predicate doesn't return truthy for. + * + * @param obj - Object to have properties removed. + * @param predicate - function that returns whether the property should be removed from the obj. + * + * @returns object + */ +export function omitBy( + obj: T, + predicate: (objElement: ValueOf, k: string | number | symbol) => boolean, +): Partial { + // eslint-disable-next-line @typescript-eslint/consistent-type-assertions -- We know the keys are properties of T + const keys: Array = Object.keys(obj) as Array + const keysToKeep = keys.filter((kb) => !predicate(obj[kb], kb)) + return keysToKeep.reduce((acc: Partial, key: keyof T) => { + acc[key] = obj[key] + return acc + }, {}) +} diff --git a/packages/xrpl/src/utils/createCrossChainPayment.ts b/packages/xrpl/src/utils/createCrossChainPayment.ts deleted file mode 100644 index 6091ea5151..0000000000 --- a/packages/xrpl/src/utils/createCrossChainPayment.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { XrplError } from '../errors' -import { Payment } from '../models' -import { Memo } from '../models/common' - -import { convertStringToHex } from './stringConversion' - -/** - * Creates a cross-chain payment transaction. - * - * @param payment - The initial payment transaction. If the transaction is - * signed, then it will need to be re-signed. There must be no more than 2 - * memos, since one memo is used for the sidechain destination account. The - * destination must be the sidechain's door account. - * @param destAccount - the destination account on the sidechain. - * @returns A cross-chain payment transaction, where the mainchain door account - * is the `Destination` and the destination account on the sidechain is encoded - * in the memos. - * @throws XrplError - if there are more than 2 memos. - * @category Utilities - */ -export default function createCrossChainPayment( - payment: Payment, - destAccount: string, -): Payment { - const destAccountHex = convertStringToHex(destAccount) - const destAccountMemo: Memo = { Memo: { MemoData: destAccountHex } } - - const memos = payment.Memos ?? [] - if (memos.length > 2) { - throw new XrplError( - 'Cannot have more than 2 memos in a cross-chain transaction.', - ) - } - const newMemos = [destAccountMemo, ...memos] - - const newPayment = { ...payment, Memos: newMemos } - delete newPayment.TxnSignature - - return newPayment -} diff --git a/packages/xrpl/src/utils/derive.ts b/packages/xrpl/src/utils/derive.ts index dd49a1c6ca..c101beca3c 100644 --- a/packages/xrpl/src/utils/derive.ts +++ b/packages/xrpl/src/utils/derive.ts @@ -1,5 +1,5 @@ -import { classicAddressToXAddress } from '@transia/ripple-address-codec' -import { deriveKeypair, deriveAddress } from '@transia/ripple-keypairs' +import { classicAddressToXAddress } from 'ripple-address-codec' +import { deriveKeypair, deriveAddress } from 'ripple-keypairs' /** * Derive an X-Address from a public key and a destination tag. diff --git a/packages/xrpl/src/utils/getBalanceChanges.ts b/packages/xrpl/src/utils/getBalanceChanges.ts index 5f28492fbc..2f05125ce0 100644 --- a/packages/xrpl/src/utils/getBalanceChanges.ts +++ b/packages/xrpl/src/utils/getBalanceChanges.ts @@ -1,18 +1,16 @@ import BigNumber from 'bignumber.js' -import flatten from 'lodash/flatten' -import groupBy from 'lodash/groupBy' -import { Amount, IssuedCurrencyAmount } from '../models/common' -import { TransactionMetadata, Node } from '../models/transactions/metadata' +import { + Amount, + Balance, + IssuedCurrencyAmount, + TransactionMetadata, + Node, +} from '../models' +import { groupBy } from './collections' import { dropsToXrp } from './xrpConversion' -interface Balance { - currency: string - issuer?: string - value: string -} - interface BalanceChange { account: string balance: Balance @@ -164,11 +162,7 @@ export default function getBalanceChanges( metadata: TransactionMetadata, ): Array<{ account: string - balances: Array<{ - currency: string - issuer?: string - value: string - }> + balances: Balance[] }> { const quantities = normalizeNodes(metadata).map((node) => { if (node.LedgerEntryType === 'AccountRoot') { @@ -187,5 +181,5 @@ export default function getBalanceChanges( } return [] }) - return groupByAccount(flatten(quantities)) + return groupByAccount(quantities.flat()) } diff --git a/packages/xrpl/src/utils/getNFTokenID.ts b/packages/xrpl/src/utils/getNFTokenID.ts index eb6533aa15..f36c7357a7 100644 --- a/packages/xrpl/src/utils/getNFTokenID.ts +++ b/packages/xrpl/src/utils/getNFTokenID.ts @@ -1,5 +1,6 @@ -import flatMap from 'lodash/flatMap' +import { decode } from 'ripple-binary-codec' +import { NFToken } from '../models/ledger/NFTokenPage' import { CreatedNode, isCreatedNode, @@ -8,31 +9,42 @@ import { TransactionMetadata, } from '../models/transactions/metadata' -interface NFToken { - NFToken: { - NFTokenID: string - URI: string +/** + * Ensures that the metadata is in a deserialized format to parse. + * + * @param meta - the metadata from a `tx` method call. Can be in json format or binary format. + * @returns the metadata in a deserialized format. + */ +function ensureDecodedMeta( + meta: TransactionMetadata | string, +): TransactionMetadata { + if (typeof meta === 'string') { + // eslint-disable-next-line @typescript-eslint/consistent-type-assertions -- Meta is either metadata or serialized metadata. + return decode(meta) as unknown as TransactionMetadata } + return meta } /** * Gets the NFTokenID for an NFT recently minted with NFTokenMint. * - * @param meta - Metadata from the response to submitting an NFTokenMint transaction. + * @param meta - Metadata from the response to submitting and waiting for an NFTokenMint transaction or from a `tx` method call. * @returns The NFTokenID for the minted NFT. * @throws if meta is not TransactionMetadata. */ +// eslint-disable-next-line max-lines-per-function -- This function has a lot of documentation export default function getNFTokenID( - meta: TransactionMetadata, + meta: TransactionMetadata | string | undefined, ): string | undefined { - /* eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Provides a nicer error for js users */ - if (meta.AffectedNodes === undefined) { - throw new TypeError(`Unable to parse the parameter given to getNFTokenID. - 'meta' must be the metadata from an NFTokenMint transaction. Received ${JSON.stringify( - meta, - )} instead.`) + if (typeof meta !== 'string' && meta?.AffectedNodes === undefined) { + throw new TypeError(`Unable to parse the parameter given to getNFTokenID. + 'meta' must be the metadata from an NFTokenMint transaction. Received ${JSON.stringify( + meta, + )} instead.`) } + const decodedMeta = ensureDecodedMeta(meta) + /* * When a mint results in splitting an existing page, * it results in a created page and a modified node. Sometimes, @@ -45,8 +57,7 @@ export default function getNFTokenID( * not changed. Thus why we add the additional condition to check * if the PreviousFields contains NFTokens */ - - const affectedNodes = meta.AffectedNodes.filter((node) => { + const affectedNodes = decodedMeta.AffectedNodes.filter((node) => { if (isCreatedNode(node)) { return node.CreatedNode.LedgerEntryType === 'NFTokenPage' } @@ -60,25 +71,28 @@ export default function getNFTokenID( }) /* eslint-disable @typescript-eslint/consistent-type-assertions -- Necessary for parsing metadata */ const previousTokenIDSet = new Set( - flatMap(affectedNodes, (node) => { - const nftokens = isModifiedNode(node) - ? (node.ModifiedNode.PreviousFields?.NFTokens as NFToken[]) - : [] - return nftokens.map((token) => token.NFToken.NFTokenID) - }).filter((id) => Boolean(id)), + affectedNodes + .flatMap((node) => { + const nftokens = isModifiedNode(node) + ? (node.ModifiedNode.PreviousFields?.NFTokens as NFToken[]) + : [] + return nftokens.map((token) => token.NFToken.NFTokenID) + }) + .filter((id) => Boolean(id)), ) /* eslint-disable @typescript-eslint/no-unnecessary-condition -- Cleaner to read */ - const finalTokenIDs = flatMap(affectedNodes, (node) => - ( - (((node as ModifiedNode).ModifiedNode?.FinalFields?.NFTokens ?? - (node as CreatedNode).CreatedNode?.NewFields?.NFTokens) as NFToken[]) ?? - [] - ).map((token) => token.NFToken.NFTokenID), - ).filter((nftokenID) => Boolean(nftokenID)) + const finalTokenIDs = affectedNodes + .flatMap((node) => + ( + (((node as ModifiedNode).ModifiedNode?.FinalFields?.NFTokens ?? + (node as CreatedNode).CreatedNode?.NewFields + ?.NFTokens) as NFToken[]) ?? [] + ).map((token) => token.NFToken.NFTokenID), + ) + .filter((nftokenID) => Boolean(nftokenID)) /* eslint-enable @typescript-eslint/consistent-type-assertions -- Necessary for parsing metadata */ /* eslint-enable @typescript-eslint/no-unnecessary-condition -- Cleaner to read */ - const nftokenID = finalTokenIDs.find((id) => !previousTokenIDSet.has(id)) return nftokenID diff --git a/packages/xrpl/src/utils/getXChainClaimID.ts b/packages/xrpl/src/utils/getXChainClaimID.ts new file mode 100644 index 0000000000..5e640a8c1f --- /dev/null +++ b/packages/xrpl/src/utils/getXChainClaimID.ts @@ -0,0 +1,64 @@ +import { decode } from 'ripple-binary-codec' + +import { + CreatedNode, + isCreatedNode, + TransactionMetadata, +} from '../models/transactions/metadata' + +/** + * Ensures that the metadata is in a deserialized format to parse. + * + * @param meta - the metadata from a `tx` method call. Can be in json format or binary format. + * @returns the metadata in a deserialized format. + */ +function ensureDecodedMeta( + meta: TransactionMetadata | string, +): TransactionMetadata { + if (typeof meta === 'string') { + // eslint-disable-next-line @typescript-eslint/consistent-type-assertions -- Meta is either metadata or serialized metadata. + return decode(meta) as unknown as TransactionMetadata + } + return meta +} + +/** + * Gets the XChainClaimID value from the metadata of an `XChainCreateClaimID` transaction. + * + * @param meta - Metadata from the response to submitting and waiting for an XChainCreateClaimID transaction + * or from a `tx` method call. + * @returns The XChainClaimID for the minted NFT. + * @throws if meta is not TransactionMetadata. + */ +export default function getXChainClaimID( + meta: TransactionMetadata | string | undefined, +): string | undefined { + if (typeof meta !== 'string' && meta?.AffectedNodes === undefined) { + throw new TypeError(`Unable to parse the parameter given to getXChainClaimID. + 'meta' must be the metadata from an XChainCreateClaimID transaction. Received ${JSON.stringify( + meta, + )} instead.`) + } + + const decodedMeta = ensureDecodedMeta(meta) + + if (!decodedMeta.TransactionResult) { + throw new TypeError( + 'Cannot get XChainClaimID from un-validated transaction', + ) + } + + if (decodedMeta.TransactionResult !== 'tesSUCCESS') { + return undefined + } + + const createdNode = decodedMeta.AffectedNodes.find( + (node) => + isCreatedNode(node) && + node.CreatedNode.LedgerEntryType === 'XChainOwnedClaimID', + ) + + // eslint-disable-next-line @typescript-eslint/consistent-type-assertions -- necessary here + return (createdNode as CreatedNode).CreatedNode.NewFields + .XChainClaimID as string +} diff --git a/packages/xrpl/src/utils/hashes/hashLedger.ts b/packages/xrpl/src/utils/hashes/hashLedger.ts index fc70d57be0..77dddd0bf3 100644 --- a/packages/xrpl/src/utils/hashes/hashLedger.ts +++ b/packages/xrpl/src/utils/hashes/hashLedger.ts @@ -3,12 +3,14 @@ /* eslint-disable no-bitwise -- this file mimics behavior in rippled. It uses bitwise operators for and-ing numbers with a mask and bit shifting. */ -import { decode, encode } from '@transia/ripple-binary-codec' +import { bytesToHex } from '@xrplf/isomorphic/utils' import BigNumber from 'bignumber.js' +import { decode, encode } from 'ripple-binary-codec' import { ValidationError, XrplError } from '../../errors' -import type { Ledger } from '../../models/ledger' +import { APIVersion } from '../../models' import { LedgerEntry } from '../../models/ledger' +import { LedgerVersionMap } from '../../models/ledger/Ledger' import { Transaction, TransactionMetadata } from '../../models/transactions' import HashPrefix from './HashPrefix' @@ -29,10 +31,6 @@ function intToHex(integer: number, byteLength: number): string { return foo } -function bytesToHex(bytes: number[]): string { - return Buffer.from(bytes).toString('hex') -} - function bigintToHex( integerString: string | number | BigNumber, byteLength: number, @@ -86,7 +84,8 @@ export function hashSignedTx(tx: Transaction | string): string { if ( !txObject.EmitDetails && txObject.TxnSignature === undefined && - txObject.Signers === undefined + txObject.Signers === undefined && + txObject.SigningPubKey === undefined ) { throw new ValidationError('The transaction must be signed to hash it.') } @@ -102,7 +101,9 @@ export function hashSignedTx(tx: Transaction | string): string { * @returns The hash of the ledger. * @category Utilities */ -export function hashLedgerHeader(ledgerHeader: Ledger): string { +export function hashLedgerHeader( + ledgerHeader: LedgerVersionMap, +): string { const prefix = HashPrefix.LEDGER.toString(HEX).toUpperCase() const ledger = @@ -161,7 +162,7 @@ export function hashStateTree(entries: LedgerEntry[]): string { } function computeTransactionHash( - ledger: Ledger, + ledger: LedgerVersionMap, options: HashLedgerHeaderOptions, ): string { const { transaction_hash } = ledger @@ -191,7 +192,7 @@ function computeTransactionHash( } function computeStateHash( - ledger: Ledger, + ledger: LedgerVersionMap, options: HashLedgerHeaderOptions, ): string { const { account_hash } = ledger @@ -225,7 +226,7 @@ function computeStateHash( * @category Utilities */ function hashLedger( - ledger: Ledger, + ledger: LedgerVersionMap, options: { computeTreeHashes?: boolean } = {}, diff --git a/packages/xrpl/src/utils/hashes/index.ts b/packages/xrpl/src/utils/hashes/index.ts index 8b817280fd..c92b22109d 100644 --- a/packages/xrpl/src/utils/hashes/index.ts +++ b/packages/xrpl/src/utils/hashes/index.ts @@ -3,8 +3,9 @@ /* eslint-disable no-bitwise -- this file mimics behavior in rippled. It uses bitwise operators for and-ing numbers with a mask and bit shifting. */ -import { decodeAccountID } from '@transia/ripple-address-codec' +import { bytesToHex } from '@xrplf/isomorphic/utils' import BigNumber from 'bignumber.js' +import { decodeAccountID } from 'ripple-address-codec' import { convertStringToHex } from '../stringConversion' @@ -22,7 +23,7 @@ const HEX = 16 const BYTE_LENGTH = 4 function addressToHex(address: string): string { - return Buffer.from(decodeAccountID(address)).toString('hex') + return bytesToHex(decodeAccountID(address)) } function ledgerSpaceHex(name: keyof typeof ledgerSpaces): string { @@ -39,7 +40,7 @@ function currencyToHex(currency: string): string { bytes[12] = currency.charCodeAt(0) & MASK bytes[13] = currency.charCodeAt(1) & MASK bytes[14] = currency.charCodeAt(2) & MASK - return Buffer.from(bytes).toString('hex') + return bytesToHex(Uint8Array.from(bytes)) } /** diff --git a/packages/xrpl/src/utils/hashes/sha512Half.ts b/packages/xrpl/src/utils/hashes/sha512Half.ts index 3ffbadfcc4..29b05c4698 100644 --- a/packages/xrpl/src/utils/hashes/sha512Half.ts +++ b/packages/xrpl/src/utils/hashes/sha512Half.ts @@ -1,6 +1,7 @@ -import { createHash } from 'crypto' +import { sha512 } from '@xrplf/isomorphic/sha512' +import { bytesToHex, hexToBytes } from '@xrplf/isomorphic/utils' -const HASH_SIZE = 64 +const HASH_BYTES = 32 /** * Compute a sha512Half Hash of a hex string. @@ -9,11 +10,7 @@ const HASH_SIZE = 64 * @returns Hash of hex. */ function sha512Half(hex: string): string { - return createHash('sha512') - .update(Buffer.from(hex, 'hex')) - .digest('hex') - .toUpperCase() - .slice(0, HASH_SIZE) + return bytesToHex(sha512(hexToBytes(hex)).slice(0, HASH_BYTES)) } export default sha512Half diff --git a/packages/xrpl/src/utils/hooks.ts b/packages/xrpl/src/utils/hooks.ts index b44dd1b5e5..6a03cfce84 100644 --- a/packages/xrpl/src/utils/hooks.ts +++ b/packages/xrpl/src/utils/hooks.ts @@ -4,10 +4,7 @@ * This module contains the transaction types and the function to calculate the hook on */ -import { - TRANSACTION_TYPES, - TRANSACTION_TYPE_MAP, -} from '@transia/ripple-binary-codec' +import { TRANSACTION_TYPES, TRANSACTION_TYPE_MAP } from 'ripple-binary-codec' // import createHash = require('create-hash') import { XrplError } from '../errors' diff --git a/packages/xrpl/src/utils/index.ts b/packages/xrpl/src/utils/index.ts index 6c96ad531a..8346e0381e 100644 --- a/packages/xrpl/src/utils/index.ts +++ b/packages/xrpl/src/utils/index.ts @@ -13,19 +13,26 @@ import { isValidClassicAddress, isValidXAddress, xAddressToClassicAddress, -} from '@transia/ripple-address-codec' -import * as rbc from '@transia/ripple-binary-codec' -import { verify as verifyKeypairSignature } from '@transia/ripple-keypairs' +} from 'ripple-address-codec' +import { + encode as rbcEncode, + decode as rbcDecode, + encodeForMultisigning as rbcEncodeForMultisigning, + encodeForSigning as rbcEncodeForSigning, + encodeForSigningClaim as rbcEncodeForSigningClaim, +} from 'ripple-binary-codec' +import { verify as verifyKeypairSignature } from 'ripple-keypairs' +import type { APIVersion } from '../models' import { LedgerEntry } from '../models/ledger' import { Response } from '../models/methods' import { PaymentChannelClaim } from '../models/transactions/paymentChannelClaim' import { Transaction } from '../models/transactions/transaction' -import createCrossChainPayment from './createCrossChainPayment' import { deriveKeypair, deriveAddress, deriveXAddress } from './derive' import getBalanceChanges from './getBalanceChanges' import getNFTokenID from './getNFTokenID' +import getXChainClaimID from './getXChainClaimID' import { hashSignedTx, hashTx, @@ -85,7 +92,7 @@ function isValidSecret(secret: string): boolean { * @returns A hex string representing the encoded object. */ function encode(object: Transaction | LedgerEntry): string { - return rbc.encode(object) + return rbcEncode(object) } /** @@ -95,7 +102,7 @@ function encode(object: Transaction | LedgerEntry): string { * @returns A hex string representing the encoded object. */ function encodeForSigning(object: Transaction): string { - return rbc.encodeForSigning(object) + return rbcEncodeForSigning(object) } /** @@ -105,7 +112,7 @@ function encodeForSigning(object: Transaction): string { * @returns A hex string representing the encoded object. */ function encodeForSigningClaim(object: PaymentChannelClaim): string { - return rbc.encodeForSigningClaim(object) + return rbcEncodeForSigningClaim(object) } /** @@ -116,7 +123,7 @@ function encodeForSigningClaim(object: PaymentChannelClaim): string { * @returns A hex string representing the encoded object. */ function encodeForMultiSigning(object: Transaction, signer: string): string { - return rbc.encodeForMultisigning(object, signer) + return rbcEncodeForMultisigning(object, signer) } /** @@ -126,7 +133,7 @@ function encodeForMultiSigning(object: Transaction, signer: string): string { * @returns The hex string decoded according to XRPL serialization format. */ function decode(hex: string): Record { - return rbc.decode(hex) + return rbcDecode(hex) } /** @@ -153,7 +160,7 @@ function isValidAddress(address: string): boolean { * @returns Whether the response has more pages of data. * @category Utilities */ -function hasNextPage(response: Response): boolean { +function hasNextPage(response: Response): boolean { // eslint-disable-next-line @typescript-eslint/dot-notation -- only checking if it exists return Boolean(response.result['marker']) } @@ -223,9 +230,9 @@ export { encodeForSigning, encodeForSigningClaim, getNFTokenID, - createCrossChainPayment, parseNFTokenID, calculateHookOn, hexHookParameters, TTS, + getXChainClaimID, } diff --git a/packages/xrpl/src/utils/parseNFTokenID.ts b/packages/xrpl/src/utils/parseNFTokenID.ts index 2371e34cb8..0315d4bda3 100644 --- a/packages/xrpl/src/utils/parseNFTokenID.ts +++ b/packages/xrpl/src/utils/parseNFTokenID.ts @@ -1,6 +1,7 @@ /* eslint-disable @typescript-eslint/no-magic-numbers -- Doing hex string parsing. */ -import { encodeAccountID } from '@transia/ripple-address-codec' +import { hexToBytes } from '@xrplf/isomorphic/utils' import BigNumber from 'bignumber.js' +import { encodeAccountID } from 'ripple-address-codec' import { XrplError } from '../errors' @@ -24,7 +25,17 @@ import { XrplError } from '../errors' */ function unscrambleTaxon(taxon: number, tokenSeq: number): number { /* eslint-disable no-bitwise -- XOR is part of the encode/decode scheme. */ - return (taxon ^ (384160001 * tokenSeq + 2459)) % 4294967296 + const seed = 384160001 + const increment = 2459 + const max = 4294967296 + + const scramble = new BigNumber(seed) + .multipliedBy(tokenSeq) + .modulo(max) + .plus(increment) + .modulo(max) + .toNumber() + return (taxon ^ scramble) >>> 0 /* eslint-enable no-bitwise */ } @@ -75,7 +86,7 @@ export default function parseNFTokenID(nftokenID: string): { NFTokenID: nftokenID, Flags: new BigNumber(nftokenID.substring(0, 4), 16).toNumber(), TransferFee: new BigNumber(nftokenID.substring(4, 8), 16).toNumber(), - Issuer: encodeAccountID(Buffer.from(nftokenID.substring(8, 48), 'hex')), + Issuer: encodeAccountID(hexToBytes(nftokenID.substring(8, 48))), Taxon: unscrambleTaxon(scrambledTaxon, sequence), Sequence: sequence, } diff --git a/packages/xrpl/src/utils/signPaymentChannelClaim.ts b/packages/xrpl/src/utils/signPaymentChannelClaim.ts index 55eb5b2ac8..14d95183ca 100644 --- a/packages/xrpl/src/utils/signPaymentChannelClaim.ts +++ b/packages/xrpl/src/utils/signPaymentChannelClaim.ts @@ -1,5 +1,5 @@ -import { encodeForSigningClaim } from '@transia/ripple-binary-codec' -import { sign } from '@transia/ripple-keypairs' +import { encodeForSigningClaim } from 'ripple-binary-codec' +import { sign } from 'ripple-keypairs' import { xrpToDrops } from './xrpConversion' @@ -7,19 +7,19 @@ import { xrpToDrops } from './xrpConversion' * Sign a payment channel claim. * * @param channel - Channel identifier specified by the paymentChannelClaim. - * @param amount - Amount specified by the paymentChannelClaim. + * @param xrpAmount - XRP Amount specified by the paymentChannelClaim. * @param privateKey - Private Key to sign paymentChannelClaim with. * @returns True if the channel is valid. * @category Utilities */ function signPaymentChannelClaim( channel: string, - amount: string, + xrpAmount: string, privateKey: string, ): string { const signingData = encodeForSigningClaim({ channel, - amount: xrpToDrops(amount), + amount: xrpToDrops(xrpAmount), }) return sign(signingData, privateKey) } diff --git a/packages/xrpl/src/utils/stringConversion.ts b/packages/xrpl/src/utils/stringConversion.ts index fd56dd4701..c2ab9261a3 100644 --- a/packages/xrpl/src/utils/stringConversion.ts +++ b/packages/xrpl/src/utils/stringConversion.ts @@ -1,12 +1,17 @@ +import { stringToHex, hexToString } from '@xrplf/isomorphic/utils' + /** * Converts a string to its hex equivalent. Useful for Memos. * * @param string - The string to convert to Hex. * @returns The Hex equivalent of the string. + * + * @deprecated use `@xrplf/isomorphic/utils`'s `stringToHex` + * * @category Utilities */ function convertStringToHex(string: string): string { - return Buffer.from(string, 'utf8').toString('hex').toUpperCase() + return stringToHex(string) } /** @@ -15,13 +20,13 @@ function convertStringToHex(string: string): string { * @param hex - The hex to convert to a string. * @param encoding - The encoding to use. Defaults to 'utf8' (UTF-8). 'ascii' is also allowed. * @returns The converted string. + * + * @deprecated use `@xrplf/isomorphic/utils`'s `hexToString` + * * @category Utilities */ -function convertHexToString( - hex: string, - encoding: BufferEncoding = 'utf8', -): string { - return Buffer.from(hex, 'hex').toString(encoding) +function convertHexToString(hex: string, encoding = 'utf8'): string { + return hexToString(hex, encoding) } export { convertHexToString, convertStringToHex } diff --git a/packages/xrpl/src/utils/verifyPaymentChannelClaim.ts b/packages/xrpl/src/utils/verifyPaymentChannelClaim.ts index cc269677b4..fdf3eb9378 100644 --- a/packages/xrpl/src/utils/verifyPaymentChannelClaim.ts +++ b/packages/xrpl/src/utils/verifyPaymentChannelClaim.ts @@ -1,5 +1,5 @@ -import { encodeForSigningClaim } from '@transia/ripple-binary-codec' -import { verify } from '@transia/ripple-keypairs' +import { encodeForSigningClaim } from 'ripple-binary-codec' +import { verify } from 'ripple-keypairs' import { xrpToDrops } from './xrpConversion' @@ -7,7 +7,7 @@ import { xrpToDrops } from './xrpConversion' * Verify the signature of a payment channel claim. * * @param channel - Channel identifier specified by the paymentChannelClaim. - * @param amount - Amount specified by the paymentChannelClaim. + * @param xrpAmount - XRP Amount specified by the paymentChannelClaim. * @param signature - Signature produced from signing paymentChannelClaim. * @param publicKey - Public key that signed the paymentChannelClaim. * @returns True if the channel is valid. @@ -16,13 +16,13 @@ import { xrpToDrops } from './xrpConversion' // eslint-disable-next-line max-params -- Needs 4 params function verifyPaymentChannelClaim( channel: string, - amount: string, + xrpAmount: string, signature: string, publicKey: string, ): boolean { const signingData = encodeForSigningClaim({ channel, - amount: xrpToDrops(amount), + amount: xrpToDrops(xrpAmount), }) return verify(signingData, signature, publicKey) } diff --git a/packages/xrpl/src/utils/xrpConversion.ts b/packages/xrpl/src/utils/xrpConversion.ts index e42a9f77e6..151dca3d8a 100644 --- a/packages/xrpl/src/utils/xrpConversion.ts +++ b/packages/xrpl/src/utils/xrpConversion.ts @@ -15,7 +15,7 @@ const SANITY_CHECK = /^-?[0-9.]+$/u * @throws When drops amount is invalid. * @category Utilities */ -export function dropsToXrp(dropsToConvert: BigNumber.Value): string { +export function dropsToXrp(dropsToConvert: BigNumber.Value): number { /* * Converting to BigNumber and then back to string should remove any * decimal point followed by zeros, e.g. '1.00'. @@ -50,7 +50,7 @@ export function dropsToXrp(dropsToConvert: BigNumber.Value): string { ) } - return new BigNumber(drops).dividedBy(DROPS_PER_XRP).toString(BASE_TEN) + return new BigNumber(drops).dividedBy(DROPS_PER_XRP).toNumber() } /** diff --git a/packages/xrpl/test/client/autofill.test.ts b/packages/xrpl/test/client/autofill.test.ts index cfb93f2c72..71ba817af2 100644 --- a/packages/xrpl/test/client/autofill.test.ts +++ b/packages/xrpl/test/client/autofill.test.ts @@ -7,6 +7,7 @@ import { Payment, Transaction, } from '../../src' +import { ValidationError } from '../../src/errors' import rippled from '../fixtures/rippled' import { setupClient, @@ -15,34 +16,193 @@ import { } from '../setupClient' import { assertRejects } from '../testUtils' +const NetworkID = 1025 const Fee = '10' const Sequence = 1432 const LastLedgerSequence = 2908734 describe('client.autofill', function () { let testContext: XrplTestContext + const AMOUNT = '1234' + let paymentTx: Payment - beforeEach(async () => { + async function setupMockRippledVersionAndID( + buildVersion: string, + networkID: number, + ): Promise { + await testContext.client.disconnect() + rippled.server_info.withNetworkId.result.info.build_version = buildVersion + rippled.server_info.withNetworkId.result.info.network_id = networkID + rippled.fee.normal.result.drops.open_ledger_fee = '12' + testContext.client.connection.on('connected', () => { + testContext.mockRippled?.addResponse( + 'server_info', + rippled.server_info.withNetworkId, + ) + testContext.mockRippled?.addResponse('fee', rippled.fee.normal) + }) + + await testContext.client.connect() + } + + beforeAll(async () => { testContext = await setupClient() }) - afterEach(async () => teardownClient(testContext)) + afterAll(async () => teardownClient(testContext)) + + beforeEach(async () => { + paymentTx = { + TransactionType: 'Payment', + Account: 'rUn84CUYbNjRoTQ6mSW7BVJPSVJNLb1QLo', + Amount: AMOUNT, + Destination: 'rfkE1aSy9G8Upk4JssnwBxhEv5p4mn2KTy', + DestinationTag: 1, + Fee: '12', + Flags: 2147483648, + LastLedgerSequence: 65953073, + Sequence: 65923914, + SigningPubKey: + '02F9E33F16DF9507705EC954E3F94EB5F10D1FC4A354606DBE6297DBB1096FE654', + TxnSignature: + '3045022100E3FAE0EDEC3D6A8FF6D81BC9CF8288A61B7EEDE8071E90FF9314CB4621058D10022043545CF631706D700CEE65A1DB83EFDD185413808292D9D90F14D87D3DC2D8CB', + InvoiceID: + '6F1DFD1D0FE8A32E40E1F2C05CF1C15545BAB56B617F9C6C2D63A6B704BEF59B', + Paths: [ + [{ currency: 'BTC', issuer: 'r9vbV3EHvXWjSkeQ6CAcYVPGeq7TuiXY2X' }], + ], + SendMax: '100000000', + } + }) + + it('Validate Payment transaction API v2: Payment Transaction: Specify Only Amount field', async function () { + const txResult = await testContext.client.autofill(paymentTx) + + assert.strictEqual(txResult.Amount, AMOUNT) + }) + + it('Validate Payment transaction API v2: Payment Transaction: Specify Only DeliverMax field', async function () { + // @ts-expect-error -- DeliverMax is a non-protocol, RPC level field in Payment transactions + paymentTx.DeliverMax = paymentTx.Amount + // @ts-expect-error -- DeliverMax is a non-protocol, RPC level field in Payment transactions + delete paymentTx.Amount + const txResult = await testContext.client.autofill(paymentTx) + + assert.strictEqual(txResult.Amount, AMOUNT) + }) + + it('Validate Payment transaction API v2: Payment Transaction: identical DeliverMax and Amount fields', async function () { + // @ts-expect-error -- DeliverMax is a non-protocol, RPC level field in Payment transactions + paymentTx.DeliverMax = paymentTx.Amount + + const txResult = await testContext.client.autofill(paymentTx) + + assert.strictEqual(txResult.Amount, AMOUNT) + assert.strictEqual('DeliverMax' in txResult, false) + }) + + it('Validate Payment transaction API v2: Payment Transaction: differing DeliverMax and Amount fields', async function () { + // @ts-expect-error -- DeliverMax is a non-protocol, RPC level field in Payment transactions + paymentTx.DeliverMax = '6789' + paymentTx.Amount = '1234' + + await assertRejects(testContext.client.autofill(paymentTx), ValidationError) + }) it('should not autofill if fields are present', async function () { const tx: Transaction = { TransactionType: 'DepositPreauth', Account: 'rGWrZyQqhTp9Xu7G5Pkayo7bXjH4k4QYpf', Authorize: 'rpZc4mVfWUif9CRoHRKKcmhu1nx2xktxBo', + NetworkID, Fee, Sequence, LastLedgerSequence, } const txResult = await testContext.client.autofill(tx) + assert.strictEqual(txResult.NetworkID, NetworkID) assert.strictEqual(txResult.Fee, Fee) assert.strictEqual(txResult.Sequence, Sequence) assert.strictEqual(txResult.LastLedgerSequence, LastLedgerSequence) }) + it('ignores network ID if missing', async function () { + const tx: Payment = { + TransactionType: 'Payment', + Account: 'XVLhHMPHU98es4dbozjVtdWzVrDjtV18pX8yuPT7y4xaEHi', + Amount: '1234', + Destination: 'X7AcgcsBL6XDcUb289X4mJ8djcdyKaB5hJDWMArnXr61cqZ', + Fee, + Sequence, + LastLedgerSequence, + } + testContext.mockRippled!.addResponse('ledger', rippled.ledger.normal) + + const txResult = await testContext.client.autofill(tx) + + assert.strictEqual(txResult.NetworkID, undefined) + }) + + // NetworkID is required in transaction for network > 1024 and from version 1.11.0 or later. + // More context: https://github.com/XRPLF/rippled/pull/4370 + it('overrides network ID if > 1024 and version is later than 1.11.0', async function () { + await setupMockRippledVersionAndID('1.11.1', 1025) + const tx: Payment = { + TransactionType: 'Payment', + Account: 'XVLhHMPHU98es4dbozjVtdWzVrDjtV18pX8yuPT7y4xaEHi', + Amount: '1234', + Destination: 'X7AcgcsBL6XDcUb289X4mJ8djcdyKaB5hJDWMArnXr61cqZ', + Fee, + Sequence, + LastLedgerSequence, + } + testContext.mockRippled!.addResponse('ledger', rippled.ledger.normal) + + const txResult = await testContext.client.autofill(tx) + + assert.strictEqual(txResult.NetworkID, 1025) + }) + + // NetworkID is only required in transaction for version 1.11.0 or later. + // More context: https://github.com/XRPLF/rippled/pull/4370 + it('ignores network ID if > 1024 but version is earlier than 1.11.0', async function () { + await setupMockRippledVersionAndID('1.10.0', 1025) + const tx: Payment = { + TransactionType: 'Payment', + Account: 'XVLhHMPHU98es4dbozjVtdWzVrDjtV18pX8yuPT7y4xaEHi', + Amount: '1234', + Destination: 'X7AcgcsBL6XDcUb289X4mJ8djcdyKaB5hJDWMArnXr61cqZ', + Fee, + Sequence, + LastLedgerSequence, + } + testContext.mockRippled!.addResponse('ledger', rippled.ledger.normal) + + const txResult = await testContext.client.autofill(tx) + + assert.strictEqual(txResult.NetworkID, undefined) + }) + + // NetworkID <= 1024 does not require a newtorkID in transaction. + // More context: https://github.com/XRPLF/rippled/pull/4370 + it('ignores network ID if <= 1024', async function () { + await setupMockRippledVersionAndID('1.11.1', 1023) + const tx: Payment = { + TransactionType: 'Payment', + Account: 'XVLhHMPHU98es4dbozjVtdWzVrDjtV18pX8yuPT7y4xaEHi', + Amount: '1234', + Destination: 'X7AcgcsBL6XDcUb289X4mJ8djcdyKaB5hJDWMArnXr61cqZ', + Fee, + Sequence, + LastLedgerSequence, + } + testContext.mockRippled!.addResponse('ledger', rippled.ledger.normal) + + const txResult = await testContext.client.autofill(tx) + + assert.strictEqual(txResult.NetworkID, undefined) + }) + it('converts Account & Destination X-address to their classic address', async function () { const tx: Payment = { TransactionType: 'Payment', diff --git a/packages/xrpl/test/client/errors.test.ts b/packages/xrpl/test/client/errors.test.ts index b61b587956..d6a3e3c0e0 100644 --- a/packages/xrpl/test/client/errors.test.ts +++ b/packages/xrpl/test/client/errors.test.ts @@ -5,7 +5,7 @@ import { XrplError, NotFoundError } from '../../src' describe('client errors', function () { it('XrplError with data', async function () { const error = new XrplError('_message_', '_data_') - assert.strictEqual(error.toString(), "[XrplError(_message_, '_data_')]") + assert.strictEqual(error.toString(), '[XrplError(_message_, "_data_")]') }) it('NotFoundError default message', async function () { diff --git a/packages/xrpl/test/client/getXrpBalance.test.ts b/packages/xrpl/test/client/getXrpBalance.test.ts index c69ec66461..783eaa45d9 100644 --- a/packages/xrpl/test/client/getXrpBalance.test.ts +++ b/packages/xrpl/test/client/getXrpBalance.test.ts @@ -30,7 +30,7 @@ describe('client.getXrpBalance', function () { ) testContext.mockRippled!.addResponse('ledger', rippled.ledger.normal) const result = await testContext.client.getXrpBalance(testcase.address) - assert.equal(result, '922.913243') + assert.equal(result, 922.913243) }) }) }) diff --git a/packages/xrpl/test/client/partialPayments.test.ts b/packages/xrpl/test/client/partialPayments.test.ts index c9788cda29..ad9633438f 100644 --- a/packages/xrpl/test/client/partialPayments.test.ts +++ b/packages/xrpl/test/client/partialPayments.test.ts @@ -1,8 +1,6 @@ -/* eslint-disable @typescript-eslint/no-explicit-any -- required for formatting transactions */ import { expect } from 'chai' import cloneDeep from 'lodash/cloneDeep' -import type { TransactionStream } from '../../src' import rippled from '../fixtures/rippled' import { setupClient, @@ -23,7 +21,10 @@ describe('client handling of tfPartialPayments', function () { it('Tx with no tfPartialPayment', async function () { testContext.mockRippled!.addResponse('tx', rippled.tx.Payment) - const resp = await testContext.client.request({ command: 'tx' }) + const resp = await testContext.client.request({ + command: 'tx', + transaction: rippled.tx.Payment.result.tx_json.hash, + }) expect(resp.warnings).to.equal(undefined) }) @@ -31,7 +32,10 @@ describe('client handling of tfPartialPayments', function () { it('Tx with IOU tfPartialPayment', async function () { const mockResponse = { ...rippled.tx.Payment, result: partialPaymentIOU } testContext.mockRippled!.addResponse('tx', mockResponse) - const resp = await testContext.client.request({ command: 'tx' }) + const resp = await testContext.client.request({ + command: 'tx', + transaction: mockResponse.result.tx_json.hash, + }) expect(resp.warnings).to.deep.equal([ { @@ -44,7 +48,10 @@ describe('client handling of tfPartialPayments', function () { it('Tx with XRP tfPartialPayment', async function () { const mockResponse = { ...rippled.tx.Payment, result: partialPaymentXRP } testContext.mockRippled!.addResponse('tx', mockResponse) - const resp = await testContext.client.request({ command: 'tx' }) + const resp = await testContext.client.request({ + command: 'tx', + transaction: mockResponse.result.tx_json.hash, + }) expect(resp.warnings).to.deep.equal([ { @@ -59,7 +66,10 @@ describe('client handling of tfPartialPayments', function () { 'account_tx', rippled.account_tx.normal, ) - const resp = await testContext.client.request({ command: 'account_tx' }) + const resp = await testContext.client.request({ + command: 'account_tx', + account: rippled.account_tx.normal.result.account, + }) expect(resp.warnings).to.equal(undefined) }) @@ -71,8 +81,10 @@ describe('client handling of tfPartialPayments', function () { } const mockResponse = rippled.account_tx.normal mockResponse.result.transactions.push({ - tx: partial.result, + tx_json: partial.result.tx_json, meta: partial.result.meta, + validated: true, + // eslint-disable-next-line @typescript-eslint/no-explicit-any -- we are mocking the response } as any) testContext.mockRippled!.addResponse('account_tx', mockResponse) @@ -94,8 +106,10 @@ describe('client handling of tfPartialPayments', function () { const partial = { ...rippled.tx.Payment, result: partialPaymentXRP } const mockResponse = rippled.account_tx.normal mockResponse.result.transactions.push({ - tx: partial.result, + tx_json: partial.result.tx_json, meta: partial.result.meta, + validated: true, + // eslint-disable-next-line @typescript-eslint/no-explicit-any -- we are mocking the response } as any) testContext.mockRippled!.addResponse('account_tx', mockResponse) @@ -119,6 +133,7 @@ describe('client handling of tfPartialPayments', function () { ) const resp = await testContext.client.request({ command: 'transaction_entry', + tx_hash: rippled.transaction_entry.result.tx_json.hash, }) expect(resp.warnings).to.equal(undefined) @@ -126,10 +141,11 @@ describe('client handling of tfPartialPayments', function () { it('transaction_entry with XRP tfPartialPayment', async function () { const mockResponse = cloneDeep(rippled.transaction_entry) - mockResponse.result.tx_json.Amount = '1000' + mockResponse.result.tx_json.DeliverMax = '1000' testContext.mockRippled!.addResponse('transaction_entry', mockResponse) const resp = await testContext.client.request({ command: 'transaction_entry', + tx_hash: mockResponse.result.tx_json.hash, }) expect(resp.warnings).to.deep.equal([ @@ -145,7 +161,7 @@ describe('client handling of tfPartialPayments', function () { 'transaction_entry', rippled.transaction_entry, ) - testContext.client.on('transaction', (tx: TransactionStream) => { + testContext.client.on('transaction', (tx) => { expect(tx.warnings).to.equal(undefined) done() }) @@ -161,7 +177,7 @@ describe('client handling of tfPartialPayments', function () { 'transaction_entry', rippled.transaction_entry, ) - testContext.client.on('transaction', (tx: TransactionStream) => { + testContext.client.on('transaction', (tx) => { expect(tx.warnings).to.deep.equal([ { id: 2001, diff --git a/packages/xrpl/test/client/requestAll.test.ts b/packages/xrpl/test/client/requestAll.test.ts index 9695e157ac..1949a8ea17 100644 --- a/packages/xrpl/test/client/requestAll.test.ts +++ b/packages/xrpl/test/client/requestAll.test.ts @@ -10,9 +10,18 @@ import { const rippledResponse = function (request: Request): Record { if ('marker' in request) { - return rippled.ledger_data.last_page + return rippled.ledger_data.lastPage } - return rippled.ledger_data.first_page + return rippled.ledger_data.firstPage +} + +const rippledResponseFirstEmpty = function ( + request: Request, +): Record { + if ('marker' in request) { + return rippled.ledger_data.lastPage + } + return rippled.ledger_data.firstPageEmpty } describe('client.requestAll', function () { @@ -34,14 +43,25 @@ describe('client.requestAll', function () { ) }) - it('rejects when there are no more pages', async function () { + it('stops when there are no more pages', async function () { testContext.mockRippled!.addResponse( 'ledger_data', - rippled.ledger_data.last_page, + rippled.ledger_data.lastPage, ) const allResponses = await testContext.client.requestAll({ command: 'ledger_data', }) assert.equal(allResponses.length, 1) }) + + it('handles when the first page has no results', async function () { + testContext.mockRippled!.addResponse( + 'ledger_data', + rippledResponseFirstEmpty, + ) + const allResponses = await testContext.client.requestAll({ + command: 'ledger_data', + }) + assert.equal(allResponses.length, 2) + }) }) diff --git a/packages/xrpl/test/client/requestNextPage.test.ts b/packages/xrpl/test/client/requestNextPage.test.ts index a1500c1a6f..567ca2958c 100644 --- a/packages/xrpl/test/client/requestNextPage.test.ts +++ b/packages/xrpl/test/client/requestNextPage.test.ts @@ -11,9 +11,9 @@ import { assertRejects } from '../testUtils' const rippledResponse = function (request: Request): Record { if ('marker' in request) { - return rippled.ledger_data.last_page + return rippled.ledger_data.lastPage } - return rippled.ledger_data.first_page + return rippled.ledger_data.firstPage } describe('client.requestNextPage', function () { @@ -57,4 +57,31 @@ describe('client.requestNextPage', function () { 'response does not have a next page', ) }) + + // TODO: Write this test to verify multiple types of commands can be run - https://github.com/XRPLF/xrpl.js/issues/2384 + // it('requests different types of commands', async function () { + // testContext.mockRippled!.addResponse('account_channels', { + // id: 0, + // result: { + // account: testContext.wallet.classicAddress, + // channels: [], + // ledger_hash: + // 'C8BFA74A740AA22AD9BD724781589319052398B0C6C817B88D55628E07B7B4A1', + // ledger_index: 150, + // validated: true, + // }, + // type: 'response', + // }) + // const response = await testContext.client.request({ + // command: 'ledger_data', + // }) + // const responseNextPage = await testContext.client.requestNextPage( + // { command: 'ledger_data' }, + // response, + // ) + // assert.equal( + // responseNextPage.result.state[0].index, + // '000B714B790C3C79FEE00D17C4DEB436B375466F29679447BA64F265FD63D731', + // ) + // }) }) diff --git a/packages/xrpl/test/client/submit.test.ts b/packages/xrpl/test/client/submit.test.ts index c2c578909b..ae29f307c1 100644 --- a/packages/xrpl/test/client/submit.test.ts +++ b/packages/xrpl/test/client/submit.test.ts @@ -1,9 +1,10 @@ +/* eslint-disable @typescript-eslint/restrict-template-expressions -- error type thrown can be any */ import { assert } from 'chai' import cloneDeep from 'lodash/cloneDeep' -import { ValidationError } from '../../src' +import { multisign, ValidationError } from '../../src' import { Transaction } from '../../src/models/transactions' -import Wallet from '../../src/Wallet' +import { Wallet } from '../../src/Wallet' import rippled from '../fixtures/rippled' import { setupClient, @@ -56,7 +57,6 @@ describe('client.submit', function () { const response = await testContext.client.submit(tx, { wallet }) assert(response.result.engine_result, 'tesSUCCESS') } catch (error) { - // eslint-disable-next-line @typescript-eslint/restrict-template-expressions -- error type thrown can be any assert(false, `Did not expect an error to be thrown: ${error}`) } }) @@ -114,7 +114,31 @@ describe('client.submit', function () { const response = await testContext.client.submit(signedTxEncoded) assert(response.result.engine_result, 'tesSUCCESS') } catch (error) { - // eslint-disable-next-line @typescript-eslint/restrict-template-expressions -- error type thrown can be any + assert(false, `Did not expect an error to be thrown: ${error}`) + } + }) + + it('should submit a multisigned transaction', async function () { + const signerWallet1 = Wallet.generate() + const signerWallet2 = Wallet.generate() + const accountSetTx: Transaction = { + TransactionType: 'AccountSet', + Account: 'rhvh5SrgBL5V8oeV9EpDuVszeJSSCEkbPc', + Sequence: 1, + Fee: '12', + LastLedgerSequence: 12312, + } + + testContext.mockRippled!.addResponse('submit', rippled.submit.success) + + const signed1 = signerWallet1.sign(accountSetTx, true) + const signed2 = signerWallet2.sign(accountSetTx, true) + const multisignedTxEncoded = multisign([signed1.tx_blob, signed2.tx_blob]) + + try { + const response = await testContext.client.submit(multisignedTxEncoded) + assert(response.result.engine_result, 'tesSUCCESS') + } catch (error) { assert(false, `Did not expect an error to be thrown: ${error}`) } }) diff --git a/packages/xrpl/test/connection.test.ts b/packages/xrpl/test/connection.test.ts index 7c6f73a3ba..ef300f6088 100644 --- a/packages/xrpl/test/connection.test.ts +++ b/packages/xrpl/test/connection.test.ts @@ -1,8 +1,8 @@ -/* eslint-disable max-len -- Some large lines necessary */ /* eslint-disable max-statements -- test has a lot of statements */ import net from 'net' import { assert } from 'chai' +import { HttpsProxyAgent } from 'https-proxy-agent' import { Client, @@ -12,6 +12,7 @@ import { ResponseFormatError, XrplError, TimeoutError, + SubscribeRequest, } from '../src' import { Connection } from '../src/client/connection' @@ -23,22 +24,6 @@ import { } from './setupClient' import { assertRejects, ignoreWebSocketDisconnect } from './testUtils' -type GlobalThis = typeof globalThis -type Global = GlobalThis & { - // eslint-disable-next-line @typescript-eslint/no-explicit-any -- Necessary for Jest in browser - TextEncoder: any - // eslint-disable-next-line @typescript-eslint/no-explicit-any -- Necessary for Jest in browser - TextDecoder: any -} -declare const global: Global - -if (typeof TextDecoder === 'undefined') { - // eslint-disable-next-line node/global-require, @typescript-eslint/no-require-imports, node/prefer-global/text-encoder, global-require, @typescript-eslint/no-var-requires -- Needed for Jest - global.TextEncoder = require('util').TextEncoder - // eslint-disable-next-line node/global-require, @typescript-eslint/no-require-imports, node/prefer-global/text-decoder, global-require, @typescript-eslint/no-var-requires -- Needed for Jest - global.TextDecoder = require('util').TextDecoder -} - // how long before each test case times out const TIMEOUT = 20000 @@ -229,9 +214,9 @@ describe('Connection', function () { const server = await createServer() const port = (server.address() as net.AddressInfo).port const options = { - proxy: `ws://127.0.0.1:${port}`, - authorization: 'authorization', - trustedCertificates: ['path/to/pem'], + agent: new HttpsProxyAgent(`ws://127.0.0.1:${port}`, { + ca: ['path/to/pem'], + }), } const connection = new Connection( // @ts-expect-error -- Testing private member @@ -346,6 +331,7 @@ describe('Connection', function () { 'DisconnectedError', async () => { await clientContext.client + // @ts-expect-error -- Intentionally invalid command .request({ command: 'test_command', data: { closeServer: true } }) .then(() => { assert.fail('Should throw DisconnectedError') @@ -421,7 +407,7 @@ describe('Connection', function () { spy = jest // @ts-expect-error -- Testing private member .spyOn(clientContext.client.connection.ws, 'send') - // @ts-expect-error -- Testing private member + // @ts-expect-error -- Typescript doesnt like the mock .mockImplementation((_0, _1, _2) => { return 0 }) @@ -437,6 +423,7 @@ describe('Connection', function () { try { await clientContext.client.connect() } catch (error) { + // @ts-expect-error -- Error has a message expect(error.message).toEqual( "Error: connect() timed out after 5000 ms. If your internet connection is working, the rippled server may be blocked or inaccessible. You can also try setting the 'connectionTimeout' option in the Client constructor.", ) @@ -455,6 +442,7 @@ describe('Connection', function () { async () => { await clientContext.client .request({ + // @ts-expect-error -- Intentionally invalid command command: 'test_command', data: { unrecognizedResponse: true }, }) @@ -845,7 +833,10 @@ describe('Connection', function () { it( 'propagates RippledError data', async () => { - const request = { command: 'subscribe', streams: 'validations' } + const request: SubscribeRequest = { + command: 'subscribe', + streams: ['validations'], + } clientContext.mockRippled?.addResponse( request.command, rippled.subscribe.error, diff --git a/packages/xrpl/test/createMockRippled.ts b/packages/xrpl/test/createMockRippled.ts index 2bae9c176b..954bcc2b1a 100644 --- a/packages/xrpl/test/createMockRippled.ts +++ b/packages/xrpl/test/createMockRippled.ts @@ -1,4 +1,4 @@ -import { EventEmitter2 } from 'eventemitter2' +import { EventEmitter } from 'eventemitter3' import { Server as WebSocketServer, type WebSocket } from 'ws' import type { Request } from '../src' @@ -10,7 +10,7 @@ import type { import { destroyServer, getFreePort } from './testUtils' -function createResponse( +export function createResponse( request: { id: number | string }, response: Record, ): string { @@ -48,14 +48,14 @@ export interface PortResponse extends BaseResponse { */ export type MockedWebSocketServer = WebSocketServer & - EventEmitter2 & { + EventEmitter & { responses: Record suppressOutput: boolean socket: WebSocket addResponse: ( command: string, response: - | Response + | BaseResponse | ErrorResponse | ((r: Request) => Response | ErrorResponse | Record) | Record, @@ -83,8 +83,8 @@ export function destroyMockRippled(server: MockedWebSocketServer): void { } export default function createMockRippled(port: number): MockedWebSocketServer { + Object.assign(WebSocketServer.prototype, EventEmitter.prototype) const mock = new WebSocketServer({ port }) as MockedWebSocketServer - Object.assign(mock, EventEmitter2.prototype) mock.responses = {} mock.suppressOutput = false diff --git a/packages/xrpl/test/fixtures/rippled/accountTx.json b/packages/xrpl/test/fixtures/rippled/accountTx.json index 707334fa47..8156789a1b 100644 --- a/packages/xrpl/test/fixtures/rippled/accountTx.json +++ b/packages/xrpl/test/fixtures/rippled/accountTx.json @@ -91,7 +91,7 @@ "TransactionIndex": 12, "TransactionResult": "tesSUCCESS" }, - "tx": { + "tx_json": { "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", "Destination": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", "DestinationTag": 13, @@ -169,7 +169,7 @@ "TransactionIndex": 59, "TransactionResult": "tesSUCCESS" }, - "tx": { + "tx_json": { "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", "Authorize": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", "Fee": "10", diff --git a/packages/xrpl/test/fixtures/rippled/fee.json b/packages/xrpl/test/fixtures/rippled/fee.json new file mode 100644 index 0000000000..ca65111186 --- /dev/null +++ b/packages/xrpl/test/fixtures/rippled/fee.json @@ -0,0 +1,27 @@ +{ + "api_version": 1, + "id": 1, + "result": { + "current_ledger_size": "13", + "current_queue_size": "0", + "drops": { + "base_fee": "10", + "base_fee_no_hooks": "10", + "median_fee": "5000", + "minimum_fee": "10", + "open_ledger_fee": "10" + }, + "expected_ledger_size": "409", + "fee_hooks_feeunits": "10", + "ledger_current_index": 8229940, + "levels": { + "median_level": "128000", + "minimum_level": "256", + "open_ledger_level": "256", + "reference_level": "256" + }, + "max_queue_size": "8180" + }, + "type": "response", + "status": "success" +} diff --git a/packages/xrpl/test/fixtures/rippled/index.ts b/packages/xrpl/test/fixtures/rippled/index.ts index 757f8fa08b..811d11c13c 100644 --- a/packages/xrpl/test/fixtures/rippled/index.ts +++ b/packages/xrpl/test/fixtures/rippled/index.ts @@ -5,13 +5,16 @@ import normalAccountTx from './accountTx.json' import fabric from './bookOffers' import usd_xrp from './bookOffersUsdXrp.json' import xrp_usd from './bookOffersXrpUsd.json' +import normalFee from './fee.json' import normalLedger from './ledger.json' -import first_page from './ledgerDataFirstPage.json' -import last_page from './ledgerDataLastPage.json' +import firstPage from './ledgerDataFirstPage.json' +import firstPageEmpty from './ledgerDataFirstPageEmpty.json' +import lastPage from './ledgerDataLastPage.json' import iouPartialPayment from './partialPaymentIOU.json' import xrpPartialPayment from './partialPaymentXRP.json' import normalServerInfo from './serverInfo.json' import highLoadFactor from './serverInfoHighLoadFactor.json' +import withNetworkIDServerInfo from './serverInfoNetworkID.json' import consensusStream from './streams/consensusPhase.json' import ledgerStream from './streams/ledger.json' import manifestStream from './streams/manifest.json' @@ -24,8 +27,12 @@ import successSubmit from './submit.json' import successSubscribe from './subscribe.json' import errorSubscribe from './subscribeError.json' import transaction_entry from './transactionEntry.json' +import NFTokenMint from './tx/NFTokenMint.json' +import NFTokenMint2 from './tx/NFTokenMint2.json' import OfferCreateSell from './tx/offerCreateSell.json' import Payment from './tx/payment.json' +import XChainCreateClaimID from './tx/XChainCreateClaimID.json' +import XChainCreateClaimID2 from './tx/XChainCreateClaimID2.json' import unsubscribe from './unsubscribe.json' const submit = { @@ -76,19 +83,30 @@ const book_offers = { xrp_usd, } +const fee = { + // status: "success" is manually added to this json file + normal: normalFee, +} + const ledger_data = { - first_page, - last_page, + firstPage, + firstPageEmpty, + lastPage, } const server_info = { normal: normalServerInfo, highLoadFactor, + withNetworkId: withNetworkIDServerInfo, } const tx = { + NFTokenMint, + NFTokenMint2, Payment, OfferCreateSell, + XChainCreateClaimID, + XChainCreateClaimID2, } const rippled = { @@ -96,6 +114,7 @@ const rippled = { account_objects, account_tx, book_offers, + fee, ledger, ledger_data, partial_payments, diff --git a/packages/xrpl/test/fixtures/rippled/ledgerDataFirstPageEmpty.json b/packages/xrpl/test/fixtures/rippled/ledgerDataFirstPageEmpty.json new file mode 100644 index 0000000000..e963c40d11 --- /dev/null +++ b/packages/xrpl/test/fixtures/rippled/ledgerDataFirstPageEmpty.json @@ -0,0 +1,14 @@ +{ + "id": 0, + "status": "success", + "type": "response", + "result": { + "ledger_hash": + "102A6E70FFB18C18E97BB56E3047B0E45EA1BCC90BFCCB8CBB0D07BF0E2AB449", + "ledger_index": 38202000, + "marker": + "000B714B790C3C79FEE00D17C4DEB436B375466F29679447BA64F265FD63D730", + "state": [], + "validated": true + } +} diff --git a/packages/xrpl/test/fixtures/rippled/partialPaymentIOU.json b/packages/xrpl/test/fixtures/rippled/partialPaymentIOU.json index 711f57f2ff..ffd8784704 100644 --- a/packages/xrpl/test/fixtures/rippled/partialPaymentIOU.json +++ b/packages/xrpl/test/fixtures/rippled/partialPaymentIOU.json @@ -1,18 +1,20 @@ { - "Account": "rGFuMiw48HdbnrUbkRYuitXTmfrDBNTCnX", - "Amount": { - "currency": "USD", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "10" + "tx_json": { + "Account": "rGFuMiw48HdbnrUbkRYuitXTmfrDBNTCnX", + "DeliverMax": { + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "10" + }, + "Destination": "rNNuQMuExCiEjeZ4h9JJnj5PSWypdMXDj4", + "Fee": "10000", + "Flags": 131072, + "Sequence": 23295, + "SigningPubKey": "02B205F4B92351AC0EEB04254B636F4C49EF922CFA3CAAD03C6477DA1E04E94B53", + "TransactionType": "Payment", + "TxnSignature": "3045022100FAF247A836D601DE74A515B2AADE31186D8B0DA9C23DE489E09753F5CF4BB81F0220477C5B5BC3AC89F2347744F9E00CCA62267E198489D747578162C4C7D156211D", + "hash": "A0A074D10355223CBE2520A42F93A52E3CC8B4D692570EB4841084F9BBB39F7A" }, - "Destination": "rNNuQMuExCiEjeZ4h9JJnj5PSWypdMXDj4", - "Fee": "10000", - "Flags": 131072, - "Sequence": 23295, - "SigningPubKey": "02B205F4B92351AC0EEB04254B636F4C49EF922CFA3CAAD03C6477DA1E04E94B53", - "TransactionType": "Payment", - "TxnSignature": "3045022100FAF247A836D601DE74A515B2AADE31186D8B0DA9C23DE489E09753F5CF4BB81F0220477C5B5BC3AC89F2347744F9E00CCA62267E198489D747578162C4C7D156211D", - "hash": "A0A074D10355223CBE2520A42F93A52E3CC8B4D692570EB4841084F9BBB39F7A", "meta": { "AffectedNodes": [ { diff --git a/packages/xrpl/test/fixtures/rippled/partialPaymentXRP.json b/packages/xrpl/test/fixtures/rippled/partialPaymentXRP.json index cca0515ce6..ee6e4c424e 100644 --- a/packages/xrpl/test/fixtures/rippled/partialPaymentXRP.json +++ b/packages/xrpl/test/fixtures/rippled/partialPaymentXRP.json @@ -1,14 +1,16 @@ { - "Account": "rGFuMiw48HdbnrUbkRYuitXTmfrDBNTCnX", - "Amount": "2000000", - "Destination": "rNNuQMuExCiEjeZ4h9JJnj5PSWypdMXDj4", - "Fee": "10000", - "Flags": 131072, - "Sequence": 23295, - "SigningPubKey": "02B205F4B92351AC0EEB04254B636F4C49EF922CFA3CAAD03C6477DA1E04E94B53", - "TransactionType": "Payment", - "TxnSignature": "3045022100FAF247A836D601DE74A515B2AADE31186D8B0DA9C23DE489E09753F5CF4BB81F0220477C5B5BC3AC89F2347744F9E00CCA62267E198489D747578162C4C7D156211D", - "hash": "A0A074D10355223CBE2520A42F93A52E3CC8B4D692570EB4841084F9BBB39F7A", + "tx_json": { + "Account": "rGFuMiw48HdbnrUbkRYuitXTmfrDBNTCnX", + "DeliverMax": "2000000", + "Destination": "rNNuQMuExCiEjeZ4h9JJnj5PSWypdMXDj4", + "Fee": "10000", + "Flags": 131072, + "Sequence": 23295, + "SigningPubKey": "02B205F4B92351AC0EEB04254B636F4C49EF922CFA3CAAD03C6477DA1E04E94B53", + "TransactionType": "Payment", + "TxnSignature": "3045022100FAF247A836D601DE74A515B2AADE31186D8B0DA9C23DE489E09753F5CF4BB81F0220477C5B5BC3AC89F2347744F9E00CCA62267E198489D747578162C4C7D156211D", + "hash": "A0A074D10355223CBE2520A42F93A52E3CC8B4D692570EB4841084F9BBB39F7A" + }, "meta": { "AffectedNodes": [ { diff --git a/packages/xrpl/test/fixtures/rippled/serverInfoNetworkID.json b/packages/xrpl/test/fixtures/rippled/serverInfoNetworkID.json new file mode 100644 index 0000000000..2d9e45c4fc --- /dev/null +++ b/packages/xrpl/test/fixtures/rippled/serverInfoNetworkID.json @@ -0,0 +1,31 @@ +{ + "id": 0, + "status": "success", + "type": "response", + "result": { + "info": { + "build_version": "1.11.0-rc2", + "complete_ledgers": "37621036-38327626", + "hostid": "JANE", + "io_latency_ms": 1, + "last_close": { + "converge_time_s": 2, + "proposers": 6 + }, + "load_factor": 1, + "network_id": 1, + "peers": 113, + "pubkey_node": "n9L6MAkAvZKakewLSJPkCKLxuSQ9jrYXJBd2L4fouhpXauyFh6ZM", + "server_state": "full", + "validated_ledger": { + "age": 0, + "base_fee_xrp": 0.00001, + "hash": "A219F66BB8C9992E80A3C93A5EA408CD54B8F47F2AC1246C271C495F833752BA", + "reserve_base_xrp": 10, + "reserve_inc_xrp": 2, + "seq": 38327626 + }, + "validation_quorum": 5 + } + } +} diff --git a/packages/xrpl/test/fixtures/rippled/subscribe.json b/packages/xrpl/test/fixtures/rippled/subscribe.json index c3238df7be..9905c97b5c 100644 --- a/packages/xrpl/test/fixtures/rippled/subscribe.json +++ b/packages/xrpl/test/fixtures/rippled/subscribe.json @@ -4,7 +4,6 @@ "type": "response", "result": { "fee_base": 10, - "fee_ref": 10, "hostid": "NAP", "ledger_hash": "60EBABF55F6AB58864242CADA0B24FBEA027F2426917F39CA56576B335C0065A", "ledger_index": 8819951, diff --git a/packages/xrpl/test/fixtures/rippled/transactionEntry.json b/packages/xrpl/test/fixtures/rippled/transactionEntry.json index 5f922f6fd1..dc29197b54 100644 --- a/packages/xrpl/test/fixtures/rippled/transactionEntry.json +++ b/packages/xrpl/test/fixtures/rippled/transactionEntry.json @@ -50,7 +50,7 @@ }, "tx_json": { "Account": "rLSn6Z3T8uCxbcd1oxwfGQN1Fdn5CyGujK", - "Amount": "104169972", + "DeliverMax": "104169972", "Destination": "rEb8TK3gBgk5auZkwc6sHnwrGVJH8DuaLh", "DestinationTag": 109735445, "Fee": "6000", diff --git a/packages/xrpl/test/fixtures/rippled/mintNFTMeta.json b/packages/xrpl/test/fixtures/rippled/tx/NFTokenMint.json similarity index 100% rename from packages/xrpl/test/fixtures/rippled/mintNFTMeta.json rename to packages/xrpl/test/fixtures/rippled/tx/NFTokenMint.json diff --git a/packages/xrpl/test/fixtures/rippled/mintNFTMeta2.json b/packages/xrpl/test/fixtures/rippled/tx/NFTokenMint2.json similarity index 100% rename from packages/xrpl/test/fixtures/rippled/mintNFTMeta2.json rename to packages/xrpl/test/fixtures/rippled/tx/NFTokenMint2.json diff --git a/packages/xrpl/test/fixtures/rippled/tx/XChainCreateClaimID.json b/packages/xrpl/test/fixtures/rippled/tx/XChainCreateClaimID.json new file mode 100644 index 0000000000..976c90d89d --- /dev/null +++ b/packages/xrpl/test/fixtures/rippled/tx/XChainCreateClaimID.json @@ -0,0 +1,118 @@ +{ + "tx": { + "Account": "rLVUz66tawieqTPAHuTyFTN6pLbHcXiTzd", + "Fee": "20", + "Flags": 2147483648, + "NetworkID": 2552, + "OtherChainSource": "rL5Zd9m5XEoGPddMwYY5H5C8ARcR47b6oM", + "Sequence": 1007784, + "SignatureReward": "100", + "SigningPubKey": "039E925058C740A5B73E49300FC205D058520DE37F2C63C4EE3A0D1B50C4E44080", + "TransactionType": "XChainCreateClaimID", + "TxnSignature": "304402201C6F95B9997FB63DCD9854664707C58C46AA3207612FE32366B77DA084786CAF02205752C58821D7FAFAE26F77DC10AC0AFDDCBCCF4FCBED90E6B8C4523A0EB3E008", + "XChainBridge": { + "IssuingChainDoor": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", + "IssuingChainIssue": { + "currency": "XRP" + }, + "LockingChainDoor": "rMAXACCrp3Y8PpswXcg3bKggHX76V3F8M4", + "LockingChainIssue": { + "currency": "XRP" + } + }, + "date": 1695324353000 + }, + "meta": { + "AffectedNodes": [ + { + "ModifiedNode": { + "FinalFields": { + "Account": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", + "Flags": 0, + "MinAccountCreateAmount": "10000000", + "OwnerNode": "0", + "SignatureReward": "100", + "XChainAccountClaimCount": "e3", + "XChainAccountCreateCount": "0", + "XChainBridge": { + "IssuingChainDoor": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", + "IssuingChainIssue": { + "currency": "XRP" + }, + "LockingChainDoor": "rMAXACCrp3Y8PpswXcg3bKggHX76V3F8M4", + "LockingChainIssue": { + "currency": "XRP" + } + }, + "XChainClaimID": "b0" + }, + "LedgerEntryType": "Bridge", + "LedgerIndex": "114C0DC89656D1B0FB1F4A3426034C3FCE75BCE65D9574B5D96ABC2B24D6C8F1", + "PreviousFields": { + "XChainClaimID": "af" + }, + "PreviousTxnID": "3F6F3BBE584115D1A575AB24BA32B47184F2323B65DE5C8C8EE144A55115E0B9", + "PreviousTxnLgrSeq": 1027822 + } + }, + { + "ModifiedNode": { + "FinalFields": { + "Flags": 0, + "Owner": "rLVUz66tawieqTPAHuTyFTN6pLbHcXiTzd", + "RootIndex": "6C1EA1A93D590E831CCC0EE2CBE26C146A3A6FD36F5854DC5E5AB5CE78FAE49C" + }, + "LedgerEntryType": "DirectoryNode", + "LedgerIndex": "6C1EA1A93D590E831CCC0EE2CBE26C146A3A6FD36F5854DC5E5AB5CE78FAE49C" + } + }, + { + "CreatedNode": { + "LedgerEntryType": "XChainOwnedClaimID", + "LedgerIndex": "A00BD77AE864509D796B39041AD48E9DEFEC9AF20E5C09CEF2F5DA41D6CFEB1E", + "NewFields": { + "Account": "rLVUz66tawieqTPAHuTyFTN6pLbHcXiTzd", + "OtherChainSource": "rL5Zd9m5XEoGPddMwYY5H5C8ARcR47b6oM", + "SignatureReward": "100", + "XChainBridge": { + "IssuingChainDoor": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", + "IssuingChainIssue": { + "currency": "XRP" + }, + "LockingChainDoor": "rMAXACCrp3Y8PpswXcg3bKggHX76V3F8M4", + "LockingChainIssue": { + "currency": "XRP" + } + }, + "XChainClaimID": "b0" + } + } + }, + { + "ModifiedNode": { + "FinalFields": { + "Account": "rLVUz66tawieqTPAHuTyFTN6pLbHcXiTzd", + "Balance": "39999940", + "Flags": 0, + "OwnerCount": 3, + "Sequence": 1007785 + }, + "LedgerEntryType": "AccountRoot", + "LedgerIndex": "FD919D0BAA90C759DA4C7130AEEF6AE7FA2AF074F5E867D40BCBE1ECD8D8D0EA", + "PreviousFields": { + "Balance": "39999960", + "OwnerCount": 2, + "Sequence": 1007784 + }, + "PreviousTxnID": "3F6F3BBE584115D1A575AB24BA32B47184F2323B65DE5C8C8EE144A55115E0B9", + "PreviousTxnLgrSeq": 1027822 + } + } + ], + "TransactionIndex": 0, + "TransactionResult": "tesSUCCESS" + }, + "hash": "998E76B9840DA5A6009592A2674D0166A9C4862193193AA46EA6B77A64781FB4", + "ledger_index": 1027837, + "date": 1695324353000 +} diff --git a/packages/xrpl/test/fixtures/rippled/tx/XChainCreateClaimID2.json b/packages/xrpl/test/fixtures/rippled/tx/XChainCreateClaimID2.json new file mode 100644 index 0000000000..1525f2aa05 --- /dev/null +++ b/packages/xrpl/test/fixtures/rippled/tx/XChainCreateClaimID2.json @@ -0,0 +1,118 @@ +{ + "tx": { + "Account": "rwmUSzi5Xp31AjMTEdbvxgWqLETcVNU6Fv", + "Fee": "12", + "Flags": 0, + "LastLedgerSequence": 1027798, + "NetworkID": 2552, + "OtherChainSource": "rBXdfZ7NVpdjRfYajPMpviGgq7HLDeuBdR", + "Sequence": 1027778, + "SignatureReward": "100", + "SigningPubKey": "EDDDD69DF802B8DB82D644EF92E2C1F06AC128A275CDFF86F013180D104ED39D3B", + "TransactionType": "XChainCreateClaimID", + "TxnSignature": "67BE63527EC8A0C872F23E2C4EB97C1F3E7D3FED6D10C8310B9235D3891B6B9343768A080E258F6C3687BFC4B7C5FD429ABB33654C99DE46471FD6F2A7035303", + "XChainBridge": { + "IssuingChainDoor": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", + "IssuingChainIssue": { + "currency": "XRP" + }, + "LockingChainDoor": "rMAXACCrp3Y8PpswXcg3bKggHX76V3F8M4", + "LockingChainIssue": { + "currency": "XRP" + } + }, + "date": 1695324182000 + }, + "meta": { + "AffectedNodes": [ + { + "ModifiedNode": { + "FinalFields": { + "Account": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", + "Flags": 0, + "MinAccountCreateAmount": "10000000", + "OwnerNode": "0", + "SignatureReward": "100", + "XChainAccountClaimCount": "e2", + "XChainAccountCreateCount": "0", + "XChainBridge": { + "IssuingChainDoor": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", + "IssuingChainIssue": { + "currency": "XRP" + }, + "LockingChainDoor": "rMAXACCrp3Y8PpswXcg3bKggHX76V3F8M4", + "LockingChainIssue": { + "currency": "XRP" + } + }, + "XChainClaimID": "ac" + }, + "LedgerEntryType": "Bridge", + "LedgerIndex": "114C0DC89656D1B0FB1F4A3426034C3FCE75BCE65D9574B5D96ABC2B24D6C8F1", + "PreviousFields": { + "XChainClaimID": "ab" + }, + "PreviousTxnID": "80C33D1FB349D698CFDB1A85E8368557C5B7219B74DFCB2B05E0B10E2667F902", + "PreviousTxnLgrSeq": 1027779 + } + }, + { + "ModifiedNode": { + "FinalFields": { + "Account": "rwmUSzi5Xp31AjMTEdbvxgWqLETcVNU6Fv", + "Balance": "19999988", + "Flags": 0, + "OwnerCount": 1, + "Sequence": 1027779 + }, + "LedgerEntryType": "AccountRoot", + "LedgerIndex": "33442CE111B258424548888D8999F6D064A0866B1300C44AB72E1C5A09765D9D", + "PreviousFields": { + "Balance": "20000000", + "OwnerCount": 0, + "Sequence": 1027778 + }, + "PreviousTxnID": "7C9ACA230488547B4F39EBCE332447FB90AE59B64C1B03BBF474B509B43739EC", + "PreviousTxnLgrSeq": 1027778 + } + }, + { + "CreatedNode": { + "LedgerEntryType": "DirectoryNode", + "LedgerIndex": "439684B06C22596B5B86D2F50903B6AA6F68BD07BED636FC6325704B09DE5D61", + "NewFields": { + "Owner": "rwmUSzi5Xp31AjMTEdbvxgWqLETcVNU6Fv", + "RootIndex": "439684B06C22596B5B86D2F50903B6AA6F68BD07BED636FC6325704B09DE5D61" + } + } + }, + { + "CreatedNode": { + "LedgerEntryType": "XChainOwnedClaimID", + "LedgerIndex": "8097863E1200B0174006541763AA8F604782DA10C1BD37190D753C699D69C678", + "NewFields": { + "Account": "rwmUSzi5Xp31AjMTEdbvxgWqLETcVNU6Fv", + "OtherChainSource": "rBXdfZ7NVpdjRfYajPMpviGgq7HLDeuBdR", + "SignatureReward": "100", + "XChainBridge": { + "IssuingChainDoor": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", + "IssuingChainIssue": { + "currency": "XRP" + }, + "LockingChainDoor": "rMAXACCrp3Y8PpswXcg3bKggHX76V3F8M4", + "LockingChainIssue": { + "currency": "XRP" + } + }, + "XChainClaimID": "ac" + } + } + } + ], + "TransactionIndex": 0, + "TransactionResult": "tesSUCCESS" + }, + "hash": "A42C4E7F5BAF8A9BEB56853114EE686D554F15F400B8DA885A344B13C32D07BC", + "ledger_index": 1027780, + "date": 1695324182000 +} diff --git a/packages/xrpl/test/fixtures/rippled/tx/payment.json b/packages/xrpl/test/fixtures/rippled/tx/payment.json index d4509529a9..075e35d680 100644 --- a/packages/xrpl/test/fixtures/rippled/tx/payment.json +++ b/packages/xrpl/test/fixtures/rippled/tx/payment.json @@ -3,42 +3,43 @@ "status": "success", "type": "response", "result": { - "Account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "Amount": { - "currency": "USD", - "issuer": "rMH4UxPrbuMa1spCBR98hLLyNJp4d8p4tM", - "value": "0.001" + "tx_json": { + "Account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "DeliverMax": { + "currency": "USD", + "issuer": "rMH4UxPrbuMa1spCBR98hLLyNJp4d8p4tM", + "value": "0.001" + }, + "Destination": "rMH4UxPrbuMa1spCBR98hLLyNJp4d8p4tM", + "Fee": "10", + "Flags": 0, + "Paths": [ + [ + { + "currency": "USD", + "issuer": "rpZc4mVfWUif9CRoHRKKcmhu1nx2xktxBo", + "type": 48, + "type_hex": "0000000000000030" + }, + { + "account": "rpZc4mVfWUif9CRoHRKKcmhu1nx2xktxBo", + "currency": "USD", + "issuer": "rpZc4mVfWUif9CRoHRKKcmhu1nx2xktxBo", + "type": 49, + "type_hex": "0000000000000031" + } + ] + ], + "SendMax": "1112209", + "Sequence": 4, + "SigningPubKey": "02BC8C02199949B15C005B997E7C8594574E9B02BA2D0628902E0532989976CF9D", + "TransactionType": "Payment", + "TxnSignature": "304502204EE3E9D1B01D8959B08450FCA9E22025AF503DEF310E34A93863A85CAB3C0BC5022100B61F5B567F77026E8DEED89EED0B7CAF0E6C96C228A2A65216F0DC2D04D52083", + "date": 416447810, + "inLedger": 348860, + "ledger_index": 348860, + "hash": "F4AB442A6D4CBB935D66E1DA7309A5FC71C7143ED4049053EC14E3875B0CF9BF" }, - "Destination": "rMH4UxPrbuMa1spCBR98hLLyNJp4d8p4tM", - "Fee": "10", - "Flags": 0, - "Paths": [ - [ - { - "currency": "USD", - "issuer": "rpZc4mVfWUif9CRoHRKKcmhu1nx2xktxBo", - "type": 48, - "type_hex": "0000000000000030" - }, - { - "account": "rpZc4mVfWUif9CRoHRKKcmhu1nx2xktxBo", - "currency": "USD", - "issuer": "rpZc4mVfWUif9CRoHRKKcmhu1nx2xktxBo", - "type": 49, - "type_hex": "0000000000000031" - } - ] - ], - "SendMax": "1112209", - "Sequence": 4, - "SigningPubKey": "02BC8C02199949B15C005B997E7C8594574E9B02BA2D0628902E0532989976CF9D", - "TransactionType": "Payment", - "TxnSignature": "304502204EE3E9D1B01D8959B08450FCA9E22025AF503DEF310E34A93863A85CAB3C0BC5022100B61F5B567F77026E8DEED89EED0B7CAF0E6C96C228A2A65216F0DC2D04D52083", - "date": 416447810, - "hash": "F4AB442A6D4CBB935D66E1DA7309A5FC71C7143ED4049053EC14E3875B0CF9BF", - "inLedger": 348860, - "ledger_index": 348860, - "validated": true, "meta": { "AffectedNodes": [ { diff --git a/packages/xrpl/test/integration/README.md b/packages/xrpl/test/integration/README.md index 9b55067170..e4bdec3e33 100644 --- a/packages/xrpl/test/integration/README.md +++ b/packages/xrpl/test/integration/README.md @@ -1,5 +1,7 @@ To run integration tests: -1. Run rippled-standalone node, either in a docker container (preferred) or by installing rippled. - * With docker, run `docker run -p 6006:6006 -it natenichols/rippled-standalone:latest` - * Or [download and build rippled](https://xrpl.org/install-rippled.html) and run `./rippled -a` -2. Run `npm test:integration` or `npm test:browser` +1. Run rippled in standalone node, either in a docker container (preferred) or by installing rippled. + * Go to the top-level of the `xrpl.js` repo, just above the `packages` folder. + * With docker, run `docker run -p 6006:6006 --interactive -t --volume $PWD/.ci-config:/opt/ripple/etc/ --platform linux/amd64 rippleci/rippled:2.2.0-b3 /opt/ripple/bin/rippled -a --conf /opt/ripple/etc/rippled.cfg` + * Or [download and build rippled](https://xrpl.org/install-rippled.html) and run `./rippled -a --start` + * If you'd like to use the latest rippled amendments, you should modify your `rippled.cfg` file to enable amendments in the `[amendments]` section. You can view `.ci-config/rippled.cfg` in the top level folder as an example of this. +2. Run `npm run test:integration` or `npm run test:browser` diff --git a/packages/xrpl/test/integration/finalTest.test.ts b/packages/xrpl/test/integration/finalTest.test.ts index 1237fe6df6..f28ca3c66d 100644 --- a/packages/xrpl/test/integration/finalTest.test.ts +++ b/packages/xrpl/test/integration/finalTest.test.ts @@ -1,4 +1,4 @@ -import assert from 'assert' +import { assert } from 'chai' // how long before each test case times out const TIMEOUT = 20000 diff --git a/packages/xrpl/test/integration/fundWallet.test.ts b/packages/xrpl/test/integration/fundWallet.test.ts index 340e0b0e4a..cb282ed7c9 100644 --- a/packages/xrpl/test/integration/fundWallet.test.ts +++ b/packages/xrpl/test/integration/fundWallet.test.ts @@ -1,10 +1,11 @@ -import assert from 'assert' +import { assert } from 'chai' import { Client, isValidClassicAddress, isValidXAddress, dropsToXrp, + XRPLFaucetError, } from '../../src' async function generate_faucet_wallet_and_fund_again( @@ -19,8 +20,9 @@ async function generate_faucet_wallet_and_fund_again( const { wallet, balance } = await api.fundWallet(null, { faucetHost, faucetPath, + usageContext: 'integration-test', }) - assert.notEqual(wallet, undefined) + assert.notStrictEqual(wallet, undefined) assert(isValidClassicAddress(wallet.classicAddress)) assert(isValidXAddress(wallet.getXAddress())) @@ -34,6 +36,7 @@ async function generate_faucet_wallet_and_fund_again( const { balance: newBalance } = await api.fundWallet(wallet, { faucetHost, faucetPath, + usageContext: 'integration-test', }) const afterSent = await api.request({ @@ -41,8 +44,8 @@ async function generate_faucet_wallet_and_fund_again( account: wallet.classicAddress, }) - assert.equal(dropsToXrp(afterSent.result.account_data.Balance), newBalance) assert(newBalance > balance) + assert.equal(dropsToXrp(afterSent.result.account_data.Balance), newBalance) await api.disconnect() } @@ -81,25 +84,17 @@ describe('fundWallet', function () { // }) it( - 'can generate and fund wallets on AMM devnet', - async function () { - await generate_faucet_wallet_and_fund_again( - 'wss://amm.devnet.rippletest.net:51233', - ) - }, - TIMEOUT, - ) - - it( - 'can generate wallet on hooks v2 testnet', + 'submit funds wallet with custom amount', async function () { - const api = new Client('wss://hooks-testnet-v2.xrpl-labs.com') + const api = new Client('wss://s.altnet.rippletest.net:51233') await api.connect() - - const { wallet, balance } = await api.fundWallet() - - assert.notEqual(wallet, undefined) + const { wallet, balance } = await api.fundWallet(null, { + amount: '1000', + usageContext: 'integration-test', + }) + assert.equal(balance, 1000) + assert.notStrictEqual(wallet, undefined) assert(isValidClassicAddress(wallet.classicAddress)) assert(isValidXAddress(wallet.getXAddress())) @@ -107,40 +102,31 @@ describe('fundWallet', function () { command: 'account_info', account: wallet.classicAddress, }) - assert.equal(dropsToXrp(info.result.account_data.Balance), balance) - assert.equal(balance, 10000) - - /* - * No test for fund given wallet because the hooks v2 testnet faucet - * requires 10 seconds between requests. Would significantly slow down - * the test suite. - */ - await api.disconnect() }, TIMEOUT, ) - it( - 'submit funds wallet with custom amount', - async function () { - const api = new Client('wss://s.altnet.rippletest.net:51233') + it('handles errors', async () => { + const api = new Client('wss://s.altnet.rippletest.net:51233') + await api.connect() - await api.connect() - const { wallet, balance } = await api.fundWallet(null, { amount: '2000' }) - assert.equal(balance, '2000') - assert.notEqual(wallet, undefined) - assert(isValidClassicAddress(wallet.classicAddress)) - assert(isValidXAddress(wallet.getXAddress())) - - const info = await api.request({ - command: 'account_info', - account: wallet.classicAddress, + // jasmine and jest handle async differently so need to use try catch approach instead of `expect.rejects` or `expectAsync` + try { + await api.fundWallet(null, { + amount: '-1000', + usageContext: 'integration-test', }) - assert.equal(dropsToXrp(info.result.account_data.Balance), balance) + + throw new Error('Error not thrown') + } catch (error) { await api.disconnect() - }, - TIMEOUT, - ) + expect(error).toEqual( + new XRPLFaucetError( + 'Request failed: {"body":{"error":"Invalid amount","detail":"Must be an integer"},"contentType":"application/json; charset=utf-8","statusCode":400}', + ), + ) + } + }) }) diff --git a/packages/xrpl/test/integration/index.ts b/packages/xrpl/test/integration/index.ts index 27eb921f89..856e1b127a 100644 --- a/packages/xrpl/test/integration/index.ts +++ b/packages/xrpl/test/integration/index.ts @@ -1,58 +1 @@ -/* eslint-disable import/export -- Tells webpack which files exist. */ -export * from './transactions/accountSet.test' -export * from './transactions/checkCancel.test' -export * from './transactions/checkCash.test' -export * from './transactions/checkCreate.test' -export * from './transactions/depositPreauth.test' -export * from './transactions/escrowCancel.test' -export * from './transactions/escrowCreate.test' -export * from './transactions/escrowFinish.test' -export * from './transactions/offerCancel.test' -export * from './transactions/offerCreate.test' -export * from './transactions/payment.test' -export * from './transactions/paymentChannelClaim.test' -export * from './transactions/paymentChannelCreate.test' -export * from './transactions/paymentChannelFund.test' -export * from './transactions/signerListSet.test' -export * from './transactions/trustSet.test' - -export * from './requests/accountChannels.test' -export * from './requests/accountCurrencies.test' -export * from './requests/accountInfo.test' -export * from './requests/accountLines.test' -export * from './requests/accountObjects.test' -export * from './requests/accountOffers.test' -export * from './requests/accountTx.test' -export * from './requests/bookOffers.test' -export * from './requests/channelVerify.test' -export * from './requests/depositAuthorized.test' -export * from './requests/fee.test' -export * from './requests/gatewayBalances.test' -export * from './requests/ledger.test' -export * from './requests/ledgerClosed.test' -export * from './requests/ledgerCurrent.test' -export * from './requests/ledgerData.test' -export * from './requests/ledgerEntry.test' -export * from './requests/noRippleCheck.test' -export * from './requests/pathFind.test' -export * from './requests/ripplePathFind.test' -export * from './requests/serverInfo.test' -export * from './requests/serverState.test' -export * from './requests/submit.test' -export * from './requests/submitMultisigned.test' -export * from './requests/subscribe.test' -export * from './requests/tx.test' -export * from './requests/utility.test' - -export * from './fundWallet.test' -export * from './integration.test' -export * from './onConnect.test' -export * from './regularKey.test' -export * from './submitAndWait.test' -export * from './wallet.test' - -// Because this does 256 ledger accepts, we do it last -export * from './transactions/accountDelete.test' - -// Ensure you export all added tests above "export * from './finalTest'", otherwise they will not be run. -export * from './finalTest.test' +/* eslint-disable import/unambiguous -- silence is golden */ diff --git a/packages/xrpl/test/integration/integration.test.ts b/packages/xrpl/test/integration/integration.test.ts index 9359ce2f61..698c5f78b7 100644 --- a/packages/xrpl/test/integration/integration.test.ts +++ b/packages/xrpl/test/integration/integration.test.ts @@ -1,4 +1,4 @@ -import assert from 'assert' +import { assert } from 'chai' import { Client, SubmitResponse } from '../../src' import { AccountSet, SignerListSet } from '../../src/models/transactions' diff --git a/packages/xrpl/test/integration/onConnect.test.ts b/packages/xrpl/test/integration/onConnect.test.ts index 6a89ae0222..f1d8412121 100644 --- a/packages/xrpl/test/integration/onConnect.test.ts +++ b/packages/xrpl/test/integration/onConnect.test.ts @@ -28,7 +28,7 @@ describe('on handlers', function () { async () => { const client = new Client(serverUrl) return new Promise(function (resolve) { - client.on('disconnected', function (code: number) { + client.on('disconnected', function (code) { // should be the normal disconnect code assert.equal(code, 1000) client.removeAllListeners() diff --git a/packages/xrpl/test/integration/regularKey.test.ts b/packages/xrpl/test/integration/regularKey.test.ts index 85a94a4dd8..fbad77fb4e 100644 --- a/packages/xrpl/test/integration/regularKey.test.ts +++ b/packages/xrpl/test/integration/regularKey.test.ts @@ -8,6 +8,7 @@ import { Wallet, AccountSetAsfFlags, OfferCreate, + ECDSA, } from '../../src' import { convertStringToHex } from '../../src/utils' import { multisign } from '../../src/Wallet/signer' @@ -41,6 +42,7 @@ async function generateFundedWalletWithRegularKey( const regularKeyWallet = Wallet.fromSeed(regularKeyInfo.seed, { masterAddress: masterWallet.address, + algorithm: ECDSA.secp256k1, }) const setRegularTx: SetRegularKey = { diff --git a/packages/xrpl/test/integration/requests/accountInfo.test.ts b/packages/xrpl/test/integration/requests/accountInfo.test.ts index c31a097506..48b3c3f2da 100644 --- a/packages/xrpl/test/integration/requests/accountInfo.test.ts +++ b/packages/xrpl/test/integration/requests/accountInfo.test.ts @@ -80,4 +80,106 @@ describe('account_info', function () { }, TIMEOUT, ) + + it( + 'uses api_version 1', + async () => { + const request: AccountInfoRequest = { + command: 'account_info', + account: testContext.wallet.classicAddress, + strict: true, + ledger_index: 'validated', + api_version: 1, + } + const response = await testContext.client.request(request) + const expected = { + id: 0, + result: { + account_data: { + Account: testContext.wallet.classicAddress, + Balance: '400000000', + Flags: 0, + LedgerEntryType: 'AccountRoot', + OwnerCount: 0, + PreviousTxnID: + '19A8211695785A3A02C1C287D93C2B049E83A9CD609825E721052D63FF4F0EC8', + PreviousTxnLgrSeq: 582, + Sequence: 283, + index: + 'BD4815E6EB304136E6044F778FB68D4E464CC8DFC59B8F6CC93D90A3709AE194', + }, + ledger_hash: + 'F0DEEC46A7185BBB535517EE38CF2025973022D5B0532B36407F492521FDB0C6', + ledger_index: 582, + validated: true, + }, + type: 'response', + } + assert.equal(response.type, expected.type) + assert.equal(response.result.validated, expected.result.validated) + assert.equal(typeof response.result.ledger_index, 'number') + assert.equal(typeof response.result.account_data.PreviousTxnID, 'string') + assert.equal(typeof response.result.account_data.index, 'string') + assert.equal( + typeof response.result.account_data.PreviousTxnLgrSeq, + 'number', + ) + assert.equal(typeof response.result.account_data.Sequence, 'number') + assert.deepEqual( + omit(response.result.account_data, [ + 'PreviousTxnID', + 'PreviousTxnLgrSeq', + 'Sequence', + 'index', + ]), + omit(expected.result.account_data, [ + 'PreviousTxnID', + 'PreviousTxnLgrSeq', + 'Sequence', + 'index', + ]), + ) + }, + TIMEOUT, + ) + + it( + 'signer_list using api_version 1', + async () => { + const request: AccountInfoRequest = { + command: 'account_info', + account: testContext.wallet.classicAddress, + strict: true, + ledger_index: 'validated', + signer_lists: true, + api_version: 1, + } + // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-arguments -- for api_version 1 + const response = await testContext.client.request( + request, + ) + expect(response.result.account_data.signer_lists).toEqual([]) + // @ts-expect-error -- signer_lists is expected to be undefined + expect(response.result.signer_lists).toBeUndefined() + }, + TIMEOUT, + ) + + it( + 'signer_list using api_version 2', + async () => { + const request: AccountInfoRequest = { + command: 'account_info', + account: testContext.wallet.classicAddress, + strict: true, + ledger_index: 'validated', + signer_lists: true, + } + const response = await testContext.client.request(request) + // @ts-expect-error -- signer_lists is expected to be undefined + expect(response.result.account_data.signer_lists).toBeUndefined() + expect(response.result.signer_lists).toEqual([]) + }, + TIMEOUT, + ) }) diff --git a/packages/xrpl/test/integration/requests/accountTx.test.ts b/packages/xrpl/test/integration/requests/accountTx.test.ts index bedc083c76..4b57836b9e 100644 --- a/packages/xrpl/test/integration/requests/accountTx.test.ts +++ b/packages/xrpl/test/integration/requests/accountTx.test.ts @@ -32,6 +32,103 @@ describe('account_tx', function () { ledger_index: 'validated', } const response = await testContext.client.request(request) + const expected = { + result: { + account: testContext.wallet.classicAddress, + limit: 400, + transactions: [ + { + tx_json: { + Account: 'rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh', + DeliverMax: '400000000', + Destination: testContext.wallet.classicAddress, + Fee: '12', + Flags: 0, + LastLedgerSequence: 1753, + Sequence: 843, + SigningPubKey: + '0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020', + TransactionType: 'Payment', + TxnSignature: + '30440220693D244BC13967E3DA67BDC974096784ED03DD4ACE6F36645E5176988452AFCF02200F8AB172432913899F27EC5523829AEDAD00CC2445690400E294EDF652A85945', + date: 685747005, + hash: '2E68BC15813B4A836FAC4D80E42E6FDA6410E99AB973937DEA5E6C2E9A116BAB', + ledger_index: 1734, + }, + }, + ], + }, + type: 'response', + } + assert.equal(response.type, expected.type) + assert.equal(response.result.account, expected.result.account) + assert.equal( + (response.result.transactions[0].meta as TransactionMetadata) + .TransactionResult, + 'tesSUCCESS', + ) + assert.equal( + typeof response.result.transactions[0].tx_json?.LastLedgerSequence, + 'number', + ) + assert.equal( + typeof response.result.transactions[0].tx_json?.Sequence, + 'number', + ) + assert.equal( + typeof response.result.transactions[0].tx_json?.SigningPubKey, + 'string', + ) + assert.equal( + typeof response.result.transactions[0].tx_json?.TxnSignature, + 'string', + ) + assert.equal( + typeof response.result.transactions[0].tx_json?.Fee, + 'string', + ) + assert.equal(typeof response.result.transactions[0].hash, 'string') + assert.equal( + typeof response.result.transactions[0].tx_json?.ledger_index, + 'number', + ) + + const responseTx = response.result.transactions[0].tx_json as Payment + const expectedTx = expected.result.transactions[0].tx_json + assert.deepEqual( + [ + responseTx.Flags, + responseTx.TransactionType, + responseTx.Account, + // @ts-expect-error -- DeliverMax is a valid field on Payment response + responseTx.DeliverMax, + responseTx.Destination, + ], + [ + expectedTx.Flags, + expectedTx.TransactionType, + expectedTx.Account, + expectedTx.DeliverMax, + expectedTx.Destination, + ], + ) + }, + TIMEOUT, + ) + + it( + 'uses api_version 1', + async () => { + const request: AccountTxRequest = { + command: 'account_tx', + account: testContext.wallet.classicAddress, + ledger_index: 'validated', + api_version: 1, + } + // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-arguments -- for api_version 1 + const response = await testContext.client.request( + request, + ) const expected = { result: { account: testContext.wallet.classicAddress, @@ -63,7 +160,7 @@ describe('account_tx', function () { assert.equal(response.type, expected.type) assert.equal(response.result.account, expected.result.account) assert.equal( - (response.result.transactions[0].meta as TransactionMetadata) + (response.result.transactions[0].meta as TransactionMetadata) .TransactionResult, 'tesSUCCESS', ) diff --git a/packages/xrpl/test/integration/requests/ammInfo.test.ts b/packages/xrpl/test/integration/requests/ammInfo.test.ts new file mode 100644 index 0000000000..6f580812a1 --- /dev/null +++ b/packages/xrpl/test/integration/requests/ammInfo.test.ts @@ -0,0 +1,46 @@ +import { assert } from 'chai' +import { isValidClassicAddress } from 'xrpl' + +import { AMMInfoResponse } from '../../../src' +import serverUrl from '../serverUrl' +import { + setupAMMPool, + setupClient, + teardownClient, + type TestAMMPool, + type XrplIntegrationTestContext, +} from '../setup' + +describe('AMMInfo', function () { + let testContext: XrplIntegrationTestContext + let ammPool: TestAMMPool + + beforeAll(async () => { + testContext = await setupClient(serverUrl) + ammPool = await setupAMMPool(testContext.client) + }) + afterAll(async () => teardownClient(testContext)) + + it('base', async function () { + const { asset, asset2 } = ammPool + + const ammInfoRes: AMMInfoResponse = await testContext.client.request({ + command: 'amm_info', + asset, + asset2, + }) + const { amm } = ammInfoRes.result + + assert.ok(asset2.issuer) + + assert.isTrue(isValidClassicAddress(amm.account)) + assert.equal(amm.amount, '1250') + assert.deepEqual(amm.amount2, { + currency: asset2.currency, + // @ts-expect-error: asset2.issuer should be defined at this point + issuer: asset2.issuer, + value: '250', + }) + assert.equal(amm.trading_fee, 12) + }) +}) diff --git a/packages/xrpl/test/integration/requests/bookOffers.test.ts b/packages/xrpl/test/integration/requests/bookOffers.test.ts index 34997d8fe9..5a2dd4407f 100644 --- a/packages/xrpl/test/integration/requests/bookOffers.test.ts +++ b/packages/xrpl/test/integration/requests/bookOffers.test.ts @@ -35,6 +35,7 @@ describe('book_offers', function () { const response = await testContext.client.request(bookOffer) const expectedResponse: BookOffersResponse = { + api_version: 2, id: response.id, type: 'response', result: { diff --git a/packages/xrpl/test/integration/requests/channelVerify.test.ts b/packages/xrpl/test/integration/requests/channelVerify.test.ts index facd738f17..d823c853f5 100644 --- a/packages/xrpl/test/integration/requests/channelVerify.test.ts +++ b/packages/xrpl/test/integration/requests/channelVerify.test.ts @@ -35,6 +35,7 @@ describe('channel_verify', function () { const response = await testContext.client.request(channelVerify) const expectedResponse: ChannelVerifyResponse = { + api_version: 2, id: response.id, type: 'response', result: { diff --git a/packages/xrpl/test/integration/requests/depositAuthorized.test.ts b/packages/xrpl/test/integration/requests/depositAuthorized.test.ts index 46ace268a1..2b929f27c6 100644 --- a/packages/xrpl/test/integration/requests/depositAuthorized.test.ts +++ b/packages/xrpl/test/integration/requests/depositAuthorized.test.ts @@ -36,6 +36,7 @@ describe('deposit_authorized', function () { const response = await testContext.client.request(depositAuthorized) const expectedResponse: DepositAuthorizedResponse = { + api_version: 2, id: response.id, type: 'response', result: { diff --git a/packages/xrpl/test/integration/requests/feature.test.ts b/packages/xrpl/test/integration/requests/feature.test.ts new file mode 100644 index 0000000000..fc948036ad --- /dev/null +++ b/packages/xrpl/test/integration/requests/feature.test.ts @@ -0,0 +1,68 @@ +import { assert } from 'chai' + +import { FeatureRequest } from '../../../src' +import serverUrl from '../serverUrl' +import { + setupClient, + teardownClient, + type XrplIntegrationTestContext, +} from '../setup' + +// how long before each test case times out +const TIMEOUT = 20000 +const AMENDMENT = + '8CC0774A3BF66D1D22E76BBDA8E8A232E6B6313834301B3B23E8601196AE6455' + +describe('feature', function () { + let testContext: XrplIntegrationTestContext + + beforeEach(async () => { + testContext = await setupClient(serverUrl) + }) + afterEach(async () => teardownClient(testContext)) + + it( + 'all', + async () => { + const featureRequest: FeatureRequest = { + command: 'feature', + } + const featureResponse = await testContext.client.request(featureRequest) + + assert.equal(featureResponse.type, 'response') + assert.typeOf(featureResponse.result.features, 'object') + assert.isTrue(AMENDMENT in featureResponse.result.features) + + const amendmentData = featureResponse.result.features[AMENDMENT] + assert.equal(amendmentData.name, 'AMM') + // TODO: rippled says "false" for standalone nodes for some reason + assert.typeOf(amendmentData.enabled, 'boolean') + assert.equal(amendmentData.supported, true) + }, + TIMEOUT, + ) + + it( + 'one', + async () => { + const featureRequest: FeatureRequest = { + command: 'feature', + feature: AMENDMENT, + } + const featureResponse = await testContext.client.request(featureRequest) + + assert.equal(featureResponse.type, 'response') + assert.typeOf(featureResponse.result, 'object') + assert.isTrue(AMENDMENT in featureResponse.result) + assert.lengthOf(Object.keys(featureResponse.result), 1) + + const amendmentData = featureResponse.result[AMENDMENT] + + assert.equal(amendmentData.name, 'AMM') + // TODO: rippled says "false" for standalone nodes for some reason + assert.typeOf(amendmentData.enabled, 'boolean') + assert.equal(amendmentData.supported, true) + }, + TIMEOUT, + ) +}) diff --git a/packages/xrpl/test/integration/requests/getAggregatePrice.test.ts b/packages/xrpl/test/integration/requests/getAggregatePrice.test.ts new file mode 100644 index 0000000000..121a7b2f13 --- /dev/null +++ b/packages/xrpl/test/integration/requests/getAggregatePrice.test.ts @@ -0,0 +1,78 @@ +import { stringToHex } from '@xrplf/isomorphic/utils' +import { assert } from 'chai' + +import { OracleSet } from '../../../src' +import serverUrl from '../serverUrl' +import { + setupClient, + teardownClient, + type XrplIntegrationTestContext, +} from '../setup' +import { testTransaction } from '../utils' + +// how long before each test case times out +const TIMEOUT = 20000 + +describe('get_aggregate_price', function () { + let testContext: XrplIntegrationTestContext + + beforeEach(async () => { + testContext = await setupClient(serverUrl) + }) + afterEach(async () => teardownClient(testContext)) + + it( + 'base', + async () => { + const tx: OracleSet = { + TransactionType: 'OracleSet', + Account: testContext.wallet.classicAddress, + OracleDocumentID: 1234, + LastUpdateTime: Math.floor(Date.now() / 1000), + PriceDataSeries: [ + { + PriceData: { + BaseAsset: 'XAH', + QuoteAsset: 'USD', + AssetPrice: 740, + Scale: 3, + }, + }, + ], + Provider: stringToHex('chainlink'), + URI: '6469645F6578616D706C65', + AssetClass: stringToHex('currency'), + } + + await testTransaction(testContext.client, tx, testContext.wallet) + + // confirm that the Oracle was actually created + const getAggregatePriceResponse = await testContext.client.request({ + command: 'get_aggregate_price', + account: testContext.wallet.classicAddress, + base_asset: 'XAH', + quote_asset: 'USD', + trim: 20, + oracles: [ + { + account: testContext.wallet.classicAddress, + oracle_document_id: 1234, + }, + ], + }) + assert.deepEqual(getAggregatePriceResponse.result.entire_set, { + mean: '0.74', + size: 1, + standard_deviation: '0', + }) + assert.deepEqual(getAggregatePriceResponse.result.trimmed_set, { + mean: '0.74', + size: 1, + standard_deviation: '0', + }) + assert.equal(getAggregatePriceResponse.result.median, '0.74') + assert.equal(getAggregatePriceResponse.result.time, tx.LastUpdateTime) + }, + TIMEOUT, + ) +}) diff --git a/packages/xrpl/test/integration/requests/ledger.test.ts b/packages/xrpl/test/integration/requests/ledger.test.ts index 020e5d3198..f60015102c 100644 --- a/packages/xrpl/test/integration/requests/ledger.test.ts +++ b/packages/xrpl/test/integration/requests/ledger.test.ts @@ -1,7 +1,7 @@ import { assert } from 'chai' -import { LedgerRequest, LedgerResponse } from '../../../src' -import { Ledger } from '../../../src/models/ledger' +import { LedgerRequest } from '../../../src' +import { Ledger, LedgerV1 } from '../../../src/models/ledger' import serverUrl from '../serverUrl' import { setupClient, @@ -29,6 +29,7 @@ describe('ledger', function () { } const expected = { + api_version: 2, id: 0, result: { ledger: { @@ -45,7 +46,69 @@ describe('ledger', function () { type: 'response', } - const ledgerResponse: LedgerResponse = await testContext.client.request( + const ledgerResponse = await testContext.client.request(ledgerRequest) + + assert.equal(ledgerResponse.type, expected.type) + + assert.equal(ledgerResponse.result.validated, expected.result.validated) + assert.typeOf(ledgerResponse.result.ledger_hash, 'string') + assert.typeOf(ledgerResponse.result.ledger_index, 'number') + + const ledger = ledgerResponse.result.ledger as Ledger & { + accepted: boolean + hash: string + seqNum: string + } + assert.equal(ledger.closed, true) + const stringTypes = [ + 'account_hash', + 'close_time_human', + 'ledger_hash', + 'parent_hash', + 'total_coins', + 'transaction_hash', + ] + stringTypes.forEach((strType) => assert.typeOf(ledger[strType], 'string')) + const numTypes = [ + 'close_flags', + 'close_time', + 'close_time_resolution', + 'ledger_index', + 'parent_close_time', + ] + numTypes.forEach((numType) => assert.typeOf(ledger[numType], 'number')) + }, + TIMEOUT, + ) + + it( + 'uses api_version 1', + async () => { + const ledgerRequest: LedgerRequest = { + command: 'ledger', + ledger_index: 'validated', + api_version: 1, + } + + const expected = { + id: 0, + result: { + ledger: { + accepted: true, + account_hash: 'string', + close_flags: 0, + close_time: 0, + close_time_human: 'string', + }, + ledger_hash: 'string', + ledger_index: 1, + validated: true, + }, + type: 'response', + } + + // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-arguments -- for api_version 1 + const ledgerResponse = await testContext.client.request( ledgerRequest, ) @@ -55,7 +118,7 @@ describe('ledger', function () { assert.typeOf(ledgerResponse.result.ledger_hash, 'string') assert.typeOf(ledgerResponse.result.ledger_index, 'number') - const ledger = ledgerResponse.result.ledger as Ledger & { + const ledger = ledgerResponse.result.ledger as LedgerV1 & { accepted: boolean hash: string seqNum: string diff --git a/packages/xrpl/test/integration/requests/ledgerData.test.ts b/packages/xrpl/test/integration/requests/ledgerData.test.ts index fff2b9b3b8..9cb91c2584 100644 --- a/packages/xrpl/test/integration/requests/ledgerData.test.ts +++ b/packages/xrpl/test/integration/requests/ledgerData.test.ts @@ -1,7 +1,6 @@ import { assert } from 'chai' -import { LedgerDataRequest } from '../../../src' -import type { BinaryLedgerEntry } from '../../../src/models/methods/ledgerData' +import { LedgerDataBinaryLedgerEntry, LedgerDataRequest } from '../../../src' import serverUrl from '../serverUrl' import { setupClient, @@ -58,7 +57,7 @@ describe('ledger_data', function () { assert.equal(ledgerDataResponse.result.state.length, 5) ledgerDataResponse.result.state.forEach((item) => { - assert.typeOf((item as BinaryLedgerEntry).data, 'string') + assert.typeOf((item as LedgerDataBinaryLedgerEntry).data, 'string') assert.typeOf(item.index, 'string') }) }, diff --git a/packages/xrpl/test/integration/requests/ledgerEntry.test.ts b/packages/xrpl/test/integration/requests/ledgerEntry.test.ts index f583b0206d..8eb34fcd62 100644 --- a/packages/xrpl/test/integration/requests/ledgerEntry.test.ts +++ b/packages/xrpl/test/integration/requests/ledgerEntry.test.ts @@ -40,6 +40,7 @@ describe('ledger_entry', function () { ) const expectedResponse: LedgerEntryResponse = { + api_version: 2, id: ledgerEntryResponse.id, type: 'response', result: { diff --git a/packages/xrpl/test/integration/requests/pathFind.test.ts b/packages/xrpl/test/integration/requests/pathFind.test.ts index bf9f884ba7..13008a3e2b 100644 --- a/packages/xrpl/test/integration/requests/pathFind.test.ts +++ b/packages/xrpl/test/integration/requests/pathFind.test.ts @@ -41,6 +41,7 @@ describe('path_find', function () { const response = await testContext.client.request(pathFind) const expectedResponse: PathFindResponse = { + api_version: 2, id: response.id, type: 'response', result: { @@ -98,6 +99,7 @@ describe('path_find', function () { const response = await testContext.client.request(pathFind) const expectedResponse: PathFindResponse = { + api_version: 2, id: response.id, type: 'response', result: { diff --git a/packages/xrpl/test/integration/requests/ripplePathFind.test.ts b/packages/xrpl/test/integration/requests/ripplePathFind.test.ts index d227c03935..6464f652c2 100644 --- a/packages/xrpl/test/integration/requests/ripplePathFind.test.ts +++ b/packages/xrpl/test/integration/requests/ripplePathFind.test.ts @@ -35,6 +35,7 @@ describe('ripple_path_find', function () { const response = await testContext.client.request(ripplePathFind) const expectedResponse: RipplePathFindResponse = { + api_version: 2, id: response.id, type: 'response', result: { diff --git a/packages/xrpl/test/integration/requests/serverDefinitions.test.ts b/packages/xrpl/test/integration/requests/serverDefinitions.test.ts new file mode 100644 index 0000000000..fb5afc1826 --- /dev/null +++ b/packages/xrpl/test/integration/requests/serverDefinitions.test.ts @@ -0,0 +1,118 @@ +import { assert } from 'chai' + +import { type ServerDefinitionsRequest } from '../../../src' +import serverUrl from '../serverUrl' +import { + setupClient, + teardownClient, + type XrplIntegrationTestContext, +} from '../setup' + +// how long before each test case times out +const TIMEOUT = 20000 + +describe('server_definitions', function () { + let testContext: XrplIntegrationTestContext + + beforeEach(async () => { + testContext = await setupClient(serverUrl) + }) + afterEach(async () => teardownClient(testContext)) + + it( + 'base', + async () => { + const request: ServerDefinitionsRequest = { + command: 'server_definitions', + } + const response = await testContext.client.request(request) + assert.equal(response.type, 'response') + assert.exists(response.result) + + const result = response.result + assert.hasAllKeys(result, [ + 'hash', + 'FIELDS', + 'LEDGER_ENTRY_TYPES', + 'TRANSACTION_RESULTS', + 'TRANSACTION_TYPES', + 'TYPES', + ]) + + assert.typeOf(result.hash, 'string') + + assert.typeOf(result.FIELDS, 'array') + for (const field of result.FIELDS!) { + assert.typeOf(field[0], 'string') + assert.hasAllKeys(field[1], [ + 'nth', + 'isVLEncoded', + 'isSerialized', + 'isSigningField', + 'type', + ]) + assert.typeOf(field[1].nth, 'number') + assert.typeOf(field[1].isVLEncoded, 'boolean') + assert.typeOf(field[1].isSerialized, 'boolean') + assert.typeOf(field[1].isSigningField, 'boolean') + assert.typeOf(field[1].type, 'string') + } + + assert.typeOf(result.LEDGER_ENTRY_TYPES, 'object') + Object.entries(result.LEDGER_ENTRY_TYPES!).forEach(([key, value]) => { + assert.typeOf(key, 'string') + assert.typeOf(value, 'number') + }) + + assert.typeOf(result.TRANSACTION_RESULTS, 'object') + Object.entries(result.TRANSACTION_RESULTS!).forEach(([key, value]) => { + assert.typeOf(key, 'string') + assert.typeOf(value, 'number') + }) + + assert.typeOf(result.TRANSACTION_TYPES, 'object') + Object.entries(result.TRANSACTION_TYPES!).forEach(([key, value]) => { + assert.typeOf(key, 'string') + assert.typeOf(value, 'number') + }) + + assert.typeOf(result.TYPES, 'object') + Object.entries(result.TYPES!).forEach(([key, value]) => { + assert.typeOf(key, 'string') + assert.typeOf(value, 'number') + }) + }, + TIMEOUT, + ) + + it( + 'with same hash', + async () => { + const initialRequest: ServerDefinitionsRequest = { + command: 'server_definitions', + } + const hash = (await testContext.client.request(initialRequest)).result + .hash + + const request: ServerDefinitionsRequest = { + command: 'server_definitions', + hash, + } + const response = await testContext.client.request(request) + assert.equal(response.type, 'response') + assert.exists(response.result) + + const result = response.result + assert.doesNotHaveAnyKeys(result, [ + 'FIELDS', + 'LEDGER_ENTRY_TYPES', + 'TRANSACTION_RESULTS', + 'TRANSACTION_TYPES', + 'TYPES', + ]) + + assert.equal(result.hash, hash) + }, + TIMEOUT, + ) +}) diff --git a/packages/xrpl/test/integration/requests/serverInfo.test.ts b/packages/xrpl/test/integration/requests/serverInfo.test.ts index a4df0fd2ad..465301abd6 100644 --- a/packages/xrpl/test/integration/requests/serverInfo.test.ts +++ b/packages/xrpl/test/integration/requests/serverInfo.test.ts @@ -56,16 +56,30 @@ describe('server_info (rippled)', function () { peer_disconnects: '0', peer_disconnects_resources: '0', peers: 0, + ports: [ + { + port: '5005', + protocol: ['http'], + }, + { + port: '80', + protocol: ['ws'], + }, + { + port: '6006', + protocol: ['ws'], + }, + ], pubkey_node: 'n9K6DaaReKkCjb9sEfXh5xP3BV9JisrJ9biKB3CSSFXancBnv5cW', pubkey_validator: 'none', server_state: 'full', server_state_duration_us: '8752395105', state_accounting: { - connected: { duration_us: '0', transitions: 0 }, - disconnected: { duration_us: '41860', transitions: 1 }, - full: { duration_us: '20723121268', transitions: 1 }, - syncing: { duration_us: '0', transitions: 0 }, - tracking: { duration_us: '0', transitions: 0 }, + connected: { duration_us: '0', transitions: '0' }, + disconnected: { duration_us: '41860', transitions: '1' }, + full: { duration_us: '20723121268', transitions: '1' }, + syncing: { duration_us: '0', transitions: '0' }, + tracking: { duration_us: '0', transitions: '0' }, }, time: '2021-Sep-23 22:56:55.320858 UTC', uptime: 8752, @@ -108,6 +122,9 @@ describe('server_info (rippled)', function () { 'pubkey_node', 'server_state_duration_us', 'validated_ledger', + 'build_version', + 'node_size', + 'initial_sync_duration_us', ] assert.deepEqual( omit(response.result.info, removeKeys), @@ -129,7 +146,7 @@ describe('server_info (rippled)', function () { ) assert.equal( typeof response.result.info.state_accounting[key].transitions, - 'number', + 'string', ) }) diff --git a/packages/xrpl/test/integration/requests/serverState.test.ts b/packages/xrpl/test/integration/requests/serverState.test.ts index e3864173fa..a5ceeee31e 100644 --- a/packages/xrpl/test/integration/requests/serverState.test.ts +++ b/packages/xrpl/test/integration/requests/serverState.test.ts @@ -68,11 +68,11 @@ describe('server_state', function () { server_state: 'full', server_state_duration_us: '8752487389', state_accounting: { - connected: { duration_us: '0', transitions: 0 }, - disconnected: { duration_us: '41860', transitions: 1 }, - full: { duration_us: '20723121268', transitions: 1 }, - syncing: { duration_us: '0', transitions: 0 }, - tracking: { duration_us: '0', transitions: 0 }, + connected: { duration_us: '0', transitions: '0' }, + disconnected: { duration_us: '41860', transitions: '1' }, + full: { duration_us: '20723121268', transitions: '1' }, + syncing: { duration_us: '0', transitions: '0' }, + tracking: { duration_us: '0', transitions: '0' }, }, time: '2021-Sep-23 22:56:55.413151 UTC', uptime: 8752, @@ -112,6 +112,10 @@ describe('server_state', function () { 'server_state_duration_us', 'validated_ledger', 'io_latency_ms', + 'build_version', + 'node_size', + 'initial_sync_duration_us', + 'ports', ] assert.deepEqual( omit(response.result.state, removeKeys), @@ -133,7 +137,7 @@ describe('server_state', function () { ) assert.equal( typeof response.result.state.state_accounting[key].transitions, - 'number', + 'string', ) }) diff --git a/packages/xrpl/test/integration/requests/submit.test.ts b/packages/xrpl/test/integration/requests/submit.test.ts index 8ce09af28f..a9f7c521b9 100644 --- a/packages/xrpl/test/integration/requests/submit.test.ts +++ b/packages/xrpl/test/integration/requests/submit.test.ts @@ -1,12 +1,12 @@ -import { decode } from '@transia/ripple-binary-codec' import { assert } from 'chai' +import { decode } from 'ripple-binary-codec' import { AccountSet, SubmitRequest, SubmitResponse, hashes, - Transaction, + SubmittableTransaction, } from '../../../src' import { convertStringToHex } from '../../../src/utils' import serverUrl from '../serverUrl' @@ -54,6 +54,7 @@ describe('submit', function () { ) const expectedResponse: SubmitResponse = { + api_version: 2, id: submitResponse.id, type: 'response', result: { @@ -63,7 +64,7 @@ describe('submit', function () { 'The transaction was applied. Only final in a validated ledger.', tx_blob: signedTx.tx_blob, tx_json: { - ...(decode(signedTx.tx_blob) as unknown as Transaction), + ...(decode(signedTx.tx_blob) as unknown as SubmittableTransaction), hash: hashSignedTx(signedTx.tx_blob), }, accepted: true, diff --git a/packages/xrpl/test/integration/requests/submitMultisigned.test.ts b/packages/xrpl/test/integration/requests/submitMultisigned.test.ts index fdda723026..e628802929 100644 --- a/packages/xrpl/test/integration/requests/submitMultisigned.test.ts +++ b/packages/xrpl/test/integration/requests/submitMultisigned.test.ts @@ -1,14 +1,15 @@ -import { decode } from '@transia/ripple-binary-codec' import { assert } from 'chai' +import { decode } from 'ripple-binary-codec' import { AccountSet, Client, SignerListSet, - SubmitMultisignedRequest, Transaction, SubmitMultisignedResponse, hashes, + SubmitMultisignedRequest, + SubmitMultisignedV1Response, } from '../../../src' import { convertStringToHex } from '../../../src/utils' import { multisign } from '../../../src/Wallet/signer' @@ -80,16 +81,91 @@ describe('submit_multisigned', function () { const signed1 = signerWallet1.sign(accountSetTx, true) const signed2 = signerWallet2.sign(accountSetTx, true) const multisigned = multisign([signed1.tx_blob, signed2.tx_blob]) - const multisignedRequest: SubmitMultisignedRequest = { + const submitResponse = await client.request({ command: 'submit_multisigned', tx_json: decode(multisigned) as unknown as Transaction, - } - const submitResponse = await client.request(multisignedRequest) + }) await ledgerAccept(client) assert.strictEqual(submitResponse.result.engine_result, 'tesSUCCESS') await verifySubmittedTransaction(testContext.client, multisigned) const expectedResponse: SubmitMultisignedResponse = { + api_version: 2, + id: submitResponse.id, + type: 'response', + result: { + engine_result: 'tesSUCCESS', + engine_result_code: 0, + engine_result_message: + 'The transaction was applied. Only final in a validated ledger.', + tx_blob: multisigned, + tx_json: { + ...(decode(multisigned) as unknown as Transaction), + }, + hash: hashSignedTx(multisigned), + }, + } + + assert.deepEqual(submitResponse, expectedResponse) + }, + TIMEOUT, + ) + + it( + 'submit_multisigned transaction using api_version 1', + async () => { + const client: Client = testContext.client + const signerWallet1 = await generateFundedWallet(testContext.client) + const signerWallet2 = await generateFundedWallet(testContext.client) + + // set up the multisigners for the account + const signerListSet: SignerListSet = { + TransactionType: 'SignerListSet', + Account: testContext.wallet.classicAddress, + SignerEntries: [ + { + SignerEntry: { + Account: signerWallet1.classicAddress, + SignerWeight: 1, + }, + }, + { + SignerEntry: { + Account: signerWallet2.classicAddress, + SignerWeight: 1, + }, + }, + ], + SignerQuorum: 2, + } + await testTransaction( + testContext.client, + signerListSet, + testContext.wallet, + ) + + // try to multisign + const accountSet: AccountSet = { + TransactionType: 'AccountSet', + Account: testContext.wallet.classicAddress, + Domain: convertStringToHex('example.com'), + } + const accountSetTx = await client.autofill(accountSet, 2) + const signed1 = signerWallet1.sign(accountSetTx, true) + const signed2 = signerWallet2.sign(accountSetTx, true) + const multisigned = multisign([signed1.tx_blob, signed2.tx_blob]) + // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-arguments -- for api_version 1 + const submitResponse = await client.request({ + command: 'submit_multisigned', + tx_json: decode(multisigned) as unknown as Transaction, + api_version: 1, + }) + await ledgerAccept(client) + assert.strictEqual(submitResponse.result.engine_result, 'tesSUCCESS') + await verifySubmittedTransaction(testContext.client, multisigned) + + const expectedResponse: SubmitMultisignedV1Response = { + api_version: 1, id: submitResponse.id, type: 'response', result: { diff --git a/packages/xrpl/test/integration/requests/subscribe.test.ts b/packages/xrpl/test/integration/requests/subscribe.test.ts index 297c09a96b..8cc53aeef1 100644 --- a/packages/xrpl/test/integration/requests/subscribe.test.ts +++ b/packages/xrpl/test/integration/requests/subscribe.test.ts @@ -156,9 +156,8 @@ describe('subscribe', function () { const ledgerResponse: LedgerStreamResponse = response.result as LedgerStreamResponse // Explicitly checking that there are only known fields in the return - const expectedResult = { + const expectedResult: LedgerStreamResponse = { fee_base: ledgerResponse.fee_base, - fee_ref: ledgerResponse.fee_ref, ledger_hash: ledgerResponse.ledger_hash, ledger_index: ledgerResponse.ledger_index, ledger_time: ledgerResponse.ledger_time, @@ -166,7 +165,9 @@ describe('subscribe', function () { reserve_inc: ledgerResponse.reserve_inc, validated_ledgers: ledgerResponse.validated_ledgers, } - + if (ledgerResponse.fee_ref) { + expectedResult.fee_ref = ledgerResponse.fee_ref + } assert.equal(response.type, 'response') assert.deepEqual(response.result, expectedResult) diff --git a/packages/xrpl/test/integration/requests/tx.test.ts b/packages/xrpl/test/integration/requests/tx.test.ts index fbdb347dcb..a3fdfd3f1a 100644 --- a/packages/xrpl/test/integration/requests/tx.test.ts +++ b/packages/xrpl/test/integration/requests/tx.test.ts @@ -1,6 +1,13 @@ import { assert } from 'chai' -import { AccountSet, hashes, SubmitResponse, TxResponse } from '../../../src' +import { + AccountSet, + hashes, + SubmitResponse, + TxRequest, + TxResponse, + TxV1Response, +} from '../../../src' import { convertStringToHex } from '../../../src/utils' import serverUrl from '../serverUrl' import { @@ -45,22 +52,72 @@ describe('tx', function () { }) const expectedResponse: TxResponse = { + api_version: 2, id: txResponse.id, type: 'response', + result: { + hash: hashSignedTx(response.result.tx_blob), + tx_json: { + ...accountSet, + Fee: txResponse.result.tx_json.Fee, + Flags: 0, + LastLedgerSequence: txResponse.result.tx_json.LastLedgerSequence, + Sequence: txResponse.result.tx_json.Sequence, + SigningPubKey: testContext.wallet.publicKey, + TxnSignature: txResponse.result.tx_json.TxnSignature, + }, + validated: false, + }, + } + + assert.deepEqual(txResponse, expectedResponse) + }, + TIMEOUT, + ) + + it( + 'uses api_version 1', + async () => { + const account = testContext.wallet.classicAddress + const accountSet: AccountSet = { + TransactionType: 'AccountSet', + Account: account, + Domain: convertStringToHex('example.com'), + } + + const response: SubmitResponse = await testContext.client.submit( + accountSet, + { + wallet: testContext.wallet, + }, + ) + + const hash = hashSignedTx(response.result.tx_blob) + // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-arguments -- for api_version 1 + const txV1Response = await testContext.client.request({ + command: 'tx', + transaction: hash, + api_version: 1, + }) + + const expectedResponse: TxV1Response = { + api_version: 1, + id: txV1Response.id, + type: 'response', result: { ...accountSet, - Fee: txResponse.result.Fee, + Fee: txV1Response.result.Fee, Flags: 0, - LastLedgerSequence: txResponse.result.LastLedgerSequence, - Sequence: txResponse.result.Sequence, + LastLedgerSequence: txV1Response.result.LastLedgerSequence, + Sequence: txV1Response.result.Sequence, SigningPubKey: testContext.wallet.publicKey, - TxnSignature: txResponse.result.TxnSignature, + TxnSignature: txV1Response.result.TxnSignature, hash: hashSignedTx(response.result.tx_blob), validated: false, }, } - assert.deepEqual(txResponse, expectedResponse) + assert.deepEqual(txV1Response, expectedResponse) }, TIMEOUT, ) diff --git a/packages/xrpl/test/integration/requests/utility.test.ts b/packages/xrpl/test/integration/requests/utility.test.ts index 115f5b20e3..8cbd98a76b 100644 --- a/packages/xrpl/test/integration/requests/utility.test.ts +++ b/packages/xrpl/test/integration/requests/utility.test.ts @@ -26,6 +26,7 @@ describe('Utility method integration tests', function () { command: 'ping', }) const expected: unknown = { + api_version: 2, result: { role: 'admin', unlimited: true }, type: 'response', } @@ -41,6 +42,7 @@ describe('Utility method integration tests', function () { command: 'random', }) const expected = { + api_version: 2, id: 0, result: { random: '[random string of 64 bytes]', diff --git a/packages/xrpl/test/integration/setup.ts b/packages/xrpl/test/integration/setup.ts index 288b3cd590..8c82067aef 100644 --- a/packages/xrpl/test/integration/setup.ts +++ b/packages/xrpl/test/integration/setup.ts @@ -1,7 +1,38 @@ -import { Client, Wallet } from '../../src' +import { assert } from 'chai' + +import { + AMMDeposit, + AMMDepositFlags, + Client, + Currency, + SignerListSet, + Wallet, + XChainBridge, + XChainCreateBridge, +} from '../../src' import serverUrl from './serverUrl' -import { fundAccount } from './utils' +import { + GENESIS_ACCOUNT, + createAMMPool, + fundAccount, + generateFundedWallet, + testTransaction, +} from './utils' + +export interface TestAMMPool { + issuerWallet: Wallet + lpWallet: Wallet + testWallet: Wallet + asset: Currency + asset2: Currency +} + +interface TestBridge { + xchainBridge: XChainBridge + witness: Wallet + signatureReward: string +} export interface XrplIntegrationTestContext { client: Client @@ -32,15 +63,115 @@ async function connectWithRetry(client: Client, tries = 0): Promise { export async function setupClient( server = serverUrl, ): Promise { - const context: XrplIntegrationTestContext = { - client: new Client(server, { timeout: 200000 }), - wallet: Wallet.generate(), - } - return connectWithRetry(context.client).then(async () => { - await fundAccount(context.client, context.wallet, { + const client = new Client(server, { timeout: 200000 }) + const wallet = Wallet.generate() + return connectWithRetry(client).then(async () => { + await fundAccount(client, wallet, { count: 20, delayMs: 1000, }) + const context: XrplIntegrationTestContext = { + client, + wallet, + } return context }) } + +export async function setupAMMPool(client: Client): Promise { + const testAMMPool = await createAMMPool(client) + const { issuerWallet, lpWallet, asset, asset2 } = testAMMPool + + const testWallet = await generateFundedWallet(client) + + // Need to deposit (be an LP) to make bid/vote/withdraw eligible in tests for testContext.wallet + const ammDepositTx: AMMDeposit = { + TransactionType: 'AMMDeposit', + Account: testWallet.classicAddress, + Asset: asset, + Asset2: asset2, + Amount: '1000', + Flags: AMMDepositFlags.tfSingleAsset, + } + + await testTransaction(client, ammDepositTx, testWallet) + + return { + issuerWallet, + lpWallet, + testWallet, + asset, + asset2, + } +} + +export async function setupBridge(client: Client): Promise { + const doorAccount = await generateFundedWallet(client) + const signatureReward = '200' + const xchainBridge: XChainBridge = { + LockingChainDoor: doorAccount.classicAddress, + LockingChainIssue: { currency: 'XAH' }, + IssuingChainDoor: GENESIS_ACCOUNT, + IssuingChainIssue: { currency: 'XAH' }, + } + const setupTx: XChainCreateBridge = { + TransactionType: 'XChainCreateBridge', + Account: doorAccount.classicAddress, + XChainBridge: xchainBridge, + SignatureReward: signatureReward, + MinAccountCreateAmount: '10000000', + } + + await testTransaction(client, setupTx, doorAccount) + + // confirm that the transaction actually went through + const accountObjectsResponse = await client.request({ + command: 'account_objects', + account: doorAccount.classicAddress, + type: 'bridge', + }) + assert.lengthOf( + accountObjectsResponse.result.account_objects, + 1, + 'Should be exactly one bridge owned by the account', + ) + + const witnessWallet = await generateFundedWallet(client) + + const signerTx: SignerListSet = { + TransactionType: 'SignerListSet', + Account: doorAccount.classicAddress, + SignerEntries: [ + { + SignerEntry: { + Account: witnessWallet.classicAddress, + SignerWeight: 1, + }, + }, + ], + SignerQuorum: 1, + } + await testTransaction(client, signerTx, doorAccount) + + const signerAccountInfoResponse = await client.request({ + command: 'account_info', + account: doorAccount.classicAddress, + signer_lists: true, + }) + // const signerListInfo = signerAccountInfoResponse.result.signer_lists?.[0] + // use API_VERSION 1 + const signerListInfo = + signerAccountInfoResponse.result.account_data.signer_lists?.[0] + assert.deepEqual( + signerListInfo?.SignerEntries, + signerTx.SignerEntries, + 'SignerEntries were not set properly', + ) + assert.equal( + signerListInfo?.SignerQuorum, + signerTx.SignerQuorum, + 'SignerQuorum was not set properly', + ) + + return { xchainBridge, witness: witnessWallet, signatureReward } +} diff --git a/packages/xrpl/test/integration/transactions/ammBid.test.ts b/packages/xrpl/test/integration/transactions/ammBid.test.ts new file mode 100644 index 0000000000..2cbf40ba48 --- /dev/null +++ b/packages/xrpl/test/integration/transactions/ammBid.test.ts @@ -0,0 +1,139 @@ +import { assert } from 'chai' +import { AMMBid } from 'xrpl' + +import { AMMInfoResponse } from '../../../src' +import serverUrl from '../serverUrl' +import { + setupAMMPool, + setupClient, + teardownClient, + type TestAMMPool, + type XrplIntegrationTestContext, +} from '../setup' +import { testTransaction } from '../utils' + +describe('AMMBid', function () { + let testContext: XrplIntegrationTestContext + let ammPool: TestAMMPool + + beforeAll(async () => { + testContext = await setupClient(serverUrl) + ammPool = await setupAMMPool(testContext.client) + }) + afterAll(async () => teardownClient(testContext)) + + it('bid', async function () { + const { asset, asset2, testWallet } = ammPool + + const preAmmInfoRes: AMMInfoResponse = await testContext.client.request({ + command: 'amm_info', + asset, + asset2, + }) + + const { amm: preAmm } = preAmmInfoRes.result + const { auction_slot: preAuctionSlot, lp_token: preLPToken } = preAmm + + assert.ok(preAuctionSlot) + + const ammBidTx: AMMBid = { + TransactionType: 'AMMBid', + Account: testWallet.classicAddress, + Asset: asset, + Asset2: asset2, + } + + await testTransaction(testContext.client, ammBidTx, testWallet) + + const ammInfoRes: AMMInfoResponse = await testContext.client.request({ + command: 'amm_info', + asset, + asset2, + }) + + const { amm } = ammInfoRes.result + const { auction_slot, lp_token } = amm + + assert.ok(auction_slot) + + // @ts-expect-error: auction_slot should be defined at this point + const afterPriceValue = parseFloat(auction_slot.price.value) + // @ts-expect-error: preAuctionSlot should be defined at this point + const beforePriceValue = parseFloat(preAuctionSlot.price.value) + const diffPriceValue = 0.00268319257224121 + const expectedPriceValue = beforePriceValue + diffPriceValue + + const afterLPTokenValue = parseFloat(lp_token.value) + const beforeLPTokenValue = parseFloat(preLPToken.value) + const diffLPTokenValue = -0.0026831925721 + const expectedLPTokenValue = beforeLPTokenValue + diffLPTokenValue + + assert.equal(afterPriceValue, expectedPriceValue) + assert.equal(afterLPTokenValue, expectedLPTokenValue) + }) + + it('vote with AuthAccounts, BidMin, BidMax', async function () { + const { asset, asset2, issuerWallet, testWallet } = ammPool + + const preAmmInfoRes: AMMInfoResponse = await testContext.client.request({ + command: 'amm_info', + asset, + asset2, + }) + + const { amm: preAmm } = preAmmInfoRes.result + const { auction_slot: preAuctionSlot, lp_token: preLPToken } = preAmm + + assert.ok(preAuctionSlot) + + const ammBidTx: AMMBid = { + TransactionType: 'AMMBid', + Account: testWallet.classicAddress, + Asset: asset, + Asset2: asset2, + AuthAccounts: [ + { + AuthAccount: { + Account: issuerWallet.classicAddress, + }, + }, + ], + BidMin: { ...preLPToken, value: '5' }, + BidMax: { ...preLPToken, value: '10' }, + } + + await testTransaction(testContext.client, ammBidTx, testWallet) + + const ammInfoRes: AMMInfoResponse = await testContext.client.request({ + command: 'amm_info', + asset, + asset2, + }) + + const { amm } = ammInfoRes.result + const { auction_slot, lp_token } = amm + + assert.ok(auction_slot) + + // @ts-expect-error: auction_slot should be defined at this point + const afterPriceValue = parseFloat(auction_slot.price.value) + // @ts-expect-error: auction_slot should be defined at this point + const beforePriceValue = parseFloat(preAuctionSlot.price.value) + const diffPriceValue = 4.997316807427759 + const expectedPriceValue = beforePriceValue + diffPriceValue + + const afterLPTokenValue = parseFloat(lp_token.value) + const beforeLPTokenValue = parseFloat(preLPToken.value) + const diffLPTokenValue = -4.9974509670563 + const expectedLPTokenValue = beforeLPTokenValue + diffLPTokenValue + + assert.equal(afterPriceValue, expectedPriceValue) + assert.equal(afterLPTokenValue, expectedLPTokenValue) + // @ts-expect-error: auction_slot should be defined at this point + assert.deepEqual(auction_slot.auth_accounts, [ + { + account: issuerWallet.classicAddress, + }, + ]) + }) +}) diff --git a/packages/xrpl/test/integration/transactions/ammCreate.test.ts b/packages/xrpl/test/integration/transactions/ammCreate.test.ts new file mode 100644 index 0000000000..f063101120 --- /dev/null +++ b/packages/xrpl/test/integration/transactions/ammCreate.test.ts @@ -0,0 +1,45 @@ +import { assert } from 'chai' +import { isValidClassicAddress } from 'xrpl' + +import { AMMInfoResponse } from '../../../src' +import serverUrl from '../serverUrl' +import { + setupClient, + teardownClient, + type XrplIntegrationTestContext, +} from '../setup' +import { createAMMPool } from '../utils' + +describe('AMMCreate', function () { + let testContext: XrplIntegrationTestContext + + beforeAll(async () => { + testContext = await setupClient(serverUrl) + }) + afterAll(async () => teardownClient(testContext)) + + it('base', async function () { + const ammPool = await createAMMPool(testContext.client) + + const { asset, asset2 } = ammPool + + const ammInfoRes: AMMInfoResponse = await testContext.client.request({ + command: 'amm_info', + asset, + asset2, + }) + const { amm } = ammInfoRes.result + + assert.ok(asset2.issuer) + + assert.isTrue(isValidClassicAddress(amm.account)) + assert.equal(amm.amount, '250') + assert.deepEqual(amm.amount2, { + currency: asset2.currency, + // @ts-expect-error: asset2.issuer should be defined at this point + issuer: asset2.issuer, + value: '250', + }) + assert.equal(amm.trading_fee, 12) + }) +}) diff --git a/packages/xrpl/test/integration/transactions/ammDeposit.test.ts b/packages/xrpl/test/integration/transactions/ammDeposit.test.ts new file mode 100644 index 0000000000..aa05c535d4 --- /dev/null +++ b/packages/xrpl/test/integration/transactions/ammDeposit.test.ts @@ -0,0 +1,290 @@ +/* eslint-disable max-statements -- necessary for readibility */ +import { assert } from 'chai' +import { AMMDeposit, AMMDepositFlags } from 'xrpl' + +import { AMMInfoResponse } from '../../../src' +import serverUrl from '../serverUrl' +import { + setupAMMPool, + setupClient, + teardownClient, + type TestAMMPool, + type XrplIntegrationTestContext, +} from '../setup' +import { testTransaction } from '../utils' + +describe('AMMDeposit', function () { + let testContext: XrplIntegrationTestContext + let ammPool: TestAMMPool + + beforeAll(async () => { + testContext = await setupClient(serverUrl) + ammPool = await setupAMMPool(testContext.client) + }) + afterAll(async () => teardownClient(testContext)) + + it('deposit with Amount', async function () { + const { asset, asset2, testWallet } = ammPool + + const preAmmInfoRes: AMMInfoResponse = await testContext.client.request({ + command: 'amm_info', + asset, + asset2, + }) + + const { amm: preAmm } = preAmmInfoRes.result + const { amount: preAmount, amount2: preAmount2 } = preAmm + + const ammDepositTx: AMMDeposit = { + TransactionType: 'AMMDeposit', + Account: testWallet.classicAddress, + Asset: asset, + Asset2: asset2, + Amount: '1000', + Flags: AMMDepositFlags.tfSingleAsset, + } + + await testTransaction(testContext.client, ammDepositTx, testWallet) + + const ammInfoRes: AMMInfoResponse = await testContext.client.request({ + command: 'amm_info', + asset, + asset2, + }) + + const { amm } = ammInfoRes.result + const { amount, amount2, lp_token } = amm + + expect(typeof amount).toBe('string') + expect(typeof preAmount).toBe('string') + + // @ts-expect-error: amount should be a string + const afterAmountDrops = parseInt(amount, 10) + // @ts-expect-error: preAmount should be a string + const beforeAmountDrops = parseInt(preAmount, 10) + const diffAmountDrops = 1000 + const expectedAmountDrops = beforeAmountDrops + diffAmountDrops + + const afterAmount2 = amount2 + const beforeAmount2 = preAmount2 + + const afterLPToken = lp_token + const beforeLPToken = preAmm.lp_token + const afterLPTokenValue = parseInt(afterLPToken.value, 10) + const beforeLPTokenValue = parseInt(beforeLPToken.value, 10) + const diffLPTokenValue = 191 + const expectedLPTokenValue = beforeLPTokenValue + diffLPTokenValue + + assert.equal(afterAmountDrops, expectedAmountDrops) + assert.deepEqual(afterAmount2, beforeAmount2) + assert.equal(afterLPTokenValue, expectedLPTokenValue) + }) + + it('deposit with Amount and Amount2', async function () { + const { asset, asset2, issuerWallet } = ammPool + + const preAmmInfoRes: AMMInfoResponse = await testContext.client.request({ + command: 'amm_info', + asset, + asset2, + }) + + const { amm: preAmm } = preAmmInfoRes.result + const { amount: preAmount, amount2: preAmount2 } = preAmm + + assert.ok(asset2.issuer) + + const ammDepositTx: AMMDeposit = { + TransactionType: 'AMMDeposit', + Account: issuerWallet.classicAddress, + Asset: asset, + Asset2: asset2, + Amount: '100', + Amount2: { + currency: asset2.currency, + // @ts-expect-error: asset2.issuer should be defined at this point + issuer: asset2.issuer, + value: '100', + }, + Flags: AMMDepositFlags.tfTwoAsset, + } + + await testTransaction(testContext.client, ammDepositTx, issuerWallet) + + const ammInfoRes: AMMInfoResponse = await testContext.client.request({ + command: 'amm_info', + asset, + asset2, + }) + + const { amm } = ammInfoRes.result + const { amount, amount2, lp_token } = amm + + expect(typeof amount).toBe('string') + expect(typeof preAmount).toBe('string') + expect(typeof amount2).toBe('object') + expect(typeof preAmount2).toBe('object') + + // @ts-expect-error: amount should be a string + const afterAmountDrops = parseInt(amount, 10) + // @ts-expect-error: preAmount should be a string + const beforeAmountDrops = parseInt(preAmount, 10) + const diffAmountDrops = 100 + const expectedAmountDrops = beforeAmountDrops + diffAmountDrops + + const afterAmount2 = amount2 + const beforeAmount2 = preAmount2 + // @ts-expect-error: afterAmount2 should be an object + const afterAmount2Value = parseInt(afterAmount2.value, 10) + // @ts-expect-error: beforeAmount2 should be an object + const beforeAmount2Value = parseInt(beforeAmount2.value, 10) + const diffAmount2Value = 11 + const expectedAmount2Value = beforeAmount2Value + diffAmount2Value + + const afterLPToken = lp_token + const beforeLPToken = preAmm.lp_token + const afterLPTokenValue = parseInt(afterLPToken.value, 10) + const beforeLPTokenValue = parseInt(beforeLPToken.value, 10) + const diffLPTokenValue = 34 + const expectedLPTokenValue = beforeLPTokenValue + diffLPTokenValue + + assert.equal(afterAmountDrops, expectedAmountDrops) + assert.equal(afterAmount2Value, expectedAmount2Value) + assert.equal(afterLPTokenValue, expectedLPTokenValue) + }) + + it('deposit with Amount and LPTokenOut', async function () { + const { asset, asset2, issuerWallet } = ammPool + + const preAmmInfoRes: AMMInfoResponse = await testContext.client.request({ + command: 'amm_info', + asset, + asset2, + }) + + const { amm: preAmm } = preAmmInfoRes.result + const { + amount: preAmount, + amount2: preAmount2, + lp_token: preLPToken, + } = preAmm + + const lptokenOut = { ...preLPToken, value: '5' } + const ammDepositTx: AMMDeposit = { + TransactionType: 'AMMDeposit', + Account: issuerWallet.classicAddress, + Asset: asset, + Asset2: asset2, + Amount: '100', + LPTokenOut: lptokenOut, + Flags: AMMDepositFlags.tfOneAssetLPToken, + } + + await testTransaction(testContext.client, ammDepositTx, issuerWallet) + + const ammInfoRes: AMMInfoResponse = await testContext.client.request({ + command: 'amm_info', + asset, + asset2, + }) + + const { amm } = ammInfoRes.result + const { amount, amount2, lp_token } = amm + + expect(typeof amount).toBe('string') + expect(typeof preAmount).toBe('string') + expect(typeof amount2).toBe('object') + expect(typeof preAmount2).toBe('object') + + // @ts-expect-error: amount should be a string + const afterAmountDrops = parseInt(amount, 10) + // @ts-expect-error: preAmount should be a string + const beforeAmountDrops = parseInt(preAmount, 10) + const diffAmountDrops = 30 + const expectedAmountDrops = beforeAmountDrops + diffAmountDrops + + const afterAmount2 = amount2 + const beforeAmount2 = preAmount2 + + const afterLPToken = lp_token + const beforeLPToken = preLPToken + const afterLPTokenValue = parseInt(afterLPToken.value, 10) + const beforeLPTokenValue = parseInt(beforeLPToken.value, 10) + const diffLPTokenValue = 5 + const expectedLPTokenValue = beforeLPTokenValue + diffLPTokenValue + + assert.equal(afterAmountDrops, expectedAmountDrops) + assert.deepEqual(afterAmount2, beforeAmount2) + assert.equal(afterLPTokenValue, expectedLPTokenValue) + }) + + it('deposit with LPTokenOut', async function () { + const { asset, asset2, issuerWallet } = ammPool + + const preAmmInfoRes: AMMInfoResponse = await testContext.client.request({ + command: 'amm_info', + asset, + asset2, + }) + + const { amm: preAmm } = preAmmInfoRes.result + const { + amount: preAmount, + amount2: preAmount2, + lp_token: preLPToken, + } = preAmm + + const lptokenOut = { ...preLPToken, value: '5' } + const ammDepositTx: AMMDeposit = { + TransactionType: 'AMMDeposit', + Account: issuerWallet.classicAddress, + Asset: asset, + Asset2: asset2, + LPTokenOut: lptokenOut, + Flags: AMMDepositFlags.tfLPToken, + } + + await testTransaction(testContext.client, ammDepositTx, issuerWallet) + + const ammInfoRes: AMMInfoResponse = await testContext.client.request({ + command: 'amm_info', + asset, + asset2, + }) + + const { amm } = ammInfoRes.result + const { amount, amount2, lp_token } = amm + + expect(typeof amount).toBe('string') + expect(typeof preAmount).toBe('string') + expect(typeof amount2).toBe('object') + expect(typeof preAmount2).toBe('object') + + // @ts-expect-error: amount should be a string + const afterAmountDrops = parseInt(amount, 10) + // @ts-expect-error: preAmount should be a string + const beforeAmountDrops = parseInt(preAmount, 10) + const diffAmountDrops = 15 + const expectedAmountDrops = beforeAmountDrops + diffAmountDrops + + const afterAmount2 = amount2 + const beforeAmount2 = preAmount2 + // @ts-expect-error: afterAmount2 should be an object + const afterAmount2Value = parseInt(afterAmount2.value, 10) + // @ts-expect-error: beforeAmount2 should be an object + const beforeAmount2Value = parseInt(beforeAmount2.value, 10) + const diffAmount2Value = 1 + const expectedAmount2Value = beforeAmount2Value + diffAmount2Value + + const afterLPToken = lp_token + const beforeLPToken = preLPToken + const afterLPTokenValue = parseInt(afterLPToken.value, 10) + const beforeLPTokenValue = parseInt(beforeLPToken.value, 10) + const diffLPTokenValue = 5 + const expectedLPTokenValue = beforeLPTokenValue + diffLPTokenValue + + assert.equal(afterAmountDrops, expectedAmountDrops) + assert.equal(afterAmount2Value, expectedAmount2Value) + assert.equal(afterLPTokenValue, expectedLPTokenValue) + }) +}) diff --git a/packages/xrpl/test/integration/transactions/ammVote.test.ts b/packages/xrpl/test/integration/transactions/ammVote.test.ts new file mode 100644 index 0000000000..861e95a170 --- /dev/null +++ b/packages/xrpl/test/integration/transactions/ammVote.test.ts @@ -0,0 +1,90 @@ +/* eslint-disable max-statements -- necessary for readibility */ +import { assert } from 'chai' +import { AMMVote } from 'xrpl' + +import { AMMInfoResponse } from '../../../src' +import serverUrl from '../serverUrl' +import { + setupAMMPool, + setupClient, + teardownClient, + type TestAMMPool, + type XrplIntegrationTestContext, +} from '../setup' +import { testTransaction } from '../utils' + +describe('AMMVote', function () { + let testContext: XrplIntegrationTestContext + let ammPool: TestAMMPool + + beforeAll(async () => { + testContext = await setupClient(serverUrl) + ammPool = await setupAMMPool(testContext.client) + }) + afterAll(async () => teardownClient(testContext)) + + it('vote', async function () { + const { asset, asset2, testWallet } = ammPool + + const preAmmInfoRes: AMMInfoResponse = await testContext.client.request({ + command: 'amm_info', + asset, + asset2, + }) + + const { amm: preAmm } = preAmmInfoRes.result + const { + auction_slot: preAuctionSlot, + trading_fee: preTradingFee, + vote_slots: preVoteSlots, + } = preAmm + + assert.ok(preAuctionSlot) + assert.ok(preVoteSlots) + + // @ts-expect-error: preAuctionSlot should be defined at this point + const { discounted_fee: preDiscountedFee } = preAuctionSlot + + const ammVoteTx: AMMVote = { + TransactionType: 'AMMVote', + Account: testWallet.classicAddress, + Asset: asset, + Asset2: asset2, + TradingFee: 150, + } + + await testTransaction(testContext.client, ammVoteTx, testWallet) + + const ammInfoRes: AMMInfoResponse = await testContext.client.request({ + command: 'amm_info', + asset, + asset2, + }) + + const { amm } = ammInfoRes.result + const { auction_slot, trading_fee, vote_slots } = amm + + assert.ok(auction_slot) + + // @ts-expect-error: auction_slot should be defined at this point + const { discounted_fee } = auction_slot + + assert.ok(vote_slots) + + const afterTradingFee = trading_fee + const beforeTradingFee = preTradingFee + const diffTradingFee = 76 + const expectedTradingFee = beforeTradingFee + diffTradingFee + + const afterDiscountedFee = discounted_fee + const beforeDiscountedFee = preDiscountedFee + const diffDiscountedFee = 7 + // eslint-disable-next-line @typescript-eslint/restrict-plus-operands -- this is valid + const expectedDiscountedFee = beforeDiscountedFee + diffDiscountedFee + + assert.equal(afterTradingFee, expectedTradingFee) + assert.equal(afterDiscountedFee, expectedDiscountedFee) + // @ts-expect-error: preVoteSlots should be defined at this point + assert.equal(vote_slots.length - preVoteSlots.length, 1) + }) +}) diff --git a/packages/xrpl/test/integration/transactions/ammWithdraw.test.ts b/packages/xrpl/test/integration/transactions/ammWithdraw.test.ts new file mode 100644 index 0000000000..7748513202 --- /dev/null +++ b/packages/xrpl/test/integration/transactions/ammWithdraw.test.ts @@ -0,0 +1,298 @@ +/* eslint-disable max-statements -- necessary for readibility */ +import { assert } from 'chai' +import { AMMWithdraw, AMMWithdrawFlags } from 'xrpl' + +import { AMMInfoResponse } from '../../../src' +import serverUrl from '../serverUrl' +import { + setupAMMPool, + setupClient, + teardownClient, + type TestAMMPool, + type XrplIntegrationTestContext, +} from '../setup' +import { testTransaction } from '../utils' + +describe('AMMWithdraw', function () { + let testContext: XrplIntegrationTestContext + let ammPool: TestAMMPool + + beforeAll(async () => { + testContext = await setupClient(serverUrl) + ammPool = await setupAMMPool(testContext.client) + }) + afterAll(async () => teardownClient(testContext)) + + it('withdraw with Amount', async function () { + const { asset, asset2, testWallet } = ammPool + + const preAmmInfoRes: AMMInfoResponse = await testContext.client.request({ + command: 'amm_info', + asset, + asset2, + }) + + const { amm: preAmm } = preAmmInfoRes.result + const { + amount: preAmount, + amount2: preAmount2, + lp_token: preLPToken, + } = preAmm + + const ammWithdrawTx: AMMWithdraw = { + TransactionType: 'AMMWithdraw', + Account: testWallet.classicAddress, + Asset: asset, + Asset2: asset2, + Amount: '500', + Flags: AMMWithdrawFlags.tfSingleAsset, + } + + await testTransaction(testContext.client, ammWithdrawTx, testWallet) + + const ammInfoRes: AMMInfoResponse = await testContext.client.request({ + command: 'amm_info', + asset, + asset2, + }) + + const { amm } = ammInfoRes.result + const { amount, amount2, lp_token } = amm + + expect(typeof amount).toBe('string') + expect(typeof preAmount).toBe('string') + + // @ts-expect-error: amount should be a string + const afterAmountDrops = parseInt(amount, 10) + // @ts-expect-error: preAmount should be a string + const beforeAmountDrops = parseInt(preAmount, 10) + const diffAmountDrops = -500 + const expectedAmountDrops = beforeAmountDrops + diffAmountDrops + + const afterAmount2 = amount2 + const beforeAmount2 = preAmount2 + + const afterLPToken = lp_token + const beforeLPToken = preLPToken + const afterLPTokenValue = parseInt(afterLPToken.value, 10) + const beforeLPTokenValue = parseInt(beforeLPToken.value, 10) + const diffLPTokenValue = -126 + const expectedLPTokenValue = beforeLPTokenValue + diffLPTokenValue + + assert.equal(afterAmountDrops, expectedAmountDrops) + assert.deepEqual(afterAmount2, beforeAmount2) + assert.equal(afterLPTokenValue, expectedLPTokenValue) + }) + + it('withdraw with Amount and Amount2', async function () { + const { asset, asset2, testWallet } = ammPool + + const preAmmInfoRes: AMMInfoResponse = await testContext.client.request({ + command: 'amm_info', + asset, + asset2, + }) + + const { amm: preAmm } = preAmmInfoRes.result + const { + amount: preAmount, + amount2: preAmount2, + lp_token: preLPToken, + } = preAmm + + assert.ok(asset2.issuer) + + const ammWithdrawTx: AMMWithdraw = { + TransactionType: 'AMMWithdraw', + Account: testWallet.classicAddress, + Asset: asset, + Asset2: asset2, + Amount: '50', + Amount2: { + currency: asset2.currency, + // @ts-expect-error: asset2.issuer should be defined at this point + issuer: asset2.issuer, + value: '50', + }, + Flags: AMMWithdrawFlags.tfTwoAsset, + } + + await testTransaction(testContext.client, ammWithdrawTx, testWallet) + + const ammInfoRes: AMMInfoResponse = await testContext.client.request({ + command: 'amm_info', + asset, + asset2, + }) + + const { amm } = ammInfoRes.result + const { amount, amount2, lp_token } = amm + + expect(typeof amount).toBe('string') + expect(typeof preAmount).toBe('string') + expect(typeof amount2).toBe('object') + expect(typeof preAmount2).toBe('object') + + // @ts-expect-error: amount should be a string + const afterAmountDrops = parseInt(amount, 10) + // @ts-expect-error: preAmount should be a string + const beforeAmountDrops = parseInt(preAmount, 10) + const diffAmountDrops = -50 + const expectedAmountDrops = beforeAmountDrops + diffAmountDrops + + const afterAmount2 = amount2 + const beforeAmount2 = preAmount2 + // @ts-expect-error: afterAmount2 should be an object + const afterAmount2Value = parseInt(afterAmount2.value, 10) + // @ts-expect-error: beforeAmount2 should be an object + const beforeAmount2Value = parseInt(beforeAmount2.value, 10) + const diffAmount2Value = -17 + const expectedAmount2Value = beforeAmount2Value + diffAmount2Value + + const afterLPToken = lp_token + const beforeLPToken = preLPToken + const afterLPTokenValue = parseInt(afterLPToken.value, 10) + const beforeLPTokenValue = parseInt(beforeLPToken.value, 10) + const diffLPTokenValue = -28 + const expectedLPTokenValue = beforeLPTokenValue + diffLPTokenValue + + assert.equal(afterAmountDrops, expectedAmountDrops) + assert.equal(afterAmount2Value, expectedAmount2Value) + assert.equal(afterLPTokenValue, expectedLPTokenValue) + }) + + it('withdraw with Amount and LPTokenIn', async function () { + const { asset, asset2, testWallet } = ammPool + + const preAmmInfoRes: AMMInfoResponse = await testContext.client.request({ + command: 'amm_info', + asset, + asset2, + }) + + const { amm: preAmm } = preAmmInfoRes.result + const { + amount: preAmount, + amount2: preAmount2, + lp_token: preLPToken, + } = preAmm + + const lptokenIn = { ...preLPToken, value: '5' } + const ammWithdrawTx: AMMWithdraw = { + TransactionType: 'AMMWithdraw', + Account: testWallet.classicAddress, + Asset: asset, + Asset2: asset2, + Amount: '5', + LPTokenIn: lptokenIn, + Flags: AMMWithdrawFlags.tfOneAssetLPToken, + } + + await testTransaction(testContext.client, ammWithdrawTx, testWallet) + + const ammInfoRes: AMMInfoResponse = await testContext.client.request({ + command: 'amm_info', + asset, + asset2, + }) + + const { amm } = ammInfoRes.result + const { amount, amount2, lp_token } = amm + + expect(typeof amount).toBe('string') + expect(typeof preAmount).toBe('string') + expect(typeof amount2).toBe('object') + expect(typeof preAmount2).toBe('object') + + // @ts-expect-error: amount should be a string + const afterAmountDrops = parseInt(amount, 10) + // @ts-expect-error: preAmount should be a string + const beforeAmountDrops = parseInt(preAmount, 10) + const diffAmountDrops = -17 + const expectedAmountDrops = beforeAmountDrops + diffAmountDrops + + const afterAmount2 = amount2 + const beforeAmount2 = preAmount2 + + const afterLPToken = lp_token + const beforeLPToken = preLPToken + const afterLPTokenValue = parseInt(afterLPToken.value, 10) + const beforeLPTokenValue = parseInt(beforeLPToken.value, 10) + const diffLPTokenValue = -5 + const expectedLPTokenValue = beforeLPTokenValue + diffLPTokenValue + + assert.equal(afterAmountDrops, expectedAmountDrops) + assert.deepEqual(afterAmount2, beforeAmount2) + assert.equal(afterLPTokenValue, expectedLPTokenValue) + }) + + it('withdraw with LPTokenIn', async function () { + const { asset, asset2, testWallet } = ammPool + + const preAmmInfoRes: AMMInfoResponse = await testContext.client.request({ + command: 'amm_info', + asset, + asset2, + }) + + const { amm: preAmm } = preAmmInfoRes.result + const { + amount: preAmount, + amount2: preAmount2, + lp_token: preLPToken, + } = preAmm + + const lptokenIn = { ...preLPToken, value: '5' } + const ammWithdrawTx: AMMWithdraw = { + TransactionType: 'AMMWithdraw', + Account: testWallet.classicAddress, + Asset: asset, + Asset2: asset2, + LPTokenIn: lptokenIn, + Flags: AMMWithdrawFlags.tfLPToken, + } + + await testTransaction(testContext.client, ammWithdrawTx, testWallet) + + const ammInfoRes: AMMInfoResponse = await testContext.client.request({ + command: 'amm_info', + asset, + asset2, + }) + + const { amm } = ammInfoRes.result + const { amount, amount2, lp_token } = amm + + expect(typeof amount).toBe('string') + expect(typeof preAmount).toBe('string') + expect(typeof amount2).toBe('object') + expect(typeof preAmount2).toBe('object') + + // @ts-expect-error: amount should be a string + const afterAmountDrops = parseInt(amount, 10) + // @ts-expect-error: preAmount should be a string + const beforeAmountDrops = parseInt(preAmount, 10) + const diffAmountDrops = -9 + const expectedAmountDrops = beforeAmountDrops + diffAmountDrops + + const afterAmount2 = amount2 + const beforeAmount2 = preAmount2 + // @ts-expect-error: afterAmount2 should be an object + const afterAmount2Value = parseInt(afterAmount2.value, 10) + // @ts-expect-error: beforeAmount2 should be an object + const beforeAmount2Value = parseInt(beforeAmount2.value, 10) + const diffAmount2Value = -3 + const expectedAmount2Value = beforeAmount2Value + diffAmount2Value + + const afterLPToken = lp_token + const beforeLPToken = preLPToken + const afterLPTokenValue = parseInt(afterLPToken.value, 10) + const beforeLPTokenValue = parseInt(beforeLPToken.value, 10) + const diffLPTokenValue = -5 + const expectedLPTokenValue = beforeLPTokenValue + diffLPTokenValue + + assert.equal(afterAmountDrops, expectedAmountDrops) + assert.equal(afterAmount2Value, expectedAmount2Value) + assert.equal(afterLPTokenValue, expectedLPTokenValue) + }) +}) diff --git a/packages/xrpl/test/integration/transactions/clawback.test.ts b/packages/xrpl/test/integration/transactions/clawback.test.ts new file mode 100644 index 0000000000..e0b3aedc43 --- /dev/null +++ b/packages/xrpl/test/integration/transactions/clawback.test.ts @@ -0,0 +1,115 @@ +import { assert } from 'chai' + +import { + AccountSet, + AccountSetAsfFlags, + TrustSet, + Payment, + Clawback, +} from '../../../src' +import serverUrl from '../serverUrl' +import { + setupClient, + teardownClient, + type XrplIntegrationTestContext, +} from '../setup' +import { generateFundedWallet, testTransaction } from '../utils' + +// how long before each test case times out +const TIMEOUT = 20000 + +describe('Clawback', function () { + let testContext: XrplIntegrationTestContext + + beforeEach(async () => { + testContext = await setupClient(serverUrl) + }) + afterEach(async () => teardownClient(testContext)) + + it( + 'base', + async () => { + const wallet2 = await generateFundedWallet(testContext.client) + + const setupAccountSetTx: AccountSet = { + TransactionType: 'AccountSet', + Account: testContext.wallet.classicAddress, + SetFlag: AccountSetAsfFlags.asfAllowTrustLineClawback, + } + await testTransaction( + testContext.client, + setupAccountSetTx, + testContext.wallet, + ) + + const setupTrustSetTx: TrustSet = { + TransactionType: 'TrustSet', + Account: wallet2.classicAddress, + LimitAmount: { + currency: 'USD', + issuer: testContext.wallet.classicAddress, + value: '1000', + }, + } + await testTransaction(testContext.client, setupTrustSetTx, wallet2) + + const setupPaymentTx: Payment = { + TransactionType: 'Payment', + Account: testContext.wallet.classicAddress, + Destination: wallet2.classicAddress, + Amount: { + currency: 'USD', + issuer: testContext.wallet.classicAddress, + value: '1000', + }, + } + await testTransaction( + testContext.client, + setupPaymentTx, + testContext.wallet, + ) + + // verify that line is created + const objectsResponse = await testContext.client.request({ + command: 'account_objects', + account: wallet2.classicAddress, + type: 'state', + }) + assert.lengthOf( + objectsResponse.result.account_objects, + 1, + 'Should be exactly one line on the ledger', + ) + + // actual test - clawback + const tx: Clawback = { + TransactionType: 'Clawback', + Account: testContext.wallet.classicAddress, + Amount: { + currency: 'USD', + issuer: wallet2.classicAddress, + value: '500', + }, + } + await testTransaction(testContext.client, tx, testContext.wallet) + + // verify amount clawed back + const linesResponse = await testContext.client.request({ + command: 'account_lines', + account: wallet2.classicAddress, + }) + + assert.lengthOf( + linesResponse.result.lines, + 1, + 'Should be exactly one line on the ledger', + ) + assert.equal( + '500', + linesResponse.result.lines[0].balance, + `Holder balance incorrect after Clawback`, + ) + }, + TIMEOUT, + ) +}) diff --git a/packages/xrpl/test/integration/transactions/didDelete.test.ts b/packages/xrpl/test/integration/transactions/didDelete.test.ts new file mode 100644 index 0000000000..0b5b6caa5c --- /dev/null +++ b/packages/xrpl/test/integration/transactions/didDelete.test.ts @@ -0,0 +1,70 @@ +import { assert } from 'chai' + +import { DIDSet, DIDDelete } from '../../../src' +import serverUrl from '../serverUrl' +import { + setupClient, + teardownClient, + type XrplIntegrationTestContext, +} from '../setup' +import { testTransaction } from '../utils' + +// how long before each test case times out +const TIMEOUT = 20000 + +describe('DIDDelete', function () { + let testContext: XrplIntegrationTestContext + + beforeEach(async () => { + testContext = await setupClient(serverUrl) + }) + afterEach(async () => teardownClient(testContext)) + + it( + 'base', + async () => { + const setupTx: DIDSet = { + TransactionType: 'DIDSet', + Account: testContext.wallet.address, + Data: '617474657374', + DIDDocument: '646F63', + URI: '6469645F6578616D706C65', + } + + await testTransaction(testContext.client, setupTx, testContext.wallet) + + // double check the DID was properly created + const initialAccountOffersResponse = await testContext.client.request({ + command: 'account_objects', + account: testContext.wallet.address, + type: 'did', + }) + assert.lengthOf( + initialAccountOffersResponse.result.account_objects, + 1, + 'Should be exactly one DID on the ledger after a DIDSet transaction', + ) + + // actual test - cancel the check + const tx: DIDDelete = { + TransactionType: 'DIDDelete', + Account: testContext.wallet.address, + } + + await testTransaction(testContext.client, tx, testContext.wallet) + + // confirm that the DID no longer exists + const accountOffersResponse = await testContext.client.request({ + command: 'account_objects', + account: testContext.wallet.address, + type: 'did', + }) + assert.lengthOf( + accountOffersResponse.result.account_objects, + 0, + 'Should be no DID on the ledger after a DIDDelete transaction', + ) + }, + TIMEOUT, + ) +}) diff --git a/packages/xrpl/test/integration/transactions/didSet.test.ts b/packages/xrpl/test/integration/transactions/didSet.test.ts new file mode 100644 index 0000000000..88b0854c00 --- /dev/null +++ b/packages/xrpl/test/integration/transactions/didSet.test.ts @@ -0,0 +1,50 @@ +import { assert } from 'chai' + +import { DIDSet } from '../../../src' +import serverUrl from '../serverUrl' +import { + setupClient, + teardownClient, + type XrplIntegrationTestContext, +} from '../setup' +import { testTransaction } from '../utils' + +// how long before each test case times out +const TIMEOUT = 20000 + +describe('DIDSet', function () { + let testContext: XrplIntegrationTestContext + + beforeEach(async () => { + testContext = await setupClient(serverUrl) + }) + afterEach(async () => teardownClient(testContext)) + + it( + 'base', + async () => { + const tx: DIDSet = { + TransactionType: 'DIDSet', + Account: testContext.wallet.classicAddress, + Data: '617474657374', + DIDDocument: '646F63', + URI: '6469645F6578616D706C65', + } + + await testTransaction(testContext.client, tx, testContext.wallet) + + // confirm that the DID was actually created + const accountOffersResponse = await testContext.client.request({ + command: 'account_objects', + account: testContext.wallet.classicAddress, + type: 'did', + }) + assert.lengthOf( + accountOffersResponse.result.account_objects, + 1, + 'Should be exactly one DID on the ledger after a DIDSet transaction', + ) + }, + TIMEOUT, + ) +}) diff --git a/packages/xrpl/test/integration/transactions/escrowCancel.test.ts b/packages/xrpl/test/integration/transactions/escrowCancel.test.ts index 13b2854b37..56548fe0c9 100644 --- a/packages/xrpl/test/integration/transactions/escrowCancel.test.ts +++ b/packages/xrpl/test/integration/transactions/escrowCancel.test.ts @@ -8,21 +8,13 @@ import { type XrplIntegrationTestContext, } from '../setup' import { - // calculateWaitTimeForTransaction, + waitForAndForceProgressLedgerTime, generateFundedWallet, - // getXRPBalance, + getXRPBalance, testTransaction, - submitTransaction, + sendLedgerAccept, } from '../utils' -// TODO: Fix these tests -// NOTE: Because ledger accept is called among multiple tests, the actual ledger close time is not -// accurate. It can end up very far into the future. This means that the CancelAfter timer can potentially -// need to wait for several minutes to be able to properly complete. Since we are not testing the functionaity -// of rippled in this library, only that we are submitting commands properly, we can just test that the EscrowCancel -// command was successfully received. If in the future we isolate tests to run on their own rippled instance, -// we can uncomment the code in this file to test that the escrow was actually cancelled. - // how long before each test case times out const TIMEOUT = 50000 @@ -48,8 +40,6 @@ describe('EscrowCancel', function () { }) ).result.ledger.close_time - // const waitTimeInMs = calculateWaitTimeForTransaction(CLOSE_TIME) - const createTx: EscrowCreate = { Account: testContext.wallet.classicAddress, TransactionType: 'EscrowCreate', @@ -61,10 +51,10 @@ describe('EscrowCancel', function () { await testTransaction(testContext.client, createTx, testContext.wallet) - // const initialBalanceWallet1 = await getXRPBalance( - // testContext.client, - // wallet1, - // ) + const initialBalanceWallet1 = await getXRPBalance( + testContext.client, + wallet1, + ) // check that the object was actually created const accountObjects = ( @@ -81,7 +71,7 @@ describe('EscrowCancel', function () { command: 'tx', transaction: accountObjects[0].PreviousTxnID, }) - ).result.Sequence + ).result.tx_json.Sequence if (!sequence) { throw new Error('sequence did not exist') @@ -94,31 +84,23 @@ describe('EscrowCancel', function () { OfferSequence: sequence, } - // We set the CancelAfter timer to be 3 seconds after the last ledger close_time. We need to wait this long - // before we can cancel the escrow. - // const cancelAfterTimerPromise = new Promise((resolve) => { - // setTimeout(resolve, waitTimeInMs) - // }) - - // Make sure we wait long enough before canceling the escrow. - // await cancelAfterTimerPromise - - // await testTransaction(testContext.client, cancelTx, testContext.wallet, { - // count: 20, - // delayMs: 2000, - // }) + await waitForAndForceProgressLedgerTime( + testContext.client, + CLOSE_TIME + 3, + ) - await submitTransaction({ - client: testContext.client, - transaction: cancelTx, - wallet: testContext.wallet, + // rippled uses the close time of the previous ledger + await sendLedgerAccept(testContext.client) + await testTransaction(testContext.client, cancelTx, testContext.wallet, { + count: 20, + delayMs: 2000, }) // Make sure the Destination wallet did not receive any XRP. - // assert.equal( - // await getXRPBalance(testContext.client, wallet1), - // initialBalanceWallet1, - // ) + assert.equal( + await getXRPBalance(testContext.client, wallet1), + initialBalanceWallet1, + ) }, TIMEOUT, ) diff --git a/packages/xrpl/test/integration/transactions/escrowFinish.test.ts b/packages/xrpl/test/integration/transactions/escrowFinish.test.ts index f93319f2d7..48052dd043 100644 --- a/packages/xrpl/test/integration/transactions/escrowFinish.test.ts +++ b/packages/xrpl/test/integration/transactions/escrowFinish.test.ts @@ -8,10 +8,12 @@ import { type XrplIntegrationTestContext, } from '../setup' import { - calculateWaitTimeForTransaction, generateFundedWallet, getXRPBalance, + sendLedgerAccept, testTransaction, + getLedgerCloseTime, + waitForAndForceProgressLedgerTime, } from '../utils' // how long before each test case times out @@ -31,14 +33,7 @@ describe('EscrowFinish', function () { const wallet1 = await generateFundedWallet(testContext.client) // get the most recent close_time from the standalone container for cancel & finish after. - const CLOSE_TIME: number = ( - await testContext.client.request({ - command: 'ledger', - ledger_index: 'validated', - }) - ).result.ledger.close_time - - const waitTimeInMs = calculateWaitTimeForTransaction(CLOSE_TIME) + const CLOSE_TIME = await getLedgerCloseTime(testContext.client) const AMOUNT = 10000 @@ -50,10 +45,6 @@ describe('EscrowFinish', function () { FinishAfter: CLOSE_TIME + 2, } - const finishAfterPromise = new Promise((resolve) => { - setTimeout(resolve, waitTimeInMs) - }) - await testTransaction(testContext.client, createTx, testContext.wallet) const initialBalance = await getXRPBalance(testContext.client, wallet1) @@ -73,17 +64,23 @@ describe('EscrowFinish', function () { command: 'tx', transaction: accountObjects[0].PreviousTxnID, }) - ).result.Sequence + ).result.tx_json.Sequence const finishTx: EscrowFinish = { TransactionType: 'EscrowFinish', Account: testContext.wallet.classicAddress, Owner: testContext.wallet.classicAddress, - OfferSequence: sequence!, + OfferSequence: sequence, } - await finishAfterPromise + // wait for the escrow to be ready to finish + await waitForAndForceProgressLedgerTime( + testContext.client, + CLOSE_TIME + 2, + ) + // rippled uses the close time of the previous ledger + await sendLedgerAccept(testContext.client) await testTransaction(testContext.client, finishTx, testContext.wallet) const expectedBalance = String(Number(initialBalance) + Number(AMOUNT)) diff --git a/packages/xrpl/test/integration/transactions/nftokenMint.test.ts b/packages/xrpl/test/integration/transactions/nftokenMint.test.ts index a890683060..daf1f29c00 100644 --- a/packages/xrpl/test/integration/transactions/nftokenMint.test.ts +++ b/packages/xrpl/test/integration/transactions/nftokenMint.test.ts @@ -1,67 +1,93 @@ -import { Client } from '@transia/xrpl' import { assert } from 'chai' -import _ from 'lodash' import { convertStringToHex, getNFTokenID, NFTokenMint, TransactionMetadata, + TxRequest, } from '../../../src' +import { hashSignedTx } from '../../../src/utils/hashes' +import serverUrl from '../serverUrl' +import { + setupClient, + teardownClient, + type XrplIntegrationTestContext, +} from '../setup' +import { testTransaction } from '../utils' // how long before each test case times out const TIMEOUT = 20000 describe('NFTokenMint', function () { - // TODO: Once we update our integration tests to handle NFTs, replace this client with XrplIntegrationTestContext + let testContext: XrplIntegrationTestContext + + beforeEach(async () => { + testContext = await setupClient(serverUrl) + }) + afterEach(async () => teardownClient(testContext)) + it( 'get NFTokenID', async function () { - const client = new Client('wss://s.altnet.rippletest.net:51233/') - await client.connect() - - const { wallet, balance: _balance } = await client.fundWallet() - const tx: NFTokenMint = { TransactionType: 'NFTokenMint', - Account: wallet.address, + Account: testContext.wallet.address, URI: convertStringToHex('https://www.google.com'), NFTokenTaxon: 0, } - try { - const response = await client.submitAndWait(tx, { - wallet, - }) - assert.equal(response.type, 'response') - assert.equal( - (response.result.meta as TransactionMetadata).TransactionResult, - 'tesSUCCESS', - ) + const response = await testTransaction( + testContext.client, + tx, + testContext.wallet, + ) + assert.equal(response.type, 'response') + + const txRequest: TxRequest = { + command: 'tx', + transaction: hashSignedTx(response.result.tx_blob), + } + const txResponse = await testContext.client.request(txRequest) - const accountNFTs = await client.request({ - command: 'account_nfts', - account: wallet.address, - }) + assert.equal( + (txResponse.result.meta as TransactionMetadata).TransactionResult, + 'tesSUCCESS', + ) - const nftokenID = - getNFTokenID(response.result.meta as TransactionMetadata) ?? - 'undefined' - const accountHasNFT = accountNFTs.result.account_nfts.some( - (value) => value.NFTokenID === nftokenID, - ) + const accountNFTs = await testContext.client.request({ + command: 'account_nfts', + account: testContext.wallet.address, + }) - assert.isTrue( - accountHasNFT, - `Expected to find an NFT with NFTokenID ${nftokenID} in account ${ - wallet.address - } but did not find it. - \n\nHere's what was returned from 'account_nfts' for ${ - wallet.address - }: ${JSON.stringify(accountNFTs)}`, - ) - } finally { - await client.disconnect() - } + const nftokenID = + getNFTokenID( + txResponse.result.meta as TransactionMetadata, + ) ?? 'undefined' + + const accountHasNFT = accountNFTs.result.account_nfts.some( + (value) => value.NFTokenID === nftokenID, + ) + + assert.isTrue( + accountHasNFT, + `Expected to find an NFT with NFTokenID ${nftokenID} in account ${ + testContext.wallet.address + } but did not find it. + \n\nHere's what was returned from 'account_nfts' for ${ + testContext.wallet.address + }: ${JSON.stringify(accountNFTs)}`, + ) + + const binaryTxResponse = await testContext.client.request({ + ...txRequest, + binary: true, + }) + + assert.equal( + nftokenID, + getNFTokenID(binaryTxResponse.result.meta_blob) ?? 'undefined', + `getNFTokenID produced a different outcome when decoding the metadata in binary format.`, + ) }, TIMEOUT, ) diff --git a/packages/xrpl/test/integration/transactions/oracleDelete.test.ts b/packages/xrpl/test/integration/transactions/oracleDelete.test.ts new file mode 100644 index 0000000000..11e245cc53 --- /dev/null +++ b/packages/xrpl/test/integration/transactions/oracleDelete.test.ts @@ -0,0 +1,76 @@ +import { stringToHex } from '@xrplf/isomorphic/utils' +import { assert } from 'chai' + +import { OracleSet, OracleDelete } from '../../../src' +import serverUrl from '../serverUrl' +import { + setupClient, + teardownClient, + type XrplIntegrationTestContext, +} from '../setup' +import { testTransaction } from '../utils' + +// how long before each test case times out +const TIMEOUT = 20000 + +describe('OracleDelete', function () { + let testContext: XrplIntegrationTestContext + + beforeEach(async () => { + testContext = await setupClient(serverUrl) + }) + afterEach(async () => teardownClient(testContext)) + + it( + 'base', + async () => { + const setTx: OracleSet = { + TransactionType: 'OracleSet', + Account: testContext.wallet.classicAddress, + OracleDocumentID: 1234, + LastUpdateTime: Math.floor(Date.now() / 1000), + PriceDataSeries: [ + { + PriceData: { + BaseAsset: 'XAH', + QuoteAsset: 'USD', + AssetPrice: 740, + Scale: 3, + }, + }, + ], + Provider: stringToHex('chainlink'), + URI: '6469645F6578616D706C65', + AssetClass: stringToHex('currency'), + } + + await testTransaction(testContext.client, setTx, testContext.wallet) + + const aoResult = await testContext.client.request({ + command: 'account_objects', + account: testContext.wallet.classicAddress, + type: 'oracle', + }) + + // confirm that the Oracle was created + assert.equal(aoResult.result.account_objects.length, 1) + + const deleteTx: OracleDelete = { + TransactionType: 'OracleDelete', + Account: testContext.wallet.classicAddress, + OracleDocumentID: 1234, + } + + await testTransaction(testContext.client, deleteTx, testContext.wallet) + + const aoResult2 = await testContext.client.request({ + command: 'account_objects', + account: testContext.wallet.classicAddress, + }) + + // confirm that the Oracle was actually deleted + assert.equal(aoResult2.result.account_objects.length, 0) + }, + TIMEOUT, + ) +}) diff --git a/packages/xrpl/test/integration/transactions/oracleSet.test.ts b/packages/xrpl/test/integration/transactions/oracleSet.test.ts new file mode 100644 index 0000000000..a7331b5309 --- /dev/null +++ b/packages/xrpl/test/integration/transactions/oracleSet.test.ts @@ -0,0 +1,74 @@ +import { stringToHex } from '@xrplf/isomorphic/utils' +import { assert } from 'chai' + +import { OracleSet } from '../../../src' +import { Oracle } from '../../../src/models/ledger' +import serverUrl from '../serverUrl' +import { + setupClient, + teardownClient, + type XrplIntegrationTestContext, +} from '../setup' +import { testTransaction } from '../utils' + +// how long before each test case times out +const TIMEOUT = 20000 + +describe('OracleSet', function () { + let testContext: XrplIntegrationTestContext + + beforeEach(async () => { + testContext = await setupClient(serverUrl) + }) + afterEach(async () => teardownClient(testContext)) + + it( + 'base', + async () => { + const tx: OracleSet = { + TransactionType: 'OracleSet', + Account: testContext.wallet.classicAddress, + OracleDocumentID: 1234, + LastUpdateTime: Math.floor(Date.now() / 1000), + PriceDataSeries: [ + { + PriceData: { + BaseAsset: 'XAH', + QuoteAsset: 'USD', + AssetPrice: 740, + Scale: 3, + }, + }, + ], + Provider: stringToHex('chainlink'), + URI: '6469645F6578616D706C65', + AssetClass: stringToHex('currency'), + } + + await testTransaction(testContext.client, tx, testContext.wallet) + + const result = await testContext.client.request({ + command: 'account_objects', + account: testContext.wallet.classicAddress, + type: 'oracle', + }) + + // confirm that the Oracle was actually created + assert.equal(result.result.account_objects.length, 1) + + // confirm details of Oracle ledger entry object + const oracle = result.result.account_objects[0] as Oracle + assert.equal(oracle.LastUpdateTime, tx.LastUpdateTime) + assert.equal(oracle.Owner, testContext.wallet.classicAddress) + assert.equal(oracle.AssetClass, tx.AssetClass) + assert.equal(oracle.Provider, tx.Provider) + assert.equal(oracle.PriceDataSeries.length, 1) + assert.equal(oracle.PriceDataSeries[0].PriceData.BaseAsset, 'XAH') + assert.equal(oracle.PriceDataSeries[0].PriceData.QuoteAsset, 'USD') + assert.equal(oracle.PriceDataSeries[0].PriceData.AssetPrice, '2e4') + assert.equal(oracle.PriceDataSeries[0].PriceData.Scale, 3) + assert.equal(oracle.Flags, 0) + }, + TIMEOUT, + ) +}) diff --git a/packages/xrpl/test/integration/transactions/payment.test.ts b/packages/xrpl/test/integration/transactions/payment.test.ts index 333c6278cc..391ab317b2 100644 --- a/packages/xrpl/test/integration/transactions/payment.test.ts +++ b/packages/xrpl/test/integration/transactions/payment.test.ts @@ -1,4 +1,6 @@ -import { Payment } from '../../../src' +import { assert } from 'chai' + +import { Payment, Wallet } from '../../../src' import serverUrl from '../serverUrl' import { setupClient, @@ -12,24 +14,92 @@ const TIMEOUT = 20000 describe('Payment', function () { let testContext: XrplIntegrationTestContext + let paymentTx: Payment + const AMOUNT = '10000000' + // This wallet is used for DeliverMax related tests + let senderWallet: Wallet beforeEach(async () => { + // this payment transaction JSON needs to be refreshed before every test. + // Because, we tinker with Amount and DeliverMax fields in the API v2 tests + paymentTx = { + TransactionType: 'Payment', + Account: senderWallet.classicAddress, + Amount: AMOUNT, + Destination: 'rfkE1aSy9G8Upk4JssnwBxhEv5p4mn2KTy', + } + }) + + beforeAll(async () => { testContext = await setupClient(serverUrl) + senderWallet = await generateFundedWallet(testContext.client) }) - afterEach(async () => teardownClient(testContext)) + afterAll(async () => teardownClient(testContext)) it( 'base', async () => { - const wallet2 = await generateFundedWallet(testContext.client) const tx: Payment = { TransactionType: 'Payment', Account: testContext.wallet.classicAddress, - Destination: wallet2.classicAddress, + Destination: senderWallet.classicAddress, Amount: '1000', } await testTransaction(testContext.client, tx, testContext.wallet) }, TIMEOUT, ) + + it( + 'Validate Payment transaction API v2: Payment Transaction: Specify Only Amount field', + async () => { + const result = await testTransaction( + testContext.client, + paymentTx, + senderWallet, + ) + + assert.equal(result.result.engine_result_code, 0) + assert.equal((result.result.tx_json as Payment).Amount, AMOUNT) + }, + TIMEOUT, + ) + + it( + 'Validate Payment transaction API v2: Payment Transaction: Specify Only DeliverMax field', + async () => { + // @ts-expect-error -- DeliverMax is a non-protocol, RPC level field in Payment transactions + paymentTx.DeliverMax = paymentTx.Amount + // @ts-expect-error -- DeliverMax is a non-protocol, RPC level field in Payment transactions + delete paymentTx.Amount + + const result = await testTransaction( + testContext.client, + paymentTx, + senderWallet, + ) + + assert.equal(result.result.engine_result_code, 0) + assert.equal((result.result.tx_json as Payment).Amount, AMOUNT) + }, + TIMEOUT, + ) + + it( + 'Validate Payment transaction API v2: Payment Transaction: identical DeliverMax and Amount fields', + async () => { + // @ts-expect-error -- DeliverMax is a non-protocol, RPC level field in Payment transactions + paymentTx.DeliverMax = paymentTx.Amount + + const result = await testTransaction( + testContext.client, + paymentTx, + senderWallet, + ) + + assert.equal(result.result.engine_result_code, 0) + assert.equal((result.result.tx_json as Payment).Amount, AMOUNT) + }, + TIMEOUT, + ) }) diff --git a/packages/xrpl/test/integration/transactions/signerListSet.test.ts b/packages/xrpl/test/integration/transactions/signerListSet.test.ts index 1181e1eb0a..eece2274c0 100644 --- a/packages/xrpl/test/integration/transactions/signerListSet.test.ts +++ b/packages/xrpl/test/integration/transactions/signerListSet.test.ts @@ -1,3 +1,5 @@ +import { assert } from 'chai' + import { SignerListSet } from '../../../src' import serverUrl from '../serverUrl' import { @@ -42,6 +44,37 @@ describe('SignerListSet', function () { SignerQuorum: 2, } await testTransaction(testContext.client, tx, testContext.wallet) + + const accountInfoResponse = await testContext.client.request({ + command: 'account_info', + account: testContext.wallet.classicAddress, + signer_lists: true, + }) + const signerListInfo = accountInfoResponse.result.signer_lists?.[0] + assert.deepEqual( + signerListInfo?.SignerEntries, + tx.SignerEntries, + 'SignerEntries were not set properly', + ) + assert.equal( + signerListInfo?.SignerQuorum, + tx.SignerQuorum, + 'SignerQuorum was not set properly', + ) + }, + TIMEOUT, + ) + + // Remove signerlist + it( + 'remove', + async () => { + const tx: SignerListSet = { + TransactionType: 'SignerListSet', + Account: testContext.wallet.classicAddress, + SignerQuorum: 0, + } + await testTransaction(testContext.client, tx, testContext.wallet) }, TIMEOUT, ) diff --git a/packages/xrpl/test/integration/transactions/trustSet.test.ts b/packages/xrpl/test/integration/transactions/trustSet.test.ts index b31b38c6ce..7736d0d107 100644 --- a/packages/xrpl/test/integration/transactions/trustSet.test.ts +++ b/packages/xrpl/test/integration/transactions/trustSet.test.ts @@ -1,4 +1,6 @@ -import { TrustSet, percentToQuality } from '../../../src' +import { assert } from 'chai' + +import { TrustSet, percentToQuality, Wallet } from '../../../src' import serverUrl from '../serverUrl' import { setupClient, @@ -12,16 +14,21 @@ const TIMEOUT = 20000 describe('TrustSet', function () { let testContext: XrplIntegrationTestContext + let wallet2: Wallet | undefined beforeEach(async () => { testContext = await setupClient(serverUrl) + if (!wallet2) { + // eslint-disable-next-line require-atomic-updates -- race condition doesn't really matter + wallet2 = await generateFundedWallet(testContext.client) + } }) afterEach(async () => teardownClient(testContext)) it( 'base', async () => { - const wallet2 = await generateFundedWallet(testContext.client) + assert(wallet2 != null) const tx: TrustSet = { TransactionType: 'TrustSet', Account: testContext.wallet.classicAddress, @@ -40,14 +47,14 @@ describe('TrustSet', function () { it( 'Quality < 1', async () => { - const wallet2 = await generateFundedWallet(testContext.client) + assert(wallet2 != null) const tx: TrustSet = { TransactionType: 'TrustSet', Account: testContext.wallet.address, QualityIn: percentToQuality('99%'), QualityOut: percentToQuality('99%'), LimitAmount: { - currency: 'USD', + currency: 'BTC', issuer: wallet2.address, value: '100', }, @@ -61,14 +68,14 @@ describe('TrustSet', function () { it( 'Quality > 1', async () => { - const wallet2 = await generateFundedWallet(testContext.client) + assert(wallet2 != null) const tx: TrustSet = { TransactionType: 'TrustSet', QualityIn: percentToQuality('101%'), QualityOut: percentToQuality('101%'), Account: testContext.wallet.address, LimitAmount: { - currency: 'USD', + currency: 'ETH', issuer: wallet2.address, value: '100', }, diff --git a/packages/xrpl/test/integration/transactions/xchainAccountCreateCommit.test.ts b/packages/xrpl/test/integration/transactions/xchainAccountCreateCommit.test.ts new file mode 100644 index 0000000000..27f105eaa9 --- /dev/null +++ b/packages/xrpl/test/integration/transactions/xchainAccountCreateCommit.test.ts @@ -0,0 +1,64 @@ +import { assert } from 'chai' + +import { XChainAccountCreateCommit, Wallet } from '../../../src' +import serverUrl from '../serverUrl' +import { + setupClient, + teardownClient, + type XrplIntegrationTestContext, + setupBridge, +} from '../setup' +import { generateFundedWallet, getXRPBalance, testTransaction } from '../utils' + +// how long before each test case times out +const TIMEOUT = 20000 + +describe('XChainAccountCreateCommit', function () { + let testContext: XrplIntegrationTestContext + + beforeEach(async () => { + testContext = await setupClient(serverUrl) + }) + afterEach(async () => teardownClient(testContext)) + + it( + 'base', + async () => { + const { xchainBridge, signatureReward } = await setupBridge( + testContext.client, + ) + const initialBalance = Number( + await getXRPBalance(testContext.client, xchainBridge.LockingChainDoor), + ) + + // actually test XChainAccountCreateCommit + const wallet2 = await generateFundedWallet(testContext.client) + const destination = Wallet.generate() + const amount = 10000000 + const tx: XChainAccountCreateCommit = { + TransactionType: 'XChainAccountCreateCommit', + Account: wallet2.classicAddress, + XChainBridge: xchainBridge, + Amount: amount.toString(), + SignatureReward: signatureReward, + Destination: destination.classicAddress, + } + + await testTransaction(testContext.client, tx, wallet2) + + const accountInfoResponse2 = await testContext.client.request({ + command: 'account_info', + account: xchainBridge.LockingChainDoor, + }) + const finalBalance = Number( + accountInfoResponse2.result.account_data.Balance, + ) + assert.equal( + finalBalance, + initialBalance + amount + Number(signatureReward), + "The bridge door's balance should go up by the amount committed", + ) + }, + TIMEOUT, + ) +}) diff --git a/packages/xrpl/test/integration/transactions/xchainAddAccountCreateAttestation.test.ts b/packages/xrpl/test/integration/transactions/xchainAddAccountCreateAttestation.test.ts new file mode 100644 index 0000000000..1e72b61b2c --- /dev/null +++ b/packages/xrpl/test/integration/transactions/xchainAddAccountCreateAttestation.test.ts @@ -0,0 +1,76 @@ +import { encode } from 'ripple-binary-codec' +import { sign } from 'ripple-keypairs' + +import { + Wallet, + XChainAddAccountCreateAttestation, + xrpToDrops, +} from '../../../src' +import serverUrl from '../serverUrl' +import { + setupBridge, + setupClient, + teardownClient, + type XrplIntegrationTestContext, +} from '../setup' +import { testTransaction } from '../utils' + +// how long before each test case times out +const TIMEOUT = 20000 + +describe('XChainCreateBridge', function () { + let testContext: XrplIntegrationTestContext + + beforeEach(async () => { + testContext = await setupClient(serverUrl) + }) + afterEach(async () => teardownClient(testContext)) + + it( + 'base', + async () => { + const { xchainBridge, witness, signatureReward } = await setupBridge( + testContext.client, + ) + const destination = Wallet.generate() + const otherChainSource = Wallet.generate() + + const attestationToSign = { + XChainBridge: xchainBridge, + OtherChainSource: otherChainSource.classicAddress, + Amount: xrpToDrops(300), + AttestationRewardAccount: witness.classicAddress, + WasLockingChainSend: 0, + XChainAccountCreateCount: 1, + Destination: destination.classicAddress, + SignatureReward: signatureReward, + } + const encodedAttestation = encode(attestationToSign) + const attestationSignature = sign(encodedAttestation, witness.privateKey) + + const tx: XChainAddAccountCreateAttestation = { + TransactionType: 'XChainAddAccountCreateAttestation', + Account: testContext.wallet.classicAddress, + XChainBridge: xchainBridge, + OtherChainSource: otherChainSource.classicAddress, + Amount: xrpToDrops(300), + WasLockingChainSend: 0, + XChainAccountCreateCount: 1, + Destination: destination.classicAddress, + SignatureReward: signatureReward, + PublicKey: witness.publicKey, + Signature: attestationSignature, + AttestationRewardAccount: witness.classicAddress, + AttestationSignerAccount: witness.classicAddress, + } + await testTransaction(testContext.client, tx, testContext.wallet) + + // should not throw + await testContext.client.request({ + command: 'account_info', + account: destination.classicAddress, + }) + }, + TIMEOUT, + ) +}) diff --git a/packages/xrpl/test/integration/transactions/xchainAddClaimAttestation.test.ts b/packages/xrpl/test/integration/transactions/xchainAddClaimAttestation.test.ts new file mode 100644 index 0000000000..9462f0823f --- /dev/null +++ b/packages/xrpl/test/integration/transactions/xchainAddClaimAttestation.test.ts @@ -0,0 +1,273 @@ +/* eslint-disable max-statements -- necessary because transfers require a lot of steps */ +import { assert } from 'chai' +import { encode } from 'ripple-binary-codec' +import { sign } from 'ripple-keypairs' + +import { + AccountSet, + AccountSetAsfFlags, + IssuedCurrency, + IssuedCurrencyAmount, + SignerListSet, + TrustSet, + Wallet, + XChainAddClaimAttestation, + XChainBridge, + XChainCreateBridge, + XChainCreateClaimID, + xrpToDrops, +} from '../../../src' +import serverUrl from '../serverUrl' +import { + setupBridge, + setupClient, + teardownClient, + type XrplIntegrationTestContext, +} from '../setup' +import { + generateFundedWallet, + getIOUBalance, + getXRPBalance, + testTransaction, +} from '../utils' + +// how long before each test case times out +const TIMEOUT = 20000 + +describe('XChainCreateBridge', function () { + let testContext: XrplIntegrationTestContext + + beforeEach(async () => { + testContext = await setupClient(serverUrl) + }) + afterEach(async () => teardownClient(testContext)) + + it( + 'base', + async () => { + const { xchainBridge, witness, signatureReward } = await setupBridge( + testContext.client, + ) + const otherChainSource = Wallet.generate() + const amount = xrpToDrops(10) + + const claimIdTx: XChainCreateClaimID = { + TransactionType: 'XChainCreateClaimID', + Account: testContext.wallet.classicAddress, + XChainBridge: xchainBridge, + SignatureReward: signatureReward, + OtherChainSource: otherChainSource.classicAddress, + } + await testTransaction(testContext.client, claimIdTx, testContext.wallet) + + const initialBalance = Number( + await getXRPBalance(testContext.client, testContext.wallet), + ) + + const attestationToSign = { + XChainBridge: xchainBridge, + OtherChainSource: otherChainSource.classicAddress, + Amount: amount, + AttestationRewardAccount: witness.classicAddress, + WasLockingChainSend: 0, + XChainClaimID: 1, + Destination: testContext.wallet.classicAddress, + } + const encodedAttestation = encode(attestationToSign) + const attestationSignature = sign(encodedAttestation, witness.privateKey) + + const tx: XChainAddClaimAttestation = { + TransactionType: 'XChainAddClaimAttestation', + Account: witness.classicAddress, + XChainBridge: xchainBridge, + OtherChainSource: otherChainSource.classicAddress, + Amount: amount, + WasLockingChainSend: 0, + XChainClaimID: 1, + Destination: testContext.wallet.classicAddress, + PublicKey: witness.publicKey, + Signature: attestationSignature, + AttestationRewardAccount: witness.classicAddress, + AttestationSignerAccount: witness.classicAddress, + } + await testTransaction(testContext.client, tx, witness) + + const finalBalance = Number( + await getXRPBalance(testContext.client, testContext.wallet), + ) + assert.equal( + finalBalance, + initialBalance + Number(amount) - Number(signatureReward), + 'The destination balance should go up by the amount transferred', + ) + }, + TIMEOUT, + ) + + it( + 'IOU', + async () => { + const witness = await generateFundedWallet(testContext.client) + // we are on the "issuing chain" for this test + const lockingDoor = Wallet.generate() + const issuer = Wallet.generate() + + // set default rippling + const defaultRipplingTx: AccountSet = { + TransactionType: 'AccountSet', + Account: testContext.wallet.classicAddress, + SetFlag: AccountSetAsfFlags.asfDefaultRipple, + } + await testTransaction( + testContext.client, + defaultRipplingTx, + testContext.wallet, + ) + + const destination = await generateFundedWallet(testContext.client) + + const trustlineTx: TrustSet = { + TransactionType: 'TrustSet', + Account: destination.classicAddress, + LimitAmount: { + currency: 'USD', + issuer: testContext.wallet.classicAddress, + value: '1000000000', + }, + } + await testTransaction(testContext.client, trustlineTx, destination) + + const signatureReward = '200' + const xchainBridge: XChainBridge = { + LockingChainDoor: lockingDoor.classicAddress, + LockingChainIssue: { + currency: 'USD', + issuer: issuer.classicAddress, + }, + IssuingChainDoor: testContext.wallet.classicAddress, + IssuingChainIssue: { + currency: 'USD', + issuer: testContext.wallet.classicAddress, + }, + } + const setupTx: XChainCreateBridge = { + TransactionType: 'XChainCreateBridge', + Account: testContext.wallet.classicAddress, + XChainBridge: xchainBridge, + SignatureReward: signatureReward, + } + + await testTransaction(testContext.client, setupTx, testContext.wallet) + + // confirm that the transaction actually went through + const accountObjectsResponse = await testContext.client.request({ + command: 'account_objects', + account: testContext.wallet.classicAddress, + type: 'bridge', + }) + assert.lengthOf( + accountObjectsResponse.result.account_objects, + 1, + 'Should be exactly one bridge owned by the account', + ) + + const signerTx: SignerListSet = { + TransactionType: 'SignerListSet', + Account: testContext.wallet.classicAddress, + SignerEntries: [ + { + SignerEntry: { + Account: witness.classicAddress, + SignerWeight: 1, + }, + }, + ], + SignerQuorum: 1, + } + await testTransaction(testContext.client, signerTx, testContext.wallet) + + const signerAccountInfoResponse = await testContext.client.request({ + command: 'account_info', + account: testContext.wallet.classicAddress, + signer_lists: true, + }) + const signerListInfo = signerAccountInfoResponse.result.signer_lists?.[0] + assert.deepEqual( + signerListInfo?.SignerEntries, + signerTx.SignerEntries, + 'SignerEntries were not set properly', + ) + assert.equal( + signerListInfo?.SignerQuorum, + signerTx.SignerQuorum, + 'SignerQuorum was not set properly', + ) + + const otherChainSource = Wallet.generate() + const amount: IssuedCurrencyAmount = { + currency: 'USD', + issuer: issuer.classicAddress, + value: '10', + } + + const claimIdTx: XChainCreateClaimID = { + TransactionType: 'XChainCreateClaimID', + Account: destination.classicAddress, + XChainBridge: xchainBridge, + SignatureReward: signatureReward, + OtherChainSource: otherChainSource.classicAddress, + } + await testTransaction(testContext.client, claimIdTx, destination) + + const initialBalance = Number( + await getIOUBalance( + testContext.client, + destination, + xchainBridge.IssuingChainIssue as IssuedCurrency, + ), + ) + + const attestationToSign = { + XChainBridge: xchainBridge, + OtherChainSource: otherChainSource.classicAddress, + Amount: amount, + AttestationRewardAccount: witness.classicAddress, + WasLockingChainSend: 1, + XChainClaimID: 1, + Destination: destination.classicAddress, + } + const encodedAttestation = encode(attestationToSign) + const attestationSignature = sign(encodedAttestation, witness.privateKey) + + const tx: XChainAddClaimAttestation = { + TransactionType: 'XChainAddClaimAttestation', + Account: witness.classicAddress, + XChainBridge: xchainBridge, + OtherChainSource: otherChainSource.classicAddress, + Amount: amount, + WasLockingChainSend: 1, + XChainClaimID: 1, + Destination: destination.classicAddress, + PublicKey: witness.publicKey, + Signature: attestationSignature, + AttestationRewardAccount: witness.classicAddress, + AttestationSignerAccount: witness.classicAddress, + } + await testTransaction(testContext.client, tx, witness) + + const finalBalance = Number( + await getIOUBalance( + testContext.client, + destination, + xchainBridge.IssuingChainIssue as IssuedCurrency, + ), + ) + assert.equal( + finalBalance, + initialBalance + Number(amount.value), + 'The destination balance should go up by the amount transferred', + ) + }, + TIMEOUT, + ) +}) diff --git a/packages/xrpl/test/integration/transactions/xchainClaim.test.ts b/packages/xrpl/test/integration/transactions/xchainClaim.test.ts new file mode 100644 index 0000000000..1987ceec4a --- /dev/null +++ b/packages/xrpl/test/integration/transactions/xchainClaim.test.ts @@ -0,0 +1,112 @@ +import { assert } from 'chai' +import { encode } from 'ripple-binary-codec' +import { sign } from 'ripple-keypairs' + +import { + Wallet, + XChainAddClaimAttestation, + XChainClaim, + XChainCreateClaimID, + xrpToDrops, +} from '../../../src' +import serverUrl from '../serverUrl' +import { + setupBridge, + setupClient, + teardownClient, + type XrplIntegrationTestContext, +} from '../setup' +import { generateFundedWallet, getXRPBalance, testTransaction } from '../utils' + +// how long before each test case times out +const TIMEOUT = 20000 + +describe('XChainCreateBridge', function () { + let testContext: XrplIntegrationTestContext + + beforeEach(async () => { + testContext = await setupClient(serverUrl) + }) + afterEach(async () => teardownClient(testContext)) + + it( + 'base', + async () => { + const { xchainBridge, witness, signatureReward } = await setupBridge( + testContext.client, + ) + + const destination = await generateFundedWallet(testContext.client) + const otherChainSource = Wallet.generate() + const amount = xrpToDrops(10) + + const claimIdTx: XChainCreateClaimID = { + TransactionType: 'XChainCreateClaimID', + Account: destination.classicAddress, + XChainBridge: xchainBridge, + SignatureReward: signatureReward, + OtherChainSource: otherChainSource.classicAddress, + } + await testTransaction(testContext.client, claimIdTx, destination) + + const initialBalance = Number( + await getXRPBalance(testContext.client, destination), + ) + + const attestationToSign = { + XChainBridge: xchainBridge, + OtherChainSource: otherChainSource.classicAddress, + Amount: amount, + AttestationRewardAccount: witness.classicAddress, + WasLockingChainSend: 0, + XChainClaimID: 1, + } + const encodedAttestation = encode(attestationToSign) + const attestationSignature = sign(encodedAttestation, witness.privateKey) + + const claimTx: XChainAddClaimAttestation = { + TransactionType: 'XChainAddClaimAttestation', + Account: witness.classicAddress, + XChainBridge: xchainBridge, + OtherChainSource: otherChainSource.classicAddress, + Amount: amount, + WasLockingChainSend: 0, + XChainClaimID: 1, + PublicKey: witness.publicKey, + Signature: attestationSignature, + AttestationRewardAccount: witness.classicAddress, + AttestationSignerAccount: witness.classicAddress, + } + await testTransaction(testContext.client, claimTx, witness) + + const intermediateBalance = Number( + await getXRPBalance(testContext.client, destination), + ) + assert.equal( + initialBalance, + intermediateBalance, + "The destination's balance should not change yet", + ) + + const tx: XChainClaim = { + TransactionType: 'XChainClaim', + Account: destination.classicAddress, + XChainBridge: xchainBridge, + Destination: destination.classicAddress, + XChainClaimID: 1, + Amount: amount, + } + await testTransaction(testContext.client, tx, destination) + + const finalBalance = Number( + await getXRPBalance(testContext.client, destination), + ) + assert.equal( + finalBalance, + initialBalance + Number(amount) - Number(signatureReward) - 12, + "The destination's balance should not change yet", + ) + }, + TIMEOUT, + ) +}) diff --git a/packages/xrpl/test/integration/transactions/xchainCommit.test.ts b/packages/xrpl/test/integration/transactions/xchainCommit.test.ts new file mode 100644 index 0000000000..f041ac4cec --- /dev/null +++ b/packages/xrpl/test/integration/transactions/xchainCommit.test.ts @@ -0,0 +1,61 @@ +import { assert } from 'chai' + +import { XChainCommit } from '../../../src' +import serverUrl from '../serverUrl' +import { + setupBridge, + setupClient, + teardownClient, + type XrplIntegrationTestContext, +} from '../setup' +import { generateFundedWallet, getXRPBalance, testTransaction } from '../utils' + +// how long before each test case times out +const TIMEOUT = 20000 + +describe('XChainCommit', function () { + let testContext: XrplIntegrationTestContext + + beforeEach(async () => { + testContext = await setupClient(serverUrl) + }) + afterEach(async () => teardownClient(testContext)) + + it( + 'base', + async () => { + const { xchainBridge } = await setupBridge(testContext.client) + + const initialBalance = Number( + await getXRPBalance(testContext.client, xchainBridge.LockingChainDoor), + ) + + // actually test XChainCommit + const wallet2 = await generateFundedWallet(testContext.client) + const amount = 10000000 + const tx: XChainCommit = { + TransactionType: 'XChainCommit', + Account: wallet2.classicAddress, + XChainBridge: xchainBridge, + XChainClaimID: 1, + Amount: amount.toString(), + } + + await testTransaction(testContext.client, tx, wallet2) + + const accountInfoResponse2 = await testContext.client.request({ + command: 'account_info', + account: xchainBridge.LockingChainDoor, + }) + const finalBalance = Number( + accountInfoResponse2.result.account_data.Balance, + ) + assert.equal( + initialBalance + amount, + finalBalance, + "The bridge door's balance should go up by the amount committed", + ) + }, + TIMEOUT, + ) +}) diff --git a/packages/xrpl/test/integration/transactions/xchainCreateBridge.test.ts b/packages/xrpl/test/integration/transactions/xchainCreateBridge.test.ts new file mode 100644 index 0000000000..98137a5d3f --- /dev/null +++ b/packages/xrpl/test/integration/transactions/xchainCreateBridge.test.ts @@ -0,0 +1,55 @@ +import { assert } from 'chai' + +import { XChainCreateBridge } from '../../../src' +import serverUrl from '../serverUrl' +import { + setupClient, + teardownClient, + type XrplIntegrationTestContext, +} from '../setup' +import { GENESIS_ACCOUNT, testTransaction } from '../utils' + +// how long before each test case times out +const TIMEOUT = 20000 + +describe('XChainCreateBridge', function () { + let testContext: XrplIntegrationTestContext + + beforeEach(async () => { + testContext = await setupClient(serverUrl) + }) + afterEach(async () => teardownClient(testContext)) + + it( + 'base', + async () => { + const tx: XChainCreateBridge = { + TransactionType: 'XChainCreateBridge', + Account: testContext.wallet.classicAddress, + XChainBridge: { + LockingChainDoor: testContext.wallet.classicAddress, + LockingChainIssue: { currency: 'XAH' }, + IssuingChainDoor: GENESIS_ACCOUNT, + IssuingChainIssue: { currency: 'XAH' }, + }, + SignatureReward: '200', + MinAccountCreateAmount: '10000000', + } + + await testTransaction(testContext.client, tx, testContext.wallet) + + // confirm that the transaction actually went through + const accountObjectsResponse = await testContext.client.request({ + command: 'account_objects', + account: testContext.wallet.classicAddress, + type: 'bridge', + }) + assert.lengthOf( + accountObjectsResponse.result.account_objects, + 1, + 'Should be exactly one bridge owned by the account', + ) + }, + TIMEOUT, + ) +}) diff --git a/packages/xrpl/test/integration/transactions/xchainCreateClaimID.test.ts b/packages/xrpl/test/integration/transactions/xchainCreateClaimID.test.ts new file mode 100644 index 0000000000..7552f7b9f9 --- /dev/null +++ b/packages/xrpl/test/integration/transactions/xchainCreateClaimID.test.ts @@ -0,0 +1,57 @@ +import { assert } from 'chai' + +import { XChainCreateClaimID, Wallet } from '../../../src' +import serverUrl from '../serverUrl' +import { + setupBridge, + setupClient, + teardownClient, + type XrplIntegrationTestContext, +} from '../setup' +import { generateFundedWallet, testTransaction } from '../utils' + +// how long before each test case times out +const TIMEOUT = 20000 + +describe('XChainCreateClaimID', function () { + let testContext: XrplIntegrationTestContext + + beforeEach(async () => { + testContext = await setupClient(serverUrl) + }) + afterEach(async () => teardownClient(testContext)) + + it( + 'base', + async () => { + const { xchainBridge, signatureReward } = await setupBridge( + testContext.client, + ) + + // actually test XChainCreateClaimID + const wallet2 = await generateFundedWallet(testContext.client) + const otherChainSource = Wallet.generate() + const tx: XChainCreateClaimID = { + TransactionType: 'XChainCreateClaimID', + Account: wallet2.classicAddress, + XChainBridge: xchainBridge, + SignatureReward: signatureReward, + OtherChainSource: otherChainSource.classicAddress, + } + + await testTransaction(testContext.client, tx, wallet2) + + const accountObjectsResponse2 = await testContext.client.request({ + command: 'account_objects', + account: wallet2.classicAddress, + type: 'xchain_owned_claim_id', + }) + assert.lengthOf( + accountObjectsResponse2.result.account_objects, + 1, + 'Should be exactly one claim ID owned by the account', + ) + }, + TIMEOUT, + ) +}) diff --git a/packages/xrpl/test/integration/transactions/xchainModifyBridge.test.ts b/packages/xrpl/test/integration/transactions/xchainModifyBridge.test.ts new file mode 100644 index 0000000000..54e52ccb28 --- /dev/null +++ b/packages/xrpl/test/integration/transactions/xchainModifyBridge.test.ts @@ -0,0 +1,95 @@ +import { assert } from 'chai' + +import { XChainCreateBridge, XChainModifyBridge } from '../../../src' +import { Bridge } from '../../../src/models/ledger' +import serverUrl from '../serverUrl' +import { + setupClient, + teardownClient, + type XrplIntegrationTestContext, +} from '../setup' +import { GENESIS_ACCOUNT, testTransaction } from '../utils' + +// how long before each test case times out +const TIMEOUT = 20000 + +describe('XChainCreateBridge', function () { + let testContext: XrplIntegrationTestContext + + beforeEach(async () => { + testContext = await setupClient(serverUrl) + }) + afterEach(async () => teardownClient(testContext)) + + it( + 'base', + async () => { + const setupTx: XChainCreateBridge = { + TransactionType: 'XChainCreateBridge', + Account: testContext.wallet.classicAddress, + XChainBridge: { + LockingChainDoor: testContext.wallet.classicAddress, + LockingChainIssue: { currency: 'XAH' }, + IssuingChainDoor: GENESIS_ACCOUNT, + IssuingChainIssue: { currency: 'XAH' }, + }, + SignatureReward: '200', + MinAccountCreateAmount: '10000000', + } + + await testTransaction(testContext.client, setupTx, testContext.wallet) + + // confirm that the transaction actually went through + const accountObjectsResponse = await testContext.client.request({ + command: 'account_objects', + account: testContext.wallet.classicAddress, + type: 'bridge', + }) + assert.lengthOf( + accountObjectsResponse.result.account_objects, + 1, + 'Should be exactly one bridge owned by the account', + ) + const initialBridge = accountObjectsResponse.result + .account_objects[0] as unknown as Bridge + assert.equal( + initialBridge.SignatureReward, + '200', + 'Signature reward is incorrect', + ) + + const tx: XChainModifyBridge = { + TransactionType: 'XChainModifyBridge', + Account: testContext.wallet.classicAddress, + XChainBridge: { + LockingChainDoor: testContext.wallet.classicAddress, + LockingChainIssue: { currency: 'XAH' }, + IssuingChainDoor: GENESIS_ACCOUNT, + IssuingChainIssue: { currency: 'XAH' }, + }, + SignatureReward: '300', + } + await testTransaction(testContext.client, tx, testContext.wallet) + + // confirm that the transaction actually went through + const accountObjectsResponse2 = await testContext.client.request({ + command: 'account_objects', + account: testContext.wallet.classicAddress, + type: 'bridge', + }) + assert.lengthOf( + accountObjectsResponse2.result.account_objects, + 1, + 'Should be exactly one bridge owned by the account', + ) + const finalBridge = accountObjectsResponse2.result + .account_objects[0] as unknown as Bridge + assert.equal( + finalBridge.SignatureReward, + '300', + 'Signature reward was not modified', + ) + }, + TIMEOUT, + ) +}) diff --git a/packages/xrpl/test/integration/utils.ts b/packages/xrpl/test/integration/utils.ts index 077200b8dc..a675354b16 100644 --- a/packages/xrpl/test/integration/utils.ts +++ b/packages/xrpl/test/integration/utils.ts @@ -1,7 +1,7 @@ -import { decode } from '@transia/ripple-binary-codec' import { assert } from 'chai' import omit from 'lodash/omit' import throttle from 'lodash/throttle' +import { decode } from 'ripple-binary-codec' import { Client, @@ -10,15 +10,27 @@ import { type SubmitResponse, TimeoutError, NotConnectedError, - unixTimeToRippleTime, + ECDSA, + AccountLinesRequest, + IssuedCurrency, + Currency, } from '../../src' -import { Payment, Transaction } from '../../src/models/transactions' +import { + AMMCreate, + AccountSet, + AccountSetAsfFlags, + Payment, + SubmittableTransaction, + Transaction, + TrustSet, + TrustSetFlags, +} from '../../src/models/transactions' import { hashSignedTx } from '../../src/utils/hashes' -const masterAccount = 'rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh' -const masterSecret = 'snoPBrXtMeMyMHUVTgbuqAfg1SUTb' +export const GENESIS_ACCOUNT = 'rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh' +const GENESIS_SECRET = 'snoPBrXtMeMyMHUVTgbuqAfg1SUTb' -async function sendLedgerAccept(client: Client): Promise { +export async function sendLedgerAccept(client: Client): Promise { return client.connection.request({ command: 'ledger_accept' }) } @@ -76,34 +88,6 @@ export async function ledgerAccept( }) } -/** - * Attempt to get the time after which we can check for the escrow to be finished. - * Sometimes the ledger close_time is in the future, so we need to wait for it to catch up. - * - * @param targetTime - The target wait time, before accounting for current ledger time. - * @param minimumWaitTimeMs - The minimum wait time in milliseconds. - * @param maximumWaitTimeMs - The maximum wait time in milliseconds. - * @returns The wait time in milliseconds. - */ -export function calculateWaitTimeForTransaction( - targetTime: number, - minimumWaitTimeMs = 5000, - maximumWaitTimeMs = 20000, -): number { - const currentTimeUnixMs = Math.floor(new Date().getTime()) - const currentTimeRippleSeconds = unixTimeToRippleTime(currentTimeUnixMs) - const closeTimeCurrentTimeDiffSeconds = currentTimeRippleSeconds - targetTime - const closeTimeCurrentTimeDiffMs = closeTimeCurrentTimeDiffSeconds * 1000 - return Math.max( - minimumWaitTimeMs, - Math.min( - Math.abs(closeTimeCurrentTimeDiffMs) + minimumWaitTimeMs, - // Maximum wait time of 20 seconds - maximumWaitTimeMs, - ), - ) -} - export function subscribeDone(client: Client): void { client.removeAllListeners() } @@ -115,7 +99,7 @@ export async function submitTransaction({ retry = { count: 5, delayMs: 1000 }, }: { client: Client - transaction: Transaction + transaction: SubmittableTransaction wallet: Wallet retry?: { count: number @@ -170,12 +154,12 @@ export async function fundAccount( ): Promise { const payment: Payment = { TransactionType: 'Payment', - Account: masterAccount, + Account: GENESIS_ACCOUNT, Destination: wallet.classicAddress, // 2 times the amount needed for a new account (20 XRP) Amount: '400000000', } - const wal = Wallet.fromSeed(masterSecret) + const wal = Wallet.fromSeed(GENESIS_SECRET, { algorithm: ECDSA.secp256k1 }) const response = await submitTransaction({ client, wallet: wal, @@ -210,10 +194,19 @@ export async function verifySubmittedTransaction( command: 'tx', transaction: hash, }) + // eslint-disable-next-line @typescript-eslint/no-explicit-any -- TODO: handle this API change for 2.0.0 + const decodedTx: any = typeof tx === 'string' ? decode(tx) : tx + if (decodedTx.TransactionType === 'Payment') { + decodedTx.DeliverMax = decodedTx.Amount + delete decodedTx.Amount + } assert(data.result) assert.deepEqual( + // omit(data.result.tx_json, [ + // use API_VERSION 1 omit(data.result, [ + 'ctid', 'date', 'hash', 'inLedger', @@ -221,7 +214,7 @@ export async function verifySubmittedTransaction( 'meta', 'validated', ]), - typeof tx === 'string' ? decode(tx) : tx, + decodedTx, ) if (typeof data.result.meta === 'object') { assert.strictEqual(data.result.meta.TransactionResult, 'tesSUCCESS') @@ -245,7 +238,7 @@ export async function verifySubmittedTransaction( // eslint-disable-next-line max-params -- Test function, many params are needed export async function testTransaction( client: Client, - transaction: Transaction, + transaction: SubmittableTransaction, wallet: Wallet, retry?: { count: number @@ -253,7 +246,6 @@ export async function testTransaction( }, ): Promise { // Accept any un-validated changes. - await ledgerAccept(client) // sign/submit the transaction const response = await submitTransaction({ @@ -292,11 +284,165 @@ export async function testTransaction( export async function getXRPBalance( client: Client, - wallet: Wallet, + account: string | Wallet, ): Promise { + const address: string = + typeof account === 'string' ? account : account.classicAddress const request: AccountInfoRequest = { command: 'account_info', - account: wallet.classicAddress, + account: address, } return (await client.request(request)).result.account_data.Balance } + +/** + * Retrieves the close time of the ledger. + * + * @param client - The client object. + * @returns - A promise that resolves to the close time of the ledger. + * + * @example + * const closeTime = await getLedgerCloseTime(client); + * console.log(closeTime); // Output: 1626424978 + */ +export async function getLedgerCloseTime(client: Client): Promise { + const CLOSE_TIME: number = ( + await client.request({ + command: 'ledger', + ledger_index: 'validated', + }) + ).result.ledger.close_time + + return CLOSE_TIME +} + +/** + * Waits for the ledger time to reach a specific value and forces ledger progress if necessary. + * + * @param client - The client object. + * @param ledgerTime - The target ledger time. + * @param [retries=20] - The number of retries before throwing an error. + * @returns - A promise that resolves when the ledger time reaches the target value. + * + * @example + * try { + * await waitForAndForceProgressLedgerTime(client, 1626424978, 10); + * console.log('Ledger time reached.'); // Output: Ledger time reached. + * } catch (error) { + * console.error(error); + * } + */ +export async function waitForAndForceProgressLedgerTime( + client: Client, + ledgerTime: number, + retries = 20, +): Promise { + async function getCloseTime(): Promise { + const CLOSE_TIME: number = await getLedgerCloseTime(client) + if (CLOSE_TIME >= ledgerTime) { + return true + } + + return false + } + + let retryCounter = retries || 0 + + while (retryCounter > 0) { + // eslint-disable-next-line no-await-in-loop -- Necessary for retries + if (await getCloseTime()) { + return + } + + // eslint-disable-next-line no-await-in-loop -- Necessary for retries + await ledgerAccept(client) + retryCounter -= 1 + } + + throw new Error(`Ledger time not reached after ${retries} retries.`) +} + +export async function getIOUBalance( + client: Client, + wallet: Wallet, + currency: IssuedCurrency, +): Promise { + const request: AccountLinesRequest = { + command: 'account_lines', + account: wallet.classicAddress, + peer: currency.issuer, + } + return (await client.request(request)).result.lines[0].balance +} + +export async function createAMMPool(client: Client): Promise<{ + issuerWallet: Wallet + lpWallet: Wallet + asset: Currency + asset2: Currency +}> { + const lpWallet = await generateFundedWallet(client) + const issuerWallet = await generateFundedWallet(client) + const currencyCode = 'USD' + + const accountSetTx: AccountSet = { + TransactionType: 'AccountSet', + Account: issuerWallet.classicAddress, + SetFlag: AccountSetAsfFlags.asfDefaultRipple, + } + + await testTransaction(client, accountSetTx, issuerWallet) + + const trustSetTx: TrustSet = { + TransactionType: 'TrustSet', + Flags: TrustSetFlags.tfClearNoRipple, + Account: lpWallet.classicAddress, + LimitAmount: { + currency: currencyCode, + issuer: issuerWallet.classicAddress, + value: '1000', + }, + } + + await testTransaction(client, trustSetTx, lpWallet) + + const paymentTx: Payment = { + TransactionType: 'Payment', + Account: issuerWallet.classicAddress, + Destination: lpWallet.classicAddress, + Amount: { + currency: currencyCode, + issuer: issuerWallet.classicAddress, + value: '500', + }, + } + + await testTransaction(client, paymentTx, issuerWallet) + + const ammCreateTx: AMMCreate = { + TransactionType: 'AMMCreate', + Account: lpWallet.classicAddress, + Amount: '250', + Amount2: { + currency: currencyCode, + issuer: issuerWallet.classicAddress, + value: '250', + }, + TradingFee: 12, + } + + await testTransaction(client, ammCreateTx, lpWallet) + + const asset: Currency = { currency: 'XAH' } + const asset2: Currency = { + currency: currencyCode, + issuer: issuerWallet.classicAddress, + } + + return { + issuerWallet, + lpWallet, + asset, + asset2, + } +} diff --git a/packages/xrpl/test/integration/wallet.test.ts b/packages/xrpl/test/integration/wallet.test.ts deleted file mode 100644 index 0accc4d583..0000000000 --- a/packages/xrpl/test/integration/wallet.test.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { Wallet } from '../../src' - -const walletSecret = 'shK6YXzwYfnFVn3YZSaMh5zuAddKx' - -const wallet = Wallet.fromSeed(walletSecret) - -export default wallet diff --git a/packages/xrpl/test/localIntegrationRunner.html b/packages/xrpl/test/localIntegrationRunner.html deleted file mode 100644 index 8494d8d7b5..0000000000 --- a/packages/xrpl/test/localIntegrationRunner.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - -
    -
    - - - - - - - - - - diff --git a/packages/xrpl/test/mockRippledTest.test.ts b/packages/xrpl/test/mockRippledTest.test.ts index 1c6f717e39..49140e6740 100644 --- a/packages/xrpl/test/mockRippledTest.test.ts +++ b/packages/xrpl/test/mockRippledTest.test.ts @@ -2,6 +2,7 @@ import { assert } from 'chai' import { RippledError } from '../src' +import rippledFixtures from './fixtures/rippled' import { setupClient, teardownClient, @@ -22,7 +23,11 @@ describe('mock rippled tests', function () { } await assertRejects( - testContext.client.request({ command: 'server_info' }), + testContext.client.request({ + command: 'account_info', + account: + rippledFixtures.account_info.normal.result.account_data.Account, + }), RippledError, ) }) @@ -44,7 +49,11 @@ describe('mock rippled tests', function () { return { data: request } }) await assertRejects( - testContext.client.request({ command: 'account_info', account: '' }), + testContext.client.request({ + command: 'account_info', + account: + rippledFixtures.account_info.normal.result.account_data.Account, + }), RippledError, ) }) diff --git a/packages/xrpl/test/models/AMMBid.test.ts b/packages/xrpl/test/models/AMMBid.test.ts new file mode 100644 index 0000000000..6d75a459e5 --- /dev/null +++ b/packages/xrpl/test/models/AMMBid.test.ts @@ -0,0 +1,176 @@ +import { assert } from 'chai' + +import { validate, ValidationError } from '../../src' +import { validateAMMBid } from '../../src/models/transactions/AMMBid' + +/** + * AMMBid Transaction Verification Testing. + * + * Providing runtime verification testing for each specific transaction type. + */ +describe('AMMBid', function () { + let bid + + beforeEach(function () { + bid = { + TransactionType: 'AMMBid', + Account: 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm', + Asset: { + currency: 'XAH', + }, + Asset2: { + currency: 'ETH', + issuer: 'rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd', + }, + BidMin: { + currency: '039C99CD9AB0B70B32ECDA51EAAE471625608EA2', + issuer: 'rE54zDvgnghAoPopCgvtiqWNq3dU5y836S', + value: '50', + }, + BidMax: { + currency: '039C99CD9AB0B70B32ECDA51EAAE471625608EA2', + issuer: 'rE54zDvgnghAoPopCgvtiqWNq3dU5y836S', + value: '100', + }, + AuthAccounts: [ + { + AuthAccount: { + Account: 'rNZdsTBP5tH1M6GHC6bTreHAp6ouP8iZSh', + }, + }, + { + AuthAccount: { + Account: 'rfpFv97Dwu89FTyUwPjtpZBbuZxTqqgTmH', + }, + }, + { + AuthAccount: { + Account: 'rzzYHPGb8Pa64oqxCzmuffm122bitq3Vb', + }, + }, + { + AuthAccount: { + Account: 'rhwxHxaHok86fe4LykBom1jSJ3RYQJs1h4', + }, + }, + ], + Sequence: 1337, + } as any + }) + + it(`verifies valid AMMBid`, function () { + assert.doesNotThrow(() => validateAMMBid(bid)) + assert.doesNotThrow(() => validate(bid)) + }) + + it(`throws w/ missing field Asset`, function () { + delete bid.Asset + const errorMessage = 'AMMBid: missing field Asset' + assert.throws(() => validateAMMBid(bid), ValidationError, errorMessage) + assert.throws(() => validate(bid), ValidationError, errorMessage) + }) + + it(`throws w/ Asset must be a Currency`, function () { + bid.Asset = 1234 + const errorMessage = 'AMMBid: Asset must be a Currency' + assert.throws(() => validateAMMBid(bid), ValidationError, errorMessage) + assert.throws(() => validate(bid), ValidationError, errorMessage) + }) + + it(`throws w/ missing field Asset2`, function () { + delete bid.Asset2 + const errorMessage = 'AMMBid: missing field Asset2' + assert.throws(() => validateAMMBid(bid), ValidationError, errorMessage) + assert.throws(() => validate(bid), ValidationError, errorMessage) + }) + + it(`throws w/ Asset2 must be a Currency`, function () { + bid.Asset2 = 1234 + const errorMessage = 'AMMBid: Asset2 must be a Currency' + assert.throws(() => validateAMMBid(bid), ValidationError, errorMessage) + assert.throws(() => validate(bid), ValidationError, errorMessage) + }) + + it(`throws w/ BidMin must be an Amount`, function () { + bid.BidMin = 5 + const errorMessage = 'AMMBid: BidMin must be an Amount' + assert.throws(() => validateAMMBid(bid), ValidationError, errorMessage) + assert.throws(() => validate(bid), ValidationError, errorMessage) + }) + + it(`throws w/ BidMax must be an Amount`, function () { + bid.BidMax = 10 + const errorMessage = 'AMMBid: BidMax must be an Amount' + assert.throws(() => validateAMMBid(bid), ValidationError, errorMessage) + assert.throws(() => validate(bid), ValidationError, errorMessage) + }) + + it(`throws w/ AuthAccounts length must not be greater than 4`, function () { + bid.AuthAccounts.push({ + AuthAccount: { + Account: 'r3X6noRsvaLapAKCG78zAtWcbhB3sggS1s', + }, + }) + const errorMessage = + 'AMMBid: AuthAccounts length must not be greater than 4' + assert.throws(() => validateAMMBid(bid), ValidationError, errorMessage) + assert.throws(() => validate(bid), ValidationError, errorMessage) + }) + + it(`throws w/ AuthAccounts must be an AuthAccount array`, function () { + bid.AuthAccounts = 1234 + const errorMessage = 'AMMBid: AuthAccounts must be an AuthAccount array' + assert.throws(() => validateAMMBid(bid), ValidationError, errorMessage) + assert.throws(() => validate(bid), ValidationError, errorMessage) + }) + + it(`throws w/ invalid AuthAccounts when AuthAccount is null`, function () { + bid.AuthAccounts[0] = { + AuthAccount: null, + } + const errorMessage = 'AMMBid: invalid AuthAccounts' + assert.throws(() => validateAMMBid(bid), ValidationError, errorMessage) + assert.throws(() => validate(bid), ValidationError, errorMessage) + }) + + it(`throws w/ invalid AuthAccounts when AuthAccount is undefined`, function () { + bid.AuthAccounts[0] = { + AuthAccount: undefined, + } + const errorMessage = 'AMMBid: invalid AuthAccounts' + assert.throws(() => validateAMMBid(bid), ValidationError, errorMessage) + assert.throws(() => validate(bid), ValidationError, errorMessage) + }) + + it(`throws w/ invalid AuthAccounts when AuthAccount is not an object`, function () { + bid.AuthAccounts[0] = { + AuthAccount: 1234, + } + const errorMessage = 'AMMBid: invalid AuthAccounts' + assert.throws(() => validateAMMBid(bid), ValidationError, errorMessage) + assert.throws(() => validate(bid), ValidationError, errorMessage) + }) + + it(`throws w/ invalid AuthAccounts when AuthAccount.Account is not a string`, function () { + bid.AuthAccounts[0] = { + AuthAccount: { + Account: 1234, + }, + } + const errorMessage = 'AMMBid: invalid AuthAccounts' + assert.throws(() => validateAMMBid(bid), ValidationError, errorMessage) + assert.throws(() => validate(bid), ValidationError, errorMessage) + }) + + it(`throws w/ AuthAccounts must not include sender's address`, function () { + bid.AuthAccounts[0] = { + AuthAccount: { + Account: bid.Account, + }, + } + const errorMessage = + "AMMBid: AuthAccounts must not include sender's address" + assert.throws(() => validateAMMBid(bid), ValidationError, errorMessage) + assert.throws(() => validate(bid), ValidationError, errorMessage) + }) +}) diff --git a/packages/xrpl/test/models/AMMCreate.test.ts b/packages/xrpl/test/models/AMMCreate.test.ts new file mode 100644 index 0000000000..56242140ab --- /dev/null +++ b/packages/xrpl/test/models/AMMCreate.test.ts @@ -0,0 +1,121 @@ +import { assert } from 'chai' + +import { validate, ValidationError } from '../../src' +import { validateAMMCreate } from '../../src/models/transactions/AMMCreate' + +/** + * AMMCreate Transaction Verification Testing. + * + * Providing runtime verification testing for each specific transaction type. + */ +describe('AMMCreate', function () { + let ammCreate + + beforeEach(function () { + ammCreate = { + TransactionType: 'AMMCreate', + Account: 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm', + Amount: '1000', + Amount2: { + currency: 'USD', + issuer: 'rPyfep3gcLzkosKC9XiE77Y8DZWG6iWDT9', + value: '1000', + }, + TradingFee: 12, + Sequence: 1337, + } as any + }) + + it(`verifies valid AMMCreate`, function () { + assert.doesNotThrow(() => validateAMMCreate(ammCreate)) + assert.doesNotThrow(() => validate(ammCreate)) + }) + + it(`throws w/ missing Amount`, function () { + delete ammCreate.Amount + const errorMessage = 'AMMCreate: missing field Amount' + assert.throws( + () => validateAMMCreate(ammCreate), + ValidationError, + errorMessage, + ) + assert.throws(() => validate(ammCreate), ValidationError, errorMessage) + }) + + it(`throws w/ Amount must be an Amount`, function () { + ammCreate.Amount = 1000 + const errorMessage = 'AMMCreate: Amount must be an Amount' + assert.throws( + () => validateAMMCreate(ammCreate), + ValidationError, + errorMessage, + ) + assert.throws(() => validate(ammCreate), ValidationError, errorMessage) + }) + + it(`throws w/ missing Amount2`, function () { + delete ammCreate.Amount2 + const errorMessage = 'AMMCreate: missing field Amount2' + assert.throws( + () => validateAMMCreate(ammCreate), + ValidationError, + errorMessage, + ) + assert.throws(() => validate(ammCreate), ValidationError, errorMessage) + }) + + it(`throws w/ Amount2 must be an Amount`, function () { + ammCreate.Amount2 = 1000 + const errorMessage = 'AMMCreate: Amount2 must be an Amount' + assert.throws( + () => validateAMMCreate(ammCreate), + ValidationError, + errorMessage, + ) + assert.throws(() => validate(ammCreate), ValidationError, errorMessage) + }) + + it(`throws w/ missing TradingFee`, function () { + delete ammCreate.TradingFee + const errorMessage = 'AMMCreate: missing field TradingFee' + assert.throws( + () => validateAMMCreate(ammCreate), + ValidationError, + errorMessage, + ) + assert.throws(() => validate(ammCreate), ValidationError, errorMessage) + }) + + it(`throws w/ TradingFee must be a number`, function () { + ammCreate.TradingFee = '12' + const errorMessage = 'AMMCreate: TradingFee must be a number' + assert.throws( + () => validateAMMCreate(ammCreate), + ValidationError, + errorMessage, + ) + assert.throws(() => validate(ammCreate), ValidationError, errorMessage) + }) + + it(`throws when TradingFee is greater than 1000`, function () { + ammCreate.TradingFee = 1001 + const errorMessage = 'AMMCreate: TradingFee must be between 0 and 1000' + assert.throws( + () => validateAMMCreate(ammCreate), + ValidationError, + errorMessage, + ) + assert.throws(() => validate(ammCreate), ValidationError, errorMessage) + }) + + it(`throws when TradingFee is a negative number`, function () { + ammCreate.TradingFee = -1 + const errorMessage = 'AMMCreate: TradingFee must be between 0 and 1000' + assert.throws( + () => validateAMMCreate(ammCreate), + ValidationError, + errorMessage, + ) + assert.throws(() => validate(ammCreate), ValidationError, errorMessage) + }) +}) diff --git a/packages/xrpl/test/models/AMMDelete.test.ts b/packages/xrpl/test/models/AMMDelete.test.ts new file mode 100644 index 0000000000..3935058f65 --- /dev/null +++ b/packages/xrpl/test/models/AMMDelete.test.ts @@ -0,0 +1,78 @@ +import { assert } from 'chai' + +import { validate, ValidationError } from '../../src' +import { validateAMMDelete } from '../../src/models/transactions/AMMDelete' + +/** + * AMMDelete Transaction Verification Testing. + * + * Providing runtime verification testing for each specific transaction type. + */ +describe('AMMDelete', function () { + let ammDelete + + beforeEach(function () { + ammDelete = { + TransactionType: 'AMMDelete', + Account: 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm', + Asset: { + currency: 'XAH', + }, + Asset2: { + currency: 'ETH', + issuer: 'rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd', + }, + Sequence: 1337, + Flags: 0, + } as any + }) + + it(`verifies valid AMMDelete`, function () { + assert.doesNotThrow(() => validateAMMDelete(ammDelete)) + assert.doesNotThrow(() => validate(ammDelete)) + }) + + it(`throws w/ missing field Asset`, function () { + delete ammDelete.Asset + const errorMessage = 'AMMDelete: missing field Asset' + assert.throws( + () => validateAMMDelete(ammDelete), + ValidationError, + errorMessage, + ) + assert.throws(() => validate(ammDelete), ValidationError, errorMessage) + }) + + it(`throws w/ Asset must be a Currency`, function () { + ammDelete.Asset = 1234 + const errorMessage = 'AMMDelete: Asset must be a Currency' + assert.throws( + () => validateAMMDelete(ammDelete), + ValidationError, + errorMessage, + ) + assert.throws(() => validate(ammDelete), ValidationError, errorMessage) + }) + + it(`throws w/ missing field Asset2`, function () { + delete ammDelete.Asset2 + const errorMessage = 'AMMDelete: missing field Asset2' + assert.throws( + () => validateAMMDelete(ammDelete), + ValidationError, + errorMessage, + ) + assert.throws(() => validate(ammDelete), ValidationError, errorMessage) + }) + + it(`throws w/ Asset2 must be a Currency`, function () { + ammDelete.Asset2 = 1234 + const errorMessage = 'AMMDelete: Asset2 must be a Currency' + assert.throws( + () => validateAMMDelete(ammDelete), + ValidationError, + errorMessage, + ) + assert.throws(() => validate(ammDelete), ValidationError, errorMessage) + }) +}) diff --git a/packages/xrpl/test/models/AMMDeposit.test.ts b/packages/xrpl/test/models/AMMDeposit.test.ts new file mode 100644 index 0000000000..1ceea7eaa9 --- /dev/null +++ b/packages/xrpl/test/models/AMMDeposit.test.ts @@ -0,0 +1,204 @@ +/* eslint-disable no-bitwise -- bitwise necessary for enabling flags */ +import { assert } from 'chai' + +import { AMMDepositFlags, validate, ValidationError } from '../../src' +import { validateAMMDeposit } from '../../src/models/transactions/AMMDeposit' + +/** + * AMMDeposit Transaction Verification Testing. + * + * Providing runtime verification testing for each specific transaction type. + */ +describe('AMMDeposit', function () { + const LPTokenOut = { + currency: 'B3813FCAB4EE68B3D0D735D6849465A9113EE048', + issuer: 'rH438jEAzTs5PYtV6CHZqpDpwCKQmPW9Cg', + value: '1000', + } + let deposit + + beforeEach(function () { + deposit = { + TransactionType: 'AMMDeposit', + Account: 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm', + Asset: { + currency: 'XAH', + }, + Asset2: { + currency: 'ETH', + issuer: 'rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd', + }, + Sequence: 1337, + Flags: 0, + } as any + }) + + it(`verifies valid AMMDeposit with LPTokenOut`, function () { + deposit.LPTokenOut = LPTokenOut + deposit.Flags |= AMMDepositFlags.tfLPToken + assert.doesNotThrow(() => validateAMMDeposit(deposit)) + assert.doesNotThrow(() => validate(deposit)) + }) + + it(`verifies valid AMMDeposit with Amount`, function () { + deposit.Amount = '1000' + deposit.Flags |= AMMDepositFlags.tfSingleAsset + assert.doesNotThrow(() => validateAMMDeposit(deposit)) + assert.doesNotThrow(() => validate(deposit)) + }) + + it(`verifies valid AMMDeposit with Amount and Amount2`, function () { + deposit.Amount = '1000' + deposit.Amount2 = { + currency: 'ETH', + issuer: 'rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd', + value: '2.5', + } + deposit.Flags |= AMMDepositFlags.tfTwoAsset + assert.doesNotThrow(() => validateAMMDeposit(deposit)) + assert.doesNotThrow(() => validate(deposit)) + }) + + it(`verifies valid AMMDeposit with Amount and LPTokenOut`, function () { + deposit.Amount = '1000' + deposit.LPTokenOut = LPTokenOut + deposit.Flags |= AMMDepositFlags.tfOneAssetLPToken + assert.doesNotThrow(() => validateAMMDeposit(deposit)) + assert.doesNotThrow(() => validate(deposit)) + }) + + it(`verifies valid AMMDeposit with Amount and EPrice`, function () { + deposit.Amount = '1000' + deposit.EPrice = '25' + deposit.Flags |= AMMDepositFlags.tfLimitLPToken + assert.doesNotThrow(() => validateAMMDeposit(deposit)) + assert.doesNotThrow(() => validate(deposit)) + }) + + it(`throws w/ missing field Asset`, function () { + delete deposit.Asset + const errorMessage = 'AMMDeposit: missing field Asset' + assert.throws( + () => validateAMMDeposit(deposit), + ValidationError, + errorMessage, + ) + assert.throws(() => validate(deposit), ValidationError, errorMessage) + }) + + it(`throws w/ Asset must be a Currency`, function () { + deposit.Asset = 1234 + const errorMessage = 'AMMDeposit: Asset must be a Currency' + assert.throws( + () => validateAMMDeposit(deposit), + ValidationError, + errorMessage, + ) + assert.throws(() => validate(deposit), ValidationError, errorMessage) + }) + + it(`throws w/ missing field Asset2`, function () { + delete deposit.Asset2 + const errorMessage = 'AMMDeposit: missing field Asset2' + assert.throws( + () => validateAMMDeposit(deposit), + ValidationError, + errorMessage, + ) + assert.throws(() => validate(deposit), ValidationError, errorMessage) + }) + + it(`throws w/ Asset2 must be a Currency`, function () { + deposit.Asset2 = 1234 + const errorMessage = 'AMMDeposit: Asset2 must be a Currency' + assert.throws( + () => validateAMMDeposit(deposit), + ValidationError, + errorMessage, + ) + assert.throws(() => validate(deposit), ValidationError, errorMessage) + }) + + it(`throws w/ must set at least LPTokenOut or Amount`, function () { + const errorMessage = 'AMMDeposit: must set at least LPTokenOut or Amount' + assert.throws( + () => validateAMMDeposit(deposit), + ValidationError, + errorMessage, + ) + assert.throws(() => validate(deposit), ValidationError, errorMessage) + }) + + it(`throws w/ must set Amount with Amount2`, function () { + deposit.Amount2 = { + currency: 'ETH', + issuer: 'rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd', + value: '2.5', + } + const errorMessage = 'AMMDeposit: must set Amount with Amount2' + assert.throws( + () => validateAMMDeposit(deposit), + ValidationError, + errorMessage, + ) + assert.throws(() => validate(deposit), ValidationError, errorMessage) + }) + + it(`throws w/ must set Amount with EPrice`, function () { + deposit.EPrice = '25' + const errorMessage = 'AMMDeposit: must set Amount with EPrice' + assert.throws( + () => validateAMMDeposit(deposit), + ValidationError, + errorMessage, + ) + assert.throws(() => validate(deposit), ValidationError, errorMessage) + }) + + it(`throws w/ LPTokenOut must be an IssuedCurrencyAmount`, function () { + deposit.LPTokenOut = 1234 + const errorMessage = + 'AMMDeposit: LPTokenOut must be an IssuedCurrencyAmount' + assert.throws( + () => validateAMMDeposit(deposit), + ValidationError, + errorMessage, + ) + assert.throws(() => validate(deposit), ValidationError, errorMessage) + }) + + it(`throws w/ Amount must be an Amount`, function () { + deposit.Amount = 1234 + const errorMessage = 'AMMDeposit: Amount must be an Amount' + assert.throws( + () => validateAMMDeposit(deposit), + ValidationError, + errorMessage, + ) + assert.throws(() => validate(deposit), ValidationError, errorMessage) + }) + + it(`throws w/ Amount2 must be an Amount`, function () { + deposit.Amount = '1000' + deposit.Amount2 = 1234 + const errorMessage = 'AMMDeposit: Amount2 must be an Amount' + assert.throws( + () => validateAMMDeposit(deposit), + ValidationError, + errorMessage, + ) + assert.throws(() => validate(deposit), ValidationError, errorMessage) + }) + + it(`throws w/ EPrice must be an Amount`, function () { + deposit.Amount = '1000' + deposit.EPrice = 1234 + const errorMessage = 'AMMDeposit: EPrice must be an Amount' + assert.throws( + () => validateAMMDeposit(deposit), + ValidationError, + errorMessage, + ) + assert.throws(() => validate(deposit), ValidationError, errorMessage) + }) +}) diff --git a/packages/xrpl/test/models/AMMVote.test.ts b/packages/xrpl/test/models/AMMVote.test.ts new file mode 100644 index 0000000000..3f63d53596 --- /dev/null +++ b/packages/xrpl/test/models/AMMVote.test.ts @@ -0,0 +1,90 @@ +import { assert } from 'chai' + +import { validate, ValidationError } from '../../src' +import { validateAMMVote } from '../../src/models/transactions/AMMVote' + +/** + * AMMVote Transaction Verification Testing. + * + * Providing runtime verification testing for each specific transaction type. + */ +describe('AMMVote', function () { + let vote + + beforeEach(function () { + vote = { + TransactionType: 'AMMVote', + Account: 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm', + Asset: { + currency: 'XAH', + }, + Asset2: { + currency: 'ETH', + issuer: 'rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd', + }, + TradingFee: 25, + Sequence: 1337, + } as any + }) + + it(`verifies valid AMMVote`, function () { + assert.doesNotThrow(() => validateAMMVote(vote)) + assert.doesNotThrow(() => validate(vote)) + }) + + it(`throws w/ missing field Asset`, function () { + delete vote.Asset + const errorMessage = 'AMMVote: missing field Asset' + assert.throws(() => validateAMMVote(vote), ValidationError, errorMessage) + assert.throws(() => validate(vote), ValidationError, errorMessage) + }) + + it(`throws w/ Asset must be a Currency`, function () { + vote.Asset = 1234 + const errorMessage = 'AMMVote: Asset must be a Currency' + assert.throws(() => validateAMMVote(vote), ValidationError, errorMessage) + assert.throws(() => validate(vote), ValidationError, errorMessage) + }) + + it(`throws w/ missing field Asset2`, function () { + delete vote.Asset2 + const errorMessage = 'AMMVote: missing field Asset2' + assert.throws(() => validateAMMVote(vote), ValidationError, errorMessage) + assert.throws(() => validate(vote), ValidationError, errorMessage) + }) + + it(`throws w/ Asset2 must be a Currency`, function () { + vote.Asset2 = 1234 + const errorMessage = 'AMMVote: Asset2 must be a Currency' + assert.throws(() => validateAMMVote(vote), ValidationError, errorMessage) + assert.throws(() => validate(vote), ValidationError, errorMessage) + }) + + it(`throws w/ missing field TradingFee`, function () { + delete vote.TradingFee + const errorMessage = 'AMMVote: missing field TradingFee' + assert.throws(() => validateAMMVote(vote), ValidationError, errorMessage) + assert.throws(() => validate(vote), ValidationError, errorMessage) + }) + + it(`throws w/ TradingFee must be a number`, function () { + vote.TradingFee = '25' + const errorMessage = 'AMMVote: TradingFee must be a number' + assert.throws(() => validateAMMVote(vote), ValidationError, errorMessage) + assert.throws(() => validate(vote), ValidationError, errorMessage) + }) + + it(`throws when TradingFee is greater than AMM_MAX_TRADING_FEE`, function () { + vote.TradingFee = 1001 + const errorMessage = 'AMMVote: TradingFee must be between 0 and 1000' + assert.throws(() => validateAMMVote(vote), ValidationError, errorMessage) + assert.throws(() => validate(vote), ValidationError, errorMessage) + }) + + it(`throws when TradingFee is a negative number`, function () { + vote.TradingFee = -1 + const errorMessage = 'AMMVote: TradingFee must be between 0 and 1000' + assert.throws(() => validateAMMVote(vote), ValidationError, errorMessage) + assert.throws(() => validate(vote), ValidationError, errorMessage) + }) +}) diff --git a/packages/xrpl/test/models/AMMWithdraw.test.ts b/packages/xrpl/test/models/AMMWithdraw.test.ts new file mode 100644 index 0000000000..c355be1680 --- /dev/null +++ b/packages/xrpl/test/models/AMMWithdraw.test.ts @@ -0,0 +1,207 @@ +/* eslint-disable no-bitwise -- bitwise necessary for enabling flags */ +import { assert } from 'chai' + +import { AMMWithdrawFlags, validate, ValidationError } from '../../src' +import { validateAMMWithdraw } from '../../src/models/transactions/AMMWithdraw' + +/** + * AMMWithdraw Transaction Verification Testing. + * + * Providing runtime verification testing for each specific transaction type. + */ +describe('AMMWithdraw', function () { + const LPTokenIn = { + currency: 'B3813FCAB4EE68B3D0D735D6849465A9113EE048', + issuer: 'rH438jEAzTs5PYtV6CHZqpDpwCKQmPW9Cg', + value: '1000', + } + let withdraw + + beforeEach(function () { + withdraw = { + TransactionType: 'AMMWithdraw', + Account: 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm', + Asset: { + currency: 'XAH', + }, + Asset2: { + currency: 'ETH', + issuer: 'rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd', + }, + Sequence: 1337, + Flags: 0, + } as any + }) + + it(`verifies valid AMMWithdraw with LPTokenIn`, function () { + withdraw.LPTokenIn = LPTokenIn + withdraw.Flags |= AMMWithdrawFlags.tfLPToken + assert.doesNotThrow(() => validateAMMWithdraw(withdraw)) + assert.doesNotThrow(() => validate(withdraw)) + }) + + it(`verifies valid AMMWithdraw with Amount`, function () { + withdraw.Amount = '1000' + withdraw.Flags |= AMMWithdrawFlags.tfSingleAsset + assert.doesNotThrow(() => validateAMMWithdraw(withdraw)) + assert.doesNotThrow(() => validate(withdraw)) + }) + + it(`verifies valid AMMWithdraw with Amount and Amount2`, function () { + withdraw.Amount = '1000' + withdraw.Amount2 = { + currency: 'ETH', + issuer: 'rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd', + value: '2.5', + } + withdraw.Flags |= AMMWithdrawFlags.tfTwoAsset + assert.doesNotThrow(() => validateAMMWithdraw(withdraw)) + assert.doesNotThrow(() => validate(withdraw)) + }) + + it(`verifies valid AMMWithdraw with Amount and LPTokenIn`, function () { + withdraw.Amount = '1000' + withdraw.LPTokenIn = LPTokenIn + withdraw.Flags |= AMMWithdrawFlags.tfOneAssetLPToken + assert.doesNotThrow(() => validateAMMWithdraw(withdraw)) + assert.doesNotThrow(() => validate(withdraw)) + }) + + it(`verifies valid AMMWithdraw with Amount and EPrice`, function () { + withdraw.Amount = '1000' + withdraw.EPrice = '25' + withdraw.Flags |= AMMWithdrawFlags.tfLimitLPToken + assert.doesNotThrow(() => validateAMMWithdraw(withdraw)) + assert.doesNotThrow(() => validate(withdraw)) + }) + + it(`verifies valid AMMWithdraw one asset withdraw all`, function () { + withdraw.Amount = '1000' + withdraw.Flags |= AMMWithdrawFlags.tfOneAssetWithdrawAll + assert.doesNotThrow(() => validateAMMWithdraw(withdraw)) + assert.doesNotThrow(() => validate(withdraw)) + }) + + it(`verifies valid AMMWithdraw withdraw all`, function () { + withdraw.Flags |= AMMWithdrawFlags.tfWithdrawAll + assert.doesNotThrow(() => validateAMMWithdraw(withdraw)) + assert.doesNotThrow(() => validate(withdraw)) + }) + + it(`throws w/ missing field Asset`, function () { + delete withdraw.Asset + const errorMessage = 'AMMWithdraw: missing field Asset' + assert.throws( + () => validateAMMWithdraw(withdraw), + ValidationError, + errorMessage, + ) + assert.throws(() => validate(withdraw), ValidationError, errorMessage) + }) + + it(`throws w/ Asset must be a Currency`, function () { + withdraw.Asset = 1234 + const errorMessage = 'AMMWithdraw: Asset must be a Currency' + assert.throws( + () => validateAMMWithdraw(withdraw), + ValidationError, + errorMessage, + ) + assert.throws(() => validate(withdraw), ValidationError, errorMessage) + }) + + it(`throws w/ missing field Asset2`, function () { + delete withdraw.Asset2 + const errorMessage = 'AMMWithdraw: missing field Asset2' + assert.throws( + () => validateAMMWithdraw(withdraw), + ValidationError, + errorMessage, + ) + assert.throws(() => validate(withdraw), ValidationError, errorMessage) + }) + + it(`throws w/ Asset2 must be a Currency`, function () { + withdraw.Asset2 = 1234 + const errorMessage = 'AMMWithdraw: Asset2 must be a Currency' + assert.throws( + () => validateAMMWithdraw(withdraw), + ValidationError, + errorMessage, + ) + assert.throws(() => validate(withdraw), ValidationError, errorMessage) + }) + + it(`throws w/ must set Amount with Amount2`, function () { + withdraw.Amount2 = { + currency: 'ETH', + issuer: 'rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd', + value: '2.5', + } + const errorMessage = 'AMMWithdraw: must set Amount with Amount2' + assert.throws( + () => validateAMMWithdraw(withdraw), + ValidationError, + errorMessage, + ) + assert.throws(() => validate(withdraw), ValidationError, errorMessage) + }) + + it(`throws w/ must set Amount with EPrice`, function () { + withdraw.EPrice = '25' + const errorMessage = 'AMMWithdraw: must set Amount with EPrice' + assert.throws( + () => validateAMMWithdraw(withdraw), + ValidationError, + errorMessage, + ) + assert.throws(() => validate(withdraw), ValidationError, errorMessage) + }) + + it(`throws w/ LPTokenIn must be an IssuedCurrencyAmount`, function () { + withdraw.LPTokenIn = 1234 + const errorMessage = + 'AMMWithdraw: LPTokenIn must be an IssuedCurrencyAmount' + assert.throws( + () => validateAMMWithdraw(withdraw), + ValidationError, + errorMessage, + ) + assert.throws(() => validate(withdraw), ValidationError, errorMessage) + }) + + it(`throws w/ Amount must be an Amount`, function () { + withdraw.Amount = 1234 + const errorMessage = 'AMMWithdraw: Amount must be an Amount' + assert.throws( + () => validateAMMWithdraw(withdraw), + ValidationError, + errorMessage, + ) + assert.throws(() => validate(withdraw), ValidationError, errorMessage) + }) + + it(`throws w/ Amount2 must be an Amount`, function () { + withdraw.Amount = '1000' + withdraw.Amount2 = 1234 + const errorMessage = 'AMMWithdraw: Amount2 must be an Amount' + assert.throws( + () => validateAMMWithdraw(withdraw), + ValidationError, + errorMessage, + ) + assert.throws(() => validate(withdraw), ValidationError, errorMessage) + }) + + it(`throws w/ EPrice must be an Amount`, function () { + withdraw.Amount = '1000' + withdraw.EPrice = 1234 + const errorMessage = 'AMMWithdraw: EPrice must be an Amount' + assert.throws( + () => validateAMMWithdraw(withdraw), + ValidationError, + errorMessage, + ) + assert.throws(() => validate(withdraw), ValidationError, errorMessage) + }) +}) diff --git a/packages/xrpl/test/models/DIDDelete.test.ts b/packages/xrpl/test/models/DIDDelete.test.ts new file mode 100644 index 0000000000..7248579b43 --- /dev/null +++ b/packages/xrpl/test/models/DIDDelete.test.ts @@ -0,0 +1,34 @@ +import { assert } from 'chai' + +import { validate } from '../../src' +import { validateDIDDelete } from '../../src/models/transactions/DIDDelete' + +/** + * DIDDelete Transaction Verification Testing. + * + * Providing runtime verification testing for each specific transaction type. + */ +describe('DIDDelete', function () { + let tx + + beforeEach(function () { + tx = { + Account: 'rfmDuhDyLGgx94qiwf3YF8BUV5j6KSvE8', + Fee: '10', + Flags: 2147483648, + Sequence: 4, + TransactionType: 'DIDDelete', + } as any + }) + + it('verifies valid DIDDelete', function () { + assert.doesNotThrow(() => validateDIDDelete(tx)) + assert.doesNotThrow(() => validate(tx)) + }) + + it('throws on invalid DIDDelete', function () { + tx.FakeField = 'blah' + assert.doesNotThrow(() => validateDIDDelete(tx)) + assert.doesNotThrow(() => validate(tx)) + }) +}) diff --git a/packages/xrpl/test/models/DIDSet.test.ts b/packages/xrpl/test/models/DIDSet.test.ts new file mode 100644 index 0000000000..2fc16ca597 --- /dev/null +++ b/packages/xrpl/test/models/DIDSet.test.ts @@ -0,0 +1,93 @@ +import { assert } from 'chai' + +import { validate, ValidationError } from '../../src' +import { validateDIDSet } from '../../src/models/transactions/DIDSet' + +/** + * DIDSet Transaction Verification Testing. + * + * Providing runtime verification testing for each specific transaction type. + */ +describe('DIDSet', function () { + let tx + + beforeEach(function () { + tx = { + Account: 'rfmDuhDyLGgx94qiwf3YF8BUV5j6KSvE8', + Data: '617474657374', + DIDDocument: '646F63', + Fee: '10', + Flags: 2147483648, + Sequence: 3, + TransactionType: 'DIDSet', + URI: '6469645F6578616D706C65', + } as any + }) + + it('verifies valid DIDSet', function () { + assert.doesNotThrow(() => validateDIDSet(tx)) + assert.doesNotThrow(() => validate(tx)) + }) + + it('throws w/ invalid Data', function () { + tx.Data = 123 + + assert.throws( + () => validateDIDSet(tx), + ValidationError, + 'DIDSet: invalid field Data', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'DIDSet: invalid field Data', + ) + }) + + it('throws w/ invalid DIDDocument', function () { + tx.DIDDocument = 123 + + assert.throws( + () => validateDIDSet(tx), + ValidationError, + 'DIDSet: invalid field DIDDocument', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'DIDSet: invalid field DIDDocument', + ) + }) + + it('throws w/ invalid URI', function () { + tx.URI = 123 + + assert.throws( + () => validateDIDSet(tx), + ValidationError, + 'DIDSet: invalid field URI', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'DIDSet: invalid field URI', + ) + }) + + it('throws w/ empty DID', function () { + delete tx.Data + delete tx.DIDDocument + delete tx.URI + + assert.throws( + () => validateDIDSet(tx), + ValidationError, + 'DIDSet: Must have at least one of `Data`, `DIDDocument`, and `URI`', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'DIDSet: Must have at least one of `Data`, `DIDDocument`, and `URI`', + ) + }) +}) diff --git a/packages/xrpl/test/models/NFTokenCreateOffer.test.ts b/packages/xrpl/test/models/NFTokenCreateOffer.test.ts index b874f2b18f..6260861608 100644 --- a/packages/xrpl/test/models/NFTokenCreateOffer.test.ts +++ b/packages/xrpl/test/models/NFTokenCreateOffer.test.ts @@ -16,7 +16,7 @@ describe('NFTokenCreateOffer', function () { TransactionType: 'NFTokenCreateOffer', NFTokenID: NFTOKEN_ID, Amount: '1', - Owner: 'r9LqNeG6qHxjeUocjvVki2XR35weJ9mZgQ', + Owner: 'rcXY84C4g14iFp6taFXjjQGVeHqSCh9RX', Expiration: 1000, Account: 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm', Destination: 'r9LqNeG6qHxjeUocjvVki2XR35weJ9mZgQ', @@ -32,7 +32,9 @@ describe('NFTokenCreateOffer', function () { TransactionType: 'NFTokenCreateOffer', NFTokenID: NFTOKEN_ID, Amount: '1', - Flags: NFTokenCreateOfferFlags.tfSellNFToken, + Flags: { + tfSellNFToken: true, + }, Expiration: 1000, Destination: 'r9LqNeG6qHxjeUocjvVki2XR35weJ9mZgQ', Account: 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm', @@ -102,7 +104,7 @@ describe('NFTokenCreateOffer', function () { const invalid = { TransactionType: 'NFTokenCreateOffer', Amount: '1', - Owner: 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXe', + Owner: 'rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn', Expiration: 1000, Destination: 'r9LqNeG6qHxjeUocjvVki2XR35weJ9mZgQ', Account: 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm', @@ -122,7 +124,7 @@ describe('NFTokenCreateOffer', function () { TransactionType: 'NFTokenCreateOffer', NFTokenID: NFTOKEN_ID, Amount: 1, - Owner: 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXe', + Owner: 'rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn', Expiration: 1000, Destination: 'r9LqNeG6qHxjeUocjvVki2XR35weJ9mZgQ', Account: 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm', @@ -140,7 +142,7 @@ describe('NFTokenCreateOffer', function () { it(`throws w/ missing Amount`, function () { const invalid = { TransactionType: 'NFTokenCreateOffer', - Owner: 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXe', + Owner: 'rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn', Expiration: 1000, NFTokenID: NFTOKEN_ID, Destination: 'r9LqNeG6qHxjeUocjvVki2XR35weJ9mZgQ', @@ -160,7 +162,7 @@ describe('NFTokenCreateOffer', function () { const invalid = { TransactionType: 'NFTokenCreateOffer', Expiration: 1000, - Owner: 'r9LqNeG6qHxjeUocjvVki2XR35weJ9mZgQ', + Owner: 'rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn', Account: 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm', NFTokenID: NFTOKEN_ID, Flags: NFTokenCreateOfferFlags.tfSellNFToken, diff --git a/packages/xrpl/test/models/NFTokenMint.test.ts b/packages/xrpl/test/models/NFTokenMint.test.ts index 53b12de110..82dbd001f5 100644 --- a/packages/xrpl/test/models/NFTokenMint.test.ts +++ b/packages/xrpl/test/models/NFTokenMint.test.ts @@ -19,7 +19,9 @@ describe('NFTokenMint', function () { Account: 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm', Fee: '5000000', Sequence: 2470665, - Flags: NFTokenMintFlags.tfTransferable, + Flags: { + tfTransferable: true, + }, NFTokenTaxon: 0, Issuer: 'r9LqNeG6qHxjeUocjvVki2XR35weJ9mZgQ', TransferFee: 1, diff --git a/packages/xrpl/test/models/XChainAccountCreateCommit.test.ts b/packages/xrpl/test/models/XChainAccountCreateCommit.test.ts new file mode 100644 index 0000000000..2e0d669216 --- /dev/null +++ b/packages/xrpl/test/models/XChainAccountCreateCommit.test.ts @@ -0,0 +1,161 @@ +import { assert } from 'chai' + +import { validate, ValidationError } from '../../src' +import { validateXChainAccountCreateCommit } from '../../src/models/transactions/XChainAccountCreateCommit' + +/** + * XChainAccountCreateCommit Transaction Verification Testing. + * + * Providing runtime verification testing for each specific transaction type. + */ +describe('XChainAccountCreateCommit', function () { + let tx + + beforeEach(function () { + tx = { + Account: 'rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh', + XChainBridge: { + LockingChainDoor: 'rGzx83BVoqTYbGn7tiVAnFw7cbxjin13jL', + LockingChainIssue: { + currency: 'XAH', + }, + IssuingChainDoor: 'r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV', + IssuingChainIssue: { + currency: 'XAH', + }, + }, + Amount: '1000000', + Fee: '10', + Flags: 2147483648, + Destination: 'rGzx83BVoqTYbGn7tiVAnFw7cbxjin13jL', + Sequence: 1, + SignatureReward: '10000', + TransactionType: 'XChainAccountCreateCommit', + } as any + }) + + it('verifies valid XChainAccountCreateCommit', function () { + assert.doesNotThrow(() => validateXChainAccountCreateCommit(tx)) + assert.doesNotThrow(() => validate(tx)) + }) + + it('throws w/ missing XChainBridge', function () { + delete tx.XChainBridge + + assert.throws( + () => validateXChainAccountCreateCommit(tx), + ValidationError, + 'XChainAccountCreateCommit: missing field XChainBridge', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainAccountCreateCommit: missing field XChainBridge', + ) + }) + + it('throws w/ invalid XChainBridge', function () { + tx.XChainBridge = { XChainDoor: 'test' } + + assert.throws( + () => validateXChainAccountCreateCommit(tx), + ValidationError, + 'XChainAccountCreateCommit: invalid field XChainBridge', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainAccountCreateCommit: invalid field XChainBridge', + ) + }) + + it('throws w/ missing SignatureReward', function () { + delete tx.SignatureReward + + assert.throws( + () => validateXChainAccountCreateCommit(tx), + ValidationError, + 'XChainAccountCreateCommit: missing field SignatureReward', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainAccountCreateCommit: missing field SignatureReward', + ) + }) + + it('throws w/ invalid SignatureReward', function () { + tx.SignatureReward = { currency: 'ETH' } + + assert.throws( + () => validateXChainAccountCreateCommit(tx), + ValidationError, + 'XChainAccountCreateCommit: invalid field SignatureReward', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainAccountCreateCommit: invalid field SignatureReward', + ) + }) + + it('throws w/ missing Destination', function () { + delete tx.Destination + + assert.throws( + () => validateXChainAccountCreateCommit(tx), + ValidationError, + 'XChainAccountCreateCommit: missing field Destination', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainAccountCreateCommit: missing field Destination', + ) + }) + + it('throws w/ invalid Destination', function () { + tx.Destination = 123 + + assert.throws( + () => validateXChainAccountCreateCommit(tx), + ValidationError, + 'XChainAccountCreateCommit: invalid field Destination', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainAccountCreateCommit: invalid field Destination', + ) + }) + + it('throws w/ missing Amount', function () { + delete tx.Amount + + assert.throws( + () => validateXChainAccountCreateCommit(tx), + ValidationError, + 'XChainAccountCreateCommit: missing field Amount', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainAccountCreateCommit: missing field Amount', + ) + }) + + it('throws w/ invalid Amount', function () { + tx.Amount = { currency: 'ETH' } + + assert.throws( + () => validateXChainAccountCreateCommit(tx), + ValidationError, + 'XChainAccountCreateCommit: invalid field Amount', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainAccountCreateCommit: invalid field Amount', + ) + }) +}) diff --git a/packages/xrpl/test/models/XChainAddAccountCreateAttestation.test.ts b/packages/xrpl/test/models/XChainAddAccountCreateAttestation.test.ts new file mode 100644 index 0000000000..653d2735dc --- /dev/null +++ b/packages/xrpl/test/models/XChainAddAccountCreateAttestation.test.ts @@ -0,0 +1,381 @@ +import { assert } from 'chai' + +import { validate, ValidationError } from '../../src' +import { validateXChainAddAccountCreateAttestation } from '../../src/models/transactions/XChainAddAccountCreateAttestation' + +/** + * XChainAddAccountCreateAttestation Transaction Verification Testing. + * + * Providing runtime verification testing for each specific transaction type. + */ +describe('XChainAddAccountCreateAttestation', function () { + let tx + + beforeEach(function () { + tx = { + Account: 'r9cYxdjQsoXAEz3qQJc961SNLaXRkWXCvT', + Amount: '10000000', + AttestationRewardAccount: 'r9cYxdjQsoXAEz3qQJc961SNLaXRkWXCvT', + AttestationSignerAccount: 'r9cYxdjQsoXAEz3qQJc961SNLaXRkWXCvT', + Destination: 'rJdTJRJZ6GXCCRaamHJgEqVzB7Zy4557Pi', + Fee: '20', + LastLedgerSequence: 13, + OtherChainSource: 'raFcdz1g8LWJDJWJE2ZKLRGdmUmsTyxaym', + PublicKey: + 'ED1F4A024ACFEBDB6C7AA88DEDE3364E060487EA31B14CC9E0D610D152B31AADC2', + Sequence: 5, + Signature: + 'EEFCFA3DC2AB4AB7C4D2EBBC168CB621A11B82BABD86534DFC8EFA72439A496' + + '62D744073CD848E7A587A95B35162CDF9A69BB237E72C9537A987F5B8C394F30D', + SignatureReward: '100', + TransactionType: 'XChainAddAccountCreateAttestation', + WasLockingChainSend: 1, + XChainAccountCreateCount: '0000000000000006', + XChainBridge: { + IssuingChainDoor: 'rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh', + IssuingChainIssue: { + currency: 'XAH', + }, + LockingChainDoor: 'rDJVtEuDKr4rj1B3qtW7R5TVWdXV2DY7Qg', + LockingChainIssue: { + currency: 'XAH', + }, + }, + } as any + }) + + it('verifies valid XChainAddAccountCreateAttestation', function () { + assert.doesNotThrow(() => validateXChainAddAccountCreateAttestation(tx)) + assert.doesNotThrow(() => validate(tx)) + }) + + it('throws w/ missing Amount', function () { + delete tx.Amount + + assert.throws( + () => validateXChainAddAccountCreateAttestation(tx), + ValidationError, + 'XChainAddAccountCreateAttestation: missing field Amount', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainAddAccountCreateAttestation: missing field Amount', + ) + }) + + it('throws w/ invalid Amount', function () { + tx.Amount = { currency: 'ETH' } + + assert.throws( + () => validateXChainAddAccountCreateAttestation(tx), + ValidationError, + 'XChainAddAccountCreateAttestation: invalid field Amount', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainAddAccountCreateAttestation: invalid field Amount', + ) + }) + + it('throws w/ missing AttestationRewardAccount', function () { + delete tx.AttestationRewardAccount + + assert.throws( + () => validateXChainAddAccountCreateAttestation(tx), + ValidationError, + 'XChainAddAccountCreateAttestation: missing field AttestationRewardAccount', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainAddAccountCreateAttestation: missing field AttestationRewardAccount', + ) + }) + + it('throws w/ invalid AttestationRewardAccount', function () { + tx.AttestationRewardAccount = 123 + + assert.throws( + () => validateXChainAddAccountCreateAttestation(tx), + ValidationError, + 'XChainAddAccountCreateAttestation: invalid field AttestationRewardAccount', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainAddAccountCreateAttestation: invalid field AttestationRewardAccount', + ) + }) + + it('throws w/ missing AttestationSignerAccount', function () { + delete tx.AttestationSignerAccount + + assert.throws( + () => validateXChainAddAccountCreateAttestation(tx), + ValidationError, + 'XChainAddAccountCreateAttestation: missing field AttestationSignerAccount', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainAddAccountCreateAttestation: missing field AttestationSignerAccount', + ) + }) + + it('throws w/ invalid AttestationSignerAccount', function () { + tx.AttestationSignerAccount = 123 + + assert.throws( + () => validateXChainAddAccountCreateAttestation(tx), + ValidationError, + 'XChainAddAccountCreateAttestation: invalid field AttestationSignerAccount', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainAddAccountCreateAttestation: invalid field AttestationSignerAccount', + ) + }) + + it('throws w/ missing Destination', function () { + delete tx.Destination + + assert.throws( + () => validateXChainAddAccountCreateAttestation(tx), + ValidationError, + 'XChainAddAccountCreateAttestation: missing field Destination', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainAddAccountCreateAttestation: missing field Destination', + ) + }) + + it('throws w/ invalid Destination', function () { + tx.Destination = 123 + + assert.throws( + () => validateXChainAddAccountCreateAttestation(tx), + ValidationError, + 'XChainAddAccountCreateAttestation: invalid field Destination', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainAddAccountCreateAttestation: invalid field Destination', + ) + }) + + it('throws w/ missing OtherChainSource', function () { + delete tx.OtherChainSource + + assert.throws( + () => validateXChainAddAccountCreateAttestation(tx), + ValidationError, + 'XChainAddAccountCreateAttestation: missing field OtherChainSource', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainAddAccountCreateAttestation: missing field OtherChainSource', + ) + }) + + it('throws w/ invalid OtherChainSource', function () { + tx.OtherChainSource = 123 + + assert.throws( + () => validateXChainAddAccountCreateAttestation(tx), + ValidationError, + 'XChainAddAccountCreateAttestation: invalid field OtherChainSource', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainAddAccountCreateAttestation: invalid field OtherChainSource', + ) + }) + + it('throws w/ missing PublicKey', function () { + delete tx.PublicKey + + assert.throws( + () => validateXChainAddAccountCreateAttestation(tx), + ValidationError, + 'XChainAddAccountCreateAttestation: missing field PublicKey', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainAddAccountCreateAttestation: missing field PublicKey', + ) + }) + + it('throws w/ invalid PublicKey', function () { + tx.PublicKey = 123 + + assert.throws( + () => validateXChainAddAccountCreateAttestation(tx), + ValidationError, + 'XChainAddAccountCreateAttestation: invalid field PublicKey', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainAddAccountCreateAttestation: invalid field PublicKey', + ) + }) + + it('throws w/ missing Signature', function () { + delete tx.Signature + + assert.throws( + () => validateXChainAddAccountCreateAttestation(tx), + ValidationError, + 'XChainAddAccountCreateAttestation: missing field Signature', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainAddAccountCreateAttestation: missing field Signature', + ) + }) + + it('throws w/ invalid Signature', function () { + tx.Signature = 123 + + assert.throws( + () => validateXChainAddAccountCreateAttestation(tx), + ValidationError, + 'XChainAddAccountCreateAttestation: invalid field Signature', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainAddAccountCreateAttestation: invalid field Signature', + ) + }) + + it('throws w/ missing SignatureReward', function () { + delete tx.SignatureReward + + assert.throws( + () => validateXChainAddAccountCreateAttestation(tx), + ValidationError, + 'XChainAddAccountCreateAttestation: missing field SignatureReward', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainAddAccountCreateAttestation: missing field SignatureReward', + ) + }) + + it('throws w/ invalid SignatureReward', function () { + tx.SignatureReward = { currency: 'ETH' } + + assert.throws( + () => validateXChainAddAccountCreateAttestation(tx), + ValidationError, + 'XChainAddAccountCreateAttestation: invalid field SignatureReward', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainAddAccountCreateAttestation: invalid field SignatureReward', + ) + }) + + it('throws w/ missing WasLockingChainSend', function () { + delete tx.WasLockingChainSend + + assert.throws( + () => validateXChainAddAccountCreateAttestation(tx), + ValidationError, + 'XChainAddAccountCreateAttestation: missing field WasLockingChainSend', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainAddAccountCreateAttestation: missing field WasLockingChainSend', + ) + }) + + it('throws w/ invalid WasLockingChainSend', function () { + tx.WasLockingChainSend = 2 + + assert.throws( + () => validateXChainAddAccountCreateAttestation(tx), + ValidationError, + 'XChainAddAccountCreateAttestation: invalid field WasLockingChainSend', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainAddAccountCreateAttestation: invalid field WasLockingChainSend', + ) + }) + + it('throws w/ missing XChainAccountCreateCount', function () { + delete tx.XChainAccountCreateCount + + assert.throws( + () => validateXChainAddAccountCreateAttestation(tx), + ValidationError, + 'XChainAddAccountCreateAttestation: missing field XChainAccountCreateCount', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainAddAccountCreateAttestation: missing field XChainAccountCreateCount', + ) + }) + + it('throws w/ invalid XChainAccountCreateCount', function () { + tx.XChainAccountCreateCount = { currency: 'ETH' } + + assert.throws( + () => validateXChainAddAccountCreateAttestation(tx), + ValidationError, + 'XChainAddAccountCreateAttestation: invalid field XChainAccountCreateCount', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainAddAccountCreateAttestation: invalid field XChainAccountCreateCount', + ) + }) + + it('throws w/ missing XChainBridge', function () { + delete tx.XChainBridge + + assert.throws( + () => validateXChainAddAccountCreateAttestation(tx), + ValidationError, + 'XChainAddAccountCreateAttestation: missing field XChainBridge', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainAddAccountCreateAttestation: missing field XChainBridge', + ) + }) + + it('throws w/ invalid XChainBridge', function () { + tx.XChainBridge = { XChainDoor: 'test' } + + assert.throws( + () => validateXChainAddAccountCreateAttestation(tx), + ValidationError, + 'XChainAddAccountCreateAttestation: invalid field XChainBridge', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainAddAccountCreateAttestation: invalid field XChainBridge', + ) + }) +}) diff --git a/packages/xrpl/test/models/XChainAddClaimAttestation.test.ts b/packages/xrpl/test/models/XChainAddClaimAttestation.test.ts new file mode 100644 index 0000000000..fe37024d7d --- /dev/null +++ b/packages/xrpl/test/models/XChainAddClaimAttestation.test.ts @@ -0,0 +1,334 @@ +import { assert } from 'chai' + +import { validate, ValidationError } from '../../src' +import { validateXChainAddClaimAttestation } from '../../src/models/transactions/XChainAddClaimAttestation' + +/** + * XChainAddClaimAttestation Transaction Verification Testing. + * + * Providing runtime verification testing for each specific transaction type. + */ +describe('XChainAddClaimAttestation', function () { + let tx + + beforeEach(function () { + tx = { + Account: 'rsqvD8WFFEBBv4nztpoW9YYXJ7eRzLrtc3', + Amount: '10000000', + AttestationRewardAccount: 'rsqvD8WFFEBBv4nztpoW9YYXJ7eRzLrtc3', + AttestationSignerAccount: 'rsqvD8WFFEBBv4nztpoW9YYXJ7eRzLrtc3', + Destination: 'rJdTJRJZ6GXCCRaamHJgEqVzB7Zy4557Pi', + Fee: '20', + LastLedgerSequence: 19, + OtherChainSource: 'raFcdz1g8LWJDJWJE2ZKLRGdmUmsTyxaym', + PublicKey: + 'ED7541DEC700470F54276C90C333A13CDBB5D341FD43C60CEA12170F6D6D4E1136', + Sequence: 9, + Signature: + '7C175050B08000AD35EEB2D87E16CD3F95A0AEEBF2A049474275153D9D4DD44528FE99AA50E71660A15B0B768E1B90E609BBD5DC7AFAFD45D9705D72D40EA10C', + TransactionType: 'XChainAddClaimAttestation', + WasLockingChainSend: 1, + XChainBridge: { + IssuingChainDoor: 'rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh', + IssuingChainIssue: { + currency: 'XAH', + }, + LockingChainDoor: 'rDJVtEuDKr4rj1B3qtW7R5TVWdXV2DY7Qg', + LockingChainIssue: { + currency: 'XAH', + }, + }, + XChainClaimID: '0000000000000001', + } as any + }) + + it('verifies valid XChainAddClaimAttestation', function () { + assert.doesNotThrow(() => validateXChainAddClaimAttestation(tx)) + assert.doesNotThrow(() => validate(tx)) + }) + + it('throws w/ missing Amount', function () { + delete tx.Amount + + assert.throws( + () => validateXChainAddClaimAttestation(tx), + ValidationError, + 'XChainAddClaimAttestation: missing field Amount', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainAddClaimAttestation: missing field Amount', + ) + }) + + it('throws w/ invalid Amount', function () { + tx.Amount = { currency: 'ETH' } + + assert.throws( + () => validateXChainAddClaimAttestation(tx), + ValidationError, + 'XChainAddClaimAttestation: invalid field Amount', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainAddClaimAttestation: invalid field Amount', + ) + }) + + it('throws w/ missing AttestationRewardAccount', function () { + delete tx.AttestationRewardAccount + + assert.throws( + () => validateXChainAddClaimAttestation(tx), + ValidationError, + 'XChainAddClaimAttestation: missing field AttestationRewardAccount', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainAddClaimAttestation: missing field AttestationRewardAccount', + ) + }) + + it('throws w/ invalid AttestationRewardAccount', function () { + tx.AttestationRewardAccount = 123 + + assert.throws( + () => validateXChainAddClaimAttestation(tx), + ValidationError, + 'XChainAddClaimAttestation: invalid field AttestationRewardAccount', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainAddClaimAttestation: invalid field AttestationRewardAccount', + ) + }) + + it('throws w/ missing AttestationSignerAccount', function () { + delete tx.AttestationSignerAccount + + assert.throws( + () => validateXChainAddClaimAttestation(tx), + ValidationError, + 'XChainAddClaimAttestation: missing field AttestationSignerAccount', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainAddClaimAttestation: missing field AttestationSignerAccount', + ) + }) + + it('throws w/ invalid AttestationSignerAccount', function () { + tx.AttestationSignerAccount = 123 + + assert.throws( + () => validateXChainAddClaimAttestation(tx), + ValidationError, + 'XChainAddClaimAttestation: invalid field AttestationSignerAccount', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainAddClaimAttestation: invalid field AttestationSignerAccount', + ) + }) + + it('throws w/ invalid Destination', function () { + tx.Destination = 123 + + assert.throws( + () => validateXChainAddClaimAttestation(tx), + ValidationError, + 'XChainAddClaimAttestation: invalid field Destination', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainAddClaimAttestation: invalid field Destination', + ) + }) + + it('throws w/ missing OtherChainSource', function () { + delete tx.OtherChainSource + + assert.throws( + () => validateXChainAddClaimAttestation(tx), + ValidationError, + 'XChainAddClaimAttestation: missing field OtherChainSource', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainAddClaimAttestation: missing field OtherChainSource', + ) + }) + + it('throws w/ invalid OtherChainSource', function () { + tx.OtherChainSource = 123 + + assert.throws( + () => validateXChainAddClaimAttestation(tx), + ValidationError, + 'XChainAddClaimAttestation: invalid field OtherChainSource', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainAddClaimAttestation: invalid field OtherChainSource', + ) + }) + + it('throws w/ missing PublicKey', function () { + delete tx.PublicKey + + assert.throws( + () => validateXChainAddClaimAttestation(tx), + ValidationError, + 'XChainAddClaimAttestation: missing field PublicKey', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainAddClaimAttestation: missing field PublicKey', + ) + }) + + it('throws w/ invalid PublicKey', function () { + tx.PublicKey = 123 + + assert.throws( + () => validateXChainAddClaimAttestation(tx), + ValidationError, + 'XChainAddClaimAttestation: invalid field PublicKey', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainAddClaimAttestation: invalid field PublicKey', + ) + }) + + it('throws w/ missing Signature', function () { + delete tx.Signature + + assert.throws( + () => validateXChainAddClaimAttestation(tx), + ValidationError, + 'XChainAddClaimAttestation: missing field Signature', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainAddClaimAttestation: missing field Signature', + ) + }) + + it('throws w/ invalid Signature', function () { + tx.Signature = 123 + + assert.throws( + () => validateXChainAddClaimAttestation(tx), + ValidationError, + 'XChainAddClaimAttestation: invalid field Signature', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainAddClaimAttestation: invalid field Signature', + ) + }) + + it('throws w/ missing WasLockingChainSend', function () { + delete tx.WasLockingChainSend + + assert.throws( + () => validateXChainAddClaimAttestation(tx), + ValidationError, + 'XChainAddClaimAttestation: missing field WasLockingChainSend', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainAddClaimAttestation: missing field WasLockingChainSend', + ) + }) + + it('throws w/ invalid WasLockingChainSend', function () { + tx.WasLockingChainSend = 2 + + assert.throws( + () => validateXChainAddClaimAttestation(tx), + ValidationError, + 'XChainAddClaimAttestation: invalid field WasLockingChainSend', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainAddClaimAttestation: invalid field WasLockingChainSend', + ) + }) + + it('throws w/ missing XChainBridge', function () { + delete tx.XChainBridge + + assert.throws( + () => validateXChainAddClaimAttestation(tx), + ValidationError, + 'XChainAddClaimAttestation: missing field XChainBridge', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainAddClaimAttestation: missing field XChainBridge', + ) + }) + + it('throws w/ invalid XChainBridge', function () { + tx.XChainBridge = { XChainDoor: 'test' } + + assert.throws( + () => validateXChainAddClaimAttestation(tx), + ValidationError, + 'XChainAddClaimAttestation: invalid field XChainBridge', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainAddClaimAttestation: invalid field XChainBridge', + ) + }) + + it('throws w/ missing XChainClaimID', function () { + delete tx.XChainClaimID + + assert.throws( + () => validateXChainAddClaimAttestation(tx), + ValidationError, + 'XChainAddClaimAttestation: missing field XChainClaimID', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainAddClaimAttestation: missing field XChainClaimID', + ) + }) + + it('throws w/ invalid XChainClaimID', function () { + tx.XChainClaimID = { currency: 'ETH' } + + assert.throws( + () => validateXChainAddClaimAttestation(tx), + ValidationError, + 'XChainAddClaimAttestation: invalid field XChainClaimID', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainAddClaimAttestation: invalid field XChainClaimID', + ) + }) +}) diff --git a/packages/xrpl/test/models/XChainClaim.test.ts b/packages/xrpl/test/models/XChainClaim.test.ts new file mode 100644 index 0000000000..371aaa57d0 --- /dev/null +++ b/packages/xrpl/test/models/XChainClaim.test.ts @@ -0,0 +1,176 @@ +import { assert } from 'chai' + +import { validate, ValidationError } from '../../src' +import { validateXChainClaim } from '../../src/models/transactions/XChainClaim' + +/** + * XChainClaim Transaction Verification Testing. + * + * Providing runtime verification testing for each specific transaction type. + */ +describe('XChainClaim', function () { + let tx + + beforeEach(function () { + tx = { + Account: 'rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh', + Amount: '10000', + XChainBridge: { + LockingChainDoor: 'rGzx83BVoqTYbGn7tiVAnFw7cbxjin13jL', + LockingChainIssue: { + currency: 'XAH', + }, + IssuingChainDoor: 'r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV', + IssuingChainIssue: { + currency: 'XAH', + }, + }, + Destination: 'r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV', + Fee: '10', + Flags: 2147483648, + Sequence: 1, + TransactionType: 'XChainClaim', + XChainClaimID: '0000000000000001', + } as any + }) + + it('verifies valid XChainClaim', function () { + assert.doesNotThrow(() => validateXChainClaim(tx)) + assert.doesNotThrow(() => validate(tx)) + }) + + it('throws w/ missing XChainBridge', function () { + delete tx.XChainBridge + + assert.throws( + () => validateXChainClaim(tx), + ValidationError, + 'XChainClaim: missing field XChainBridge', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainClaim: missing field XChainBridge', + ) + }) + + it('throws w/ invalid XChainBridge', function () { + tx.XChainBridge = { XChainDoor: 'test' } + + assert.throws( + () => validateXChainClaim(tx), + ValidationError, + 'XChainClaim: invalid field XChainBridge', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainClaim: invalid field XChainBridge', + ) + }) + + it('throws w/ missing XChainClaimID', function () { + delete tx.XChainClaimID + + assert.throws( + () => validateXChainClaim(tx), + ValidationError, + 'XChainClaim: missing field XChainClaimID', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainClaim: missing field XChainClaimID', + ) + }) + + it('throws w/ invalid XChainClaimID', function () { + tx.XChainClaimID = { currency: 'ETH' } + + assert.throws( + () => validateXChainClaim(tx), + ValidationError, + 'XChainClaim: invalid field XChainClaimID', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainClaim: invalid field XChainClaimID', + ) + }) + + it('throws w/ missing Destination', function () { + delete tx.Destination + + assert.throws( + () => validateXChainClaim(tx), + ValidationError, + 'XChainClaim: missing field Destination', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainClaim: missing field Destination', + ) + }) + + it('throws w/ invalid Destination', function () { + tx.Destination = 123 + + assert.throws( + () => validateXChainClaim(tx), + ValidationError, + 'XChainClaim: invalid field Destination', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainClaim: invalid field Destination', + ) + }) + + it('throws w/ invalid DestinationTag', function () { + tx.DestinationTag = 'number' + + assert.throws( + () => validateXChainClaim(tx), + ValidationError, + 'XChainClaim: invalid field DestinationTag', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainClaim: invalid field DestinationTag', + ) + }) + + it('throws w/ missing Amount', function () { + delete tx.Amount + + assert.throws( + () => validateXChainClaim(tx), + ValidationError, + 'XChainClaim: missing field Amount', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainClaim: missing field Amount', + ) + }) + + it('throws w/ invalid Amount', function () { + tx.Amount = { currency: 'ETH' } + + assert.throws( + () => validateXChainClaim(tx), + ValidationError, + 'XChainClaim: invalid field Amount', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainClaim: invalid field Amount', + ) + }) +}) diff --git a/packages/xrpl/test/models/XChainCommit.test.ts b/packages/xrpl/test/models/XChainCommit.test.ts new file mode 100644 index 0000000000..ebdaed0067 --- /dev/null +++ b/packages/xrpl/test/models/XChainCommit.test.ts @@ -0,0 +1,145 @@ +import { assert } from 'chai' + +import { validate, ValidationError } from '../../src' +import { validateXChainCommit } from '../../src/models/transactions/XChainCommit' + +/** + * XChainCommit Transaction Verification Testing. + * + * Providing runtime verification testing for each specific transaction type. + */ +describe('XChainCommit', function () { + let tx + + beforeEach(function () { + tx = { + Account: 'rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh', + Amount: '10000', + XChainBridge: { + LockingChainDoor: 'rGzx83BVoqTYbGn7tiVAnFw7cbxjin13jL', + LockingChainIssue: { + currency: 'XAH', + }, + IssuingChainDoor: 'r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV', + IssuingChainIssue: { + currency: 'XAH', + }, + }, + Fee: '10', + Flags: 2147483648, + Sequence: 1, + TransactionType: 'XChainCommit', + XChainClaimID: '0000000000000001', + } as any + }) + + it('verifies valid XChainCommit', function () { + assert.doesNotThrow(() => validateXChainCommit(tx)) + assert.doesNotThrow(() => validate(tx)) + }) + + it('throws w/ missing XChainBridge', function () { + delete tx.XChainBridge + + assert.throws( + () => validateXChainCommit(tx), + ValidationError, + 'XChainCommit: missing field XChainBridge', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainCommit: missing field XChainBridge', + ) + }) + + it('throws w/ invalid XChainBridge', function () { + tx.XChainBridge = { XChainDoor: 'test' } + + assert.throws( + () => validateXChainCommit(tx), + ValidationError, + 'XChainCommit: invalid field XChainBridge', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainCommit: invalid field XChainBridge', + ) + }) + + it('throws w/ missing XChainClaimID', function () { + delete tx.XChainClaimID + + assert.throws( + () => validateXChainCommit(tx), + ValidationError, + 'XChainCommit: missing field XChainClaimID', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainCommit: missing field XChainClaimID', + ) + }) + + it('throws w/ invalid XChainClaimID', function () { + tx.XChainClaimID = { currency: 'ETH' } + + assert.throws( + () => validateXChainCommit(tx), + ValidationError, + 'XChainCommit: invalid field XChainClaimID', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainCommit: invalid field XChainClaimID', + ) + }) + + it('throws w/ invalid OtherChainDestination', function () { + tx.OtherChainDestination = 123 + + assert.throws( + () => validateXChainCommit(tx), + ValidationError, + 'XChainCommit: invalid field OtherChainDestination', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainCommit: invalid field OtherChainDestination', + ) + }) + + it('throws w/ missing Amount', function () { + delete tx.Amount + + assert.throws( + () => validateXChainCommit(tx), + ValidationError, + 'XChainCommit: missing field Amount', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainCommit: missing field Amount', + ) + }) + + it('throws w/ invalid Amount', function () { + tx.Amount = { currency: 'ETH' } + + assert.throws( + () => validateXChainCommit(tx), + ValidationError, + 'XChainCommit: invalid field Amount', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainCommit: invalid field Amount', + ) + }) +}) diff --git a/packages/xrpl/test/models/XChainCreateBridge.test.ts b/packages/xrpl/test/models/XChainCreateBridge.test.ts new file mode 100644 index 0000000000..e572b98f39 --- /dev/null +++ b/packages/xrpl/test/models/XChainCreateBridge.test.ts @@ -0,0 +1,115 @@ +import { assert } from 'chai' + +import { validate, ValidationError } from '../../src' +import { validateXChainCreateBridge } from '../../src/models/transactions/XChainCreateBridge' + +/** + * XChainCreateBridge Transaction Verification Testing. + * + * Providing runtime verification testing for each specific transaction type. + */ +describe('XChainCreateBridge', function () { + let tx + + beforeEach(function () { + tx = { + Account: 'rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh', + XChainBridge: { + LockingChainDoor: 'rGzx83BVoqTYbGn7tiVAnFw7cbxjin13jL', + LockingChainIssue: { + currency: 'XAH', + }, + IssuingChainDoor: 'r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV', + IssuingChainIssue: { + currency: 'XAH', + }, + }, + Fee: '10', + Flags: 0, + MinAccountCreateAmount: '10000', + Sequence: 1, + SignatureReward: '1000', + TransactionType: 'XChainCreateBridge', + } as any + }) + + it('verifies valid XChainCreateBridge', function () { + assert.doesNotThrow(() => validateXChainCreateBridge(tx)) + assert.doesNotThrow(() => validate(tx)) + }) + + it('throws w/ missing XChainBridge', function () { + delete tx.XChainBridge + + assert.throws( + () => validateXChainCreateBridge(tx), + ValidationError, + 'XChainCreateBridge: missing field XChainBridge', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainCreateBridge: missing field XChainBridge', + ) + }) + + it('throws w/ invalid XChainBridge', function () { + tx.XChainBridge = { XChainDoor: 'test' } + + assert.throws( + () => validateXChainCreateBridge(tx), + ValidationError, + 'XChainCreateBridge: invalid field XChainBridge', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainCreateBridge: invalid field XChainBridge', + ) + }) + + it('throws w/ missing SignatureReward', function () { + delete tx.SignatureReward + + assert.throws( + () => validateXChainCreateBridge(tx), + ValidationError, + 'XChainCreateBridge: missing field SignatureReward', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainCreateBridge: missing field SignatureReward', + ) + }) + + it('throws w/ invalid SignatureReward', function () { + tx.SignatureReward = { currency: 'ETH' } + + assert.throws( + () => validateXChainCreateBridge(tx), + ValidationError, + 'XChainCreateBridge: invalid field SignatureReward', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainCreateBridge: invalid field SignatureReward', + ) + }) + + it('throws w/ invalid MinAccountCreateAmount', function () { + tx.MinAccountCreateAmount = { currency: 'ETH' } + + assert.throws( + () => validateXChainCreateBridge(tx), + ValidationError, + 'XChainCreateBridge: invalid field MinAccountCreateAmount', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainCreateBridge: invalid field MinAccountCreateAmount', + ) + }) +}) diff --git a/packages/xrpl/test/models/XChainCreateClaimID.test.ts b/packages/xrpl/test/models/XChainCreateClaimID.test.ts new file mode 100644 index 0000000000..cb3348c4a1 --- /dev/null +++ b/packages/xrpl/test/models/XChainCreateClaimID.test.ts @@ -0,0 +1,130 @@ +import { assert } from 'chai' + +import { validate, ValidationError } from '../../src' +import { validateXChainCreateClaimID } from '../../src/models/transactions/XChainCreateClaimID' + +/** + * XChainCreateClaimID Transaction Verification Testing. + * + * Providing runtime verification testing for each specific transaction type. + */ +describe('XChainCreateClaimID', function () { + let tx + + beforeEach(function () { + tx = { + Account: 'rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh', + XChainBridge: { + LockingChainDoor: 'rGzx83BVoqTYbGn7tiVAnFw7cbxjin13jL', + LockingChainIssue: { + currency: 'XAH', + }, + IssuingChainDoor: 'r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV', + IssuingChainIssue: { + currency: 'XAH', + }, + }, + Fee: '10', + Flags: 2147483648, + OtherChainSource: 'rGzx83BVoqTYbGn7tiVAnFw7cbxjin13jL', + Sequence: 1, + SignatureReward: '10000', + TransactionType: 'XChainCreateClaimID', + } as any + }) + + it('verifies valid XChainCreateClaimID', function () { + assert.doesNotThrow(() => validateXChainCreateClaimID(tx)) + assert.doesNotThrow(() => validate(tx)) + }) + + it('throws w/ missing XChainBridge', function () { + delete tx.XChainBridge + + assert.throws( + () => validateXChainCreateClaimID(tx), + ValidationError, + 'XChainCreateClaimID: missing field XChainBridge', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainCreateClaimID: missing field XChainBridge', + ) + }) + + it('throws w/ invalid XChainBridge', function () { + tx.XChainBridge = { XChainDoor: 'test' } + + assert.throws( + () => validateXChainCreateClaimID(tx), + ValidationError, + 'XChainCreateClaimID: invalid field XChainBridge', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainCreateClaimID: invalid field XChainBridge', + ) + }) + + it('throws w/ missing SignatureReward', function () { + delete tx.SignatureReward + + assert.throws( + () => validateXChainCreateClaimID(tx), + ValidationError, + 'XChainCreateClaimID: missing field SignatureReward', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainCreateClaimID: missing field SignatureReward', + ) + }) + + it('throws w/ invalid SignatureReward', function () { + tx.SignatureReward = { currency: 'ETH' } + + assert.throws( + () => validateXChainCreateClaimID(tx), + ValidationError, + 'XChainCreateClaimID: invalid field SignatureReward', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainCreateClaimID: invalid field SignatureReward', + ) + }) + + it('throws w/ missing OtherChainSource', function () { + delete tx.OtherChainSource + + assert.throws( + () => validateXChainCreateClaimID(tx), + ValidationError, + 'XChainCreateClaimID: missing field OtherChainSource', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainCreateClaimID: missing field OtherChainSource', + ) + }) + + it('throws w/ invalid OtherChainSource', function () { + tx.OtherChainSource = 123 + + assert.throws( + () => validateXChainCreateClaimID(tx), + ValidationError, + 'XChainCreateClaimID: invalid field OtherChainSource', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainCreateClaimID: invalid field OtherChainSource', + ) + }) +}) diff --git a/packages/xrpl/test/models/XChainModifyBridge.test.ts b/packages/xrpl/test/models/XChainModifyBridge.test.ts new file mode 100644 index 0000000000..f534772e2b --- /dev/null +++ b/packages/xrpl/test/models/XChainModifyBridge.test.ts @@ -0,0 +1,100 @@ +import { assert } from 'chai' + +import { validate, ValidationError } from '../../src' +import { validateXChainModifyBridge } from '../../src/models/transactions/XChainModifyBridge' + +/** + * XChainModifyBridge Transaction Verification Testing. + * + * Providing runtime verification testing for each specific transaction type. + */ +describe('XChainModifyBridge', function () { + let tx + + beforeEach(function () { + tx = { + Account: 'rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh', + XChainBridge: { + LockingChainDoor: 'rGzx83BVoqTYbGn7tiVAnFw7cbxjin13jL', + LockingChainIssue: { + currency: 'XAH', + }, + IssuingChainDoor: 'r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV', + IssuingChainIssue: { + currency: 'XAH', + }, + }, + Fee: '10', + Flags: 0, + MinAccountCreateAmount: '10000', + Sequence: 1, + SignatureReward: '1000', + TransactionType: 'XChainModifyBridge', + } as any + }) + + it('verifies valid XChainModifyBridge', function () { + assert.doesNotThrow(() => validateXChainModifyBridge(tx)) + assert.doesNotThrow(() => validate(tx)) + }) + + it('throws w/ missing XChainBridge', function () { + delete tx.XChainBridge + + assert.throws( + () => validateXChainModifyBridge(tx), + ValidationError, + 'XChainModifyBridge: missing field XChainBridge', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainModifyBridge: missing field XChainBridge', + ) + }) + + it('throws w/ invalid XChainBridge', function () { + tx.XChainBridge = { XChainDoor: 'test' } + + assert.throws( + () => validateXChainModifyBridge(tx), + ValidationError, + 'XChainModifyBridge: invalid field XChainBridge', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainModifyBridge: invalid field XChainBridge', + ) + }) + + it('throws w/ invalid SignatureReward', function () { + tx.SignatureReward = { currency: 'ETH' } + + assert.throws( + () => validateXChainModifyBridge(tx), + ValidationError, + 'XChainModifyBridge: invalid field SignatureReward', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainModifyBridge: invalid field SignatureReward', + ) + }) + + it('throws w/ invalid MinAccountCreateAmount', function () { + tx.MinAccountCreateAmount = { currency: 'ETH' } + + assert.throws( + () => validateXChainModifyBridge(tx), + ValidationError, + 'XChainModifyBridge: invalid field MinAccountCreateAmount', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'XChainModifyBridge: invalid field MinAccountCreateAmount', + ) + }) +}) diff --git a/packages/xrpl/test/models/accountDelete.test.ts b/packages/xrpl/test/models/accountDelete.test.ts index e742f3cabf..4729bd7f03 100644 --- a/packages/xrpl/test/models/accountDelete.test.ts +++ b/packages/xrpl/test/models/accountDelete.test.ts @@ -58,12 +58,12 @@ describe('AccountDelete', function () { assert.throws( () => validateAccountDelete(invalidDestination), ValidationError, - 'AccountDelete: invalid Destination', + 'AccountDelete: invalid field Destination', ) assert.throws( () => validate(invalidDestination), ValidationError, - 'AccountDelete: invalid Destination', + 'AccountDelete: invalid field Destination', ) }) @@ -81,13 +81,13 @@ describe('AccountDelete', function () { assert.throws( () => validateAccountDelete(invalidDestinationTag), ValidationError, - 'AccountDelete: invalid DestinationTag', + 'AccountDelete: invalid field DestinationTag', ) assert.throws( () => validate(invalidDestinationTag), ValidationError, - 'AccountDelete: invalid DestinationTag', + 'AccountDelete: invalid field DestinationTag', ) }) }) diff --git a/packages/xrpl/test/models/accountSet.test.ts b/packages/xrpl/test/models/accountSet.test.ts index 3a072248d3..b3ce24eadd 100644 --- a/packages/xrpl/test/models/accountSet.test.ts +++ b/packages/xrpl/test/models/accountSet.test.ts @@ -155,12 +155,12 @@ describe('AccountSet', function () { assert.throws( () => validateAccountSet(account), ValidationError, - 'AccountSet: invalid NFTokenMinter', + 'AccountSet: invalid field NFTokenMinter', ) assert.throws( () => validate(account), ValidationError, - 'AccountSet: invalid NFTokenMinter', + 'AccountSet: invalid field NFTokenMinter', ) }) }) diff --git a/packages/xrpl/test/models/baseTransaction.test.ts b/packages/xrpl/test/models/baseTransaction.test.ts index c21a387df2..10e272f7f2 100644 --- a/packages/xrpl/test/models/baseTransaction.test.ts +++ b/packages/xrpl/test/models/baseTransaction.test.ts @@ -78,7 +78,7 @@ describe('BaseTransaction', function () { assert.throws( () => validateBaseTransaction(invalidFee), ValidationError, - 'BaseTransaction: invalid Fee', + 'Payment: invalid field Fee', ) }) @@ -92,7 +92,7 @@ describe('BaseTransaction', function () { assert.throws( () => validateBaseTransaction(invalidSeq), ValidationError, - 'BaseTransaction: invalid Sequence', + 'Payment: invalid field Sequence', ) }) @@ -106,7 +106,7 @@ describe('BaseTransaction', function () { assert.throws( () => validateBaseTransaction(invalidID), ValidationError, - 'BaseTransaction: invalid AccountTxnID', + 'Payment: invalid field AccountTxnID', ) }) @@ -120,7 +120,7 @@ describe('BaseTransaction', function () { assert.throws( () => validateBaseTransaction(invalidLastLedgerSequence), ValidationError, - 'BaseTransaction: invalid LastLedgerSequence', + 'Payment: invalid field LastLedgerSequence', ) }) @@ -134,7 +134,7 @@ describe('BaseTransaction', function () { assert.throws( () => validateBaseTransaction(invalidSourceTag), ValidationError, - 'BaseTransaction: invalid SourceTag', + 'Payment: invalid field SourceTag', ) }) @@ -148,7 +148,7 @@ describe('BaseTransaction', function () { assert.throws( () => validateBaseTransaction(invalidSigningPubKey), ValidationError, - 'BaseTransaction: invalid SigningPubKey', + 'Payment: invalid field SigningPubKey', ) }) @@ -162,7 +162,7 @@ describe('BaseTransaction', function () { assert.throws( () => validateBaseTransaction(invalidTicketSequence), ValidationError, - 'BaseTransaction: invalid TicketSequence', + 'Payment: invalid field TicketSequence', ) }) @@ -176,7 +176,7 @@ describe('BaseTransaction', function () { assert.throws( () => validateBaseTransaction(invalidTxnSignature), ValidationError, - 'BaseTransaction: invalid TxnSignature', + 'Payment: invalid field TxnSignature', ) }) @@ -232,4 +232,17 @@ describe('BaseTransaction', function () { 'BaseTransaction: invalid Memos', ) }) + + it(`Handles invalid NetworkID`, function () { + const invalidNetworkID = { + Account: 'r97KeayHuEsDwyU1yPBVtMLLoQr79QcRFe', + TransactionType: 'Payment', + NetworkID: '1024', + } + assert.throws( + () => validateBaseTransaction(invalidNetworkID), + ValidationError, + 'Payment: invalid field NetworkID', + ) + }) }) diff --git a/packages/xrpl/test/models/checkCreate.test.ts b/packages/xrpl/test/models/checkCreate.test.ts index e198561447..a97be25184 100644 --- a/packages/xrpl/test/models/checkCreate.test.ts +++ b/packages/xrpl/test/models/checkCreate.test.ts @@ -42,12 +42,12 @@ describe('CheckCreate', function () { assert.throws( () => validateCheckCreate(invalidDestination), ValidationError, - 'CheckCreate: invalid Destination', + 'CheckCreate: invalid field Destination', ) assert.throws( () => validate(invalidDestination), ValidationError, - 'CheckCreate: invalid Destination', + 'CheckCreate: invalid field Destination', ) }) @@ -92,12 +92,12 @@ describe('CheckCreate', function () { assert.throws( () => validateCheckCreate(invalidDestinationTag), ValidationError, - 'CheckCreate: invalid DestinationTag', + 'CheckCreate: invalid field DestinationTag', ) assert.throws( () => validate(invalidDestinationTag), ValidationError, - 'CheckCreate: invalid DestinationTag', + 'CheckCreate: invalid field DestinationTag', ) }) diff --git a/packages/xrpl/test/models/clawback.test.ts b/packages/xrpl/test/models/clawback.test.ts new file mode 100644 index 0000000000..b60f765311 --- /dev/null +++ b/packages/xrpl/test/models/clawback.test.ts @@ -0,0 +1,81 @@ +import { assert } from 'chai' + +import { validate, ValidationError } from '../../src' + +/** + * Clawback Transaction Verification Testing. + * + * Providing runtime verification testing for each specific transaction type. + */ +describe('Clawback', function () { + it(`verifies valid Clawback`, function () { + const validClawback = { + TransactionType: 'Clawback', + Amount: { + currency: 'DSH', + issuer: 'rcXY84C4g14iFp6taFXjjQGVeHqSCh9RX', + value: '43.11584856965009', + }, + Account: 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm', + } as any + + assert.doesNotThrow(() => validate(validClawback)) + }) + + it(`throws w/ missing Amount`, function () { + const missingAmount = { + TransactionType: 'Clawback', + Account: 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm', + } as any + + assert.throws( + () => validate(missingAmount), + ValidationError, + 'Clawback: missing field Amount', + ) + }) + + it(`throws w/ invalid Amount`, function () { + const invalidAmount = { + TransactionType: 'Clawback', + Amount: 100000000, + Account: 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm', + } as any + + assert.throws( + () => validate(invalidAmount), + ValidationError, + 'Clawback: invalid Amount', + ) + + const invalidStrAmount = { + TransactionType: 'Clawback', + Amount: '1234', + Account: 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm', + } as any + + assert.throws( + () => validate(invalidStrAmount), + ValidationError, + 'Clawback: invalid Amount', + ) + }) + + it(`throws w/ invalid holder Account`, function () { + const invalidAccount = { + TransactionType: 'Clawback', + Amount: { + currency: 'DSH', + issuer: 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm', + value: '43.11584856965009', + }, + Account: 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm', + } as any + + assert.throws( + () => validate(invalidAccount), + ValidationError, + 'Clawback: invalid holder Account', + ) + }) +}) diff --git a/packages/xrpl/test/models/escrowCancel.test.ts b/packages/xrpl/test/models/escrowCancel.test.ts index c4650a92ad..52f879cdeb 100644 --- a/packages/xrpl/test/models/escrowCancel.test.ts +++ b/packages/xrpl/test/models/escrowCancel.test.ts @@ -25,53 +25,60 @@ describe('EscrowCancel', function () { assert.doesNotThrow(() => validate(cancel)) }) + it(`Valid EscrowCancel with string OfferSequence`, function () { + cancel.OfferSequence = '7' + + assert.doesNotThrow(() => validateEscrowCancel(cancel)) + assert.doesNotThrow(() => validate(cancel)) + }) + it(`Invalid EscrowCancel missing owner`, function () { delete cancel.Owner assert.throws( () => validateEscrowCancel(cancel), ValidationError, - 'EscrowCancel: missing Owner', + 'EscrowCancel: missing field Owner', ) assert.throws( () => validate(cancel), ValidationError, - 'EscrowCancel: missing Owner', + 'EscrowCancel: missing field Owner', ) }) - it(`Invalid EscrowCancel missing offerSequence`, function () { + it(`Invalid EscrowCancel missing offerSequence or EscrowID`, function () { delete cancel.OfferSequence assert.throws( () => validateEscrowCancel(cancel), ValidationError, - 'EscrowCancel: missing OfferSequence', + 'EscrowCancel: must include OfferSequence or EscrowID', ) assert.throws( () => validate(cancel), ValidationError, - 'EscrowCancel: missing OfferSequence', + 'EscrowCancel: must include OfferSequence or EscrowID', ) }) - it(`Invalid OfferSequence`, function () { + it(`Invalid Owner`, function () { cancel.Owner = 10 assert.throws( () => validateEscrowCancel(cancel), ValidationError, - 'EscrowCancel: Owner must be a string', + 'EscrowCancel: invalid field Owner', ) assert.throws( () => validate(cancel), ValidationError, - 'EscrowCancel: Owner must be a string', + 'EscrowCancel: invalid field Owner', ) }) - it(`Invalid owner`, function () { - cancel.OfferSequence = '10' + it(`Invalid OfferSequence`, function () { + cancel.OfferSequence = 'random' assert.throws( () => validateEscrowCancel(cancel), diff --git a/packages/xrpl/test/models/escrowCreate.test.ts b/packages/xrpl/test/models/escrowCreate.test.ts index 1ec096122b..302d0a9d40 100644 --- a/packages/xrpl/test/models/escrowCreate.test.ts +++ b/packages/xrpl/test/models/escrowCreate.test.ts @@ -67,12 +67,12 @@ describe('EscrowCreate', function () { assert.throws( () => validateEscrowCreate(escrow), ValidationError, - 'EscrowCreate: Destination must be a string', + 'EscrowCreate: invalid field Destination', ) assert.throws( () => validate(escrow), ValidationError, - 'EscrowCreate: Destination must be a string', + 'EscrowCreate: invalid field Destination', ) }) @@ -137,12 +137,12 @@ describe('EscrowCreate', function () { assert.throws( () => validateEscrowCreate(escrow), ValidationError, - 'EscrowCreate: DestinationTag must be a number', + 'EscrowCreate: invalid field DestinationTag', ) assert.throws( () => validate(escrow), ValidationError, - 'EscrowCreate: DestinationTag must be a number', + 'EscrowCreate: invalid field DestinationTag', ) }) diff --git a/packages/xrpl/test/models/escrowFinish.test.ts b/packages/xrpl/test/models/escrowFinish.test.ts index 4caf04a7c7..e9d772a872 100644 --- a/packages/xrpl/test/models/escrowFinish.test.ts +++ b/packages/xrpl/test/models/escrowFinish.test.ts @@ -35,23 +35,30 @@ describe('EscrowFinish', function () { assert.doesNotThrow(() => validate(escrow)) }) + it(`verifies valid EscrowFinish w/string OfferSequence`, function () { + escrow.OfferSequence = '7' + + assert.doesNotThrow(() => validateEscrowFinish(escrow)) + assert.doesNotThrow(() => validate(escrow)) + }) + it(`throws w/ invalid Owner`, function () { escrow.Owner = 0x15415253 assert.throws( () => validateEscrowFinish(escrow), ValidationError, - 'EscrowFinish: Owner must be a string', + 'EscrowFinish: invalid field Owner', ) assert.throws( () => validate(escrow), ValidationError, - 'EscrowFinish: Owner must be a string', + 'EscrowFinish: invalid field Owner', ) }) it(`throws w/ invalid OfferSequence`, function () { - escrow.OfferSequence = '10' + escrow.OfferSequence = 'random' assert.throws( () => validateEscrowFinish(escrow), diff --git a/packages/xrpl/test/models/offerCancel.test.ts b/packages/xrpl/test/models/offerCancel.test.ts index 2aea40c3cc..47b845c031 100644 --- a/packages/xrpl/test/models/offerCancel.test.ts +++ b/packages/xrpl/test/models/offerCancel.test.ts @@ -38,31 +38,31 @@ describe('OfferCancel', function () { assert.doesNotThrow(() => validate(offer)) }) - it(`throws w/ OfferSequence must be a number`, function () { + it(`throws w/ invalid OfferSequence`, function () { offer.OfferSequence = '99' assert.throws( () => validateOfferCancel(offer), ValidationError, - 'OfferCancel: OfferSequence must be a number', + 'OfferCancel: invalid OfferSequence', ) assert.throws( () => validate(offer), ValidationError, - 'OfferCancel: OfferSequence must be a number', + 'OfferCancel: invalid OfferSequence', ) }) - it(`throws w/ missing OfferSequence`, function () { + it(`throws w/ must include OfferSequence or OfferID"`, function () { delete offer.OfferSequence assert.throws( () => validateOfferCancel(offer), ValidationError, - 'OfferCancel: missing field OfferSequence', + 'OfferCancel: must include OfferSequence or OfferID', ) assert.throws( () => validate(offer), ValidationError, - 'OfferCancel: missing field OfferSequence', + 'OfferCancel: must include OfferSequence or OfferID', ) }) }) diff --git a/packages/xrpl/test/models/oracleDelete.test.ts b/packages/xrpl/test/models/oracleDelete.test.ts new file mode 100644 index 0000000000..78188638bc --- /dev/null +++ b/packages/xrpl/test/models/oracleDelete.test.ts @@ -0,0 +1,40 @@ +import { assert } from 'chai' + +import { validate, ValidationError } from '../../src' +import { validateOracleDelete } from '../../src/models/transactions/oracleDelete' + +/** + * OracleDelete Transaction Verification Testing. + * + * Providing runtime verification testing for each specific transaction type. + */ +describe('OracleDelete', function () { + let tx + + beforeEach(function () { + tx = { + TransactionType: 'OracleDelete', + Account: 'rfmDuhDyLGgx94qiwf3YF8BUV5j6KSvE8', + OracleDocumentID: 1234, + } as any + }) + + it('verifies valid OracleDelete', function () { + assert.doesNotThrow(() => validateOracleDelete(tx)) + assert.doesNotThrow(() => validate(tx)) + }) + + it(`throws w/ missing field OracleDocumentID`, function () { + delete tx.OracleDocumentID + const errorMessage = 'OracleDelete: missing field OracleDocumentID' + assert.throws(() => validateOracleDelete(tx), ValidationError, errorMessage) + assert.throws(() => validate(tx), ValidationError, errorMessage) + }) + + it(`throws w/ invalid OracleDocumentID`, function () { + tx.OracleDocumentID = '1234' + const errorMessage = 'OracleDelete: invalid field OracleDocumentID' + assert.throws(() => validateOracleDelete(tx), ValidationError, errorMessage) + assert.throws(() => validate(tx), ValidationError, errorMessage) + }) +}) diff --git a/packages/xrpl/test/models/oracleSet.test.ts b/packages/xrpl/test/models/oracleSet.test.ts new file mode 100644 index 0000000000..e3fd0c3689 --- /dev/null +++ b/packages/xrpl/test/models/oracleSet.test.ts @@ -0,0 +1,196 @@ +import { stringToHex } from '@xrplf/isomorphic/dist/utils' +import { assert } from 'chai' + +import { validate, ValidationError } from '../../src' +import { validateOracleSet } from '../../src/models/transactions/oracleSet' + +/** + * OracleSet Transaction Verification Testing. + * + * Providing runtime verification testing for each specific transaction type. + */ +describe('OracleSet', function () { + let tx + + beforeEach(function () { + tx = { + TransactionType: 'OracleSet', + Account: 'rfmDuhDyLGgx94qiwf3YF8BUV5j6KSvE8', + OracleDocumentID: 1234, + LastUpdateTime: 768062172, + PriceDataSeries: [ + { + PriceData: { + BaseAsset: 'XAH', + QuoteAsset: 'USD', + AssetPrice: 740, + Scale: 3, + }, + }, + ], + Provider: stringToHex('chainlink'), + URI: '6469645F6578616D706C65', + AssetClass: stringToHex('currency'), + } as any + }) + + it('verifies valid OracleSet', function () { + assert.doesNotThrow(() => validateOracleSet(tx)) + assert.doesNotThrow(() => validate(tx)) + }) + + it(`throws w/ missing field OracleDocumentID`, function () { + delete tx.OracleDocumentID + const errorMessage = 'OracleSet: missing field OracleDocumentID' + assert.throws(() => validateOracleSet(tx), ValidationError, errorMessage) + assert.throws(() => validate(tx), ValidationError, errorMessage) + }) + + it(`throws w/ invalid OracleDocumentID`, function () { + tx.OracleDocumentID = '1234' + const errorMessage = 'OracleSet: invalid field OracleDocumentID' + assert.throws(() => validateOracleSet(tx), ValidationError, errorMessage) + assert.throws(() => validate(tx), ValidationError, errorMessage) + }) + + it(`throws w/ missing field LastUpdateTime`, function () { + delete tx.LastUpdateTime + const errorMessage = 'OracleSet: missing field LastUpdateTime' + assert.throws(() => validateOracleSet(tx), ValidationError, errorMessage) + assert.throws(() => validate(tx), ValidationError, errorMessage) + }) + + it(`throws w/ invalid LastUpdateTime`, function () { + tx.LastUpdateTime = '768062172' + const errorMessage = 'OracleSet: invalid field LastUpdateTime' + assert.throws(() => validateOracleSet(tx), ValidationError, errorMessage) + assert.throws(() => validate(tx), ValidationError, errorMessage) + }) + + it(`throws w/ missing invalid Provider`, function () { + tx.Provider = 1234 + const errorMessage = 'OracleSet: invalid field Provider' + assert.throws(() => validateOracleSet(tx), ValidationError, errorMessage) + assert.throws(() => validate(tx), ValidationError, errorMessage) + }) + + it(`throws w/ missing invalid URI`, function () { + tx.URI = 1234 + const errorMessage = 'OracleSet: invalid field URI' + assert.throws(() => validateOracleSet(tx), ValidationError, errorMessage) + assert.throws(() => validate(tx), ValidationError, errorMessage) + }) + + it(`throws w/ missing invalid AssetClass`, function () { + tx.AssetClass = 1234 + const errorMessage = 'OracleSet: invalid field AssetClass' + assert.throws(() => validateOracleSet(tx), ValidationError, errorMessage) + assert.throws(() => validate(tx), ValidationError, errorMessage) + }) + + it(`throws w/ invalid PriceDataSeries must be an array`, function () { + tx.PriceDataSeries = 1234 + const errorMessage = 'OracleSet: PriceDataSeries must be an array' + assert.throws(() => validateOracleSet(tx), ValidationError, errorMessage) + assert.throws(() => validate(tx), ValidationError, errorMessage) + }) + + it(`throws w/ invalid PriceDataSeries must be an array of objects`, function () { + tx.PriceDataSeries = [1234] + const errorMessage = + 'OracleSet: PriceDataSeries must be an array of objects' + assert.throws(() => validateOracleSet(tx), ValidationError, errorMessage) + assert.throws(() => validate(tx), ValidationError, errorMessage) + }) + + it(`throws w/ PriceDataSeries must have at most 10 PriceData objects`, function () { + tx.PriceDataSeries = new Array(11).fill({ + PriceData: { + BaseAsset: 'XAH', + QuoteAsset: 'USD', + AssetPrice: 740, + Scale: 3, + }, + }) + const errorMessage = + 'OracleSet: PriceDataSeries must have at most 10 PriceData objects' + assert.throws(() => validateOracleSet(tx), ValidationError, errorMessage) + assert.throws(() => validate(tx), ValidationError, errorMessage) + }) + + it(`throws w/ PriceDataSeries must have a PriceData object`, function () { + delete tx.PriceDataSeries[0].PriceData + const errorMessage = + 'OracleSet: PriceDataSeries must have a `PriceData` object' + assert.throws(() => validateOracleSet(tx), ValidationError, errorMessage) + assert.throws(() => validate(tx), ValidationError, errorMessage) + }) + + it(`throws w/ PriceDataSeries must only have a single PriceData object`, function () { + tx.PriceDataSeries[0].ExtraProp = 'extraprop' + const errorMessage = + 'OracleSet: PriceDataSeries must only have a single PriceData object' + assert.throws(() => validateOracleSet(tx), ValidationError, errorMessage) + assert.throws(() => validate(tx), ValidationError, errorMessage) + }) + + it(`throws w/ missing BaseAsset of PriceDataSeries`, function () { + delete tx.PriceDataSeries[0].PriceData.BaseAsset + const errorMessage = + 'OracleSet: PriceDataSeries must have a `BaseAsset` string' + assert.throws(() => validateOracleSet(tx), ValidationError, errorMessage) + assert.throws(() => validate(tx), ValidationError, errorMessage) + }) + + it(`throws w/ missing QuoteAsset of PriceDataSeries`, function () { + delete tx.PriceDataSeries[0].PriceData.QuoteAsset + const errorMessage = + 'OracleSet: PriceDataSeries must have a `QuoteAsset` string' + assert.throws(() => validateOracleSet(tx), ValidationError, errorMessage) + assert.throws(() => validate(tx), ValidationError, errorMessage) + }) + + it(`throws w/ missing AssetPrice with Scale present of PriceDataSeries`, function () { + delete tx.PriceDataSeries[0].PriceData.AssetPrice + const errorMessage = + 'OracleSet: PriceDataSeries must have both `AssetPrice` and `Scale` if any are present' + assert.throws(() => validateOracleSet(tx), ValidationError, errorMessage) + assert.throws(() => validate(tx), ValidationError, errorMessage) + }) + + it(`throws w/ missing Scale with AssetPrice present of PriceDataSeries`, function () { + delete tx.PriceDataSeries[0].PriceData.Scale + const errorMessage = + 'OracleSet: PriceDataSeries must have both `AssetPrice` and `Scale` if any are present' + assert.throws(() => validateOracleSet(tx), ValidationError, errorMessage) + assert.throws(() => validate(tx), ValidationError, errorMessage) + }) + + it(`throws w/ invalid AssetPrice of PriceDataSeries`, function () { + tx.PriceDataSeries[0].PriceData.AssetPrice = '1234' + const errorMessage = 'OracleSet: invalid field AssetPrice' + assert.throws(() => validateOracleSet(tx), ValidationError, errorMessage) + assert.throws(() => validate(tx), ValidationError, errorMessage) + }) + + it(`throws w/ invalid Scale of PriceDataSeries`, function () { + tx.PriceDataSeries[0].PriceData.Scale = '1234' + const errorMessage = 'OracleSet: invalid field Scale' + assert.throws(() => validateOracleSet(tx), ValidationError, errorMessage) + assert.throws(() => validate(tx), ValidationError, errorMessage) + }) + + it(`throws w/ Scale must be in range 0-10 when above max`, function () { + tx.PriceDataSeries[0].PriceData.Scale = 11 + const errorMessage = 'OracleSet: Scale must be in range 0-10' + assert.throws(() => validateOracleSet(tx), ValidationError, errorMessage) + assert.throws(() => validate(tx), ValidationError, errorMessage) + }) + + it(`throws w/ Scale must be in range 0-10 when below min`, function () { + tx.PriceDataSeries[0].PriceData.Scale = -1 + const errorMessage = 'OracleSet: Scale must be in range 0-10' + assert.throws(() => validateOracleSet(tx), ValidationError, errorMessage) + assert.throws(() => validate(tx), ValidationError, errorMessage) + }) +}) diff --git a/packages/xrpl/test/models/payment.test.ts b/packages/xrpl/test/models/payment.test.ts index d0289c513c..a21eaddaf6 100644 --- a/packages/xrpl/test/models/payment.test.ts +++ b/packages/xrpl/test/models/payment.test.ts @@ -102,12 +102,12 @@ describe('Payment', function () { assert.throws( () => validatePayment(paymentTransaction), ValidationError, - 'PaymentTransaction: missing field Destination', + 'Payment: missing field Destination', ) assert.throws( () => validate(paymentTransaction), ValidationError, - 'PaymentTransaction: missing field Destination', + 'Payment: missing field Destination', ) }) @@ -116,12 +116,47 @@ describe('Payment', function () { assert.throws( () => validatePayment(paymentTransaction), ValidationError, - 'PaymentTransaction: invalid Destination', + 'Payment: invalid field Destination', ) assert.throws( () => validate(paymentTransaction), ValidationError, - 'PaymentTransaction: invalid Destination', + 'Payment: invalid field Destination', + ) + }) + + it(`throws when Destination is invalid classic address`, function () { + paymentTransaction.Destination = 'rABCD' + assert.throws( + () => validatePayment(paymentTransaction), + ValidationError, + 'Payment: invalid field Destination', + ) + assert.throws( + () => validate(paymentTransaction), + ValidationError, + 'Payment: invalid field Destination', + ) + }) + + it(`does not throw when Destination is a valid x-address`, function () { + paymentTransaction.Destination = + 'X7WZKEeNVS2p9Tire9DtNFkzWBZbFtSiS2eDBib7svZXuc2' + assert.doesNotThrow(() => validatePayment(paymentTransaction)) + assert.doesNotThrow(() => validate(paymentTransaction)) + }) + + it(`throws when Destination is an empty string`, function () { + paymentTransaction.Destination = '' + assert.throws( + () => validatePayment(paymentTransaction), + ValidationError, + 'Payment: invalid field Destination', + ) + assert.throws( + () => validate(paymentTransaction), + ValidationError, + 'Payment: invalid field Destination', ) }) @@ -130,12 +165,12 @@ describe('Payment', function () { assert.throws( () => validatePayment(paymentTransaction), ValidationError, - 'PaymentTransaction: DestinationTag must be a number', + 'Payment: invalid field DestinationTag', ) assert.throws( () => validate(paymentTransaction), ValidationError, - 'PaymentTransaction: DestinationTag must be a number', + 'Payment: invalid field DestinationTag', ) }) diff --git a/packages/xrpl/test/models/paymentChannelCreate.test.ts b/packages/xrpl/test/models/paymentChannelCreate.test.ts index 8bf30ef34a..a465195870 100644 --- a/packages/xrpl/test/models/paymentChannelCreate.test.ts +++ b/packages/xrpl/test/models/paymentChannelCreate.test.ts @@ -61,12 +61,12 @@ describe('PaymentChannelCreate', function () { assert.throws( () => validatePaymentChannelCreate(channel), ValidationError, - 'PaymentChannelCreate: missing Destination', + 'PaymentChannelCreate: missing field Destination', ) assert.throws( () => validate(channel), ValidationError, - 'PaymentChannelCreate: missing Destination', + 'PaymentChannelCreate: missing field Destination', ) }) @@ -121,12 +121,12 @@ describe('PaymentChannelCreate', function () { assert.throws( () => validatePaymentChannelCreate(channel), ValidationError, - 'PaymentChannelCreate: Destination must be a string', + 'PaymentChannelCreate: invalid field Destination', ) assert.throws( () => validate(channel), ValidationError, - 'PaymentChannelCreate: Destination must be a string', + 'PaymentChannelCreate: invalid field Destination', ) }) @@ -166,12 +166,12 @@ describe('PaymentChannelCreate', function () { assert.throws( () => validatePaymentChannelCreate(channel), ValidationError, - 'PaymentChannelCreate: DestinationTag must be a number', + 'PaymentChannelCreate: invalid field DestinationTag', ) assert.throws( () => validate(channel), ValidationError, - 'PaymentChannelCreate: DestinationTag must be a number', + 'PaymentChannelCreate: invalid field DestinationTag', ) }) diff --git a/packages/xrpl/test/models/trustSet.test.ts b/packages/xrpl/test/models/trustSet.test.ts index c53f97aab6..ce1b05ebcd 100644 --- a/packages/xrpl/test/models/trustSet.test.ts +++ b/packages/xrpl/test/models/trustSet.test.ts @@ -16,7 +16,7 @@ describe('TrustSet', function () { TransactionType: 'TrustSet', Account: 'rUn84CUYbNjRoTQ6mSW7BVJPSVJNLb1QLo', LimitAmount: { - currency: 'XAH', + currency: 'USD', issuer: 'rcXY84C4g14iFp6taFXjjQGVeHqSCh9RX', value: '4329.23', }, diff --git a/packages/xrpl/test/models/utils.test.ts b/packages/xrpl/test/models/utils.test.ts index 1e6c7aae6c..abfb5e4af4 100644 --- a/packages/xrpl/test/models/utils.test.ts +++ b/packages/xrpl/test/models/utils.test.ts @@ -100,7 +100,7 @@ describe('Models Utils', function () { Amount: '1234', Destination: 'rfkE1aSy9G8Upk4JssnwBxhEv5p4mn2KTy', Flags: { - tfNoDirectRipple: false, + tfNoRippleDirect: false, tfPartialPayment: true, tfLimitQuality: true, }, @@ -168,6 +168,7 @@ describe('Models Utils', function () { AccountRootFlags.lsfDisallowIncomingPayChan | AccountRootFlags.lsfDisallowIncomingTrustline | AccountRootFlags.lsfDisallowIncomingRemit + // AccountRootFlags.lsfAllowTrustLineClawback const parsed = parseAccountRootFlags(accountRootFlags) @@ -186,6 +187,7 @@ describe('Models Utils', function () { parsed.lsfDisallowIncomingPayChan && parsed.lsfDisallowIncomingTrustline && parsed.lsfDisallowIncomingRemit, + // parsed.lsfAllowTrustLineClawback, ) }) @@ -206,6 +208,7 @@ describe('Models Utils', function () { assert.isUndefined(parsed.lsfDisallowIncomingPayChan) assert.isUndefined(parsed.lsfDisallowIncomingTrustline) assert.isUndefined(parsed.lsfDisallowIncomingRemit) + // assert.isUndefined(parsed.lsfAllowTrustLineClawback) }) }) }) diff --git a/packages/xrpl/test/setupClient.ts b/packages/xrpl/test/setupClient.ts index 08ec1e91b3..ca365be25f 100644 --- a/packages/xrpl/test/setupClient.ts +++ b/packages/xrpl/test/setupClient.ts @@ -1,15 +1,13 @@ import { Client } from '../src/client' -// eslint-disable-next-line import/no-deprecated -- Will remove in 3.0.0 -import BroadcastClient from '../src/client/BroadcastClient' import createMockRippled, { type MockedWebSocketServer, } from './createMockRippled' +import rippled from './fixtures/rippled' import { destroyServer, getFreePort } from './testUtils' export interface XrplTestContext { - // eslint-disable-next-line import/no-deprecated -- Will remove in 3.0.0 - client: Client | BroadcastClient + client: Client _mockedServerPort?: number mockRippled?: MockedWebSocketServer mocks?: MockedWebSocketServer[] @@ -29,20 +27,10 @@ async function setupMockRippledConnection( context.client.on('error', () => { // We must have an error listener attached for reconnect errors }) - - return context.client.connect().then(() => context) -} - -async function setupMockRippledConnectionForBroadcast( - ports: number[], -): Promise { - const servers = ports.map((port) => `ws://localhost:${port}`) - const context: XrplTestContext = { - mocks: ports.map((port) => createMockRippled(port)), - // eslint-disable-next-line import/no-deprecated -- Will remove in 3.0.0 - client: new BroadcastClient(servers), - servers: ports, - } + context.mockRippled?.addResponse( + 'server_info', + rippled.server_info.withNetworkId, + ) return context.client.connect().then(() => context) } @@ -53,12 +41,6 @@ async function setupClient(): Promise { }) } -async function setupBroadcast(): Promise { - return Promise.all([getFreePort(), getFreePort()]).then(async (ports) => { - return setupMockRippledConnectionForBroadcast(ports) - }) -} - async function teardownClient( incomingContext: XrplTestContext, done?: () => void, @@ -93,4 +75,4 @@ async function teardownClient( }) } -export { setupClient, teardownClient, setupBroadcast, createMockRippled } +export { setupClient, teardownClient, createMockRippled } diff --git a/packages/xrpl/test/shamap.test.ts b/packages/xrpl/test/shamap.test.ts index b571c76716..c19d7a829c 100644 --- a/packages/xrpl/test/shamap.test.ts +++ b/packages/xrpl/test/shamap.test.ts @@ -1,4 +1,4 @@ -import assert from 'assert' +import { assert } from 'chai' import SHAMap, { NodeType } from '../src/utils/hashes/SHAMap' diff --git a/packages/xrpl/test/utils/collections.test.ts b/packages/xrpl/test/utils/collections.test.ts new file mode 100644 index 0000000000..ba9b93f913 --- /dev/null +++ b/packages/xrpl/test/utils/collections.test.ts @@ -0,0 +1,27 @@ +import { groupBy, omitBy } from '../../src/utils/collections' + +describe('Collection Utils:', () => { + // Inspired from tests at https://github.com/lodash/lodash/blob/main/test/groupBy.spec.js + describe('groupBy', () => { + const array = [6.1, 4.2, 6.3] + + it('should transform keys by `iteratee`', () => { + const actual = groupBy(array, Math.floor) + expect(actual).toEqual({ 4: [4.2], 6: [6.1, 6.3] }) + }) + + it('should transform keys by `iteratee` that returns strings', () => { + const actual = groupBy(array, (item) => Math.floor(item).toString()) + expect(actual).toEqual({ '4': [4.2], '6': [6.1, 6.3] }) + }) + }) + + // Taken from https://github.com/lodash/lodash/blob/main/test/omitBy.spec.js + describe('omitBy', () => { + it('should work with a predicate argument', () => { + const object = { aa: 1, bb: 2, cc: 3, dd: 4 } + const actual = omitBy(object, (num) => num !== 2 && num !== 4) + expect(actual).toEqual({ bb: 2, dd: 4 }) + }) + }) +}) diff --git a/packages/xrpl/test/utils/createCrossChainPayment.test.ts b/packages/xrpl/test/utils/createCrossChainPayment.test.ts deleted file mode 100644 index 8d8f18483d..0000000000 --- a/packages/xrpl/test/utils/createCrossChainPayment.test.ts +++ /dev/null @@ -1,124 +0,0 @@ -import { assert } from 'chai' - -import { createCrossChainPayment, convertStringToHex, Payment } from '../../src' - -describe('createCrossChainPayment', function () { - it('successful xchain payment creation', function () { - const payment: Payment = { - TransactionType: 'Payment', - Account: 'rRandom', - Destination: 'rRandom2', - Amount: '3489303', - } - const sidechainAccount = 'rSidechain' - - const expectedPayment = { - ...payment, - Memos: [ - { - Memo: { - MemoData: convertStringToHex(sidechainAccount), - }, - }, - ], - } - - const resultPayment = createCrossChainPayment(payment, sidechainAccount) - assert.deepEqual(resultPayment, expectedPayment) - - // ensure that the original object wasn't modified - assert.notDeepEqual(resultPayment, payment) - }) - - it('successful xchain payment creation with memo', function () { - const memo = { - Memo: { - MemoData: 'deadbeef', - }, - } - const payment: Payment = { - TransactionType: 'Payment', - Account: 'rRandom', - Destination: 'rRandom2', - Amount: '3489303', - Memos: [memo], - } - const sidechainAccount = 'rSidechain' - - const expectedPayment = { - ...payment, - Memos: [ - { - Memo: { - MemoData: convertStringToHex(sidechainAccount), - }, - }, - memo, - ], - } - - const resultPayment = createCrossChainPayment(payment, sidechainAccount) - assert.deepEqual(resultPayment, expectedPayment) - - // ensure that the original object wasn't modified - assert.notDeepEqual(resultPayment, payment) - }) - - it('removes TxnSignature', function () { - const payment: Payment = { - TransactionType: 'Payment', - Account: 'rRandom', - Destination: 'rRandom2', - Amount: '3489303', - TxnSignature: 'asodfiuaosdfuaosd', - } - const sidechainAccount = 'rSidechain' - - const expectedPayment = { - ...payment, - Memos: [ - { - Memo: { - MemoData: convertStringToHex(sidechainAccount), - }, - }, - ], - } - delete expectedPayment.TxnSignature - - const resultPayment = createCrossChainPayment(payment, sidechainAccount) - assert.deepEqual(resultPayment, expectedPayment) - - // ensure that the original object wasn't modified - assert.notDeepEqual(resultPayment, payment) - }) - - it('fails with 3 memos', function () { - const payment: Payment = { - TransactionType: 'Payment', - Account: 'rRandom', - Destination: 'rRandom2', - Amount: '3489303', - Memos: [ - { - Memo: { - MemoData: '2934723843ace', - }, - }, - { - Memo: { - MemoData: '2934723843ace', - }, - }, - { - Memo: { - MemoData: '2934723843ace', - }, - }, - ], - } - assert.throws(() => { - createCrossChainPayment(payment, 'rSidechain') - }, /Cannot have more than 2 memos/u) - }) -}) diff --git a/packages/xrpl/test/utils/dropsToXrp.test.ts b/packages/xrpl/test/utils/dropsToXrp.test.ts index fdfbfdee9b..180512ce7d 100644 --- a/packages/xrpl/test/utils/dropsToXrp.test.ts +++ b/packages/xrpl/test/utils/dropsToXrp.test.ts @@ -6,72 +6,72 @@ import { dropsToXrp } from '../../src/utils' describe('dropsToXrp', function () { it('works with a typical amount', function () { const xrp = dropsToXrp('2000000') - assert.strictEqual(xrp, '2', '2 million drops equals 2 XRP') + assert.strictEqual(xrp, 2, '2 million drops equals 2 XRP') }) it('works with fractions', function () { let xrp = dropsToXrp('3456789') - assert.strictEqual(xrp, '3.456789', '3,456,789 drops equals 3.456789 XRP') + assert.strictEqual(xrp, 3.456789, '3,456,789 drops equals 3.456789 XRP') xrp = dropsToXrp('3400000') - assert.strictEqual(xrp, '3.4', '3,400,000 drops equals 3.4 XRP') + assert.strictEqual(xrp, 3.4, '3,400,000 drops equals 3.4 XRP') xrp = dropsToXrp('1') - assert.strictEqual(xrp, '0.000001', '1 drop equals 0.000001 XRP') + assert.strictEqual(xrp, 0.000001, '1 drop equals 0.000001 XRP') xrp = dropsToXrp('1.0') - assert.strictEqual(xrp, '0.000001', '1.0 drops equals 0.000001 XRP') + assert.strictEqual(xrp, 0.000001, '1.0 drops equals 0.000001 XRP') xrp = dropsToXrp('1.00') - assert.strictEqual(xrp, '0.000001', '1.00 drops equals 0.000001 XRP') + assert.strictEqual(xrp, 0.000001, '1.00 drops equals 0.000001 XRP') }) it('works with zero', function () { let xrp = dropsToXrp('0') - assert.strictEqual(xrp, '0', '0 drops equals 0 XRP') + assert.strictEqual(xrp, 0, '0 drops equals 0 XRP') // negative zero is equivalent to zero xrp = dropsToXrp('-0') - assert.strictEqual(xrp, '0', '-0 drops equals 0 XRP') + assert.strictEqual(xrp, 0, '-0 drops equals 0 XRP') xrp = dropsToXrp('0.00') - assert.strictEqual(xrp, '0', '0.00 drops equals 0 XRP') + assert.strictEqual(xrp, 0, '0.00 drops equals 0 XRP') xrp = dropsToXrp('000000000') - assert.strictEqual(xrp, '0', '000000000 drops equals 0 XRP') + assert.strictEqual(xrp, 0, '000000000 drops equals 0 XRP') }) it('works with a negative value', function () { const xrp = dropsToXrp('-2000000') - assert.strictEqual(xrp, '-2', '-2 million drops equals -2 XRP') + assert.strictEqual(xrp, -2, '-2 million drops equals -2 XRP') }) it('works with a value ending with a decimal point', function () { let xrp = dropsToXrp('2000000.') - assert.strictEqual(xrp, '2', '2000000. drops equals 2 XRP') + assert.strictEqual(xrp, 2, '2000000. drops equals 2 XRP') xrp = dropsToXrp('-2000000.') - assert.strictEqual(xrp, '-2', '-2000000. drops equals -2 XRP') + assert.strictEqual(xrp, -2, '-2000000. drops equals -2 XRP') }) it('works with BigNumber objects', function () { let xrp = dropsToXrp(new BigNumber(2000000)) - assert.strictEqual(xrp, '2', '(BigNumber) 2 million drops equals 2 XRP') + assert.strictEqual(xrp, 2, '(BigNumber) 2 million drops equals 2 XRP') xrp = dropsToXrp(new BigNumber(-2000000)) - assert.strictEqual(xrp, '-2', '(BigNumber) -2 million drops equals -2 XRP') + assert.strictEqual(xrp, -2, '(BigNumber) -2 million drops equals -2 XRP') xrp = dropsToXrp(new BigNumber(2345678)) assert.strictEqual( xrp, - '2.345678', + 2.345678, '(BigNumber) 2,345,678 drops equals 2.345678 XRP', ) xrp = dropsToXrp(new BigNumber(-2345678)) assert.strictEqual( xrp, - '-2.345678', + -2.345678, '(BigNumber) -2,345,678 drops equals -2.345678 XRP', ) }) @@ -79,27 +79,27 @@ describe('dropsToXrp', function () { it('works with a number', function () { // This is not recommended. Use strings or BigNumber objects to avoid precision errors. let xrp = dropsToXrp(2000000) - assert.strictEqual(xrp, '2', '(number) 2 million drops equals 2 XRP') + assert.strictEqual(xrp, 2, '(number) 2 million drops equals 2 XRP') xrp = dropsToXrp(-2000000) - assert.strictEqual(xrp, '-2', '(number) -2 million drops equals -2 XRP') + assert.strictEqual(xrp, -2, '(number) -2 million drops equals -2 XRP') }) it('works with scientific notation', function () { const xrp = dropsToXrp('1e6') assert.strictEqual( xrp, - '1', + 1, '(scientific notation string) 1e6 drops equals 1 XRP', ) }) it('throws with an amount with too many decimal places', function () { assert.throws(() => { - dropsToXrp('1.2') + dropsToXrp(1.2) }, /has too many decimal places/u) assert.throws(() => { - dropsToXrp('0.10') + dropsToXrp(0.1) }, /has too many decimal places/u) }) diff --git a/packages/xrpl/test/utils/getNFTokenID.test.ts b/packages/xrpl/test/utils/getNFTokenID.test.ts index 5064b81aed..6720fb46ef 100644 --- a/packages/xrpl/test/utils/getNFTokenID.test.ts +++ b/packages/xrpl/test/utils/getNFTokenID.test.ts @@ -1,19 +1,18 @@ import { assert } from 'chai' import { getNFTokenID } from '../../src' -import * as NFTokenResponse from '../fixtures/rippled/mintNFTMeta.json' -import * as NFTokenResponse2 from '../fixtures/rippled/mintNFTMeta2.json' +import fixtures from '../fixtures/rippled' describe('getNFTokenID', function () { it('decode a valid NFTokenID', function () { - const result = getNFTokenID(NFTokenResponse.meta) + const result = getNFTokenID(fixtures.tx.NFTokenMint.meta) const expectedNFTokenID = '00081388DC1AB4937C899037B2FDFC3CB20F6F64E73120BB5F8AA66A00000228' assert.equal(result, expectedNFTokenID) }) it('decode a different valid NFTokenID', function () { - const result = getNFTokenID(NFTokenResponse2.meta) + const result = getNFTokenID(fixtures.tx.NFTokenMint2.meta) const expectedNFTokenID = '0008125CBE4B401B2F62ED35CC67362165AA813CCA06316FFA766254000003EE' assert.equal(result, expectedNFTokenID) @@ -21,8 +20,8 @@ describe('getNFTokenID', function () { it('fails with nice error when given raw response instead of meta', function () { assert.throws(() => { - // @ts-expect-error - Validating error for javascript users - const _ = getNFTokenID(NFTokenResponse) + // @ts-expect-error -- on purpose, to check the error + const _ = getNFTokenID(fixtures.tx.NFTokenMint) }, /^Unable to parse the parameter given to getNFTokenID.*/u) }) }) diff --git a/packages/xrpl/test/utils/getXChainClaimID.test.ts b/packages/xrpl/test/utils/getXChainClaimID.test.ts new file mode 100644 index 0000000000..fba28528eb --- /dev/null +++ b/packages/xrpl/test/utils/getXChainClaimID.test.ts @@ -0,0 +1,25 @@ +import { assert } from 'chai' + +import { getXChainClaimID } from '../../src' +import fixtures from '../fixtures/rippled' + +describe('getXChainClaimID', function () { + it('decode a valid XChainClaimID', function () { + const result = getXChainClaimID(fixtures.tx.XChainCreateClaimID.meta) + const expectedXChainClaimID = 'b0' + assert.equal(result, expectedXChainClaimID) + }) + + it('decode a different valid XChainClaimID', function () { + const result = getXChainClaimID(fixtures.tx.XChainCreateClaimID2.meta) + const expectedXChainClaimID = 'ac' + assert.equal(result, expectedXChainClaimID) + }) + + it('fails with nice error when given raw response instead of meta', function () { + assert.throws(() => { + // @ts-expect-error -- on purpose, to check the error + const _ = getXChainClaimID(fixtures.tx.XChainCreateClaimID) + }, /^Unable to parse the parameter given to getXChainClaimID.*/u) + }) +}) diff --git a/packages/xrpl/test/utils/hasNextPage.test.ts b/packages/xrpl/test/utils/hasNextPage.test.ts index d507a263df..c3487331c3 100644 --- a/packages/xrpl/test/utils/hasNextPage.test.ts +++ b/packages/xrpl/test/utils/hasNextPage.test.ts @@ -5,12 +5,12 @@ import fixtures from '../fixtures/rippled' describe('hasNextPage', function () { it('returns true when response has marker', function () { - const firstPage = fixtures.ledger_data.first_page + const firstPage = fixtures.ledger_data.firstPage assert.isTrue(hasNextPage(firstPage)) }) it('returns false when response does not have marker', function () { - const lastPage = fixtures.ledger_data.last_page + const lastPage = fixtures.ledger_data.lastPage assert.isFalse(hasNextPage(lastPage)) }) }) diff --git a/packages/xrpl/test/utils/hashes.test.ts b/packages/xrpl/test/utils/hashes.test.ts index 7340ffff59..907c6d7d29 100644 --- a/packages/xrpl/test/utils/hashes.test.ts +++ b/packages/xrpl/test/utils/hashes.test.ts @@ -1,10 +1,15 @@ import fs from 'fs' import path from 'path' -import { encode } from '@transia/ripple-binary-codec' import { assert } from 'chai' +import { encode } from 'ripple-binary-codec' -import { OfferCreate, Transaction, ValidationError } from '../../src' +import { + EnableAmendment, + OfferCreate, + Transaction, + ValidationError, +} from '../../src' import { hashStateTree, hashTxTree, @@ -177,6 +182,7 @@ describe('Hashes', function () { it('Throw an error when hashing an unsigned transaction', function () { const offerCreateWithNoSignature: OfferCreate = { ...(fixtures.tx.OfferCreateSell.result as OfferCreate), + SigningPubKey: undefined, TxnSignature: undefined, } @@ -189,6 +195,7 @@ describe('Hashes', function () { it('Throw when hashing an unsigned transaction blob', function () { const encodedOfferCreateWithNoSignature: string = encode({ ...fixtures.tx.OfferCreateSell.result, + SigningPubKey: undefined, TxnSignature: undefined, }) @@ -197,4 +204,22 @@ describe('Hashes', function () { ValidationError, ) }) + + it('hashSignedTx - pseudo-transaction', function () { + const transaction: EnableAmendment = { + Account: 'rrrrrrrrrrrrrrrrrrrrrhoLvTp', + Amendment: + 'AE35ABDEFBDE520372B31C957020B34A7A4A9DC3115A69803A44016477C84D6E', + Fee: '0', + LedgerSequence: 84206081, + Sequence: 0, + SigningPubKey: '', + TransactionType: 'EnableAmendment', + } + + assert.equal( + hashSignedTx(transaction), + 'CA4562711E4679FE9317DD767871E90A404C7A8B84FAFD35EC2CF0231F1F6DAF', + ) + }) }) diff --git a/packages/xrpl/test/utils/parseNFTokenID.test.ts b/packages/xrpl/test/utils/parseNFTokenID.test.ts index f2f9cfb71f..c265700b0c 100644 --- a/packages/xrpl/test/utils/parseNFTokenID.test.ts +++ b/packages/xrpl/test/utils/parseNFTokenID.test.ts @@ -19,6 +19,36 @@ describe('parseNFTokenID', function () { assertResultMatch(result, expected) }) + it('decode a valid NFTokenID with big taxon', function () { + const nftokenID = + '000000005EC8BC31F0415E5DD4A8AAAC3718249F8F27323C2EEE87B80000001E' + const result = parseNFTokenID(nftokenID) + const expected = { + NFTokenID: nftokenID, + Flags: 0, + TransferFee: 0, + Issuer: 'r9ewzMXVRAD9CjZQ6LTQ4P21vUUucDuqd4', + Taxon: 2147483649, + Sequence: 30, + } + assertResultMatch(result, expected) + }) + + it('decode a valid NFTokenID with big sequence', function () { + const nftokenID = + '00081388BE9E48FA0E6C95A3E970EB9503E3D3967E8DF95041FED82604D933AB' + const result = parseNFTokenID(nftokenID) + const expected = { + NFTokenID: nftokenID, + Flags: 8, + TransferFee: 5000, + Issuer: 'rJ4urHeGPr69TsC9TY9u8N965AdD7S3XEY', + Taxon: 96, + Sequence: 81343403, + } + assertResultMatch(result, expected) + }) + it('fail when given invalid NFTokenID', function () { assert.throws(() => { parseNFTokenID('ABCD') diff --git a/packages/xrpl/test/wallet/authorizeChannel.test.ts b/packages/xrpl/test/wallet/authorizeChannel.test.ts new file mode 100644 index 0000000000..f8fd1cb9ca --- /dev/null +++ b/packages/xrpl/test/wallet/authorizeChannel.test.ts @@ -0,0 +1,29 @@ +import { assert } from 'chai' + +import { ECDSA, Wallet } from '../../src' +import { authorizeChannel } from '../../src/Wallet/authorizeChannel' + +it('authorizeChannel succeeds with secp256k1 seed', function () { + const secpWallet = Wallet.fromSeed('snGHNrPbHrdUcszeuDEigMdC1Lyyd', { + algorithm: ECDSA.secp256k1, + }) + const channelId = + '5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3' + const amount = '1000000' + + assert.equal( + authorizeChannel(secpWallet, channelId, amount), + '304402204E7052F33DDAFAAA55C9F5B132A5E50EE95B2CF68C0902F61DFE77299BC893740220353640B951DCD24371C16868B3F91B78D38B6F3FD1E826413CDF891FA8250AAC', + ) +}) + +it('authorizeChannel succeeds with ed25519 seed', function () { + const edWallet = Wallet.fromSeed('sEdSuqBPSQaood2DmNYVkwWTn1oQTj2') + const channelId = + '5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3' + const amount = '1000000' + assert.equal( + authorizeChannel(edWallet, channelId, amount), + '7E1C217A3E4B3C107B7A356E665088B4FBA6464C48C58267BEF64975E3375EA338AE22E6714E3F5E734AE33E6B97AAD59058E1E196C1F92346FC1498D0674404', + ) +}) diff --git a/packages/xrpl/test/wallet/fundWallet.test.ts b/packages/xrpl/test/wallet/fundWallet.test.ts index c95a27b59c..3e061faad8 100644 --- a/packages/xrpl/test/wallet/fundWallet.test.ts +++ b/packages/xrpl/test/wallet/fundWallet.test.ts @@ -1,6 +1,5 @@ import { assert } from 'chai' -import type { Client } from '../../src/client' import { FaucetNetwork, FaucetNetworkPaths, @@ -26,10 +25,7 @@ describe('Get Faucet host ', function () { // @ts-expect-error Intentionally modifying private data for test testContext.client.connection.url = FaucetNetwork.Devnet - assert.strictEqual( - getFaucetHost(testContext.client as Client), - expectedFaucet, - ) + assert.strictEqual(getFaucetHost(testContext.client), expectedFaucet) }) it('returns the Testnet host', function () { @@ -37,10 +33,7 @@ describe('Get Faucet host ', function () { // @ts-expect-error Intentionally modifying private data for test testContext.client.connection.url = FaucetNetwork.Testnet - assert.strictEqual( - getFaucetHost(testContext.client as Client), - expectedFaucet, - ) + assert.strictEqual(getFaucetHost(testContext.client), expectedFaucet) }) it('returns the Testnet host with the XRPL Labs server', function () { @@ -48,21 +41,7 @@ describe('Get Faucet host ', function () { // @ts-expect-error Intentionally modifying private data for test testContext.client.connection.url = 'wss://testnet.xrpl-labs.com' - assert.strictEqual( - getFaucetHost(testContext.client as Client), - expectedFaucet, - ) - }) - - it('returns the Hooks V2 Testnet host', function () { - const expectedFaucet = FaucetNetwork.HooksV2Testnet - // @ts-expect-error Intentionally modifying private data for test - testContext.client.connection.url = FaucetNetwork.HooksV2Testnet - - assert.strictEqual( - getFaucetHost(testContext.client as Client), - expectedFaucet, - ) + assert.strictEqual(getFaucetHost(testContext.client), expectedFaucet) }) it('returns the correct faucetPath for Devnet host', function () { @@ -71,18 +50,7 @@ describe('Get Faucet host ', function () { testContext.client.connection.url = FaucetNetwork.Devnet assert.strictEqual( - getDefaultFaucetPath(getFaucetHost(testContext.client as Client)), - expectedFaucetPath, - ) - }) - - it('returns the correct faucetPath for Hooks V2 Testnet host', function () { - const expectedFaucetPath = FaucetNetworkPaths[FaucetNetwork.HooksV2Testnet] - // @ts-expect-error Intentionally modifying private data for test - testContext.client.connection.url = FaucetNetwork.HooksV2Testnet - - assert.strictEqual( - getDefaultFaucetPath(getFaucetHost(testContext.client as Client)), + getDefaultFaucetPath(getFaucetHost(testContext.client)), expectedFaucetPath, ) }) diff --git a/packages/xrpl/test/wallet/index.test.ts b/packages/xrpl/test/wallet/index.test.ts index 6c6a09b972..62be79642c 100644 --- a/packages/xrpl/test/wallet/index.test.ts +++ b/packages/xrpl/test/wallet/index.test.ts @@ -1,9 +1,14 @@ -import { decode } from '@transia/ripple-binary-codec' import { assert } from 'chai' - -import { NFTokenMint, Payment, Transaction } from '../../src' +import { decode } from 'ripple-binary-codec' + +import { + NFTokenMint, + Payment, + Transaction, + walletFromSecretNumbers, +} from '../../src' import ECDSA from '../../src/ECDSA' -import Wallet from '../../src/Wallet' +import { Wallet } from '../../src/Wallet' import requests from '../fixtures/requests' import responses from '../fixtures/responses' @@ -16,6 +21,16 @@ const { sign: RESPONSE_FIXTURES } = responses * Provides tests for Wallet class. */ describe('Wallet', function () { + const knownSecret = 'sh1HiK7SwjS1VxFdXi7qeMHRedrYX' + const publicKeySecp256k1 = + '03BFC2F7AE242C3493187FA0B72BE97B2DF71194FB772E507FF9DEA0AD13CA1625' + const privateKeySecp256k1 = + '00B6FE8507D977E46E988A8A94DB3B8B35E404B60F8B11AC5213FA8B5ABC8A8D19' + const publicKeyED25519 = + 'ED8079E575450E256C496578480020A33E19B579D58A2DB8FF13FC6B05B9229DE3' + const privateKeyED25519 = + 'EDD2AF6288A903DED9860FC62E778600A985BDF804E40BD8266505553E3222C3DA' + describe('constructor', function () { it('initializes a wallet using a Regular Key Pair', function () { const masterAddress = 'rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93' @@ -57,6 +72,15 @@ describe('Wallet', function () { assert.isTrue(wallet.classicAddress.startsWith(classicAddressPrefix)) }) + it('generates a new wallet using an invalid/unknown algorithm', function () { + const algorithm = 'test' + + assert.throws(() => { + // @ts-expect-error -- We know it is an invalid algorithm + Wallet.generate(algorithm) + }, /Invalid cryptographic signing algorithm/u) + }) + it('generates a new wallet using algorithm ecdsa-secp256k1', function () { const algorithm = ECDSA.secp256k1 const wallet = Wallet.generate(algorithm) @@ -88,33 +112,27 @@ describe('Wallet', function () { }) describe('fromSeed', function () { - const seed = 'ssL9dv2W5RK8L3tuzQxYY6EaZhSxW' - const publicKey = - '030E58CDD076E798C84755590AAF6237CA8FAE821070A59F648B517A30DC6F589D' - const privateKey = - '00141BA006D3363D2FB2785E8DF4E44D3A49908780CB4FB51F6D217C08C021429F' - it('derives a wallet using default algorithm', function () { - const wallet = Wallet.fromSeed(seed) + const wallet = Wallet.fromSeed(knownSecret) - assert.equal(wallet.publicKey, publicKey) - assert.equal(wallet.privateKey, privateKey) + assert.equal(wallet.publicKey, publicKeyED25519) + assert.equal(wallet.privateKey, privateKeyED25519) }) it('derives a wallet using algorithm ecdsa-secp256k1', function () { const algorithm = ECDSA.secp256k1 - const wallet = Wallet.fromSeed(seed, { algorithm }) + const wallet = Wallet.fromSeed(knownSecret, { algorithm }) - assert.equal(wallet.publicKey, publicKey) - assert.equal(wallet.privateKey, privateKey) + assert.equal(wallet.publicKey, publicKeySecp256k1) + assert.equal(wallet.privateKey, privateKeySecp256k1) }) it('derives a wallet using algorithm ed25519', function () { const algorithm = ECDSA.ed25519 - const wallet = Wallet.fromSeed(seed, { algorithm }) + const wallet = Wallet.fromSeed(knownSecret, { algorithm }) - assert.equal(wallet.publicKey, publicKey) - assert.equal(wallet.privateKey, privateKey) + assert.equal(wallet.publicKey, publicKeyED25519) + assert.equal(wallet.privateKey, privateKeyED25519) }) it('derives a wallet using rfc1751 mnemonic with secp256k1 key', function () { @@ -188,7 +206,10 @@ describe('Wallet', function () { '004265A28F3E18340A490421D47B2EB8DBC2C0BF2C24CEFEA971B61CED2CABD233', } - const wallet = Wallet.fromSeed(regularKeyPair.seed, { masterAddress }) + const wallet = Wallet.fromSeed(regularKeyPair.seed, { + masterAddress, + algorithm: ECDSA.secp256k1, + }) assert.equal(wallet.publicKey, regularKeyPair.publicKey) assert.equal(wallet.privateKey, regularKeyPair.privateKey) @@ -197,33 +218,27 @@ describe('Wallet', function () { }) describe('fromSecret', function () { - const seed = 'ssL9dv2W5RK8L3tuzQxYY6EaZhSxW' - const publicKey = - '030E58CDD076E798C84755590AAF6237CA8FAE821070A59F648B517A30DC6F589D' - const privateKey = - '00141BA006D3363D2FB2785E8DF4E44D3A49908780CB4FB51F6D217C08C021429F' - it('derives a wallet using default algorithm', function () { - const wallet = Wallet.fromSecret(seed) + const wallet = Wallet.fromSecret(knownSecret) - assert.equal(wallet.publicKey, publicKey) - assert.equal(wallet.privateKey, privateKey) + assert.equal(wallet.publicKey, publicKeyED25519) + assert.equal(wallet.privateKey, privateKeyED25519) }) it('derives a wallet using algorithm ecdsa-secp256k1', function () { const algorithm = ECDSA.secp256k1 - const wallet = Wallet.fromSecret(seed, { algorithm }) + const wallet = Wallet.fromSecret(knownSecret, { algorithm }) - assert.equal(wallet.publicKey, publicKey) - assert.equal(wallet.privateKey, privateKey) + assert.equal(wallet.publicKey, publicKeySecp256k1) + assert.equal(wallet.privateKey, privateKeySecp256k1) }) it('derives a wallet using algorithm ed25519', function () { const algorithm = ECDSA.ed25519 - const wallet = Wallet.fromSecret(seed, { algorithm }) + const wallet = Wallet.fromSecret(knownSecret, { algorithm }) - assert.equal(wallet.publicKey, publicKey) - assert.equal(wallet.privateKey, privateKey) + assert.equal(wallet.publicKey, publicKeyED25519) + assert.equal(wallet.privateKey, privateKeyED25519) }) it('derives a wallet using a Regular Key Pair', function () { @@ -236,7 +251,10 @@ describe('Wallet', function () { '004265A28F3E18340A490421D47B2EB8DBC2C0BF2C24CEFEA971B61CED2CABD233', } - const wallet = Wallet.fromSecret(regularKeyPair.seed, { masterAddress }) + const wallet = Wallet.fromSecret(regularKeyPair.seed, { + masterAddress, + algorithm: ECDSA.secp256k1, + }) assert.equal(wallet.publicKey, regularKeyPair.publicKey) assert.equal(wallet.privateKey, regularKeyPair.privateKey) @@ -253,7 +271,9 @@ describe('Wallet', function () { '0013FC461CA5799F1357C8130AF703CBA7E9C28E072C6CA8F7DEF8601CDE98F394' it('derives a wallet using default derivation path', function () { - const wallet = Wallet.fromMnemonic(mnemonic) + const wallet = Wallet.fromMnemonic(mnemonic, { + algorithm: ECDSA.secp256k1, + }) assert.equal(wallet.publicKey, publicKey) assert.equal(wallet.privateKey, privateKey) @@ -261,7 +281,10 @@ describe('Wallet', function () { it('derives a wallet using an input derivation path', function () { const derivationPath = "m/44'/144'/0'/0/0" - const wallet = Wallet.fromMnemonic(mnemonic, { derivationPath }) + const wallet = Wallet.fromMnemonic(mnemonic, { + derivationPath, + algorithm: ECDSA.secp256k1, + }) assert.equal(wallet.publicKey, publicKey) assert.equal(wallet.privateKey, privateKey) @@ -280,6 +303,81 @@ describe('Wallet', function () { const wallet = Wallet.fromMnemonic(regularKeyPair.mnemonic, { masterAddress, mnemonicEncoding: 'rfc1751', + algorithm: ECDSA.secp256k1, + }) + + assert.equal(wallet.publicKey, regularKeyPair.publicKey) + assert.equal(wallet.privateKey, regularKeyPair.privateKey) + assert.equal(wallet.classicAddress, masterAddress) + }) + }) + + describe('fromSecretNumbers', function () { + const secretNumbersString = + '399150 474506 009147 088773 432160 282843 253738 605430' + const secretNumbersArray = [ + '399150', + '474506', + '009147', + '088773', + '432160', + '282843', + '253738', + '605430', + ] + + const publicKey = + '03BFC2F7AE242C3493187FA0B72BE97B2DF71194FB772E507FF9DEA0AD13CA1625' + const privateKey = + '00B6FE8507D977E46E988A8A94DB3B8B35E404B60F8B11AC5213FA8B5ABC8A8D19' + + it('derives a wallet using default algorithm', function () { + const wallet = walletFromSecretNumbers(secretNumbersString) + + assert.equal(wallet.publicKey, publicKey) + assert.equal(wallet.privateKey, privateKey) + }) + + it('derives a wallet from secret numbers as an array using default algorithm', function () { + const wallet = walletFromSecretNumbers(secretNumbersArray) + + assert.equal(wallet.publicKey, publicKey) + assert.equal(wallet.privateKey, privateKey) + }) + + it('derives a wallet using algorithm ecdsa-secp256k1', function () { + const algorithm = ECDSA.secp256k1 + const wallet = walletFromSecretNumbers(secretNumbersString, { + algorithm, + }) + + assert.equal(wallet.publicKey, publicKey) + assert.equal(wallet.privateKey, privateKey) + }) + + it('derives a wallet using algorithm ed25519', function () { + const algorithm = ECDSA.ed25519 + const wallet = walletFromSecretNumbers(secretNumbersString, { + algorithm, + }) + + assert.equal(wallet.publicKey, publicKeyED25519) + assert.equal(wallet.privateKey, privateKeyED25519) + }) + + it('derives a wallet using a Regular Key Pair', function () { + const masterAddress = 'rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93' + const regularKeyPair = { + secretNumbers: + '399150 474506 009147 088773 432160 282843 253738 605430', + publicKey: + '03BFC2F7AE242C3493187FA0B72BE97B2DF71194FB772E507FF9DEA0AD13CA1625', + privateKey: + '00B6FE8507D977E46E988A8A94DB3B8B35E404B60F8B11AC5213FA8B5ABC8A8D19', + } + + const wallet = walletFromSecretNumbers(regularKeyPair.secretNumbers, { + masterAddress, }) assert.equal(wallet.publicKey, regularKeyPair.publicKey) @@ -290,13 +388,13 @@ describe('Wallet', function () { describe('fromEntropy', function () { let entropy: number[] - const publicKey = + const entropyPublicKeySecp256k1 = '0390A196799EE412284A5D80BF78C3E84CBB80E1437A0AECD9ADF94D7FEAAFA284' - const privateKey = + const entropyPrivateKeySecp256k1 = '002512BBDFDBB77510883B7DCCBEF270B86DEAC8B64AC762873D75A1BEE6298665' - const publicKeyED25519 = + const entropyPublicKeyED25519 = 'ED1A7C082846CFF58FF9A892BA4BA2593151CCF1DBA59F37714CC9ED39824AF85F' - const privateKeyED25519 = + const entropyPrivateKeyED25519 = 'ED0B6CBAC838DFE7F47EA1BD0DF00EC282FDF45510C92161072CCFB84035390C4D' beforeEach(function () { @@ -307,32 +405,34 @@ describe('Wallet', function () { it('derives a wallet using entropy', function () { const wallet = Wallet.fromEntropy(entropy) - assert.equal(wallet.publicKey, publicKeyED25519) - assert.equal(wallet.privateKey, privateKeyED25519) + assert.equal(wallet.publicKey, entropyPublicKeyED25519) + assert.equal(wallet.privateKey, entropyPrivateKeyED25519) }) it('derives a wallet using algorithm ecdsa-secp256k1', function () { const algorithm = ECDSA.secp256k1 const wallet = Wallet.fromEntropy(entropy, { algorithm }) - assert.equal(wallet.publicKey, publicKey) - assert.equal(wallet.privateKey, privateKey) + assert.equal(wallet.publicKey, entropyPublicKeySecp256k1) + assert.equal(wallet.privateKey, entropyPrivateKeySecp256k1) }) it('derives a wallet using algorithm ed25519', function () { const algorithm = ECDSA.ed25519 const wallet = Wallet.fromEntropy(entropy, { algorithm }) - assert.equal(wallet.publicKey, publicKeyED25519) - assert.equal(wallet.privateKey, privateKeyED25519) + assert.equal(wallet.publicKey, entropyPublicKeyED25519) + assert.equal(wallet.privateKey, entropyPrivateKeyED25519) }) it('derives a wallet using a regular key pair', function () { const masterAddress = 'rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93' - const wallet = Wallet.fromEntropy(entropy, { masterAddress }) + const wallet = Wallet.fromEntropy(entropy, { + masterAddress, + }) - assert.equal(wallet.publicKey, publicKeyED25519) - assert.equal(wallet.privateKey, privateKeyED25519) + assert.equal(wallet.publicKey, entropyPublicKeyED25519) + assert.equal(wallet.privateKey, entropyPrivateKeyED25519) assert.equal(wallet.classicAddress, masterAddress) }) }) @@ -342,7 +442,9 @@ describe('Wallet', function () { let wallet: Wallet beforeEach(function () { - wallet = Wallet.fromSeed('ss1x3KLrSvfg7irFc1D929WXZ7z9H') + wallet = Wallet.fromSeed('ss1x3KLrSvfg7irFc1D929WXZ7z9H', { + algorithm: ECDSA.secp256k1, + }) }) it('sign successfully', async function () { @@ -377,7 +479,9 @@ describe('Wallet', function () { ], } - const result = Wallet.fromSeed(secret).sign(lowercaseMemoTx) + const result = Wallet.fromSeed(secret, { + algorithm: ECDSA.secp256k1, + }).sign(lowercaseMemoTx) assert.deepEqual(result, { tx_blob: '120000228000000023000022B8240000000C2E0000270F201B00D5A36761400000000098968068400000000000000C73210305E09ED602D40AB1AF65646A4007C2DAC17CB6CDACDE301E74FB2D728EA057CF744730450221009C00E8439E017CA622A5A1EE7643E26B4DE9C808DE2ABE45D33479D49A4CEC66022062175BE8733442FA2A4D9A35F85A57D58252AE7B19A66401FE238B36FA28E5A081146C1856D0E36019EA75C56D7E8CBA6E35F9B3F71583147FB49CD110A1C46838788CD12764E3B0F837E0DDF9EA7C1F687474703A2F2F6578616D706C652E636F6D2F6D656D6F2F67656E657269637D0472656E74E1F1', @@ -763,7 +867,7 @@ describe('Wallet', function () { } assert.throws(() => { wallet.sign(payment) - }, /^Trying to sign an issued currency with a similar standard code to XAH \(received 'xah'\)\. XAH is not an issued currency\./u) + }, /^Cannot have an issued currency with a similar standard code to XAH \(received 'xah'\)\. XAH is not an issued currency\./u) }) it('sign does NOT throw when a payment contains an issued currency like xrp in hex string format', async function () { @@ -1126,6 +1230,18 @@ describe('Wallet', function () { assert.equal(isVerified, true) }) + + it('should throw an error when not signed', () => { + const wallet = new Wallet(publicKey, privateKey) + const decodedTransaction = decode( + prepared.signedTransaction, + ) as unknown as Transaction + delete decodedTransaction.TxnSignature + + assert.throws(() => { + wallet.verifyTransaction(decodedTransaction) + }, `Transaction is missing a signature, TxnSignature`) + }) }) describe('getXAddress', function () { diff --git a/packages/xrpl/test/wallet/signer.test.ts b/packages/xrpl/test/wallet/signer.test.ts index 0797589149..afd3373dda 100644 --- a/packages/xrpl/test/wallet/signer.test.ts +++ b/packages/xrpl/test/wallet/signer.test.ts @@ -1,13 +1,9 @@ -import { decode, encode } from '@transia/ripple-binary-codec' import { assert } from 'chai' +import { decode, encode } from 'ripple-binary-codec' import { Transaction, ValidationError } from '../../src' -import Wallet from '../../src/Wallet' -import { - authorizeChannel, - multisign, - verifySignature, -} from '../../src/Wallet/signer' +import { Wallet } from '../../src/Wallet' +import { multisign, verifySignature } from '../../src/Wallet/signer' const publicKey = '030E58CDD076E798C84755590AAF6237CA8FAE821070A59F648B517A30DC6F589D' @@ -187,36 +183,13 @@ describe('Signer', function () { assert.throws(() => multisign(transactions), /forMultisign/u) }) - it('authorizeChannel succeeds with secp256k1 seed', function () { - const secpWallet = Wallet.fromSeed('snGHNrPbHrdUcszeuDEigMdC1Lyyd') - const channelId = - '5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3' - const amount = '1000000' - - assert.equal( - authorizeChannel(secpWallet, channelId, amount), - '304402204E7052F33DDAFAAA55C9F5B132A5E50EE95B2CF68C0902F61DFE77299BC893740220353640B951DCD24371C16868B3F91B78D38B6F3FD1E826413CDF891FA8250AAC', - ) - }) - - it('authorizeChannel succeeds with ed25519 seed', function () { - const edWallet = Wallet.fromSeed('sEdSuqBPSQaood2DmNYVkwWTn1oQTj2') - const channelId = - '5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3' - const amount = '1000000' - assert.equal( - authorizeChannel(edWallet, channelId, amount), - '7E1C217A3E4B3C107B7A356E665088B4FBA6464C48C58267BEF64975E3375EA338AE22E6714E3F5E734AE33E6B97AAD59058E1E196C1F92346FC1498D0674404', - ) - }) - it('verifySignature succeeds for valid signed transaction blob', function () { const signedTx = verifyWallet.sign(tx) assert.isTrue(verifySignature(signedTx.tx_blob)) }) - it('verify succeeds for valid signed transaction object', function () { + it('verifySignature succeeds for valid signed transaction object', function () { const signedTx = verifyWallet.sign(tx) assert.isTrue( @@ -224,7 +197,7 @@ describe('Signer', function () { ) }) - it('verify throws for invalid signing key', function () { + it('verifySignature returns false for invalid signing key', function () { const signedTx = verifyWallet.sign(tx) const decodedTx = decode(signedTx.tx_blob) as unknown as Transaction @@ -235,4 +208,17 @@ describe('Signer', function () { assert.isFalse(verifySignature(decodedTx)) }) + + it('verifySignature throws for a missing public key', function () { + const signedTx = verifyWallet.sign(tx) + + const decodedTx = decode(signedTx.tx_blob) as unknown as Transaction + + // Use a different key for validation + delete decodedTx.SigningPubKey + + assert.throws(() => { + verifySignature(decodedTx) + }, `Transaction is missing a public key, SigningPubKey`) + }) }) diff --git a/packages/xrpl/test/webpack.config.js b/packages/xrpl/test/webpack.config.js index ae461ae159..624550acd0 100644 --- a/packages/xrpl/test/webpack.config.js +++ b/packages/xrpl/test/webpack.config.js @@ -1,120 +1,14 @@ -'use strict' -const path = require('path') -const webpack = require('webpack') -const assert = require('assert') +const { merge } = require('webpack-merge') +const { webpackForTest } = require('../../../weback.test.config') -const bnJsReplaces = [ - 'tiny-secp256k1', - 'asn1.js', - 'create-ecdh', - 'miller-rabin', - 'public-encrypt', - 'elliptic', -] - -function webpackForTest(testFileName) { - const match = testFileName.match(/\/?([^\/]*)\.ts$/) - if (!match) { - assert(false, 'wrong filename:' + testFileName) - } - - const test = { - mode: 'production', - cache: true, - performance: { - hints: false, - maxEntrypointSize: 512000, - maxAssetSize: 512000, - }, +module.exports = merge( + require('../webpack.base.config'), + webpackForTest('./test/integration/index.ts', __dirname), + { externals: [ { - net: 'null', + net: 'null', // net is used in tests to setup mock server }, ], - entry: testFileName, - output: { - library: match[1].replace(/-/g, '_'), - path: path.join(__dirname, './testCompiledForWeb/'), - filename: match[1] + '.js', - }, - plugins: [ - new webpack.NormalModuleReplacementPlugin(/^ws$/, './WSWrapper'), - new webpack.ProvidePlugin({ - process: 'process/browser', - }), - new webpack.DefinePlugin({ - 'process.stdout': {}, - }), - new webpack.ProvidePlugin({ Buffer: ['buffer', 'Buffer'] }), - new webpack.IgnorePlugin({ - resourceRegExp: /^\.\/wordlists\/(?!english)/, - contextRegExp: /bip39\/src$/, - }), - // this is a bit of a hack to prevent 'bn.js' from being installed 6 times - // TODO: any package that is updated to use bn.js 5.x needs to be removed from `bnJsReplaces` above - // https://github.com/webpack/webpack/issues/5593#issuecomment-390356276 - new webpack.NormalModuleReplacementPlugin(/^bn.js$/, (resource) => { - if ( - bnJsReplaces.some((pkg) => - resource.context.includes(`node_modules/${pkg}`), - ) - ) { - resource.request = 'diffie-hellman/node_modules/bn.js' - } - }), - ], - module: { - rules: [ - { - test: /jayson/, - use: 'null', - }, - { - test: /\.ts$/, - use: [ - { - loader: 'ts-loader', - options: { - compilerOptions: { - lib: ['esnext', 'dom'], - composite: false, - declaration: false, - declarationMap: false, - }, - }, - }, - ], - }, - ], - }, - node: { - global: true, - __filename: false, - __dirname: true, - }, - resolve: { - alias: { - ws: './dist/npm/client/WSWrapper.js', - 'https-proxy-agent': false, - }, - extensions: ['.ts', '.js', '.json'], - fallback: { - module: false, - assert: require.resolve('assert-browserify'), - constants: require.resolve('constants-browserify'), - fs: require.resolve('browserify-fs'), - buffer: require.resolve('buffer/'), - assert: require.resolve('assert/'), - url: require.resolve('url/'), - stream: require.resolve('stream-browserify'), - crypto: require.resolve('crypto-browserify'), - path: require.resolve('path-browserify'), - http: require.resolve('stream-http'), - https: require.resolve('https-browserify'), - }, - }, - } - return test -} - -module.exports = [(env, argv) => webpackForTest('./test/integration/index.ts')] + }, +) diff --git a/packages/xrpl/tools/createValidate.js b/packages/xrpl/tools/createValidate.js new file mode 100644 index 0000000000..435a5bb52f --- /dev/null +++ b/packages/xrpl/tools/createValidate.js @@ -0,0 +1,154 @@ +/* eslint-disable no-continue -- unneeded here */ +/** + * This file writes the `validate` function for a transaction, when provided the model name in the `src/models/transactions` + * folder. + */ +const fs = require('fs') +const path = require('path') + +const NORMAL_TYPES = ['number', 'string'] +const NUMBERS = ['0', '1'] + +// TODO: rewrite this to use regex + +async function main(modelName) { + const filename = path.join( + path.dirname(__filename), + `../src/models/transactions/${modelName}.ts`, + ) + const [model, txName] = await getModel(filename) + return processModel(model, txName) +} + +async function getModel(filename) { + let model = '' + let started = false + let ended = false + const data = await fs.promises.readFile(filename, { encoding: 'utf8' }) + const lines = data.split('\n') + for (const line of lines) { + if (ended) { + continue + } + if (!started && !line.startsWith('export')) { + continue + } + if (!started && line.includes('Flags')) { + continue + } + if (!started) { + started = true + } + model += `${line}\n` + if (line === '}') { + ended = true + } + } + const name_line = model.split('\n')[0].split(' ') + const txName = name_line[2] + return [model, txName] +} + +function getValidationFunction(paramType) { + if (NORMAL_TYPES.includes(paramType)) { + const paramTypeCapitalized = + paramType.substring(0, 1).toUpperCase() + paramType.substring(1) + return `is${paramTypeCapitalized}(inp)` + } + if (NUMBERS.includes(paramType)) { + return `inp === ${paramType}` + } + return `is${paramType}(inp)` +} + +function getValidationLine(validationFns) { + if (validationFns.length === 1) { + if (!validationFns[0].includes('===')) { + // Example: `validateRequiredFields(tx, 'Amount', isAmount)` + const validationFn = validationFns[0] + // strip the `(inp)` in e.g. `isAmount(inp)` + return validationFn.substring(0, validationFn.length - 5) + } + } + // Example: + // `validateRequiredFields(tx, 'XChainAccountCreateCount', + // (inp) => isNumber(inp) || isString(inp)))` + return `(inp) => ${validationFns.join(' || ')}` +} + +function processModel(model, txName) { + let output = '' + // process the TS model and get the types of each parameter + for (let line of model.split('\n')) { + if (line === '') { + continue + } + if (line.startsWith('export')) { + continue + } + if (line === '}') { + continue + } + line = line.trim() + if (line.startsWith('TransactionType')) { + continue + } + if (line.startsWith('Flags')) { + continue + } + if (line.startsWith('/**')) { + continue + } + if (line.startsWith('*')) { + continue + } + + // process the line with a type + const split = line.split(' ') + const param = split[0].replace('?:', '').replace(':', '').trim() + const paramTypes = split.slice(1) + const optional = split[0].endsWith('?:') + const functionName = optional + ? 'validateOptionalField' + : 'validateRequiredField' + + // process the types and turn them into a validation function + let idx = 0 + const if_outputs = [] + while (idx < paramTypes.length) { + const paramType = paramTypes[idx] + if_outputs.push(getValidationFunction(paramType)) + idx += 2 + } + + output += ` ${functionName}(tx, '${param}', ${getValidationLine( + if_outputs, + )})\n\n` + } + output = output.substring(0, output.length - 1) + output += '}\n' + + // initial output content + output = `/** + * Verify the form and type of a ${txName} at runtime. + * + * @param tx - A ${txName} Transaction. + * @throws When the ${txName} is malformed. + */ +export function validate${txName}(tx: Record): void { + validateBaseTransaction(tx) + +${output}` + + return output +} + +if (require.main === module) { + if (process.argv.length < 3) { + console.log(`Usage: ${process.argv[0]} ${process.argv[1]} TxName`) + process.exit(1) + } + main(process.argv[2]).then(console.log) +} + +module.exports = main diff --git a/packages/xrpl/tools/createValidateTests.js b/packages/xrpl/tools/createValidateTests.js new file mode 100644 index 0000000000..f88e5da114 --- /dev/null +++ b/packages/xrpl/tools/createValidateTests.js @@ -0,0 +1,203 @@ +const fs = require('fs') +const path = require('path') +const fixtures = require('../../ripple-binary-codec/test/fixtures/codec-fixtures.json') + +const NORMAL_TYPES = ['number', 'string'] +const NUMBERS = ['0', '1'] + +function getTx(txName) { + transactions = fixtures.transactions + const validTxs = fixtures.transactions + .filter((tx) => tx.json.TransactionType === txName) + .map((tx) => tx.json) + if (validTxs.length == 0) { + throw new Error(`Must have ripple-binary-codec fixture for ${txName}`) + } + const validTx = validTxs[0] + delete validTx.TxnSignature + delete validTx.SigningPubKey + return JSON.stringify(validTx, null, 2) +} + +function main(modelName) { + const filename = path.join( + path.dirname(__filename), + `../src/models/transactions/${modelName}.ts`, + ) + const [model, txName] = getModel(filename) + return processModel(model, txName) +} + +// Extract just the model from the file +function getModel(filename) { + let model = '' + let started = false + let ended = false + const data = fs.readFileSync(filename, 'utf8') + const lines = data.split('\n') + for (let line of lines) { + if (ended) { + continue + } + if (!started && !line.startsWith('export')) { + continue + } + if (!started && line.includes('Flags')) { + continue + } + if (!started) { + started = true + } + model += line + '\n' + if (line === '}') { + ended = true + } + } + const name_line = model.split('\n')[0].split(' ') + const txName = name_line[2] + return [model, txName] +} + +function getInvalidValue(paramTypes) { + if (paramTypes.length === 1) { + const paramType = paramTypes[0] + if (paramType == 'number') { + return "'number'" + } else if (paramType == 'string') { + return 123 + } else if (paramType == 'IssuedCurrency') { + return JSON.stringify({ test: 'test' }) + } else if (paramType == 'Currency') { + return JSON.stringify({ test: 'test' }) + } else if (paramType == 'Amount') { + return JSON.stringify({ currency: 'ETH' }) + } else if (paramType == 'XChainBridge') { + return JSON.stringify({ XChainDoor: 'test' }) + } else { + throw Error(`${paramType} not supported yet`) + } + } + + const simplifiedParamTypes = paramTypes.filter( + (_paramType, index) => index % 2 == 0, + ) + if (JSON.stringify(simplifiedParamTypes) === '["0","1"]') { + return 2 + } else if (JSON.stringify(simplifiedParamTypes) === '["number","string"]') { + return JSON.stringify({ currency: 'ETH' }) + } else { + throw Error(`${simplifiedParamTypes} not supported yet`) + } +} + +// Process the model and build the tests + +function processModel(model, txName) { + let output = '' + for (let line of model.split('\n')) { + if (line == '') { + continue + } + if (line.startsWith('export')) { + continue + } + if (line == '}') { + continue + } + line = line.trim() + if (line.startsWith('TransactionType')) { + continue + } + if (line.startsWith('Flags')) { + // TODO: support flag checking + continue + } + if (line.startsWith('/**')) { + continue + } + if (line.startsWith('*')) { + continue + } + + const split = line.split(' ') + const param = split[0].replace('?:', '').replace(':', '').trim() + const paramTypes = split.slice(1) + const optional = split[0].endsWith('?:') + + if (!optional) { + output += ` it("throws w/ missing ${param}", function () { + delete tx.${param} + + assert.throws( + () => validate${txName}(tx), + ValidationError, + '${txName}: missing field ${param}', + ) + assert.throws( + () => validate(tx), + ValidationError, + '${txName}: missing field ${param}', + ) + }) + +` + } + + const fakeValue = getInvalidValue(paramTypes) + output += ` it('throws w/ invalid ${param}', function () { + tx.${param} = ${fakeValue} + + assert.throws( + () => validate${txName}(tx), + ValidationError, + '${txName}: invalid field ${param}', + ) + assert.throws( + () => validate(tx), + ValidationError, + '${txName}: invalid field ${param}', + ) + }) + +` + } + + output = output.substring(0, output.length - 2) + output += '\n})\n' + output = + `import { assert } from 'chai' + +import { validate, ValidationError } from '../../src' +import { validate${txName} } from '../../src/models/transactions/${txName}' + +/** + * ${txName} Transaction Verification Testing. + * + * Providing runtime verification testing for each specific transaction type. + */ +describe('${txName}', function () { + let tx + + beforeEach(function () { + tx = ${getTx(txName)} as any + }) + + it('verifies valid ${txName}', function () { + assert.doesNotThrow(() => validate${txName}(tx)) + assert.doesNotThrow(() => validate(tx)) + }) + +` + output + + return output +} + +if (require.main === module) { + if (process.argv.length < 3) { + console.log(`Usage: ${process.argv[0]} ${process.argv[1]} TxName`) + process.exit(1) + } + console.log(main(process.argv[2])) +} + +module.exports = main diff --git a/packages/xrpl/tools/generateModels.js b/packages/xrpl/tools/generateModels.js new file mode 100644 index 0000000000..cd089dfaca --- /dev/null +++ b/packages/xrpl/tools/generateModels.js @@ -0,0 +1,273 @@ +/** + * A script that generates models and model unit tests. + * To run it, clone the rippled branch with the source code and run this script against that repo. + */ +const fs = require('fs') +const path = require('path') +const createValidate = require('./createValidate') +const createValidateTests = require('./createValidateTests') + +function readFile(filename) { + return fs.readFileSync(filename, 'utf-8') +} + +let jsTransactionFile + +function processRippledSource(folder) { + const sfieldCpp = readFile( + path.join(folder, 'src/ripple/protocol/impl/SField.cpp'), + ) + const sfieldHits = sfieldCpp.match( + /^ *CONSTRUCT_[^\_]+_SFIELD *\( *[^,\n]*,[ \n]*"([^\"\n ]+)"[ \n]*,[ \n]*([^, \n]+)[ \n]*,[ \n]*([0-9]+)(,.*?(notSigning))?/gm, + ) + const sfields = {} + for (const hit of sfieldHits) { + const matches = hit.match( + /^ *CONSTRUCT_[^\_]+_SFIELD *\( *[^,\n]*,[ \n]*"([^\"\n ]+)"[ \n]*,[ \n]*([^, \n]+)[ \n]*,[ \n]*([0-9]+)(,.*?(notSigning))?/, + ) + sfields[matches[1]] = matches.slice(2) + } + + const txFormatsCpp = readFile( + path.join(folder, 'src/ripple/protocol/impl/TxFormats.cpp'), + ) + const txFormatsHits = txFormatsCpp.match( + /^ *add\(jss::([^\"\n, ]+),[ \n]*tt[A-Z_]+,[ \n]*{[ \n]*(({sf[A-Za-z0-9]+, soe(OPTIONAL|REQUIRED|DEFAULT)},[ \n]+)*)},[ \n]*[pseudocC]+ommonFields\);/gm, + ) + const txFormats = {} + for (const hit of txFormatsHits) { + const matches = hit.match( + /^ *add\(jss::([^\"\n, ]+),[ \n]*tt[A-Z_]+,[ \n]*{[ \n]*(({sf[A-Za-z0-9]+, soe(OPTIONAL|REQUIRED|DEFAULT)},[ \n]+)*)},[ \n]*[pseudocC]+ommonFields\);/, + ) + txFormats[matches[1]] = formatTxFormat(matches[2]) + } + + jsTransactionFile = readFile( + path.join( + path.dirname(__filename), + '../src/models/transactions/transaction.ts', + ), + ) + const transactionMatch = jsTransactionFile.match( + /export type Transaction =([| \nA-Za-z]+)\nexport/, + )[0] + const existingLibraryTxs = transactionMatch + .replace('\n\nexport', '') + .split('\n | ') + .filter((value) => !value.includes('export type')) + .map((value) => value.trim()) + existingLibraryTxs.push('EnableAmendment', 'SetFee', 'UNLModify') + + const txsToAdd = [] + + for (const tx in txFormats) { + if (!existingLibraryTxs.includes(tx)) { + txsToAdd.push(tx) + } + } + + return [txsToAdd, txFormats, sfields, transactionMatch] +} + +function formatTxFormat(rawTxFormat) { + return rawTxFormat + .trim() + .split('\n') + .map((element) => element.trim().replace(/[{},]/g, '').split(' ')) +} + +const typeMap = { + UINT8: 'number', + UINT16: 'number', + UINT32: 'number', + UINT64: 'number | string', + UINT128: 'string', + UINT160: 'string', + UINT256: 'string', + AMOUNT: 'Amount', + VL: 'string', + ACCOUNT: 'string', + VECTOR256: 'string[]', + PATHSET: 'Path[]', + ISSUE: 'Currency', + XCHAIN_BRIDGE: 'XChainBridge', + OBJECT: 'any', + ARRAY: 'any[]', +} + +const allCommonImports = ['Amount', 'Currency', 'Path', 'XChainBridge'] +const additionalValidationImports = ['string', 'number'] + +function updateTransactionFile(transactionMatch, tx) { + const transactionMatchSplit = transactionMatch.split('\n | ') + const firstLine = transactionMatchSplit[0] + const allTransactions = transactionMatchSplit.slice(1) + allTransactions.push(tx) + allTransactions.sort() + const newTransactionMatch = + firstLine + '\n | ' + allTransactions.join('\n | ') + let newJsTxFile = jsTransactionFile.replace( + transactionMatch, + newTransactionMatch, + ) + + // Adds the imports to the end of the imports + newJsTxFile = newJsTxFile.replace( + `import { + XChainModifyBridge, + validateXChainModifyBridge, +} from './XChainModifyBridge'`, + `import { + XChainModifyBridge, + validateXChainModifyBridge, +} from './XChainModifyBridge' +import { + ${tx}, + validate${tx}, +} from './${tx}'`, + ) + + const validationMatch = newJsTxFile.match( + /switch \(tx.TransactionType\) {\n([ \nA-Za-z':()]+)default/, + )[1] + const caseValidations = validationMatch.split('\n\n') + caseValidations.push( + ` case '${tx}':\n validate${tx}(tx)\n break`, + ) + caseValidations.sort() + newJsTxFile = newJsTxFile.replace( + validationMatch, + caseValidations.join('\n\n') + '\n\n ', + ) + + fs.writeFileSync( + path.join( + path.dirname(__filename), + '../src/models/transactions/transaction.ts', + ), + newJsTxFile, + ) + + transactionMatch = newTransactionMatch + jsTransactionFile = newJsTxFile +} + +function updateIndexFile(tx) { + const filename = path.join( + path.dirname(__filename), + '../src/models/transactions/index.ts', + ) + let indexFile = readFile(filename) + indexFile = indexFile.replace( + `} from './XChainModifyBridge'`, + `} from './XChainModifyBridge' +export { ${tx} } from './${tx}'`, + ) + fs.writeFileSync(filename, indexFile) +} + +function generateParamLine(sfields, param, isRequired) { + const paramName = param.slice(2) + const paramType = sfields[paramName][0] + const paramTypeOutput = typeMap[paramType] + return ` ${paramName}${isRequired ? '' : '?'}: ${paramTypeOutput}\n` +} + +async function main(folder) { + const [txsToAdd, txFormats, sfields, transactionMatch] = + processRippledSource(folder) + txsToAdd.forEach(async (tx) => { + const txFormat = txFormats[tx] + const paramLines = txFormat + .filter((param) => param[0] !== '') + .sort((a, b) => a[0].localeCompare(b[0])) + .map((param) => + generateParamLine(sfields, param[0], param[1] === 'soeREQUIRED'), + ) + paramLines.sort((a, b) => !a.includes('REQUIRED')) + const params = paramLines.join('\n') + let model = `/** + * @category Transaction Models + */ +export interface ${tx} extends BaseTransaction { + TransactionType: '${tx}' + +${params} +}` + + const commonImports = [] + const validationImports = ['BaseTransaction', 'validateBaseTransaction'] + for (const item of allCommonImports) { + if (params.includes(item)) { + commonImports.push(item) + validationImports.push('is' + item) + } + } + for (const item of additionalValidationImports) { + if (params.includes(item)) { + validationImports.push( + 'is' + item.substring(0, 1).toUpperCase() + item.substring(1), + ) + } + } + if (params.includes('?')) { + validationImports.push('validateOptionalField') + } + if (/[A-Za-z0-9]+:/.test(params)) { + validationImports.push('validateRequiredField') + } + validationImports.sort() + const commonImportLine = + commonImports.length > 0 + ? `import { ${commonImports.join(', ')} } from '../common'` + : '' + const validationImportLine = `import { ${validationImports.join( + ', ', + )} } from './common'` + let imported_models = `${commonImportLine} + +${validationImportLine}` + imported_models = imported_models.replace('\n\n\n\n', '\n\n') + imported_models = imported_models.replace('\n\n\n', '\n\n') + model = model.replace('\n\n\n\n', '\n\n') + fs.writeFileSync( + path.join( + path.dirname(__filename), + `../src/models/transactions/${tx}.ts`, + ), + imported_models + '\n\n' + model, + ) + + const validate = await createValidate(tx) + fs.appendFileSync( + path.join( + path.dirname(__filename), + `../src/models/transactions/${tx}.ts`, + ), + '\n\n' + validate, + ) + + const validateTests = createValidateTests(tx) + fs.writeFileSync( + path.join(path.dirname(__filename), `../test/models/${tx}.test.ts`), + validateTests, + ) + + updateTransactionFile(transactionMatch, tx) + + updateIndexFile(tx) + + console.log(`Added ${tx}`) + }) + console.log( + 'Future steps: Adding docstrings to the models and adding integration tests', + ) +} + +if (require.main === module) { + if (process.argv.length < 3) { + console.log(`Usage: ${process.argv[0]} ${process.argv[1]} path/to/rippled`) + process.exit(1) + } + main(process.argv[2]) +} diff --git a/packages/xrpl/tsconfig.build.json b/packages/xrpl/tsconfig.build.json index 97e21347a2..9599cd590f 100644 --- a/packages/xrpl/tsconfig.build.json +++ b/packages/xrpl/tsconfig.build.json @@ -6,7 +6,10 @@ "include": ["./src/**/*.ts", "./src/**/*.json"], "references": [ { - "path": "../ripple-address-codec/tsconfig.json" + "path": "../isomorphic/tsconfig.build.json" + }, + { + "path": "../ripple-address-codec/tsconfig.build.json" }, { "path": "../ripple-binary-codec/tsconfig.json" diff --git a/packages/xrpl/tsconfig.docs.json b/packages/xrpl/tsconfig.docs.json index c9fbdd8855..3958554c4f 100644 --- a/packages/xrpl/tsconfig.docs.json +++ b/packages/xrpl/tsconfig.docs.json @@ -6,7 +6,8 @@ "jsxFragmentFactory": "JSX.Fragment", "lib": ["es2015", "dom"], "module": "commonjs", - "esModuleInterop": true + "esModuleInterop": true, + "target": "ES2015" }, - "include": ["./typedoc.tsx"], + "include": ["./typedoc.tsx"] } diff --git a/packages/xrpl/tsconfig.eslint.json b/packages/xrpl/tsconfig.eslint.json index 604663f0ab..70b9b96580 100644 --- a/packages/xrpl/tsconfig.eslint.json +++ b/packages/xrpl/tsconfig.eslint.json @@ -6,6 +6,7 @@ "./test/**/*.json", "./src/**/*.json", "./snippets/src/**/*.ts", - ".eslintrc.js" + ".eslintrc.js", ], + "exclude": ["./tools/*.js"] } diff --git a/packages/xrpl/tsconfig.json b/packages/xrpl/tsconfig.json index 9a2f13b956..d1c0ec8fb1 100644 --- a/packages/xrpl/tsconfig.json +++ b/packages/xrpl/tsconfig.json @@ -3,6 +3,7 @@ "compilerOptions": { "pretty": true, "target": "es6", + "lib": ["es2019", "dom"], "outDir": "./dist/npm", "declaration": true, "declarationMap": true, @@ -12,7 +13,6 @@ "removeComments": true, "preserveConstEnums": false, "esModuleInterop": true, - "suppressImplicitAnyIndexErrors": false, "resolveJsonModule": true, "preserveSymlinks": true }, diff --git a/packages/xrpl/typedoc.json b/packages/xrpl/typedoc.json index f304e46c80..20a856c098 100644 --- a/packages/xrpl/typedoc.json +++ b/packages/xrpl/typedoc.json @@ -8,7 +8,6 @@ "Signing", "Transaction Models", "Transaction Flags", - "Ledger Flags", "Utilities", "Requests", "Responses", diff --git a/packages/xrpl/webpack.base.config.js b/packages/xrpl/webpack.base.config.js new file mode 100644 index 0000000000..2eb0c11dea --- /dev/null +++ b/packages/xrpl/webpack.base.config.js @@ -0,0 +1,14 @@ +const path = require('path') +const webpack = require('webpack') +const { merge } = require('webpack-merge') +const { getDefaultConfiguration } = require('../../webpack.config') + +module.exports = merge(getDefaultConfiguration(), { + entry: './dist/npm/index.js', + // overriding the output path and filename + output: { + library: 'xrpl', + path: path.join(__dirname, 'build/'), + filename: `xrpl.default.js`, + } +}) diff --git a/packages/xrpl/webpack.config.js b/packages/xrpl/webpack.config.js index aed3785a8e..ceeb8b10d1 100644 --- a/packages/xrpl/webpack.config.js +++ b/packages/xrpl/webpack.config.js @@ -1,95 +1,8 @@ 'use strict' -const path = require('path') -const webpack = require('webpack') -const { BundleAnalyzerPlugin } = require('webpack-bundle-analyzer') +const { merge } = require('webpack-merge') +const { getDefaultConfiguration, wrapForEnv } = require('../../webpack.config') -const bnJsReplaces = [ - 'tiny-secp256k1', - 'asn1.js', - 'create-ecdh', - 'miller-rabin', - 'public-encrypt', - 'elliptic', -] - -function getDefaultConfiguration() { - return { - cache: true, - performance: { hints: false }, - stats: 'errors-only', - entry: './dist/npm/index.js', - output: { - library: 'xrpl', - path: path.join(__dirname, 'build/'), - filename: `xrpl.default.js`, - }, - devtool: 'source-map', - plugins: [ - new webpack.NormalModuleReplacementPlugin(/^ws$/, './WSWrapper'), - new webpack.ProvidePlugin({ process: 'process/browser' }), - new webpack.ProvidePlugin({ Buffer: ['buffer', 'Buffer'] }), - new webpack.IgnorePlugin({ - resourceRegExp: /^\.\/wordlists\/(?!english)/, - contextRegExp: /bip39\/src$/, - }), - // this is a bit of a hack to prevent 'bn.js' from being installed 6 times - // TODO: any package that is updated to use bn.js 5.x needs to be removed from `bnJsReplaces` above - // https://github.com/webpack/webpack/issues/5593#issuecomment-390356276 - new webpack.NormalModuleReplacementPlugin(/^bn.js$/, (resource) => { - if ( - bnJsReplaces.some((pkg) => - resource.context.includes(`node_modules/${pkg}`), - ) - ) { - resource.request = 'diffie-hellman/node_modules/bn.js' - } - }), - ], - module: { - rules: [ - { - test: /\.js$/, - use: ['source-map-loader'], - }, - ], - }, - resolve: { - alias: { - ws: './dist/npm/client/WSWrapper.js', - 'https-proxy-agent': false, - }, - extensions: ['.js', '.json'], - // We don't want to webpack any of the local dependencies: - // ripple-address-codec, ripple-binary-codec, ripple-keypairs, which are - // symlinked together via lerna - symlinks: false, - fallback: { - buffer: require.resolve('buffer/'), - assert: require.resolve('assert/'), - url: require.resolve('url/'), - stream: require.resolve('stream-browserify'), - crypto: require.resolve('crypto-browserify'), - https: require.resolve('https-browserify'), - http: require.resolve('stream-http'), - }, - }, - } -} - -module.exports = [ - (env, argv) => { - const config = getDefaultConfiguration() - config.mode = 'development' - config.output.filename = `xrpl-latest.js` - return config - }, - (env, argv) => { - const config = getDefaultConfiguration() - config.mode = 'production' - config.output.filename = `xrpl-latest-min.js` - if (process.argv.includes('--analyze')) { - config.plugins.push(new BundleAnalyzerPlugin()) - } - return config - }, -] +module.exports = wrapForEnv( + 'xrpl', + merge(getDefaultConfiguration(), require('./webpack.base.config')), +) diff --git a/tsconfig.json b/tsconfig.json index 414843606a..aa58f912e2 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -2,6 +2,7 @@ "compilerOptions": { "composite": true, "module": "commonjs", + "lib": ["es2019", "dom"], "moduleResolution": "node", "esModuleInterop": true, "sourceMap": true, diff --git a/weback.test.config.js b/weback.test.config.js new file mode 100644 index 0000000000..d5c3c38f22 --- /dev/null +++ b/weback.test.config.js @@ -0,0 +1,61 @@ +"use strict"; +const assert = require("assert"); +const path = require("path"); +const webpack = require("webpack"); + +function webpackForTest(testFileName, basePath) { + const match = testFileName.match(/\/?([^\/]*)\.ts$/); + if (!match) { + assert(false, "wrong filename:" + testFileName); + } + + return { + mode: "production", + cache: true, + entry: testFileName, + output: { + library: match[1].replace(/-/g, "_"), + path: path.join(basePath, "./testCompiledForWeb/"), + filename: match[1] + ".js", + }, + plugins: [ + new webpack.DefinePlugin({ + "process.stdout": {}, + }), + new webpack.ProvidePlugin({ process: "process/browser" }), + ], + module: { + rules: [ + // Compile compile the tests + { + test: /\.ts$/, + use: [ + { + loader: "ts-loader", + options: { + compilerOptions: { + lib: ["esnext", "dom"], + composite: false, + declaration: false, + declarationMap: false, + }, + }, + }, + ], + }, + ], + }, + node: { + global: true, + __filename: false, + __dirname: true, + }, + resolve: { + extensions: [".ts", ".js", ".json"], + }, + }; +} + +module.exports = { + webpackForTest, +}; diff --git a/webpack.config.js b/webpack.config.js new file mode 100644 index 0000000000..63bb0dbaef --- /dev/null +++ b/webpack.config.js @@ -0,0 +1,67 @@ +"use strict"; +const webpack = require("webpack"); +const { BundleAnalyzerPlugin } = require("webpack-bundle-analyzer"); +const { merge } = require("webpack-merge"); + +function getDefaultConfiguration() { + return { + cache: true, + performance: { + hints: false, + maxEntrypointSize: 512000, + maxAssetSize: 512000, + }, + stats: "errors-only", + devtool: "source-map", + module: { + rules: [ + { + test: /\.js$/, + use: ["source-map-loader"], + }, + ], + }, + resolve: { + extensions: [".js", ".json"], + // We don't want to webpack any of the local dependencies: + // ripple-address-codec, ripple-binary-codec, ripple-keypairs, which are + // symlinked together via lerna + symlinks: false, + }, + }; +} + +module.exports = { + getDefaultConfiguration, + wrapForEnv: (filename, config) => { + return [ + (env, argv) => { + const localConfig = merge(config, { + mode: "development", + output: { + filename: `${filename}-latest.js`, + }, + }); + return localConfig; + }, + (env, argv) => { + const localConfig = merge(config, { + mode: "production", + output: { + filename: `${filename}-latest.min.js`, + }, + }); + + if (process.argv.includes("--analyze")) { + localConfig.plugins.push( + new BundleAnalyzerPlugin({ + analyzerPort: `auto`, + analyzerMode: "static", + }), + ); + } + return localConfig; + }, + ]; + }, +};