mirror of
https://github.com/Xahau/xahau.js.git
synced 2025-11-20 20:25:48 +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;
|
offer.taker_gets_funded = fundedAmount;
|
||||||
|
|
||||||
var rate = Amount.from_json(offer.TakerPays)
|
var takerPaysValue = typeof offer.TakerPays === 'object'
|
||||||
.divide(Amount.from_json(offer.TakerGets));
|
? 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');
|
var takerPays = Amount.from_json(
|
||||||
takerPays.set_issuer('rrrrrrrrrrrrrrrrrrrrBZbvji');
|
takerPaysValue + '/000/rrrrrrrrrrrrrrrrrrrrBZbvji'
|
||||||
|
);
|
||||||
|
|
||||||
|
var takerGets = Amount.from_json(
|
||||||
|
takerGetsValue + '/000/rrrrrrrrrrrrrrrrrrrrBZbvji'
|
||||||
|
);
|
||||||
|
|
||||||
var fundedPays = Amount.from_json(
|
var fundedPays = Amount.from_json(
|
||||||
fundedAmount + '/XXX/rrrrrrrrrrrrrrrrrrrrBZbvji'
|
fundedAmount + '/000/rrrrrrrrrrrrrrrrrrrrBZbvji'
|
||||||
);
|
);
|
||||||
|
|
||||||
|
var rate = takerPays.divide(takerGets);
|
||||||
|
|
||||||
fundedPays = fundedPays.multiply(rate);
|
fundedPays = fundedPays.multiply(rate);
|
||||||
|
|
||||||
if (fundedPays.compareTo(takerPays) < 0) {
|
if (fundedPays.compareTo(takerPays) < 0) {
|
||||||
offer.taker_pays_funded = fundedPays.to_text();
|
offer.taker_pays_funded = fundedPays.to_json().value;
|
||||||
} else {
|
} else {
|
||||||
offer.taker_pays_funded = Amount.from_json(offer.TakerPays).to_text();
|
offer.taker_pays_funded = takerPays.to_json().value;
|
||||||
}
|
}
|
||||||
|
|
||||||
return offer;
|
return offer;
|
||||||
|
|||||||
@@ -369,12 +369,12 @@ describe('OrderBook', function() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
var offer = {
|
var offer = {
|
||||||
|
TakerGets: '100',
|
||||||
TakerPays: {
|
TakerPays: {
|
||||||
value: '123456',
|
value: '123456',
|
||||||
currency: 'BTC',
|
currency: 'BTC',
|
||||||
issuer: 'rrrrrrrrrrrrrrrrrrrrBZbvji'
|
issuer: 'rrrrrrrrrrrrrrrrrrrrBZbvji'
|
||||||
},
|
}
|
||||||
TakerGets: '100'
|
|
||||||
};
|
};
|
||||||
|
|
||||||
book.setFundedAmount(offer, '99');
|
book.setFundedAmount(offer, '99');
|
||||||
@@ -429,22 +429,22 @@ describe('OrderBook', function() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
var offer = {
|
var offer = {
|
||||||
TakerGets: '100',
|
TakerGets: {
|
||||||
TakerPays: {
|
|
||||||
value: '100.1234',
|
value: '100.1234',
|
||||||
currency: 'USD',
|
currency: 'USD',
|
||||||
issuer: 'rrrrrrrrrrrrrrrrrrrrBZbvji'
|
issuer: 'rrrrrrrrrrrrrrrrrrrrBZbvji'
|
||||||
}
|
},
|
||||||
|
TakerPays: '123'
|
||||||
};
|
};
|
||||||
|
|
||||||
book.setFundedAmount(offer, '99');
|
book.setFundedAmount(offer, '100');
|
||||||
|
|
||||||
var expected = {
|
var expected = {
|
||||||
TakerGets: offer.TakerGets,
|
TakerGets: offer.TakerGets,
|
||||||
TakerPays: offer.TakerPays,
|
TakerPays: offer.TakerPays,
|
||||||
is_fully_funded: false,
|
is_fully_funded: false,
|
||||||
taker_gets_funded: '99',
|
taker_gets_funded: '100',
|
||||||
taker_pays_funded: '99.122166'
|
taker_pays_funded: '122.8484050681459'
|
||||||
};
|
};
|
||||||
|
|
||||||
assert.deepEqual(offer, expected);
|
assert.deepEqual(offer, expected);
|
||||||
|
|||||||
Reference in New Issue
Block a user