Removes jsonschemas (#1593)

* remove jsonschemas stuff

* fix ts issues

* fix tests

* remove package

* remove scripts

* replace isValidAddress
This commit is contained in:
Mayukha Vadari
2021-09-03 10:26:50 -05:00
parent 2ca164311b
commit aa6cef520c
163 changed files with 601 additions and 4611 deletions

30
package-lock.json generated
View File

@@ -14,7 +14,6 @@
"bip32": "^2.0.6", "bip32": "^2.0.6",
"bip39": "^3.0.4", "bip39": "^3.0.4",
"https-proxy-agent": "^5.0.0", "https-proxy-agent": "^5.0.0",
"jsonschema": "1.2.2",
"lodash": "^4.17.4", "lodash": "^4.17.4",
"ripple-address-codec": "^4.1.1", "ripple-address-codec": "^4.1.1",
"ripple-binary-codec": "^1.1.3", "ripple-binary-codec": "^1.1.3",
@@ -47,7 +46,6 @@
"eslint-plugin-tsdoc": "^0.2.14", "eslint-plugin-tsdoc": "^0.2.14",
"eventemitter2": "^6.0.0", "eventemitter2": "^6.0.0",
"https-browserify": "^1.0.0", "https-browserify": "^1.0.0",
"json-schema-to-markdown-table": "^0.4.0",
"mocha": "^9", "mocha": "^9",
"npm-run-all": "^4.1.5", "npm-run-all": "^4.1.5",
"nyc": "^15", "nyc": "^15",
@@ -5192,15 +5190,6 @@
"integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==",
"dev": true "dev": true
}, },
"node_modules/json-schema-to-markdown-table": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/json-schema-to-markdown-table/-/json-schema-to-markdown-table-0.4.0.tgz",
"integrity": "sha1-JJ83/eHrb/YqT2XQjKoFaCeUpow=",
"dev": true,
"bin": {
"json-schema-to-markdown": "json-schema-to-markdown.js"
}
},
"node_modules/json-schema-traverse": { "node_modules/json-schema-traverse": {
"version": "0.4.1", "version": "0.4.1",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
@@ -5228,14 +5217,6 @@
"node": ">=6" "node": ">=6"
} }
}, },
"node_modules/jsonschema": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.2.2.tgz",
"integrity": "sha512-iX5OFQ6yx9NgbHCwse51ohhKgLuLL7Z5cNOeZOPIlDUtAMrxlruHLzVZxbltdHE5mEDXN+75oFOwq6Gn0MZwsA==",
"engines": {
"node": "*"
}
},
"node_modules/jsx-ast-utils": { "node_modules/jsx-ast-utils": {
"version": "3.2.0", "version": "3.2.0",
"resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.0.tgz", "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.0.tgz",
@@ -12906,12 +12887,6 @@
"integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==",
"dev": true "dev": true
}, },
"json-schema-to-markdown-table": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/json-schema-to-markdown-table/-/json-schema-to-markdown-table-0.4.0.tgz",
"integrity": "sha1-JJ83/eHrb/YqT2XQjKoFaCeUpow=",
"dev": true
},
"json-schema-traverse": { "json-schema-traverse": {
"version": "0.4.1", "version": "0.4.1",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
@@ -12933,11 +12908,6 @@
"minimist": "^1.2.5" "minimist": "^1.2.5"
} }
}, },
"jsonschema": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.2.2.tgz",
"integrity": "sha512-iX5OFQ6yx9NgbHCwse51ohhKgLuLL7Z5cNOeZOPIlDUtAMrxlruHLzVZxbltdHE5mEDXN+75oFOwq6Gn0MZwsA=="
},
"jsx-ast-utils": { "jsx-ast-utils": {
"version": "3.2.0", "version": "3.2.0",
"resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.0.tgz", "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.0.tgz",

View File

@@ -22,7 +22,6 @@
"bip32": "^2.0.6", "bip32": "^2.0.6",
"bip39": "^3.0.4", "bip39": "^3.0.4",
"https-proxy-agent": "^5.0.0", "https-proxy-agent": "^5.0.0",
"jsonschema": "1.2.2",
"lodash": "^4.17.4", "lodash": "^4.17.4",
"ripple-address-codec": "^4.1.1", "ripple-address-codec": "^4.1.1",
"ripple-binary-codec": "^1.1.3", "ripple-binary-codec": "^1.1.3",
@@ -58,7 +57,6 @@
"eslint-plugin-tsdoc": "^0.2.14", "eslint-plugin-tsdoc": "^0.2.14",
"eventemitter2": "^6.0.0", "eventemitter2": "^6.0.0",
"https-browserify": "^1.0.0", "https-browserify": "^1.0.0",
"json-schema-to-markdown-table": "^0.4.0",
"mocha": "^9", "mocha": "^9",
"npm-run-all": "^4.1.5", "npm-run-all": "^4.1.5",
"nyc": "^15", "nyc": "^15",
@@ -77,8 +75,7 @@
"webpack-cli": "^4.2.0" "webpack-cli": "^4.2.0"
}, },
"scripts": { "scripts": {
"build": "run-s build:schemas build:lib build:snippets build:web", "build": "run-s build:lib build:snippets build:web",
"build:schemas": "mkdir -p dist/npm/common && cp -r src/common/schemas dist/npm/common/",
"build:snippets": "tsc --build ./snippets/tsconfig.json", "build:snippets": "tsc --build ./snippets/tsconfig.json",
"build:lib": "tsc --build tsconfig.build.json", "build:lib": "tsc --build tsconfig.build.json",
"build:web": "webpack", "build:web": "webpack",

View File

@@ -20,7 +20,6 @@ import {
import { constants, errors, txFlags, ensureClassicAddress } from "../common"; import { constants, errors, txFlags, ensureClassicAddress } from "../common";
import { ValidationError } from "../common/errors"; import { ValidationError } from "../common/errors";
import { getFee } from "../common/fee"; import { getFee } from "../common/fee";
import * as schemaValidator from "../common/schema-validator";
import getBalances from "../ledger/balances"; import getBalances from "../ledger/balances";
import { getOrderbook, formatBidsAndAsks } from "../ledger/orderbook"; import { getOrderbook, formatBidsAndAsks } from "../ledger/orderbook";
import getPaths from "../ledger/pathfind"; import getPaths from "../ledger/pathfind";
@@ -183,7 +182,7 @@ class Client extends EventEmitter {
constructor(server: string, options: ClientOptions = {}) { constructor(server: string, options: ClientOptions = {}) {
super(); super();
if (typeof server !== "string" || !server.match("^(wss?|wss?\\+unix)://")) { if (typeof server !== "string" || !/^(wss?|wss?\+unix):\/\//.exec(server)) {
throw new ValidationError( throw new ValidationError(
"server URI must start with `wss://`, `ws://`, `wss+unix://`, or `ws+unix://`." "server URI must start with `wss://`, `ws://`, `wss+unix://`, or `ws+unix://`."
); );
@@ -252,7 +251,9 @@ class Client extends EventEmitter {
): Promise<SubmitMultisignedResponse>; ): Promise<SubmitMultisignedResponse>;
public request(r: TransactionEntryRequest): Promise<TransactionEntryResponse>; public request(r: TransactionEntryRequest): Promise<TransactionEntryResponse>;
public request(r: TxRequest): Promise<TxResponse>; public request(r: TxRequest): Promise<TxResponse>;
public request<R extends Request, T extends Response>(r: R): Promise<T> { public async request<R extends Request, T extends Response>(
r: R
): Promise<T> {
// TODO: should this be typed with `extends BaseRequest/BaseResponse`? // TODO: should this be typed with `extends BaseRequest/BaseResponse`?
return this.connection.request({ return this.connection.request({
...r, ...r,
@@ -478,9 +479,6 @@ class Client extends EventEmitter {
static txFlags = txFlags; static txFlags = txFlags;
accountSetFlags = constants.AccountSetFlags; accountSetFlags = constants.AccountSetFlags;
static accountSetFlags = constants.AccountSetFlags; static accountSetFlags = constants.AccountSetFlags;
isValidAddress = schemaValidator.isValidAddress;
isValidSecret = schemaValidator.isValidSecret;
} }
export { Client, Connection }; export { Client, Connection };

View File

@@ -5,7 +5,6 @@ import {
import * as constants from "./constants"; import * as constants from "./constants";
import * as errors from "./errors"; import * as errors from "./errors";
import * as validate from "./validate";
export function ensureClassicAddress(account: string): string { export function ensureClassicAddress(account: string): string {
if (isValidXAddress(account)) { if (isValidXAddress(account)) {
@@ -26,5 +25,5 @@ export function ensureClassicAddress(account: string): string {
return account; return account;
} }
export { constants, errors, validate }; export { constants, errors };
export { txFlags } from "./txflags"; export { txFlags } from "./txflags";

View File

@@ -1,188 +0,0 @@
import * as assert from "assert";
import _ from "lodash";
import { isValidClassicAddress, isValidXAddress } from "ripple-address-codec";
import { isValidSecret } from "../utils";
import { ValidationError } from "./errors";
const { Validator } = require("jsonschema");
function loadSchemas() {
// listed explicitly for webpack (instead of scanning schemas directory)
const schemas = [
require("./schemas/objects/tx-json.json"),
require("./schemas/objects/transaction-type.json"),
require("./schemas/objects/hash128.json"),
require("./schemas/objects/hash256.json"),
require("./schemas/objects/sequence.json"),
require("./schemas/objects/ticket-sequence.json"),
require("./schemas/objects/signature.json"),
require("./schemas/objects/issue.json"),
require("./schemas/objects/ledger-version.json"),
require("./schemas/objects/max-adjustment.json"),
require("./schemas/objects/memo.json"),
require("./schemas/objects/memos.json"),
require("./schemas/objects/public-key.json"),
require("./schemas/objects/private-key.json"),
require("./schemas/objects/uint32.json"),
require("./schemas/objects/value.json"),
require("./schemas/objects/source-adjustment.json"),
require("./schemas/objects/destination-adjustment.json"),
require("./schemas/objects/tag.json"),
require("./schemas/objects/lax-amount.json"),
require("./schemas/objects/lax-lax-amount.json"),
require("./schemas/objects/min-adjustment.json"),
require("./schemas/objects/source-exact-adjustment.json"),
require("./schemas/objects/destination-exact-adjustment.json"),
require("./schemas/objects/destination-address-tag.json"),
require("./schemas/objects/transaction-hash.json"),
require("./schemas/objects/address.json"),
require("./schemas/objects/x-address.json"),
require("./schemas/objects/classic-address.json"),
require("./schemas/objects/adjustment.json"),
require("./schemas/objects/quality.json"),
require("./schemas/objects/amount.json"),
require("./schemas/objects/amountbase.json"),
require("./schemas/objects/balance.json"),
require("./schemas/objects/blob.json"),
require("./schemas/objects/currency.json"),
require("./schemas/objects/signed-value.json"),
require("./schemas/objects/orderbook.json"),
require("./schemas/objects/instructions.json"),
require("./schemas/objects/settings-plus-memos.json"),
require("./schemas/specifications/settings.json"),
require("./schemas/specifications/payment.json"),
require("./schemas/specifications/get-payment.json"),
require("./schemas/specifications/escrow-cancellation.json"),
require("./schemas/specifications/order-cancellation.json"),
require("./schemas/specifications/order.json"),
require("./schemas/specifications/escrow-execution.json"),
require("./schemas/specifications/escrow-creation.json"),
require("./schemas/specifications/payment-channel-create.json"),
require("./schemas/specifications/payment-channel-fund.json"),
require("./schemas/specifications/payment-channel-claim.json"),
require("./schemas/specifications/check-create.json"),
require("./schemas/specifications/check-cash.json"),
require("./schemas/specifications/check-cancel.json"),
require("./schemas/specifications/trustline.json"),
require("./schemas/specifications/deposit-preauth.json"),
require("./schemas/specifications/account-delete.json"),
require("./schemas/output/sign.json"),
require("./schemas/output/submit.json"),
require("./schemas/output/get-account-info.json"),
require("./schemas/output/get-account-objects.json"),
require("./schemas/output/get-balances.json"),
require("./schemas/output/get-balance-sheet.json"),
require("./schemas/output/get-ledger.json"),
require("./schemas/output/get-orderbook.json"),
require("./schemas/output/get-orders.json"),
require("./schemas/output/order-change.json"),
require("./schemas/output/get-payment-channel.json"),
require("./schemas/output/prepare.json"),
require("./schemas/output/ledger-event.json"),
require("./schemas/output/get-paths.json"),
require("./schemas/output/get-server-info.json"),
require("./schemas/output/get-settings.json"),
require("./schemas/output/orderbook-orders.json"),
require("./schemas/output/outcome.json"),
require("./schemas/output/get-transaction.json"),
require("./schemas/output/get-transactions.json"),
require("./schemas/output/get-trustlines.json"),
require("./schemas/output/sign-payment-channel-claim.json"),
require("./schemas/output/verify-payment-channel-claim.json"),
require("./schemas/input/get-balances.json"),
require("./schemas/input/get-balance-sheet.json"),
require("./schemas/input/get-ledger.json"),
require("./schemas/input/get-orders.json"),
require("./schemas/input/get-orderbook.json"),
require("./schemas/input/get-paths.json"),
require("./schemas/input/get-payment-channel.json"),
require("./schemas/input/api-options.json"),
require("./schemas/input/get-settings.json"),
require("./schemas/input/get-account-info.json"),
require("./schemas/input/get-account-objects.json"),
require("./schemas/input/get-transaction.json"),
require("./schemas/input/get-transactions.json"),
require("./schemas/input/get-trustlines.json"),
require("./schemas/input/prepare-payment.json"),
require("./schemas/input/prepare-order.json"),
require("./schemas/input/prepare-trustline.json"),
require("./schemas/input/prepare-order-cancellation.json"),
require("./schemas/input/prepare-settings.json"),
require("./schemas/input/prepare-escrow-creation.json"),
require("./schemas/input/prepare-escrow-cancellation.json"),
require("./schemas/input/prepare-escrow-execution.json"),
require("./schemas/input/prepare-payment-channel-create.json"),
require("./schemas/input/prepare-payment-channel-fund.json"),
require("./schemas/input/prepare-payment-channel-claim.json"),
require("./schemas/input/prepare-check-create.json"),
require("./schemas/input/prepare-check-cash.json"),
require("./schemas/input/prepare-check-cancel.json"),
require("./schemas/input/prepare-ticket-create.json"),
require("./schemas/input/compute-ledger-hash.json"),
require("./schemas/input/sign.json"),
require("./schemas/input/submit.json"),
require("./schemas/input/generate-address.json"),
require("./schemas/input/sign-payment-channel-claim.json"),
require("./schemas/input/verify-payment-channel-claim.json"),
require("./schemas/input/combine.json"),
];
const titles = schemas.map((schema) => schema.title);
const duplicates = Object.keys(
_.pickBy(_.countBy(titles), (count) => count > 1)
);
assert.ok(duplicates.length === 0, `Duplicate schemas for: ${duplicates}`);
const validator = new Validator();
// Register custom format validators that ignore undefined instances
// since jsonschema will still call the format validator on a missing
// (optional) property
// This relies on "format": "xAddress" in `x-address.json`!
validator.customFormats.xAddress = function (instance) {
if (instance == null) {
return true;
}
return isValidXAddress(instance);
};
// This relies on "format": "classicAddress" in `classic-address.json`!
validator.customFormats.classicAddress = function (instance) {
if (instance == null) {
return true;
}
return isValidAddress(instance);
};
validator.customFormats.secret = function (instance) {
if (instance == null) {
return true;
}
return isValidSecret(instance);
};
// Register under the root URI '/'
schemas.forEach((schema) => validator.addSchema(schema, `/${schema.title}`));
return validator;
}
const schemaValidator = loadSchemas();
function schemaValidate(schemaName: string, object: any): void {
// Lookup under the root URI '/'
const schema = schemaValidator.getSchema(`/${schemaName}`);
if (schema == null) {
throw new ValidationError(`no schema for ${schemaName}`);
}
const result = schemaValidator.validate(object, schema);
if (!result.valid) {
throw new ValidationError(result.errors.join());
}
}
function isValidAddress(address: string): boolean {
return isValidXAddress(address) || isValidClassicAddress(address);
}
export { schemaValidate, isValidSecret, isValidAddress };

View File

@@ -1,69 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "api-options",
"type": "object",
"properties": {
"trace": {
"type": "boolean",
"description": "If true, log rippled requests and responses to stdout."
},
"feeCushion": {
"type": "number",
"minimum": 1,
"description": "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": {
"type": "string",
"description": "Maximum fee to use with transactions, in XRP. Must be a string-encoded number. Defaults to `'2'`."
},
"server": {
"type": "string",
"description": "URI for rippled websocket port to connect to. Must start with `wss://`, `ws://`, `wss+unix://`, or `ws+unix://`.",
"format": "uri",
"pattern": "^(wss?|wss?\\+unix)://"
},
"proxy": {
"format": "uri",
"description": "URI for HTTP/HTTPS proxy to use to connect to the rippled server."
},
"timeout": {
"type": "integer",
"description": "Request timeout in milliseconds before considering a request to have failed. See also: connectionTimeout.",
"minimum": 1
},
"connectionTimeout": {
"type": "integer",
"description": "Connection timeout, in milliseconds, before considering connect() to have failed.",
"minimum": 1
},
"proxyAuthorization": {
"type": "string",
"description": "Username and password for HTTP basic authentication to the proxy in the format **username:password**."
},
"authorization": {
"type": "string",
"description": "Username and password for HTTP basic authentication to the rippled server in the format **username:password**."
},
"trustedCertificates": {
"type": "array",
"description": "Array of PEM-formatted SSL certificates to trust when connecting to a proxy. This is useful if you want to use a self-signed certificate on the proxy server. Note: Each element must contain a single certificate; concatenated certificates are not valid.",
"items": {
"type": "string",
"description": "A PEM-formatted SSL certificate to trust when connecting to a proxy."
}
},
"key": {
"type": "string",
"description": "A string containing the private key of the client in PEM format. (Can be an array of keys)."
},
"passphrase": {
"type": "string",
"description": "The passphrase for the private key of the client."
},
"certificate": {
"type": "string",
"description": "A string containing the certificate key of the client in PEM format. (Can be an array of certificates)."
}
},
"additionalProperties": false
}

View File

@@ -1,19 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "combineParameters",
"type": "object",
"properties": {
"signedTransactions": {
"type": "array",
"description": "An array of signed transactions (from the output of [sign](#sign)) to combine.",
"items": {
"type": "string",
"pattern": "^[A-F0-9]+$",
"description": "A single-signed transaction represented as an uppercase hexadecimal string (from the output of [sign](#sign))"
},
"minLength": 1
}
},
"additionalProperties": false,
"required": ["signedTransactions"]
}

View File

@@ -1,13 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "computeLedgerHashParameters",
"type": "object",
"properties": {
"ledger": {
"$ref": "getLedger",
"description": "The ledger header to hash."
}
},
"additionalProperties": false,
"required": ["ledger"]
}

View File

@@ -1,37 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "generateAddressParameters",
"type": "object",
"properties": {
"options": {
"type": "object",
"description": "Options to control how the address and secret are generated.",
"properties": {
"entropy": {
"type": "array",
"items": {
"type": "integer",
"minimum": 0,
"maximum": 255
},
"description": "The entropy to use to generate the seed. Must be an array of length 16 with values from 0-255 (16 bytes of entropy)"
},
"algorithm": {
"type": "string",
"enum": ["ecdsa-secp256k1", "ed25519"],
"description": "The digital signature algorithm to generate an address for. Can be `ecdsa-secp256k1` (default) or `ed25519`."
},
"test": {
"type": "boolean",
"description": "Specifies whether the address is intended for use on a test network such as Testnet or Devnet. If `true`, the address should only be used for testing, and starts with `T`. If `false`, the address should only be used on Mainnet, and starts with `X`."
},
"includeClassicAddress": {
"type": "boolean",
"description": "If `true`, also return the classic address."
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}

View File

@@ -1,37 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "generateXAddressParameters",
"type": "object",
"properties": {
"options": {
"type": "object",
"description": "Options to control how the address and secret are generated.",
"properties": {
"entropy": {
"type": "array",
"items": {
"type": "integer",
"minimum": 0,
"maximum": 255
},
"description": "The entropy to use to generate the seed. Must be an array of length 16 with values from 0-255 (16 bytes of entropy)"
},
"algorithm": {
"type": "string",
"enum": ["ecdsa-secp256k1", "ed25519"],
"description": "The digital signature algorithm to generate an address for. Can be `ecdsa-secp256k1` (default) or `ed25519`."
},
"test": {
"type": "boolean",
"description": "Specifies whether the address is intended for use on a test network such as Testnet or Devnet. If `true`, the address should only be used for testing, and starts with `T`. If `false`, the address should only be used on Mainnet, and starts with `X`."
},
"includeClassicAddress": {
"type": "boolean",
"description": "Specifies whether the classic address should also be included in the returned payload."
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}

View File

@@ -1,24 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "getAccountInfoParameters",
"description": "Parameters for getAccountInfo",
"type": "object",
"properties": {
"address": {
"$ref": "address",
"description": "The address of the account to get the account info of."
},
"options": {
"description": "Options that affect what to return.",
"properties": {
"ledgerVersion": {
"$ref": "ledgerVersion",
"description": "Get the account info as of this historical ledger version."
}
},
"additionalProperties": false
}
},
"required": ["address"],
"additionalProperties": false
}

View File

@@ -1,56 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "getAccountObjectsOptions",
"description": "Request options for getAccountObjects",
"type": "object",
"properties": {
"address": {
"$ref": "address",
"description": "The address of the account to get the account objects of."
},
"options": {
"description": "Options that affect what to return.",
"properties": {
"type": {
"type": "string",
"enum": [
"check",
"escrow",
"offer",
"payment_channel",
"signer_list",
"state"
],
"description":
"(Optional) Filter results to include only this type of ledger object. The valid types are: `check`, `escrow`, `offer`, `payment_channel`, `signer_list`, and `state` (trust line)."
},
"ledgerHash": {
"type": "string",
"description":
"(Optional) A 20-byte hex string for the ledger version to use."
},
"ledgerIndex": {
"oneOf": [
{
"$ref": "ledgerVersion"
},
{
"type": "string"
}
],
"description":
"(Optional) The sequence number of the ledger to use, or a shortcut string to choose a ledger automatically."
},
"limit": {
"type": "integer",
"minimum": 1,
"description":
"(Optional) The maximum number of objects to include in the results."
}
},
"additionalProperties": false
}
},
"required": ["address"],
"additionalProperties": false
}

View File

@@ -1,30 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "getBalanceSheetParameters",
"description": "Parameters for getBalanceSheet",
"type": "object",
"properties": {
"address": {
"$ref": "address",
"description": "The XRP Ledger address of the account to get the balance sheet of."
},
"options": {
"properties": {
"excludeAddresses": {
"type": "array",
"items": {"$ref": "address"},
"uniqueItems": true,
"description": "Addresses to exclude from the balance totals."
},
"ledgerVersion": {
"$ref": "ledgerVersion",
"description": "Get the balance sheet as of this historical ledger version."
}
},
"description": "Options to determine how the balances are calculated.",
"additionalProperties": false
}
},
"additionalProperties": false,
"required": ["address"]
}

View File

@@ -1,37 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "getBalancesParameters",
"description": "Parameters for getBalances",
"type": "object",
"properties": {
"address": {
"$ref": "address",
"description": "The address of the account to get balances for."
},
"options": {
"description": "Options to filter and determine which balances to return.",
"properties": {
"counterparty": {
"$ref": "address",
"description": "Only return balances with this counterparty."
},
"currency": {
"$ref": "currency",
"description": "Only return balances for this currency."
},
"limit": {
"type": "integer",
"minimum": 1,
"description": "Return at most this many balances."
},
"ledgerVersion": {
"$ref": "ledgerVersion",
"description": "Return balances as they were in this historical ledger version."
}
},
"additionalProperties": false
}
},
"additionalProperties": false,
"required": ["address"]
}

View File

@@ -1,13 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "getFeeParameters",
"description": "Parameters for getFee",
"type": "object",
"properties": {
"cushion": {
"type": "number",
"description": "The fee is the product of the base fee, the `load_factor`, and this cushion. Default is provided by the `Client` constructor's `feeCushion`."
}
},
"additionalProperties": false
}

View File

@@ -1,35 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "getLedgerParameters",
"description": "Parameters for getLedger",
"type": "object",
"properties": {
"options": {
"description": "Options affecting what ledger and how much data to return.",
"properties": {
"ledgerHash": {
"type": "string",
"description": "Get ledger data for this historical ledger hash."
},
"ledgerVersion": {
"$ref": "ledgerVersion",
"description": "Get ledger data for this historical ledger version."
},
"includeAllData": {
"type": "boolean",
"description": "Include the details of the transactions or state information if `includeTransactions` or `includeState` is set."
},
"includeTransactions": {
"type": "boolean",
"description": "Return an array of transactions in this ledger. By default, provides the identifying hashes for each transaction. If `includeAllData` is true, include the entire transaction JSON for each transaction instead."
},
"includeState": {
"type": "boolean",
"description": "Return an array of state data in this ledger. By default, provides the identifying hashes of state data. If `includeAllData` is true, return the state data in JSON form instead. **Admin required:** This is a very large amount of data."
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}

View File

@@ -1,33 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "getOrderbookParameters",
"description": "Parameters for getOrderbook",
"type": "object",
"properties": {
"address": {
"$ref": "address",
"description": "Address of an account to use as point-of-view. (This affects which unfunded offers are returned.)"
},
"orderbook": {
"$ref": "orderbook",
"description": "The order book to get."
},
"options": {
"description": "Options to determine what to return.",
"properties": {
"limit": {
"type": "integer",
"minimum": 1,
"description": "Return at most this many orders from the order book."
},
"ledgerVersion": {
"$ref": "ledgerVersion",
"description": "Return the order book as of this historical ledger version."
}
},
"additionalProperties": false
}
},
"required": ["address", "orderbook"],
"additionalProperties": false
}

View File

@@ -1,29 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "getOrdersParameters",
"description": "Parameters for getOrders",
"type": "object",
"properties": {
"address": {
"$ref": "address",
"description": "The XRP Ledger address of the account to get open orders for."
},
"options": {
"description": "Options that determine what orders to return.",
"properties": {
"limit": {
"type": "integer",
"minimum": 1,
"description": "Return at most this many orders."
},
"ledgerVersion": {
"$ref": "ledgerVersion",
"description": "Return orders as of this historical ledger version."
}
},
"additionalProperties": false
}
},
"required": ["address"],
"additionalProperties": false
}

View File

@@ -1,69 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "getPathsParameters",
"type": "object",
"properties": {
"pathfind": {
"description": "Specification of a pathfind request.",
"properties": {
"source": {
"description": "Properties of the source of funds.",
"type": "object",
"properties": {
"address": {
"$ref": "address",
"description": "The XRP Ledger address of the planned sender."
},
"amount": {
"$ref": "laxAmount",
"description": "The amount of funds to send."
},
"currencies": {
"description": "An array of currencies (with optional counterparty) that may be used in the payment paths.",
"type": "array",
"items": {
"description": "A currency with optional counterparty.",
"type": "object",
"properties": {
"currency": {"$ref": "currency"},
"counterparty": {
"$ref": "address",
"description": "The counterparty for the currency; if omitted any counterparty may be used."
}
},
"required": ["currency"],
"additionalProperties": false
},
"uniqueItems": true
}
},
"not": {
"required": ["amount", "currencies"]
},
"additionalProperties": false,
"required": ["address"]
},
"destination": {
"description": "Properties of the destination of funds.",
"type": "object",
"properties": {
"address": {
"$ref": "address",
"description": "An address representing the destination of the transaction."
},
"amount": {
"$ref": "laxLaxAmount",
"description": "The amount to be received by the receiver (`value` may be ommitted if a source amount is specified)."
}
},
"required": ["address", "amount"],
"additionalProperties": false
}
},
"required": ["source", "destination"],
"additionalProperties": false
}
},
"additionalProperties": false,
"required": ["pathfind"]
}

View File

@@ -1,14 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "getPaymentChannelParameters",
"description": "Parameters for getPaymentChannel",
"type": "object",
"properties": {
"id": {
"$ref": "hash256",
"description": "256-bit hexadecimal channel identifier."
}
},
"additionalProperties": false,
"required": ["id"]
}

View File

@@ -1,24 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "getSettingsParameters",
"description": "Parameters for getSettings",
"type": "object",
"properties": {
"address": {
"$ref": "address",
"description": "The address of the account to get the settings of."
},
"options": {
"description": "Options that affect what to return.",
"properties": {
"ledgerVersion": {
"$ref": "ledgerVersion",
"description": "Get the settings as of this historical ledger version."
}
},
"additionalProperties": false
}
},
"required": ["address"],
"additionalProperties": false
}

View File

@@ -1,28 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "getTransactionParameters",
"description": "Parameters for getTransaction",
"type": "object",
"properties": {
"id": {"$ref": "transactionHash"},
"options": {
"description": "Options to limit the ledger versions to search or include raw transaction data.",
"properties": {
"minLedgerVersion": {
"$ref": "ledgerVersion",
"description": "The lowest ledger version to search. This must be an integer greater than 0, or one of the following strings: 'validated', 'closed', 'current'."
},
"maxLedgerVersion": {
"$ref": "ledgerVersion",
"description": "The highest ledger version to search. This must be an integer greater than 0, or one of the following strings: 'validated', 'closed', 'current'."
},
"includeRawTransaction": {
"description": "Include raw transaction data. For advanced users; exercise caution when interpreting this data."
}
},
"additionalProperties": false
}
},
"additionalProperties": false,
"required": ["id"]
}

View File

@@ -1,71 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "getTransactionsParameters",
"description": "Parameters for getTransactions",
"type": "object",
"properties": {
"address": {
"$ref": "address",
"description": "The address of the account to get transactions for."
},
"options": {
"description": "Options to filter the resulting transactions.",
"properties": {
"start": {
"$ref": "hash256",
"description": "If specified, start the results from this transaction. You cannot use `start` with `minLedgerVersion` or `maxLedgerVersion`. When `start` is specified, these ledger versions are determined internally."
},
"limit": {
"type": "integer",
"minimum": 1,
"description": "If specified, return at most this many transactions."
},
"minLedgerVersion": {
"$ref": "ledgerVersion",
"description": "Return only transactions in this ledger version or higher."
},
"maxLedgerVersion": {
"$ref": "ledgerVersion",
"description": "Return only transactions in this ledger version or lower."
},
"earliestFirst": {
"type": "boolean",
"description": "If true, sort transactions so that the earliest ones come first. By default, the newest transactions come first."
},
"excludeFailures": {
"type": "boolean",
"description": "If true, the result omits transactions that did not succeed."
},
"initiated": {
"type": "boolean",
"description": "If true, return only transactions initiated by the account specified by `address`. If false, return only transactions not initiated by the account specified by `address`."
},
"counterparty": {
"$ref": "address",
"description": "If provided, only return transactions with this account as a counterparty to the transaction."
},
"types": {
"type": "array",
"items": {"$ref": "transactionType"},
"description": "Only return transactions of the specified [Transaction Types](#transaction-types)."
},
"includeRawTransactions": {
"description": "Include raw transaction data. For advanced users; exercise caution when interpreting this data. "
},
"binary": {
"type": "boolean",
"description": "If true, return transactions in binary format rather than JSON."
}
},
"additionalProperties": false,
"not": {
"anyOf": [
{"required": ["start", "minLedgerVersion"]},
{"required": ["start", "maxLedgerVersion"]}
]
}
}
},
"additionalProperties": false,
"required": ["address"]
}

View File

@@ -1,37 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "getTrustlinesParameters",
"description": "Parameters for getTrustlines",
"type": "object",
"properties": {
"address": {
"$ref": "address",
"description": "The address of the account to get trustlines for."
},
"options": {
"description": "Options to filter and determine which trustlines to return.",
"properties": {
"counterparty": {
"$ref": "address",
"description": "Only return trustlines with this counterparty."
},
"currency": {
"$ref": "currency",
"description": "Only return trustlines for this currency."
},
"limit": {
"type": "integer",
"minimum": 1,
"description": "Return at most this many trustlines."
},
"ledgerVersion": {
"$ref": "ledgerVersion",
"description": "Return trustlines as they were in this historical ledger version."
}
},
"additionalProperties": false
}
},
"additionalProperties": false,
"required": ["address"]
}

View File

@@ -1,18 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "prepareCheckCancelParameters",
"type": "object",
"properties": {
"address": {
"$ref": "address",
"description": "The address of the account that is creating the transaction."
},
"checkCancel": {
"$ref": "checkCancel",
"description": "The specification of the Check cancellation to prepare."
},
"instructions": {"$ref": "instructions"}
},
"additionalProperties": false,
"required": ["address", "checkCancel"]
}

View File

@@ -1,18 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "prepareCheckCashParameters",
"type": "object",
"properties": {
"address": {
"$ref": "address",
"description": "The address of the account that is creating the transaction."
},
"checkCash": {
"$ref": "checkCash",
"description": "The specification of the Check cash to prepare."
},
"instructions": {"$ref": "instructions"}
},
"additionalProperties": false,
"required": ["address", "checkCash"]
}

View File

@@ -1,18 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "prepareCheckCreateParameters",
"type": "object",
"properties": {
"address": {
"$ref": "address",
"description": "The address of the account that is creating the transaction."
},
"checkCreate": {
"$ref": "checkCreate",
"description": "The specification of the Check create creation to prepare."
},
"instructions": {"$ref": "instructions"}
},
"additionalProperties": false,
"required": ["address", "checkCreate"]
}

View File

@@ -1,18 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "prepareEscrowCancellationParameters",
"type": "object",
"properties": {
"address": {
"$ref": "address",
"description": "The address of the account that is creating the transaction."
},
"escrowCancellation": {
"$ref": "escrowCancellation",
"description": "The specification of the escrow cancellation to prepare."
},
"instructions": {"$ref": "instructions"}
},
"additionalProperties": false,
"required": ["address", "escrowCancellation"]
}

View File

@@ -1,18 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "prepareEscrowCreationParameters",
"type": "object",
"properties": {
"address": {
"$ref": "address",
"description": "The address of the account that is creating the transaction."
},
"escrowCreation": {
"$ref": "escrowCreation",
"description": "The specification of the escrow creation to prepare."
},
"instructions": {"$ref": "instructions"}
},
"additionalProperties": false,
"required": ["address", "escrowCreation"]
}

View File

@@ -1,18 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "prepareEscrowExecutionParameters",
"type": "object",
"properties": {
"address": {
"$ref": "address",
"description": "The address of the account that is creating the transaction."
},
"escrowExecution": {
"$ref": "escrowExecution",
"description": "The specification of the escrow execution to prepare."
},
"instructions": {"$ref": "instructions"}
},
"additionalProperties": false,
"required": ["address", "escrowExecution"]
}

View File

@@ -1,18 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "prepareOrderCancellationParameters",
"type": "object",
"properties": {
"address": {
"$ref": "address",
"description": "The address of the account that is creating the transaction."
},
"orderCancellation": {
"$ref": "orderCancellation",
"description": "The specification of the order cancellation to prepare."
},
"instructions": {"$ref": "instructions"}
},
"additionalProperties": false,
"required": ["address", "orderCancellation"]
}

View File

@@ -1,18 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "prepareOrderParameters",
"type": "object",
"properties": {
"address": {
"$ref": "address",
"description": "The address of the account that is creating the transaction."
},
"order": {
"$ref": "order",
"description": "The specification of the order to prepare."
},
"instructions": {"$ref": "instructions"}
},
"additionalProperties": false,
"required": ["address", "order"]
}

View File

@@ -1,18 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "preparePaymentChannelClaimParameters",
"type": "object",
"properties": {
"address": {
"$ref": "address",
"description": "The address of the account that is creating the transaction."
},
"paymentChannelClaim": {
"$ref": "paymentChannelClaim",
"description": "Details of the channel and claim."
},
"instructions": {"$ref": "instructions"}
},
"additionalProperties": false,
"required": ["address", "paymentChannelClaim"]
}

View File

@@ -1,18 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "preparePaymentChannelCreateParameters",
"type": "object",
"properties": {
"address": {
"$ref": "address",
"description": "The address of the account that is creating the transaction."
},
"paymentChannelCreate": {
"$ref": "paymentChannelCreate",
"description": "The specification of the payment channel to create."
},
"instructions": {"$ref": "instructions"}
},
"additionalProperties": false,
"required": ["address", "paymentChannelCreate"]
}

