@soroswap/sdk 0.3.7 → 0.4.0-alpha.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 CHANGED
@@ -1,4 +1,7 @@
1
1
  # Soroswap SDK
2
+ [![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/soroswap/sdk)
3
+ [![npm version](https://img.shields.io/npm/v/soroswap-sdk)](https://www.npmjs.com/package/@soroswap/sdk)
4
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
2
5
 
3
6
  Official TypeScript SDK for [Soroswap.Finance](https://soroswap.finance) - The first DEX and exchange aggregator built on Stellar, powered by smart contracts on Soroban.
4
7
 
@@ -0,0 +1,51 @@
1
+ import { HttpClient } from '../clients/http-client';
2
+ import { AuthLoginDto, AuthResponse } from '../types';
3
+ /**
4
+ * Authentication manager handles login, registration, and token refresh
5
+ */
6
+ export declare class AuthManager {
7
+ private tokenCache;
8
+ private credentials;
9
+ private httpClient;
10
+ constructor(credentials: AuthLoginDto);
11
+ /**
12
+ * Set HTTP client (injected dependency)
13
+ */
14
+ setHttpClient(httpClient: HttpClient): void;
15
+ /**
16
+ * Get current valid access token, refreshing if necessary
17
+ */
18
+ getValidAccessToken(): Promise<string>;
19
+ /**
20
+ * Login with credentials
21
+ */
22
+ login(): Promise<AuthResponse>;
23
+ /**
24
+ * Refresh access token using refresh token
25
+ */
26
+ refreshTokens(): Promise<AuthResponse>;
27
+ /**
28
+ * Get current user information
29
+ */
30
+ getUserInfo(): {
31
+ username: string;
32
+ role: string;
33
+ } | null;
34
+ /**
35
+ * Check if user is authenticated
36
+ */
37
+ isAuthenticated(): boolean;
38
+ /**
39
+ * Logout (clear tokens)
40
+ */
41
+ logout(): void;
42
+ /**
43
+ * Get token provider function for HTTP client
44
+ */
45
+ getTokenProvider(): () => Promise<string | null>;
46
+ /**
47
+ * Update credentials (for switching users)
48
+ */
49
+ updateCredentials(credentials: AuthLoginDto): void;
50
+ }
51
+ //# sourceMappingURL=auth-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-manager.d.ts","sourceRoot":"","sources":["../../src/auth/auth-manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EACL,YAAY,EACZ,YAAY,EAEb,MAAM,UAAU,CAAC;AAElB;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,WAAW,CAAe;IAClC,OAAO,CAAC,UAAU,CAA2B;gBAEjC,WAAW,EAAE,YAAY;IAKrC;;OAEG;IACH,aAAa,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IAI3C;;OAEG;IACG,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC;IA6B5C;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,YAAY,CAAC;IAqCpC;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,YAAY,CAAC;IAuC5C;;OAEG;IACH,WAAW,IAAI;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAIxD;;OAEG;IACH,eAAe,IAAI,OAAO;IAI1B;;OAEG;IACH,MAAM,IAAI,IAAI;IAId;;OAEG;IACH,gBAAgB,IAAI,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAWhD;;OAEG;IACH,iBAAiB,CAAC,WAAW,EAAE,YAAY,GAAG,IAAI;CAInD"}
@@ -0,0 +1,164 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AuthManager = void 0;
4
+ const token_cache_1 = require("../cache/token-cache");
5
+ /**
6
+ * Authentication manager handles login, registration, and token refresh
7
+ */
8
+ class AuthManager {
9
+ constructor(credentials) {
10
+ this.httpClient = null; // Will be injected
11
+ this.credentials = credentials;
12
+ this.tokenCache = new token_cache_1.TokenCache();
13
+ }
14
+ /**
15
+ * Set HTTP client (injected dependency)
16
+ */
17
+ setHttpClient(httpClient) {
18
+ this.httpClient = httpClient;
19
+ }
20
+ /**
21
+ * Get current valid access token, refreshing if necessary
22
+ */
23
+ async getValidAccessToken() {
24
+ // Check if we have valid tokens
25
+ if (this.tokenCache.hasValidTokens()) {
26
+ return this.tokenCache.getAccessToken();
27
+ }
28
+ // Check if we need to refresh
29
+ if (this.tokenCache.needsRefresh() && this.tokenCache.getRefreshToken()) {
30
+ try {
31
+ await this.refreshTokens();
32
+ const token = this.tokenCache.getAccessToken();
33
+ if (token) {
34
+ return token;
35
+ }
36
+ }
37
+ catch (error) {
38
+ console.log("🚀 | getValidAccessToken | error:", error);
39
+ // Token refresh failed, attempting new login
40
+ }
41
+ }
42
+ // Login fresh
43
+ await this.login();
44
+ const token = this.tokenCache.getAccessToken();
45
+ if (!token) {
46
+ throw new Error('Failed to obtain access token after login');
47
+ }
48
+ return token;
49
+ }
50
+ /**
51
+ * Login with credentials
52
+ */
53
+ async login() {
54
+ if (!this.httpClient) {
55
+ throw new Error('HTTP client not initialized');
56
+ }
57
+ try {
58
+ const response = await this.httpClient.post('/login', this.credentials);
59
+ //TODO: Get expiration from jwt
60
+ // {
61
+ // "sub": 1,
62
+ // "email": "dev@paltalabs.io",
63
+ // "role": "ADMIN",
64
+ // "iat": 1751307940,
65
+ // "exp": 1751308840
66
+ // }
67
+ // Calculate expiration time (assume 1 hour if not provided)
68
+ const expiresIn = 60 * 60 * 1000; // 1 hour in milliseconds
69
+ const expiresAt = Date.now() + expiresIn;
70
+ // Store tokens in cache
71
+ const tokenData = {
72
+ access_token: response.access_token,
73
+ refresh_token: response.refresh_token,
74
+ expires_at: expiresAt,
75
+ username: response.username,
76
+ role: response.role,
77
+ };
78
+ this.tokenCache.setTokens(tokenData);
79
+ return response;
80
+ }
81
+ catch (error) {
82
+ this.tokenCache.clear();
83
+ throw error;
84
+ }
85
+ }
86
+ /**
87
+ * Refresh access token using refresh token
88
+ */
89
+ async refreshTokens() {
90
+ if (!this.httpClient) {
91
+ throw new Error('HTTP client not initialized');
92
+ }
93
+ const refreshToken = this.tokenCache.getRefreshToken();
94
+ if (!refreshToken) {
95
+ throw new Error('No refresh token available');
96
+ }
97
+ try {
98
+ // Use refresh token as bearer token
99
+ const response = await this.httpClient.post('/refresh', {}, {
100
+ headers: {
101
+ Authorization: `Bearer ${refreshToken}`
102
+ }
103
+ });
104
+ // Calculate expiration time
105
+ const expiresIn = 60 * 60 * 1000; // 1 hour in milliseconds
106
+ const expiresAt = Date.now() + expiresIn;
107
+ // Update tokens in cache
108
+ const tokenData = {
109
+ access_token: response.access_token,
110
+ refresh_token: response.refresh_token,
111
+ expires_at: expiresAt,
112
+ username: response.username,
113
+ role: response.role,
114
+ };
115
+ this.tokenCache.setTokens(tokenData);
116
+ return response;
117
+ }
118
+ catch (error) {
119
+ this.tokenCache.clear();
120
+ throw error;
121
+ }
122
+ }
123
+ /**
124
+ * Get current user information
125
+ */
126
+ getUserInfo() {
127
+ return this.tokenCache.getUserInfo();
128
+ }
129
+ /**
130
+ * Check if user is authenticated
131
+ */
132
+ isAuthenticated() {
133
+ return this.tokenCache.hasValidTokens();
134
+ }
135
+ /**
136
+ * Logout (clear tokens)
137
+ */
138
+ logout() {
139
+ this.tokenCache.clear();
140
+ }
141
+ /**
142
+ * Get token provider function for HTTP client
143
+ */
144
+ getTokenProvider() {
145
+ return async () => {
146
+ try {
147
+ return await this.getValidAccessToken();
148
+ }
149
+ catch (error) {
150
+ console.log("🚀 | return | error:", error);
151
+ return null;
152
+ }
153
+ };
154
+ }
155
+ /**
156
+ * Update credentials (for switching users)
157
+ */
158
+ updateCredentials(credentials) {
159
+ this.credentials = credentials;
160
+ this.tokenCache.clear(); // Clear existing tokens
161
+ }
162
+ }
163
+ exports.AuthManager = AuthManager;
164
+ //# sourceMappingURL=auth-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-manager.js","sourceRoot":"","sources":["../../src/auth/auth-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ import { JWTData } from '../types';
2
+ /**
3
+ * In-memory token cache with automatic expiration handling
4
+ * Stores access and refresh tokens with timestamps
5
+ */
6
+ export declare class TokenCache {
7
+ private tokenData;
8
+ /**
9
+ * Store token data in cache
10
+ */
11
+ setTokens(tokenData: JWTData): void;
12
+ /**
13
+ * Get current access token if valid
14
+ */
15
+ getAccessToken(): string | null;
16
+ /**
17
+ * Get refresh token
18
+ */
19
+ getRefreshToken(): string | null;
20
+ /**
21
+ * Get user information
22
+ */
23
+ getUserInfo(): {
24
+ username: string;
25
+ role: string;
26
+ } | null;
27
+ /**
28
+ * Check if we have valid tokens
29
+ */
30
+ hasValidTokens(): boolean;
31
+ /**
32
+ * Check if we need to refresh tokens
33
+ */
34
+ needsRefresh(): boolean;
35
+ /**
36
+ * Clear all cached tokens
37
+ */
38
+ clear(): void;
39
+ /**
40
+ * Get token expiration time
41
+ */
42
+ getExpirationTime(): number | null;
43
+ /**
44
+ * Check if tokens exist (regardless of expiration)
45
+ */
46
+ hasTokens(): boolean;
47
+ }
48
+ //# sourceMappingURL=token-cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-cache.d.ts","sourceRoot":"","sources":["../../src/cache/token-cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEnC;;;GAGG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,SAAS,CAAwB;IAEzC;;OAEG;IACH,SAAS,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI;IAInC;;OAEG;IACH,cAAc,IAAI,MAAM,GAAG,IAAI;IAgB/B;;OAEG;IACH,eAAe,IAAI,MAAM,GAAG,IAAI;IAIhC;;OAEG;IACH,WAAW,IAAI;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAWxD;;OAEG;IACH,cAAc,IAAI,OAAO;IAIzB;;OAEG;IACH,YAAY,IAAI,OAAO;IAWvB;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,iBAAiB,IAAI,MAAM,GAAG,IAAI;IAIlC;;OAEG;IACH,SAAS,IAAI,OAAO;CAGrB"}
@@ -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,GAAmB,IAAI,CAAC;IA0F3C,CAAC;IAxFC;;OAEG;IACH,SAAS,CAAC,SAAkB;QAC1B,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"}
@@ -1,4 +1,5 @@
1
1
  import { AddLiquidityRequest, AssetList, AssetListInfo, BuildQuoteRequest, BuildQuoteResponse, LiquidityResponse, Pool, PriceData, QuoteRequest, QuoteResponse, RemoveLiquidityRequest, SoroswapSDKConfig, SupportedAssetLists, SupportedNetworks, UserPositionResponse } from './types';
2
+ import { SendTransactionResponse } from './types/send';
2
3
  /**
3
4
  * Main Soroswap SDK class
4
5
  * Provides access to all Soroswap API functionality with API key authentication
@@ -31,8 +32,9 @@ export declare class SoroswapSDK {
31
32
  build(buildQuoteRequest: BuildQuoteRequest, network?: SupportedNetworks): Promise<BuildQuoteResponse>;
32
33
  /**
33
34
  * Send signed transaction
35
+ * @returns Normalized transaction response with parsed result
34
36
  */
35
- send(xdr: string, launchtube?: boolean, network?: SupportedNetworks): Promise<any>;
37
+ send(xdr: string, launchtube?: boolean, network?: SupportedNetworks): Promise<SendTransactionResponse>;
36
38
  /**
37
39
  * Get pools for specific protocols
38
40
  */
@@ -56,7 +58,7 @@ export declare class SoroswapSDK {
56
58
  /**
57
59
  * Get asset lists metadata or specific asset list
58
60
  */
59
- getAssetList(name?: SupportedAssetLists): Promise<AssetList[] | AssetListInfo[]>;
61
+ getAssetList(name?: SupportedAssetLists): Promise<AssetList | AssetListInfo[]>;
60
62
  /**
61
63
  * Get asset prices
62
64
  */
@@ -1 +1 @@
1
- {"version":3,"file":"soroswap-sdk.d.ts","sourceRoot":"","sources":["../src/soroswap-sdk.ts"],"names":[],"mappings":"AACA,OAAO,EACL,mBAAmB,EACnB,SAAS,EACT,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,IAAI,EACJ,SAAS,EACT,YAAY,EACZ,aAAa,EACb,sBAAsB,EACtB,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,SAAS,CAAC;AAGjB;;;GAGG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,cAAc,CAAoB;gBAE9B,MAAM,EAAE,iBAAiB;IAcrC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAqC1B;;OAEG;IACG,kBAAkB,CACtB,OAAO,EAAE,iBAAiB,EAC1B,YAAY,EAAE,SAAS,GAAG,QAAQ,GAAG,YAAY,GAChD,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAC,CAAC;IAQ7B;;OAEG;IACG,YAAY,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAMlE;;OAEG;IACG,KAAK,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,aAAa,CAAC;IAa5F;;OAEG;IACG,KAAK,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAM3G;;OAEG;IACG,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,GAAE,OAAe,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC;IAY/F;;OAEG;IACG,QAAQ,CACZ,OAAO,EAAE,iBAAiB,EAC1B,SAAS,EAAE,MAAM,EAAE,EACnB,SAAS,CAAC,EAAE,CAAC,mBAAmB,GAAG,MAAM,CAAC,EAAE,GAC3C,OAAO,CAAC,IAAI,EAAE,CAAC;IAclB;;OAEG;IACG,eAAe,CACnB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,iBAAiB,EAC1B,SAAS,EAAE,MAAM,EAAE,GAClB,OAAO,CAAC,IAAI,EAAE,CAAC;IAclB;;OAEG;IACG,YAAY,CAChB,aAAa,EAAE,mBAAmB,EAClC,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,iBAAiB,CAAC;IAM7B;;OAEG;IACG,eAAe,CACnB,aAAa,EAAE,sBAAsB,EACrC,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,iBAAiB,CAAC;IAM7B;;OAEG;IACG,gBAAgB,CACpB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAUlC;;OAEG;IACG,YAAY,CAAC,IAAI,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,SAAS,EAAE,GAAG,aAAa,EAAE,CAAC;IAWtF;;OAEG;IACG,QAAQ,CACZ,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,EACzB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,SAAS,EAAE,CAAC;CASxB"}
1
+ {"version":3,"file":"soroswap-sdk.d.ts","sourceRoot":"","sources":["../src/soroswap-sdk.ts"],"names":[],"mappings":"AACA,OAAO,EACL,mBAAmB,EACnB,SAAS,EACT,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,IAAI,EACJ,SAAS,EACT,YAAY,EACZ,aAAa,EACb,sBAAsB,EACtB,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAe,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAEpE;;;GAGG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,cAAc,CAAoB;gBAE9B,MAAM,EAAE,iBAAiB;IAcrC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAqC1B;;OAEG;IACG,kBAAkB,CACtB,OAAO,EAAE,iBAAiB,EAC1B,YAAY,EAAE,SAAS,GAAG,QAAQ,GAAG,YAAY,GAChD,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAC,CAAC;IAQ7B;;OAEG;IACG,YAAY,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAMlE;;OAEG;IACG,KAAK,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,aAAa,CAAC;IAa5F;;OAEG;IACG,KAAK,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAM3G;;;OAGG;IACG,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,GAAE,OAAe,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAYnH;;OAEG;IACG,QAAQ,CACZ,OAAO,EAAE,iBAAiB,EAC1B,SAAS,EAAE,MAAM,EAAE,EACnB,SAAS,CAAC,EAAE,CAAC,mBAAmB,GAAG,MAAM,CAAC,EAAE,GAC3C,OAAO,CAAC,IAAI,EAAE,CAAC;IAclB;;OAEG;IACG,eAAe,CACnB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,iBAAiB,EAC1B,SAAS,EAAE,MAAM,EAAE,GAClB,OAAO,CAAC,IAAI,EAAE,CAAC;IAclB;;OAEG;IACG,YAAY,CAChB,aAAa,EAAE,mBAAmB,EAClC,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,iBAAiB,CAAC;IAM7B;;OAEG;IACG,eAAe,CACnB,aAAa,EAAE,sBAAsB,EACrC,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,iBAAiB,CAAC;IAM7B;;OAEG;IACG,gBAAgB,CACpB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAUlC;;OAEG;IACG,YAAY,CAAC,IAAI,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,SAAS,GAAG,aAAa,EAAE,CAAC;IAYpF;;OAEG;IACG,QAAQ,CACZ,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,EACzB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,SAAS,EAAE,CAAC;CASxB"}
@@ -94,6 +94,7 @@ class SoroswapSDK {
94
94
  }
95
95
  /**
96
96
  * Send signed transaction
97
+ * @returns Normalized transaction response with parsed result
97
98
  */
98
99
  async send(xdr, launchtube = false, network) {
99
100
  const params = { network: network || this.defaultNetwork };
@@ -163,7 +164,8 @@ class SoroswapSDK {
163
164
  * Get asset lists metadata or specific asset list
164
165
  */
165
166
  async getAssetList(name) {
166
- const params = name ? { name } : {};
167
+ const listName = name ? this.transformAssetList([name])[0] : undefined;
168
+ const params = name ? { name: listName } : {};
167
169
  const url = this.httpClient.buildUrlWithQuery('/asset-list', params);
168
170
  if (name) {
169
171
  return this.httpClient.get(url);
@@ -1 +1 @@
1
- {"version":3,"file":"soroswap-sdk.js","sourceRoot":"","sources":["../src/soroswap-sdk.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"soroswap-sdk.js","sourceRoot":"","sources":["../src/soroswap-sdk.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ export interface AuthLoginDto {
2
+ email: string;
3
+ password: string;
4
+ }
5
+ export interface AuthResponse {
6
+ username: string;
7
+ role: string;
8
+ access_token: string;
9
+ refresh_token: string;
10
+ }
11
+ export interface JWTData {
12
+ access_token: string;
13
+ refresh_token: string;
14
+ expires_at: number;
15
+ username: string;
16
+ role: string;
17
+ }
18
+ //# 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,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;AAED,MAAM,WAAW,OAAO;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/types/auth.ts"],"names":[],"mappings":""}
@@ -2,4 +2,64 @@ export interface SendRequest {
2
2
  xdr: string;
3
3
  launchtube?: boolean;
4
4
  }
5
+ /** Result for swap transactions (Router/Aggregator/SDEX) */
6
+ export interface SwapResult {
7
+ type: 'swap';
8
+ /** Amount sent by the user (in stroops/smallest unit) */
9
+ amountIn: string;
10
+ /** Final amount received by the user (in stroops/smallest unit) */
11
+ amountOut: string;
12
+ /** Intermediate amounts for multi-hop swaps */
13
+ intermediateAmounts?: string[];
14
+ }
15
+ /** Result for transactions we don't have specific parsing for yet */
16
+ export interface UnknownResult {
17
+ type: 'unknown';
18
+ /** The parsed native value from scValToNative() - structure varies by transaction type */
19
+ value: unknown;
20
+ }
21
+ /** Result for add liquidity transactions */
22
+ export interface AddLiquidityResult {
23
+ type: 'add_liquidity';
24
+ /** Amount of token A deposited (in stroops/smallest unit) */
25
+ amountA: string;
26
+ /** Amount of token B deposited (in stroops/smallest unit) */
27
+ amountB: string;
28
+ /** LP tokens/shares received */
29
+ shares: string;
30
+ }
31
+ /** Result for remove liquidity transactions */
32
+ export interface RemoveLiquidityResult {
33
+ type: 'remove_liquidity';
34
+ /** Amount of token A received (in stroops/smallest unit) */
35
+ amountA: string;
36
+ /** Amount of token B received (in stroops/smallest unit) */
37
+ amountB: string;
38
+ }
39
+ /** Union of all possible transaction result types */
40
+ export type TransactionResult = SwapResult | AddLiquidityResult | RemoveLiquidityResult | UnknownResult;
41
+ export interface SendTransactionResponse {
42
+ /** Transaction hash (normalized from all sources) */
43
+ txHash: string;
44
+ /** Whether the transaction succeeded */
45
+ success: boolean;
46
+ /** Parsed result - discriminated union based on transaction type */
47
+ result: TransactionResult | null;
48
+ /** Ledger the transaction was included in */
49
+ ledger: number;
50
+ /** When the transaction was created (ISO 8601 string) */
51
+ createdAt: string;
52
+ /** Latest ledger at response time */
53
+ latestLedger: number;
54
+ /** Latest ledger close time */
55
+ latestLedgerCloseTime: string;
56
+ /** Whether this was a fee bump transaction */
57
+ feeBump: boolean;
58
+ /** Fee charged in stroops */
59
+ feeCharged: string;
60
+ /** Which protocol/contract executed the transaction */
61
+ protocol: 'router' | 'aggregator' | 'sdex' | 'unknown';
62
+ /** Transaction submission method */
63
+ submissionMethod: 'soroban' | 'horizon' | 'launchtube';
64
+ }
5
65
  //# sourceMappingURL=send.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"send.d.ts","sourceRoot":"","sources":["../../src/types/send.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB"}
1
+ {"version":3,"file":"send.d.ts","sourceRoot":"","sources":["../../src/types/send.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAMD,4DAA4D;AAC5D,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,yDAAyD;IACzD,QAAQ,EAAE,MAAM,CAAC;IACjB,mEAAmE;IACnE,SAAS,EAAE,MAAM,CAAC;IAClB,+CAA+C;IAC/C,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;CAChC;AAED,qEAAqE;AACrE,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,SAAS,CAAC;IAChB,0FAA0F;IAC1F,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,4CAA4C;AAC5C,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,eAAe,CAAC;IACtB,6DAA6D;IAC7D,OAAO,EAAE,MAAM,CAAC;IAChB,6DAA6D;IAC7D,OAAO,EAAE,MAAM,CAAC;IAChB,gCAAgC;IAChC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,+CAA+C;AAC/C,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,kBAAkB,CAAC;IACzB,4DAA4D;IAC5D,OAAO,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qDAAqD;AACrD,MAAM,MAAM,iBAAiB,GACzB,UAAU,GACV,kBAAkB,GAClB,qBAAqB,GACrB,aAAa,CAAC;AAMlB,MAAM,WAAW,uBAAuB;IACtC,qDAAqD;IACrD,MAAM,EAAE,MAAM,CAAC;IAEf,wCAAwC;IACxC,OAAO,EAAE,OAAO,CAAC;IAEjB,oEAAoE;IACpE,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAEjC,6CAA6C;IAC7C,MAAM,EAAE,MAAM,CAAC;IAEf,yDAAyD;IACzD,SAAS,EAAE,MAAM,CAAC;IAElB,qCAAqC;IACrC,YAAY,EAAE,MAAM,CAAC;IAErB,+BAA+B;IAC/B,qBAAqB,EAAE,MAAM,CAAC;IAE9B,8CAA8C;IAC9C,OAAO,EAAE,OAAO,CAAC;IAEjB,6BAA6B;IAC7B,UAAU,EAAE,MAAM,CAAC;IAEnB,uDAAuD;IACvD,QAAQ,EAAE,QAAQ,GAAG,YAAY,GAAG,MAAM,GAAG,SAAS,CAAC;IAEvD,oCAAoC;IACpC,gBAAgB,EAAE,SAAS,GAAG,SAAS,GAAG,YAAY,CAAC;CACxD"}
@@ -1,3 +1,6 @@
1
1
  "use strict";
2
+ // ============================================
3
+ // Request Types
4
+ // ============================================
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  //# sourceMappingURL=send.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"send.js","sourceRoot":"","sources":["../../src/types/send.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"send.js","sourceRoot":"","sources":["../../src/types/send.ts"],"names":[],"mappings":";AAAA,+CAA+C;AAC/C,gBAAgB;AAChB,+CAA+C"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@soroswap/sdk",
3
- "version": "0.3.7",
3
+ "version": "0.4.0-alpha.0",
4
4
  "description": "Official TypeScript SDK for Soroswap.Finance API - DEX and exchange aggregator on Stellar",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -9,6 +9,21 @@
9
9
  "README.md",
10
10
  "LICENSE"
11
11
  ],
12
+ "scripts": {
13
+ "build": "tsc",
14
+ "build:watch": "tsc --watch",
15
+ "test": "jest",
16
+ "test:unit": "jest",
17
+ "test:integration": "jest --config=jest.integration.config.js",
18
+ "test:all": "pnpm run test:unit && pnpm run test:integration",
19
+ "test:watch": "jest --watch",
20
+ "test:coverage": "jest --coverage",
21
+ "lint": "eslint src/**/*.ts",
22
+ "lint:fix": "eslint src/**/*.ts --fix",
23
+ "prepare": "pnpm run build",
24
+ "prepublishOnly": "pnpm test && pnpm run lint",
25
+ "clean": "rimraf dist"
26
+ },
12
27
  "keywords": [
13
28
  "soroswap",
14
29
  "stellar",
@@ -50,19 +65,6 @@
50
65
  "axios": "^1.10.0"
51
66
  },
52
67
  "engines": {
53
- "node": ">=16.0.0"
54
- },
55
- "scripts": {
56
- "build": "tsc",
57
- "build:watch": "tsc --watch",
58
- "test": "jest",
59
- "test:unit": "jest",
60
- "test:integration": "jest --config=jest.integration.config.js",
61
- "test:all": "pnpm run test:unit && pnpm run test:integration",
62
- "test:watch": "jest --watch",
63
- "test:coverage": "jest --coverage",
64
- "lint": "eslint src/**/*.ts",
65
- "lint:fix": "eslint src/**/*.ts --fix",
66
- "clean": "rimraf dist"
68
+ "node": ">=22.0.0"
67
69
  }
68
- }
70
+ }