@0xmonaco/core 0.4.1 → 0.5.0
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 +23 -8
- package/dist/api/applications/api.d.ts +1 -2
- package/dist/api/applications/api.d.ts.map +1 -1
- package/dist/api/applications/api.js +1 -2
- package/dist/api/applications/api.js.map +1 -1
- package/dist/api/applications/index.d.ts +1 -2
- package/dist/api/applications/index.d.ts.map +1 -1
- package/dist/api/applications/index.js +1 -1
- package/dist/api/applications/index.js.map +1 -1
- package/dist/api/auth/api.d.ts +1 -1
- package/dist/api/auth/api.d.ts.map +1 -1
- package/dist/api/auth/api.js +2 -2
- package/dist/api/auth/api.js.map +1 -1
- package/dist/api/auth/index.d.ts +1 -2
- package/dist/api/auth/index.d.ts.map +1 -1
- package/dist/api/auth/index.js +1 -1
- package/dist/api/auth/index.js.map +1 -1
- package/dist/api/base.d.ts +26 -1
- package/dist/api/base.d.ts.map +1 -1
- package/dist/api/base.js +173 -43
- package/dist/api/base.js.map +1 -1
- package/dist/api/fees/api.d.ts +1 -1
- package/dist/api/fees/api.d.ts.map +1 -1
- package/dist/api/fees/api.js +4 -4
- package/dist/api/fees/api.js.map +1 -1
- package/dist/api/fees/index.d.ts +1 -1
- package/dist/api/fees/index.d.ts.map +1 -1
- package/dist/api/fees/index.js +1 -1
- package/dist/api/fees/index.js.map +1 -1
- package/dist/api/index.d.ts +10 -8
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +10 -8
- package/dist/api/index.js.map +1 -1
- package/dist/api/market/api.d.ts +1 -1
- package/dist/api/market/api.d.ts.map +1 -1
- package/dist/api/market/api.js +12 -3
- package/dist/api/market/api.js.map +1 -1
- package/dist/api/market/index.d.ts +1 -2
- package/dist/api/market/index.d.ts.map +1 -1
- package/dist/api/market/index.js +1 -1
- package/dist/api/market/index.js.map +1 -1
- package/dist/api/orderbook/api.d.ts +16 -0
- package/dist/api/orderbook/api.d.ts.map +1 -0
- package/dist/api/orderbook/api.js +38 -0
- package/dist/api/orderbook/api.js.map +1 -0
- package/dist/api/orderbook/index.d.ts +2 -0
- package/dist/api/orderbook/index.d.ts.map +1 -0
- package/dist/api/orderbook/index.js +2 -0
- package/dist/api/orderbook/index.js.map +1 -0
- package/dist/api/profile/api.d.ts +10 -11
- package/dist/api/profile/api.d.ts.map +1 -1
- package/dist/api/profile/api.js +17 -11
- package/dist/api/profile/api.js.map +1 -1
- package/dist/api/profile/index.d.ts +1 -1
- package/dist/api/profile/index.d.ts.map +1 -1
- package/dist/api/profile/index.js +1 -1
- package/dist/api/profile/index.js.map +1 -1
- package/dist/api/trades/api.d.ts +45 -0
- package/dist/api/trades/api.d.ts.map +1 -0
- package/dist/api/trades/api.js +43 -0
- package/dist/api/trades/api.js.map +1 -0
- package/dist/api/trades/index.d.ts +2 -0
- package/dist/api/trades/index.d.ts.map +1 -0
- package/dist/api/trades/index.js +2 -0
- package/dist/api/trades/index.js.map +1 -0
- package/dist/api/trading/api.d.ts +1 -2
- package/dist/api/trading/api.d.ts.map +1 -1
- package/dist/api/trading/api.js +10 -2
- package/dist/api/trading/api.js.map +1 -1
- package/dist/api/trading/index.d.ts +1 -2
- package/dist/api/trading/index.d.ts.map +1 -1
- package/dist/api/trading/index.js +1 -1
- package/dist/api/trading/index.js.map +1 -1
- package/dist/api/vault/api.d.ts +17 -19
- package/dist/api/vault/api.d.ts.map +1 -1
- package/dist/api/vault/api.js +58 -46
- package/dist/api/vault/api.js.map +1 -1
- package/dist/api/vault/index.d.ts +1 -2
- package/dist/api/vault/index.d.ts.map +1 -1
- package/dist/api/vault/index.js +1 -1
- package/dist/api/vault/index.js.map +1 -1
- package/dist/api/websocket/index.d.ts +3 -9
- package/dist/api/websocket/index.d.ts.map +1 -1
- package/dist/api/websocket/index.js +3 -9
- package/dist/api/websocket/index.js.map +1 -1
- package/dist/api/websocket/types.d.ts +34 -0
- package/dist/api/websocket/types.d.ts.map +1 -0
- package/dist/api/websocket/types.js +2 -0
- package/dist/api/websocket/types.js.map +1 -0
- package/dist/api/websocket/utils.d.ts +9 -0
- package/dist/api/websocket/utils.d.ts.map +1 -0
- package/dist/api/websocket/utils.js +23 -0
- package/dist/api/websocket/utils.js.map +1 -0
- package/dist/api/websocket/websocket.d.ts +6 -0
- package/dist/api/websocket/websocket.d.ts.map +1 -0
- package/dist/api/websocket/websocket.js +309 -0
- package/dist/api/websocket/websocket.js.map +1 -0
- package/dist/errors/errors.d.ts +382 -0
- package/dist/errors/errors.d.ts.map +1 -0
- package/dist/errors/errors.js +801 -0
- package/dist/errors/errors.js.map +1 -0
- package/dist/errors/index.d.ts +2 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +2 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/index.d.ts +5 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -22
- package/dist/index.js.map +1 -1
- package/dist/networks/index.d.ts +2 -0
- package/dist/networks/index.d.ts.map +1 -0
- package/dist/networks/index.js +2 -0
- package/dist/networks/index.js.map +1 -0
- package/dist/{networks.d.ts → networks/networks.d.ts} +1 -1
- package/dist/networks/networks.d.ts.map +1 -0
- package/dist/{networks.js → networks/networks.js} +4 -3
- package/dist/networks/networks.js.map +1 -0
- package/dist/sdk.d.ts +19 -27
- package/dist/sdk.d.ts.map +1 -1
- package/dist/sdk.js +77 -107
- package/dist/sdk.js.map +1 -1
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -1
- package/dist/utils/index.js.map +1 -1
- package/package.json +5 -7
- package/dist/api/websocket/base-ws-client.d.ts +0 -85
- package/dist/api/websocket/base-ws-client.d.ts.map +0 -1
- package/dist/api/websocket/base-ws-client.js +0 -256
- package/dist/api/websocket/base-ws-client.js.map +0 -1
- package/dist/api/websocket/clients/ohlcv-ws-client.d.ts +0 -57
- package/dist/api/websocket/clients/ohlcv-ws-client.d.ts.map +0 -1
- package/dist/api/websocket/clients/ohlcv-ws-client.js +0 -132
- package/dist/api/websocket/clients/ohlcv-ws-client.js.map +0 -1
- package/dist/api/websocket/clients/orderbook-ws-client.d.ts +0 -70
- package/dist/api/websocket/clients/orderbook-ws-client.d.ts.map +0 -1
- package/dist/api/websocket/clients/orderbook-ws-client.js +0 -197
- package/dist/api/websocket/clients/orderbook-ws-client.js.map +0 -1
- package/dist/api/websocket/clients/orders-ws-client.d.ts +0 -61
- package/dist/api/websocket/clients/orders-ws-client.d.ts.map +0 -1
- package/dist/api/websocket/clients/orders-ws-client.js +0 -150
- package/dist/api/websocket/clients/orders-ws-client.js.map +0 -1
- package/dist/errors.d.ts +0 -103
- package/dist/errors.d.ts.map +0 -1
- package/dist/errors.js +0 -108
- package/dist/errors.js.map +0 -1
- package/dist/networks.d.ts.map +0 -1
- package/dist/networks.js.map +0 -1
package/dist/api/vault/api.d.ts
CHANGED
|
@@ -27,14 +27,15 @@
|
|
|
27
27
|
* console.log(`Deposit transaction: ${result.hash}`);
|
|
28
28
|
* ```
|
|
29
29
|
*/
|
|
30
|
-
import type { ApplicationsAPI, Balance, TransactionResult, VaultAPI } from "@0xmonaco/types";
|
|
30
|
+
import type { ApplicationsAPI, Balance, ProfileAPI, TransactionResult, VaultAPI } from "@0xmonaco/types";
|
|
31
31
|
import { type Address, type Chain, type PublicClient, type WalletClient } from "viem";
|
|
32
|
-
import { BaseAPI } from "../base
|
|
32
|
+
import { BaseAPI } from "../base";
|
|
33
33
|
export declare class VaultAPIImpl extends BaseAPI implements VaultAPI {
|
|
34
34
|
private readonly publicClient;
|
|
35
35
|
private readonly walletClient;
|
|
36
36
|
private readonly chain;
|
|
37
37
|
private applicationsAPI;
|
|
38
|
+
private profileAPI;
|
|
38
39
|
/**
|
|
39
40
|
* Creates a new VaultAPI instance.
|
|
40
41
|
*
|
|
@@ -42,9 +43,10 @@ export declare class VaultAPIImpl extends BaseAPI implements VaultAPI {
|
|
|
42
43
|
* @param walletClient - The viem wallet client for signing transactions
|
|
43
44
|
* @param chain - The blockchain network configuration
|
|
44
45
|
* @param applicationsAPI - The applications API instance for fetching vault address
|
|
46
|
+
* @param profileAPI - The profile API instance for fetching asset information
|
|
45
47
|
* @param apiUrl - The base URL for the Monaco API Gateway
|
|
46
48
|
*/
|
|
47
|
-
constructor(publicClient: PublicClient, walletClient: WalletClient, chain: Chain, applicationsAPI: ApplicationsAPI, apiUrl: string);
|
|
49
|
+
constructor(publicClient: PublicClient, walletClient: WalletClient, chain: Chain, applicationsAPI: ApplicationsAPI, profileAPI: ProfileAPI, apiUrl: string);
|
|
48
50
|
/**
|
|
49
51
|
* Fetches the vault contract address from the applications API.
|
|
50
52
|
*
|
|
@@ -66,7 +68,6 @@ export declare class VaultAPIImpl extends BaseAPI implements VaultAPI {
|
|
|
66
68
|
* @returns Promise resolving to TransactionResult with transaction details
|
|
67
69
|
* @throws {ContractError} When approval transaction fails
|
|
68
70
|
* @throws {InvalidConfigError} When wallet account is not available
|
|
69
|
-
* @throws {TransactionError} When transaction signing fails
|
|
70
71
|
*
|
|
71
72
|
* @example
|
|
72
73
|
* ```typescript
|
|
@@ -98,19 +99,19 @@ export declare class VaultAPIImpl extends BaseAPI implements VaultAPI {
|
|
|
98
99
|
*
|
|
99
100
|
* Note: This method requires prior approval via the approve() method.
|
|
100
101
|
*
|
|
101
|
-
* @param
|
|
102
|
+
* @param assetId - The asset identifier (UUID) to deposit
|
|
102
103
|
* @param amount - The amount of tokens to deposit (as bigint)
|
|
103
104
|
* @param autoWait - Whether to automatically wait for transaction confirmation (defaults to true)
|
|
104
105
|
* @returns Promise resolving to TransactionResult with transaction details
|
|
105
106
|
* @throws {ContractError} When deposit fails or approval is insufficient
|
|
107
|
+
* @throws {APIError} When the asset is not found or the assetId is invalid
|
|
106
108
|
* @throws {InvalidConfigError} When wallet account is not available
|
|
107
|
-
* @throws {TransactionError} When transaction signing fails
|
|
108
109
|
*
|
|
109
110
|
* @example
|
|
110
111
|
* ```typescript
|
|
111
112
|
* // Deposit 100 USDC into the vault (auto-waits by default)
|
|
112
113
|
* const result = await vaultAPI.deposit(
|
|
113
|
-
* "
|
|
114
|
+
* "123e4567-e89b-12d3-a456-426614174000",
|
|
114
115
|
* parseUnits("100", 6)
|
|
115
116
|
* );
|
|
116
117
|
* console.log(`Deposit transaction: ${result.hash}`);
|
|
@@ -118,7 +119,7 @@ export declare class VaultAPIImpl extends BaseAPI implements VaultAPI {
|
|
|
118
119
|
*
|
|
119
120
|
* // Or skip auto-waiting
|
|
120
121
|
* const result = await vaultAPI.deposit(
|
|
121
|
-
* "
|
|
122
|
+
* "123e4567-e89b-12d3-a456-426614174000",
|
|
122
123
|
* parseUnits("100", 6),
|
|
123
124
|
* false
|
|
124
125
|
* );
|
|
@@ -126,7 +127,7 @@ export declare class VaultAPIImpl extends BaseAPI implements VaultAPI {
|
|
|
126
127
|
* const receipt = await sdk.waitForTransaction(result.hash);
|
|
127
128
|
* ```
|
|
128
129
|
*/
|
|
129
|
-
deposit(
|
|
130
|
+
deposit(assetId: string, amount: bigint, autoWait?: boolean): Promise<TransactionResult>;
|
|
130
131
|
/**
|
|
131
132
|
* Withdraws tokens from the Monaco vault.
|
|
132
133
|
*
|
|
@@ -134,20 +135,19 @@ export declare class VaultAPIImpl extends BaseAPI implements VaultAPI {
|
|
|
134
135
|
* user's wallet. The method obtains a signature from the API Gateway and then
|
|
135
136
|
* executes the withdrawal transaction on-chain.
|
|
136
137
|
*
|
|
137
|
-
* @param
|
|
138
|
+
* @param assetId - The asset identifier (UUID) to withdraw
|
|
138
139
|
* @param amount - The amount of tokens to withdraw (as bigint)
|
|
139
140
|
* @param autoWait - Whether to automatically wait for transaction confirmation (defaults to true)
|
|
140
141
|
* @returns Promise resolving to TransactionResult with transaction details
|
|
141
142
|
* @throws {ContractError} When withdrawal fails
|
|
142
|
-
* @throws {APIError} When signature retrieval fails
|
|
143
|
+
* @throws {APIError} When signature retrieval fails or the asset is not found/assetId is invalid
|
|
143
144
|
* @throws {InvalidConfigError} When wallet account is not available
|
|
144
|
-
* @throws {TransactionError} When transaction signing fails
|
|
145
145
|
*
|
|
146
146
|
* @example
|
|
147
147
|
* ```typescript
|
|
148
148
|
* // Withdraw 50 USDC from the vault (auto-waits by default)
|
|
149
149
|
* const result = await vaultAPI.withdraw(
|
|
150
|
-
* "
|
|
150
|
+
* "123e4567-e89b-12d3-a456-426614174000",
|
|
151
151
|
* parseUnits("50", 6)
|
|
152
152
|
* );
|
|
153
153
|
* console.log(`Withdrawal transaction: ${result.hash}`);
|
|
@@ -155,7 +155,7 @@ export declare class VaultAPIImpl extends BaseAPI implements VaultAPI {
|
|
|
155
155
|
*
|
|
156
156
|
* // Or skip auto-waiting
|
|
157
157
|
* const result = await vaultAPI.withdraw(
|
|
158
|
-
* "
|
|
158
|
+
* "123e4567-e89b-12d3-a456-426614174000",
|
|
159
159
|
* parseUnits("50", 6),
|
|
160
160
|
* false
|
|
161
161
|
* );
|
|
@@ -163,7 +163,7 @@ export declare class VaultAPIImpl extends BaseAPI implements VaultAPI {
|
|
|
163
163
|
* const receipt = await sdk.waitForTransaction(result.hash);
|
|
164
164
|
* ```
|
|
165
165
|
*/
|
|
166
|
-
withdraw(
|
|
166
|
+
withdraw(assetId: string, amount: bigint, autoWait?: boolean): Promise<TransactionResult>;
|
|
167
167
|
/**
|
|
168
168
|
* Retrieves the user's token balance in the vault.
|
|
169
169
|
*
|
|
@@ -231,9 +231,8 @@ export declare class VaultAPIImpl extends BaseAPI implements VaultAPI {
|
|
|
231
231
|
* the cryptographic signature required for deposit transactions. The signature
|
|
232
232
|
* validates the deposit request and ensures proper authorization.
|
|
233
233
|
*
|
|
234
|
-
* @param
|
|
234
|
+
* @param assetId - The asset identifier (UUID) to deposit
|
|
235
235
|
* @param amount - The amount to deposit (as bigint)
|
|
236
|
-
* @param userAddress - The user's wallet address
|
|
237
236
|
* @returns Promise resolving to object containing seed and signature
|
|
238
237
|
* @throws {APIError} When signature retrieval fails
|
|
239
238
|
* @private
|
|
@@ -246,9 +245,8 @@ export declare class VaultAPIImpl extends BaseAPI implements VaultAPI {
|
|
|
246
245
|
* the cryptographic signature required for withdrawal transactions. The signature
|
|
247
246
|
* validates the withdrawal request and ensures proper authorization.
|
|
248
247
|
*
|
|
249
|
-
* @param
|
|
248
|
+
* @param assetId - The asset identifier (UUID) to withdraw
|
|
250
249
|
* @param amount - The amount to withdraw (as bigint)
|
|
251
|
-
* @param userAddress - The user's wallet address
|
|
252
250
|
* @returns Promise resolving to object containing seed and signature
|
|
253
251
|
* @throws {APIError} When signature retrieval fails
|
|
254
252
|
* @private
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/api/vault/api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/api/vault/api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEzG,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,KAAK,EAAgD,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,MAAM,CAAC;AAEpI,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,qBAAa,YAAa,SAAQ,OAAQ,YAAW,QAAQ;IAezD,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,KAAK;IAhBxB,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,UAAU,CAAa;IAE/B;;;;;;;;;OASG;gBAEgB,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,KAAK,EAC7B,eAAe,EAAE,eAAe,EAChC,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,MAAM;IAOhB;;;;;;OAMG;IACG,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;IAKzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;IACG,OAAO,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAE,OAAc,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAiC1G;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoCG;IACG,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAE,OAAc,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAmDpG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkCG;IACG,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAE,OAAc,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA4CrG;;;;;;;;;;;;;;;;OAgBG;IACG,UAAU,CAAC,YAAY,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAkCzD;;;;;;;;;;;;;;;OAeG;IACG,YAAY,CAAC,YAAY,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAY1D;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACG,aAAa,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAK5E;;;;;;;;;;;;OAYG;YACW,mBAAmB;IAiBjC;;;;;;;;;;;;OAYG;YACW,oBAAoB;YAiBpB,kBAAkB;CA8BjC"}
|
package/dist/api/vault/api.js
CHANGED
|
@@ -28,9 +28,10 @@
|
|
|
28
28
|
* ```
|
|
29
29
|
*/
|
|
30
30
|
import { CONTRACT_ABIS } from "@0xmonaco/contracts";
|
|
31
|
+
import { ApproveTokenSchema, DepositSchema, GetBalanceSchema, validate, WithdrawSchema } from "@0xmonaco/types";
|
|
31
32
|
import { erc20Abi, formatUnits, getContract } from "viem";
|
|
32
|
-
import { ContractError, InvalidConfigError } from "../../errors
|
|
33
|
-
import { BaseAPI } from "../base
|
|
33
|
+
import { ContractError, InvalidConfigError } from "../../errors";
|
|
34
|
+
import { BaseAPI } from "../base";
|
|
34
35
|
export class VaultAPIImpl extends BaseAPI {
|
|
35
36
|
/**
|
|
36
37
|
* Creates a new VaultAPI instance.
|
|
@@ -39,14 +40,16 @@ export class VaultAPIImpl extends BaseAPI {
|
|
|
39
40
|
* @param walletClient - The viem wallet client for signing transactions
|
|
40
41
|
* @param chain - The blockchain network configuration
|
|
41
42
|
* @param applicationsAPI - The applications API instance for fetching vault address
|
|
43
|
+
* @param profileAPI - The profile API instance for fetching asset information
|
|
42
44
|
* @param apiUrl - The base URL for the Monaco API Gateway
|
|
43
45
|
*/
|
|
44
|
-
constructor(publicClient, walletClient, chain, applicationsAPI, apiUrl) {
|
|
46
|
+
constructor(publicClient, walletClient, chain, applicationsAPI, profileAPI, apiUrl) {
|
|
45
47
|
super(apiUrl);
|
|
46
48
|
this.publicClient = publicClient;
|
|
47
49
|
this.walletClient = walletClient;
|
|
48
50
|
this.chain = chain;
|
|
49
51
|
this.applicationsAPI = applicationsAPI;
|
|
52
|
+
this.profileAPI = profileAPI;
|
|
50
53
|
}
|
|
51
54
|
/**
|
|
52
55
|
* Fetches the vault contract address from the applications API.
|
|
@@ -72,7 +75,6 @@ export class VaultAPIImpl extends BaseAPI {
|
|
|
72
75
|
* @returns Promise resolving to TransactionResult with transaction details
|
|
73
76
|
* @throws {ContractError} When approval transaction fails
|
|
74
77
|
* @throws {InvalidConfigError} When wallet account is not available
|
|
75
|
-
* @throws {TransactionError} When transaction signing fails
|
|
76
78
|
*
|
|
77
79
|
* @example
|
|
78
80
|
* ```typescript
|
|
@@ -95,6 +97,8 @@ export class VaultAPIImpl extends BaseAPI {
|
|
|
95
97
|
* ```
|
|
96
98
|
*/
|
|
97
99
|
async approve(tokenAddress, amount, autoWait = true) {
|
|
100
|
+
// Validate inputs
|
|
101
|
+
validate(ApproveTokenSchema, { tokenAddress, amount, autoWait });
|
|
98
102
|
const vaultAddress = await this.getVaultAddress();
|
|
99
103
|
const account = this.walletClient.account;
|
|
100
104
|
if (!account) {
|
|
@@ -127,19 +131,19 @@ export class VaultAPIImpl extends BaseAPI {
|
|
|
127
131
|
*
|
|
128
132
|
* Note: This method requires prior approval via the approve() method.
|
|
129
133
|
*
|
|
130
|
-
* @param
|
|
134
|
+
* @param assetId - The asset identifier (UUID) to deposit
|
|
131
135
|
* @param amount - The amount of tokens to deposit (as bigint)
|
|
132
136
|
* @param autoWait - Whether to automatically wait for transaction confirmation (defaults to true)
|
|
133
137
|
* @returns Promise resolving to TransactionResult with transaction details
|
|
134
138
|
* @throws {ContractError} When deposit fails or approval is insufficient
|
|
139
|
+
* @throws {APIError} When the asset is not found or the assetId is invalid
|
|
135
140
|
* @throws {InvalidConfigError} When wallet account is not available
|
|
136
|
-
* @throws {TransactionError} When transaction signing fails
|
|
137
141
|
*
|
|
138
142
|
* @example
|
|
139
143
|
* ```typescript
|
|
140
144
|
* // Deposit 100 USDC into the vault (auto-waits by default)
|
|
141
145
|
* const result = await vaultAPI.deposit(
|
|
142
|
-
* "
|
|
146
|
+
* "123e4567-e89b-12d3-a456-426614174000",
|
|
143
147
|
* parseUnits("100", 6)
|
|
144
148
|
* );
|
|
145
149
|
* console.log(`Deposit transaction: ${result.hash}`);
|
|
@@ -147,7 +151,7 @@ export class VaultAPIImpl extends BaseAPI {
|
|
|
147
151
|
*
|
|
148
152
|
* // Or skip auto-waiting
|
|
149
153
|
* const result = await vaultAPI.deposit(
|
|
150
|
-
* "
|
|
154
|
+
* "123e4567-e89b-12d3-a456-426614174000",
|
|
151
155
|
* parseUnits("100", 6),
|
|
152
156
|
* false
|
|
153
157
|
* );
|
|
@@ -155,17 +159,30 @@ export class VaultAPIImpl extends BaseAPI {
|
|
|
155
159
|
* const receipt = await sdk.waitForTransaction(result.hash);
|
|
156
160
|
* ```
|
|
157
161
|
*/
|
|
158
|
-
async deposit(
|
|
162
|
+
async deposit(assetId, amount, autoWait = true) {
|
|
163
|
+
// Validate inputs
|
|
164
|
+
validate(DepositSchema, { assetId, amount, autoWait });
|
|
159
165
|
const vaultAddress = await this.getVaultAddress();
|
|
166
|
+
// Look up token address from asset ID
|
|
167
|
+
let tokenAddress;
|
|
168
|
+
try {
|
|
169
|
+
const assetBalance = await this.profileAPI.getUserBalanceByAssetId(assetId);
|
|
170
|
+
tokenAddress = assetBalance.token;
|
|
171
|
+
}
|
|
172
|
+
catch (error) {
|
|
173
|
+
throw new ContractError(`Failed to resolve asset ID '${assetId}': Asset not found or invalid`, {
|
|
174
|
+
revertReason: "ASSET_NOT_FOUND",
|
|
175
|
+
});
|
|
176
|
+
}
|
|
160
177
|
// Check if approval is needed before proceeding
|
|
161
178
|
const needsApproval = await this.needsApproval(tokenAddress, amount);
|
|
162
179
|
if (needsApproval) {
|
|
163
|
-
throw new ContractError(`Approval required before deposit. Please invoke approve() first for token ${tokenAddress}
|
|
180
|
+
throw new ContractError(`Approval required before deposit. Please invoke approve() first for asset ${assetId} (token address: ${tokenAddress}).`, {
|
|
181
|
+
revertReason: "APPROVAL_REQUIRED",
|
|
182
|
+
});
|
|
164
183
|
}
|
|
165
|
-
// Get
|
|
166
|
-
const
|
|
167
|
-
// Get signature from backend API
|
|
168
|
-
const { seed, signature } = await this.getDepositSignature(tokenAddress, amount, account);
|
|
184
|
+
// Get signature from backend API using asset_id
|
|
185
|
+
const { seed, signature } = await this.getDepositSignature(assetId, amount);
|
|
169
186
|
const walletAccount = this.walletClient.account;
|
|
170
187
|
if (!walletAccount) {
|
|
171
188
|
throw new InvalidConfigError("No account available in wallet client", "account");
|
|
@@ -193,20 +210,19 @@ export class VaultAPIImpl extends BaseAPI {
|
|
|
193
210
|
* user's wallet. The method obtains a signature from the API Gateway and then
|
|
194
211
|
* executes the withdrawal transaction on-chain.
|
|
195
212
|
*
|
|
196
|
-
* @param
|
|
213
|
+
* @param assetId - The asset identifier (UUID) to withdraw
|
|
197
214
|
* @param amount - The amount of tokens to withdraw (as bigint)
|
|
198
215
|
* @param autoWait - Whether to automatically wait for transaction confirmation (defaults to true)
|
|
199
216
|
* @returns Promise resolving to TransactionResult with transaction details
|
|
200
217
|
* @throws {ContractError} When withdrawal fails
|
|
201
|
-
* @throws {APIError} When signature retrieval fails
|
|
218
|
+
* @throws {APIError} When signature retrieval fails or the asset is not found/assetId is invalid
|
|
202
219
|
* @throws {InvalidConfigError} When wallet account is not available
|
|
203
|
-
* @throws {TransactionError} When transaction signing fails
|
|
204
220
|
*
|
|
205
221
|
* @example
|
|
206
222
|
* ```typescript
|
|
207
223
|
* // Withdraw 50 USDC from the vault (auto-waits by default)
|
|
208
224
|
* const result = await vaultAPI.withdraw(
|
|
209
|
-
* "
|
|
225
|
+
* "123e4567-e89b-12d3-a456-426614174000",
|
|
210
226
|
* parseUnits("50", 6)
|
|
211
227
|
* );
|
|
212
228
|
* console.log(`Withdrawal transaction: ${result.hash}`);
|
|
@@ -214,7 +230,7 @@ export class VaultAPIImpl extends BaseAPI {
|
|
|
214
230
|
*
|
|
215
231
|
* // Or skip auto-waiting
|
|
216
232
|
* const result = await vaultAPI.withdraw(
|
|
217
|
-
* "
|
|
233
|
+
* "123e4567-e89b-12d3-a456-426614174000",
|
|
218
234
|
* parseUnits("50", 6),
|
|
219
235
|
* false
|
|
220
236
|
* );
|
|
@@ -222,11 +238,22 @@ export class VaultAPIImpl extends BaseAPI {
|
|
|
222
238
|
* const receipt = await sdk.waitForTransaction(result.hash);
|
|
223
239
|
* ```
|
|
224
240
|
*/
|
|
225
|
-
async withdraw(
|
|
241
|
+
async withdraw(assetId, amount, autoWait = true) {
|
|
242
|
+
validate(WithdrawSchema, { assetId, amount, autoWait });
|
|
226
243
|
const vaultAddress = await this.getVaultAddress();
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
244
|
+
// Look up token address from asset ID
|
|
245
|
+
let tokenAddress;
|
|
246
|
+
try {
|
|
247
|
+
const assetBalance = await this.profileAPI.getUserBalanceByAssetId(assetId);
|
|
248
|
+
tokenAddress = assetBalance.token;
|
|
249
|
+
}
|
|
250
|
+
catch (error) {
|
|
251
|
+
throw new ContractError(`Failed to resolve asset ID '${assetId}': Asset not found or invalid`, {
|
|
252
|
+
revertReason: "ASSET_NOT_FOUND",
|
|
253
|
+
});
|
|
254
|
+
}
|
|
255
|
+
// Get signature from backend API using asset_id
|
|
256
|
+
const { seed, signature } = await this.getWithdrawSignature(assetId, amount);
|
|
230
257
|
const walletAccount = this.walletClient.account;
|
|
231
258
|
if (!walletAccount) {
|
|
232
259
|
throw new InvalidConfigError("No account available in wallet client", "account");
|
|
@@ -267,6 +294,8 @@ export class VaultAPIImpl extends BaseAPI {
|
|
|
267
294
|
* ```
|
|
268
295
|
*/
|
|
269
296
|
async getBalance(tokenAddress) {
|
|
297
|
+
// Validate inputs
|
|
298
|
+
validate(GetBalanceSchema, { tokenAddress });
|
|
270
299
|
const vaultAddress = await this.getVaultAddress();
|
|
271
300
|
const [account] = await this.walletClient.getAddresses();
|
|
272
301
|
// Get balance from vault contract
|
|
@@ -352,28 +381,18 @@ export class VaultAPIImpl extends BaseAPI {
|
|
|
352
381
|
* the cryptographic signature required for deposit transactions. The signature
|
|
353
382
|
* validates the deposit request and ensures proper authorization.
|
|
354
383
|
*
|
|
355
|
-
* @param
|
|
384
|
+
* @param assetId - The asset identifier (UUID) to deposit
|
|
356
385
|
* @param amount - The amount to deposit (as bigint)
|
|
357
|
-
* @param userAddress - The user's wallet address
|
|
358
386
|
* @returns Promise resolving to object containing seed and signature
|
|
359
387
|
* @throws {APIError} When signature retrieval fails
|
|
360
388
|
* @private
|
|
361
389
|
*/
|
|
362
|
-
async getDepositSignature(
|
|
363
|
-
const vaultAddress = await this.getVaultAddress();
|
|
364
|
-
// Generate a unique nonce and expiry for this transaction
|
|
365
|
-
const nonce = Math.floor(Date.now() / 1000); // Current timestamp as nonce
|
|
366
|
-
const expiry = Math.floor(Date.now() / 1000) + 3600; // 1 hour from now
|
|
390
|
+
async getDepositSignature(assetId, amount) {
|
|
367
391
|
const data = await this.makeAuthenticatedRequest("/api/v1/deposit/signature", {
|
|
368
392
|
method: "POST",
|
|
369
393
|
body: JSON.stringify({
|
|
370
|
-
|
|
371
|
-
token_address: tokenAddress, // Include token address separately
|
|
372
|
-
chain_id: this.chain.id,
|
|
394
|
+
asset_id: assetId,
|
|
373
395
|
amount: amount.toString(),
|
|
374
|
-
user_address: userAddress,
|
|
375
|
-
nonce,
|
|
376
|
-
expiry,
|
|
377
396
|
}),
|
|
378
397
|
});
|
|
379
398
|
return {
|
|
@@ -388,25 +407,18 @@ export class VaultAPIImpl extends BaseAPI {
|
|
|
388
407
|
* the cryptographic signature required for withdrawal transactions. The signature
|
|
389
408
|
* validates the withdrawal request and ensures proper authorization.
|
|
390
409
|
*
|
|
391
|
-
* @param
|
|
410
|
+
* @param assetId - The asset identifier (UUID) to withdraw
|
|
392
411
|
* @param amount - The amount to withdraw (as bigint)
|
|
393
|
-
* @param userAddress - The user's wallet address
|
|
394
412
|
* @returns Promise resolving to object containing seed and signature
|
|
395
413
|
* @throws {APIError} When signature retrieval fails
|
|
396
414
|
* @private
|
|
397
415
|
*/
|
|
398
|
-
async getWithdrawSignature(
|
|
399
|
-
const vaultAddress = await this.getVaultAddress();
|
|
416
|
+
async getWithdrawSignature(assetId, amount) {
|
|
400
417
|
const data = await this.makeAuthenticatedRequest("/api/v1/withdraw/signature", {
|
|
401
418
|
method: "POST",
|
|
402
419
|
body: JSON.stringify({
|
|
403
|
-
|
|
404
|
-
token_address: tokenAddress, // Include token address separately
|
|
405
|
-
chain_id: this.chain.id,
|
|
420
|
+
asset_id: assetId,
|
|
406
421
|
amount: amount.toString(),
|
|
407
|
-
user_address: userAddress,
|
|
408
|
-
nonce: Math.floor(Date.now() / 1000),
|
|
409
|
-
expiry: Math.floor(Date.now() / 1000) + 3600,
|
|
410
422
|
}),
|
|
411
423
|
});
|
|
412
424
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/api/vault/api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAA4B,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAkD,MAAM,MAAM,CAAC;AACpI,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/api/vault/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/vault/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/vault/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC"}
|
package/dist/api/vault/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/vault/index.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/vault/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC"}
|
|
@@ -1,10 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
* Exports Base WebSocket client implementation + Orders WebSocket client implementation + OHLCV WebSocket client implementation + Orderbook WebSocket client implementation
|
|
5
|
-
*/
|
|
6
|
-
export { BaseWebSocketClientImpl } from "./base-ws-client.js";
|
|
7
|
-
export { OHLCVWebSocketClientImpl } from "./clients/ohlcv-ws-client.js";
|
|
8
|
-
export { OrderbookWebSocketClientImpl } from "./clients/orderbook-ws-client.js";
|
|
9
|
-
export { OrdersWebSocketClientImpl } from "./clients/orders-ws-client.js";
|
|
1
|
+
export * from "./types";
|
|
2
|
+
export * from "./utils";
|
|
3
|
+
export * from "./websocket";
|
|
10
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/websocket/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/websocket/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC"}
|
|
@@ -1,10 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
* Exports Base WebSocket client implementation + Orders WebSocket client implementation + OHLCV WebSocket client implementation + Orderbook WebSocket client implementation
|
|
5
|
-
*/
|
|
6
|
-
export { BaseWebSocketClientImpl } from "./base-ws-client.js";
|
|
7
|
-
export { OHLCVWebSocketClientImpl } from "./clients/ohlcv-ws-client.js";
|
|
8
|
-
export { OrderbookWebSocketClientImpl } from "./clients/orderbook-ws-client.js";
|
|
9
|
-
export { OrdersWebSocketClientImpl } from "./clients/orders-ws-client.js";
|
|
1
|
+
export * from "./types";
|
|
2
|
+
export * from "./utils";
|
|
3
|
+
export * from "./websocket";
|
|
10
4
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/websocket/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/websocket/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { Interval, OHLCVEvent, OrderbookEvent, OrderbookQuotationMode, OrderEvent, TradeEvent, TradingMode, WebSocketStatus } from "@0xmonaco/types";
|
|
2
|
+
export type StatusHandler = (status: WebSocketStatus) => void;
|
|
3
|
+
export type MessageHandler<T> = (data: T) => void;
|
|
4
|
+
export interface MonacoWebSocketOptions {
|
|
5
|
+
/** JWT access token for authenticated channels (orders) */
|
|
6
|
+
token?: string;
|
|
7
|
+
/** Enable auto-reconnect on disconnect (default: true) */
|
|
8
|
+
autoReconnect?: boolean;
|
|
9
|
+
/** Maximum reconnection attempts (default: 5) */
|
|
10
|
+
maxReconnectAttempts?: number;
|
|
11
|
+
/** Callback for connection status changes */
|
|
12
|
+
onStatusChange?: StatusHandler;
|
|
13
|
+
}
|
|
14
|
+
export interface MonacoWebSocket {
|
|
15
|
+
/** Connect to the WebSocket server */
|
|
16
|
+
connect: () => Promise<void>;
|
|
17
|
+
/** Disconnect from the WebSocket server */
|
|
18
|
+
disconnect: () => void;
|
|
19
|
+
/** Check if currently connected */
|
|
20
|
+
isConnected: () => boolean;
|
|
21
|
+
/** Get current websocket connection status */
|
|
22
|
+
getStatus: () => WebSocketStatus;
|
|
23
|
+
/** Update the access token (for re-auth) */
|
|
24
|
+
setToken: (token: string) => void;
|
|
25
|
+
/** Subscribe to order events (requires authentication) */
|
|
26
|
+
orders: (market: string, tradingMode: TradingMode, handler: MessageHandler<OrderEvent>) => () => void;
|
|
27
|
+
/** Subscribe to orderbook events (public) */
|
|
28
|
+
orderbook: (market: string, tradingMode: TradingMode, magnitude: number, quotationMode: OrderbookQuotationMode, handler: MessageHandler<OrderbookEvent>) => () => void;
|
|
29
|
+
/** Subscribe to OHLCV candlestick events (public) */
|
|
30
|
+
ohlcv: (symbol: string, tradingMode: TradingMode, interval: Interval, handler: MessageHandler<OHLCVEvent>) => () => void;
|
|
31
|
+
/** Subscribe to trade events (public) */
|
|
32
|
+
trades: (tradingPairId: string, handler: MessageHandler<TradeEvent>) => () => void;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/api/websocket/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,cAAc,EAAE,sBAAsB,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAE1J,MAAM,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAC;AAC9D,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;AAElD,MAAM,WAAW,sBAAsB;IACrC,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0DAA0D;IAC1D,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,iDAAiD;IACjD,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,6CAA6C;IAC7C,cAAc,CAAC,EAAE,aAAa,CAAC;CAChC;AAED,MAAM,WAAW,eAAe;IAC9B,sCAAsC;IACtC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,2CAA2C;IAC3C,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,mCAAmC;IACnC,WAAW,EAAE,MAAM,OAAO,CAAC;IAC3B,8CAA8C;IAC9C,SAAS,EAAE,MAAM,eAAe,CAAC;IACjC,4CAA4C;IAC5C,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAElC,0DAA0D;IAC1D,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,CAAC,UAAU,CAAC,KAAK,MAAM,IAAI,CAAC;IAEtG,6CAA6C;IAC7C,SAAS,EAAE,CACT,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,sBAAsB,EACrC,OAAO,EAAE,cAAc,CAAC,cAAc,CAAC,KACpC,MAAM,IAAI,CAAC;IAEhB,qDAAqD;IACrD,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,CAAC,UAAU,CAAC,KAAK,MAAM,IAAI,CAAC;IAEzH,yCAAyC;IACzC,MAAM,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,CAAC,UAAU,CAAC,KAAK,MAAM,IAAI,CAAC;CACpF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/api/websocket/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Convert snake_case to camelCase
|
|
3
|
+
*/
|
|
4
|
+
export declare function toCamelCase(str: string): string;
|
|
5
|
+
/**
|
|
6
|
+
* Recursively convert object keys from snake_case to camelCase
|
|
7
|
+
*/
|
|
8
|
+
export declare function keysToCamelCase<T>(obj: unknown): T;
|
|
9
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/api/websocket/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,GAAG,CAAC,CAUlD"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Convert snake_case to camelCase
|
|
3
|
+
*/
|
|
4
|
+
export function toCamelCase(str) {
|
|
5
|
+
return str.replace(/_([a-z])/g, (_, letter) => letter.toUpperCase());
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Recursively convert object keys from snake_case to camelCase
|
|
9
|
+
*/
|
|
10
|
+
export function keysToCamelCase(obj) {
|
|
11
|
+
if (obj === null || obj === undefined)
|
|
12
|
+
return obj;
|
|
13
|
+
if (typeof obj !== "object")
|
|
14
|
+
return obj;
|
|
15
|
+
if (Array.isArray(obj))
|
|
16
|
+
return obj.map((item) => keysToCamelCase(item));
|
|
17
|
+
const result = {};
|
|
18
|
+
for (const [key, value] of Object.entries(obj)) {
|
|
19
|
+
result[toCamelCase(key)] = typeof value === "object" && value !== null ? keysToCamelCase(value) : value;
|
|
20
|
+
}
|
|
21
|
+
return result;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/api/websocket/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,OAAO,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;AACvE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAI,GAAY;IAC7C,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,GAAQ,CAAC;IACvD,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,GAAQ,CAAC;IAC7C,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAM,CAAC;IAE7E,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/C,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC1G,CAAC;IACD,OAAO,MAAW,CAAC;AACrB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { MonacoWebSocket, MonacoWebSocketOptions } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* Create a Monaco WebSocket client
|
|
4
|
+
*/
|
|
5
|
+
export declare function createMonacoWebSocket(baseUrl: string, options?: MonacoWebSocketOptions): MonacoWebSocket;
|
|
6
|
+
//# sourceMappingURL=websocket.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"websocket.d.ts","sourceRoot":"","sources":["../../../src/api/websocket/websocket.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAkB,eAAe,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAQvF;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,sBAA2B,GAAG,eAAe,CAiV5G"}
|