View File

@@ -1,18 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "preparePaymentChannelFundParameters",
"type": "object",
"properties": {
"address": {
"$ref": "address",
"description": "The address of the account that is creating the transaction."
},
"paymentChannelFund": {
"$ref": "paymentChannelFund",
"description": "The channel to fund, and the details of how to fund it."
},
"instructions": {"$ref": "instructions"}
},
"additionalProperties": false,
"required": ["address", "paymentChannelFund"]
}

View File

@@ -1,18 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "preparePaymentParameters",
"type": "object",
"properties": {
"address": {
"$ref": "address",
"description": "The address of the account that is creating the transaction."
},
"payment": {
"$ref": "payment",
"description": "The specification of the payment to prepare."
},
"instructions": {"$ref": "instructions"}
},
"additionalProperties": false,
"required": ["address", "payment"]
}

View File

@@ -1,18 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "prepareSettingsParameters",
"type": "object",
"properties": {
"address": {
"$ref": "address",
"description": "The address of the account that is creating the transaction."
},
"settings": {
"$ref": "settings",
"description": "The specification of the settings to prepare."
},
"instructions": {"$ref": "instructions"}
},
"additionalProperties": false,
"required": ["address", "settings"]
}

View File

@@ -1,18 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "prepareTicketParameters",
"type": "object",
"properties": {
"address": {
"$ref": "address",
"description": "The address of the account that is creating the transaction."
},
"ticketCount": {
"type": "number",
"description": "The number of tickets to be created."
},
"instructions": {"$ref": "instructions"}
},
"additionalProperties": false,
"required": ["address", "ticketCount"]
}

