diff --git a/src/client/index.ts b/src/client/index.ts index 410bb9b0..97c6e793 100644 --- a/src/client/index.ts +++ b/src/client/index.ts @@ -19,16 +19,14 @@ import { decodeXAddress, } from 'ripple-address-codec' -import { constants, errors, txFlags, ensureClassicAddress } from '../common' +import { constants, errors, txFlags, ensureClassicAddress } from '../sugar' import { ValidationError, XrplError } from '../common/errors' -import getFee from '../common/fee' -import autofill from '../ledger/autofill' -import getBalances from '../ledger/balances' -import { getOrderbook, formatBidsAndAsks } from '../ledger/orderbook' -import getPaths from '../ledger/pathfind' -import { submitTransaction, submitSignedTransaction } from '../ledger/submit' -import getTrustlines from '../ledger/trustlines' -import { clamp } from '../ledger/utils' +import getFee from '../sugar/fee' +import autofill from '../sugar/autofill' +import getBalances from '../sugar/balances' +import getOrderbook from '../sugar/orderbook' +import { submitTransaction, submitSignedTransaction } from '../sugar/submit' +import { clamp } from '../sugar/utils' import { // account methods AccountChannelsRequest, @@ -537,16 +535,13 @@ class Client extends EventEmitter { // @deprecated Use autofill instead public prepareTransaction = prepend(autofill, this) + public getFee = prepend(getFee, this) public submitTransaction = prepend(submitTransaction, this) public submitSignedTransaction = prepend(submitSignedTransaction, this) - public getFee = getFee - - public getTrustlines = getTrustlines - public getBalances = getBalances - public getPaths = getPaths - public getOrderbook = getOrderbook + public getBalances = prepend(getBalances, this) + public getOrderbook = prepend(getOrderbook, this) public sign = sign public combine = combine @@ -555,8 +550,6 @@ class Client extends EventEmitter { public errors = errors - public static formatBidsAndAsks = formatBidsAndAsks - /** * Static methods to expose ripple-address-codec methods. */ diff --git a/src/ledger/balances.ts b/src/ledger/balances.ts deleted file mode 100644 index af3a1d6f..00000000 --- a/src/ledger/balances.ts +++ /dev/null @@ -1,83 +0,0 @@ -import type { Client } from '..' -import { ensureClassicAddress } from '../common' -import { FormattedTrustline } from '../common/types/objects/trustlines' - -import { GetTrustlinesOptions } from './trustlines' -import * as utils from './utils' - -export interface Balance { - value: string - currency: string - counterparty?: string -} - -export type GetBalances = Balance[] - -function getTrustlineBalanceAmount(trustline: FormattedTrustline): Balance { - return { - currency: trustline.specification.currency, - counterparty: trustline.specification.counterparty, - value: trustline.state.balance, - } -} - -function formatBalances( - options: GetTrustlinesOptions, - balances: { xrp: string; trustlines: FormattedTrustline[] }, -) { - const result = balances.trustlines.map(getTrustlineBalanceAmount) - if ( - !(options.counterparty || (options.currency && options.currency !== 'XRP')) - ) { - const xrpBalance = { - currency: 'XRP', - value: balances.xrp, - } - result.unshift(xrpBalance) - } - if (options.limit && result.length > options.limit) { - const toRemove = result.length - options.limit - result.splice(-toRemove, toRemove) - } - return result -} - -async function getLedgerVersionHelper( - client: Client, - optionValue?: number, -): Promise { - if (optionValue != null && optionValue !== null) { - return Promise.resolve(optionValue) - } - return client - .request({ - command: 'ledger', - ledger_index: 'validated', - }) - .then((response) => response.result.ledger_index) -} - -async function getBalances( - this: Client, - address: string, - options: GetTrustlinesOptions = {}, -): Promise { - // Only support retrieving balances without a tag, - // since we currently do not calculate balances - // on a per-tag basis. Apps must interpret and - // use tags independent of the XRP Ledger, comparing - // with the XRP Ledger's balance as an accounting check. - address = ensureClassicAddress(address) - - return Promise.all([ - getLedgerVersionHelper(this, options.ledgerVersion).then( - async (ledgerVersion) => - utils.getXRPBalance(this, address, ledgerVersion), - ), - this.getTrustlines(address, options), - ]).then((results) => - formatBalances(options, { xrp: results[0], trustlines: results[1] }), - ) -} - -export default getBalances diff --git a/src/ledger/orderbook.ts b/src/ledger/orderbook.ts deleted file mode 100644 index d872393d..00000000 --- a/src/ledger/orderbook.ts +++ /dev/null @@ -1,129 +0,0 @@ -import BigNumber from 'bignumber.js' -import _ from 'lodash' - -import type { Client } from '../client' -import type { BookOffer } from '../common/types/commands' -import type { Issue } from '../common/types/objects' - -import { - parseOrderbookOrder, - FormattedOrderbookOrder, -} from './parse/orderbook-order' -import * as utils from './utils' - -export interface FormattedOrderbook { - bids: FormattedOrderbookOrder[] - asks: FormattedOrderbookOrder[] -} - -function isSameIssue(a: Issue, b: Issue) { - return a.currency === b.currency && a.counterparty === b.counterparty -} - -function directionFilter(direction: string, order: FormattedOrderbookOrder) { - return order.specification.direction === direction -} - -function flipOrder(order: FormattedOrderbookOrder) { - const specification = order.specification - const flippedSpecification = { - quantity: specification.totalPrice, - totalPrice: specification.quantity, - direction: specification.direction === 'buy' ? 'sell' : 'buy', - } - const newSpecification = _.merge({}, specification, flippedSpecification) - return _.merge({}, order, { specification: newSpecification }) -} - -function alignOrder( - base: Issue, - order: FormattedOrderbookOrder, -): FormattedOrderbookOrder { - const quantity = order.specification.quantity - return isSameIssue(quantity, base) ? order : flipOrder(order) -} - -export function formatBidsAndAsks( - orderbook: OrderbookInfo, - offers: BookOffer[], -) { - // the "base" currency is the currency that you are buying or selling - // the "counter" is the currency that the "base" is priced in - // a "bid"/"ask" is an order to buy/sell the base, respectively - // for bids: takerGets = totalPrice = counter, takerPays = quantity = base - // for asks: takerGets = quantity = base, takerPays = totalPrice = counter - // quality = takerPays / takerGets; price = totalPrice / quantity - // for bids: lowest quality => lowest quantity/totalPrice => highest price - // for asks: lowest quality => lowest totalPrice/quantity => lowest price - // for both bids and asks, lowest quality is closest to mid-market - // we sort the orders so that earlier orders are closer to mid-market - const orders = offers - .sort((a, b) => { - const qualityA = a.quality ?? 0 - const qualityB = b.quality ?? 0 - - return new BigNumber(qualityA).comparedTo(qualityB) - }) - .map(parseOrderbookOrder) - - const alignedOrders = orders.map(_.partial(alignOrder, orderbook.base)) - const bids = alignedOrders.filter(_.partial(directionFilter, 'buy')) - const asks = alignedOrders.filter(_.partial(directionFilter, 'sell')) - return { bids, asks } -} - -// account is to specify a "perspective", which affects which unfunded offers -// are returned -async function makeRequest( - client: Client, - taker: string, - options: GetOrderbookOptions, - takerGets: Issue, - takerPays: Issue, -) { - const orderData = utils.renameCounterpartyToIssuerInOrder({ - taker_gets: takerGets, - taker_pays: takerPays, - }) - return client.requestAll({ - command: 'book_offers', - taker_gets: orderData.taker_gets, - taker_pays: orderData.taker_pays, - ledger_index: options.ledgerVersion || 'validated', - limit: options.limit, - taker, - }) -} - -export interface GetOrderbookOptions { - limit?: number - ledgerVersion?: number -} - -export interface OrderbookInfo { - base: Issue - counter: Issue -} - -export async function getOrderbook( - this: Client, - address: string, - orderbook: OrderbookInfo, - options: GetOrderbookOptions = {}, -): Promise { - // 2. Make Request - const [directOfferResults, reverseOfferResults] = await Promise.all([ - makeRequest(this, address, options, orderbook.base, orderbook.counter), - makeRequest(this, address, options, orderbook.counter, orderbook.base), - ]) - // 3. Return Formatted Response - const directOffers = _.flatMap( - directOfferResults, - (directOfferResult) => directOfferResult.result.offers, - ) - const reverseOffers = _.flatMap( - reverseOfferResults, - (reverseOfferResult) => reverseOfferResult.result.offers, - ) - return formatBidsAndAsks(orderbook, [...directOffers, ...reverseOffers]) -} diff --git a/src/ledger/pathfind.ts b/src/ledger/pathfind.ts deleted file mode 100644 index 93c0edb5..00000000 --- a/src/ledger/pathfind.ts +++ /dev/null @@ -1,202 +0,0 @@ -import BigNumber from 'bignumber.js' -import _ from 'lodash' - -import type { Client } from '..' -import type { Connection } from '../client' -import { errors } from '../common' -import { RippledAmount, Amount } from '../common/types/objects' -import { RipplePathFindRequest } from '../models/methods' -import { toRippledAmount, xrpToDrops, dropsToXrp } from '../utils' - -import parsePathfind from './parse/pathfind' -import { - GetPaths, - PathFind, - RippledPathsResponse, - PathFindRequest, -} from './pathfind-types' -import { getXRPBalance, renameCounterpartyToIssuer } from './utils' - -const NotFoundError = errors.NotFoundError -const ValidationError = errors.ValidationError - -function addParams( - request: PathFindRequest, - result: RippledPathsResponse, -): RippledPathsResponse { - return _.defaults( - { - ...result, - source_account: request.source_account, - source_currencies: request.source_currencies, - }, - { destination_amount: request.destination_amount }, - ) -} - -async function requestPathFind( - connection: Connection, - pathfind: PathFind, -): Promise { - const destinationAmount: Amount = { - // This is converted back to drops by toRippledAmount() - value: - pathfind.destination.amount.currency === 'XRP' ? dropsToXrp('-1') : '-1', - ...pathfind.destination.amount, - } - const request: RipplePathFindRequest = { - command: 'ripple_path_find', - source_account: pathfind.source.address, - destination_account: pathfind.destination.address, - // @ts-expect-error - destination_amount: destinationAmount, - } - if ( - typeof request.destination_amount === 'object' && - !request.destination_amount.issuer - ) { - // Convert blank issuer to sender's address - // (Ripple convention for 'any issuer') - // https://developers.ripple.com/payment.html#special-issuer-values-for-sendmax-and-amount - request.destination_amount.issuer = request.destination_account - } - if (pathfind.source.currencies && pathfind.source.currencies.length > 0) { - // @ts-expect-error - request.source_currencies = pathfind.source.currencies.map((amount) => - renameCounterpartyToIssuer(amount), - ) - } - if (pathfind.source.amount) { - if (pathfind.destination.amount.value != null) { - throw new ValidationError( - 'Cannot specify both source.amount' + - ' and destination.amount.value in getPaths', - ) - } - // @ts-expect-error - request.send_max = toRippledAmount(pathfind.source.amount) - if ( - request.send_max != null && - typeof request.send_max !== 'string' && - !request.send_max.issuer - ) { - request.send_max.issuer = pathfind.source.address - } - } - // @ts-expect-error - return connection.request(request).then((paths) => addParams(request, paths)) -} - -function addDirectXrpPath( - paths: RippledPathsResponse, - xrpBalance: string, -): RippledPathsResponse { - // Add XRP "path" only if the source acct has enough XRP to make the payment - const destinationAmount = paths.destination_amount - // @ts-expect-error: destinationAmount can be a currency amount object! Fix! - if (new BigNumber(xrpBalance).isGreaterThanOrEqualTo(destinationAmount)) { - paths.alternatives.unshift({ - paths_computed: [], - source_amount: paths.destination_amount, - }) - } - return paths -} - -function isRippledIOUAmount(amount: RippledAmount) { - // rippled XRP amounts are specified as decimal strings - return ( - typeof amount === 'object' && amount.currency && amount.currency !== 'XRP' - ) -} - -async function conditionallyAddDirectXRPPath( - client: Client, - address: string, - paths: RippledPathsResponse, -): Promise { - if ( - isRippledIOUAmount(paths.destination_amount) || - (paths.destination_currencies && - !paths.destination_currencies.includes('XRP')) - ) { - return Promise.resolve(paths) - } - return getXRPBalance(client, address, undefined).then((xrpBalance) => - addDirectXrpPath(paths, xrpBalance), - ) -} - -function filterSourceFundsLowPaths( - pathfind: PathFind, - paths: RippledPathsResponse, -): RippledPathsResponse { - if ( - pathfind.source.amount && - paths.alternatives && - pathfind.destination.amount.value == null - ) { - paths.alternatives = paths.alternatives.filter((alt) => { - if (!alt.source_amount) { - return false - } - if (pathfind.source.amount === undefined) { - return false - } - - const pathfindSourceAmountValue = new BigNumber( - pathfind.source.amount.currency === 'XRP' - ? xrpToDrops(pathfind.source.amount.value) - : pathfind.source.amount.value, - ) - const altSourceAmountValue = new BigNumber( - typeof alt.source_amount === 'string' - ? alt.source_amount - : alt.source_amount.value, - ) - return altSourceAmountValue.eq(pathfindSourceAmountValue) - }) - } - return paths -} - -function formatResponse(pathfind: PathFind, paths: RippledPathsResponse) { - if (paths.alternatives && paths.alternatives.length > 0) { - return parsePathfind(paths) - } - if ( - paths.destination_currencies != null && - !paths.destination_currencies.includes(pathfind.destination.amount.currency) - ) { - throw new NotFoundError( - `${'No paths found. ' + 'The destination_account does not accept '}${ - pathfind.destination.amount.currency - }, they only accept: ${paths.destination_currencies.join(', ')}`, - ) - } else if (paths.source_currencies && paths.source_currencies.length > 0) { - throw new NotFoundError( - 'No paths found. Please ensure' + - ' that the source_account has sufficient funds to execute' + - ' the payment in one of the specified source_currencies. If it does' + - ' there may be insufficient liquidity in the network to execute' + - ' this payment right now', - ) - } else { - throw new NotFoundError( - 'No paths found.' + - ' Please ensure that the source_account has sufficient funds to' + - ' execute the payment. If it does there may be insufficient liquidity' + - ' in the network to execute this payment right now', - ) - } -} - -async function getPaths(this: Client, pathfind: PathFind): Promise { - const address = pathfind.source.address - return requestPathFind(this.connection, pathfind) - .then(async (paths) => conditionallyAddDirectXRPPath(this, address, paths)) - .then((paths) => filterSourceFundsLowPaths(pathfind, paths)) - .then((paths) => formatResponse(pathfind, paths)) -} - -export default getPaths diff --git a/src/ledger/trustlines.ts b/src/ledger/trustlines.ts deleted file mode 100644 index 2206408d..00000000 --- a/src/ledger/trustlines.ts +++ /dev/null @@ -1,48 +0,0 @@ -import _ from 'lodash' - -import type { Client } from '..' -import { ensureClassicAddress } from '../common' -import { FormattedTrustline } from '../common/types/objects' - -import parseAccountTrustline from './parse/account-trustline' - -export interface GetTrustlinesOptions { - counterparty?: string - currency?: string - limit?: number - ledgerVersion?: number -} - -function currencyFilter( - currency: string | null, - trustline: FormattedTrustline, -) { - return currency === null || trustline.specification.currency === currency -} - -async function getTrustlines( - this: Client, - address: string, - options: GetTrustlinesOptions = {}, -): Promise { - // Only support retrieving trustlines without a tag, - // since it does not make sense to filter trustlines - // by tag. - address = ensureClassicAddress(address) - - // 2. Make Request - const responses = await this.requestAll({ - command: 'account_lines', - account: address, - ledger_index: options.ledgerVersion ?? 'validated', - limit: options.limit, - peer: options.counterparty, - }) - // 3. Return Formatted Response - const trustlines = _.flatMap(responses, (response) => response.result.lines) - return trustlines.map(parseAccountTrustline).filter((trustline) => { - return currencyFilter(options.currency ?? null, trustline) - }) -} - -export default getTrustlines diff --git a/src/models/methods/accountLines.ts b/src/models/methods/accountLines.ts index d5f69e10..e8e41562 100644 --- a/src/models/methods/accountLines.ts +++ b/src/models/methods/accountLines.ts @@ -2,7 +2,7 @@ import { LedgerIndex } from '../common' import { BaseRequest, BaseResponse } from './baseMethod' -interface Trustline { +export interface Trustline { account: string balance: string currency: string diff --git a/src/models/methods/bookOffers.ts b/src/models/methods/bookOffers.ts index b238c9c1..1eb63cc1 100644 --- a/src/models/methods/bookOffers.ts +++ b/src/models/methods/bookOffers.ts @@ -3,7 +3,7 @@ import { Offer } from '../ledger' import { BaseRequest, BaseResponse } from './baseMethod' -interface TakerAmount { +export interface TakerAmount { currency: string issuer?: string } @@ -18,7 +18,7 @@ export interface BookOffersRequest extends BaseRequest { taker_pays: TakerAmount } -interface BookOffer extends Offer { +export interface BookOffer extends Offer { owner_funds?: string taker_gets_funded?: Amount taker_pays_funded?: Amount diff --git a/src/ledger/autofill.ts b/src/sugar/autofill.ts similarity index 100% rename from src/ledger/autofill.ts rename to src/sugar/autofill.ts diff --git a/src/sugar/balances.ts b/src/sugar/balances.ts new file mode 100644 index 00000000..e102f5dc --- /dev/null +++ b/src/sugar/balances.ts @@ -0,0 +1,70 @@ +import _ from 'lodash' + +import type { Client } from '..' +import { LedgerIndex } from '../models/common' +import { AccountInfoRequest } from '../models/methods' +import { AccountLinesRequest, Trustline } from '../models/methods/accountLines' +import { dropsToXrp } from '../utils' + +interface Balance { + value: string + currency: string + issuer?: string +} + +function formatBalances(trustlines: Trustline[]): Balance[] { + return trustlines.map((trustline) => ({ + value: trustline.balance, + currency: trustline.currency, + issuer: trustline.account, + })) +} + +interface GetBalancesOptions { + ledger_hash?: string + ledger_index?: LedgerIndex + peer?: string + limit?: number +} + +/** + * Get XRP/non-XRP balances for an account. + * + * @param client - Client. + * @param account - Account address. + * @param options - Options to include for getting balances. + * @returns An array of XRP/non-XRP balances. + */ +async function getBalances( + client: Client, + account: string, + options: GetBalancesOptions = {}, +): Promise { + // 1. Get XRP Balance + const xrpRequest: AccountInfoRequest = { + command: 'account_info', + account, + ledger_index: options.ledger_index ?? 'validated', + ledger_hash: options.ledger_hash, + } + const balance = await client + .request(xrpRequest) + .then((response) => response.result.account_data.Balance) + const xrpBalance = { currency: 'XRP', value: dropsToXrp(balance) } + // 2. Get Non-XRP Balance + const linesRequest: AccountLinesRequest = { + command: 'account_lines', + account, + ledger_index: options.ledger_index ?? 'validated', + ledger_hash: options.ledger_hash, + peer: options.peer, + limit: options.limit, + } + const responses = await client.requestAll(linesRequest) + const accountLinesBalance = _.flatMap(responses, (response) => + formatBalances(response.result.lines), + ) + return [xrpBalance, ...accountLinesBalance] +} + +export default getBalances diff --git a/src/common/fee.ts b/src/sugar/fee.ts similarity index 78% rename from src/common/fee.ts rename to src/sugar/fee.ts index 790eb8a0..ada2f4b6 100644 --- a/src/common/fee.ts +++ b/src/sugar/fee.ts @@ -10,17 +10,17 @@ const BASE_10 = 10 * Note: This is a public API that can be called directly. * This is not used by the `prepare*` methods. See `src/transaction/utils.ts`. * - * @param this - The Client used to connect to the ledger. + * @param client - The Client used to connect to the ledger. * @param cushion - The fee cushion to use. * @returns The transaction fee. */ export default async function getFee( - this: Client, + client: Client, cushion?: number, ): Promise { - const feeCushion = cushion ?? this.feeCushion + const feeCushion = cushion ?? client.feeCushion - const serverInfo = (await this.request({ command: 'server_info' })).result + const serverInfo = (await client.request({ command: 'server_info' })).result .info const baseFee = serverInfo.validated_ledger?.base_fee_xrp @@ -36,8 +36,8 @@ export default async function getFee( } let fee = baseFeeXrp.times(serverInfo.load_factor).times(feeCushion) - // Cap fee to `this.maxFeeXRP` - fee = BigNumber.min(fee, this.maxFeeXRP) + // Cap fee to `client.maxFeeXRP` + fee = BigNumber.min(fee, client.maxFeeXRP) // Round fee to 6 decimal places return new BigNumber(fee.toFixed(NUM_DECIMAL_PLACES)).toString(BASE_10) } diff --git a/src/common/index.ts b/src/sugar/index.ts similarity index 87% rename from src/common/index.ts rename to src/sugar/index.ts index 40d51dd3..28da9232 100644 --- a/src/common/index.ts +++ b/src/sugar/index.ts @@ -1,7 +1,7 @@ import { xAddressToClassicAddress, isValidXAddress } from 'ripple-address-codec' -import * as constants from './constants' -import * as errors from './errors' +import * as constants from '../common/constants' +import * as errors from '../common/errors' /** * If an address is an X-Address, converts it to a classic address. @@ -30,4 +30,4 @@ export function ensureClassicAddress(account: string): string { } export { constants, errors } -export { txFlags } from './txflags' +export { txFlags } from '../common/txflags' diff --git a/src/sugar/orderbook.ts b/src/sugar/orderbook.ts new file mode 100644 index 00000000..65498530 --- /dev/null +++ b/src/sugar/orderbook.ts @@ -0,0 +1,94 @@ +import BigNumber from 'bignumber.js' +import _ from 'lodash' + +import type { Client } from '../client' +import { LedgerIndex } from '../models/common' +import { + BookOffer, + BookOffersRequest, + TakerAmount, +} from '../models/methods/bookOffers' + +import { orderFlags } from './parse/flags' + +function sortOffers(offers: BookOffer[]): BookOffer[] { + return offers.sort((offerA, offerB) => { + const qualityA = offerA.quality ?? 0 + const qualityB = offerB.quality ?? 0 + + return new BigNumber(qualityA).comparedTo(qualityB) + }) +} + +interface Orderbook { + buy: BookOffer[] + sell: BookOffer[] +} + +interface OrderbookOptions { + limit?: number + ledger_index?: LedgerIndex + ledger_hash?: string + taker?: string +} + +/** + * Fetch orderbook (buy/sell orders) between two accounts. + * + * @param client - Client. + * @param taker_pays - Specs of the currency account taking the offer pays. + * @param taker_gets - Specs of the currency account taking the offer receives. + * @param takerPays + * @param takerGets + * @param options - Options to include for getting orderbook between payer and receiver. + * @returns An object containing buy and sell objects. + */ +// eslint-disable-next-line max-params -- Function needs 4 params. +async function getOrderbook( + client: Client, + takerPays: TakerAmount, + takerGets: TakerAmount, + options: OrderbookOptions, +): Promise { + const request: BookOffersRequest = { + command: 'book_offers', + taker_pays: takerPays, + taker_gets: takerGets, + ledger_index: options.ledger_index, + ledger_hash: options.ledger_hash, + limit: options.limit, + taker: options.taker, + } + // 2. Make Request + const directOfferResults = await client.requestAll(request) + request.taker_gets = takerPays + request.taker_pays = takerGets + const reverseOfferResults = await client.requestAll(request) + // 3. Return Formatted Response + const directOffers = _.flatMap( + directOfferResults, + (directOfferResult) => directOfferResult.result.offers, + ) + const reverseOffers = _.flatMap( + reverseOfferResults, + (reverseOfferResult) => reverseOfferResult.result.offers, + ) + // Sort the orders + // for both buys and sells, lowest quality is closest to mid-market + // we sort the orders so that earlier orders are closer to mid-market + + const orders = [...directOffers, ...reverseOffers] + // separate out the orders amongst buy and sell + const buy: BookOffer[] = [] + const sell: BookOffer[] = [] + orders.forEach((order) => { + if (order.Flags === orderFlags.Sell) { + sell.push(order) + } else { + buy.push(order) + } + }) + return { buy: sortOffers(buy), sell: sortOffers(sell) } +} + +export default getOrderbook diff --git a/src/ledger/parse/account-delete.ts b/src/sugar/parse/account-delete.ts similarity index 100% rename from src/ledger/parse/account-delete.ts rename to src/sugar/parse/account-delete.ts diff --git a/src/ledger/parse/account-order.ts b/src/sugar/parse/account-order.ts similarity index 100% rename from src/ledger/parse/account-order.ts rename to src/sugar/parse/account-order.ts diff --git a/src/ledger/parse/account-trustline.ts b/src/sugar/parse/account-trustline.ts similarity index 100% rename from src/ledger/parse/account-trustline.ts rename to src/sugar/parse/account-trustline.ts diff --git a/src/ledger/parse/amendment.ts b/src/sugar/parse/amendment.ts similarity index 100% rename from src/ledger/parse/amendment.ts rename to src/sugar/parse/amendment.ts diff --git a/src/ledger/parse/amount.ts b/src/sugar/parse/amount.ts similarity index 100% rename from src/ledger/parse/amount.ts rename to src/sugar/parse/amount.ts diff --git a/src/ledger/parse/cancellation.ts b/src/sugar/parse/cancellation.ts similarity index 100% rename from src/ledger/parse/cancellation.ts rename to src/sugar/parse/cancellation.ts diff --git a/src/ledger/parse/check-cancel.ts b/src/sugar/parse/check-cancel.ts similarity index 100% rename from src/ledger/parse/check-cancel.ts rename to src/sugar/parse/check-cancel.ts diff --git a/src/ledger/parse/check-cash.ts b/src/sugar/parse/check-cash.ts similarity index 100% rename from src/ledger/parse/check-cash.ts rename to src/sugar/parse/check-cash.ts diff --git a/src/ledger/parse/check-create.ts b/src/sugar/parse/check-create.ts similarity index 100% rename from src/ledger/parse/check-create.ts rename to src/sugar/parse/check-create.ts diff --git a/src/ledger/parse/deposit-preauth.ts b/src/sugar/parse/deposit-preauth.ts similarity index 100% rename from src/ledger/parse/deposit-preauth.ts rename to src/sugar/parse/deposit-preauth.ts diff --git a/src/ledger/parse/escrow-cancellation.ts b/src/sugar/parse/escrow-cancellation.ts similarity index 100% rename from src/ledger/parse/escrow-cancellation.ts rename to src/sugar/parse/escrow-cancellation.ts diff --git a/src/ledger/parse/escrow-creation.ts b/src/sugar/parse/escrow-creation.ts similarity index 100% rename from src/ledger/parse/escrow-creation.ts rename to src/sugar/parse/escrow-creation.ts diff --git a/src/ledger/parse/escrow-execution.ts b/src/sugar/parse/escrow-execution.ts similarity index 100% rename from src/ledger/parse/escrow-execution.ts rename to src/sugar/parse/escrow-execution.ts diff --git a/src/ledger/parse/fee-update.ts b/src/sugar/parse/fee-update.ts similarity index 100% rename from src/ledger/parse/fee-update.ts rename to src/sugar/parse/fee-update.ts diff --git a/src/ledger/parse/fields.ts b/src/sugar/parse/fields.ts similarity index 97% rename from src/ledger/parse/fields.ts rename to src/sugar/parse/fields.ts index 75c82af0..af8f93d2 100644 --- a/src/ledger/parse/fields.ts +++ b/src/sugar/parse/fields.ts @@ -1,7 +1,7 @@ import BigNumber from 'bignumber.js' import _ from 'lodash' -import { constants } from '../../common' +import { constants } from '..' const AccountFields = constants.AccountFields diff --git a/src/ledger/parse/flags.ts b/src/sugar/parse/flags.ts similarity index 100% rename from src/ledger/parse/flags.ts rename to src/sugar/parse/flags.ts diff --git a/src/ledger/parse/ledger.ts b/src/sugar/parse/ledger.ts similarity index 100% rename from src/ledger/parse/ledger.ts rename to src/sugar/parse/ledger.ts diff --git a/src/ledger/parse/order.ts b/src/sugar/parse/order.ts similarity index 96% rename from src/ledger/parse/order.ts rename to src/sugar/parse/order.ts index b468f101..157831a7 100644 --- a/src/ledger/parse/order.ts +++ b/src/sugar/parse/order.ts @@ -1,6 +1,6 @@ import * as assert from 'assert' -import { txFlags } from '../../common' +import { txFlags } from '..' import { FormattedOrderSpecification, OfferCreateTransaction, diff --git a/src/ledger/parse/orderbook-order.ts b/src/sugar/parse/orderbook-order.ts similarity index 100% rename from src/ledger/parse/orderbook-order.ts rename to src/sugar/parse/orderbook-order.ts diff --git a/src/ledger/parse/pathfind.ts b/src/sugar/parse/pathfind.ts similarity index 100% rename from src/ledger/parse/pathfind.ts rename to src/sugar/parse/pathfind.ts diff --git a/src/ledger/parse/payment-channel-claim.ts b/src/sugar/parse/payment-channel-claim.ts similarity index 94% rename from src/ledger/parse/payment-channel-claim.ts rename to src/sugar/parse/payment-channel-claim.ts index 026401dd..67a3949f 100644 --- a/src/ledger/parse/payment-channel-claim.ts +++ b/src/sugar/parse/payment-channel-claim.ts @@ -1,6 +1,6 @@ import * as assert from 'assert' -import { txFlags } from '../../common' +import { txFlags } from '..' import { removeUndefined } from '../../utils' import parseAmount from './amount' diff --git a/src/ledger/parse/payment-channel-create.ts b/src/sugar/parse/payment-channel-create.ts similarity index 100% rename from src/ledger/parse/payment-channel-create.ts rename to src/sugar/parse/payment-channel-create.ts diff --git a/src/ledger/parse/payment-channel-fund.ts b/src/sugar/parse/payment-channel-fund.ts similarity index 100% rename from src/ledger/parse/payment-channel-fund.ts rename to src/sugar/parse/payment-channel-fund.ts diff --git a/src/ledger/parse/payment-channel.ts b/src/sugar/parse/payment-channel.ts similarity index 100% rename from src/ledger/parse/payment-channel.ts rename to src/sugar/parse/payment-channel.ts diff --git a/src/ledger/parse/payment.ts b/src/sugar/parse/payment.ts similarity index 97% rename from src/ledger/parse/payment.ts rename to src/sugar/parse/payment.ts index 12b4f239..48d869e7 100644 --- a/src/ledger/parse/payment.ts +++ b/src/sugar/parse/payment.ts @@ -2,7 +2,7 @@ import * as assert from 'assert' import _ from 'lodash' -import { txFlags } from '../../common' +import { txFlags } from '..' import { removeUndefined } from '../../utils' import parseAmount from './amount' diff --git a/src/ledger/parse/settings.ts b/src/sugar/parse/settings.ts similarity index 97% rename from src/ledger/parse/settings.ts rename to src/sugar/parse/settings.ts index f1f0fea0..28bf8644 100644 --- a/src/ledger/parse/settings.ts +++ b/src/sugar/parse/settings.ts @@ -2,7 +2,7 @@ import * as assert from 'assert' import _ from 'lodash' -import { constants } from '../../common' +import { constants } from '..' import parseFields from './fields' diff --git a/src/ledger/parse/ticket-create.ts b/src/sugar/parse/ticket-create.ts similarity index 100% rename from src/ledger/parse/ticket-create.ts rename to src/sugar/parse/ticket-create.ts diff --git a/src/ledger/parse/transaction.ts b/src/sugar/parse/transaction.ts similarity index 100% rename from src/ledger/parse/transaction.ts rename to src/sugar/parse/transaction.ts diff --git a/src/ledger/parse/trustline.ts b/src/sugar/parse/trustline.ts similarity index 96% rename from src/ledger/parse/trustline.ts rename to src/sugar/parse/trustline.ts index 88f8c62b..e37fbc73 100644 --- a/src/ledger/parse/trustline.ts +++ b/src/sugar/parse/trustline.ts @@ -1,6 +1,6 @@ import * as assert from 'assert' -import { txFlags } from '../../common' +import { txFlags } from '..' import { removeUndefined } from '../../utils' import { parseQuality, parseMemos } from './utils' diff --git a/src/ledger/parse/utils.ts b/src/sugar/parse/utils.ts similarity index 99% rename from src/ledger/parse/utils.ts rename to src/sugar/parse/utils.ts index cc90a55b..13942458 100644 --- a/src/ledger/parse/utils.ts +++ b/src/sugar/parse/utils.ts @@ -1,7 +1,7 @@ import BigNumber from 'bignumber.js' import transactionParser from 'ripple-lib-transactionparser' -import { txFlags } from '../../common' +import { txFlags } from '..' import { Amount, Memo } from '../../common/types/objects' import { removeUndefined, dropsToXrp, rippleTimeToISOTime } from '../../utils' diff --git a/src/ledger/pathfind-types.ts b/src/sugar/pathfind-types.ts similarity index 100% rename from src/ledger/pathfind-types.ts rename to src/sugar/pathfind-types.ts diff --git a/src/ledger/submit.ts b/src/sugar/submit.ts similarity index 100% rename from src/ledger/submit.ts rename to src/sugar/submit.ts diff --git a/src/ledger/utils.ts b/src/sugar/utils.ts similarity index 98% rename from src/ledger/utils.ts rename to src/sugar/utils.ts index 11b2f5a8..42af95ff 100644 --- a/src/ledger/utils.ts +++ b/src/sugar/utils.ts @@ -4,7 +4,7 @@ import _ from 'lodash' import type { Client } from '..' import type { Connection } from '../client' -import * as common from '../common' +import * as common from '.' import { Issue } from '../common/types/objects' import { AccountInfoRequest } from '../models/methods' import { dropsToXrp } from '../utils' diff --git a/test/client/getBalances.ts b/test/client/getBalances.ts index 3d9c74d5..35f309a6 100644 --- a/test/client/getBalances.ts +++ b/test/client/getBalances.ts @@ -13,8 +13,9 @@ describe('getBalances', function () { beforeEach(setupClient) afterEach(teardownClient) - addressTests.forEach(function (test) { - describe(test.type, function () { + // eslint-disable-next-line mocha/no-setup-in-describe -- Rule does not allow dynamic test generation. + addressTests.forEach(function (testCase) { + describe(testCase.type, function () { it('getBalances', async function () { this.mockRippled.addResponse( 'account_info', @@ -25,70 +26,92 @@ describe('getBalances', function () { rippledAccountLines.normal, ) this.mockRippled.addResponse('ledger', rippled.ledger.normal) - const result = await this.client.getBalances(test.address) + const result = await this.client.getBalances(testCase.address) assertResultMatch(result, responses.getBalances, 'getBalances') }) - it('getBalances - limit', async function () { - const options = { limit: 3, ledgerVersion: 123456 } - this.mockRippled.addResponse( - 'account_info', - rippled.account_info.normal, - ) - this.mockRippled.addResponse( - 'account_lines', - rippledAccountLines.normal, - ) - this.mockRippled.addResponse('ledger', rippled.ledger.normal) - const expectedResponse = responses.getBalances.slice(0, 3) - const result = await this.client.getBalances(test.address, options) - assertResultMatch(result, expectedResponse, 'getBalances') - }) + // it("getBalances - limit", async function () { + // const request = { + // account: test.address, + // limit: 10, + // ledger_index: 123456, + // }; + // this.mockRippled.addResponse( + // "account_info", + // rippled.account_info.normal + // ); + // this.mockRippled.addResponse( + // "account_lines", + // rippledAccountLines.normal + // ); + // this.mockRippled.addResponse("ledger", rippled.ledger.normal); + // const expectedResponse = responses.getBalances.slice(0, 10); + // const result = await this.client.getBalances(request); + // assertResultMatch(result, expectedResponse, "getBalances"); + // }); - it('getBalances - limit & currency', async function () { - const options = { currency: 'USD', limit: 3 } - this.mockRippled.addResponse( - 'account_info', - rippled.account_info.normal, - ) - this.mockRippled.addResponse( - 'account_lines', - rippledAccountLines.normal, - ) - this.mockRippled.addResponse('ledger', rippled.ledger.normal) - const expectedResponse = responses.getBalances - .filter((item) => item.currency === 'USD') - .slice(0, 3) - const result = await this.client.getBalances(test.address, options) - assertResultMatch(result, expectedResponse, 'getBalances') - }) + // it("getBalances - limit", async function () { + // const options = { limit: 3, ledgerVersion: 123456 }; + // this.mockRippled.addResponse( + // "account_info", + // rippled.account_info.normal + // ); + // this.mockRippled.addResponse( + // "account_lines", + // rippledAccountLines.normal + // ); + // this.mockRippled.addResponse("ledger", rippled.ledger.normal); + // const expectedResponse = responses.getBalances.slice(0, 3); + // const result = await this.client.getBalances(test.address, options); + // assertResultMatch(result, expectedResponse, "getBalances"); + // }); - it('getBalances - limit & currency & issuer', async function () { - const options = { - currency: 'USD', - counterparty: 'rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B', - limit: 3, - } - this.mockRippled.addResponse( - 'account_info', - rippled.account_info.normal, - ) - this.mockRippled.addResponse( - 'account_lines', - rippledAccountLines.normal, - ) - this.mockRippled.addResponse('ledger', rippled.ledger.normal) + // it("getBalances - limit & currency", async function () { + // const options = { currency: "USD", limit: 3 }; + // this.mockRippled.addResponse( + // "account_info", + // rippled.account_info.normal + // ); + // this.mockRippled.addResponse( + // "account_lines", + // rippledAccountLines.normal + // ); + // this.mockRippled.addResponse("ledger", rippled.ledger.normal); + // const expectedResponse = responses.getBalances + // .filter((item) => item.currency === "USD") + // .slice(0, 3); + // const result = await this.client.getBalances(test.address, options); + // console.log(expectedResponse); + // assertResultMatch(result, expectedResponse, "getBalances"); + // }); - const expectedResponse = responses.getBalances - .filter( - (item) => - item.currency === 'USD' && - item.counterparty === 'rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B', - ) - .slice(0, 3) - const result = await this.client.getBalances(test.address, options) - assertResultMatch(result, expectedResponse, 'getBalances') - }) + // it("getBalances - limit & currency & issuer", async function () { + // const options = { + // currency: "USD", + // issuer: "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + // limit: 3, + // }; + // this.mockRippled.addResponse( + // "account_info", + // rippled.account_info.normal + // ); + // this.mockRippled.addResponse( + // "account_lines", + // rippledAccountLines.normal + // ); + // this.mockRippled.addResponse("ledger", rippled.ledger.normal); + + // const expectedResponse = responses.getBalances + // .filter( + // (item) => + // item.currency === "USD" && + // item.issuer === "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" + // ) + // .slice(0, 3); + // const result = await this.client.getBalances(test.address, options); + // console.log(expectedResponse); + // assertResultMatch(result, expectedResponse, "getBalances"); + // }); }) }) }) diff --git a/test/client/getOrderbook.ts b/test/client/getOrderbook.ts index 1756abb3..4c0547e3 100644 --- a/test/client/getOrderbook.ts +++ b/test/client/getOrderbook.ts @@ -1,18 +1,18 @@ -import { assert } from 'chai' +// import BigNumber from "bignumber.js"; +// import { assert } from "chai"; import { BookOffersRequest } from '../../src' import requests from '../fixtures/requests' import responses from '../fixtures/responses' import rippled from '../fixtures/rippled' import { setupClient, teardownClient } from '../setupClient' -import { addressTests, assertResultMatch, assertRejects } from '../testUtils' -// import BigNumber from 'bignumber.js' +import { addressTests, assertResultMatch } from '../testUtils' // function checkSortingOfOrders(orders) { -// let previousRate = '0' -// for (var i = 0; i < orders.length; i++) { -// const order = orders[i] -// let rate +// let previousRate = "0"; +// for (let i = 0; i < orders.length; i++) { +// const order = orders[i]; +// let rate; // // We calculate the quality of output/input here as a test. // // This won't hold in general because when output and input amounts get tiny, @@ -21,25 +21,22 @@ import { addressTests, assertResultMatch, assertRejects } from '../testUtils' // // to check the quality from the offer book, but for the test data set, // // this calculation holds. -// if (order.specification.direction === 'buy') { +// if (order.specification.direction === "buy") { // rate = new BigNumber(order.specification.quantity.value) // .dividedBy(order.specification.totalPrice.value) -// .toString() +// .toString(); // } else { // rate = new BigNumber(order.specification.totalPrice.value) // .dividedBy(order.specification.quantity.value) -// .toString() +// .toString(); // } // assert( // new BigNumber(rate).isGreaterThanOrEqualTo(previousRate), -// 'Rates must be sorted from least to greatest: ' + -// rate + -// ' should be >= ' + -// previousRate -// ) -// previousRate = rate +// `Rates must be sorted from least to greatest: ${rate} should be >= ${previousRate}` +// ); +// previousRate = rate; // } -// return true +// return true; // } function isUSD(currency: string) { @@ -72,15 +69,15 @@ function normalRippledResponse(request: BookOffersRequest): object { throw new Error('unexpected end') } -function xrpRippledResponse(request: BookOffersRequest): object { - if (request.taker_pays.issuer === 'rp8rJYTpodf8qbSCHVTNacf8nSW8mRakFw') { - return rippled.book_offers.xrp_usd - } - if (request.taker_gets.issuer === 'rp8rJYTpodf8qbSCHVTNacf8nSW8mRakFw') { - return rippled.book_offers.usd_xrp - } - throw new Error('unexpected end') -} +// function xrpRippledResponse(request: BookOffersRequest): object { +// if (request.taker_pays.issuer === "rp8rJYTpodf8qbSCHVTNacf8nSW8mRakFw") { +// return rippled.book_offers.xrp_usd; +// } +// if (request.taker_gets.issuer === "rp8rJYTpodf8qbSCHVTNacf8nSW8mRakFw") { +// return rippled.book_offers.usd_xrp; +// } +// throw new Error("unexpected end"); +// } describe('client.getOrderbook', function () { beforeEach(setupClient) @@ -91,9 +88,11 @@ describe('client.getOrderbook', function () { it('normal', async function () { this.mockRippled.addResponse('book_offers', normalRippledResponse) const response = await this.client.getOrderbook( - test.address, - requests.getOrderbook.normal, - { limit: 20 }, + requests.getOrderbook.normal.taker_pays, + requests.getOrderbook.normal.taker_gets, + { + limit: 1, + }, ) assertResultMatch( response, @@ -102,28 +101,28 @@ describe('client.getOrderbook', function () { ) }) - it('invalid options', async function () { - this.mockRippled.addResponse('book_offers', normalRippledResponse) - assertRejects( - this.client.getOrderbook(test.address, requests.getOrderbook.normal, { - invalid: 'options', - }), - this.client.errors.ValidationError, - ) - }) + // it("invalid options", async function () { + // this.mockRippled.addResponse("book_offers", normalRippledResponse); + // assertRejects( + // this.client.getOrderbook(test.address, requests.getOrderbook.normal, { + // invalid: "options", + // }), + // this.client.errors.ValidationError + // ); + // }); - it('with XRP', async function () { - this.mockRippled.addResponse('book_offers', xrpRippledResponse) - const response = await this.client.getOrderbook( - test.address, - requests.getOrderbook.withXRP, - ) - assertResultMatch( - response, - responses.getOrderbook.withXRP, - 'getOrderbook', - ) - }) + // it("with XRP", async function () { + // this.mockRippled.addResponse("book_offers", xrpRippledResponse); + // const response = await this.client.getOrderbook( + // test.address, + // requests.getOrderbook.withXRP + // ); + // assertResultMatch( + // response, + // responses.getOrderbook.withXRP, + // "getOrderbook" + // ); + // }); // 'sample XRP/JPY book has orders sorted correctly', async function () { // const orderbookInfo = { @@ -157,61 +156,61 @@ describe('client.getOrderbook', function () { // }, // WARNING: This test fails to catch the sorting bug, issue #766 - it('sorted so that best deals come first [bad test]', async function () { - this.mockRippled.addResponse('book_offers', normalRippledResponse) - const response = await this.client.getOrderbook( - test.address, - requests.getOrderbook.normal, - ) - const bidRates = response.bids.map( - (bid) => bid.properties.makerExchangeRate, - ) - const askRates = response.asks.map( - (ask) => ask.properties.makerExchangeRate, - ) - // makerExchangeRate = quality = takerPays.value/takerGets.value - // so the best deal for the taker is the lowest makerExchangeRate - // bids and asks should be sorted so that the best deals come first - assert.deepEqual( - bidRates.sort((x) => Number(x)), - bidRates, - ) - assert.deepEqual( - askRates.sort((x) => Number(x)), - askRates, - ) - }) + // it("sorted so that best deals come first [bad test]", async function () { + // this.mockRippled.addResponse("book_offers", normalRippledResponse); + // const response = await this.client.getOrderbook( + // test.address, + // requests.getOrderbook.normal + // ); + // const bidRates = response.bids.map( + // (bid) => bid.properties.makerExchangeRate + // ); + // const askRates = response.asks.map( + // (ask) => ask.properties.makerExchangeRate + // ); + // // makerExchangeRate = quality = takerPays.value/takerGets.value + // // so the best deal for the taker is the lowest makerExchangeRate + // // bids and asks should be sorted so that the best deals come first + // assert.deepEqual( + // bidRates.sort((x) => Number(x)), + // bidRates + // ); + // assert.deepEqual( + // askRates.sort((x) => Number(x)), + // askRates + // ); + // }); - it('currency & counterparty are correct', async function () { - this.mockRippled.addResponse('book_offers', normalRippledResponse) - const response = await this.client.getOrderbook( - test.address, - requests.getOrderbook.normal, - ) - ;[...response.bids, ...response.asks].forEach((order) => { - const quantity = order.specification.quantity - const totalPrice = order.specification.totalPrice - const { base, counter } = requests.getOrderbook.normal - assert.strictEqual(quantity.currency, base.currency) - assert.strictEqual(quantity.counterparty, base.counterparty) - assert.strictEqual(totalPrice.currency, counter.currency) - assert.strictEqual(totalPrice.counterparty, counter.counterparty) - }) - }) + // it("currency & counterparty are correct", async function () { + // this.mockRippled.addResponse("book_offers", normalRippledResponse); + // const response = await this.client.getOrderbook( + // test.address, + // requests.getOrderbook.normal + // ); + // [...response.bids, ...response.asks].forEach((order) => { + // const quantity = order.specification.quantity; + // const totalPrice = order.specification.totalPrice; + // const { base, counter } = requests.getOrderbook.normal; + // assert.strictEqual(quantity.currency, base.currency); + // assert.strictEqual(quantity.counterparty, base.counterparty); + // assert.strictEqual(totalPrice.currency, counter.currency); + // assert.strictEqual(totalPrice.counterparty, counter.counterparty); + // }); + // }); - it('direction is correct for bids and asks', async function () { - this.mockRippled.addResponse('book_offers', normalRippledResponse) - const response = await this.client.getOrderbook( - test.address, - requests.getOrderbook.normal, - ) - assert( - response.bids.every((bid) => bid.specification.direction === 'buy'), - ) - assert( - response.asks.every((ask) => ask.specification.direction === 'sell'), - ) - }) + // it("direction is correct for bids and asks", async function () { + // this.mockRippled.addResponse("book_offers", normalRippledResponse); + // const response = await this.client.getOrderbook( + // test.address, + // requests.getOrderbook.normal + // ); + // assert( + // response.bids.every((bid) => bid.specification.direction === "buy") + // ); + // assert( + // response.asks.every((ask) => ask.specification.direction === "sell") + // ); + // }); }) }) }) diff --git a/test/client/getPaths.ts b/test/client/getPaths.ts deleted file mode 100644 index 5d0b2264..00000000 --- a/test/client/getPaths.ts +++ /dev/null @@ -1,107 +0,0 @@ -import addresses from '../fixtures/addresses.json' -import requests from '../fixtures/requests' -import rippled from '../fixtures/rippled' -import { setupClient, teardownClient } from '../setupClient' -import { assertRejects } from '../testUtils' -// import responses from '../fixtures/responses' -const { getPaths: REQUEST_FIXTURES } = requests -// const {getPaths: RESPONSE_FIXTURES} = responses - -const rippledResponse = rippled.path_find.generate.generateIOUPaymentPaths( - 0, - REQUEST_FIXTURES.normal.source.address, - REQUEST_FIXTURES.normal.destination.address, - REQUEST_FIXTURES.normal.destination.amount, -) - -describe('client.getPaths', function () { - beforeEach(setupClient) - afterEach(teardownClient) - // 'simple test', function () { - // const response = await this.client.getPaths(REQUEST_FIXTURES.normal) - // assertResultMatch(response, RESPONSE_FIXTURES.XrpToUsd, 'getPaths') - // }) - // 'queuing', function () { - // const [normalResult, usdOnlyResult, xrpOnlyResult] = await Promise.all([ - // this.client.getPaths(REQUEST_FIXTURES.normal), - // this.client.getPaths(REQUEST_FIXTURES.UsdToUsd), - // this.client.getPaths(REQUEST_FIXTURES.XrpToXrp) - // ]) - // assertResultMatch(normalResult, RESPONSE_FIXTURES.XrpToUsd, 'getPaths') - // assertResultMatch(usdOnlyResult, RESPONSE_FIXTURES.UsdToUsd, 'getPaths') - // assertResultMatch(xrpOnlyResult, RESPONSE_FIXTURES.XrpToXrp, 'getPaths') - // }) - // // @TODO - // // need decide what to do with currencies/XRP: - // // if add 'XRP' in currencies, then there will be exception in - // // xrpToDrops function (called from toRippledAmount) - // 'getPaths USD 2 USD', function () { - // const response = await this.client.getPaths(REQUEST_FIXTURES.UsdToUsd) - // assertResultMatch(response, RESPONSE_FIXTURES.UsdToUsd, 'getPaths') - // }) - // 'getPaths XRP 2 XRP', function () { - // const response = await this.client.getPaths(REQUEST_FIXTURES.XrpToXrp) - // assertResultMatch(response, RESPONSE_FIXTURES.XrpToXrp, 'getPaths') - // }) - it('source with issuer', async function () { - this.mockRippled.addResponse('ripple_path_find', rippledResponse) - return assertRejects( - this.client.getPaths(REQUEST_FIXTURES.issuer), - this.client.errors.NotFoundError, - ) - }) - // 'XRP 2 XRP - not enough', function () { - // return assertRejects( - // this.client.getPaths(REQUEST_FIXTURES.XrpToXrpNotEnough), - // this.client.errors.NotFoundError - // ) - // }) - // it("invalid PathFind", function () { - // this.mockRippled.addResponse("ripple_path_find", rippledResponse); - // assert.throws(() => { - // this.client.getPaths(REQUEST_FIXTURES.invalid); - // }, /Cannot specify both source.amount/); - // }); - it('does not accept currency', async function () { - this.mockRippled.addResponse('ripple_path_find', rippledResponse) - return assertRejects( - this.client.getPaths(REQUEST_FIXTURES.NotAcceptCurrency), - this.client.errors.NotFoundError, - ) - }) - it('no paths', async function () { - this.mockRippled.addResponse('ripple_path_find', rippledResponse) - return assertRejects( - this.client.getPaths(REQUEST_FIXTURES.NoPaths), - this.client.errors.NotFoundError, - ) - }) - it('no paths source amount', async function () { - this.mockRippled.addResponse('ripple_path_find', rippledResponse) - return assertRejects( - this.client.getPaths(REQUEST_FIXTURES.NoPathsSource), - this.client.errors.NotFoundError, - ) - }) - it('no paths with source currencies', async function () { - this.mockRippled.addResponse('ripple_path_find', rippledResponse) - return assertRejects( - this.client.getPaths(REQUEST_FIXTURES.NoPathsWithCurrencies), - this.client.errors.NotFoundError, - ) - }) - it('error: srcActNotFound', async function () { - this.mockRippled.addResponse('ripple_path_find', rippledResponse) - return assertRejects( - this.client.getPaths({ - ...REQUEST_FIXTURES.normal, - source: { address: addresses.NOTFOUND }, - }), - this.client.errors.XrplError, - ) - }) - // 'send all', function () { - // const response = await this.client.getPaths(REQUEST_FIXTURES.sendAll) - // assertResultMatch(response, RESPONSE_FIXTURES.sendAll, 'getPaths') - // }) -}) diff --git a/test/client/getTrustlines.ts b/test/client/getTrustlines.ts deleted file mode 100644 index f4461f08..00000000 --- a/test/client/getTrustlines.ts +++ /dev/null @@ -1,60 +0,0 @@ -import responses from '../fixtures/responses' -import rippled from '../fixtures/rippled/accountLines' -import { setupClient, teardownClient } from '../setupClient' -import { assertResultMatch, addressTests } from '../testUtils' - -const { getTrustlines: RESPONSE_FIXTURES } = responses - -describe('client.getTrustlines', function () { - beforeEach(setupClient) - afterEach(teardownClient) - - addressTests.forEach(function (test) { - describe(test.type, function () { - it('getTrustlines - filtered', async function () { - this.mockRippled.addResponse('account_lines', rippled.normal) - const options = { currency: 'USD' } - const result = await this.client.getTrustlines(test.address, options) - assertResultMatch(result, RESPONSE_FIXTURES.filtered, 'getTrustlines') - }) - - it('getTrustlines - more than 400 items', async function () { - this.mockRippled.addResponse('account_lines', rippled.manyItems) - const options = { limit: 401 } - const result = await this.client.getTrustlines(test.address, options) - assertResultMatch( - result, - RESPONSE_FIXTURES.moreThan400Items, - 'getTrustlines', - ) - }) - - it('getTrustlines - no options', async function () { - this.mockRippled.addResponse('account_lines', rippled.normal) - await this.client.getTrustlines(test.address) - }) - - it('getTrustlines - ripplingDisabled works properly', async function () { - this.mockRippled.addResponse('account_lines', rippled.ripplingDisabled) - const result = await this.client.getTrustlines(test.address) - assertResultMatch( - result, - RESPONSE_FIXTURES.ripplingDisabled, - 'getTrustlines', - ) - }) - - it('getTrustlines - ledger version option', async function () { - this.mockRippled.addResponse('account_lines', rippled.manyItems) - const result = await this.client.getTrustlines(test.address, { - ledgerVersion: 5, - }) - assertResultMatch( - result, - RESPONSE_FIXTURES.moreThan400Items, - 'getTrustlines', - ) - }) - }) - }) -}) diff --git a/test/fixtures/requests/getOrderbook.json b/test/fixtures/requests/getOrderbook.json index 57fcfd32..ae20e033 100644 --- a/test/fixtures/requests/getOrderbook.json +++ b/test/fixtures/requests/getOrderbook.json @@ -1,10 +1,10 @@ { - "base": { + "taker_pays": { "currency": "USD", - "counterparty": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" }, - "counter": { + "taker_gets": { "currency": "BTC", - "counterparty": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" } } diff --git a/test/fixtures/responses/getBalances.json b/test/fixtures/responses/getBalances.json index 9625e989..cd8ab6eb 100644 --- a/test/fixtures/responses/getBalances.json +++ b/test/fixtures/responses/getBalances.json @@ -6,121 +6,121 @@ { "value": "0", "currency": "ASP", - "counterparty": "r3vi7mWxru9rJCxETCyA1CHvzL96eZWx5z" + "issuer": "r3vi7mWxru9rJCxETCyA1CHvzL96eZWx5z" }, { "value": "0", "currency": "XAU", - "counterparty": "r3vi7mWxru9rJCxETCyA1CHvzL96eZWx5z" + "issuer": "r3vi7mWxru9rJCxETCyA1CHvzL96eZWx5z" }, { "value": "2.497605752725159", "currency": "USD", - "counterparty": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q" + "issuer": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q" }, { "value": "481.992867407479", "currency": "MXN", - "counterparty": "rHpXfibHgSb64n8kK9QWDpdbfqSpYbM9a4" + "issuer": "rHpXfibHgSb64n8kK9QWDpdbfqSpYbM9a4" }, { "value": "0.793598266778297", "currency": "EUR", - "counterparty": "rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun" + "issuer": "rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun" }, { "value": "0", "currency": "CNY", - "counterparty": "rnuF96W4SZoCJmbHYBFoJZpR8eCaxNvekK" + "issuer": "rnuF96W4SZoCJmbHYBFoJZpR8eCaxNvekK" }, { "value": "1.294889190631542", "currency": "DYM", - "counterparty": "rGwUWgN5BEg3QGNY3RX2HfYowjUTZdid3E" + "issuer": "rGwUWgN5BEg3QGNY3RX2HfYowjUTZdid3E" }, { "value": "0.3488146605801446", "currency": "CHF", - "counterparty": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" }, { "value": "2.114103174931847", "currency": "BTC", - "counterparty": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" }, { "value": "0", "currency": "USD", - "counterparty": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" }, { "value": "-0.00111", "currency": "BTC", - "counterparty": "rpgKWEmNqSDAGFhy5WDnsyPqfQxbWxKeVd" + "issuer": "rpgKWEmNqSDAGFhy5WDnsyPqfQxbWxKeVd" }, { "value": "-0.1010780000080207", "currency": "BTC", - "counterparty": "rBJ3YjwXi2MGbg7GVLuTXUWQ8DjL7tDXh4" + "issuer": "rBJ3YjwXi2MGbg7GVLuTXUWQ8DjL7tDXh4" }, { "value": "1", "currency": "USD", - "counterparty": "rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun" + "issuer": "rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun" }, { "value": "8.07619790068559", "currency": "CNY", - "counterparty": "razqQKzJRdB4UxFPWf5NEpEG3WMkmwgcXA" + "issuer": "razqQKzJRdB4UxFPWf5NEpEG3WMkmwgcXA" }, { "value": "7.292695098901099", "currency": "JPY", - "counterparty": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" }, { "value": "0", "currency": "AUX", - "counterparty": "r3vi7mWxru9rJCxETCyA1CHvzL96eZWx5z" + "issuer": "r3vi7mWxru9rJCxETCyA1CHvzL96eZWx5z" }, { "value": "0", "currency": "USD", - "counterparty": "r9vbV3EHvXWjSkeQ6CAcYVPGeq7TuiXY2X" + "issuer": "r9vbV3EHvXWjSkeQ6CAcYVPGeq7TuiXY2X" }, { "value": "12.41688780720394", "currency": "EUR", - "counterparty": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" }, { "value": "35", "currency": "USD", - "counterparty": "rfF3PNkwkq1DygW2wum2HK3RGfgkJjdPVD" + "issuer": "rfF3PNkwkq1DygW2wum2HK3RGfgkJjdPVD" }, { "value": "-5", "currency": "JOE", - "counterparty": "rwUVoVMSURqNyvocPCcvLu3ygJzZyw8qwp" + "issuer": "rwUVoVMSURqNyvocPCcvLu3ygJzZyw8qwp" }, { "value": "0", "currency": "USD", - "counterparty": "rE6R3DWF9fBD7CyiQciePF9SqK58Ubp8o2" + "issuer": "rE6R3DWF9fBD7CyiQciePF9SqK58Ubp8o2" }, { "value": "0", "currency": "JOE", - "counterparty": "rE6R3DWF9fBD7CyiQciePF9SqK58Ubp8o2" + "issuer": "rE6R3DWF9fBD7CyiQciePF9SqK58Ubp8o2" }, { "value": "0", "currency": "015841551A748AD2C1F76FF6ECB0CCCD00000000", - "counterparty": "rs9M85karFkCRjvc6KMWn8Coigm9cbcgcx" + "issuer": "rs9M85karFkCRjvc6KMWn8Coigm9cbcgcx" }, { "value": "0", "currency": "USD", - "counterparty": "rEhDDUUNxpXgEHVJtC2cjXAgyx5VCFxdMF" + "issuer": "rEhDDUUNxpXgEHVJtC2cjXAgyx5VCFxdMF" } ] diff --git a/test/fixtures/responses/getOrderbook.json b/test/fixtures/responses/getOrderbook.json index dd686d10..900c42c3 100644 --- a/test/fixtures/responses/getOrderbook.json +++ b/test/fixtures/responses/getOrderbook.json @@ -1,539 +1,6 @@ { - "bids": [ - { - "specification": { - "direction": "buy", - "quantity": { - "currency": "USD", - "value": "93.030522464522", - "counterparty": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" - }, - "totalPrice": { - "currency": "BTC", - "value": "0.2849323720855092", - "counterparty": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" - } - }, - "properties": { - "maker": "rwBYyfufTzk77zUSKEu4MvixfarC35av1J", - "sequence": 386940, - "makerExchangeRate": "326.5003614141928" - }, - "data": { - "Account": "rwBYyfufTzk77zUSKEu4MvixfarC35av1J", - "BookDirectory": "6EAB7C172DEFA430DBFAD120FDC373B5F5AF8B191649EC98570B9980E49C7DE8", - "BookNode": "0000000000000000", - "Flags": 0, - "LedgerEntryType": "Offer", - "OwnerNode": "0000000000000008", - "PreviousTxnID": "92DBA0BE18B331AC61FB277211477A255D3B5EA9C5FE689171DE689FB45FE18A", - "PreviousTxnLgrSeq": 10714030, - "Sequence": 386940, - "TakerGets": { - "currency": "BTC", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "0.2849323720855092" - }, - "TakerPays": { - "currency": "USD", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "93.030522464522" - }, - "index": "8092033091034D94219BC1131AF7A6B469D790D81831CB479AB6F67A32BE4E13", - "owner_funds": "31.77682120227525", - "quality": "326.5003614141928" - } - }, - { - "specification": { - "direction": "buy", - "quantity": { - "currency": "USD", - "value": "1", - "counterparty": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" - }, - "totalPrice": { - "currency": "BTC", - "value": "0.00302447007930511", - "counterparty": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" - } - }, - "properties": { - "maker": "rwjsRktX1eguUr1pHTffyHnC4uyrvX58V1", - "sequence": 207855, - "makerExchangeRate": "330.6364334177034" - }, - "data": { - "Account": "rwjsRktX1eguUr1pHTffyHnC4uyrvX58V1", - "BookDirectory": "6EAB7C172DEFA430DBFAD120FDC373B5F5AF8B191649EC98570BBF1EEFA2FB0A", - "BookNode": "0000000000000000", - "Flags": 0, - "LedgerEntryType": "Offer", - "OwnerNode": "0000000000000000", - "PreviousTxnID": "C6BDA152363E3CFE18688A6830B49F3DB2B05976110B5908EA4EB66D93DEEB1F", - "PreviousTxnLgrSeq": 10714031, - "Sequence": 207855, - "TakerGets": { - "currency": "BTC", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "0.00302447007930511" - }, - "TakerPays": { - "currency": "USD", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "1" - }, - "index": "8DB3520FF9CB16A0EA955056C49115F8CFB03A587D0A4AFC844F1D220EFCE0B9", - "owner_funds": "0.0670537912615556", - "quality": "330.6364334177034" - } - }, - { - "specification": { - "direction": "buy", - "quantity": { - "currency": "USD", - "value": "99.34014894048333", - "counterparty": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" - }, - "totalPrice": { - "currency": "BTC", - "value": "0.3", - "counterparty": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" - }, - "expirationTime": "2014-12-25T01:14:43.000Z" - }, - "properties": { - "maker": "raudnGKfTK23YKfnS7ixejHrqGERTYNFXk", - "sequence": 110103, - "makerExchangeRate": "331.1338298016111" - }, - "data": { - "Account": "raudnGKfTK23YKfnS7ixejHrqGERTYNFXk", - "BookDirectory": "6EAB7C172DEFA430DBFAD120FDC373B5F5AF8B191649EC98570BC3A506FC016F", - "BookNode": "0000000000000000", - "Expiration": 472785283, - "Flags": 131072, - "LedgerEntryType": "Offer", - "OwnerNode": "00000000000008F0", - "PreviousTxnID": "77E763F1D02F58965CD1AD94F557B37A582FAC7760B71F391B856959836C2F7B", - "PreviousTxnLgrSeq": 10713576, - "Sequence": 110103, - "TakerGets": { - "currency": "BTC", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "0.3" - }, - "TakerPays": { - "currency": "USD", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "99.34014894048333" - }, - "index": "9ECDFD31B28643FD3A54658398C5715D6DAD574F83F04529CB24765770F9084D", - "owner_funds": "4.021116654525635", - "quality": "331.1338298016111" - } - }, - { - "specification": { - "direction": "buy", - "quantity": { - "currency": "USD", - "value": "268.754", - "counterparty": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" - }, - "totalPrice": { - "currency": "BTC", - "value": "0.8095", - "counterparty": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" - } - }, - "properties": { - "maker": "rPyYxUGK8L4dgEvjPs3aRc1B1jEiLr3Hx5", - "sequence": 392, - "makerExchangeRate": "332" - }, - "state": { - "fundedAmount": { - "currency": "BTC", - "value": "0.8078974385735969", - "counterparty": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" - }, - "priceOfFundedAmount": { - "currency": "USD", - "value": "268.2219496064341", - "counterparty": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" - } - }, - "data": { - "Account": "rPyYxUGK8L4dgEvjPs3aRc1B1jEiLr3Hx5", - "BookDirectory": "6EAB7C172DEFA430DBFAD120FDC373B5F5AF8B191649EC98570BCB85BCA78000", - "BookNode": "0000000000000000", - "Flags": 131072, - "LedgerEntryType": "Offer", - "OwnerNode": "0000000000000000", - "PreviousTxnID": "D22993C68C94ACE3F2FCE4A334EBEA98CC46DCA92886C12B5E5B4780B5E17D4E", - "PreviousTxnLgrSeq": 10711938, - "Sequence": 392, - "TakerGets": { - "currency": "BTC", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "0.8095" - }, - "TakerPays": { - "currency": "USD", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "268.754" - }, - "index": "18B136E08EF50F0DEE8521EA22D16A950CD8B6DDF5F6E07C35F7FDDBBB09718D", - "owner_funds": "0.8095132334507441", - "quality": "332", - "taker_gets_funded": { - "currency": "BTC", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "0.8078974385735969" - }, - "taker_pays_funded": { - "currency": "USD", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "268.2219496064341" - } - } - }, - { - "specification": { - "direction": "buy", - "quantity": { - "currency": "USD", - "value": "152.0098333185607", - "counterparty": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" - }, - "totalPrice": { - "currency": "BTC", - "value": "0.4499999999999999", - "counterparty": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" - }, - "expirationTime": "2014-12-25T01:14:44.000Z" - }, - "properties": { - "maker": "raudnGKfTK23YKfnS7ixejHrqGERTYNFXk", - "sequence": 110105, - "makerExchangeRate": "337.7996295968016" - }, - "data": { - "Account": "raudnGKfTK23YKfnS7ixejHrqGERTYNFXk", - "BookDirectory": "6EAB7C172DEFA430DBFAD120FDC373B5F5AF8B191649EC98570C00450D461510", - "BookNode": "0000000000000000", - "Expiration": 472785284, - "Flags": 131072, - "LedgerEntryType": "Offer", - "OwnerNode": "00000000000008F0", - "PreviousTxnID": "1F4D9D859D9AABA888C0708A572B38919A3AEF2C8C1F5A13F58F44C92E5FF3FB", - "PreviousTxnLgrSeq": 10713576, - "Sequence": 110105, - "TakerGets": { - "currency": "BTC", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "0.4499999999999999" - }, - "TakerPays": { - "currency": "USD", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "152.0098333185607" - }, - "index": "9F380E0B39E2AF8AA9608C3E39A5A8628E6D0F44385C6D12BE06F4FEC8D83351", - "quality": "337.7996295968016" - } - }, - { - "specification": { - "direction": "buy", - "quantity": { - "currency": "USD", - "value": "1.308365894430151", - "counterparty": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" - }, - "totalPrice": { - "currency": "BTC", - "value": "0.003768001830745216", - "counterparty": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" - } - }, - "properties": { - "maker": "rDbsCJr5m8gHDCNEHCZtFxcXHsD4S9jH83", - "sequence": 110061, - "makerExchangeRate": "347.2306949944844" - }, - "data": { - "Account": "rDbsCJr5m8gHDCNEHCZtFxcXHsD4S9jH83", - "BookDirectory": "6EAB7C172DEFA430DBFAD120FDC373B5F5AF8B191649EC98570C560B764D760C", - "BookNode": "0000000000000000", - "Flags": 131072, - "LedgerEntryType": "Offer", - "OwnerNode": "0000000000000001", - "PreviousTxnID": "9A0B6B76F0D86614F965A2FFCC8859D8607F4E424351D4CFE2FBE24510F93F25", - "PreviousTxnLgrSeq": 10708382, - "Sequence": 110061, - "TakerGets": { - "currency": "BTC", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "0.003768001830745216" - }, - "TakerPays": { - "currency": "USD", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "1.308365894430151" - }, - "index": "B971769686CE1B9139502770158A4E7C011CFF8E865E5AAE5428E23AAA0E146D", - "owner_funds": "0.2229210189326514", - "quality": "347.2306949944844" - } - }, - { - "specification": { - "direction": "buy", - "quantity": { - "currency": "USD", - "value": "176.3546101589987", - "counterparty": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" - }, - "totalPrice": { - "currency": "BTC", - "value": "0.5", - "counterparty": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" - }, - "expirationTime": "2014-12-25T00:41:38.000Z" - }, - "properties": { - "maker": "rDVBvAQScXrGRGnzrxRrcJPeNLeLeUTAqE", - "sequence": 35788, - "makerExchangeRate": "352.7092203179974" - }, - "data": { - "Account": "rDVBvAQScXrGRGnzrxRrcJPeNLeLeUTAqE", - "BookDirectory": "6EAB7C172DEFA430DBFAD120FDC373B5F5AF8B191649EC98570C87DF25DC4FC6", - "BookNode": "0000000000000000", - "Expiration": 472783298, - "Flags": 131072, - "LedgerEntryType": "Offer", - "OwnerNode": "00000000000003D2", - "PreviousTxnID": "E5F9A10F29A4BB3634D5A84FC96931E17267B58E0D2D5ADE24FFB751E52ADB9E", - "PreviousTxnLgrSeq": 10713533, - "Sequence": 35788, - "TakerGets": { - "currency": "BTC", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "0.5" - }, - "TakerPays": { - "currency": "USD", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "176.3546101589987" - }, - "index": "D2CB71038AD0ECAF4B5FF0A953AD1257225D0071E6F3AF9ADE67F05590B45C6E", - "owner_funds": "6.617688680663627", - "quality": "352.7092203179974" - } - }, - { - "specification": { - "direction": "buy", - "quantity": { - "currency": "USD", - "value": "179.48", - "counterparty": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" - }, - "totalPrice": { - "currency": "BTC", - "value": "0.5", - "counterparty": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" - } - }, - "properties": { - "maker": "rN6jbxx4H6NxcnmkzBxQnbCWLECNKrgSSf", - "sequence": 491, - "makerExchangeRate": "358.96" - }, - "state": { - "fundedAmount": { - "currency": "BTC", - "value": "0.499001996007984", - "counterparty": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" - }, - "priceOfFundedAmount": { - "currency": "USD", - "value": "179.1217564870259", - "counterparty": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" - } - }, - "data": { - "Account": "rN6jbxx4H6NxcnmkzBxQnbCWLECNKrgSSf", - "BookDirectory": "6EAB7C172DEFA430DBFAD120FDC373B5F5AF8B191649EC98570CC0B8E0E2C000", - "BookNode": "0000000000000000", - "Flags": 131072, - "LedgerEntryType": "Offer", - "OwnerNode": "0000000000000000", - "PreviousTxnID": "2E16ACFEAC2306E3B3483D445787F3496FACF9504F7A5E909620C1A73E2EDE54", - "PreviousTxnLgrSeq": 10558020, - "Sequence": 491, - "TakerGets": { - "currency": "BTC", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "0.5" - }, - "TakerPays": { - "currency": "USD", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "179.48" - }, - "index": "DA853913C8013C9471957349EDAEE4DF4846833B8CCB92008E2A8994E37BEF0D", - "owner_funds": "0.5", - "quality": "358.96", - "taker_gets_funded": { - "currency": "BTC", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "0.499001996007984" - }, - "taker_pays_funded": { - "currency": "USD", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "179.1217564870259" - } - } - }, - { - "specification": { - "direction": "buy", - "quantity": { - "currency": "USD", - "value": "288.7710263794967", - "counterparty": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" - }, - "totalPrice": { - "currency": "BTC", - "value": "0.8", - "counterparty": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" - }, - "expirationTime": "2014-12-25T00:41:39.000Z" - }, - "properties": { - "maker": "rDVBvAQScXrGRGnzrxRrcJPeNLeLeUTAqE", - "sequence": 35789, - "makerExchangeRate": "360.9637829743709" - }, - "data": { - "Account": "rDVBvAQScXrGRGnzrxRrcJPeNLeLeUTAqE", - "BookDirectory": "6EAB7C172DEFA430DBFAD120FDC373B5F5AF8B191649EC98570CD2F24C9C145D", - "BookNode": "0000000000000000", - "Expiration": 472783299, - "Flags": 131072, - "LedgerEntryType": "Offer", - "OwnerNode": "00000000000003D2", - "PreviousTxnID": "B1B12E47043B4260223A2C4240D19E93526B55B1DB38DEED335DACE7C04FEB23", - "PreviousTxnLgrSeq": 10713534, - "Sequence": 35789, - "TakerGets": { - "currency": "BTC", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "0.8" - }, - "TakerPays": { - "currency": "USD", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "288.7710263794967" - }, - "index": "B89AD580E908F7337CCBB47A0BAAC6417EF13AC3465E34E8B7DD3BED016EA833", - "quality": "360.9637829743709" - } - }, - { - "specification": { - "direction": "buy", - "quantity": { - "currency": "USD", - "value": "182.9814890090516", - "counterparty": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" - }, - "totalPrice": { - "currency": "BTC", - "value": "0.5", - "counterparty": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" - } - }, - "properties": { - "maker": "rUeCeioKJkbYhv4mRGuAbZpPcqkMCoYq6N", - "sequence": 5255, - "makerExchangeRate": "365.9629780181032" - }, - "state": { - "fundedAmount": { - "currency": "BTC", - "value": "0.2254411038203033", - "counterparty": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" - }, - "priceOfFundedAmount": { - "currency": "USD", - "value": "82.50309772176658", - "counterparty": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" - } - }, - "data": { - "Account": "rUeCeioKJkbYhv4mRGuAbZpPcqkMCoYq6N", - "BookDirectory": "6EAB7C172DEFA430DBFAD120FDC373B5F5AF8B191649EC98570D0069F50EA028", - "BookNode": "0000000000000000", - "Flags": 0, - "LedgerEntryType": "Offer", - "OwnerNode": "0000000000000012", - "PreviousTxnID": "F0E8ABF07F83DF0B5EF5B417E8E29A45A5503BA8F26FBC86447CC6B1FAD6A1C4", - "PreviousTxnLgrSeq": 10447672, - "Sequence": 5255, - "TakerGets": { - "currency": "BTC", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "0.5" - }, - "TakerPays": { - "currency": "USD", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "182.9814890090516" - }, - "index": "D652DCE4B19C6CB43912651D3A975371D3B2A16A034EDF07BC11BF721AEF94A4", - "owner_funds": "0.225891986027944", - "quality": "365.9629780181032", - "taker_gets_funded": { - "currency": "BTC", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "0.2254411038203033" - }, - "taker_pays_funded": { - "currency": "USD", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "82.50309772176658" - } - } - } - ], - "asks": [ - { - "specification": { - "direction": "sell", - "quantity": { - "currency": "USD", - "value": "3205.1", - "counterparty": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" - }, - "totalPrice": { - "currency": "BTC", - "value": "10", - "counterparty": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" - } - }, - "properties": { - "maker": "r49y2xKuKVG2dPkNHgWQAV61cjxk8gryjQ", - "sequence": 434, - "makerExchangeRate": "0.003120027456241615" - }, - "data": { + "buy": [ + { "Account": "r49y2xKuKVG2dPkNHgWQAV61cjxk8gryjQ", "BookDirectory": "20294C923E80A51B487EB9547B3835FD483748B170D2D0A4520B15A60037FFCF", "BookNode": "0000000000000000", @@ -544,40 +11,20 @@ "PreviousTxnLgrSeq": 10679000, "Sequence": 434, "TakerGets": { - "currency": "USD", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "3205.1" + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "3205.1" }, "TakerPays": { - "currency": "BTC", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "10" + "currency": "BTC", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "10" }, "index": "CE457115A4ADCC8CB351B3E35A0851E48DE16605C23E305017A9B697B156DE5A", "owner_funds": "41952.95917199965", "quality": "0.003120027456241615" - } - }, - { - "specification": { - "direction": "sell", - "quantity": { - "currency": "USD", - "value": "1599.063669386278", - "counterparty": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" - }, - "totalPrice": { - "currency": "BTC", - "value": "4.99707396683212", - "counterparty": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" - } - }, - "properties": { - "maker": "rDYCRhpahKEhCFV25xScg67Bwf4W9sTYAm", - "sequence": 233, - "makerExchangeRate": "0.003125" - }, - "data": { + }, + { "Account": "rDYCRhpahKEhCFV25xScg67Bwf4W9sTYAm", "BookDirectory": "20294C923E80A51B487EB9547B3835FD483748B170D2D0A4520B1A2BC2EC5000", "BookNode": "0000000000000000", @@ -588,53 +35,20 @@ "PreviousTxnLgrSeq": 10704238, "Sequence": 233, "TakerGets": { - "currency": "USD", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "1599.063669386278" + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "1599.063669386278" }, "TakerPays": { - "currency": "BTC", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "4.99707396683212" + "currency": "BTC", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "4.99707396683212" }, "index": "BF14FBB305159DBCAEA91B7E848408F5B559A91B160EBCB6D244958A6A16EA6B", "owner_funds": "3169.910902910102", "quality": "0.003125" - } - }, - { - "specification": { - "direction": "sell", - "quantity": { - "currency": "USD", - "value": "143.1050962074379", - "counterparty": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" - }, - "totalPrice": { - "currency": "BTC", - "value": "0.4499999999999999", - "counterparty": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" - }, - "expirationTime": "2014-12-25T01:14:44.000Z" - }, - "properties": { - "maker": "raudnGKfTK23YKfnS7ixejHrqGERTYNFXk", - "sequence": 110104, - "makerExchangeRate": "0.003144542101755081" - }, - "state": { - "fundedAmount": { - "currency": "USD", - "value": "0", - "counterparty": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" - }, - "priceOfFundedAmount": { - "currency": "BTC", - "value": "0", - "counterparty": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" - } - }, - "data": { + }, + { "Account": "raudnGKfTK23YKfnS7ixejHrqGERTYNFXk", "BookDirectory": "20294C923E80A51B487EB9547B3835FD483748B170D2D0A4520B2BF1C2F4D4C9", "BookNode": "0000000000000000", @@ -646,63 +60,30 @@ "PreviousTxnLgrSeq": 10713576, "Sequence": 110104, "TakerGets": { - "currency": "USD", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "143.1050962074379" + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "143.1050962074379" }, "TakerPays": { - "currency": "BTC", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "0.4499999999999999" + "currency": "BTC", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "0.4499999999999999" }, "index": "67924B0EAA15784CC00CCD5FDD655EE2D6D2AE40341776B5F14E52341E7FC73E", "owner_funds": "0", "quality": "0.003144542101755081", "taker_gets_funded": { - "currency": "USD", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "0" + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "0" }, "taker_pays_funded": { - "currency": "BTC", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "0" + "currency": "BTC", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "0" } - } - }, - { - "specification": { - "direction": "sell", - "quantity": { - "currency": "USD", - "value": "254.329207354604", - "counterparty": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" - }, - "totalPrice": { - "currency": "BTC", - "value": "0.8", - "counterparty": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" - }, - "expirationTime": "2014-12-24T21:44:11.000Z" - }, - "properties": { - "maker": "rDVBvAQScXrGRGnzrxRrcJPeNLeLeUTAqE", - "sequence": 35625, - "makerExchangeRate": "0.003145529403882357" - }, - "state": { - "fundedAmount": { - "currency": "USD", - "value": "0", - "counterparty": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" - }, - "priceOfFundedAmount": { - "currency": "BTC", - "value": "0", - "counterparty": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" - } - }, - "data": { + }, + { "Account": "rDVBvAQScXrGRGnzrxRrcJPeNLeLeUTAqE", "BookDirectory": "20294C923E80A51B487EB9547B3835FD483748B170D2D0A4520B2CD7A2BFBB75", "BookNode": "0000000000000000", @@ -714,50 +95,30 @@ "PreviousTxnLgrSeq": 10711128, "Sequence": 35625, "TakerGets": { - "currency": "USD", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "254.329207354604" + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "254.329207354604" }, "TakerPays": { - "currency": "BTC", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "0.8" + "currency": "BTC", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "0.8" }, "index": "567BF2825173E3FB28FC94E436B6EB30D9A415FC2335E6D25CDE1BE47B25D120", "owner_funds": "0", "quality": "0.003145529403882357", "taker_gets_funded": { - "currency": "USD", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "0" + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "0" }, "taker_pays_funded": { - "currency": "BTC", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "0" + "currency": "BTC", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "0" } - } - }, - { - "specification": { - "direction": "sell", - "quantity": { - "currency": "USD", - "value": "390.4979", - "counterparty": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" - }, - "totalPrice": { - "currency": "BTC", - "value": "1.23231134568807", - "counterparty": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" - } - }, - "properties": { - "maker": "rwBYyfufTzk77zUSKEu4MvixfarC35av1J", - "sequence": 387756, - "makerExchangeRate": "0.003155743848271834" - }, - "data": { + }, + { "Account": "rwBYyfufTzk77zUSKEu4MvixfarC35av1J", "BookDirectory": "20294C923E80A51B487EB9547B3835FD483748B170D2D0A4520B3621DF140FDA", "BookNode": "0000000000000000", @@ -768,40 +129,20 @@ "PreviousTxnLgrSeq": 10716291, "Sequence": 387756, "TakerGets": { - "currency": "USD", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "390.4979" + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "390.4979" }, "TakerPays": { - "currency": "BTC", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "1.23231134568807" + "currency": "BTC", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "1.23231134568807" }, "index": "8CA23E55BF9F46AC7E803D3DB40FD03225EFCA66650D4CF0CBDD28A7CCDC8400", "owner_funds": "5704.824764087842", "quality": "0.003155743848271834" - } - }, - { - "specification": { - "direction": "sell", - "quantity": { - "currency": "USD", - "value": "1", - "counterparty": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" - }, - "totalPrice": { - "currency": "BTC", - "value": "0.003160328237957649", - "counterparty": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" - } - }, - "properties": { - "maker": "rwjsRktX1eguUr1pHTffyHnC4uyrvX58V1", - "sequence": 208927, - "makerExchangeRate": "0.003160328237957649" - }, - "data": { + }, + { "Account": "rwjsRktX1eguUr1pHTffyHnC4uyrvX58V1", "BookDirectory": "20294C923E80A51B487EB9547B3835FD483748B170D2D0A4520B3A4D41FF4211", "BookNode": "0000000000000000", @@ -812,40 +153,20 @@ "PreviousTxnLgrSeq": 10716292, "Sequence": 208927, "TakerGets": { - "currency": "USD", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "1" + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "1" }, "TakerPays": { - "currency": "BTC", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "0.003160328237957649" + "currency": "BTC", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "0.003160328237957649" }, "index": "7206866E39D9843623EE79E570242753DEE3C597F3856AEFB4631DD5AD8B0557", "owner_funds": "45.55665106096075", "quality": "0.003160328237957649" - } - }, - { - "specification": { - "direction": "sell", - "quantity": { - "currency": "USD", - "value": "4725", - "counterparty": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" - }, - "totalPrice": { - "currency": "BTC", - "value": "15", - "counterparty": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" - } - }, - "properties": { - "maker": "r49y2xKuKVG2dPkNHgWQAV61cjxk8gryjQ", - "sequence": 429, - "makerExchangeRate": "0.003174603174603175" - }, - "data": { + }, + { "Account": "r49y2xKuKVG2dPkNHgWQAV61cjxk8gryjQ", "BookDirectory": "20294C923E80A51B487EB9547B3835FD483748B170D2D0A4520B4748E68669A7", "BookNode": "0000000000000000", @@ -856,96 +177,19 @@ "PreviousTxnLgrSeq": 10639969, "Sequence": 429, "TakerGets": { - "currency": "USD", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "4725" + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "4725" }, "TakerPays": { - "currency": "BTC", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "15" + "currency": "BTC", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "15" }, "index": "42894809370C7E6B23498EF8E22AD4B05F02B94F08E6983357A51EA96A95FF7F", "quality": "0.003174603174603175" - } - }, - { - "specification": { - "direction": "sell", - "quantity": { - "currency": "USD", - "value": "1.24252537879871", - "counterparty": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" - }, - "totalPrice": { - "currency": "BTC", - "value": "0.003967400879423823", - "counterparty": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" - } - }, - "properties": { - "maker": "rDbsCJr5m8gHDCNEHCZtFxcXHsD4S9jH83", - "sequence": 110099, - "makerExchangeRate": "0.003193013959408667" - }, - "data": { - "Account": "rDbsCJr5m8gHDCNEHCZtFxcXHsD4S9jH83", - "BookDirectory": "20294C923E80A51B487EB9547B3835FD483748B170D2D0A4520B58077ED03C1B", - "BookNode": "0000000000000000", - "Flags": 131072, - "LedgerEntryType": "Offer", - "OwnerNode": "0000000000000001", - "PreviousTxnID": "98F3F2D02D3BB0AEAC09EECCF2F24BBE5E1AB2C71C40D7BD0A5199E12541B6E2", - "PreviousTxnLgrSeq": 10715839, - "Sequence": 110099, - "TakerGets": { - "currency": "USD", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "1.24252537879871" - }, - "TakerPays": { - "currency": "BTC", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "0.003967400879423823" - }, - "index": "F4404D6547149419D3607F81D7080979FBB3AFE2661F9A933E2F6C07AC1D1F6D", - "owner_funds": "73.52163803897041", - "quality": "0.003193013959408667" - } - }, - { - "specification": { - "direction": "sell", - "quantity": { - "currency": "USD", - "value": "496.5429474010489", - "counterparty": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" - }, - "totalPrice": { - "currency": "BTC", - "value": "1.6", - "counterparty": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" - }, - "expirationTime": "2014-12-24T21:44:12.000Z" - }, - "properties": { - "maker": "rDVBvAQScXrGRGnzrxRrcJPeNLeLeUTAqE", - "sequence": 35627, - "makerExchangeRate": "0.003222279177208227" - }, - "state": { - "fundedAmount": { - "currency": "USD", - "value": "0", - "counterparty": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" - }, - "priceOfFundedAmount": { - "currency": "BTC", - "value": "0", - "counterparty": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" - } - }, - "data": { + }, + { "Account": "rDVBvAQScXrGRGnzrxRrcJPeNLeLeUTAqE", "BookDirectory": "20294C923E80A51B487EB9547B3835FD483748B170D2D0A4520B72A555B981A3", "BookNode": "0000000000000000", @@ -957,49 +201,29 @@ "PreviousTxnLgrSeq": 10711128, "Sequence": 35627, "TakerGets": { - "currency": "USD", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "496.5429474010489" + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "496.5429474010489" }, "TakerPays": { - "currency": "BTC", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "1.6" + "currency": "BTC", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "1.6" }, "index": "50CAA04E81D0009115B61C132FC9887FA9E5336E0CB8A2E7D3280ADBF6ABC043", "quality": "0.003222279177208227", "taker_gets_funded": { - "currency": "USD", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "0" + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "0" }, "taker_pays_funded": { - "currency": "BTC", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "0" + "currency": "BTC", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "0" } - } - }, - { - "specification": { - "direction": "sell", - "quantity": { - "currency": "USD", - "value": "3103", - "counterparty": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" - }, - "totalPrice": { - "currency": "BTC", - "value": "10", - "counterparty": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" - } - }, - "properties": { - "maker": "r49y2xKuKVG2dPkNHgWQAV61cjxk8gryjQ", - "sequence": 431, - "makerExchangeRate": "0.003222687721559781" - }, - "data": { + }, + { "Account": "r49y2xKuKVG2dPkNHgWQAV61cjxk8gryjQ", "BookDirectory": "20294C923E80A51B487EB9547B3835FD483748B170D2D0A4520B730474DD96E5", "BookNode": "0000000000000000", @@ -1010,18 +234,315 @@ "PreviousTxnLgrSeq": 10639989, "Sequence": 431, "TakerGets": { - "currency": "USD", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "3103" + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "3103" }, "TakerPays": { - "currency": "BTC", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "10" + "currency": "BTC", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "10" }, "index": "8A319A496288228AD9CAD74375E32FA81805C56A9AD84798A26756A8B3F9EE23", "quality": "0.003222687721559781" - } - } + }, + { + "Account": "rwBYyfufTzk77zUSKEu4MvixfarC35av1J", + "BookDirectory": "6EAB7C172DEFA430DBFAD120FDC373B5F5AF8B191649EC98570B9980E49C7DE8", + "BookNode": "0000000000000000", + "Flags": 0, + "LedgerEntryType": "Offer", + "OwnerNode": "0000000000000008", + "PreviousTxnID": "92DBA0BE18B331AC61FB277211477A255D3B5EA9C5FE689171DE689FB45FE18A", + "PreviousTxnLgrSeq": 10714030, + "Sequence": 386940, + "TakerGets": { + "currency": "BTC", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "0.2849323720855092" + }, + "TakerPays": { + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "93.030522464522" + }, + "index": "8092033091034D94219BC1131AF7A6B469D790D81831CB479AB6F67A32BE4E13", + "owner_funds": "31.77682120227525", + "quality": "326.5003614141928" + }, + { + "Account": "rwjsRktX1eguUr1pHTffyHnC4uyrvX58V1", + "BookDirectory": "6EAB7C172DEFA430DBFAD120FDC373B5F5AF8B191649EC98570BBF1EEFA2FB0A", + "BookNode": "0000000000000000", + "Flags": 0, + "LedgerEntryType": "Offer", + "OwnerNode": "0000000000000000", + "PreviousTxnID": "C6BDA152363E3CFE18688A6830B49F3DB2B05976110B5908EA4EB66D93DEEB1F", + "PreviousTxnLgrSeq": 10714031, + "Sequence": 207855, + "TakerGets": { + "currency": "BTC", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "0.00302447007930511" + }, + "TakerPays": { + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "1" + }, + "index": "8DB3520FF9CB16A0EA955056C49115F8CFB03A587D0A4AFC844F1D220EFCE0B9", + "owner_funds": "0.0670537912615556", + "quality": "330.6364334177034" + }, + { + "Account": "rUeCeioKJkbYhv4mRGuAbZpPcqkMCoYq6N", + "BookDirectory": "6EAB7C172DEFA430DBFAD120FDC373B5F5AF8B191649EC98570D0069F50EA028", + "BookNode": "0000000000000000", + "Flags": 0, + "LedgerEntryType": "Offer", + "OwnerNode": "0000000000000012", + "PreviousTxnID": "F0E8ABF07F83DF0B5EF5B417E8E29A45A5503BA8F26FBC86447CC6B1FAD6A1C4", + "PreviousTxnLgrSeq": 10447672, + "Sequence": 5255, + "TakerGets": { + "currency": "BTC", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "0.5" + }, + "TakerPays": { + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "182.9814890090516" + }, + "index": "D652DCE4B19C6CB43912651D3A975371D3B2A16A034EDF07BC11BF721AEF94A4", + "owner_funds": "0.225891986027944", + "quality": "365.9629780181032", + "taker_gets_funded": { + "currency": "BTC", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "0.2254411038203033" + }, + "taker_pays_funded": { + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "82.50309772176658" + } + } + ], + "sell": [ + { + "Account": "rDbsCJr5m8gHDCNEHCZtFxcXHsD4S9jH83", + "BookDirectory": "20294C923E80A51B487EB9547B3835FD483748B170D2D0A4520B58077ED03C1B", + "BookNode": "0000000000000000", + "Flags": 131072, + "LedgerEntryType": "Offer", + "OwnerNode": "0000000000000001", + "PreviousTxnID": "98F3F2D02D3BB0AEAC09EECCF2F24BBE5E1AB2C71C40D7BD0A5199E12541B6E2", + "PreviousTxnLgrSeq": 10715839, + "Sequence": 110099, + "TakerGets": { + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "1.24252537879871" + }, + "TakerPays": { + "currency": "BTC", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "0.003967400879423823" + }, + "index": "F4404D6547149419D3607F81D7080979FBB3AFE2661F9A933E2F6C07AC1D1F6D", + "owner_funds": "73.52163803897041", + "quality": "0.003193013959408667" + }, + { + "Account": "raudnGKfTK23YKfnS7ixejHrqGERTYNFXk", + "BookDirectory": "6EAB7C172DEFA430DBFAD120FDC373B5F5AF8B191649EC98570BC3A506FC016F", + "BookNode": "0000000000000000", + "Expiration": 472785283, + "Flags": 131072, + "LedgerEntryType": "Offer", + "OwnerNode": "00000000000008F0", + "PreviousTxnID": "77E763F1D02F58965CD1AD94F557B37A582FAC7760B71F391B856959836C2F7B", + "PreviousTxnLgrSeq": 10713576, + "Sequence": 110103, + "TakerGets": { + "currency": "BTC", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "0.3" + }, + "TakerPays": { + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "99.34014894048333" + }, + "index": "9ECDFD31B28643FD3A54658398C5715D6DAD574F83F04529CB24765770F9084D", + "owner_funds": "4.021116654525635", + "quality": "331.1338298016111" + }, + { + "Account": "rPyYxUGK8L4dgEvjPs3aRc1B1jEiLr3Hx5", + "BookDirectory": "6EAB7C172DEFA430DBFAD120FDC373B5F5AF8B191649EC98570BCB85BCA78000", + "BookNode": "0000000000000000", + "Flags": 131072, + "LedgerEntryType": "Offer", + "OwnerNode": "0000000000000000", + "PreviousTxnID": "D22993C68C94ACE3F2FCE4A334EBEA98CC46DCA92886C12B5E5B4780B5E17D4E", + "PreviousTxnLgrSeq": 10711938, + "Sequence": 392, + "TakerGets": { + "currency": "BTC", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "0.8095" + }, + "TakerPays": { + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "268.754" + }, + "index": "18B136E08EF50F0DEE8521EA22D16A950CD8B6DDF5F6E07C35F7FDDBBB09718D", + "owner_funds": "0.8095132334507441", + "quality": "332", + "taker_gets_funded": { + "currency": "BTC", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "0.8078974385735969" + }, + "taker_pays_funded": { + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "268.2219496064341" + } + }, + { + "Account": "raudnGKfTK23YKfnS7ixejHrqGERTYNFXk", + "BookDirectory": "6EAB7C172DEFA430DBFAD120FDC373B5F5AF8B191649EC98570C00450D461510", + "BookNode": "0000000000000000", + "Expiration": 472785284, + "Flags": 131072, + "LedgerEntryType": "Offer", + "OwnerNode": "00000000000008F0", + "PreviousTxnID": "1F4D9D859D9AABA888C0708A572B38919A3AEF2C8C1F5A13F58F44C92E5FF3FB", + "PreviousTxnLgrSeq": 10713576, + "Sequence": 110105, + "TakerGets": { + "currency": "BTC", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "0.4499999999999999" + }, + "TakerPays": { + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "152.0098333185607" + }, + "index": "9F380E0B39E2AF8AA9608C3E39A5A8628E6D0F44385C6D12BE06F4FEC8D83351", + "quality": "337.7996295968016" + }, + { + "Account": "rDbsCJr5m8gHDCNEHCZtFxcXHsD4S9jH83", + "BookDirectory": "6EAB7C172DEFA430DBFAD120FDC373B5F5AF8B191649EC98570C560B764D760C", + "BookNode": "0000000000000000", + "Flags": 131072, + "LedgerEntryType": "Offer", + "OwnerNode": "0000000000000001", + "PreviousTxnID": "9A0B6B76F0D86614F965A2FFCC8859D8607F4E424351D4CFE2FBE24510F93F25", + "PreviousTxnLgrSeq": 10708382, + "Sequence": 110061, + "TakerGets": { + "currency": "BTC", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "0.003768001830745216" + }, + "TakerPays": { + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "1.308365894430151" + }, + "index": "B971769686CE1B9139502770158A4E7C011CFF8E865E5AAE5428E23AAA0E146D", + "owner_funds": "0.2229210189326514", + "quality": "347.2306949944844" + }, + { + "Account": "rDVBvAQScXrGRGnzrxRrcJPeNLeLeUTAqE", + "BookDirectory": "6EAB7C172DEFA430DBFAD120FDC373B5F5AF8B191649EC98570C87DF25DC4FC6", + "BookNode": "0000000000000000", + "Expiration": 472783298, + "Flags": 131072, + "LedgerEntryType": "Offer", + "OwnerNode": "00000000000003D2", + "PreviousTxnID": "E5F9A10F29A4BB3634D5A84FC96931E17267B58E0D2D5ADE24FFB751E52ADB9E", + "PreviousTxnLgrSeq": 10713533, + "Sequence": 35788, + "TakerGets": { + "currency": "BTC", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "0.5" + }, + "TakerPays": { + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "176.3546101589987" + }, + "index": "D2CB71038AD0ECAF4B5FF0A953AD1257225D0071E6F3AF9ADE67F05590B45C6E", + "owner_funds": "6.617688680663627", + "quality": "352.7092203179974" + }, + { + "Account": "rN6jbxx4H6NxcnmkzBxQnbCWLECNKrgSSf", + "BookDirectory": "6EAB7C172DEFA430DBFAD120FDC373B5F5AF8B191649EC98570CC0B8E0E2C000", + "BookNode": "0000000000000000", + "Flags": 131072, + "LedgerEntryType": "Offer", + "OwnerNode": "0000000000000000", + "PreviousTxnID": "2E16ACFEAC2306E3B3483D445787F3496FACF9504F7A5E909620C1A73E2EDE54", + "PreviousTxnLgrSeq": 10558020, + "Sequence": 491, + "TakerGets": { + "currency": "BTC", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "0.5" + }, + "TakerPays": { + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "179.48" + }, + "index": "DA853913C8013C9471957349EDAEE4DF4846833B8CCB92008E2A8994E37BEF0D", + "owner_funds": "0.5", + "quality": "358.96", + "taker_gets_funded": { + "currency": "BTC", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "0.499001996007984" + }, + "taker_pays_funded": { + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "179.1217564870259" + } + }, + { + "Account": "rDVBvAQScXrGRGnzrxRrcJPeNLeLeUTAqE", + "BookDirectory": "6EAB7C172DEFA430DBFAD120FDC373B5F5AF8B191649EC98570CD2F24C9C145D", + "BookNode": "0000000000000000", + "Expiration": 472783299, + "Flags": 131072, + "LedgerEntryType": "Offer", + "OwnerNode": "00000000000003D2", + "PreviousTxnID": "B1B12E47043B4260223A2C4240D19E93526B55B1DB38DEED335DACE7C04FEB23", + "PreviousTxnLgrSeq": 10713534, + "Sequence": 35789, + "TakerGets": { + "currency": "BTC", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "0.8" + }, + "TakerPays": { + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "288.7710263794967" + }, + "index": "B89AD580E908F7337CCBB47A0BAAC6417EF13AC3465E34E8B7DD3BED016EA833", + "quality": "360.9637829743709" + } ] } diff --git a/test/fixtures/responses/getPaths.json b/test/fixtures/responses/getPaths.json deleted file mode 100644 index 610bb149..00000000 --- a/test/fixtures/responses/getPaths.json +++ /dev/null @@ -1,56 +0,0 @@ -[ - { - "source": { - "address": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "maxAmount": { - "currency": "JPY", - "value": "0.1117218827811721" - } - }, - "destination": { - "address": "rpZc4mVfWUif9CRoHRKKcmhu1nx2xktxBo", - "amount": { - "currency": "USD", - "counterparty": "rMH4UxPrbuMa1spCBR98hLLyNJp4d8p4tM", - "value": "100" - } - }, - "paths": "[[{\"account\":\"rMAz5ZnK73nyNUL4foAvaxdreczCkG3vA6\"},{\"currency\":\"USD\",\"issuer\":\"rMH4UxPrbuMa1spCBR98hLLyNJp4d8p4tM\"},{\"account\":\"rMH4UxPrbuMa1spCBR98hLLyNJp4d8p4tM\"}],[{\"account\":\"rMAz5ZnK73nyNUL4foAvaxdreczCkG3vA6\"},{\"currency\":\"XRP\"},{\"currency\":\"USD\",\"issuer\":\"rMH4UxPrbuMa1spCBR98hLLyNJp4d8p4tM\"},{\"account\":\"rMH4UxPrbuMa1spCBR98hLLyNJp4d8p4tM\"}],[{\"account\":\"rMAz5ZnK73nyNUL4foAvaxdreczCkG3vA6\"},{\"currency\":\"XRP\"},{\"currency\":\"USD\",\"issuer\":\"rpHgehzdpfWRXKvSv6duKvVuo1aZVimdaT\"},{\"account\":\"rpHgehzdpfWRXKvSv6duKvVuo1aZVimdaT\"},{\"account\":\"rMH4UxPrbuMa1spCBR98hLLyNJp4d8p4tM\"}],[{\"account\":\"rMAz5ZnK73nyNUL4foAvaxdreczCkG3vA6\"},{\"currency\":\"XRP\"},{\"currency\":\"USD\",\"issuer\":\"rHHa9t2kLQyXRbdLkSzEgkzwf9unmFgZs9\"},{\"account\":\"rHHa9t2kLQyXRbdLkSzEgkzwf9unmFgZs9\"},{\"account\":\"rMH4UxPrbuMa1spCBR98hLLyNJp4d8p4tM\"}]]" - }, - { - "source": { - "address": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "maxAmount": { - "currency": "USD", - "value": "0.001002" - } - }, - "destination": { - "address": "rpZc4mVfWUif9CRoHRKKcmhu1nx2xktxBo", - "amount": { - "currency": "USD", - "counterparty": "rMH4UxPrbuMa1spCBR98hLLyNJp4d8p4tM", - "value": "100" - } - }, - "paths": "[[{\"account\":\"rMH4UxPrbuMa1spCBR98hLLyNJp4d8p4tM\"}],[{\"account\":\"rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q\"},{\"currency\":\"USD\",\"issuer\":\"rMH4UxPrbuMa1spCBR98hLLyNJp4d8p4tM\"},{\"account\":\"rMH4UxPrbuMa1spCBR98hLLyNJp4d8p4tM\"}],[{\"account\":\"rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q\"},{\"currency\":\"XRP\"},{\"currency\":\"USD\",\"issuer\":\"rMH4UxPrbuMa1spCBR98hLLyNJp4d8p4tM\"},{\"account\":\"rMH4UxPrbuMa1spCBR98hLLyNJp4d8p4tM\"}],[{\"account\":\"rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q\"},{\"currency\":\"XRP\"},{\"currency\":\"USD\",\"issuer\":\"rpHgehzdpfWRXKvSv6duKvVuo1aZVimdaT\"},{\"account\":\"rpHgehzdpfWRXKvSv6duKvVuo1aZVimdaT\"},{\"account\":\"rMH4UxPrbuMa1spCBR98hLLyNJp4d8p4tM\"}]]" - }, - { - "source": { - "address": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "maxAmount": { - "currency": "XRP", - "value": "0.207669" - } - }, - "destination": { - "address": "rpZc4mVfWUif9CRoHRKKcmhu1nx2xktxBo", - "amount": { - "currency": "USD", - "counterparty": "rMH4UxPrbuMa1spCBR98hLLyNJp4d8p4tM", - "value": "100" - } - }, - "paths": "[[{\"currency\":\"USD\",\"issuer\":\"rMH4UxPrbuMa1spCBR98hLLyNJp4d8p4tM\"},{\"account\":\"rMH4UxPrbuMa1spCBR98hLLyNJp4d8p4tM\"}],[{\"currency\":\"USD\",\"issuer\":\"rsP3mgGb2tcYUrxiLFiHJiQXhsziegtwBc\"},{\"account\":\"rsP3mgGb2tcYUrxiLFiHJiQXhsziegtwBc\"},{\"account\":\"rf9X8QoYnWLHMHuDfjkmRcD2UE5qX5aYV\"},{\"account\":\"rMH4UxPrbuMa1spCBR98hLLyNJp4d8p4tM\"}],[{\"currency\":\"USD\",\"issuer\":\"rDVdJ62foD1sn7ZpxtXyptdkBSyhsQGviT\"},{\"account\":\"rDVdJ62foD1sn7ZpxtXyptdkBSyhsQGviT\"},{\"account\":\"rfQPFZ3eLcaSUKjUy7A3LAmDNM4F9Hz9j1\"},{\"account\":\"rMH4UxPrbuMa1spCBR98hLLyNJp4d8p4tM\"}],[{\"currency\":\"USD\",\"issuer\":\"rpHgehzdpfWRXKvSv6duKvVuo1aZVimdaT\"},{\"account\":\"rpHgehzdpfWRXKvSv6duKvVuo1aZVimdaT\"},{\"account\":\"rMH4UxPrbuMa1spCBR98hLLyNJp4d8p4tM\"}]]" - } -] diff --git a/test/fixtures/responses/getPathsSendUsd.json b/test/fixtures/responses/getPathsSendUsd.json deleted file mode 100644 index f4d9c50d..00000000 --- a/test/fixtures/responses/getPathsSendUsd.json +++ /dev/null @@ -1,19 +0,0 @@ -[ - { - "source": { - "address": "rpZc4mVfWUif9CRoHRKKcmhu1nx2xktxBo", - "maxAmount": { - "currency": "USD", - "value": "0.000001002" - } - }, - "destination": { - "address": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "amount": { - "value": "0.000001", - "currency": "USD" - } - }, - "paths": "[[{\"account\":\"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B\"}],[{\"account\":\"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B\"},{\"account\":\"rLMJ4db4uwHcd6NHg6jvTaYb8sH5Gy4tg5\"},{\"account\":\"rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun\"}],[{\"account\":\"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B\"},{\"currency\":\"USD\",\"issuer\":\"rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun\"},{\"account\":\"rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun\"}],[{\"account\":\"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B\"},{\"account\":\"rLMJ4db4uwHcd6NHg6jvTaYb8sH5Gy4tg5\"},{\"account\":\"r9vbV3EHvXWjSkeQ6CAcYVPGeq7TuiXY2X\"}]]" - } -] diff --git a/test/fixtures/responses/getPathsXrpToXrp.json b/test/fixtures/responses/getPathsXrpToXrp.json deleted file mode 100644 index d4fbda31..00000000 --- a/test/fixtures/responses/getPathsXrpToXrp.json +++ /dev/null @@ -1,19 +0,0 @@ -[ - { - "source": { - "address": "rwBYyfufTzk77zUSKEu4MvixfarC35av1J", - "maxAmount": { - "currency": "XRP", - "value": "0.000002" - } - }, - "destination": { - "address": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "amount": { - "value": "0.000002", - "currency": "XRP" - } - }, - "paths": "[]" - } -] diff --git a/test/fixtures/responses/index.ts b/test/fixtures/responses/index.ts index cd853439..8c1873c2 100644 --- a/test/fixtures/responses/index.ts +++ b/test/fixtures/responses/index.ts @@ -16,10 +16,7 @@ import withStateAsHashes from './getLedgerWithStateAsHashes.json' import normalOrderBook from './getOrderbook.json' import withXRPOrderBook from './getOrderbookWithXrp.json' import getOrders from './getOrders.json' -import XrpToUsd from './getPaths.json' import sendAll from './getPathsSendAll.json' -import UsdToUsd from './getPathsSendUsd.json' -import XrpToXrp from './getPathsXrpToXrp.json' import normalPayChan from './getPaymentChannel.json' import fullPayChan from './getPaymentChannelFull.json' import getServerInfo from './getServerInfo.json' @@ -70,9 +67,6 @@ import trustlineNoQuality from './getTransactionTrustNoQuality.json' import trustlineFrozenOff from './getTransactionTrustSetFrozenOff.json' import withMemo from './getTransactionWithMemo.json' import withMemos from './getTransactionWithMemos.json' -import filteredLines from './getTrustlines.json' -import allTrustlines from './getTrustlinesAll.json' -import ripplingDisabledLines from './getTrustlinesRipplingDisabled.json' import ledgerEvent from './ledgerEvent.json' import normalCheckCancel from './prepareCheckCancel.json' import ticketCheckCancel from './prepareCheckCancelTicket.json' @@ -145,11 +139,6 @@ import escrowSign from './signEscrow.json' import signPaymentChannelClaim from './signPaymentChannelClaim.json' import ticketSign from './signTicket.json' import submit from './submit.json' -import trustlineItems from './trustlineItem.json' - -function buildList(options: { item: any; count: number }): any[] { - return new Array(options.count).fill(options.item) -} const getPaymentChannel = { normal: normalPayChan, @@ -162,9 +151,6 @@ const getOrderbook = { } const getPaths = { - XrpToUsd, - XrpToXrp, - UsdToUsd, sendAll, } @@ -220,16 +206,6 @@ const getTransactions = { one: oneTransaction, } -const getTrustlines = { - filtered: filteredLines, - moreThan400Items: buildList({ - item: trustlineItems, - count: 401, - }), - all: allTrustlines, - ripplingDisabled: ripplingDisabledLines, -} - const getLedger = { header, headerByHash, @@ -377,7 +353,6 @@ const responses = { getPaths, getTransaction, getTransactions, - getTrustlines, getLedger, prepareOrder, prepareOrderCancellation,