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,9 +15,12 @@ function parseFlag(flagsValue, trueValue, falseValue) {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
function parseQuality(quality) {
|
||||
function parseQuality(quality?: number) {
|
||||
if (typeof quality === 'number') {
|
||||
return (new BigNumber(quality)).shift(-9).toNumber();
|
||||
}
|
||||
return undefined;
|
||||
}
|
||||
|
||||
function parseTrustline(tx: Object): Object {
|
||||
assert(tx.TransactionType === 'TrustSet');
|
||||
|
||||
@@ -204,6 +204,14 @@ describe('RippleAPI', function() {
|
||||
'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() {
|
||||
const hash =
|
||||
'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'),
|
||||
setRegularKey: require('./get-transaction-settings-set-regular-key.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')
|
||||
},
|
||||
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'),
|
||||
TrustSet: require('./tx/trust-set.json'),
|
||||
TrustSetFrozenOff: require('./tx/trust-set-frozen-off.json'),
|
||||
TrustSetNoQuality: require('./tx/trust-set-no-quality.json'),
|
||||
NotFound: require('./tx/not-found.json'),
|
||||
NoLedgerIndex: require('./tx/no-ledger-index.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 ===
|
||||
'FE72FAD0FA7CA904FB6C633A1666EDF0B9C73B2F5A4555D37EEF2739A78A531B') {
|
||||
conn.send(createResponse(request, fixtures.tx.TrustSetFrozenOff));
|
||||
} else if (request.transaction ===
|
||||
'BAF1C678323C37CCB7735550C379287667D8288C30F83148AD3C1CB019FC9002') {
|
||||
conn.send(createResponse(request, fixtures.tx.TrustSetNoQuality));
|
||||
} else if (request.transaction ===
|
||||
'4FB3ADF22F3C605E23FAEFAA185F3BD763C4692CAC490D9819D117CD33BFAA10') {
|
||||
conn.send(createResponse(request, fixtures.tx.NotValidated));
|
||||
|
||||
Reference in New Issue
Block a user