View File

@@ -1,18 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "prepareTrustlineParameters",
"type": "object",
"properties": {
"address": {
"$ref": "address",
"description": "The address of the account that is creating the transaction."
},
"trustline": {
"$ref": "trustline",
"description": "The specification of the trustline to prepare."
},
"instructions": {"$ref": "instructions"}
},
"additionalProperties": false,
"required": ["address", "trustline"]
}

View File

@@ -1,21 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "signPaymentChannelClaimParameters",
"type": "object",
"properties": {
"channel": {
"$ref": "hash256",
"description": "256-bit hexadecimal channel identifier."
},
"amount": {
"$ref": "value",
"description": "Amount of XRP authorized by the claim."
},
"privateKey": {
"$ref": "publicKey",
"description": "The private key to sign the payment channel claim."
}
},
"additionalProperties": false,
"required": ["channel", "amount", "privateKey"]
}

View File

@@ -1,55 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "signParameters",
"type": "object",
"properties": {
"txJSON": {
"type": "string",
"description": "Transaction represented as a JSON string in rippled format."
},
"secret": {
"type": "string",
"format": "secret",
"description": "The secret of the account that is initiating the transaction. (This field cannot be used with keypair)."
},
"keypair": {
"type": "object",
"properties": {
"privateKey": {
"type": "privateKey",
"description": "The uppercase hexadecimal representation of the secp256k1 or Ed25519 private key. Ed25519 keys are prefixed with 0xED. You can read about how keys are derived [here](https://xrpl.org/cryptographic-keys.html)."
},
"publicKey": {
"type": "publicKey",
"description": "The uppercase hexadecimal representation of the secp256k1 or Ed25519 public key. Ed25519 keys are prefixed with 0xED. You can read about how keys are derived [here](https://xrpl.org/cryptographic-keys.html)."
}
},
"description": "The private and public key of the account that is initiating the transaction. (This field cannot be used with secret).",
"required": ["privateKey", "publicKey"],
"additionalProperties": false
},
"options": {
"type": "object",
"description": "Options that control the type of signature to create.",
"properties": {
"signAs": {
"$ref": "address",
"description": "The account that the signature should count for in multisigning."
}
},
"additionalProperties": false
}
},
"additionalProperties": false,
"required": ["txJSON"],
"oneOf": [
{
"required": ["secret"],
"not": {"required": ["keypair"]}
},
{
"required": ["keypair"],
"not": {"required": ["secret"]}
}
]
}

