Parse XRPL Order Book results into effective liquidity based exchange prices
npm install xrpl-orderbook-readerThis repository takes XRPL Orderbook (book_offers) datasets and requested volume to
exchange and calculates the effective exchange rates based on the requested and available liquidity.
Optionally certain checks can be specified (eg. book_offers on the other side of the book)
to warn for limited (percentage) liquidity on the requested side, and possibly other side
of the order book.
Typescript 3.8+ is required
samples/Sample.tsPlease create one LiquidityCheck instance per pair (from/to).
```
const Lc = new LiquidityCheck(Params)
const Lq = await Lc.get()
log(Lq.rate)
You can update Params and fetch new data, and get the results based on the new data
with the refresh method. When called without input parameter (refresh()) existing
Params will be used based on fresh order book information. If a new Params object is
provided, the entire instance will be updated.
`
// Lc instance already exists
// const Lc = new LiquidityCheck(Params)
Params.trade.amount += 1000
Lc.refresh(Params)
const newLq = await Lc.get()
`
Available options here.
#### Preferred: xrpl-client - https://www.npmjs.com/package/xrpl-client
You can pass the entire class instance of xrpl-client to the Params object. Youclient
pass the class as property.
``
new LiquidityCheck({
<...>,
client: new XrplClient()
})
#### Deprecated: rippled-ws-client - https://www.npmjs.com/package/rippled-ws-client
You can pass the send method of rippled-ws-client to the Params object as method property.
``
new LiquidityCheck({
<...>,
method: RippledWsClientInstance.send
})
#### Custom WebSocket/... implementation
You can pass a send method to the Params object. The send method passedcommand
to the Params should take an object with a for rippled and return a Promisemethod
that will resolve to contain requested order book lines. You pass a function as property.
``
new LiquidityCheck({
<...>,
method: (JsonRequestWithCommand) => {
return new Promise(resolve) {
// Custom implementation to fetch the book results
}
}
})
Please see /samples/PlainSample.js
##### Test:
npm run test
##### Run development code:
npm run dev (Compiles and runs /samples/Sample.ts`)