mirror of
https://github.com/Xahau/xahau.js.git
synced 2025-11-20 12:15:51 +00:00
fix parseTrustline for case when no QualityIn or QualityOut are set in transaction
This commit is contained in:
@@ -15,8 +15,11 @@ function parseFlag(flagsValue, trueValue, falseValue) {
|
|||||||
return undefined;
|
return undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
function parseQuality(quality) {
|
function parseQuality(quality?: number) {
|
||||||
return (new BigNumber(quality)).shift(-9).toNumber();
|
if (typeof quality === 'number') {
|
||||||
|
return (new BigNumber(quality)).shift(-9).toNumber();
|
||||||
|
}
|
||||||
|
return undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
function parseTrustline(tx: Object): Object {
|
function parseTrustline(tx: Object): Object {
|
||||||
|
|||||||
@@ -204,6 +204,14 @@ describe('RippleAPI', function() {
|
|||||||
'getTransaction'));
|
'getTransaction'));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('getTransaction - trustline no quality', function() {
|
||||||
|
const hash =
|
||||||
|
'BAF1C678323C37CCB7735550C379287667D8288C30F83148AD3C1CB019FC9002';
|
||||||
|
return this.api.getTransaction(hash).then(
|
||||||
|
_.partial(checkResult, responses.getTransaction.trustlineNoQuality,
|
||||||
|
'getTransaction'));
|
||||||
|
});
|
||||||
|
|
||||||
it('getTransaction - not validated', function() {
|
it('getTransaction - not validated', function() {
|
||||||
const hash =
|
const hash =
|
||||||
'4FB3ADF22F3C605E23FAEFAA185F3BD763C4692CAC490D9819D117CD33BFAA10';
|
'4FB3ADF22F3C605E23FAEFAA185F3BD763C4692CAC490D9819D117CD33BFAA10';
|
||||||
|
|||||||
27
test/fixtures/api/responses/get-transaction-trust-no-quality.json
vendored
Normal file
27
test/fixtures/api/responses/get-transaction-trust-no-quality.json
vendored
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
{
|
||||||
|
"type": "trustline",
|
||||||
|
"address": "r9UHu5CWni1qRY7Q4CfFZLGvXo2pGQy96b",
|
||||||
|
"sequence": 245,
|
||||||
|
"id": "BAF1C678323C37CCB7735550C379287667D8288C30F83148AD3C1CB019FC9002",
|
||||||
|
"specification": {
|
||||||
|
"limit": "1",
|
||||||
|
"currency": "USD",
|
||||||
|
"counterparty": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B"
|
||||||
|
},
|
||||||
|
"outcome": {
|
||||||
|
"result": "tesSUCCESS",
|
||||||
|
"timestamp": "2015-07-08T20:29:20.000Z",
|
||||||
|
"fee": "0.012",
|
||||||
|
"balanceChanges": {
|
||||||
|
"r9UHu5CWni1qRY7Q4CfFZLGvXo2pGQy96b": [
|
||||||
|
{
|
||||||
|
"currency": "XRP",
|
||||||
|
"value": "-0.012"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"orderbookChanges": {},
|
||||||
|
"ledgerVersion": 14518100,
|
||||||
|
"indexInLedger": 1
|
||||||
|
}
|
||||||
|
}
|
||||||
1
test/fixtures/api/responses/index.js
vendored
1
test/fixtures/api/responses/index.js
vendored
@@ -23,6 +23,7 @@ module.exports = {
|
|||||||
trackingOff: require('./get-transaction-settings-tracking-off.json'),
|
trackingOff: require('./get-transaction-settings-tracking-off.json'),
|
||||||
setRegularKey: require('./get-transaction-settings-set-regular-key.json'),
|
setRegularKey: require('./get-transaction-settings-set-regular-key.json'),
|
||||||
trustlineFrozenOff: require('./get-transaction-trust-set-frozen-off.json'),
|
trustlineFrozenOff: require('./get-transaction-trust-set-frozen-off.json'),
|
||||||
|
trustlineNoQuality: require('./get-transaction-trust-no-quality.json'),
|
||||||
notValidated: require('./get-transaction-not-validated.json')
|
notValidated: require('./get-transaction-not-validated.json')
|
||||||
},
|
},
|
||||||
getTransactions: require('./get-transactions.json'),
|
getTransactions: require('./get-transactions.json'),
|
||||||
|
|||||||
1
test/fixtures/api/rippled/index.js
vendored
1
test/fixtures/api/rippled/index.js
vendored
@@ -31,6 +31,7 @@ module.exports = {
|
|||||||
OfferCancel: require('./tx/offer-cancel.json'),
|
OfferCancel: require('./tx/offer-cancel.json'),
|
||||||
TrustSet: require('./tx/trust-set.json'),
|
TrustSet: require('./tx/trust-set.json'),
|
||||||
TrustSetFrozenOff: require('./tx/trust-set-frozen-off.json'),
|
TrustSetFrozenOff: require('./tx/trust-set-frozen-off.json'),
|
||||||
|
TrustSetNoQuality: require('./tx/trust-set-no-quality.json'),
|
||||||
NotFound: require('./tx/not-found.json'),
|
NotFound: require('./tx/not-found.json'),
|
||||||
NoLedgerIndex: require('./tx/no-ledger-index.json'),
|
NoLedgerIndex: require('./tx/no-ledger-index.json'),
|
||||||
NoLedgerFound: require('./tx/no-ledger-found.json'),
|
NoLedgerFound: require('./tx/no-ledger-found.json'),
|
||||||
|
|||||||
51
test/fixtures/api/rippled/tx/trust-set-no-quality.json
vendored
Normal file
51
test/fixtures/api/rippled/tx/trust-set-no-quality.json
vendored
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
{
|
||||||
|
"id": 0,
|
||||||
|
"result": {
|
||||||
|
"Account": "r9UHu5CWni1qRY7Q4CfFZLGvXo2pGQy96b",
|
||||||
|
"Fee": "12000",
|
||||||
|
"Flags": 0,
|
||||||
|
"LastLedgerSequence": 14518103,
|
||||||
|
"LimitAmount": {
|
||||||
|
"currency": "USD",
|
||||||
|
"issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",
|
||||||
|
"value": "1"
|
||||||
|
},
|
||||||
|
"Sequence": 245,
|
||||||
|
"SigningPubKey": "036A749E3B7187E43E8936E3D83A7030989325249E03803F12B7F64BAACABA6025",
|
||||||
|
"TransactionType": "TrustSet",
|
||||||
|
"TxnSignature": "3045022100AFE1ADDA62C7604495C8CBBE8308471E9F55C7D646571621541F6E1B66BA1EE30220108E914EB9DF876E9B525ADDBDD378DFFDEDF72CD9030FE76909CA2CE73FAA6D",
|
||||||
|
"date": 489702560,
|
||||||
|
"hash": "BAF1C678323C37CCB7735550C379287667D8288C30F83148AD3C1CB019FC9002",
|
||||||
|
"inLedger": 14518100,
|
||||||
|
"ledger_index": 14518100,
|
||||||
|
"meta": {
|
||||||
|
"AffectedNodes": [
|
||||||
|
{
|
||||||
|
"ModifiedNode": {
|
||||||
|
"FinalFields": {
|
||||||
|
"Account": "r9UHu5CWni1qRY7Q4CfFZLGvXo2pGQy96b",
|
||||||
|
"Balance": "44491746",
|
||||||
|
"Domain": "726970706C652E636F6D",
|
||||||
|
"Flags": 0,
|
||||||
|
"OwnerCount": 4,
|
||||||
|
"Sequence": 246
|
||||||
|
},
|
||||||
|
"LedgerEntryType": "AccountRoot",
|
||||||
|
"LedgerIndex": "4AD70690C6FF8A069F8AE00B09F70E9B732360026E8085050D314432091A59C9",
|
||||||
|
"PreviousFields": {
|
||||||
|
"Balance": "44503746",
|
||||||
|
"Sequence": 245
|
||||||
|
},
|
||||||
|
"PreviousTxnID": "7ACFD6E9A0EC17A9872212D81788658C886A19EF5D6CA9737241D91953E588CD",
|
||||||
|
"PreviousTxnLgrSeq": 14518099
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"TransactionIndex": 1,
|
||||||
|
"TransactionResult": "tesSUCCESS"
|
||||||
|
},
|
||||||
|
"validated": true
|
||||||
|
},
|
||||||
|
"status": "success",
|
||||||
|
"type": "response"
|
||||||
|
}
|
||||||
@@ -190,6 +190,9 @@ module.exports = function(port) {
|
|||||||
} else if (request.transaction ===
|
} else if (request.transaction ===
|
||||||
'FE72FAD0FA7CA904FB6C633A1666EDF0B9C73B2F5A4555D37EEF2739A78A531B') {
|
'FE72FAD0FA7CA904FB6C633A1666EDF0B9C73B2F5A4555D37EEF2739A78A531B') {
|
||||||
conn.send(createResponse(request, fixtures.tx.TrustSetFrozenOff));
|
conn.send(createResponse(request, fixtures.tx.TrustSetFrozenOff));
|
||||||
|
} else if (request.transaction ===
|
||||||
|
'BAF1C678323C37CCB7735550C379287667D8288C30F83148AD3C1CB019FC9002') {
|
||||||
|
conn.send(createResponse(request, fixtures.tx.TrustSetNoQuality));
|
||||||
} else if (request.transaction ===
|
} else if (request.transaction ===
|
||||||
'4FB3ADF22F3C605E23FAEFAA185F3BD763C4692CAC490D9819D117CD33BFAA10') {
|
'4FB3ADF22F3C605E23FAEFAA185F3BD763C4692CAC490D9819D117CD33BFAA10') {
|
||||||
conn.send(createResponse(request, fixtures.tx.NotValidated));
|
conn.send(createResponse(request, fixtures.tx.NotValidated));
|
||||||
|
|||||||
Reference in New Issue
Block a user