View File

@@ -1,17 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "submitParameters",
"type": "object",
"properties": {
"signedTransaction": {
"$ref": "blob",
"description": "A signed transaction as returned by [sign](#sign)."
},
"failHard": {
"type": "boolean",
"description": "If `true`, and the transaction fails locally, do not retry or relay the transaction to other servers. Defaults to `false`."
}
},
"additionalProperties": false,
"required": ["signedTransaction"]
}

View File

@@ -1,25 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "verifyPaymentChannelClaimParameters",
"type": "object",
"properties": {
"channel": {
"$ref": "hash256",
"description": "256-bit hexadecimal channel identifier."
},
"amount": {
"$ref": "value",
"description": "Amount of XRP authorized by the claim."
},
"signature": {
"$ref": "signature",
"description": "Signature of this claim."
},
"publicKey": {
"$ref": "publicKey",
"description": "Public key of the channel's sender"
}
},
"additionalProperties": false,
"required": ["channel", "amount", "signature", "publicKey"]
}

View File

@@ -1,12 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "address",
"description": "An account address on the XRP Ledger",
"type": "string",
"format": "address",
"link": "address",
"oneOf": [
{"$ref": "xAddress"},
{"$ref": "classicAddress"}
]
}

View File

@@ -1,12 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "adjustment",
"type": "object",
"properties": {
"address": {"$ref": "address"},
"amount": {"$ref": "amount"},
"tag": {"$ref": "tag"}
},
"required": ["address", "amount"],
"additionalProperties": false
}

