@orderly.network/hooks 2.1.2 → 2.1.3
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.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +137 -134
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +137 -134
- package/dist/index.mjs.map +1 -1
- package/package.json +10 -10
package/dist/index.d.mts
CHANGED
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -61,9 +61,9 @@ var __export = (target, all) => {
|
|
|
61
61
|
// src/version.ts
|
|
62
62
|
if (typeof window !== "undefined") {
|
|
63
63
|
window.__ORDERLY_VERSION__ = window.__ORDERLY_VERSION__ || {};
|
|
64
|
-
window.__ORDERLY_VERSION__["@orderly.network/hooks"] = "2.1.
|
|
64
|
+
window.__ORDERLY_VERSION__["@orderly.network/hooks"] = "2.1.3";
|
|
65
65
|
}
|
|
66
|
-
var version_default = "2.1.
|
|
66
|
+
var version_default = "2.1.3";
|
|
67
67
|
var fetcher = (url, init2 = {}, queryOptions) => net.get(url, init2, queryOptions?.formatter);
|
|
68
68
|
var OrderlyContext = React.createContext({
|
|
69
69
|
// configStore: new MemoryConfigStore(),
|
|
@@ -1948,6 +1948,112 @@ var useCalculatorService = () => {
|
|
|
1948
1948
|
});
|
|
1949
1949
|
return calculatorService;
|
|
1950
1950
|
};
|
|
1951
|
+
|
|
1952
|
+
// src/orderly/orderbook.service.ts
|
|
1953
|
+
var defaultRawOrderBook = {
|
|
1954
|
+
asks: [],
|
|
1955
|
+
bids: [],
|
|
1956
|
+
ts: 0
|
|
1957
|
+
};
|
|
1958
|
+
var OrderbookService = class _OrderbookService {
|
|
1959
|
+
constructor() {
|
|
1960
|
+
this.bufferedOrderBookUpdates = {};
|
|
1961
|
+
this.rawOrderBook = {};
|
|
1962
|
+
}
|
|
1963
|
+
static getInstance() {
|
|
1964
|
+
if (!this.instance) {
|
|
1965
|
+
this.instance = new _OrderbookService();
|
|
1966
|
+
}
|
|
1967
|
+
return this.instance;
|
|
1968
|
+
}
|
|
1969
|
+
sortBufferedOrderBookUpdates(symbol) {
|
|
1970
|
+
this.bufferedOrderBookUpdates[symbol]?.sort((a, b) => a.ts - b.ts);
|
|
1971
|
+
}
|
|
1972
|
+
applyUpdateToRawOrderBook(symbol, update) {
|
|
1973
|
+
const rawOrderBook = this.rawOrderBook[symbol];
|
|
1974
|
+
if (!rawOrderBook || rawOrderBook.ts > update.prevTs) {
|
|
1975
|
+
return;
|
|
1976
|
+
}
|
|
1977
|
+
const askMap = /* @__PURE__ */ new Map();
|
|
1978
|
+
const bidMap = /* @__PURE__ */ new Map();
|
|
1979
|
+
rawOrderBook.asks.forEach((ask) => askMap.set(ask[0], ask[1]));
|
|
1980
|
+
rawOrderBook.bids.forEach((bid) => bidMap.set(bid[0], bid[1]));
|
|
1981
|
+
update.asks.forEach((ask) => ask[1] === 0 ? askMap.delete(ask[0]) : askMap.set(ask[0], ask[1]));
|
|
1982
|
+
update.bids.forEach((bid) => bid[1] === 0 ? bidMap.delete(bid[0]) : bidMap.set(bid[0], bid[1]));
|
|
1983
|
+
rawOrderBook.asks = Array.from(askMap.entries()).sort((a, b) => a[0] - b[0]);
|
|
1984
|
+
rawOrderBook.bids = Array.from(bidMap.entries()).sort((a, b) => b[0] - a[0]);
|
|
1985
|
+
rawOrderBook.ts = update.ts;
|
|
1986
|
+
}
|
|
1987
|
+
applyBufferedUpdatesToRawOrderBooks(symbol) {
|
|
1988
|
+
this.bufferedOrderBookUpdates[symbol]?.forEach((update) => this.applyUpdateToRawOrderBook(symbol, update));
|
|
1989
|
+
}
|
|
1990
|
+
deleteBufferedOrderBookUpdates(symbol) {
|
|
1991
|
+
delete this.bufferedOrderBookUpdates[symbol];
|
|
1992
|
+
}
|
|
1993
|
+
commitOrderBook(symbol) {
|
|
1994
|
+
const rawOrderBook = this.rawOrderBook[symbol];
|
|
1995
|
+
if (!rawOrderBook) {
|
|
1996
|
+
return;
|
|
1997
|
+
}
|
|
1998
|
+
}
|
|
1999
|
+
pushUpdateToBuffer(symbol, update) {
|
|
2000
|
+
if (this.bufferedOrderBookUpdates[symbol] === void 0) {
|
|
2001
|
+
this.bufferedOrderBookUpdates[symbol] = [];
|
|
2002
|
+
}
|
|
2003
|
+
const buffer = this.bufferedOrderBookUpdates[symbol];
|
|
2004
|
+
if (buffer.length > 0) {
|
|
2005
|
+
const lastUpdate = buffer[buffer.length - 1];
|
|
2006
|
+
if (lastUpdate.ts !== update.prevTs) {
|
|
2007
|
+
this.bufferedOrderBookUpdates[symbol] = [];
|
|
2008
|
+
}
|
|
2009
|
+
}
|
|
2010
|
+
this.bufferedOrderBookUpdates[symbol].push(update);
|
|
2011
|
+
}
|
|
2012
|
+
isValidFullOrderBook(symbol, currentTs) {
|
|
2013
|
+
if ((this.bufferedOrderBookUpdates[symbol]?.length ?? 0) !== 0) {
|
|
2014
|
+
const earliestUpdates = this.bufferedOrderBookUpdates[symbol][0];
|
|
2015
|
+
return earliestUpdates.prevTs <= currentTs;
|
|
2016
|
+
}
|
|
2017
|
+
return true;
|
|
2018
|
+
}
|
|
2019
|
+
setFullOrderbook(symbol, rawOrderbook) {
|
|
2020
|
+
const { ts } = rawOrderbook;
|
|
2021
|
+
this.rawOrderBook[symbol] = rawOrderbook;
|
|
2022
|
+
this.sortBufferedOrderBookUpdates(symbol);
|
|
2023
|
+
if (this.isValidFullOrderBook(symbol, ts)) {
|
|
2024
|
+
this.applyBufferedUpdatesToRawOrderBooks(symbol);
|
|
2025
|
+
}
|
|
2026
|
+
}
|
|
2027
|
+
updateOrderbook(symbol, update, callback) {
|
|
2028
|
+
const { asks, bids, prevTs, ts } = update;
|
|
2029
|
+
const rawOrderBook = this.rawOrderBook[symbol];
|
|
2030
|
+
if (!rawOrderBook) {
|
|
2031
|
+
return;
|
|
2032
|
+
}
|
|
2033
|
+
const currentTs = rawOrderBook.ts;
|
|
2034
|
+
if (currentTs === 0) {
|
|
2035
|
+
this.pushUpdateToBuffer(symbol, { asks, bids, prevTs, ts });
|
|
2036
|
+
return;
|
|
2037
|
+
}
|
|
2038
|
+
if (prevTs !== currentTs) {
|
|
2039
|
+
this.pushUpdateToBuffer(symbol, { asks, bids, prevTs, ts });
|
|
2040
|
+
if (callback) {
|
|
2041
|
+
callback();
|
|
2042
|
+
}
|
|
2043
|
+
return;
|
|
2044
|
+
}
|
|
2045
|
+
this.applyUpdateToRawOrderBook(symbol, update);
|
|
2046
|
+
this.deleteBufferedOrderBookUpdates(symbol);
|
|
2047
|
+
}
|
|
2048
|
+
getRawOrderbook(symbol) {
|
|
2049
|
+
return this.rawOrderBook[symbol];
|
|
2050
|
+
}
|
|
2051
|
+
resetOrderBook(symbol) {
|
|
2052
|
+
this.rawOrderBook[symbol] = defaultRawOrderBook;
|
|
2053
|
+
}
|
|
2054
|
+
};
|
|
2055
|
+
var orderBookService = OrderbookService.getInstance();
|
|
2056
|
+
var orderbook_service_default = orderBookService;
|
|
1951
2057
|
var useMarkPrice = (symbol) => {
|
|
1952
2058
|
const ws = useWS();
|
|
1953
2059
|
const [price, setPrice] = React.useState(0);
|
|
@@ -1963,6 +2069,13 @@ var useMarkPrice = (symbol) => {
|
|
|
1963
2069
|
}, [symbol]);
|
|
1964
2070
|
return { data: price };
|
|
1965
2071
|
};
|
|
2072
|
+
var useSymbolsInfo = () => {
|
|
2073
|
+
const symbolsInfo = useAppStore((state) => state.symbolsInfo);
|
|
2074
|
+
return React.useMemo(
|
|
2075
|
+
() => createGetter({ ...symbolsInfo }),
|
|
2076
|
+
[symbolsInfo]
|
|
2077
|
+
);
|
|
2078
|
+
};
|
|
1966
2079
|
var useIndexPrice = (symbol) => {
|
|
1967
2080
|
symbol = symbol.replace("PERP", "SPOT");
|
|
1968
2081
|
const ws = useWS();
|
|
@@ -2104,119 +2217,6 @@ var useTickerStream = (symbol) => {
|
|
|
2104
2217
|
}, [info, symbol, ticker, futures, openInterest]);
|
|
2105
2218
|
return value;
|
|
2106
2219
|
};
|
|
2107
|
-
var useSymbolsInfo = () => {
|
|
2108
|
-
const symbolsInfo = useAppStore((state) => state.symbolsInfo);
|
|
2109
|
-
return React.useMemo(
|
|
2110
|
-
() => createGetter({ ...symbolsInfo }),
|
|
2111
|
-
[symbolsInfo]
|
|
2112
|
-
);
|
|
2113
|
-
};
|
|
2114
|
-
|
|
2115
|
-
// src/orderly/orderbook.service.ts
|
|
2116
|
-
var defaultRawOrderBook = {
|
|
2117
|
-
asks: [],
|
|
2118
|
-
bids: [],
|
|
2119
|
-
ts: 0
|
|
2120
|
-
};
|
|
2121
|
-
var OrderbookService = class _OrderbookService {
|
|
2122
|
-
constructor() {
|
|
2123
|
-
this.bufferedOrderBookUpdates = {};
|
|
2124
|
-
this.rawOrderBook = {};
|
|
2125
|
-
}
|
|
2126
|
-
static getInstance() {
|
|
2127
|
-
if (!this.instance) {
|
|
2128
|
-
this.instance = new _OrderbookService();
|
|
2129
|
-
}
|
|
2130
|
-
return this.instance;
|
|
2131
|
-
}
|
|
2132
|
-
sortBufferedOrderBookUpdates(symbol) {
|
|
2133
|
-
this.bufferedOrderBookUpdates[symbol]?.sort((a, b) => a.ts - b.ts);
|
|
2134
|
-
}
|
|
2135
|
-
applyUpdateToRawOrderBook(symbol, update) {
|
|
2136
|
-
const rawOrderBook = this.rawOrderBook[symbol];
|
|
2137
|
-
if (!rawOrderBook || rawOrderBook.ts > update.prevTs) {
|
|
2138
|
-
return;
|
|
2139
|
-
}
|
|
2140
|
-
const askMap = /* @__PURE__ */ new Map();
|
|
2141
|
-
const bidMap = /* @__PURE__ */ new Map();
|
|
2142
|
-
rawOrderBook.asks.forEach((ask) => askMap.set(ask[0], ask[1]));
|
|
2143
|
-
rawOrderBook.bids.forEach((bid) => bidMap.set(bid[0], bid[1]));
|
|
2144
|
-
update.asks.forEach((ask) => ask[1] === 0 ? askMap.delete(ask[0]) : askMap.set(ask[0], ask[1]));
|
|
2145
|
-
update.bids.forEach((bid) => bid[1] === 0 ? bidMap.delete(bid[0]) : bidMap.set(bid[0], bid[1]));
|
|
2146
|
-
rawOrderBook.asks = Array.from(askMap.entries()).sort((a, b) => a[0] - b[0]);
|
|
2147
|
-
rawOrderBook.bids = Array.from(bidMap.entries()).sort((a, b) => b[0] - a[0]);
|
|
2148
|
-
rawOrderBook.ts = update.ts;
|
|
2149
|
-
}
|
|
2150
|
-
applyBufferedUpdatesToRawOrderBooks(symbol) {
|
|
2151
|
-
this.bufferedOrderBookUpdates[symbol]?.forEach((update) => this.applyUpdateToRawOrderBook(symbol, update));
|
|
2152
|
-
}
|
|
2153
|
-
deleteBufferedOrderBookUpdates(symbol) {
|
|
2154
|
-
delete this.bufferedOrderBookUpdates[symbol];
|
|
2155
|
-
}
|
|
2156
|
-
commitOrderBook(symbol) {
|
|
2157
|
-
const rawOrderBook = this.rawOrderBook[symbol];
|
|
2158
|
-
if (!rawOrderBook) {
|
|
2159
|
-
return;
|
|
2160
|
-
}
|
|
2161
|
-
}
|
|
2162
|
-
pushUpdateToBuffer(symbol, update) {
|
|
2163
|
-
if (this.bufferedOrderBookUpdates[symbol] === void 0) {
|
|
2164
|
-
this.bufferedOrderBookUpdates[symbol] = [];
|
|
2165
|
-
}
|
|
2166
|
-
const buffer = this.bufferedOrderBookUpdates[symbol];
|
|
2167
|
-
if (buffer.length > 0) {
|
|
2168
|
-
const lastUpdate = buffer[buffer.length - 1];
|
|
2169
|
-
if (lastUpdate.ts !== update.prevTs) {
|
|
2170
|
-
this.bufferedOrderBookUpdates[symbol] = [];
|
|
2171
|
-
}
|
|
2172
|
-
}
|
|
2173
|
-
this.bufferedOrderBookUpdates[symbol].push(update);
|
|
2174
|
-
}
|
|
2175
|
-
isValidFullOrderBook(symbol, currentTs) {
|
|
2176
|
-
if ((this.bufferedOrderBookUpdates[symbol]?.length ?? 0) !== 0) {
|
|
2177
|
-
const earliestUpdates = this.bufferedOrderBookUpdates[symbol][0];
|
|
2178
|
-
return earliestUpdates.prevTs <= currentTs;
|
|
2179
|
-
}
|
|
2180
|
-
return true;
|
|
2181
|
-
}
|
|
2182
|
-
setFullOrderbook(symbol, rawOrderbook) {
|
|
2183
|
-
const { ts } = rawOrderbook;
|
|
2184
|
-
this.rawOrderBook[symbol] = rawOrderbook;
|
|
2185
|
-
this.sortBufferedOrderBookUpdates(symbol);
|
|
2186
|
-
if (this.isValidFullOrderBook(symbol, ts)) {
|
|
2187
|
-
this.applyBufferedUpdatesToRawOrderBooks(symbol);
|
|
2188
|
-
}
|
|
2189
|
-
}
|
|
2190
|
-
updateOrderbook(symbol, update, callback) {
|
|
2191
|
-
const { asks, bids, prevTs, ts } = update;
|
|
2192
|
-
const rawOrderBook = this.rawOrderBook[symbol];
|
|
2193
|
-
if (!rawOrderBook) {
|
|
2194
|
-
return;
|
|
2195
|
-
}
|
|
2196
|
-
const currentTs = rawOrderBook.ts;
|
|
2197
|
-
if (currentTs === 0) {
|
|
2198
|
-
this.pushUpdateToBuffer(symbol, { asks, bids, prevTs, ts });
|
|
2199
|
-
return;
|
|
2200
|
-
}
|
|
2201
|
-
if (prevTs !== currentTs) {
|
|
2202
|
-
this.pushUpdateToBuffer(symbol, { asks, bids, prevTs, ts });
|
|
2203
|
-
if (callback) {
|
|
2204
|
-
callback();
|
|
2205
|
-
}
|
|
2206
|
-
return;
|
|
2207
|
-
}
|
|
2208
|
-
this.applyUpdateToRawOrderBook(symbol, update);
|
|
2209
|
-
this.deleteBufferedOrderBookUpdates(symbol);
|
|
2210
|
-
}
|
|
2211
|
-
getRawOrderbook(symbol) {
|
|
2212
|
-
return this.rawOrderBook[symbol];
|
|
2213
|
-
}
|
|
2214
|
-
resetOrderBook(symbol) {
|
|
2215
|
-
this.rawOrderBook[symbol] = defaultRawOrderBook;
|
|
2216
|
-
}
|
|
2217
|
-
};
|
|
2218
|
-
var orderBookService = OrderbookService.getInstance();
|
|
2219
|
-
var orderbook_service_default = orderBookService;
|
|
2220
2220
|
|
|
2221
2221
|
// src/orderly/useOrderbookStream.ts
|
|
2222
2222
|
var paddingFn = (len) => Array(len).fill([
|
|
@@ -2281,7 +2281,7 @@ var reduceOrderbook = (depth, level, padding, data) => {
|
|
|
2281
2281
|
const [price, qty, newQuantity, newAmount] = asks[0];
|
|
2282
2282
|
asks.shift();
|
|
2283
2283
|
asks.push([
|
|
2284
|
-
price + (depth === void 0 ? 0 : depth),
|
|
2284
|
+
price + (depth === void 0 ? 0 : Number(depth)),
|
|
2285
2285
|
qty,
|
|
2286
2286
|
newQuantity,
|
|
2287
2287
|
newAmount
|
|
@@ -2292,7 +2292,6 @@ var reduceOrderbook = (depth, level, padding, data) => {
|
|
|
2292
2292
|
const [askPrice, askQty, newQuantity, newAmount] = asks[0];
|
|
2293
2293
|
if (askPrice <= bidPrice) {
|
|
2294
2294
|
asks.shift();
|
|
2295
|
-
let logStr = "";
|
|
2296
2295
|
for (let index = 0; index < asks.length; index++) {
|
|
2297
2296
|
if (index === 0) {
|
|
2298
2297
|
const quantity = asks[index][1] + askQty;
|
|
@@ -2302,8 +2301,6 @@ var reduceOrderbook = (depth, level, padding, data) => {
|
|
|
2302
2301
|
} else {
|
|
2303
2302
|
asks[index][3] = asks[index][0] * asks[index][1] + asks[index - 1][3];
|
|
2304
2303
|
}
|
|
2305
|
-
logStr += `index: ${index} ${asks[index]}
|
|
2306
|
-
`;
|
|
2307
2304
|
}
|
|
2308
2305
|
} else {
|
|
2309
2306
|
break;
|
|
@@ -3224,8 +3221,6 @@ var useFundingRate = (symbol) => {
|
|
|
3224
3221
|
countDown
|
|
3225
3222
|
};
|
|
3226
3223
|
};
|
|
3227
|
-
|
|
3228
|
-
// src/orderly/useFundingRateHistory.ts
|
|
3229
3224
|
var calculatePositiveRate = (periodData, period) => {
|
|
3230
3225
|
if (!periodData || !period)
|
|
3231
3226
|
return 0;
|
|
@@ -3241,22 +3236,30 @@ var calculatePositiveRate = (periodData, period) => {
|
|
|
3241
3236
|
return periodData.positive / totalTimes;
|
|
3242
3237
|
};
|
|
3243
3238
|
var useFundingRateHistory = () => {
|
|
3244
|
-
const {
|
|
3245
|
-
|
|
3246
|
-
|
|
3247
|
-
|
|
3248
|
-
|
|
3239
|
+
const { data: historyData, isLoading } = useQuery(
|
|
3240
|
+
"/v1/public/market_info/funding_history"
|
|
3241
|
+
);
|
|
3242
|
+
const getPositiveRates = React.useCallback(
|
|
3243
|
+
(data, period) => {
|
|
3244
|
+
if (!data?.length)
|
|
3245
|
+
return {};
|
|
3246
|
+
return data.reduce(
|
|
3247
|
+
(acc, item) => {
|
|
3248
|
+
acc[item.symbol] = calculatePositiveRate(
|
|
3249
|
+
item.funding[period],
|
|
3250
|
+
period
|
|
3251
|
+
);
|
|
3252
|
+
return acc;
|
|
3253
|
+
},
|
|
3254
|
+
{}
|
|
3255
|
+
);
|
|
3256
|
+
},
|
|
3257
|
+
[]
|
|
3258
|
+
);
|
|
3249
3259
|
return {
|
|
3250
3260
|
data: historyData ?? [],
|
|
3251
3261
|
isLoading,
|
|
3252
|
-
getPositiveRates
|
|
3253
|
-
if (!data?.length)
|
|
3254
|
-
return {};
|
|
3255
|
-
return data.reduce((acc, item) => {
|
|
3256
|
-
acc[item.symbol] = calculatePositiveRate(item.funding[period], period);
|
|
3257
|
-
return acc;
|
|
3258
|
-
}, {});
|
|
3259
|
-
}
|
|
3262
|
+
getPositiveRates
|
|
3260
3263
|
};
|
|
3261
3264
|
};
|
|
3262
3265
|
var findTPSLFromOrders = (orders, symbol) => {
|