@soroswap/sdk 0.0.1
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 +389 -0
- package/dist/auth/auth-manager.d.ts +57 -0
- package/dist/auth/auth-manager.d.ts.map +1 -0
- package/dist/auth/auth-manager.js +165 -0
- package/dist/auth/auth-manager.js.map +1 -0
- package/dist/cache/token-cache.d.ts +48 -0
- package/dist/cache/token-cache.d.ts.map +1 -0
- package/dist/cache/token-cache.js +88 -0
- package/dist/cache/token-cache.js.map +1 -0
- package/dist/clients/http-client.d.ts +41 -0
- package/dist/clients/http-client.d.ts.map +1 -0
- package/dist/clients/http-client.js +121 -0
- package/dist/clients/http-client.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +33 -0
- package/dist/index.js.map +1 -0
- package/dist/soroswap-sdk.d.ts +78 -0
- package/dist/soroswap-sdk.d.ts.map +1 -0
- package/dist/soroswap-sdk.js +173 -0
- package/dist/soroswap-sdk.js.map +1 -0
- package/dist/types/auth.d.ts +16 -0
- package/dist/types/auth.d.ts.map +1 -0
- package/dist/types/auth.js +3 -0
- package/dist/types/auth.js.map +1 -0
- package/dist/types/common.d.ts +24 -0
- package/dist/types/common.d.ts.map +1 -0
- package/dist/types/common.js +31 -0
- package/dist/types/common.js.map +1 -0
- package/dist/types/index.d.ts +184 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +48 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/quote.d.ts +78 -0
- package/dist/types/quote.d.ts.map +1 -0
- package/dist/types/quote.js +3 -0
- package/dist/types/quote.js.map +1 -0
- package/package.json +68 -0
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TokenCache = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* In-memory token cache with automatic expiration handling
|
|
6
|
+
* Stores access and refresh tokens with timestamps
|
|
7
|
+
*/
|
|
8
|
+
class TokenCache {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.tokenData = null;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Store token data in cache
|
|
14
|
+
*/
|
|
15
|
+
setTokens(tokenData) {
|
|
16
|
+
this.tokenData = tokenData;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Get current access token if valid
|
|
20
|
+
*/
|
|
21
|
+
getAccessToken() {
|
|
22
|
+
if (!this.tokenData) {
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
// Check if token is expired (with 5 minute buffer)
|
|
26
|
+
const bufferTime = 5 * 60 * 1000; // 5 minutes in milliseconds
|
|
27
|
+
const now = Date.now();
|
|
28
|
+
if (this.tokenData.expires_at && (this.tokenData.expires_at - bufferTime) <= now) {
|
|
29
|
+
return null; // Token is expired or about to expire
|
|
30
|
+
}
|
|
31
|
+
return this.tokenData.access_token;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Get refresh token
|
|
35
|
+
*/
|
|
36
|
+
getRefreshToken() {
|
|
37
|
+
return this.tokenData?.refresh_token || null;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Get user information
|
|
41
|
+
*/
|
|
42
|
+
getUserInfo() {
|
|
43
|
+
if (!this.tokenData) {
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
return {
|
|
47
|
+
username: this.tokenData.username,
|
|
48
|
+
role: this.tokenData.role
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Check if we have valid tokens
|
|
53
|
+
*/
|
|
54
|
+
hasValidTokens() {
|
|
55
|
+
return this.getAccessToken() !== null;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Check if we need to refresh tokens
|
|
59
|
+
*/
|
|
60
|
+
needsRefresh() {
|
|
61
|
+
if (!this.tokenData) {
|
|
62
|
+
return false;
|
|
63
|
+
}
|
|
64
|
+
const bufferTime = 5 * 60 * 1000; // 5 minutes buffer
|
|
65
|
+
const now = Date.now();
|
|
66
|
+
return !!(this.tokenData.expires_at && (this.tokenData.expires_at - bufferTime) <= now);
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Clear all cached tokens
|
|
70
|
+
*/
|
|
71
|
+
clear() {
|
|
72
|
+
this.tokenData = null;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Get token expiration time
|
|
76
|
+
*/
|
|
77
|
+
getExpirationTime() {
|
|
78
|
+
return this.tokenData?.expires_at || null;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Check if tokens exist (regardless of expiration)
|
|
82
|
+
*/
|
|
83
|
+
hasTokens() {
|
|
84
|
+
return this.tokenData !== null;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
exports.TokenCache = TokenCache;
|
|
88
|
+
//# sourceMappingURL=token-cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-cache.js","sourceRoot":"","sources":["../../src/cache/token-cache.ts"],"names":[],"mappings":";;;AAEA;;;GAGG;AACH,MAAa,UAAU;IAAvB;QACU,cAAS,GAAqB,IAAI,CAAC;IA0F7C,CAAC;IAxFC;;OAEG;IACH,SAAS,CAAC,SAAoB;QAC5B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,mDAAmD;QACnD,MAAM,UAAU,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,4BAA4B;QAC9D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,GAAG,UAAU,CAAC,IAAI,GAAG,EAAE,CAAC;YACjF,OAAO,IAAI,CAAC,CAAC,sCAAsC;QACrD,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,SAAS,EAAE,aAAa,IAAI,IAAI,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,WAAW;QACT,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ;YACjC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI;SAC1B,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,OAAO,IAAI,CAAC,cAAc,EAAE,KAAK,IAAI,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,YAAY;QACV,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,UAAU,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,mBAAmB;QACrD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,GAAG,UAAU,CAAC,IAAI,GAAG,CAAC,CAAC;IAC1F,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,iBAAiB;QACf,OAAO,IAAI,CAAC,SAAS,EAAE,UAAU,IAAI,IAAI,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC;IACjC,CAAC;CACF;AA3FD,gCA2FC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { AxiosRequestConfig } from 'axios';
|
|
2
|
+
import { Network } from '../types';
|
|
3
|
+
/**
|
|
4
|
+
* HTTP client wrapper with automatic authentication and error handling
|
|
5
|
+
*/
|
|
6
|
+
export declare class HttpClient {
|
|
7
|
+
private client;
|
|
8
|
+
private tokenProvider;
|
|
9
|
+
constructor(baseURL: string, timeout: number | undefined, tokenProvider: () => Promise<string | null>);
|
|
10
|
+
/**
|
|
11
|
+
* Transform axios error to APIError
|
|
12
|
+
*/
|
|
13
|
+
private transformError;
|
|
14
|
+
/**
|
|
15
|
+
* GET request
|
|
16
|
+
*/
|
|
17
|
+
get<T>(url: string, config?: AxiosRequestConfig): Promise<T>;
|
|
18
|
+
/**
|
|
19
|
+
* POST request
|
|
20
|
+
*/
|
|
21
|
+
post<T>(url: string, data?: any, config?: AxiosRequestConfig): Promise<T>;
|
|
22
|
+
/**
|
|
23
|
+
* PUT request
|
|
24
|
+
*/
|
|
25
|
+
put<T>(url: string, data?: any, config?: AxiosRequestConfig): Promise<T>;
|
|
26
|
+
/**
|
|
27
|
+
* DELETE request
|
|
28
|
+
*/
|
|
29
|
+
delete<T>(url: string, config?: AxiosRequestConfig): Promise<T>;
|
|
30
|
+
/**
|
|
31
|
+
* Build query parameters for network
|
|
32
|
+
*/
|
|
33
|
+
buildNetworkQuery(network?: Network): {
|
|
34
|
+
network?: Network;
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Build URL with query parameters
|
|
38
|
+
*/
|
|
39
|
+
buildUrlWithQuery(baseUrl: string, params: Record<string, any>): string;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=http-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../../src/clients/http-client.ts"],"names":[],"mappings":"AACA,OAAc,EAAiB,kBAAkB,EAAiB,MAAM,OAAO,CAAC;AAChF,OAAO,EAAY,OAAO,EAAE,MAAM,UAAU,CAAC;AAE7C;;GAEG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,aAAa,CAA+B;gBAGlD,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,YAAQ,EACvB,aAAa,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAyC7C;;OAEG;IACH,OAAO,CAAC,cAAc;IA0BtB;;OAEG;IACG,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC;IAKlE;;OAEG;IACG,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC;IAK/E;;OAEG;IACG,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC;IAK9E;;OAEG;IACG,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC;IAKrE;;OAEG;IACH,iBAAiB,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE;IAI3D;;OAEG;IACH,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM;CAaxE"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.HttpClient = void 0;
|
|
7
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
8
|
+
const axios_1 = __importDefault(require("axios"));
|
|
9
|
+
/**
|
|
10
|
+
* HTTP client wrapper with automatic authentication and error handling
|
|
11
|
+
*/
|
|
12
|
+
class HttpClient {
|
|
13
|
+
constructor(baseURL, timeout = 30000, tokenProvider) {
|
|
14
|
+
this.tokenProvider = tokenProvider;
|
|
15
|
+
this.client = axios_1.default.create({
|
|
16
|
+
baseURL,
|
|
17
|
+
timeout,
|
|
18
|
+
headers: {
|
|
19
|
+
'Content-Type': 'application/json',
|
|
20
|
+
},
|
|
21
|
+
});
|
|
22
|
+
// Add request interceptor to inject auth token
|
|
23
|
+
this.client.interceptors.request.use(async (config) => {
|
|
24
|
+
// Skip auth for authentication endpoints to prevent infinite loops
|
|
25
|
+
const authEndpoints = ['/login', '/refresh', '/health'];
|
|
26
|
+
const isAuthEndpoint = authEndpoints.some(endpoint => config.url?.includes(endpoint));
|
|
27
|
+
if (!isAuthEndpoint) {
|
|
28
|
+
const token = await this.tokenProvider();
|
|
29
|
+
config.headers.Authorization = `Bearer ${token}`;
|
|
30
|
+
}
|
|
31
|
+
return config;
|
|
32
|
+
}, (error) => {
|
|
33
|
+
return Promise.reject(this.transformError(error));
|
|
34
|
+
});
|
|
35
|
+
// Add response interceptor for error handling
|
|
36
|
+
this.client.interceptors.response.use((response) => response, (error) => {
|
|
37
|
+
return Promise.reject(this.transformError(error));
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Transform axios error to APIError
|
|
42
|
+
*/
|
|
43
|
+
transformError(error) {
|
|
44
|
+
if (error.response) {
|
|
45
|
+
// Server responded with error status
|
|
46
|
+
return {
|
|
47
|
+
message: error.response.data?.message || error.message,
|
|
48
|
+
statusCode: error.response.status,
|
|
49
|
+
timestamp: new Date().toISOString(),
|
|
50
|
+
path: error.response.config?.url,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
else if (error.request) {
|
|
54
|
+
// Request was made but no response received
|
|
55
|
+
return {
|
|
56
|
+
message: 'Network error: No response received',
|
|
57
|
+
statusCode: 0,
|
|
58
|
+
timestamp: new Date().toISOString(),
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
// Something else happened
|
|
63
|
+
return {
|
|
64
|
+
message: error.message || 'Unknown error',
|
|
65
|
+
statusCode: 0,
|
|
66
|
+
timestamp: new Date().toISOString(),
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* GET request
|
|
72
|
+
*/
|
|
73
|
+
async get(url, config) {
|
|
74
|
+
const response = await this.client.get(url, config);
|
|
75
|
+
return response.data;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* POST request
|
|
79
|
+
*/
|
|
80
|
+
async post(url, data, config) {
|
|
81
|
+
const response = await this.client.post(url, data, config);
|
|
82
|
+
return response.data;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* PUT request
|
|
86
|
+
*/
|
|
87
|
+
async put(url, data, config) {
|
|
88
|
+
const response = await this.client.put(url, data, config);
|
|
89
|
+
return response.data;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* DELETE request
|
|
93
|
+
*/
|
|
94
|
+
async delete(url, config) {
|
|
95
|
+
const response = await this.client.delete(url, config);
|
|
96
|
+
return response.data;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Build query parameters for network
|
|
100
|
+
*/
|
|
101
|
+
buildNetworkQuery(network) {
|
|
102
|
+
return network ? { network } : {};
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Build URL with query parameters
|
|
106
|
+
*/
|
|
107
|
+
buildUrlWithQuery(baseUrl, params) {
|
|
108
|
+
const queryString = Object.entries(params)
|
|
109
|
+
.filter(([, value]) => value !== undefined && value !== null)
|
|
110
|
+
.map(([key, value]) => {
|
|
111
|
+
if (Array.isArray(value)) {
|
|
112
|
+
return value.map(v => `${encodeURIComponent(key)}=${encodeURIComponent(v)}`).join('&');
|
|
113
|
+
}
|
|
114
|
+
return `${encodeURIComponent(key)}=${encodeURIComponent(value)}`;
|
|
115
|
+
})
|
|
116
|
+
.join('&');
|
|
117
|
+
return queryString ? `${baseUrl}?${queryString}` : baseUrl;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
exports.HttpClient = HttpClient;
|
|
121
|
+
//# sourceMappingURL=http-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-client.js","sourceRoot":"","sources":["../../src/clients/http-client.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { SoroswapSDK } from './soroswap-sdk';
|
|
2
|
+
export * from './types';
|
|
3
|
+
export { AuthManager } from './auth/auth-manager';
|
|
4
|
+
export { TokenCache } from './cache/token-cache';
|
|
5
|
+
export { HttpClient } from './clients/http-client';
|
|
6
|
+
import { SoroswapSDK } from './soroswap-sdk';
|
|
7
|
+
export default SoroswapSDK;
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,cAAc,SAAS,CAAC;AAGxB,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGnD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,eAAe,WAAW,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.HttpClient = exports.TokenCache = exports.AuthManager = exports.SoroswapSDK = void 0;
|
|
18
|
+
// Main SDK class
|
|
19
|
+
var soroswap_sdk_1 = require("./soroswap-sdk");
|
|
20
|
+
Object.defineProperty(exports, "SoroswapSDK", { enumerable: true, get: function () { return soroswap_sdk_1.SoroswapSDK; } });
|
|
21
|
+
// Export all types for TypeScript users
|
|
22
|
+
__exportStar(require("./types"), exports);
|
|
23
|
+
// Export utility classes that might be useful
|
|
24
|
+
var auth_manager_1 = require("./auth/auth-manager");
|
|
25
|
+
Object.defineProperty(exports, "AuthManager", { enumerable: true, get: function () { return auth_manager_1.AuthManager; } });
|
|
26
|
+
var token_cache_1 = require("./cache/token-cache");
|
|
27
|
+
Object.defineProperty(exports, "TokenCache", { enumerable: true, get: function () { return token_cache_1.TokenCache; } });
|
|
28
|
+
var http_client_1 = require("./clients/http-client");
|
|
29
|
+
Object.defineProperty(exports, "HttpClient", { enumerable: true, get: function () { return http_client_1.HttpClient; } });
|
|
30
|
+
// Default export is the main SDK class
|
|
31
|
+
const soroswap_sdk_2 = require("./soroswap-sdk");
|
|
32
|
+
exports.default = soroswap_sdk_2.SoroswapSDK;
|
|
33
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,iBAAiB;AACjB,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AAEpB,wCAAwC;AACxC,0CAAwB;AAExB,8CAA8C;AAC9C,oDAAkD;AAAzC,2GAAA,WAAW,OAAA;AACpB,mDAAiD;AAAxC,yGAAA,UAAU,OAAA;AACnB,qDAAmD;AAA1C,yGAAA,UAAU,OAAA;AAEnB,uCAAuC;AACvC,iDAA6C;AAC7C,kBAAe,0BAAW,CAAC"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { AddLiquidityDto, AssetListDetail, AssetListMetadata, BuildQuoteDto, ContractResponse, Network, Pool, PriceData, QuoteRequest, QuoteResponse, RemoveLiquidityDto, SendResponse, SoroswapSDKConfig, SupportedAssetLists, UserPosition } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Main Soroswap SDK class
|
|
4
|
+
* Provides access to all Soroswap API functionality with automatic authentication
|
|
5
|
+
*/
|
|
6
|
+
export declare class SoroswapSDK {
|
|
7
|
+
private authManager;
|
|
8
|
+
private httpClient;
|
|
9
|
+
private defaultNetwork;
|
|
10
|
+
constructor(config: SoroswapSDKConfig);
|
|
11
|
+
/**
|
|
12
|
+
* Check if user is authenticated
|
|
13
|
+
*/
|
|
14
|
+
isAuthenticated(): boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Get contract address for a specific network and contract name
|
|
17
|
+
*/
|
|
18
|
+
getContractAddress(network: Network, contractName: 'factory' | 'router' | 'aggregator'): Promise<ContractResponse>;
|
|
19
|
+
/**
|
|
20
|
+
* Get available protocols for trading
|
|
21
|
+
*/
|
|
22
|
+
getProtocols(network?: Network): Promise<string[]>;
|
|
23
|
+
/**
|
|
24
|
+
* Get quote for a swap
|
|
25
|
+
*/
|
|
26
|
+
quote(quoteRequest: QuoteRequest, network?: Network): Promise<QuoteResponse>;
|
|
27
|
+
/**
|
|
28
|
+
* Get quote for a swap
|
|
29
|
+
*/
|
|
30
|
+
build(buildQuoteRequest: BuildQuoteDto, network?: Network): Promise<QuoteResponse>;
|
|
31
|
+
/**
|
|
32
|
+
* Send signed transaction
|
|
33
|
+
*/
|
|
34
|
+
send(xdr: string, fee?: number, network?: Network): Promise<SendResponse>;
|
|
35
|
+
/**
|
|
36
|
+
* Get pools for specific protocols
|
|
37
|
+
*/
|
|
38
|
+
getPools(network: Network, protocols: string[], assetList?: SupportedAssetLists[]): Promise<Pool[]>;
|
|
39
|
+
/**
|
|
40
|
+
* Get pool for specific token pair
|
|
41
|
+
*/
|
|
42
|
+
getPoolByTokens(tokenA: string, tokenB: string, network: Network, protocols: string[]): Promise<Pool[]>;
|
|
43
|
+
/**
|
|
44
|
+
* Add liquidity to a pool
|
|
45
|
+
*/
|
|
46
|
+
addLiquidity(liquidityData: AddLiquidityDto, network?: Network): Promise<{
|
|
47
|
+
xdr: string;
|
|
48
|
+
poolInfo: any;
|
|
49
|
+
}>;
|
|
50
|
+
/**
|
|
51
|
+
* Remove liquidity from a pool
|
|
52
|
+
*/
|
|
53
|
+
removeLiquidity(liquidityData: RemoveLiquidityDto, network?: Network): Promise<{
|
|
54
|
+
xdr: string;
|
|
55
|
+
poolInfo: any;
|
|
56
|
+
}>;
|
|
57
|
+
/**
|
|
58
|
+
* Get user liquidity positions
|
|
59
|
+
*/
|
|
60
|
+
getUserPositions(address: string, network?: Network): Promise<UserPosition[]>;
|
|
61
|
+
/**
|
|
62
|
+
* Get asset lists metadata or specific asset list
|
|
63
|
+
*/
|
|
64
|
+
getAssetList(name?: SupportedAssetLists): Promise<AssetListMetadata[] | AssetListDetail>;
|
|
65
|
+
/**
|
|
66
|
+
* Get asset prices
|
|
67
|
+
*/
|
|
68
|
+
getPrice(assets: string | string[], network?: Network, referenceCurrency?: string): Promise<PriceData[]>;
|
|
69
|
+
/**
|
|
70
|
+
* Set default network for operations
|
|
71
|
+
*/
|
|
72
|
+
setDefaultNetwork(network: Network): void;
|
|
73
|
+
/**
|
|
74
|
+
* Get current default network
|
|
75
|
+
*/
|
|
76
|
+
getDefaultNetwork(): Network;
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=soroswap-sdk.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"soroswap-sdk.d.ts","sourceRoot":"","sources":["../src/soroswap-sdk.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,OAAO,EACP,IAAI,EACJ,SAAS,EACT,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,YAAY,EAEZ,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,EACb,MAAM,SAAS,CAAC;AAEjB;;;GAGG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,cAAc,CAAU;gBAEpB,MAAM,EAAE,iBAAiB;IAsBrC;;OAEG;IACH,eAAe,IAAI,OAAO;IAI1B;;OAEG;IACG,kBAAkB,CACtB,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,SAAS,GAAG,QAAQ,GAAG,YAAY,GAChD,OAAO,CAAC,gBAAgB,CAAC;IAQ5B;;OAEG;IACG,YAAY,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAMxD;;OAEG;IACG,KAAK,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC;IAMlF;;OAEG;IACG,KAAK,CAAC,iBAAiB,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC;IAMxF;;OAEG;IACG,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,GAAE,MAAY,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC;IAYpF;;OAEG;IACG,QAAQ,CACZ,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,MAAM,EAAE,EACnB,SAAS,CAAC,EAAE,mBAAmB,EAAE,GAChC,OAAO,CAAC,IAAI,EAAE,CAAC;IAclB;;OAEG;IACG,eAAe,CACnB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,MAAM,EAAE,GAClB,OAAO,CAAC,IAAI,EAAE,CAAC;IAclB;;OAEG;IACG,YAAY,CAChB,aAAa,EAAE,eAAe,EAC9B,OAAO,CAAC,EAAE,OAAO,GAChB,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,GAAG,CAAA;KAAE,CAAC;IAM1C;;OAEG;IACG,eAAe,CACnB,aAAa,EAAE,kBAAkB,EACjC,OAAO,CAAC,EAAE,OAAO,GAChB,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,GAAG,CAAA;KAAE,CAAC;IAM1C;;OAEG;IACG,gBAAgB,CACpB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,OAAO,GAChB,OAAO,CAAC,YAAY,EAAE,CAAC;IAU1B;;OAEG;IACG,YAAY,CAAC,IAAI,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,iBAAiB,EAAE,GAAG,eAAe,CAAC;IAW9F;;OAEG;IACG,QAAQ,CACZ,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,EACzB,OAAO,CAAC,EAAE,OAAO,EACjB,iBAAiB,GAAE,MAAc,GAChC,OAAO,CAAC,SAAS,EAAE,CAAC;IAevB;;OAEG;IACH,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIzC;;OAEG;IACH,iBAAiB,IAAI,OAAO;CAG7B"}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SoroswapSDK = void 0;
|
|
4
|
+
const auth_manager_1 = require("./auth/auth-manager");
|
|
5
|
+
const http_client_1 = require("./clients/http-client");
|
|
6
|
+
/**
|
|
7
|
+
* Main Soroswap SDK class
|
|
8
|
+
* Provides access to all Soroswap API functionality with automatic authentication
|
|
9
|
+
*/
|
|
10
|
+
class SoroswapSDK {
|
|
11
|
+
constructor(config) {
|
|
12
|
+
this.defaultNetwork = config.defaultNetwork || 'mainnet';
|
|
13
|
+
// Initialize auth manager
|
|
14
|
+
this.authManager = new auth_manager_1.AuthManager({
|
|
15
|
+
email: config.email,
|
|
16
|
+
password: config.password
|
|
17
|
+
});
|
|
18
|
+
// Initialize HTTP client
|
|
19
|
+
const baseURL = 'https://api.soroswap.finance';
|
|
20
|
+
const timeout = config.timeout || 30000;
|
|
21
|
+
this.httpClient = new http_client_1.HttpClient(baseURL, timeout, this.authManager.getTokenProvider());
|
|
22
|
+
// Inject HTTP client into auth manager
|
|
23
|
+
this.authManager.setHttpClient(this.httpClient);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Check if user is authenticated
|
|
27
|
+
*/
|
|
28
|
+
isAuthenticated() {
|
|
29
|
+
return this.authManager.isAuthenticated();
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Get contract address for a specific network and contract name
|
|
33
|
+
*/
|
|
34
|
+
async getContractAddress(network, contractName) {
|
|
35
|
+
return this.httpClient.get(`/api/${network}/${contractName}`);
|
|
36
|
+
}
|
|
37
|
+
// ========================================
|
|
38
|
+
// Quote & Trading Methods
|
|
39
|
+
// ========================================
|
|
40
|
+
/**
|
|
41
|
+
* Get available protocols for trading
|
|
42
|
+
*/
|
|
43
|
+
async getProtocols(network) {
|
|
44
|
+
const params = this.httpClient.buildNetworkQuery(network || this.defaultNetwork);
|
|
45
|
+
const url = this.httpClient.buildUrlWithQuery('/protocols', params);
|
|
46
|
+
return this.httpClient.get(url);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Get quote for a swap
|
|
50
|
+
*/
|
|
51
|
+
async quote(quoteRequest, network) {
|
|
52
|
+
const params = this.httpClient.buildNetworkQuery(network || this.defaultNetwork);
|
|
53
|
+
const url = this.httpClient.buildUrlWithQuery('/quote', params);
|
|
54
|
+
return this.httpClient.post(url, quoteRequest);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Get quote for a swap
|
|
58
|
+
*/
|
|
59
|
+
async build(buildQuoteRequest, network) {
|
|
60
|
+
const params = this.httpClient.buildNetworkQuery(network || this.defaultNetwork);
|
|
61
|
+
const url = this.httpClient.buildUrlWithQuery('/quote/build', params);
|
|
62
|
+
return this.httpClient.post(url, buildQuoteRequest);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Send signed transaction
|
|
66
|
+
*/
|
|
67
|
+
async send(xdr, fee = 100, network) {
|
|
68
|
+
const params = this.httpClient.buildNetworkQuery(network || this.defaultNetwork);
|
|
69
|
+
const url = this.httpClient.buildUrlWithQuery('/send', params);
|
|
70
|
+
const sendData = { xdr, fee };
|
|
71
|
+
return this.httpClient.post(url, sendData);
|
|
72
|
+
}
|
|
73
|
+
// ========================================
|
|
74
|
+
// Pool Methods
|
|
75
|
+
// ========================================
|
|
76
|
+
/**
|
|
77
|
+
* Get pools for specific protocols
|
|
78
|
+
*/
|
|
79
|
+
async getPools(network, protocols, assetList) {
|
|
80
|
+
const params = {
|
|
81
|
+
network,
|
|
82
|
+
protocol: protocols
|
|
83
|
+
};
|
|
84
|
+
if (assetList) {
|
|
85
|
+
params.assetList = assetList;
|
|
86
|
+
}
|
|
87
|
+
const url = this.httpClient.buildUrlWithQuery('/pools', params);
|
|
88
|
+
return this.httpClient.get(url);
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Get pool for specific token pair
|
|
92
|
+
*/
|
|
93
|
+
async getPoolByTokens(tokenA, tokenB, network, protocols) {
|
|
94
|
+
const params = {
|
|
95
|
+
network,
|
|
96
|
+
protocol: protocols
|
|
97
|
+
};
|
|
98
|
+
const url = this.httpClient.buildUrlWithQuery(`/pools/${tokenA}/${tokenB}`, params);
|
|
99
|
+
return this.httpClient.get(url);
|
|
100
|
+
}
|
|
101
|
+
// ========================================
|
|
102
|
+
// Liquidity Methods
|
|
103
|
+
// ========================================
|
|
104
|
+
/**
|
|
105
|
+
* Add liquidity to a pool
|
|
106
|
+
*/
|
|
107
|
+
async addLiquidity(liquidityData, network) {
|
|
108
|
+
const params = this.httpClient.buildNetworkQuery(network || this.defaultNetwork);
|
|
109
|
+
const url = this.httpClient.buildUrlWithQuery('/liquidity/add', params);
|
|
110
|
+
return this.httpClient.post(url, liquidityData);
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Remove liquidity from a pool
|
|
114
|
+
*/
|
|
115
|
+
async removeLiquidity(liquidityData, network) {
|
|
116
|
+
const params = this.httpClient.buildNetworkQuery(network || this.defaultNetwork);
|
|
117
|
+
const url = this.httpClient.buildUrlWithQuery('/liquidity/remove', params);
|
|
118
|
+
return this.httpClient.post(url, liquidityData);
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Get user liquidity positions
|
|
122
|
+
*/
|
|
123
|
+
async getUserPositions(address, network) {
|
|
124
|
+
const params = this.httpClient.buildNetworkQuery(network || this.defaultNetwork);
|
|
125
|
+
const url = this.httpClient.buildUrlWithQuery(`/liquidity/positions/${address}`, params);
|
|
126
|
+
return this.httpClient.get(url);
|
|
127
|
+
}
|
|
128
|
+
// ========================================
|
|
129
|
+
// Asset & Price Methods
|
|
130
|
+
// ========================================
|
|
131
|
+
/**
|
|
132
|
+
* Get asset lists metadata or specific asset list
|
|
133
|
+
*/
|
|
134
|
+
async getAssetList(name) {
|
|
135
|
+
const params = name ? { name } : {};
|
|
136
|
+
const url = this.httpClient.buildUrlWithQuery('/asset-list', params);
|
|
137
|
+
if (name) {
|
|
138
|
+
return this.httpClient.get(url);
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
return this.httpClient.get(url);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Get asset prices
|
|
146
|
+
*/
|
|
147
|
+
async getPrice(assets, network, referenceCurrency = 'USD') {
|
|
148
|
+
const params = {
|
|
149
|
+
network: network || this.defaultNetwork,
|
|
150
|
+
asset: Array.isArray(assets) ? assets : [assets],
|
|
151
|
+
referenceCurrency
|
|
152
|
+
};
|
|
153
|
+
const url = this.httpClient.buildUrlWithQuery('/price', params);
|
|
154
|
+
return this.httpClient.get(url);
|
|
155
|
+
}
|
|
156
|
+
// ========================================
|
|
157
|
+
// Utility Methods
|
|
158
|
+
// ========================================
|
|
159
|
+
/**
|
|
160
|
+
* Set default network for operations
|
|
161
|
+
*/
|
|
162
|
+
setDefaultNetwork(network) {
|
|
163
|
+
this.defaultNetwork = network;
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Get current default network
|
|
167
|
+
*/
|
|
168
|
+
getDefaultNetwork() {
|
|
169
|
+
return this.defaultNetwork;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
exports.SoroswapSDK = SoroswapSDK;
|
|
173
|
+
//# sourceMappingURL=soroswap-sdk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"soroswap-sdk.js","sourceRoot":"","sources":["../src/soroswap-sdk.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export interface AuthRegisterDto {
|
|
2
|
+
username: string;
|
|
3
|
+
password: string;
|
|
4
|
+
email: string;
|
|
5
|
+
}
|
|
6
|
+
export interface AuthLoginDto {
|
|
7
|
+
email: string;
|
|
8
|
+
password: string;
|
|
9
|
+
}
|
|
10
|
+
export interface AuthResponse {
|
|
11
|
+
username: string;
|
|
12
|
+
role: string;
|
|
13
|
+
access_token: string;
|
|
14
|
+
refresh_token: string;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=auth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/types/auth.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,eAAe;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;CACvB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/types/auth.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export type TradeType = 'EXACT_IN' | 'EXACT_OUT';
|
|
2
|
+
export declare enum SupportedAssetLists {
|
|
3
|
+
SOROSWAP = "https://raw.githubusercontent.com/soroswap/token-list/main/tokenList.json",
|
|
4
|
+
STELLAR_EXPERT = "https://api.stellar.expert/explorer/public/asset-list/top50",
|
|
5
|
+
LOBSTR = "https://lobstr.co/api/v1/sep/assets/curated.json",
|
|
6
|
+
AQUA = "https://amm-api.aqua.network/tokens/?format=json&pooled=true&size=200"
|
|
7
|
+
}
|
|
8
|
+
export declare enum SupportedPlatforms {
|
|
9
|
+
SDEX = "sdex",
|
|
10
|
+
AGGREGATOR = "aggregator",
|
|
11
|
+
ROUTER = "router"
|
|
12
|
+
}
|
|
13
|
+
export declare enum SupportedNetworks {
|
|
14
|
+
TESTNET = "testnet",
|
|
15
|
+
MAINNET = "mainnet"
|
|
16
|
+
}
|
|
17
|
+
export declare enum SupportedProtocols {
|
|
18
|
+
SOROSWAP = "soroswap",
|
|
19
|
+
PHOENIX = "phoenix",
|
|
20
|
+
AQUA = "aqua",
|
|
21
|
+
COMET = "comet",
|
|
22
|
+
SDEX = "sdex"
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=common.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/types/common.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,SAAS,GAAG,UAAU,GAAG,WAAW,CAAC;AAGjD,oBAAY,mBAAmB;IAC7B,QAAQ,8EAA8E;IACtF,cAAc,gEAAgE;IAC9E,MAAM,qDAAqD;IAC3D,IAAI,0EAA0E;CAC/E;AAED,oBAAY,kBAAkB;IAC5B,IAAI,SAAS;IACb,UAAU,eAAe;IACzB,MAAM,WAAW;CAClB;AAED,oBAAY,iBAAiB;IAC3B,OAAO,YAAY;IACnB,OAAO,YAAY;CACpB;AAED,oBAAY,kBAAkB;IAC5B,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,KAAK,UAAU;IACf,IAAI,SAAS;CACd"}
|