View File

@@ -1,10 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "amount",
"link": "amount",
"description": "An Amount on the XRP Ledger",
"allOf": [
{"$ref": "amountbase"},
{"required": ["value"]}
]
}

View File

@@ -1,44 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "amountbase",
"description": "Base class for amount and issue",
"type": "object",
"properties": {
"value": {
"description": "The quantity of the currency, denoted as a string so that it does not lose precision",
"$ref": "value"
},
"currency": {
"description": "The three-character code or hexadecimal string used to denote currencies, or \"drops\" for the smallest unit of XRP.",
"$ref": "currency"
},
"counterparty": {
"description": "The XRP Ledger address of the account that owes or is owed the funds (omitted if `currency` is \"XRP\" or \"drops\")",
"$ref": "address"
}
},
"additionalProperties": false,
"required": ["currency"],
"oneOf": [
{
"properties": {
"currency": {
"not": {
"enum": ["XRP", "drops"]
}
}
},
"required": ["counterparty"]
},
{
"properties": {
"currency": {
"enum": ["XRP", "drops"]
}
},
"not": {
"required": ["counterparty"]
}
}
]
}

View File

@@ -1,45 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "balance",
"description": "Balance amount",
"link": "amount",
"type": "object",
"properties": {
"value": {
"description": "The balance on the trustline",
"$ref": "signedValue"
},
"currency": {
"description": "The three-character code or hexadecimal string used to denote currencies",
"$ref": "currency"
},
"counterparty": {
"description": "The XRP Ledger address of the account that owes or is owed the funds.",
"$ref": "address"
}
},
"additionalProperties": false,
"required": ["currency", "value"],
"oneOf": [
{
"properties": {
"currency": {
"not": {
"enum": ["XRP"]
}
}
},
"required": ["counterparty"]
},
{
"properties": {
"currency": {
"enum": ["XRP"]
}
},
"not": {
"required": ["counterparty"]
}
}
]
}

View File

@@ -1,8 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "blob",
"description": "An uppercase hexadecimal string representation of a transaction",
"type": "string",
"minLength": 1,
"pattern": "^[0-9A-F]*$"
}

View File

@@ -1,9 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "classicAddress",
"description": "A classic address (Account ID) for the XRP Ledger",
"type": "string",
"format": "classicAddress",
"link": "classic-address",
"pattern": "^r[1-9A-HJ-NP-Za-km-z]{24,34}$"
}

View File

@@ -1,8 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "currency",
"description": "The three-character code or hexadecimal string used to denote currencies",
"type": "string",
"link": "currency",
"pattern": "^([a-zA-Z0-9<>(){}[\\]|?!@#$%^&*]{3}|[A-F0-9]{40}|drops)$"
}

View File

@@ -1,15 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "destinationAddressTag",
"description": "A destination address and optional tag, with no amount included. When parsing an incoming transaction, the original specification's amount is hidden to prevent misinterpretation. For the amount that the transaction delivered, see `outcome.deliveredAmount`.",
"type": "object",
"properties": {
"address": {
"$ref": "address",
"description": "An address representing the destination of the transaction."
},
"tag": {"$ref": "tag"}
},
"required": ["address"],
"additionalProperties": false
}

View File

@@ -1,9 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "destinationAdjustment",
"type": "object",
"oneOf": [
{"$ref": "destinationExactAdjustment"},
{"$ref": "minAdjustment"}
]
}

View File

@@ -1,18 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "destinationExactAdjustment",
"type": "object",
"properties": {
"address": {
"$ref": "address",
"description": "An address representing the destination of the transaction."
},
"amount": {
"$ref": "laxAmount",
"description": "An exact amount to deliver to the recipient. If the counterparty is not specified, amounts with any counterparty may be used. (This field cannot be used with `destination.minAmount`.)"
},
"tag": {"$ref": "tag"}
},
"required": ["address", "amount"],
"additionalProperties": false
}

View File

@@ -1,7 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "hash128",
"description": "The hexadecimal representation of a 128-bit hash",
"type": "string",
"pattern": "^[A-F0-9]{32}$"
}

View File

@@ -1,7 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "hash256",
"description": "The hexadecimal representation of a 256-bit hash",
"type": "string",
"pattern": "^[A-F0-9]{64}$"
}

View File

@@ -1,59 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "instructions",
"link": "transaction-instructions",
"description": "Instructions for executing the transaction",
"type": "object",
"properties": {
"sequence": {
"description": "The initiating account's sequence number for this transaction. `sequence` and `ticketSequence` are mutually exclusive, only one of them can be set.",
"$ref": "sequence"
},
"ticketSequence": {
"description": "The ticket sequence to be used for this transaction. `sequence` and `ticketSequence` are mutually exclusive, only one of them can be set.",
"$ref": "ticket-sequence"
},
"fee": {
"description": "An exact fee to pay for the transaction, before multiplying for multi-signed transactions. See [Transaction Fees](#transaction-fees) for more information.",
"$ref": "value"
},
"maxFee": {
"description": "Deprecated: Use `maxFeeXRP` in the Client constructor instead. The maximum fee to pay for this transaction. If this exceeds `maxFeeXRP`, use `maxFeeXRP` instead. See [Transaction Fees](#transaction-fees) for more information.",
"$ref": "value"
},
"maxLedgerVersion": {
"description": "The highest ledger version that the transaction can be included in. If this option and `maxLedgerVersionOffset` are both omitted, the default is 3 greater than the current validated ledger version (equivalent to `maxLedgerVersionOffset=3`). Use `null` to not set a maximum ledger version. If not null, this must be an integer greater than 0, or one of the following strings: 'validated', 'closed', 'current'.",
"oneOf": [
{"$ref": "ledgerVersion"},
{"type": "null"}
]
},
"maxLedgerVersionOffset": {
"description": "Offset from current validated ledger version to highest ledger version that the transaction can be included in.",
"type": "integer",
"minimum": 0
},
"signersCount": {
"description": "Number of signers that can multi-sign this transaction.",
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"not": {
"anyOf": [
{
"description": "fee and maxFee are mutually exclusive",
"required": ["fee", "maxFee"]
},
{
"description": "maxLedgerVersion and maxLedgerVersionOffset are mutually exclusive",
"required": ["maxLedgerVersion", "maxLedgerVersionOffset"]
},
{
"description": "sequence and ticketSequence are mutually exclusive",
"required": ["sequence", "ticketSequence"]
}
]
}
}

View File

@@ -1,9 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "issue",
"description": "The currency code, and the counterparty if it's not XRP.",
"allOf": [
{"$ref": "amountbase"},
{"not": {"required": ["value"]}}
]
}

View File

@@ -1,14 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "laxAmount",
"description": "Amount where counterparty is optional",
"link": "amount",
"type": "object",
"properties": {
"currency": {"$ref": "currency"},
"counterparty": {"$ref": "address"},
"value": {"$ref": "value"}
},
"required": ["currency", "value"],
"additionalProperties": false
}

View File

@@ -1,14 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "laxLaxAmount",
"description": "Amount where counterparty and value are optional",
"link": "amount",
"type": "object",
"properties": {
"currency": {"$ref": "currency"},
"counterparty": {"$ref": "address"},
"value": {"$ref": "value"}
},
"required": ["currency"],
"additionalProperties": false
}

View File

@@ -1,15 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "ledgerVersion",
"description": "A ledger version number",
"oneOf": [
{
"type": "integer",
"minimum": 1
},
{
"type": "string",
"enum": ["validated", "closed", "current"]
}
]
}

View File

@@ -1,18 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "maxAdjustment",
"type": "object",
"properties": {
"address": {
"$ref": "address",
"description": "The address to send from."
},
"maxAmount": {
"$ref": "laxAmount",
"description": "The maximum amount to send. (This field cannot be used with source.amount)"
},
"tag": {"$ref": "tag"}
},
"required": ["address", "maxAmount"],
"additionalProperties": false
}

View File

