@orderly.network/hooks 0.0.93 → 0.0.94
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +38 -3
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +39 -4
- package/dist/index.mjs.map +1 -1
- package/package.json +7 -7
package/dist/index.js
CHANGED
|
@@ -666,6 +666,14 @@ var reduceItems = (depth, level, data, asks = false) => {
|
|
|
666
666
|
} else {
|
|
667
667
|
priceKey = new utils.Decimal(Math.floor(price / depth)).mul(depth).toNumber();
|
|
668
668
|
}
|
|
669
|
+
if (depth < 1 && depth > 0) {
|
|
670
|
+
const priceStr = price.toString();
|
|
671
|
+
const index = priceStr.indexOf(".");
|
|
672
|
+
const decimal = priceStr.slice(index + 1);
|
|
673
|
+
const decimalDepth = depth.toString().slice(2).length;
|
|
674
|
+
const decimalStr = decimal.slice(0, ramda.min(decimal.length, decimalDepth));
|
|
675
|
+
priceKey = new utils.Decimal(priceStr.slice(0, index) + "." + decimalStr).toNumber();
|
|
676
|
+
}
|
|
669
677
|
if (prices.has(priceKey)) {
|
|
670
678
|
const item = prices.get(priceKey);
|
|
671
679
|
const itemPrice = new utils.Decimal(item[1]).add(quantity).toNumber();
|
|
@@ -686,8 +694,32 @@ var reduceItems = (depth, level, data, asks = false) => {
|
|
|
686
694
|
return result;
|
|
687
695
|
};
|
|
688
696
|
var reduceOrderbook = (depth, level, data) => {
|
|
689
|
-
|
|
690
|
-
|
|
697
|
+
let asks = reduceItems(depth, level, data.asks, true);
|
|
698
|
+
let bids = reduceItems(depth, level, data.bids);
|
|
699
|
+
if (asks.length !== 0 && bids.length !== 0 && asks[0][0] <= bids[0][0]) {
|
|
700
|
+
if (asks.length === 1) {
|
|
701
|
+
const [price, qty, newQuantity] = asks[0];
|
|
702
|
+
asks.shift();
|
|
703
|
+
asks.push([price + (depth === void 0 ? 0 : depth), qty, newQuantity]);
|
|
704
|
+
} else {
|
|
705
|
+
const [bidPrice] = bids[0];
|
|
706
|
+
while (asks.length > 0) {
|
|
707
|
+
const [askPrice, askQty, newQuantity] = asks[0];
|
|
708
|
+
if (askPrice <= bidPrice) {
|
|
709
|
+
asks.shift();
|
|
710
|
+
for (let index = 0; index < asks.length; index++) {
|
|
711
|
+
if (index === 0) {
|
|
712
|
+
asks[index][1] += askQty;
|
|
713
|
+
}
|
|
714
|
+
asks[index][2] += newQuantity;
|
|
715
|
+
}
|
|
716
|
+
} else {
|
|
717
|
+
break;
|
|
718
|
+
}
|
|
719
|
+
}
|
|
720
|
+
}
|
|
721
|
+
}
|
|
722
|
+
asks = asks.reverse();
|
|
691
723
|
return {
|
|
692
724
|
asks: asks.length < level ? paddingFn(level - asks.length).concat(asks) : asks,
|
|
693
725
|
bids: bids.length < level ? bids.concat(paddingFn(level - bids.length)) : bids
|
|
@@ -830,7 +862,10 @@ var useOrderbookStream = (symbol, initial = INIT_DATA, options) => {
|
|
|
830
862
|
React2.useEffect(() => {
|
|
831
863
|
prevMiddlePrice.current = middlePrice;
|
|
832
864
|
}, [middlePrice]);
|
|
833
|
-
const reducedData = reduceOrderbook(depth, level,
|
|
865
|
+
const reducedData = reduceOrderbook(depth, level, {
|
|
866
|
+
asks: [...data.asks],
|
|
867
|
+
bids: [...data.bids]
|
|
868
|
+
});
|
|
834
869
|
return [
|
|
835
870
|
{
|
|
836
871
|
asks: reducedData.asks.slice(-level),
|