From b81c1dab35b00496537e2a9f19a1e676a6a2717a Mon Sep 17 00:00:00 2001 From: Mayukha Vadari Date: Fri, 6 Aug 2021 13:18:53 -0400 Subject: [PATCH] fix: ledger version in `getTrustlines` (#1505) * fix: correctly propagate options.ledgerVersion * test: verify that `account_lines` uses correct `ledger_index` --- src/ledger/trustlines.ts | 2 +- test/api/getTrustlines/index.ts | 9 +++++++++ test/mock-rippled.ts | 6 +++++- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/ledger/trustlines.ts b/src/ledger/trustlines.ts index 310dd4fe..a1387bd9 100644 --- a/src/ledger/trustlines.ts +++ b/src/ledger/trustlines.ts @@ -31,7 +31,7 @@ async function getTrustlines( // 2. Make Request const responses = await this._requestAll('account_lines', { account: address, - ledger_index: await this.getLedgerVersion(), + ledger_index: options.ledgerVersion ?? await this.getLedgerVersion(), limit: options.limit, peer: options.counterparty }) diff --git a/test/api/getTrustlines/index.ts b/test/api/getTrustlines/index.ts index d1a15a25..405bf27f 100644 --- a/test/api/getTrustlines/index.ts +++ b/test/api/getTrustlines/index.ts @@ -37,4 +37,13 @@ export default { 'getTrustlines' ) }, + + 'getTrustlines - ledger version option': async (api, address) => { + const result = await api.getTrustlines(addresses.FOURTH_ACCOUNT, {ledgerVersion: 5}) + assertResultMatch( + result, + RESPONSE_FIXTURES.moreThan400Items, + 'getTrustlines' + ) + }, } diff --git a/test/mock-rippled.ts b/test/mock-rippled.ts index 677013ca..5b299e48 100644 --- a/test/mock-rippled.ts +++ b/test/mock-rippled.ts @@ -669,7 +669,11 @@ export function createMockRippled(port) { } else if (request.account === addresses.THIRD_ACCOUNT) { conn.send(accountLinesResponse.manyItems(request)) } else if (request.account === addresses.FOURTH_ACCOUNT) { - conn.send(accountLinesResponse.ripplingDisabled(request)) + if (request.ledger_index === 5) { + conn.send(accountLinesResponse.manyItems(request)) + } else { + conn.send(accountLinesResponse.ripplingDisabled(request)) + } } else if (request.account === addresses.NOTFOUND) { conn.send(createResponse(request, fixtures.account_info.notfound)) } else {