@@ -1,25 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "memo",
"description": "Memo objects represent arbitrary data that can be included in a transaction",
"type": "object",
"properties": {
"type": {
"pattern": "^[A-Za-z0-9\\-._~:/?#[\\]@!$&'()*+,;=%]*$",
"description": "Conventionally, a unique relation (according to [RFC 5988](http://tools.ietf.org/html/rfc5988#section-4)) that defines the format of this memo. Only characters allowed in URLs are permitted."
},
"format": {
"pattern": "^[A-Za-z0-9\\-._~:/?#[\\]@!$&'()*+,;=%]*$",
"description": "Conventionally containing information on how the memo is encoded, for example as a [MIME type](http://www.iana.org/assignments/media-types/media-types.xhtml). Only characters allowed in URLs are permitted."
},
"data": {
"type": "string",
"description": "Arbitrary string, conventionally containing the content of the memo."
}
},
"additionalProperties": false,
"anyOf": [
{"required": ["data"]},
{"required": ["type"]}
]
}

View File

@@ -1,10 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "memos",
"link": "transaction-memos",
"description": "Array of memos to attach to the transaction.",
"type": "array",
"items": {
"$ref": "memo"
}
}

View File

@@ -1,18 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "minAdjustment",
"type": "object",
"properties": {
"address": {
"$ref": "address",
"description": "An address representing the destination of the transaction."
},
"minAmount": {
"$ref": "laxAmount",
"description": "The minimum amount to be delivered. (This field cannot be used with destination.amount)"
},
"tag": {"$ref": "tag"}
},
"required": ["address", "minAmount"],
"additionalProperties": false
}

View File

@@ -1,11 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "orderbook",
"type": "object",
"properties": {
"base": {"$ref": "issue"},
"counter": {"$ref": "issue"}
},
"required": ["base", "counter"],
"additionalProperties": false
}

View File

@@ -1,7 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "privateKey",
"description": "The hexadecimal representation of a secp256k1 or Ed25519 private key.",
"type": "string",
"pattern": "^[A-F0-9]+$"
}

View File

@@ -1,7 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "publicKey",
"description": "The hexadecimal representation of a secp256k1 or Ed25519 public key.",
"type": "string",
"pattern": "^[A-F0-9]+$"
}

View File

@@ -1,8 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "quality",
"description": "Ratio for incoming/outgoing transit fees.",
"type": "number",
"minimum": 0.000000001,
"maximum": 4.294967295
}

View File

@@ -1,8 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "sequence",
"link": "account-sequence-number",
"description": "An account transaction sequence number",
"type": "integer",
"minimum": 0
}

View File

@@ -1,120 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "settingsPlusMemos",
"type": "object",
"properties": {
"defaultRipple": {
"type": "boolean",
"description": "Enable [rippling](https://xrpl.org/rippling.html) on this accounts trust lines by default. Currency issuers should enable this setting; most others should not."
},
"depositAuth": {
"type": "boolean",
"description": "Enable [Deposit Authorization](https://xrpl.org/depositauth.html) on this account. If set, transactions cannot send value of any kind to this account unless the sender of those transactions is the account itself. (Requires the [DepositAuth amendment](https://xrpl.org/known-amendments.html#depositauth))"
},
"disableMasterKey": {
"type": "boolean",
"description": "Disallows use of the master key to sign transactions for this account. To disable the master key, you must authorize the transaction by signing it with the master key pair. You cannot use a regular key pair or a multi-signature. You can re-enable the master key pair using a regular key pair or multi-signature. See [AccountSet](https://xrpl.org/accountset.html)."
},
"disallowIncomingXRP": {
"type": "boolean",
"description": "Indicates that client applications should not send XRP to this account. Not enforced by rippled."
},
"domain": {
"type": "string",
"description": "The domain that owns this account, as a hexadecimal string representing the ASCII for the domain in lowercase."
},
"emailHash": {
"description": "Hash of an email address to be used for generating an avatar image. Conventionally, clients use Gravatar to display this image. Use `null` to clear.",
"oneOf": [
{"type": "null"},
{"$ref": "hash128"}
]
},
"walletLocator": {
"description": "Transaction hash or any other 64 character hexadecimal string, that may or may not represent the result of a hash operation. Use `null` to clear.",
"oneOf": [
{"type": "null"},
{"$ref": "hash256"}
]
},
"enableTransactionIDTracking": {
"type": "boolean",
"description": "Track the ID of this accounts most recent transaction."
},
"globalFreeze": {
"type": "boolean",
"description": "Freeze all assets issued by this account."
},
"memos": {"$ref": "memos"},
"messageKey": {
"type": "string",
"description": "Public key for sending encrypted messages to this account. Conventionally, it should be a secp256k1 key, the same encryption that is used by the rest of Ripple."
},
"noFreeze": {
"type": "boolean",
"description": "Permanently give up the ability to freeze individual trust lines. This flag can never be disabled after being enabled."
},
"passwordSpent": {
"type": "boolean",
"description": "Indicates that the account has used its free SetRegularKey transaction."
},
"regularKey": {
"oneOf": [
{"$ref": "address"},
{"type": "null"}
],
"description": "The public key of a new keypair, to use as the regular key to this account, as a base-58-encoded string in the same format as an account address. Use `null` to remove the regular key."
},
"requireAuthorization": {
"type": "boolean",
"description": "If set, this account must individually give other users permission to hold this accounts issued tokens."
},
"requireDestinationTag": {
"type": "boolean",
"description": "Requires incoming payments to specify a destination tag."
},
"signers": {
"type": "object",
"description": "Settings that determine what sets of accounts can be used to sign a transaction on behalf of this account using multisigning.",
"properties": {
"threshold": {
"$ref": "uint32",
"description": "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 equal or greater than this value. To delete the signers setting, use the value `0`."
},
"weights": {
"type": "array",
"description": "Weights of signatures for each signer.",
"items": {
"type": "object",
"description": "An association of an address and a weight.",
"properties": {
"address": {"$ref": "address"},
"weight": {
"$ref": "uint32",
"description": "The weight that the signature of this account counts as towards the threshold."
}
},
"required": ["address", "weight"],
"additionalProperties": false
},
"minItems": 1,
"maxItems": 8
}
},
"required": ["threshold"],
"additionalProperties": false
},
"transferRate": {
"description": "The fee to charge when users transfer this accounts issuances, as the decimal amount that must be sent to deliver 1 unit. Has precision up to 9 digits beyond the decimal point. Use `null` to set no fee.",
"oneOf": [
{"type": "null"},
{"type": "number", "minimum": 1, "maximum": 4.294967295}
]
},
"tickSize": {
"description": "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.",
"enum": [0, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
}
},
"additionalProperties": false
}

View File

@@ -1,7 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "signature",
"description": "The hexadecimal representation of a signature.",
"type": "string",
"pattern": "^[A-F0-9]+$"
}

View File

@@ -1,8 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "signedValue",
"description": "A string representation of a floating point number",
"type": "string",
"link": "value",
"pattern": "^[-]?[0-9]*[.]?[0-9]+([eE][-+]?[0-9]+)?$"
}

View File

@@ -1,9 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "sourceAdjustment",
"type": "object",
"oneOf": [
{"$ref": "sourceExactAdjustment"},
{"$ref": "maxAdjustment"}
]
}

View File

@@ -1,18 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "sourceExactAdjustment",
"type": "object",
"properties": {
"address": {
"$ref": "address",
"description": "The address to send from."
},
"amount": {
"$ref": "laxAmount",
"description": "An exact amount to send. If the counterparty is not specified, amounts with any counterparty may be used. (This field cannot be used with source.maxAmount)"
},
"tag": {"$ref": "tag"}
},
"required": ["address", "amount"],
"additionalProperties": false
}

View File

@@ -1,7 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "tag",
"description": "An arbitrary 32-bit unsigned integer. It typically maps to an off-ledger account; for example, a hosted wallet or exchange account.",
"type": "integer",
"$ref": "uint32"
}

View File

@@ -1,8 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "ticket-sequence",
"link": "account-sequence-number",
"description": "An account transaction tickt sequence number",
"type": "integer",
"minimum": 1
}

View File

@@ -1,8 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "transactionHash",
"link": "transaction-id",
"description": "A hash of a transaction used to identify the transaction, represented in hexadecimal.",
"type": "string",
"pattern": "^[A-F0-9]{64}$"
}

View File

@@ -1,25 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "transactionType",
"link": "transaction-types",
"description": "The type of the transaction.",
"type": "string",
"enum": [
"payment",
"order",
"orderCancellation",
"trustline",
"settings",
"escrowCreation",
"escrowCancellation",
"escrowExecution",
"paymentChannelCreate",
"paymentChannelFund",
"paymentChannelClaim",
"checkCreate",
"checkCancel",
"checkCash",
"depositPreauth",
"accountDelete"
]
}

View File

@@ -1,12 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "tx-json",
"link": "https://xrpl.org/transaction-formats.html",
"description": "An object in rippled txJSON format",
"type": "object",
"properties": {
"Account": {"$ref": "address"},
"TransactionType": {"type": "string"}
},
"required": ["Account", "TransactionType"]
}

View File

@@ -1,8 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "uint32",
"description": "A 32-bit unsigned integer",
"type": "integer",
"minimum": 0,
"maximum": 4294967295
}

View File

@@ -1,8 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "value",
"link": "value",
"description": "A string representation of a non-negative floating point number",
"type": "string",
"pattern": "^[0-9]*[.]?[0-9]+([eE][-+]?[0-9]+)?$"
}

View File

@@ -1,9 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "xAddress",
"description": "An XRP Ledger address in X-address format",
"type": "string",
"format": "xAddress",
"link": "x-address",
"pattern": "^[XT][1-9A-HJ-NP-Za-km-z]{46}$"
}

View File

@@ -1,26 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "generateAddress",
"type": "object",
"properties": {
"xAddress": {
"$ref": "xAddress",
"description": "A randomly generated XRP Ledger address in X-address format."
},
"classicAddress": {
"$ref": "classicAddress",
"description": "A randomly generated XRP Ledger Account ID (classic address)."
},
"address": {
"$ref": "classicAddress",
"description": "Deprecated: Use `classicAddress` instead."
},
"secret": {
"type": "string",
"format": "secret",
"description": "The secret corresponding to the address."
}
},
"required": ["xAddress", "classicAddress", "address", "secret"],
"additionalProperties": false
}

