@0xmonaco/core 0.1.5 → 0.1.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/dist/api/applications/api.d.ts +45 -0
- package/dist/api/applications/api.d.ts.map +1 -0
- package/dist/api/applications/api.js +61 -0
- package/dist/api/applications/api.js.map +1 -0
- package/dist/api/applications/index.d.ts +6 -0
- package/dist/api/applications/index.d.ts.map +1 -0
- package/dist/api/applications/index.js +5 -0
- package/dist/api/applications/index.js.map +1 -0
- package/dist/api/auth/api.d.ts +5 -5
- package/dist/api/auth/api.d.ts.map +1 -1
- package/dist/api/auth/api.js +6 -6
- package/dist/api/auth/api.js.map +1 -1
- package/dist/api/auth/index.d.ts +1 -1
- package/dist/api/index.d.ts +4 -2
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +4 -2
- package/dist/api/index.js.map +1 -1
- package/dist/api/trading/api.d.ts +20 -4
- package/dist/api/trading/api.d.ts.map +1 -1
- package/dist/api/trading/api.js +20 -4
- package/dist/api/trading/api.js.map +1 -1
- package/dist/api/trading/index.d.ts +1 -1
- package/dist/api/vault/api.d.ts +14 -4
- package/dist/api/vault/api.d.ts.map +1 -1
- package/dist/api/vault/api.js +37 -3
- package/dist/api/vault/api.js.map +1 -1
- package/dist/api/vault/index.d.ts +1 -1
- package/dist/api/websocket/client.d.ts +57 -0
- package/dist/api/websocket/client.d.ts.map +1 -0
- package/dist/api/websocket/client.js +207 -0
- package/dist/api/websocket/client.js.map +1 -0
- package/dist/api/websocket/index.d.ts +7 -0
- package/dist/api/websocket/index.d.ts.map +1 -0
- package/dist/api/websocket/index.js +7 -0
- package/dist/api/websocket/index.js.map +1 -0
- package/dist/errors.d.ts +67 -76
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/networks.d.ts +1 -1
- package/dist/sdk.d.ts +3 -2
- package/dist/sdk.d.ts.map +1 -1
- package/dist/sdk.js +18 -13
- package/dist/sdk.js.map +1 -1
- package/package.json +3 -3
- package/dist/chains.d.ts +0 -110
- package/dist/chains.d.ts.map +0 -1
- package/dist/chains.js +0 -56
- package/dist/chains.js.map +0 -1
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WebSocket Client Implementation
|
|
3
|
+
*
|
|
4
|
+
* Production-ready WebSocket client with:
|
|
5
|
+
* - Message queuing and retry logic
|
|
6
|
+
* - Heartbeat/ping-pong for connection health
|
|
7
|
+
* - Exponential backoff reconnection
|
|
8
|
+
* - Event-driven error handling
|
|
9
|
+
* - JWT authentication via query parameters
|
|
10
|
+
*/
|
|
11
|
+
import type { WebSocketClient, WebSocketConfig, ConnectionStatus } from "@0xmonaco/types";
|
|
12
|
+
/**
|
|
13
|
+
* WebSocket client implementation for Monaco Protocol
|
|
14
|
+
*/
|
|
15
|
+
export declare class WebSocketClientImpl implements WebSocketClient {
|
|
16
|
+
private static readonly CONNECTION_TIMEOUT;
|
|
17
|
+
private static readonly HEARTBEAT_INTERVAL;
|
|
18
|
+
private static readonly HEARTBEAT_TIMEOUT;
|
|
19
|
+
private static readonly MAX_RECONNECT_DELAY;
|
|
20
|
+
private ws;
|
|
21
|
+
private config;
|
|
22
|
+
private connectionStatus;
|
|
23
|
+
private reconnectAttempts;
|
|
24
|
+
private reconnectTimer;
|
|
25
|
+
private messageQueue;
|
|
26
|
+
private isAuthenticated;
|
|
27
|
+
private heartbeatInterval;
|
|
28
|
+
private lastPong;
|
|
29
|
+
constructor(config: WebSocketConfig);
|
|
30
|
+
/** Connect to the WebSocket server */
|
|
31
|
+
connect(): Promise<void>;
|
|
32
|
+
/** Disconnect from the WebSocket server */
|
|
33
|
+
disconnect(): void;
|
|
34
|
+
/** Get current connection status */
|
|
35
|
+
getConnectionStatus(): ConnectionStatus;
|
|
36
|
+
/** Check if currently connected */
|
|
37
|
+
isConnected(): boolean;
|
|
38
|
+
/** Set the access token for authentication */
|
|
39
|
+
setAccessToken(token: string): void;
|
|
40
|
+
/** Send message (queues if not connected/authenticated) */
|
|
41
|
+
send(data: any): void;
|
|
42
|
+
/** Flush all queued messages */
|
|
43
|
+
private flushMessageQueue;
|
|
44
|
+
/** Start heartbeat ping/pong */
|
|
45
|
+
private startHeartbeat;
|
|
46
|
+
/** Stop heartbeat interval */
|
|
47
|
+
private stopHeartbeat;
|
|
48
|
+
/** Handle connection errors with cleanup */
|
|
49
|
+
private handleConnectionError;
|
|
50
|
+
/** Create WebSocket connection with event handlers */
|
|
51
|
+
private createConnection;
|
|
52
|
+
/** Schedule reconnect with exponential backoff */
|
|
53
|
+
private scheduleReconnect;
|
|
54
|
+
/** Stop reconnection timer */
|
|
55
|
+
private stopReconnectTimer;
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/api/websocket/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EACf,gBAAgB,EACjB,MAAM,iBAAiB,CAAC;AAEzB;;GAEG;AACH,qBAAa,mBAAoB,YAAW,eAAe;IAEzD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAS;IACnD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAS;IACnD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAClD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAS;IAGpD,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,gBAAgB,CAAoC;IAG5D,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,cAAc,CAA+B;IAGrD,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,eAAe,CAAS;IAGhC,OAAO,CAAC,iBAAiB,CAA+B;IACxD,OAAO,CAAC,QAAQ,CAAsB;gBAG1B,MAAM,EAAE,eAAe;IAUnC,sCAAsC;IAChC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAwB9B,2CAA2C;IAC3C,UAAU,IAAI,IAAI;IAclB,oCAAoC;IACpC,mBAAmB,IAAI,gBAAgB;IAIvC,mCAAmC;IACnC,WAAW,IAAI,OAAO;IAItB,8CAA8C;IAC9C,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAInC,2DAA2D;IAC3D,IAAI,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI;IAQrB,gCAAgC;IAChC,OAAO,CAAC,iBAAiB;IAOzB,gCAAgC;IAChC,OAAO,CAAC,cAAc;IAWtB,8BAA8B;IAC9B,OAAO,CAAC,aAAa;IAQrB,4CAA4C;IAC5C,OAAO,CAAC,qBAAqB;IAO7B,sDAAsD;YACxC,gBAAgB;IAuE9B,kDAAkD;IAClD,OAAO,CAAC,iBAAiB;IA2BzB,8BAA8B;IAC9B,OAAO,CAAC,kBAAkB;CAM3B"}
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WebSocket client implementation for Monaco Protocol
|
|
3
|
+
*/
|
|
4
|
+
export class WebSocketClientImpl {
|
|
5
|
+
constructor(config) {
|
|
6
|
+
// Core WebSocket properties
|
|
7
|
+
this.ws = null;
|
|
8
|
+
this.connectionStatus = "disconnected";
|
|
9
|
+
// Reconnection management
|
|
10
|
+
this.reconnectAttempts = 0;
|
|
11
|
+
this.reconnectTimer = null;
|
|
12
|
+
// Message handling
|
|
13
|
+
this.messageQueue = [];
|
|
14
|
+
this.isAuthenticated = false;
|
|
15
|
+
// Heartbeat management
|
|
16
|
+
this.heartbeatInterval = null;
|
|
17
|
+
this.lastPong = Date.now();
|
|
18
|
+
this.config = {
|
|
19
|
+
autoReconnect: true,
|
|
20
|
+
reconnectDelay: 5000,
|
|
21
|
+
maxReconnectAttempts: 5,
|
|
22
|
+
accessToken: "",
|
|
23
|
+
...config,
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
/** Connect to the WebSocket server */
|
|
27
|
+
async connect() {
|
|
28
|
+
try {
|
|
29
|
+
if (this.ws) {
|
|
30
|
+
this.ws.close(1000, 'Reconnecting');
|
|
31
|
+
this.ws = null;
|
|
32
|
+
}
|
|
33
|
+
if (this.connectionStatus === "connecting" || this.connectionStatus === "connected") {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
if (!this.config.accessToken?.trim()) {
|
|
37
|
+
throw new Error("JWT access token is required for WebSocket connection. Please call sdk.login() first.");
|
|
38
|
+
}
|
|
39
|
+
this.connectionStatus = "connecting";
|
|
40
|
+
await this.createConnection();
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
this.handleConnectionError(error);
|
|
44
|
+
throw error;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
/** Disconnect from the WebSocket server */
|
|
48
|
+
disconnect() {
|
|
49
|
+
this.config.autoReconnect = false;
|
|
50
|
+
this.stopReconnectTimer();
|
|
51
|
+
this.stopHeartbeat();
|
|
52
|
+
if (this.ws) {
|
|
53
|
+
this.ws.close();
|
|
54
|
+
this.ws = null;
|
|
55
|
+
}
|
|
56
|
+
this.connectionStatus = "disconnected";
|
|
57
|
+
this.isAuthenticated = false;
|
|
58
|
+
}
|
|
59
|
+
/** Get current connection status */
|
|
60
|
+
getConnectionStatus() {
|
|
61
|
+
return this.connectionStatus;
|
|
62
|
+
}
|
|
63
|
+
/** Check if currently connected */
|
|
64
|
+
isConnected() {
|
|
65
|
+
return this.connectionStatus === "connected";
|
|
66
|
+
}
|
|
67
|
+
/** Set the access token for authentication */
|
|
68
|
+
setAccessToken(token) {
|
|
69
|
+
this.config.accessToken = token;
|
|
70
|
+
}
|
|
71
|
+
/** Send message (queues if not connected/authenticated) */
|
|
72
|
+
send(data) {
|
|
73
|
+
if (!this.isAuthenticated || this.ws?.readyState !== WebSocket.OPEN) {
|
|
74
|
+
this.messageQueue.push(data);
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
this.ws.send(JSON.stringify(data));
|
|
78
|
+
}
|
|
79
|
+
/** Flush all queued messages */
|
|
80
|
+
flushMessageQueue() {
|
|
81
|
+
while (this.messageQueue.length > 0) {
|
|
82
|
+
const message = this.messageQueue.shift();
|
|
83
|
+
this.send(message);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
/** Start heartbeat ping/pong */
|
|
87
|
+
startHeartbeat() {
|
|
88
|
+
this.heartbeatInterval = setInterval(() => {
|
|
89
|
+
if (Date.now() - this.lastPong > WebSocketClientImpl.HEARTBEAT_TIMEOUT) {
|
|
90
|
+
this.ws?.close();
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
this.ws?.send(JSON.stringify({ type: 'PING' }));
|
|
94
|
+
}, WebSocketClientImpl.HEARTBEAT_INTERVAL);
|
|
95
|
+
}
|
|
96
|
+
/** Stop heartbeat interval */
|
|
97
|
+
stopHeartbeat() {
|
|
98
|
+
if (this.heartbeatInterval) {
|
|
99
|
+
clearInterval(this.heartbeatInterval);
|
|
100
|
+
this.heartbeatInterval = null;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
/** Handle connection errors with cleanup */
|
|
104
|
+
handleConnectionError(error) {
|
|
105
|
+
this.connectionStatus = "disconnected";
|
|
106
|
+
this.isAuthenticated = false;
|
|
107
|
+
this.stopHeartbeat();
|
|
108
|
+
console.warn("WebSocket connection error:", error?.message || error);
|
|
109
|
+
}
|
|
110
|
+
/** Create WebSocket connection with event handlers */
|
|
111
|
+
async createConnection() {
|
|
112
|
+
return new Promise((resolve, reject) => {
|
|
113
|
+
try {
|
|
114
|
+
const url = new URL(this.config.wsUrl);
|
|
115
|
+
if (this.config.accessToken) {
|
|
116
|
+
url.searchParams.set('token', this.config.accessToken);
|
|
117
|
+
}
|
|
118
|
+
this.ws = new WebSocket(url.toString());
|
|
119
|
+
const connectionTimeout = setTimeout(() => {
|
|
120
|
+
if (this.ws && this.ws.readyState === WebSocket.CONNECTING) {
|
|
121
|
+
this.ws.close();
|
|
122
|
+
reject(new Error("WebSocket connection timeout"));
|
|
123
|
+
}
|
|
124
|
+
}, WebSocketClientImpl.CONNECTION_TIMEOUT);
|
|
125
|
+
this.ws.onopen = () => {
|
|
126
|
+
clearTimeout(connectionTimeout);
|
|
127
|
+
this.connectionStatus = "connected";
|
|
128
|
+
this.reconnectAttempts = 0;
|
|
129
|
+
this.isAuthenticated = true;
|
|
130
|
+
this.lastPong = Date.now();
|
|
131
|
+
this.startHeartbeat();
|
|
132
|
+
this.flushMessageQueue();
|
|
133
|
+
resolve();
|
|
134
|
+
};
|
|
135
|
+
this.ws.onmessage = (event) => {
|
|
136
|
+
try {
|
|
137
|
+
const message = JSON.parse(event.data);
|
|
138
|
+
if (message.type === 'PONG') {
|
|
139
|
+
this.lastPong = Date.now();
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
142
|
+
// Basic message handling - extend as needed
|
|
143
|
+
console.log("WebSocket message received:", message);
|
|
144
|
+
}
|
|
145
|
+
catch (error) {
|
|
146
|
+
console.warn("Failed to parse WebSocket message:", error);
|
|
147
|
+
}
|
|
148
|
+
};
|
|
149
|
+
this.ws.onclose = (event) => {
|
|
150
|
+
clearTimeout(connectionTimeout);
|
|
151
|
+
this.connectionStatus = "disconnected";
|
|
152
|
+
this.isAuthenticated = false;
|
|
153
|
+
this.stopHeartbeat();
|
|
154
|
+
if (this.config.autoReconnect &&
|
|
155
|
+
this.reconnectAttempts < (this.config.maxReconnectAttempts || 5) &&
|
|
156
|
+
event.code !== 1000) {
|
|
157
|
+
this.scheduleReconnect();
|
|
158
|
+
}
|
|
159
|
+
};
|
|
160
|
+
this.ws.onerror = () => {
|
|
161
|
+
clearTimeout(connectionTimeout);
|
|
162
|
+
if (this.connectionStatus === "connecting") {
|
|
163
|
+
reject(new Error("Failed to connect to WebSocket"));
|
|
164
|
+
}
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
catch (error) {
|
|
168
|
+
this.connectionStatus = "disconnected";
|
|
169
|
+
reject(error);
|
|
170
|
+
}
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
/** Schedule reconnect with exponential backoff */
|
|
174
|
+
scheduleReconnect() {
|
|
175
|
+
this.connectionStatus = "reconnecting";
|
|
176
|
+
this.reconnectAttempts++;
|
|
177
|
+
const baseDelay = this.config.reconnectDelay || 5000;
|
|
178
|
+
const exponentialDelay = Math.min(baseDelay * Math.pow(2, this.reconnectAttempts - 1), WebSocketClientImpl.MAX_RECONNECT_DELAY);
|
|
179
|
+
this.reconnectTimer = setTimeout(async () => {
|
|
180
|
+
try {
|
|
181
|
+
if (!this.config.accessToken?.trim()) {
|
|
182
|
+
console.error("JWT token expired or invalid, cannot reconnect");
|
|
183
|
+
return;
|
|
184
|
+
}
|
|
185
|
+
await this.connect();
|
|
186
|
+
}
|
|
187
|
+
catch (error) {
|
|
188
|
+
if (this.reconnectAttempts >= (this.config.maxReconnectAttempts || 5)) {
|
|
189
|
+
console.error("Failed to reconnect after maximum attempts");
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
}, exponentialDelay);
|
|
193
|
+
}
|
|
194
|
+
/** Stop reconnection timer */
|
|
195
|
+
stopReconnectTimer() {
|
|
196
|
+
if (this.reconnectTimer) {
|
|
197
|
+
clearTimeout(this.reconnectTimer);
|
|
198
|
+
this.reconnectTimer = null;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
// Connection constants
|
|
203
|
+
WebSocketClientImpl.CONNECTION_TIMEOUT = 10000; // 10 seconds
|
|
204
|
+
WebSocketClientImpl.HEARTBEAT_INTERVAL = 15000; // 15 seconds
|
|
205
|
+
WebSocketClientImpl.HEARTBEAT_TIMEOUT = 30000; // 30 seconds
|
|
206
|
+
WebSocketClientImpl.MAX_RECONNECT_DELAY = 30000; // 30 seconds
|
|
207
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/api/websocket/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/websocket/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/websocket/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC"}
|
package/dist/errors.d.ts
CHANGED
|
@@ -29,23 +29,23 @@
|
|
|
29
29
|
* - SUBSCRIPTION_ERROR: Event subscription failure
|
|
30
30
|
*/
|
|
31
31
|
export declare const ERROR_CODES: {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
32
|
+
/** Initialization errors */
|
|
33
|
+
readonly INITIALIZATION_ERROR: "INITIALIZATION_ERROR";
|
|
34
|
+
readonly INVALID_CONFIG: "INVALID_CONFIG";
|
|
35
|
+
readonly INVALID_STATE: "INVALID_STATE";
|
|
36
|
+
readonly UNSUPPORTED_NETWORK: "UNSUPPORTED_NETWORK";
|
|
37
|
+
/** API errors */
|
|
38
|
+
readonly API_ERROR: "API_ERROR";
|
|
39
|
+
readonly CONTRACT_ERROR: "CONTRACT_ERROR";
|
|
40
|
+
readonly TRANSACTION_ERROR: "TRANSACTION_ERROR";
|
|
41
|
+
/** Order errors */
|
|
42
|
+
readonly ORDER_ERROR: "ORDER_ERROR";
|
|
43
|
+
readonly INVALID_ORDER: "INVALID_ORDER";
|
|
44
|
+
readonly ORDER_NOT_FOUND: "ORDER_NOT_FOUND";
|
|
45
|
+
readonly INSUFFICIENT_BALANCE: "INSUFFICIENT_BALANCE";
|
|
46
|
+
/** Event errors */
|
|
47
|
+
readonly EVENT_ERROR: "EVENT_ERROR";
|
|
48
|
+
readonly SUBSCRIPTION_ERROR: "SUBSCRIPTION_ERROR";
|
|
49
49
|
};
|
|
50
50
|
/**
|
|
51
51
|
* Type representing all possible Monaco Core SDK error codes.
|
|
@@ -53,89 +53,80 @@ export declare const ERROR_CODES: {
|
|
|
53
53
|
*/
|
|
54
54
|
export type MonacoErrorCode = (typeof ERROR_CODES)[keyof typeof ERROR_CODES];
|
|
55
55
|
export declare abstract class MonacoCoreError extends Error {
|
|
56
|
-
|
|
56
|
+
abstract code: MonacoErrorCode;
|
|
57
57
|
}
|
|
58
58
|
export declare class InitializationError extends MonacoCoreError {
|
|
59
|
-
|
|
60
|
-
|
|
59
|
+
code: "INITIALIZATION_ERROR";
|
|
60
|
+
constructor(message: string);
|
|
61
61
|
}
|
|
62
62
|
export declare class InvalidConfigError extends MonacoCoreError {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
63
|
+
code: "INVALID_CONFIG";
|
|
64
|
+
field?: string;
|
|
65
|
+
value?: any;
|
|
66
|
+
constructor(message: string, field?: string, value?: any);
|
|
67
67
|
}
|
|
68
68
|
export declare class InvalidStateError extends MonacoCoreError {
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
69
|
+
code: "INVALID_STATE";
|
|
70
|
+
currentState?: string;
|
|
71
|
+
expectedState?: string;
|
|
72
|
+
constructor(message: string, currentState?: string, expectedState?: string);
|
|
73
73
|
}
|
|
74
74
|
export declare class UnsupportedNetworkError extends MonacoCoreError {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
message: string,
|
|
80
|
-
networkId?: number,
|
|
81
|
-
supportedNetworks?: number[],
|
|
82
|
-
);
|
|
75
|
+
code: "UNSUPPORTED_NETWORK";
|
|
76
|
+
networkId?: number;
|
|
77
|
+
supportedNetworks?: number[];
|
|
78
|
+
constructor(message: string, networkId?: number, supportedNetworks?: number[]);
|
|
83
79
|
}
|
|
84
80
|
export declare class APIError extends MonacoCoreError {
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
81
|
+
code: "API_ERROR";
|
|
82
|
+
endpoint?: string;
|
|
83
|
+
statusCode?: number;
|
|
84
|
+
constructor(message: string, endpoint?: string, statusCode?: number);
|
|
89
85
|
}
|
|
90
86
|
export declare class ContractError extends MonacoCoreError {
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
87
|
+
code: "CONTRACT_ERROR";
|
|
88
|
+
revertReason?: string;
|
|
89
|
+
transactionHash?: string;
|
|
90
|
+
constructor(message: string, revertReason?: string, transactionHash?: string);
|
|
95
91
|
}
|
|
96
92
|
export declare class TransactionError extends MonacoCoreError {
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
93
|
+
code: "TRANSACTION_ERROR";
|
|
94
|
+
transactionHash?: string;
|
|
95
|
+
gasUsed?: bigint;
|
|
96
|
+
constructor(message: string, transactionHash?: string, gasUsed?: bigint);
|
|
101
97
|
}
|
|
102
98
|
export declare class OrderError extends MonacoCoreError {
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
99
|
+
code: "ORDER_ERROR";
|
|
100
|
+
orderId?: string;
|
|
101
|
+
market?: string;
|
|
102
|
+
constructor(message: string, orderId?: string, market?: string);
|
|
107
103
|
}
|
|
108
104
|
export declare class InvalidOrderError extends MonacoCoreError {
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
105
|
+
code: "INVALID_ORDER";
|
|
106
|
+
field?: string;
|
|
107
|
+
value?: any;
|
|
108
|
+
constructor(message: string, field?: string, value?: any);
|
|
113
109
|
}
|
|
114
110
|
export declare class OrderNotFoundError extends MonacoCoreError {
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
111
|
+
code: "ORDER_NOT_FOUND";
|
|
112
|
+
orderId?: string;
|
|
113
|
+
constructor(message: string, orderId?: string);
|
|
118
114
|
}
|
|
119
115
|
export declare class InsufficientBalanceError extends MonacoCoreError {
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
message: string,
|
|
126
|
-
token?: string,
|
|
127
|
-
required?: bigint,
|
|
128
|
-
available?: bigint,
|
|
129
|
-
);
|
|
116
|
+
code: "INSUFFICIENT_BALANCE";
|
|
117
|
+
token?: string;
|
|
118
|
+
required?: bigint;
|
|
119
|
+
available?: bigint;
|
|
120
|
+
constructor(message: string, token?: string, required?: bigint, available?: bigint);
|
|
130
121
|
}
|
|
131
122
|
export declare class EventError extends MonacoCoreError {
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
123
|
+
code: "EVENT_ERROR";
|
|
124
|
+
eventType?: string;
|
|
125
|
+
constructor(message: string, eventType?: string);
|
|
135
126
|
}
|
|
136
127
|
export declare class SubscriptionError extends MonacoCoreError {
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
128
|
+
code: "SUBSCRIPTION_ERROR";
|
|
129
|
+
subscriptionId?: string;
|
|
130
|
+
constructor(message: string, subscriptionId?: string);
|
|
140
131
|
}
|
|
141
|
-
//# sourceMappingURL=errors.d.ts.map
|
|
132
|
+
//# sourceMappingURL=errors.d.ts.map
|
package/dist/index.d.ts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Provides secure access to Monaco's hybrid trading architecture.
|
|
6
6
|
*/
|
|
7
7
|
export { MonacoSDKImpl as MonacoSDK } from "./sdk";
|
|
8
|
-
export type { MonacoSDK as IMonacoSDK, SDKConfig, Network, VaultAPI, TradingAPI, ProfileAPI, Balance, TransactionResult, OrderResponse, CancelOrderResponse, } from "@0xmonaco/types";
|
|
8
|
+
export type { MonacoSDK as IMonacoSDK, SDKConfig, Network, VaultAPI, TradingAPI, ProfileAPI, WebSocketClient, WebSocketConfig, BaseWebSocketEvent, ConnectionStatus, Balance, TransactionResult, OrderResponse, CancelOrderResponse, } from "@0xmonaco/types";
|
|
9
9
|
export { NETWORK_ENDPOINTS } from "./networks";
|
|
10
10
|
export { MonacoCoreError, InitializationError, InvalidConfigError, InvalidStateError, UnsupportedNetworkError, APIError, ContractError, TransactionError, OrderError, InvalidOrderError, OrderNotFoundError, InsufficientBalanceError, EventError, SubscriptionError, } from "./errors";
|
|
11
11
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,EAAE,aAAa,IAAI,SAAS,EAAE,MAAM,OAAO,CAAC;AAMnD,YAAY,EACX,SAAS,IAAI,UAAU,EACvB,SAAS,EACT,OAAO,EACP,QAAQ,EACR,UAAU,EACV,UAAU,EACV,OAAO,EACP,iBAAiB,EACjB,aAAa,EACb,mBAAmB,GACnB,MAAM,iBAAiB,CAAC;AAMzB,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAM/C,OAAO,EACN,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,uBAAuB,EACvB,QAAQ,EACR,aAAa,EACb,gBAAgB,EAChB,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,UAAU,EACV,iBAAiB,GACjB,MAAM,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,EAAE,aAAa,IAAI,SAAS,EAAE,MAAM,OAAO,CAAC;AAMnD,YAAY,EACX,SAAS,IAAI,UAAU,EACvB,SAAS,EACT,OAAO,EACP,QAAQ,EACR,UAAU,EACV,UAAU,EACV,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,OAAO,EACP,iBAAiB,EACjB,aAAa,EACb,mBAAmB,GACnB,MAAM,iBAAiB,CAAC;AAMzB,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAM/C,OAAO,EACN,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,uBAAuB,EACvB,QAAQ,EACR,aAAa,EACb,gBAAgB,EAChB,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,UAAU,EACV,iBAAiB,GACjB,MAAM,UAAU,CAAC"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,+EAA+E;AAC/E,kBAAkB;AAClB,+EAA+E;AAE/E,OAAO,EAAE,aAAa,IAAI,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,+EAA+E;AAC/E,kBAAkB;AAClB,+EAA+E;AAE/E,OAAO,EAAE,aAAa,IAAI,SAAS,EAAE,MAAM,OAAO,CAAC;AAuBnD,+EAA+E;AAC/E,wBAAwB;AACxB,+EAA+E;AAE/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/C,+EAA+E;AAC/E,gBAAgB;AAChB,+EAA+E;AAE/E,OAAO,EACN,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,uBAAuB,EACvB,QAAQ,EACR,aAAa,EACb,gBAAgB,EAChB,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,UAAU,EACV,iBAAiB,GACjB,MAAM,UAAU,CAAC"}
|
package/dist/networks.d.ts
CHANGED
package/dist/sdk.d.ts
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Monaco SDK Implementation
|
|
3
3
|
*/
|
|
4
|
-
import type { AuthAPI, AuthState, MonacoSDK, Network, ProfileAPI, SDKConfig, TradingAPI, VaultAPI } from "@0xmonaco/types";
|
|
4
|
+
import type { ApplicationsAPI, AuthAPI, AuthState, MonacoSDK, Network, ProfileAPI, SDKConfig, TradingAPI, VaultAPI, WebSocketClient } from "@0xmonaco/types";
|
|
5
5
|
import { type PublicClient, type TransactionReceipt, type WalletClient } from "viem";
|
|
6
6
|
export declare class MonacoSDKImpl implements MonacoSDK {
|
|
7
7
|
auth: AuthAPI;
|
|
8
|
+
applications: ApplicationsAPI;
|
|
8
9
|
vault: VaultAPI;
|
|
9
10
|
trading: TradingAPI;
|
|
10
11
|
profile: ProfileAPI;
|
|
12
|
+
websocket: WebSocketClient;
|
|
11
13
|
walletClient: WalletClient;
|
|
12
14
|
publicClient: PublicClient;
|
|
13
15
|
private authState?;
|
|
@@ -16,7 +18,6 @@ export declare class MonacoSDKImpl implements MonacoSDK {
|
|
|
16
18
|
constructor(cfg: SDKConfig);
|
|
17
19
|
/**
|
|
18
20
|
* Authenticate the user
|
|
19
|
-
* @param clientId - The client ID to use for authentication
|
|
20
21
|
* @returns The authentication response
|
|
21
22
|
*/
|
|
22
23
|
login(clientId: string): Promise<AuthState>;
|
package/dist/sdk.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../src/sdk.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../src/sdk.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EACX,eAAe,EACf,OAAO,EACP,SAAS,EACT,SAAS,EACT,OAAO,EACP,UAAU,EACV,SAAS,EACT,UAAU,EACV,QAAQ,EACR,eAAe,EACf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAKN,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,YAAY,EACjB,MAAM,MAAM,CAAC;AAcd,qBAAa,aAAc,YAAW,SAAS;IACvC,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,eAAe,CAAC;IAC9B,KAAK,EAAE,QAAQ,CAAC;IAChB,OAAO,EAAE,UAAU,CAAC;IACpB,OAAO,EAAE,UAAU,CAAC;IACpB,SAAS,EAAE,eAAe,CAAC;IAE3B,YAAY,EAAE,YAAY,CAAC;IAC3B,YAAY,EAAE,YAAY,CAAC;IAElC,OAAO,CAAC,SAAS,CAAC,CAAY;IAC9B,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,KAAK,CAAQ;gBAET,GAAG,EAAE,SAAS;IAuD1B;;;OAGG;IACG,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IA2BjD;;;OAGG;IACH,YAAY,IAAI,SAAS,GAAG,SAAS;IAIrC;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAY7B;;;OAGG;IACG,WAAW,IAAI,OAAO,CAAC,SAAS,CAAC;IAoCvC;;OAEG;IACH,eAAe,IAAI,OAAO;IAI1B;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;OAEG;IACH,iBAAiB,IAAI,MAAM;IAO3B;;OAEG;IACH,UAAU,IAAI,OAAO;IAIrB;;OAEG;IACH,UAAU,IAAI,MAAM;IAIpB;;;;;;OAMG;IACG,kBAAkB,CACvB,IAAI,EAAE,MAAM,EACZ,aAAa,CAAC,EAAE,MAAM,EACtB,OAAO,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,kBAAkB,CAAC;CAO9B;AAMD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,CAE5D"}
|
package/dist/sdk.js
CHANGED
|
@@ -1,14 +1,12 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Monaco SDK Implementation
|
|
3
|
-
*/
|
|
4
|
-
import { CONTRACT_ADDRESSES } from "@0xmonaco/contracts";
|
|
5
1
|
import { createPublicClient, http, } from "viem";
|
|
6
2
|
import { sei, seiTestnet } from "viem/chains";
|
|
7
|
-
import {
|
|
3
|
+
import { ApplicationsAPIImpl } from "./api/applications";
|
|
8
4
|
import { AuthAPIImpl } from "./api/auth";
|
|
5
|
+
import { ProfileAPIImpl } from "./api/profile";
|
|
9
6
|
import { TradingAPIImpl } from "./api/trading";
|
|
10
7
|
import { VaultAPIImpl } from "./api/vault";
|
|
11
|
-
import {
|
|
8
|
+
import { WebSocketClientImpl } from "./api/websocket";
|
|
9
|
+
import { APIError, InvalidConfigError, InvalidStateError } from "./errors";
|
|
12
10
|
import { NETWORK_ENDPOINTS } from "./networks";
|
|
13
11
|
// ---------------------------------------------------------------------------
|
|
14
12
|
// SDK implementation
|
|
@@ -31,28 +29,27 @@ export class MonacoSDKImpl {
|
|
|
31
29
|
});
|
|
32
30
|
// Get network endpoints based on network string
|
|
33
31
|
const endpoints = NETWORK_ENDPOINTS[network];
|
|
34
|
-
// Get contract addresses for the chain
|
|
35
|
-
const contracts = CONTRACT_ADDRESSES[chain.id];
|
|
36
|
-
if (!contracts) {
|
|
37
|
-
throw new UnsupportedNetworkError(`Chain ID ${chain.id} is not supported. Supported chains: ${[seiTestnet.id, sei.id].join(", ")}`, chain.id, [seiTestnet.id, sei.id]);
|
|
38
|
-
}
|
|
39
32
|
// Validate wallet client is on the correct chain
|
|
40
33
|
if (cfg.walletClient.chain?.id !== chain.id) {
|
|
41
34
|
throw new InvalidConfigError(`Wallet client chain mismatch. Expected ${chain.id}, got ${cfg.walletClient.chain?.id}`, "walletClient");
|
|
42
35
|
}
|
|
43
36
|
this.walletClient = cfg.walletClient;
|
|
44
37
|
// Instantiate APIs
|
|
38
|
+
this.applications = new ApplicationsAPIImpl(endpoints.apiUrl);
|
|
45
39
|
this.auth = new AuthAPIImpl(this.walletClient, endpoints.apiUrl, this.chain);
|
|
46
|
-
this.vault = new VaultAPIImpl(this.publicClient, this.walletClient,
|
|
40
|
+
this.vault = new VaultAPIImpl(this.publicClient, this.walletClient, endpoints.apiUrl, this.chain);
|
|
47
41
|
this.trading = new TradingAPIImpl(endpoints.apiUrl);
|
|
48
42
|
this.profile = new ProfileAPIImpl(endpoints.apiUrl);
|
|
43
|
+
// Instantiate WebSocket client
|
|
44
|
+
this.websocket = new WebSocketClientImpl({
|
|
45
|
+
wsUrl: endpoints.apiUrl + "/ws",
|
|
46
|
+
});
|
|
49
47
|
}
|
|
50
48
|
// -----------------------------------------------------------------------
|
|
51
49
|
// Authentication
|
|
52
50
|
// -----------------------------------------------------------------------
|
|
53
51
|
/**
|
|
54
52
|
* Authenticate the user
|
|
55
|
-
* @param clientId - The client ID to use for authentication
|
|
56
53
|
* @returns The authentication response
|
|
57
54
|
*/
|
|
58
55
|
async login(clientId) {
|
|
@@ -65,9 +62,15 @@ export class MonacoSDKImpl {
|
|
|
65
62
|
createdAt: Math.floor(Date.now() / 1000),
|
|
66
63
|
};
|
|
67
64
|
// Set access tokens for APIs
|
|
65
|
+
this.applications.setAccessToken(this.authState.accessToken);
|
|
68
66
|
this.vault.setAccessToken(this.authState.accessToken);
|
|
69
67
|
this.trading.setAccessToken(this.authState.accessToken);
|
|
70
68
|
this.profile.setAccessToken(this.authState.accessToken);
|
|
69
|
+
// Set WebSocket access token
|
|
70
|
+
this.websocket.setAccessToken(this.authState.accessToken);
|
|
71
|
+
// Set vault address
|
|
72
|
+
const config = await this.applications.getApplicationConfig();
|
|
73
|
+
this.vault.setVaultAddress(config.vaultContractAddress);
|
|
71
74
|
return this.authState;
|
|
72
75
|
}
|
|
73
76
|
/**
|
|
@@ -111,6 +114,8 @@ export class MonacoSDKImpl {
|
|
|
111
114
|
this.vault.setAccessToken(this.authState.accessToken);
|
|
112
115
|
this.trading.setAccessToken(this.authState.accessToken);
|
|
113
116
|
this.profile.setAccessToken(this.authState.accessToken);
|
|
117
|
+
// Set WebSocket access token
|
|
118
|
+
this.websocket.setAccessToken(this.authState.accessToken);
|
|
114
119
|
return this.authState;
|
|
115
120
|
}
|
|
116
121
|
catch (error) {
|