mirror of
https://github.com/Xahau/xahau.js.git
synced 2025-11-21 04:35:49 +00:00
Fix set funded amount with unfunded native currency
This commit is contained in:
@@ -384,24 +384,34 @@ OrderBook.prototype.setFundedAmount = function(offer, fundedAmount) {
|
||||
|
||||
offer.taker_gets_funded = fundedAmount;
|
||||
|
||||
var rate = Amount.from_json(offer.TakerPays)
|
||||
.divide(Amount.from_json(offer.TakerGets));
|
||||
var takerPaysValue = typeof offer.TakerPays === 'object'
|
||||
? offer.TakerPays.value
|
||||
: offer.TakerPays;
|
||||
|
||||
var takerPays = Amount.from_json(offer.TakerPays);
|
||||
var takerGetsValue = typeof offer.TakerGets === 'object'
|
||||
? offer.TakerGets.value
|
||||
: offer.TakerGets;
|
||||
|
||||
takerPays.set_currency('XXX');
|
||||
takerPays.set_issuer('rrrrrrrrrrrrrrrrrrrrBZbvji');
|
||||
var takerPays = Amount.from_json(
|
||||
takerPaysValue + '/000/rrrrrrrrrrrrrrrrrrrrBZbvji'
|
||||
);
|
||||
|
||||
var takerGets = Amount.from_json(
|
||||
takerGetsValue + '/000/rrrrrrrrrrrrrrrrrrrrBZbvji'
|
||||
);
|
||||
|
||||
var fundedPays = Amount.from_json(
|
||||
fundedAmount + '/XXX/rrrrrrrrrrrrrrrrrrrrBZbvji'
|
||||
fundedAmount + '/000/rrrrrrrrrrrrrrrrrrrrBZbvji'
|
||||
);
|
||||
|
||||
var rate = takerPays.divide(takerGets);
|
||||
|
||||
fundedPays = fundedPays.multiply(rate);
|
||||
|
||||
if (fundedPays.compareTo(takerPays) < 0) {
|
||||
offer.taker_pays_funded = fundedPays.to_text();
|
||||
offer.taker_pays_funded = fundedPays.to_json().value;
|
||||
} else {
|
||||
offer.taker_pays_funded = Amount.from_json(offer.TakerPays).to_text();
|
||||
offer.taker_pays_funded = takerPays.to_json().value;
|
||||
}
|
||||
|
||||
return offer;
|
||||
|
||||
@@ -369,12 +369,12 @@ describe('OrderBook', function() {
|
||||
});
|
||||
|
||||
var offer = {
|
||||
TakerGets: '100',
|
||||
TakerPays: {
|
||||
value: '123456',
|
||||
currency: 'BTC',
|
||||
issuer: 'rrrrrrrrrrrrrrrrrrrrBZbvji'
|
||||
},
|
||||
TakerGets: '100'
|
||||
}
|
||||
};
|
||||
|
||||
book.setFundedAmount(offer, '99');
|
||||
@@ -429,22 +429,22 @@ describe('OrderBook', function() {
|
||||
});
|
||||
|
||||
var offer = {
|
||||
TakerGets: '100',
|
||||
TakerPays: {
|
||||
TakerGets: {
|
||||
value: '100.1234',
|
||||
currency: 'USD',
|
||||
issuer: 'rrrrrrrrrrrrrrrrrrrrBZbvji'
|
||||
}
|
||||
},
|
||||
TakerPays: '123'
|
||||
};
|
||||
|
||||
book.setFundedAmount(offer, '99');
|
||||
book.setFundedAmount(offer, '100');
|
||||
|
||||
var expected = {
|
||||
TakerGets: offer.TakerGets,
|
||||
TakerPays: offer.TakerPays,
|
||||
is_fully_funded: false,
|
||||
taker_gets_funded: '99',
|
||||
taker_pays_funded: '99.122166'
|
||||
taker_gets_funded: '100',
|
||||
taker_pays_funded: '122.8484050681459'
|
||||
};
|
||||
|
||||
assert.deepEqual(offer, expected);
|
||||
|
||||
Reference in New Issue
Block a user