View File

@@ -1,18 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "generateXAddress",
"type": "object",
"properties": {
"xAddress": {
"$ref": "xAddress",
"description": "A randomly generated XRP Ledger address in X-address format."
},
"secret": {
"type": "string",
"format": "secret",
"description": "The secret corresponding to the address."
}
},
"required": ["xAddress", "secret"],
"additionalProperties": false
}

View File

@@ -1,40 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "getAccountInfo",
"type": "object",
"properties": {
"sequence": {
"$ref": "sequence",
"description": "The next (smallest unused) sequence number for this account."
},
"xrpBalance": {
"$ref": "value",
"description": "The XRP balance owned by the account."
},
"ownerCount": {
"type": "integer",
"minimum": 0,
"description": "Number of other ledger entries (specifically, trust lines and offers) attributed to this account. This is used to calculate the total reserve required to use the account."
},
"previousInitiatedTransactionID": {
"$ref": "hash256",
"description": "Hash value representing the most recent transaction that was initiated by this account."
},
"previousAffectingTransactionID": {
"$ref": "hash256",
"description": "Hash value representing the most recent transaction that affected this account node directly. **Note:** This does not include changes to the accounts trust lines and offers."
},
"previousAffectingTransactionLedgerVersion": {
"$ref": "ledgerVersion",
"description": "The ledger version that the transaction identified by the `previousAffectingTransactionID` was validated in."
}
},
"required": [
"sequence",
"xrpBalance",
"ownerCount",
"previousAffectingTransactionID",
"previousAffectingTransactionLedgerVersion"
],
"additionalProperties": false
}

View File

@@ -1,48 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "AccountObjectsResponse",
"description": "Response format for account_objects",
"type": "object",
"properties": {
"account": {
"$ref": "address",
"description":
"Unique address of the account this request corresponds to."
},
"account_objects": {
"type": "array",
"items": {
"type": "object"
},
"description":
"Array of objects owned by this account. Each object is in its raw ledger format."
},
"ledger_hash": {
"type": "string",
"description":
"(May be omitted) The identifying hash of the ledger that was used to generate this response."
},
"ledger_index": {
"$ref": "ledgerVersion",
"description":
"(May be omitted) The sequence number of the ledger that was used to generate this response."
},
"ledger_current_index": {
"$ref": "ledgerVersion",
"description":
"(May be omitted) The sequence number of the ledger that was used to generate this response."
},
"limit": {
"type": "integer",
"description":
"(May be omitted) The limit that was used in this request, if any."
},
"validated": {
"type": "boolean",
"description":
"If included and set to true, the information in this request comes from a validated ledger version. Otherwise, the information is subject to change."
}
},
"required": ["account", "account_objects"],
"additionalProperties": false
}

View File

@@ -1,33 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "getBalanceSheet",
"description": "getBalanceSheet response",
"type": "object",
"properties": {
"balances": {
"type": "array",
"items": {"$ref": "amount"},
"description": "Amounts issued to the \"hotwallet\" accounts from the request. The keys are the accounts' addresses, and the values are arrays of currency amounts they hold. The issuer (omitted from the currency amounts) is the account from the request."
},
"assets": {
"type": "array",
"items": {"$ref": "amount"},
"description": "Total amounts held that are issued by others. For the recommended gateway configuration, there should be none."
},
"obligations": {
"type": "array",
"items": {
"type": "object",
"required": ["currency", "value"],
"additionalProperties": false,
"properties": {
"currency": {"$ref": "currency"},
"value": {"$ref": "value"}
},
"description": "An amount that is owed."
},
"description": "Total amounts issued to accounts that are not hot wallets, as a map of currencies to the total value issued."
}
},
"additionalProperties": false
}

View File

@@ -1,6 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "getBalances",
"type": "array",
"items": {"$ref": "balance"}
}

View File

@@ -1,90 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "getLedger",
"type": "object",
"properties": {
"stateHash": {
"$ref": "hash256",
"description": "Hash of all state information in this ledger."
},
"closeTime": {
"type": "string",
"format": "date-time",
"description": "The approximate time when this ledger was closed. This number is rounded based on the `closeTimeResolution`. If it would have been rounded to the same time as a previous ledger, the close time is recorded as 1 second later instead."
},
"closeTimeResolution": {
"type": "integer",
"minimum": 1,
"description": "A number of seconds, indicating how much the `closeTime` could be rounded. Ledger close times are approximate so that small differences in servers clocks don't hinder consensus."
},
"closeFlags": {
"type": "integer",
"minimum": 0,
"description": "A bit-map of flags relating to the closing of this ledger. Currently, the ledger has only one flag defined for `closeFlags`: **sLCF_NoConsensusTime** (value 1). If this flag is enabled, it means that validators disagreed on the correct close time for the ledger, but built otherwise the same ledger, so they declared consensus while \"agreeing to disagree\" on the close time. In this case, the consensus ledger contains a `closeTime` value that is 1 second after that of the previous ledger. (In this case, there is no official close time, but the actual real-world close time is probably 3-6 seconds later than the specified `closeTime`.)"
},
"ledgerHash": {
"$ref": "hash256",
"description": "Unique identifying hash of the entire ledger."
},
"ledgerVersion": {
"$ref": "ledgerVersion",
"description": "The ledger version of this ledger."
},
"parentLedgerHash": {
"$ref": "hash256",
"description": "Unique identifying hash of the ledger that came immediately before this one."
},
"parentCloseTime": {
"type": "string",
"format": "date-time",
"description": "The previous ledger's recorded close time."
},
"totalDrops": {
"$ref": "value",
"description": "Total number of drops (1/1,000,000th of an XRP) in the network, as a quoted integer. (This decreases as transaction fees cause XRP to be destroyed.)"
},
"transactionHash": {
"$ref": "hash256",
"description": "Hash of the transaction information included in this ledger."
},
"transactions": {
"description": "Array of all transactions that were validated in this ledger. Transactions are represented in the same format as the return value of [getTransaction](#gettransaction).",
"type": "array",
"items": {
"$ref": "getTransaction",
"description": "A transaction in the same format as the return value of [getTransaction](#gettransaction)."
}
},
"transactionHashes": {
"description": "An array of hashes of all transactions that were validated in this ledger.",
"type": "array",
"items": {
"$ref": "transactionHash"
}
},
"rawState": {
"type": "string",
"description": "A JSON string containing all state data for this ledger in rippled JSON format."
},
"stateHashes": {
"description": "An array of hashes of all state data in this ledger.",
"type": "array",
"items": {
"$ref": "hash256"
}
}
},
"required": [
"stateHash",
"closeTime",
"closeTimeResolution",
"closeFlags",
"ledgerHash",
"ledgerVersion",
"parentLedgerHash",
"parentCloseTime",
"totalDrops",
"transactionHash"
],
"additionalProperties": false
}

View File

@@ -1,17 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "getOrderbook",
"type": "object",
"properties": {
"bids": {
"$ref": "orderbookOrders",
"description": "The buy orders in the order book."
},
"asks": {
"$ref": "orderbookOrders",
"description": "The sell orders in the order book."
}
},
"required": ["bids", "asks"],
"additionalProperties": false
}

View File

@@ -1,36 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "getOrders",
"type": "array",
"items": {
"type": "object",
"properties": {
"specification": {
"$ref": "order",
"description": "An order specification that would create an order equivalent to the current state of this order."
},
"properties": {
"description": "Properties of the order not in the specification.",
"type": "object",
"properties": {
"maker": {
"$ref": "address",
"description": "The address of the account that submitted the order."
},
"sequence": {
"$ref": "sequence",
"description": "The account sequence number of the transaction that created this order."
},
"makerExchangeRate": {
"$ref": "value",
"description": "The exchange rate from the point of view of the account that submitted the order (also known as \"quality\")."
}
},
"required": ["maker", "sequence", "makerExchangeRate"],
"addtionalProperties": false
}
},
"required": ["specification", "properties"],
"additionalProperties": false
}
}

View File

@@ -1,24 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "getPaths",
"type": "array",
"items": {
"type": "object",
"properties": {
"source": {
"$ref": "sourceAdjustment",
"description": "Properties of the source of the payment."
},
"destination": {
"$ref": "destinationAdjustment",
"description": "Properties of the destination of the payment."
},
"paths": {
"type": "string",
"description": "The paths of trustlines and orders to use in executing the payment."
}
},
"required": ["source", "destination", "paths"],
"additionalProperties": false
}
}

View File

@@ -1,67 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "getPaymentChannel",
"type": "object",
"properties": {
"account": {
"$ref": "address",
"description": "Address that created the payment channel."
},
"destination": {
"$ref": "address",
"description": "Address to receive XRP claims against this channel."
},
"amount": {
"$ref": "value",
"description": "The total amount of XRP funded in this channel."
},
"balance": {
"$ref": "value",
"description": "The total amount of XRP delivered by this channel."
},
"settleDelay": {
"type": "number",
"description": "Amount of seconds the source address must wait before closing the channel if it has unclaimed XRP."
},
"expiration": {
"type": "string",
"format": "date-time",
"description": "Time when this channel expires."
},
"publicKey": {
"$ref": "publicKey",
"description": "Public key of the key pair the source uses to sign claims against this channel."
},
"cancelAfter": {
"type": "string",
"format": "date-time",
"description": "Time when this channel expires as specified at creation."
},
"sourceTag": {
"$ref": "tag",
"description": "Source tag."
},
"destinationTag": {
"$ref": "tag",
"description": "Destination tag."
},
"previousAffectingTransactionID": {
"$ref": "hash256",
"description": "Hash value representing the most recent transaction that affected this payment channel."
},
"previousAffectingTransactionLedgerVersion": {
"$ref": "ledgerVersion",
"description": "The ledger version that the transaction identified by the `previousAffectingTransactionID` was validated in."
}
},
"required": [
"account",
"destination",
"amount",
"balance",
"settleDelay",
"previousAffectingTransactionID",
"previousAffectingTransactionLedgerVersion"
],
"additionalProperties": false
}

