diff --git a/src/api/transaction/trustline.js b/src/api/transaction/trustline.js index 27c98790..2e6e2ca7 100644 --- a/src/api/transaction/trustline.js +++ b/src/api/transaction/trustline.js @@ -12,7 +12,8 @@ const TrustSetFlags = { }; function convertQuality(quality) { - return (new BigNumber(quality)).shift(9).truncated().toNumber(); + return quality === undefined ? undefined : + (new BigNumber(quality)).shift(9).truncated().toNumber(); } function createTrustlineTransaction(account, trustline) { diff --git a/test/api-test.js b/test/api-test.js index 3d72af41..d65dc7de 100644 --- a/test/api-test.js +++ b/test/api-test.js @@ -93,10 +93,16 @@ describe('RippleAPI', function() { _.partial(checkResult, responses.prepareOrderCancellation, 'tx')); }); - it('prepareTrustline', function() { + it('prepareTrustline - simple', function() { return this.api.prepareTrustline( - address, requests.prepareTrustline, instructions).then( - _.partial(checkResult, responses.prepareTrustline, 'tx')); + address, requests.prepareTrustline.simple, instructions).then( + _.partial(checkResult, responses.prepareTrustline.simple, 'tx')); + }); + + it('prepareTrustline - complex', function() { + return this.api.prepareTrustline( + address, requests.prepareTrustline.complex, instructions).then( + _.partial(checkResult, responses.prepareTrustline.complex, 'tx')); }); it('prepareSettings', function() { diff --git a/test/fixtures/api/requests/index.js b/test/fixtures/api/requests/index.js index 1caab3fb..b94a9186 100644 --- a/test/fixtures/api/requests/index.js +++ b/test/fixtures/api/requests/index.js @@ -7,7 +7,10 @@ module.exports = { preparePaymentAllOptions: require('./prepare-payment-all-options'), preparePaymentNoCounterparty: require('./prepare-payment-no-counterparty'), prepareSettings: require('./prepare-settings'), - prepareTrustline: require('./prepare-trustline'), + prepareTrustline: { + simple: require('./prepare-trustline-simple'), + complex: require('./prepare-trustline') + }, sign: require('./sign'), getPaths: { normal: require('./getpaths/normal'), diff --git a/test/fixtures/api/requests/prepare-trustline-simple.json b/test/fixtures/api/requests/prepare-trustline-simple.json new file mode 100644 index 00000000..572e61cc --- /dev/null +++ b/test/fixtures/api/requests/prepare-trustline-simple.json @@ -0,0 +1,5 @@ +{ + "currency": "BTC", + "counterparty": "rMH4UxPrbuMa1spCBR98hLLyNJp4d8p4tM", + "limit": "0.10" +} diff --git a/test/fixtures/api/responses/index.js b/test/fixtures/api/responses/index.js index 15efa03d..cb0a17e4 100644 --- a/test/fixtures/api/responses/index.js +++ b/test/fixtures/api/responses/index.js @@ -42,7 +42,10 @@ module.exports = { setTransferRate: require('./prepare-settings-set-transfer-rate.json'), fieldClear: require('./prepare-settings-field-clear.json') }, - prepareTrustline: require('./prepare-trustline.json'), + prepareTrustline: { + simple: require('./prepare-trustline-simple.json'), + complex: require('./prepare-trustline.json') + }, sign: require('./sign.json'), submit: require('./submit.json') }; diff --git a/test/fixtures/api/responses/prepare-trustline-simple.json b/test/fixtures/api/responses/prepare-trustline-simple.json new file mode 100644 index 00000000..1d8bf0e6 --- /dev/null +++ b/test/fixtures/api/responses/prepare-trustline-simple.json @@ -0,0 +1,13 @@ +{ + "Flags": 0, + "TransactionType": "TrustSet", + "Account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "LimitAmount": { + "value": "0.1", + "currency": "BTC", + "issuer": "rMH4UxPrbuMa1spCBR98hLLyNJp4d8p4tM" + }, + "LastLedgerSequence": 8820051, + "Fee": "12", + "Sequence": 23 +}