Skip to content

Commit 86ff315

Browse files
author
Chris Clark
committed
Fix parsing of quality for getTrustlines
1 parent 8d8a850 commit 86ff315

File tree

5 files changed

+15
-14
lines changed

5 files changed

+15
-14
lines changed

src/ledger/parse/account-trustline.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@ function parseAccountTrustline(trustline: Trustline): AccountTrustline {
2424
limit: trustline.limit,
2525
currency: trustline.currency,
2626
counterparty: trustline.account,
27-
qualityIn: trustline.quality_in || undefined,
28-
qualityOut: trustline.quality_out || undefined,
27+
qualityIn: utils.parseQuality(trustline.quality_in) || undefined,
28+
qualityOut: utils.parseQuality(trustline.quality_out) || undefined,
2929
ripplingDisabled: trustline.no_ripple || undefined,
3030
frozen: trustline.freeze || undefined,
3131
authorized: trustline.authorized || undefined

src/ledger/parse/trustline.js

+2-10
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
const assert = require('assert');
44
const utils = require('./utils');
55
const flags = utils.txFlags.TrustSet;
6-
const BigNumber = require('bignumber.js');
76

87
function parseFlag(flagsValue, trueValue, falseValue) {
98
if (flagsValue & trueValue) {
@@ -15,22 +14,15 @@ function parseFlag(flagsValue, trueValue, falseValue) {
1514
return undefined;
1615
}
1716

18-
function parseQuality(quality?: number) {
19-
if (typeof quality === 'number') {
20-
return (new BigNumber(quality)).shift(-9).toNumber();
21-
}
22-
return undefined;
23-
}
24-
2517
function parseTrustline(tx: Object): Object {
2618
assert(tx.TransactionType === 'TrustSet');
2719

2820
return utils.removeUndefined({
2921
limit: tx.LimitAmount.value,
3022
currency: tx.LimitAmount.currency,
3123
counterparty: tx.LimitAmount.issuer,
32-
qualityIn: parseQuality(tx.QualityIn),
33-
qualityOut: parseQuality(tx.QualityOut),
24+
qualityIn: utils.parseQuality(tx.QualityIn),
25+
qualityOut: utils.parseQuality(tx.QualityOut),
3426
ripplingDisabled: parseFlag(
3527
tx.Flags, flags.SetNoRipple, flags.ClearNoRipple),
3628
frozen: parseFlag(tx.Flags, flags.SetFreeze, flags.ClearFreeze),

src/ledger/parse/utils.js

+8
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,13 @@ function adjustQualityForXRP(
1717
(new BigNumber(quality)).shift(shift).toString();
1818
}
1919

20+
function parseQuality(quality: ?number) {
21+
if (typeof quality === 'number') {
22+
return (new BigNumber(quality)).shift(-9).toNumber();
23+
}
24+
return undefined;
25+
}
26+
2027
function parseTimestamp(rippleTime: number): string | void {
2128
return rippleTime ? utils.common.rippleTimeToISO8601(rippleTime) : undefined;
2229
}
@@ -80,6 +87,7 @@ function parseMemos(tx: Object): ?Array<Object> {
8087
}
8188

8289
module.exports = {
90+
parseQuality,
8391
parseOutcome,
8492
parseMemos,
8593
hexToString,

test/fixtures/responses/get-trustlines-all.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33
"specification": {
44
"limit": "0",
55
"currency": "ASP",
6-
"counterparty": "r3vi7mWxru9rJCxETCyA1CHvzL96eZWx5z"
6+
"counterparty": "r3vi7mWxru9rJCxETCyA1CHvzL96eZWx5z",
7+
"qualityIn": 1
78
},
89
"counterparty": {
910
"limit": "10"

test/fixtures/rippled/account-lines.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ module.exports.normal = function(request, options = {}) {
2222
currency: 'ASP',
2323
limit: '0',
2424
limit_peer: '10',
25-
quality_in: 0,
25+
quality_in: 1000000000,
2626
quality_out: 0
2727
},
2828
{

0 commit comments

Comments
 (0)