mirror of
https://github.com/Xahau/xahau.js.git
synced 2026-04-29 15:37:50 +00:00
Merge pull request #263 from lumberj/feature/requestOffer
[FEATURE] Remote.prototype.requestOffer
This commit is contained in:
@@ -2159,6 +2159,44 @@ Remote.prototype.dirtyAccountRoot = function(account) {
|
||||
delete this.ledgers.current.account_root[account];
|
||||
};
|
||||
|
||||
/**
|
||||
* Get an Offer from the ledger
|
||||
*
|
||||
* @param {Object} options
|
||||
* @param {String|Number} options.ledger
|
||||
* @param {String} [options.account] - Required unless using options.index
|
||||
* @param {Number} [options.sequence] - Required unless using options.index
|
||||
* @param {String} [options.index] - Required only if options.account and options.sequence not provided
|
||||
*
|
||||
* @callback
|
||||
* @param {Error} error
|
||||
* @param {Object} message
|
||||
*
|
||||
* @return {Request}
|
||||
*/
|
||||
|
||||
Remote.prototype.requestOffer = function(options, callback) {
|
||||
|
||||
var request = this.requestLedgerEntry('offer');
|
||||
|
||||
if (options.account && options.sequence) {
|
||||
request.offerId(options.account, options.sequence);
|
||||
} else if (options.index) {
|
||||
request.offerIndex(options.index);
|
||||
}
|
||||
|
||||
request.ledgerSelect(options.ledger);
|
||||
|
||||
request.once('success', function(res) {
|
||||
request.emit('offer',res);
|
||||
});
|
||||
|
||||
request.callback(callback, 'offer');
|
||||
|
||||
return request;
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Get an account's balance
|
||||
*
|
||||
|
||||
@@ -838,5 +838,33 @@ describe('Remote', function () {
|
||||
assert.strictEqual(request.message.account_root, ADDRESS);
|
||||
assert.strictEqual(request.message.ledger_index, 'validated');
|
||||
});
|
||||
|
||||
it('request offer with ledger index', function() {
|
||||
var request = remote.requestOffer({account: ADDRESS, ledger: LEDGER_INDEX, sequence: 5});
|
||||
assert.strictEqual(request.message.command, 'ledger_entry');
|
||||
assert.strictEqual(request.message.offer.account, ADDRESS);
|
||||
assert.strictEqual(request.message.offer.seq, 5);
|
||||
assert.strictEqual(request.message.ledger_index, LEDGER_INDEX);
|
||||
});
|
||||
it('request offer with ledger hash', function() {
|
||||
var request = remote.requestOffer({account: ADDRESS, ledger: LEDGER_HASH, sequence: 5});
|
||||
assert.strictEqual(request.message.command, 'ledger_entry');
|
||||
assert.strictEqual(request.message.offer.account, ADDRESS);
|
||||
assert.strictEqual(request.message.offer.seq, 5);
|
||||
assert.strictEqual(request.message.ledger_hash, LEDGER_HASH);
|
||||
});
|
||||
it('request account balance with ledger identifier', function() {
|
||||
var request = remote.requestOffer({account: ADDRESS, ledger: 'validated', sequence: 5});
|
||||
assert.strictEqual(request.message.command, 'ledger_entry');
|
||||
assert.strictEqual(request.message.offer.account, ADDRESS);
|
||||
assert.strictEqual(request.message.offer.seq, 5);
|
||||
assert.strictEqual(request.message.ledger_index, 'validated');
|
||||
});
|
||||
it('request account balance with offer index', function() {
|
||||
var request = remote.requestOffer({ index: TRANSACTION_HASH, ledger: LEDGER_INDEX});
|
||||
assert.strictEqual(request.message.command, 'ledger_entry');
|
||||
assert.strictEqual(request.message.offer, TRANSACTION_HASH);
|
||||
assert.strictEqual(request.message.ledger_index, LEDGER_INDEX);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user