View File

@@ -1,117 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "getServerInfo",
"type": "object",
"properties": {
"buildVersion": {
"type": "string",
"description": "The version number of the running rippled version."
},
"completeLedgers": {
"type": "string",
"pattern": "[0-9,-]+",
"description": "Range expression indicating the sequence numbers of the ledger versions the local rippled has in its database. It is possible to be a disjoint sequence, e.g. “2500-5000,32570-7695432”."
},
"hostID": {
"type": "string",
"description": "On an admin request, returns the hostname of the server running the rippled instance; otherwise, returns a unique four letter word."
},
"ioLatencyMs": {
"type": "number",
"description": "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."
},
"load": {
"type": "object",
"description": "*(Admin only)* Detailed information about the current load state of the server.",
"properties": {
"jobTypes": {
"type": "array",
"description": "*(Admin only)* Information about the rate of different types of jobs the server is doing and how much time it spends on each.",
"items": {"type": "object"}
},
"threads": {
"type": "number",
"description": "*(Admin only)* The number of threads in the servers main job pool, performing various operations."
}
},
"required": ["jobTypes", "threads"]
},
"lastClose": {
"type": "object",
"description": "Information about the last time the server closed a ledger.",
"properties": {
"convergeTimeS": {
"type": "number",
"description": "The time it took to reach a consensus for the last ledger closing, in seconds."
},
"proposers": {
"type": "integer",
"minimum": 0,
"description": "Number of trusted validators participating in the ledger closing."}
},
"required": ["convergeTimeS", "proposers"]
},
"loadFactor": {
"type": "number",
"description": "The load factor the server is currently enforcing, as a multiplier on the base transaction fee. The load factor is determined by the highest of the individual servers load factor, clusters load factor, and the overall networks load factor."
},
"peers": {
"type": "integer",
"minimum": 0,
"description": "How many other rippled servers the node is currently connected to."
},
"pubkeyNode": {
"type": "string",
"description": "Public key used to verify this node for internal communications; this key is automatically generated by the server the first time it starts up."
},
"pubkeyValidator": {
"type": "string",
"description": "*(Admin only)* Public key used by this node to sign ledger validations."
},
"serverState": {
"type": "string",
"description": "A string indicating to what extent the server is participating in the network. See [Possible Server States](https://xrpl.org/rippled-server-states.html) for more details.",
"enum": ["disconnected", "connected", "syncing", "tracking", "full", "validating", "proposing"]
},
"validatedLedger": {
"type": "object",
"description": "Information about the fully-validated ledger with the highest sequence number (the most recent).",
"properties": {
"age": {
"type": "integer",
"minimum": 0,
"description": "The time since the ledger was closed, in seconds."
},
"baseFeeXRP": {
"$ref": "value",
"description": "Base fee, in XRP. This may be represented in scientific notation such as 1e-05 for 0.00005."
},
"hash": {
"$ref": "hash256",
"description": "Unique hash for the ledger, as an uppercase hexadecimal string."
},
"reserveBaseXRP": {
"$ref": "value",
"description": "Minimum amount of XRP necessary for every account to keep in reserve."
},
"reserveIncrementXRP": {
"$ref": "value",
"description": "Amount of XRP added to the account reserve for each object an account owns in the ledger."
},
"ledgerVersion": {
"type": "integer",
"minimum": 0,
"description": "Identifying ledger index of this ledger version."
}
},
"additionalProperties": false,
"required": ["age", "baseFeeXRP", "hash", "reserveBaseXRP", "reserveIncrementXRP", "ledgerVersion"]
},
"validationQuorum": {
"type": "number",
"description": "Minimum number of trusted validations required to validate a ledger version. Some circumstances may cause the server to require more validations."
}
},
"required": ["buildVersion", "completeLedgers", "hostID", "ioLatencyMs", "lastClose", "loadFactor", "peers", "pubkeyNode", "serverState", "validatedLedger", "validationQuorum"],
"additionalProperties": false
}

View File

@@ -1,8 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "getSettings",
"$ref": "settingsPlusMemos",
"not": {
"required": ["memos"]
}
}

View File

@@ -1,237 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "getTransaction",
"description": "getTransaction response",
"link": "gettransaction",
"properties": {
"type": {
"$ref": "transactionType"
},
"specification": {
"description": "A specification that would produce the same outcome as this transaction. *Exception:* For payment transactions, this omits the `destination.amount` field, to prevent misunderstanding. The structure of the specification depends on the value of the `type` field (see [Transaction Types](#transaction-types) for details). *Note:* This is **not** necessarily the same as the original specification."
},
"outcome": {
"$ref": "outcome",
"description": "The outcome of the transaction (what effects it had)."
},
"id": {
"$ref": "transactionHash",
"description": "A hash of the transaction that can be used to identify it."
},
"address": {
"$ref": "address",
"description": "The address of the account that initiated the transaction."
},
"sequence": {
"$ref": "sequence",
"description": "The account sequence number of the transaction for the account that initiated it."
},
"rawTransaction": {
"description": "The raw transaction data as a JSON string. For advanced users only; exercise caution when interpreting this data.",
"type": "string"
}
},
"required": [
"id",
"address",
"sequence",
"type",
"specification",
"outcome"
],
"additionalProperties": false,
"oneOf": [
{
"properties": {
"type": {
"enum": [
"payment"
]
},
"specification": {
"$ref": "getPayment"
}
}
},
{
"properties": {
"type": {
"enum": [
"order"
]
},
"specification": {
"$ref": "order"
}
}
},
{
"properties": {
"type": {
"enum": [
"orderCancellation"
]
},
"specification": {
"$ref": "orderCancellation"
}
}
},
{
"properties": {
"type": {
"enum": [
"trustline"
]
},
"specification": {
"$ref": "trustline"
}
}
},
{
"properties": {
"type": {
"enum": [
"settings"
]
},
"specification": {
"$ref": "getSettings"
}
}
},
{
"properties": {
"type": {
"enum": [
"checkCreate"
]
},
"specification": {
"$ref": "checkCreate"
}
}
},
{
"properties": {
"type": {
"enum": [
"checkCancel"
]
},
"specification": {
"$ref": "checkCancel"
}
}
},
{
"properties": {
"type": {
"enum": [
"checkCash"
]
},
"specification": {
"$ref": "checkCash"
}
}
},
{
"properties": {
"type": {
"enum": [
"escrowCreation"
]
},
"specification": {
"$ref": "escrowCreation"
}
}
},
{
"properties": {
"type": {
"enum": [
"escrowCancellation"
]
},
"specification": {
"$ref": "escrowCancellation"
}
}
},
{
"properties": {
"type": {
"enum": [
"escrowExecution"
]
},
"specification": {
"$ref": "escrowExecution"
}
}
},
{
"properties": {
"type": {
"enum": [
"paymentChannelCreate"
]
},
"specification": {
"$ref": "paymentChannelCreate"
}
}
},
{
"properties": {
"type": {
"enum": [
"paymentChannelFund"
]
},
"specification": {
"$ref": "paymentChannelFund"
}
}
},
{
"properties": {
"type": {
"enum": [
"paymentChannelClaim"
]
},
"specification": {
"$ref": "paymentChannelClaim"
}
}
},
{
"properties": {
"type": {
"enum": [
"depositPreauth"
]
},
"specification": {
"$ref": "depositPreauth"
}
}
},
{
"properties": {
"type": {
"enum": [
"accountDelete"
]
},
"specification": {
"$ref": "accountDelete"
}
}
}
]
}

View File

@@ -1,8 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "getTransactions",
"type": "array",
"items": {
"$ref": "getTransaction"
}
}

View File

@@ -1,49 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "getTrustlines",
"type": "array",
"items": {
"properties": {
"specification": {
"$ref": "trustline",
"description": "A trust line specification that would produce this trust line in its current state."
},
"counterparty": {
"properties": {
"limit": {
"$ref": "value",
"description": "The maximum amount that the counterparty can be owed through the trust line."
},
"ripplingDisabled": {
"type": "boolean",
"description": "If true, payments cannot ripple through this trustline."
},
"frozen": {
"type": "boolean",
"description": "If true, the trust line is frozen, which means that funds can only be sent directly to the counterparty."
},
"authorized": {
"type": "boolean",
"description": "If true, the counterparty authorizes this party to hold issuances from the counterparty."
}
},
"description": "Properties of the trustline from the perspective of the counterparty.",
"required": ["limit"],
"additionalProperties": false
},
"state": {
"properties": {
"balance": {
"$ref": "signedValue",
"description": "The balance on the trust line, representing which party owes the other and by how much."
}
},
"description": "Non-settings details of the trust line's state.",
"required": ["balance"],
"additionalProperties": false
}
},
"required": ["specification", "counterparty", "state"],
"additionalProperties": false
}
}

View File

@@ -1,46 +0,0 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "ledgerEvent",
"description": "A ledger event message",
"type": "object",
"properties": {
"baseFeeXRP": {
"$ref": "value",
"description": "Base fee, in XRP."
},
"ledgerHash": {
"$ref": "hash256",
"description": "Unique hash of the ledger that was closed, as hex."
},
"ledgerVersion": {
"$ref": "ledgerVersion",
"description": "Ledger version of the ledger that closed."
},
"ledgerTimestamp": {
"type": "string",
"format": "date-time",
"description": "The time at which this ledger closed."
},
"reserveBaseXRP": {
"$ref": "value",
"description": "The minimum reserve, in XRP, that is required for an account."
},
"reserveIncrementXRP": {
"$ref": "value",
"description": "The increase in account reserve that is added for each item the account owns, such as offers or trust lines."
},
"transactionCount": {
"type": "integer",
"minimum": 0,
"description": "Number of new transactions included in this ledger."
},
"validatedLedgerVersions": {
"type": "string",
"description": "Range of ledgers that the server has available. This may be discontiguous."
}
},
"addtionalProperties": false,
"required": ["baseFeeXRP", "ledgerHash", "ledgerTimestamp",
"reserveBaseXRP", "reserveIncrementXRP", "transactionCount",
"ledgerVersion", "validatedLedgerVersions"]
}

Some files were not shown because too many files have changed in this diff Show More