@0xmonaco/react 0.5.4 → 0.5.6
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/README.md +12 -18
- package/dist/hooks/index.d.ts +3 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +3 -0
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/useAuth/types.js +0 -1
- package/dist/hooks/useAuth/useAuth.d.ts.map +1 -1
- package/dist/hooks/useAuth/useAuth.js +3 -5
- package/dist/hooks/useAuth/useAuth.js.map +1 -1
- package/dist/hooks/useFees/types.js +0 -1
- package/dist/hooks/useMarket/types.js +0 -1
- package/dist/hooks/useMonaco/types.js +0 -1
- package/dist/hooks/useOHLCV/index.d.ts +3 -0
- package/dist/hooks/useOHLCV/index.d.ts.map +1 -0
- package/dist/hooks/useOHLCV/index.js +3 -0
- package/dist/hooks/useOHLCV/index.js.map +1 -0
- package/dist/hooks/useOHLCV/types.d.ts +30 -0
- package/dist/hooks/useOHLCV/types.d.ts.map +1 -0
- package/dist/hooks/useOHLCV/types.js +1 -0
- package/dist/hooks/useOHLCV/types.js.map +1 -0
- package/dist/hooks/useOHLCV/useOHLCV.d.ts +12 -0
- package/dist/hooks/useOHLCV/useOHLCV.d.ts.map +1 -0
- package/dist/hooks/useOHLCV/useOHLCV.js +77 -0
- package/dist/hooks/useOHLCV/useOHLCV.js.map +1 -0
- package/dist/hooks/useOrderbook/types.js +0 -1
- package/dist/hooks/useProfile/types.js +0 -1
- package/dist/hooks/useTokenLifecycle/types.js +0 -1
- package/dist/hooks/useTrade/types.d.ts +5 -1
- package/dist/hooks/useTrade/types.d.ts.map +1 -1
- package/dist/hooks/useTrade/types.js +0 -1
- package/dist/hooks/useTrade/useTrade.d.ts.map +1 -1
- package/dist/hooks/useTrade/useTrade.js +12 -0
- package/dist/hooks/useTrade/useTrade.js.map +1 -1
- package/dist/hooks/useTradeFeed/types.js +0 -1
- package/dist/hooks/useUserBalances/index.d.ts +3 -0
- package/dist/hooks/useUserBalances/index.d.ts.map +1 -0
- package/dist/hooks/useUserBalances/index.js +3 -0
- package/dist/hooks/useUserBalances/index.js.map +1 -0
- package/dist/hooks/useUserBalances/types.d.ts +19 -0
- package/dist/hooks/useUserBalances/types.d.ts.map +1 -0
- package/dist/hooks/useUserBalances/types.js +1 -0
- package/dist/hooks/useUserBalances/types.js.map +1 -0
- package/dist/hooks/useUserBalances/useUserBalances.d.ts +10 -0
- package/dist/hooks/useUserBalances/useUserBalances.d.ts.map +1 -0
- package/dist/hooks/useUserBalances/useUserBalances.js +113 -0
- package/dist/hooks/useUserBalances/useUserBalances.js.map +1 -0
- package/dist/hooks/useUserMovements/types.js +0 -1
- package/dist/hooks/useUserMovements/useUserMovements.d.ts.map +1 -1
- package/dist/hooks/useUserMovements/useUserMovements.js +43 -24
- package/dist/hooks/useUserMovements/useUserMovements.js.map +1 -1
- package/dist/hooks/useUserOrders/index.d.ts +3 -0
- package/dist/hooks/useUserOrders/index.d.ts.map +1 -0
- package/dist/hooks/useUserOrders/index.js +3 -0
- package/dist/hooks/useUserOrders/index.js.map +1 -0
- package/dist/hooks/useUserOrders/types.d.ts +19 -0
- package/dist/hooks/useUserOrders/types.d.ts.map +1 -0
- package/dist/hooks/useUserOrders/types.js +1 -0
- package/dist/hooks/useUserOrders/types.js.map +1 -0
- package/dist/hooks/useUserOrders/useUserOrders.d.ts +12 -0
- package/dist/hooks/useUserOrders/useUserOrders.d.ts.map +1 -0
- package/dist/hooks/useUserOrders/useUserOrders.js +192 -0
- package/dist/hooks/useUserOrders/useUserOrders.js.map +1 -0
- package/dist/hooks/useVault/types.d.ts +1 -3
- package/dist/hooks/useVault/types.d.ts.map +1 -1
- package/dist/hooks/useVault/types.js +0 -1
- package/dist/hooks/useVault/useVault.d.ts.map +1 -1
- package/dist/hooks/useVault/useVault.js +1 -9
- package/dist/hooks/useVault/useVault.js.map +1 -1
- package/dist/provider/MonacoProvider.d.ts +1 -1
- package/dist/provider/MonacoProvider.d.ts.map +1 -1
- package/dist/provider/MonacoProvider.js +60 -19
- package/dist/provider/MonacoProvider.js.map +1 -1
- package/dist/provider/index.d.ts +1 -1
- package/dist/provider/index.d.ts.map +1 -1
- package/dist/provider/index.js +1 -1
- package/dist/provider/index.js.map +1 -1
- package/dist/provider/types.d.ts +8 -0
- package/dist/provider/types.d.ts.map +1 -1
- package/dist/provider/types.js.map +1 -1
- package/package.json +40 -38
package/README.md
CHANGED
|
@@ -8,8 +8,8 @@ React hooks and components for the Monaco Protocol. Build trading applications w
|
|
|
8
8
|
# Install the React SDK and its dependencies
|
|
9
9
|
npm install @0xmonaco/react react wagmi@^2.17.5 viem@^2.31.7
|
|
10
10
|
|
|
11
|
-
# Or with
|
|
12
|
-
|
|
11
|
+
# Or with bun
|
|
12
|
+
bun add @0xmonaco/react react wagmi@^2.17.5 viem@^2.31.7
|
|
13
13
|
|
|
14
14
|
# Or with yarn
|
|
15
15
|
yarn add @0xmonaco/react react wagmi@^2.17.5 viem@^2.31.7
|
|
@@ -162,7 +162,7 @@ await cancelOrder(orderId);
|
|
|
162
162
|
|
|
163
163
|
// Get orders
|
|
164
164
|
const { data: orders } = await getPaginatedOrders({
|
|
165
|
-
status: "
|
|
165
|
+
status: "SUBMITTED",
|
|
166
166
|
trading_pair: "BTC/USDC",
|
|
167
167
|
});
|
|
168
168
|
```
|
|
@@ -205,15 +205,16 @@ const trades = await getTradeFeed("BTC/USDC", { limit: 50 });
|
|
|
205
205
|
Manage token deposits and withdrawals using asset IDs.
|
|
206
206
|
|
|
207
207
|
```tsx
|
|
208
|
-
const { deposit, withdraw, approve,
|
|
208
|
+
const { deposit, withdraw, approve, needsApproval } = useVault();
|
|
209
|
+
const { getUserBalanceByAssetId } = useProfile();
|
|
209
210
|
|
|
210
211
|
// Get asset ID from trading pair
|
|
211
212
|
const pair = await getTradingPairBySymbol("USDC/USDT");
|
|
212
213
|
const assetId = pair.base_asset_id;
|
|
213
214
|
|
|
214
215
|
// Check balance
|
|
215
|
-
const balance = await
|
|
216
|
-
console.log(`Balance: ${balance.
|
|
216
|
+
const balance = await getUserBalanceByAssetId(assetId);
|
|
217
|
+
console.log(`Balance: ${balance.total_balance} ${balance.symbol}`);
|
|
217
218
|
|
|
218
219
|
// Check if approval is needed
|
|
219
220
|
if (await needsApproval(assetId, amount)) {
|
|
@@ -338,37 +339,30 @@ For optimal type inference, use these TypeScript settings:
|
|
|
338
339
|
}
|
|
339
340
|
```
|
|
340
341
|
|
|
341
|
-
## Examples
|
|
342
|
-
|
|
343
|
-
Check out the [`examples/react-vite-app`](../../examples/react-vite-app) directory for a complete React application using the Monaco SDK.
|
|
344
|
-
|
|
345
342
|
## Development
|
|
346
343
|
|
|
347
344
|
### Build
|
|
348
345
|
|
|
349
346
|
```bash
|
|
350
|
-
|
|
347
|
+
bun run build
|
|
351
348
|
```
|
|
352
349
|
|
|
353
350
|
### Watch Mode
|
|
354
351
|
|
|
355
352
|
```bash
|
|
356
|
-
|
|
353
|
+
bun run dev
|
|
357
354
|
```
|
|
358
355
|
|
|
359
356
|
### Lint
|
|
360
357
|
|
|
361
358
|
```bash
|
|
362
|
-
|
|
359
|
+
bun run lint
|
|
363
360
|
```
|
|
364
361
|
|
|
365
|
-
## Contributing
|
|
366
|
-
|
|
367
|
-
We welcome contributions! Please see our [Contributing Guide](../../docs/contributing.mdx) for details.
|
|
368
362
|
|
|
369
363
|
## License
|
|
370
364
|
|
|
371
|
-
This project is licensed under the MIT License
|
|
365
|
+
This project is licensed under the MIT License.
|
|
372
366
|
|
|
373
367
|
## Support
|
|
374
368
|
|
|
@@ -377,5 +371,5 @@ For support, please:
|
|
|
377
371
|
- Open an issue on GitHub
|
|
378
372
|
- Join our [Discord community](https://discord.gg/monaco)
|
|
379
373
|
- Visit our [documentation site](https://docs.monaco.xyz)
|
|
380
|
-
- Check our [API documentation](
|
|
374
|
+
- Check our [API documentation](https://docs.0xmonaco.com)
|
|
381
375
|
|
package/dist/hooks/index.d.ts
CHANGED
|
@@ -2,11 +2,14 @@ export * from "./useAuth";
|
|
|
2
2
|
export * from "./useFees";
|
|
3
3
|
export * from "./useMarket";
|
|
4
4
|
export * from "./useMonaco";
|
|
5
|
+
export * from "./useOHLCV";
|
|
5
6
|
export * from "./useOrderbook";
|
|
6
7
|
export * from "./useProfile";
|
|
7
8
|
export * from "./useTokenLifecycle";
|
|
8
9
|
export * from "./useTrade";
|
|
9
10
|
export * from "./useTradeFeed";
|
|
11
|
+
export * from "./useUserBalances";
|
|
10
12
|
export * from "./useUserMovements";
|
|
13
|
+
export * from "./useUserOrders";
|
|
11
14
|
export * from "./useVault";
|
|
12
15
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC"}
|
package/dist/hooks/index.js
CHANGED
|
@@ -2,11 +2,14 @@ export * from "./useAuth";
|
|
|
2
2
|
export * from "./useFees";
|
|
3
3
|
export * from "./useMarket";
|
|
4
4
|
export * from "./useMonaco";
|
|
5
|
+
export * from "./useOHLCV";
|
|
5
6
|
export * from "./useOrderbook";
|
|
6
7
|
export * from "./useProfile";
|
|
7
8
|
export * from "./useTokenLifecycle";
|
|
8
9
|
export * from "./useTrade";
|
|
9
10
|
export * from "./useTradeFeed";
|
|
11
|
+
export * from "./useUserBalances";
|
|
10
12
|
export * from "./useUserMovements";
|
|
13
|
+
export * from "./useUserOrders";
|
|
11
14
|
export * from "./useVault";
|
|
12
15
|
//# sourceMappingURL=index.js.map
|
package/dist/hooks/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAuth.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAuth/useAuth.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useAuth.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAuth/useAuth.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,eAAO,MAAM,OAAO,QAAO,aAwK1B,CAAC"}
|
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
import { useCallback } from "react";
|
|
2
|
-
import { useWalletClient } from "wagmi";
|
|
3
2
|
import { AuthenticationStatus, useMonacoContext } from "../../provider";
|
|
4
3
|
import { useMonacoSDK } from "../useMonaco";
|
|
5
4
|
export const useAuth = () => {
|
|
6
5
|
const { sdk, clientId } = useMonacoSDK();
|
|
7
|
-
const { authenticationStatus, setAuthenticationStatus, tokenLifecycle } = useMonacoContext();
|
|
8
|
-
const { data: walletClient } = useWalletClient();
|
|
6
|
+
const { authenticationStatus, setAuthenticationStatus, tokenLifecycle, isWalletConnected } = useMonacoContext();
|
|
9
7
|
const login = useCallback(async () => {
|
|
10
8
|
if (!sdk)
|
|
11
9
|
throw new Error("SDK not available");
|
|
12
|
-
if (!
|
|
10
|
+
if (!isWalletConnected)
|
|
13
11
|
throw new Error("Wallet not connected");
|
|
14
12
|
setAuthenticationStatus(AuthenticationStatus.AUTHENTICATING);
|
|
15
13
|
try {
|
|
@@ -24,7 +22,7 @@ export const useAuth = () => {
|
|
|
24
22
|
setAuthenticationStatus(AuthenticationStatus.UNAUTHENTICATED);
|
|
25
23
|
throw error;
|
|
26
24
|
}
|
|
27
|
-
}, [sdk,
|
|
25
|
+
}, [sdk, isWalletConnected, clientId, setAuthenticationStatus, tokenLifecycle]);
|
|
28
26
|
const logout = useCallback(async () => {
|
|
29
27
|
if (!sdk)
|
|
30
28
|
throw new Error("SDK not available");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAuth.js","sourceRoot":"","sources":["../../../src/hooks/useAuth/useAuth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"useAuth.js","sourceRoot":"","sources":["../../../src/hooks/useAuth/useAuth.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/useOHLCV/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/useOHLCV/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { Candlestick, GetCandlesticksParams, Interval, TradingMode } from "@0xmonaco/types";
|
|
2
|
+
/**
|
|
3
|
+
* Parameters for the useOHLCV hook
|
|
4
|
+
*/
|
|
5
|
+
export interface UseOHLCVParams {
|
|
6
|
+
/** Trading pair UUID */
|
|
7
|
+
tradingPairId: string;
|
|
8
|
+
/** Trading mode (e.g., "CLOB") */
|
|
9
|
+
tradingMode: TradingMode;
|
|
10
|
+
/** Candlestick interval (1m, 5m, 15m, 1h, 4h, 1d) */
|
|
11
|
+
interval: Interval;
|
|
12
|
+
/** Optional parameters for initial candlestick fetch */
|
|
13
|
+
initialFetchParams?: GetCandlesticksParams;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Return type for the useOHLCV hook
|
|
17
|
+
*/
|
|
18
|
+
export interface UseOHLCVReturn {
|
|
19
|
+
/** Array of candlesticks (oldest to newest) */
|
|
20
|
+
candlesticks: Candlestick[];
|
|
21
|
+
/** Whether the initial candlesticks are being fetched */
|
|
22
|
+
loading: boolean;
|
|
23
|
+
/** Whether currently subscribed to WebSocket updates */
|
|
24
|
+
subscribed: boolean;
|
|
25
|
+
/** Any error that occurred during connection or subscription */
|
|
26
|
+
error: Error | null;
|
|
27
|
+
/** Clear the current error */
|
|
28
|
+
clearError: () => void;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/hooks/useOHLCV/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,qBAAqB,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEjG;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,wBAAwB;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,kCAAkC;IAClC,WAAW,EAAE,WAAW,CAAC;IACzB,qDAAqD;IACrD,QAAQ,EAAE,QAAQ,CAAC;IACnB,wDAAwD;IACxD,kBAAkB,CAAC,EAAE,qBAAqB,CAAC;CAC5C;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,+CAA+C;IAC/C,YAAY,EAAE,WAAW,EAAE,CAAC;IAE5B,yDAAyD;IACzD,OAAO,EAAE,OAAO,CAAC;IAEjB,wDAAwD;IACxD,UAAU,EAAE,OAAO,CAAC;IAEpB,gEAAgE;IAChE,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAEpB,8BAA8B;IAC9B,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/hooks/useOHLCV/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { UseOHLCVParams, UseOHLCVReturn } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* Hook for subscribing to real-time OHLCV candlestick events via WebSocket (public)
|
|
4
|
+
*
|
|
5
|
+
* Fetches initial candlesticks from the REST API, then subscribes to real-time updates.
|
|
6
|
+
* When a new candlestick event arrives, it either updates the most recent candlestick
|
|
7
|
+
* (if timestamps match) or appends a new one.
|
|
8
|
+
*
|
|
9
|
+
* @param params - Configuration including tradingPairId, tradingMode, interval, and optional fetch params
|
|
10
|
+
*/
|
|
11
|
+
export declare function useOHLCV(params: UseOHLCVParams): UseOHLCVReturn;
|
|
12
|
+
//# sourceMappingURL=useOHLCV.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useOHLCV.d.ts","sourceRoot":"","sources":["../../../src/hooks/useOHLCV/useOHLCV.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9D;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,cAAc,CA2E/D"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { useCallback, useEffect, useState } from "react";
|
|
2
|
+
import { useMonacoSDK } from "../useMonaco";
|
|
3
|
+
/**
|
|
4
|
+
* Hook for subscribing to real-time OHLCV candlestick events via WebSocket (public)
|
|
5
|
+
*
|
|
6
|
+
* Fetches initial candlesticks from the REST API, then subscribes to real-time updates.
|
|
7
|
+
* When a new candlestick event arrives, it either updates the most recent candlestick
|
|
8
|
+
* (if timestamps match) or appends a new one.
|
|
9
|
+
*
|
|
10
|
+
* @param params - Configuration including tradingPairId, tradingMode, interval, and optional fetch params
|
|
11
|
+
*/
|
|
12
|
+
export function useOHLCV(params) {
|
|
13
|
+
const { tradingPairId, tradingMode, interval, initialFetchParams } = params;
|
|
14
|
+
const { sdk } = useMonacoSDK();
|
|
15
|
+
const [candlesticks, setCandlesticks] = useState([]);
|
|
16
|
+
const [loading, setLoading] = useState(false);
|
|
17
|
+
const [error, setError] = useState(null);
|
|
18
|
+
const [subscribed, setSubscribed] = useState(false);
|
|
19
|
+
const clearError = useCallback(() => setError(null), []);
|
|
20
|
+
useEffect(() => {
|
|
21
|
+
if (!sdk?.ws || !sdk?.market || !tradingPairId || !tradingMode || !interval) {
|
|
22
|
+
setSubscribed(false);
|
|
23
|
+
setLoading(false);
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
setCandlesticks([]);
|
|
27
|
+
setError(null);
|
|
28
|
+
setLoading(true);
|
|
29
|
+
let unsubscribe;
|
|
30
|
+
let cancelled = false;
|
|
31
|
+
sdk.market
|
|
32
|
+
.getCandlesticks(tradingPairId, interval, initialFetchParams)
|
|
33
|
+
.then((initialCandlesticks) => {
|
|
34
|
+
if (cancelled)
|
|
35
|
+
return;
|
|
36
|
+
setCandlesticks(initialCandlesticks);
|
|
37
|
+
try {
|
|
38
|
+
unsubscribe = sdk.ws.ohlcv(tradingPairId, tradingMode, interval, (event) => {
|
|
39
|
+
setCandlesticks((prev) => {
|
|
40
|
+
if (prev.length === 0) {
|
|
41
|
+
return [event.candlestick];
|
|
42
|
+
}
|
|
43
|
+
const lastCandle = prev[prev.length - 1];
|
|
44
|
+
if (lastCandle && lastCandle.T === event.candlestick.T) {
|
|
45
|
+
const updated = [...prev];
|
|
46
|
+
updated[updated.length - 1] = event.candlestick;
|
|
47
|
+
return updated;
|
|
48
|
+
}
|
|
49
|
+
return [...prev, event.candlestick];
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
setSubscribed(true);
|
|
53
|
+
}
|
|
54
|
+
catch (err) {
|
|
55
|
+
setError(err instanceof Error ? err : new Error(String(err)));
|
|
56
|
+
setSubscribed(false);
|
|
57
|
+
}
|
|
58
|
+
})
|
|
59
|
+
.catch((err) => {
|
|
60
|
+
if (!cancelled) {
|
|
61
|
+
setError(err instanceof Error ? err : new Error(String(err)));
|
|
62
|
+
}
|
|
63
|
+
})
|
|
64
|
+
.finally(() => {
|
|
65
|
+
if (!cancelled) {
|
|
66
|
+
setLoading(false);
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
return () => {
|
|
70
|
+
cancelled = true;
|
|
71
|
+
unsubscribe?.();
|
|
72
|
+
setSubscribed(false);
|
|
73
|
+
};
|
|
74
|
+
}, [sdk?.ws, sdk?.market, tradingPairId, tradingMode, interval, initialFetchParams]);
|
|
75
|
+
return { candlesticks, loading, subscribed, error, clearError };
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=useOHLCV.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useOHLCV.js","sourceRoot":"","sources":["../../../src/hooks/useOHLCV/useOHLCV.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { CancelOrderResponse, CreateOrderResponse, GetOrderResponse, GetPaginatedOrdersParams, GetPaginatedOrdersResponse, OrderSide, ReplaceOrderResponse, TimeInForce, TradingMode } from "@0xmonaco/types";
|
|
1
|
+
import type { BatchCancelOrdersResponse, CancelOrderResponse, CreateOrderResponse, GetOrderResponse, GetPaginatedOrdersParams, GetPaginatedOrdersResponse, OrderSide, ReplaceOrderResponse, TimeInForce, TradingMode } from "@0xmonaco/types";
|
|
2
2
|
export interface UseTradeReturn {
|
|
3
3
|
/** Place a limit order */
|
|
4
4
|
placeLimitOrder: (tradingPairId: string, side: OrderSide, quantity: string, price: string, options?: {
|
|
@@ -15,6 +15,10 @@ export interface UseTradeReturn {
|
|
|
15
15
|
}) => Promise<CreateOrderResponse>;
|
|
16
16
|
/** Cancel an existing order */
|
|
17
17
|
cancelOrder: (orderId: string) => Promise<CancelOrderResponse>;
|
|
18
|
+
/** Batch cancel specific orders by their IDs */
|
|
19
|
+
batchCancel: (orderIds: string[]) => Promise<BatchCancelOrdersResponse>;
|
|
20
|
+
/** Cancel all active orders, optionally filtered by trading pair */
|
|
21
|
+
batchCancelAll: (tradingPairId?: string) => Promise<BatchCancelOrdersResponse>;
|
|
18
22
|
/** Replace an existing order */
|
|
19
23
|
replaceOrder: (orderId: string, newOrder: {
|
|
20
24
|
price?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/hooks/useTrade/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,wBAAwB,EACxB,0BAA0B,EAC1B,SAAS,EACT,oBAAoB,EACpB,WAAW,EACX,WAAW,EACZ,MAAM,iBAAiB,CAAC;AAEzB,MAAM,WAAW,cAAc;IAC7B,0BAA0B;IAC1B,eAAe,EAAE,CACf,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,SAAS,EACf,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,WAAW,CAAC;QAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,WAAW,CAAA;KAAE,KACpH,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAElC,2BAA2B;IAC3B,gBAAgB,EAAE,CAChB,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,SAAS,EACf,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,WAAW,CAAC;QAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,WAAW,CAAA;KAAE,KAC3F,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAElC,+BAA+B;IAC/B,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAE/D,gCAAgC;IAChC,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAE9I,2BAA2B;IAC3B,kBAAkB,EAAE,CAAC,MAAM,CAAC,EAAE,wBAAwB,KAAK,OAAO,CAAC,0BAA0B,CAAC,CAAC;IAE/F,+BAA+B;IAC/B,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;CAC1D"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/hooks/useTrade/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,yBAAyB,EACzB,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,wBAAwB,EACxB,0BAA0B,EAC1B,SAAS,EACT,oBAAoB,EACpB,WAAW,EACX,WAAW,EACZ,MAAM,iBAAiB,CAAC;AAEzB,MAAM,WAAW,cAAc;IAC7B,0BAA0B;IAC1B,eAAe,EAAE,CACf,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,SAAS,EACf,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,WAAW,CAAC;QAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,WAAW,CAAA;KAAE,KACpH,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAElC,2BAA2B;IAC3B,gBAAgB,EAAE,CAChB,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,SAAS,EACf,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,WAAW,CAAC;QAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,WAAW,CAAA;KAAE,KAC3F,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAElC,+BAA+B;IAC/B,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAE/D,gDAAgD;IAChD,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAExE,oEAAoE;IACpE,cAAc,EAAE,CAAC,aAAa,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAE/E,gCAAgC;IAChC,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAE9I,2BAA2B;IAC3B,kBAAkB,EAAE,CAAC,MAAM,CAAC,EAAE,wBAAwB,KAAK,OAAO,CAAC,0BAA0B,CAAC,CAAC;IAE/F,+BAA+B;IAC/B,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;CAC1D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTrade.d.ts","sourceRoot":"","sources":["../../../src/hooks/useTrade/useTrade.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useTrade.d.ts","sourceRoot":"","sources":["../../../src/hooks/useTrade/useTrade.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C,eAAO,MAAM,QAAQ,QAAO,cAoI3B,CAAC"}
|
|
@@ -39,6 +39,16 @@ export const useTrade = () => {
|
|
|
39
39
|
throw new Error("Order ID is required and cannot be empty");
|
|
40
40
|
return await sdk.trading.cancelOrder(orderId);
|
|
41
41
|
}, [sdk]);
|
|
42
|
+
const batchCancel = useCallback(async (orderIds) => {
|
|
43
|
+
if (!sdk)
|
|
44
|
+
throw new Error("SDK not available");
|
|
45
|
+
return await sdk.trading.batchCancel(orderIds);
|
|
46
|
+
}, [sdk]);
|
|
47
|
+
const batchCancelAll = useCallback(async (tradingPairId) => {
|
|
48
|
+
if (!sdk)
|
|
49
|
+
throw new Error("SDK not available");
|
|
50
|
+
return await sdk.trading.batchCancelAll(tradingPairId);
|
|
51
|
+
}, [sdk]);
|
|
42
52
|
const replaceOrder = useCallback(async (orderId, newOrder) => {
|
|
43
53
|
if (!sdk)
|
|
44
54
|
throw new Error("SDK not available");
|
|
@@ -80,6 +90,8 @@ export const useTrade = () => {
|
|
|
80
90
|
placeMarketOrder,
|
|
81
91
|
// Order management
|
|
82
92
|
cancelOrder,
|
|
93
|
+
batchCancel,
|
|
94
|
+
batchCancelAll,
|
|
83
95
|
replaceOrder,
|
|
84
96
|
// Order queries
|
|
85
97
|
getPaginatedOrders,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTrade.js","sourceRoot":"","sources":["../../../src/hooks/useTrade/useTrade.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useTrade.js","sourceRoot":"","sources":["../../../src/hooks/useTrade/useTrade.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/useUserBalances/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/useUserBalances/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { AccountBalance } from "@0xmonaco/types";
|
|
2
|
+
/**
|
|
3
|
+
* Return type for the useUserBalances hook
|
|
4
|
+
*/
|
|
5
|
+
export interface UseUserBalancesReturn {
|
|
6
|
+
/** Array of user balances, updated in real-time via WebSocket */
|
|
7
|
+
balances: AccountBalance[];
|
|
8
|
+
/** Whether initial data is being loaded */
|
|
9
|
+
loading: boolean;
|
|
10
|
+
/** Whether currently subscribed to balances channel */
|
|
11
|
+
subscribed: boolean;
|
|
12
|
+
/** Any error that occurred during connection or subscription */
|
|
13
|
+
error: Error | null;
|
|
14
|
+
/** Clear the current error state */
|
|
15
|
+
clearError: () => void;
|
|
16
|
+
/** Manually refresh balances from REST API */
|
|
17
|
+
refresh: () => Promise<void>;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/hooks/useUserBalances/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,iEAAiE;IACjE,QAAQ,EAAE,cAAc,EAAE,CAAC;IAE3B,2CAA2C;IAC3C,OAAO,EAAE,OAAO,CAAC;IAEjB,uDAAuD;IACvD,UAAU,EAAE,OAAO,CAAC;IAEpB,gEAAgE;IAChE,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAEpB,oCAAoC;IACpC,UAAU,EAAE,MAAM,IAAI,CAAC;IAEvB,8CAA8C;IAC9C,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/hooks/useUserBalances/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { UseUserBalancesReturn } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* Hook for subscribing to real-time user balance updates via WebSocket (authenticated)
|
|
4
|
+
*
|
|
5
|
+
* Fetches initial balances from the REST API, then subscribes to real-time updates.
|
|
6
|
+
* Requires authentication - the user must be logged in with a valid JWT token.
|
|
7
|
+
* User is identified on the backend via the JWT token.
|
|
8
|
+
*/
|
|
9
|
+
export declare function useUserBalances(): UseUserBalancesReturn;
|
|
10
|
+
//# sourceMappingURL=useUserBalances.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useUserBalances.d.ts","sourceRoot":"","sources":["../../../src/hooks/useUserBalances/useUserBalances.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAgBrD;;;;;;GAMG;AACH,wBAAgB,eAAe,IAAI,qBAAqB,CAmGvD"}
|