Creates a new BroadcastClient.
An array of names of servers.
Options for the clients.
Get XRP/non-XRP balances for an account.
An array of XRP/non-XRP balances for the given account.
Client.
Address of the account to retrieve balances for.
Allows the client to specify a ledger_hash, ledger_index, filter by peer, and/or limit number of balances.
Optional ledger_Retrieve the account balances at the ledger with a given ledger_hash.
Optional ledger_Retrieve the account balances at a given ledger_index.
Optional limit?: numberLimit number of balances to return.
Optional peer?: stringFilter balances by peer.
Fetch orderbook (buy/sell orders) between two accounts.
An object containing buy and sell objects.
Client.
Specification of which currency the account taking the
offer would pay, as an object with currency and issuer fields.
Specification of which currency the account taking the
offer would receive, as an object with currency and issuer fields.
Options allowing the client to specify ledger_index, ledger_hash, filter by taker, and/or limit number of orders.
Optional ledger_Retrieve the orderbook at the ledger with a given ledger_hash.
Optional ledger_Retrieve the orderbook at a given ledger_index.
Optional limit?: numberLimit number of order books to fetch for each side of the order book. Defaults to 20.
Optional taker?: stringFilter orders by taker.
Get the XRP balance for an account.
const client = new Client(wss://s.altnet.rippletest.net:51233)
const balance = await client.getXrpBalance('rG1QQv2nh2gr7RCZ1P8YYcBUKCCN633jCn')
console.log(balance)
/// '200'
The XRP balance of the account (as a string).
Client.
Address of the account to retrieve XRP balance.
Options to include for getting the XRP balance.
Optional ledger_Retrieve the account balances at the ledger with a given ledger_hash.
Optional ledger_Retrieve the account balances at a given ledger_index.
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.
The autofilled transaction.
A client.
A Transaction in JSON format
Optional signersCount: numberThe expected number of signers for this transaction. Only used for multisigned transactions.
Submits a signed/unsigned transaction. Steps performed on a transaction:
A promise that contains SubmitResponse.
RippledError if submit request fails.
A Client.
A transaction to autofill, sign & encode, and submit.
Optional opts: { autofill?: boolean; failHard?: boolean; wallet?: Wallet }(Optional) Options used to sign and submit a transaction.
Optional autofill?: booleanIf true, autofill a transaction.
Optional failIf true, and the transaction fails locally, do not retry or relay the transaction to other servers.
Optional wallet?: WalletA wallet to sign a transaction. It must be provided when submitting an unsigned transaction.
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.
A promise that contains TxResponse, that will return when the transaction has been validated.
A Client.
A transaction to autofill, sign & encode, and submit.
Optional opts: { autofill?: boolean; failHard?: boolean; wallet?: Wallet }(Optional) Options used to sign and submit a transaction.
Optional autofill?: booleanIf true, autofill a transaction.
Optional failIf true, and the transaction fails locally, do not retry or relay the transaction to other servers.
Optional wallet?: WalletA wallet to sign a transaction. It must be provided when submitting an unsigned transaction.
Generates a random wallet with some amount of XRP (usually 1000 XRP).
const api = new xrpl.Client("wss://s.altnet.rippletest.net:51233")
await api.connect()
const { wallet, balance } = await api.fundWallet()
A Wallet on the Testnet or Devnet that contains some amount of XRP, and that wallet's balance in XRP.
When either Client isn't connected or unable to fund wallet address.
Client.
Optional wallet: null | WalletAn existing XRPL Wallet to fund. If undefined or null, a new Wallet will be created.
Optional options: { amount?: string; faucetHost?: string; faucetPath?: string }See below.
Optional amount?: stringA custom amount to fund, if undefined or null, the default amount will be 1000.
Optional faucetA custom host for a faucet server. On devnet,
testnet, AMM devnet, NFT devnet, and HooksV2 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.
Optional faucetA custom path for a faucet server. On devnet,
testnet, AMM devnet, NFT devnet, and HooksV2 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.
Readonly feeFactor to multiply estimated fee by to provide a cushion in case the required fee rises during submission of a transaction. Defaults to 1.2.
Readonly maxMaximum transaction cost to allow, in decimal XRP. Must be a string-encoded number. Defaults to '2'.
Get the url that the client is connected to.
The URL of the server this client is connected to.
Event handler for subscription streams.
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']
})
Event handler for subscription streams.
This, because it inherits from EventEmitter.
Function to run on event.
Event handler for subscription streams.
This, because it inherits from EventEmitter.
Function to run on event.
Event handler for subscription streams.
This, because it inherits from EventEmitter.
Function to run on event.
Event handler for subscription streams.
This, because it inherits from EventEmitter.
Function to run on event.
Event handler for subscription streams.
This, because it inherits from EventEmitter.
Function to run on event.
Event handler for subscription streams.
This, because it inherits from EventEmitter.
Function to run on event.
Event handler for subscription streams.
This, because it inherits from EventEmitter.
Function to run on event.
Event handler for subscription streams.
This, because it inherits from EventEmitter.
Function to run on event.
Rest ...err: any[]Makes a request to the client with the given command and additional request body parameters.
The response from the server.
Makes a request to the client with the given command and additional request body parameters.
The response from the server.
Makes a request to the client with the given command and additional request body parameters.
The response from the server.
Makes a request to the client with the given command and additional request body parameters.
The response from the server.
Makes a request to the client with the given command and additional request body parameters.
The response from the server.
Makes a request to the client with the given command and additional request body parameters.
The response from the server.
Makes a request to the client with the given command and additional request body parameters.
The response from the server.
Makes a request to the client with the given command and additional request body parameters.
The response from the server.
Makes a request to the client with the given command and additional request body parameters.
The response from the server.
Makes a request to the client with the given command and additional request body parameters.
The response from the server.
Makes a request to the client with the given command and additional request body parameters.
The response from the server.
Makes a request to the client with the given command and additional request body parameters.
The response from the server.
Makes a request to the client with the given command and additional request body parameters.
The response from the server.
Makes a request to the client with the given command and additional request body parameters.
The response from the server.
Makes a request to the client with the given command and additional request body parameters.
The response from the server.
Makes a request to the client with the given command and additional request body parameters.
The response from the server.
Makes a request to the client with the given command and additional request body parameters.
The response from the server.
Makes a request to the client with the given command and additional request body parameters.
The response from the server.
Makes a request to the client with the given command and additional request body parameters.
The response from the server.
Makes a request to the client with the given command and additional request body parameters.
The response from the server.
Makes a request to the client with the given command and additional request body parameters.
The response from the server.
Makes a request to the client with the given command and additional request body parameters.
The response from the server.
Makes a request to the client with the given command and additional request body parameters.
The response from the server.
Makes a request to the client with the given command and additional request body parameters.
The response from the server.
Makes a request to the client with the given command and additional request body parameters.
The response from the server.
Makes a request to the client with the given command and additional request body parameters.
The response from the server.
Makes a request to the client with the given command and additional request body parameters.
The response from the server.
Makes a request to the client with the given command and additional request body parameters.
The response from the server.
Makes a request to the client with the given command and additional request body parameters.
The response from the server.
Makes a request to the client with the given command and additional request body parameters.
The response from the server.
Makes a request to the client with the given command and additional request body parameters.
The response from the server.
Makes a request to the client with the given command and additional request body parameters.
The response from the server.
Makes a request to the client with the given command and additional request body parameters.
The response from the server.
Makes a request to the client with the given command and additional request body parameters.
The response from the server.
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.
The array of all responses.
ValidationError if there is no collection key (either from a known command or for the unknown command).
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.
The array of all responses.
ValidationError if there is no collection key (either from a known command or for the unknown command).
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.
The array of all responses.
ValidationError if there is no collection key (either from a known command or for the unknown command).
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.
The array of all responses.
ValidationError if there is no collection key (either from a known command or for the unknown command).
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.
The array of all responses.
ValidationError if there is no collection key (either from a known command or for the unknown command).
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.
The array of all responses.
ValidationError if there is no collection key (either from a known command or for the unknown command).
Requests the next page of data.
The response with the next page of data.
Request to send.
Response with the marker to use in the request.
Requests the next page of data.
The response with the next page of data.
Request to send.
Response with the marker to use in the request.
Requests the next page of data.
The response with the next page of data.
Request to send.
Response with the marker to use in the request.
Requests the next page of data.
The response with the next page of data.
Request to send.
Response with the marker to use in the request.
Requests the next page of data.
The response with the next page of data.
Request to send.
Response with the marker to use in the request.
Private Readonly clientsReadonly connectionAutofills 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.
The autofilled transaction.
A client.
A Transaction in JSON format
Optional signersCount: numberThe expected number of signers for this transaction. Only used for multisigned transactions.
Static Readonly captureStatic captureSets or gets the default captureRejection value for all emitters.
Static defaultStatic Readonly errorThis 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.
Alias for emitter.on(eventName, listener).
v0.1.26
Rest ...args: any[]Synchronously calls each of the listeners registered for the event namedeventName, in the order they were registered, passing the supplied arguments
to each.
Returns true if the event had listeners, false otherwise.
const EventEmitter = require('events');
const myEmitter = new EventEmitter();
// First listener
myEmitter.on('event', function firstListener() {
console.log('Helloooo! first listener');
});
// Second listener
myEmitter.on('event', function secondListener(arg1, arg2) {
console.log(`event with parameters ${arg1}, ${arg2} in second listener`);
});
// Third listener
myEmitter.on('event', function thirdListener(...args) {
const parameters = args.join(', ');
console.log(`event with parameters ${parameters} in third listener`);
});
console.log(myEmitter.listeners('event'));
myEmitter.emit('event', 1, 2, 3, 4, 5);
// Prints:
// [
// [Function: firstListener],
// [Function: secondListener],
// [Function: thirdListener]
// ]
// Helloooo! first listener
// event with parameters 1, 2 in second listener
// event with parameters 1, 2, 3, 4, 5 in third listener
v0.1.26
Rest ...args: any[]Returns an array listing the events for which the emitter has registered
listeners. The values in the array are strings or Symbols.
const EventEmitter = require('events');
const myEE = new EventEmitter();
myEE.on('foo', () => {});
myEE.on('bar', () => {});
const sym = Symbol('symbol');
myEE.on(sym, () => {});
console.log(myEE.eventNames());
// Prints: [ 'foo', 'bar', Symbol(symbol) ]
v6.0.0
Returns the current max listener value for the EventEmitter which is either
set by emitter.setMaxListeners(n) or defaults to defaultMaxListeners.
v1.0.0
Private getReturns a copy of the array of listeners for the event named eventName.
server.on('connection', (stream) => {
console.log('someone connected!');
});
console.log(util.inspect(server.listeners('connection')));
// Prints: [ [Function] ]
v0.1.26
Alias for emitter.removeListener().
v10.0.0
Rest ...args: any[]Adds a one-timelistener function for the event named eventName. The
next time eventName is triggered, this listener is removed and then invoked.
server.once('connection', (stream) => {
console.log('Ah, we have our first user!');
});
Returns a reference to the EventEmitter, so that calls can be chained.
By default, event listeners are invoked in the order they are added. Theemitter.prependOnceListener() method can be used as an alternative to add the
event listener to the beginning of the listeners array.
const myEE = new EventEmitter();
myEE.once('foo', () => console.log('a'));
myEE.prependOnceListener('foo', () => console.log('b'));
myEE.emit('foo');
// Prints:
// b
// a
v0.3.0
The name of the event.
The callback function
Rest ...args: any[]Adds the listener function to the beginning of the listeners array for the
event named eventName. No checks are made to see if the listener has
already been added. Multiple calls passing the same combination of eventNameand listener will result in the listener being added, and called, multiple
times.
server.prependListener('connection', (stream) => {
console.log('someone connected!');
});
Returns a reference to the EventEmitter, so that calls can be chained.
v6.0.0
The name of the event.
The callback function
Rest ...args: any[]Adds a one-timelistener function for the event named eventName to the_beginning_ of the listeners array. The next time eventName is triggered, this
listener is removed, and then invoked.
server.prependOnceListener('connection', (stream) => {
console.log('Ah, we have our first user!');
});
Returns a reference to the EventEmitter, so that calls can be chained.
v6.0.0
The name of the event.
The callback function
Rest ...args: any[]Returns a copy of the array of listeners for the event named eventName,
including any wrappers (such as those created by .once()).
const emitter = new EventEmitter();
emitter.once('log', () => console.log('log once'));
// Returns a new Array with a function `onceWrapper` which has a property
// `listener` which contains the original listener bound above
const listeners = emitter.rawListeners('log');
const logFnWrapper = listeners[0];
// Logs "log once" to the console and does not unbind the `once` event
logFnWrapper.listener();
// Logs "log once" to the console and removes the listener
logFnWrapper();
emitter.on('log', () => console.log('log persistently'));
// Will return a new Array with a single function bound by `.on()` above
const newListeners = emitter.rawListeners('log');
// Logs "log persistently" twice
newListeners[0]();
emitter.emit('log');
v9.4.0
Removes all listeners, or those of the specified eventName.
It is bad practice to remove listeners added elsewhere in the code,
particularly when the EventEmitter instance was created by some other
component or module (e.g. sockets or file streams).
Returns a reference to the EventEmitter, so that calls can be chained.
v0.1.26
Optional event: string | symbolRemoves the specified listener from the listener array for the event namedeventName.
const callback = (stream) => {
console.log('someone connected!');
};
server.on('connection', callback);
// ...
server.removeListener('connection', callback);
removeListener() will remove, at most, one instance of a listener from the
listener array. If any single listener has been added multiple times to the
listener array for the specified eventName, then removeListener() must be
called multiple times to remove each instance.
Once an event is emitted, all listeners attached to it at the
time of emitting are called in order. This implies that anyremoveListener() or removeAllListeners() calls after emitting and_before_ the last listener finishes execution will
not remove them fromemit() in progress. Subsequent events behave as expected.
const myEmitter = new MyEmitter();
const callbackA = () => {
console.log('A');
myEmitter.removeListener('event', callbackB);
};
const callbackB = () => {
console.log('B');
};
myEmitter.on('event', callbackA);
myEmitter.on('event', callbackB);
// callbackA removes listener callbackB but it will still be called.
// Internal listener array at time of emit [callbackA, callbackB]
myEmitter.emit('event');
// Prints:
// A
// B
// callbackB is now removed.
// Internal listener array [callbackA]
myEmitter.emit('event');
// Prints:
// A
Because listeners are managed using an internal array, calling this will
change the position indices of any listener registered after the listener
being removed. This will not impact the order in which listeners are called,
but it means that any copies of the listener array as returned by
the emitter.listeners() method will need to be recreated.
When a single function has been added as a handler multiple times for a single
event (as in the example below), removeListener() will remove the most
recently added instance. In the example the once('ping')listener is removed:
const ee = new EventEmitter();
function pong() {
console.log('pong');
}
ee.on('ping', pong);
ee.once('ping', pong);
ee.removeListener('ping', pong);
ee.emit('ping');
ee.emit('ping');
Returns a reference to the EventEmitter, so that calls can be chained.
v0.1.26
Rest ...args: any[]By default EventEmitters will print a warning if more than 10 listeners are
added for a particular event. This is a useful default that helps finding
memory leaks. The emitter.setMaxListeners() method allows the limit to be
modified for this specific EventEmitter instance. The value can be set toInfinity (or 0) to indicate an unlimited number of listeners.
Returns a reference to the EventEmitter, so that calls can be chained.
v0.3.5
Static getReturns a copy of the array of listeners for the event named eventName.
For EventEmitters this behaves exactly the same as calling .listeners on
the emitter.
For EventTargets this is the only way to get the event listeners for the
event target. This is useful for debugging and diagnostic purposes.
const { getEventListeners, EventEmitter } = require('events');
{
const ee = new EventEmitter();
const listener = () => console.log('Events are fun');
ee.on('foo', listener);
getEventListeners(ee, 'foo'); // [listener]
}
{
const et = new EventTarget();
const listener = () => console.log('Events are fun');
et.addEventListener('foo', listener);
getEventListeners(et, 'foo'); // [listener]
}
v15.2.0, v14.17.0
Static listenerA class method that returns the number of listeners for the given eventNameregistered on the given emitter.
const { EventEmitter, listenerCount } = require('events');
const myEmitter = new EventEmitter();
myEmitter.on('event', () => {});
myEmitter.on('event', () => {});
console.log(listenerCount(myEmitter, 'event'));
// Prints: 2
v0.9.12
Since v3.2.0 - Use listenerCount instead.
The emitter to query
The event name
Static onconst { on, EventEmitter } = require('events');
(async () => {
const ee = new EventEmitter();
// Emit later on
process.nextTick(() => {
ee.emit('foo', 'bar');
ee.emit('foo', 42);
});
for await (const event of on(ee, 'foo')) {
// The execution of this inner block is synchronous and it
// processes one event at a time (even with await). Do not use
// if concurrent execution is required.
console.log(event); // prints ['bar'] [42]
}
// Unreachable here
})();
Returns an AsyncIterator that iterates eventName events. It will throw
if the EventEmitter emits 'error'. It removes all listeners when
exiting the loop. The value returned by each iteration is an array
composed of the emitted event arguments.
An AbortSignal can be used to cancel waiting on events:
const { on, EventEmitter } = require('events');
const ac = new AbortController();
(async () => {
const ee = new EventEmitter();
// Emit later on
process.nextTick(() => {
ee.emit('foo', 'bar');
ee.emit('foo', 42);
});
for await (const event of on(ee, 'foo', { signal: ac.signal })) {
// The execution of this inner block is synchronous and it
// processes one event at a time (even with await). Do not use
// if concurrent execution is required.
console.log(event); // prints ['bar'] [42]
}
// Unreachable here
})();
process.nextTick(() => ac.abort());
v13.6.0, v12.16.0
that iterates eventName events emitted by the emitter
The name of the event being listened for
Optional options: StaticEventEmitterOptionsStatic onceCreates a Promise that is fulfilled when the EventEmitter emits the given
event or that is rejected if the EventEmitter emits 'error' while waiting.
The Promise will resolve with an array of all the arguments emitted to the
given event.
This method is intentionally generic and works with the web platform EventTarget interface, which has no special'error' event
semantics and does not listen to the 'error' event.
const { once, EventEmitter } = require('events');
async function run() {
const ee = new EventEmitter();
process.nextTick(() => {
ee.emit('myevent', 42);
});
const [value] = await once(ee, 'myevent');
console.log(value);
const err = new Error('kaboom');
process.nextTick(() => {
ee.emit('error', err);
});
try {
await once(ee, 'myevent');
} catch (err) {
console.log('error happened', err);
}
}
run();
The special handling of the 'error' event is only used when events.once()is used to wait for another event. If events.once() is used to wait for the
'error' event itself, then it is treated as any other kind of event without
special handling:
const { EventEmitter, once } = require('events');
const ee = new EventEmitter();
once(ee, 'error')
.then(([err]) => console.log('ok', err.message))
.catch((err) => console.log('error', err.message));
ee.emit('error', new Error('boom'));
// Prints: ok boom
An AbortSignal can be used to cancel waiting for the event:
const { EventEmitter, once } = require('events');
const ee = new EventEmitter();
const ac = new AbortController();
async function foo(emitter, event, signal) {
try {
await once(emitter, event, { signal });
console.log('event emitted!');
} catch (error) {
if (error.name === 'AbortError') {
console.error('Waiting for the event was canceled!');
} else {
console.error('There was an error', error.message);
}
}
}
foo(ee, 'foo', ac.signal);
ac.abort(); // Abort waiting for the event
ee.emit('foo'); // Prints: Waiting for the event was canceled!
v11.13.0, v10.16.0
Optional options: StaticEventEmitterOptionsOptional options: StaticEventEmitterOptionsStatic setBy default EventEmitters will print a warning if more than 10 listeners are
added for a particular event. This is a useful default that helps finding
memory leaks. The EventEmitter.setMaxListeners() method allows the default limit to be
modified (if eventTargets is empty) or modify the limit specified in every EventTarget | EventEmitter passed as arguments.
The value can be set toInfinity (or 0) to indicate an unlimited number of listeners.
EventEmitter.setMaxListeners(20);
// Equivalent to
EventEmitter.defaultMaxListeners = 20;
const eventTarget = new EventTarget();
// Only way to increase limit for `EventTarget` instances
// as these doesn't expose its own `setMaxListeners` method
EventEmitter.setMaxListeners(20, eventTarget);
v15.3.0, v14.17.0
Optional n: numberRest ...eventTargets: (DOMEventTarget | EventEmitter)[]Generated using TypeDoc
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