@rhinestone/sdk 0.0.0-dev-20260204114155

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.
Files changed (206) hide show
  1. package/README.md +83 -0
  2. package/dist/src/accounts/error.d.ts +114 -0
  3. package/dist/src/accounts/error.d.ts.map +1 -0
  4. package/dist/src/accounts/error.js +174 -0
  5. package/dist/src/accounts/index.d.ts +48 -0
  6. package/dist/src/accounts/index.d.ts.map +1 -0
  7. package/dist/src/accounts/index.js +643 -0
  8. package/dist/src/accounts/index.test.d.ts +2 -0
  9. package/dist/src/accounts/index.test.d.ts.map +1 -0
  10. package/dist/src/accounts/index.test.js +33 -0
  11. package/dist/src/accounts/json-rpc/index.d.ts +5 -0
  12. package/dist/src/accounts/json-rpc/index.d.ts.map +1 -0
  13. package/dist/src/accounts/json-rpc/index.js +20 -0
  14. package/dist/src/accounts/json-rpc/index.test.d.ts +2 -0
  15. package/dist/src/accounts/json-rpc/index.test.d.ts.map +1 -0
  16. package/dist/src/accounts/json-rpc/index.test.js +33 -0
  17. package/dist/src/accounts/json-rpc/providers.d.ts +5 -0
  18. package/dist/src/accounts/json-rpc/providers.d.ts.map +1 -0
  19. package/dist/src/accounts/json-rpc/providers.js +22 -0
  20. package/dist/src/accounts/json-rpc/providers.test.d.ts +2 -0
  21. package/dist/src/accounts/json-rpc/providers.test.d.ts.map +1 -0
  22. package/dist/src/accounts/json-rpc/providers.test.js +43 -0
  23. package/dist/src/accounts/kernel.d.ts +27 -0
  24. package/dist/src/accounts/kernel.d.ts.map +1 -0
  25. package/dist/src/accounts/kernel.js +281 -0
  26. package/dist/src/accounts/kernel.test.d.ts +2 -0
  27. package/dist/src/accounts/kernel.test.d.ts.map +1 -0
  28. package/dist/src/accounts/kernel.test.js +132 -0
  29. package/dist/src/accounts/nexus.d.ts +33 -0
  30. package/dist/src/accounts/nexus.d.ts.map +1 -0
  31. package/dist/src/accounts/nexus.js +455 -0
  32. package/dist/src/accounts/nexus.test.d.ts +2 -0
  33. package/dist/src/accounts/nexus.test.d.ts.map +1 -0
  34. package/dist/src/accounts/nexus.test.js +118 -0
  35. package/dist/src/accounts/passport.d.ts +9 -0
  36. package/dist/src/accounts/passport.d.ts.map +1 -0
  37. package/dist/src/accounts/passport.js +82 -0
  38. package/dist/src/accounts/safe.d.ts +33 -0
  39. package/dist/src/accounts/safe.d.ts.map +1 -0
  40. package/dist/src/accounts/safe.js +349 -0
  41. package/dist/src/accounts/safe.test.d.ts +2 -0
  42. package/dist/src/accounts/safe.test.d.ts.map +1 -0
  43. package/dist/src/accounts/safe.test.js +118 -0
  44. package/dist/src/accounts/signing/common.d.ts +27 -0
  45. package/dist/src/accounts/signing/common.d.ts.map +1 -0
  46. package/dist/src/accounts/signing/common.js +190 -0
  47. package/dist/src/accounts/signing/message.d.ts +5 -0
  48. package/dist/src/accounts/signing/message.d.ts.map +1 -0
  49. package/dist/src/accounts/signing/message.js +47 -0
  50. package/dist/src/accounts/signing/passkeys.d.ts +36 -0
  51. package/dist/src/accounts/signing/passkeys.d.ts.map +1 -0
  52. package/dist/src/accounts/signing/passkeys.js +125 -0
  53. package/dist/src/accounts/signing/passkeys.test.d.ts +2 -0
  54. package/dist/src/accounts/signing/passkeys.test.d.ts.map +1 -0
  55. package/dist/src/accounts/signing/passkeys.test.js +88 -0
  56. package/dist/src/accounts/signing/typedData.d.ts +5 -0
  57. package/dist/src/accounts/signing/typedData.d.ts.map +1 -0
  58. package/dist/src/accounts/signing/typedData.js +35 -0
  59. package/dist/src/accounts/startale.d.ts +25 -0
  60. package/dist/src/accounts/startale.d.ts.map +1 -0
  61. package/dist/src/accounts/startale.js +112 -0
  62. package/dist/src/accounts/startale.test.d.ts +2 -0
  63. package/dist/src/accounts/startale.test.d.ts.map +1 -0
  64. package/dist/src/accounts/startale.test.js +92 -0
  65. package/dist/src/accounts/utils.d.ts +33 -0
  66. package/dist/src/accounts/utils.d.ts.map +1 -0
  67. package/dist/src/accounts/utils.js +208 -0
  68. package/dist/src/accounts/utils.test.d.ts +2 -0
  69. package/dist/src/accounts/utils.test.d.ts.map +1 -0
  70. package/dist/src/accounts/utils.test.js +49 -0
  71. package/dist/src/accounts/walletClient.d.ts +34 -0
  72. package/dist/src/accounts/walletClient.d.ts.map +1 -0
  73. package/dist/src/accounts/walletClient.js +121 -0
  74. package/dist/src/actions/compact.d.ts +15 -0
  75. package/dist/src/actions/compact.d.ts.map +1 -0
  76. package/dist/src/actions/compact.js +213 -0
  77. package/dist/src/actions/deployment.d.ts +19 -0
  78. package/dist/src/actions/deployment.d.ts.map +1 -0
  79. package/dist/src/actions/deployment.js +78 -0
  80. package/dist/src/actions/ecdsa.d.ts +35 -0
  81. package/dist/src/actions/ecdsa.d.ts.map +1 -0
  82. package/dist/src/actions/ecdsa.js +114 -0
  83. package/dist/src/actions/ecdsa.test.d.ts +2 -0
  84. package/dist/src/actions/ecdsa.test.d.ts.map +1 -0
  85. package/dist/src/actions/ecdsa.test.js +99 -0
  86. package/dist/src/actions/index.d.ts +17 -0
  87. package/dist/src/actions/index.d.ts.map +1 -0
  88. package/dist/src/actions/index.js +53 -0
  89. package/dist/src/actions/mfa.d.ts +37 -0
  90. package/dist/src/actions/mfa.d.ts.map +1 -0
  91. package/dist/src/actions/mfa.js +133 -0
  92. package/dist/src/actions/passkeys.d.ts +37 -0
  93. package/dist/src/actions/passkeys.d.ts.map +1 -0
  94. package/dist/src/actions/passkeys.js +129 -0
  95. package/dist/src/actions/passkeys.test.d.ts +2 -0
  96. package/dist/src/actions/passkeys.test.d.ts.map +1 -0
  97. package/dist/src/actions/passkeys.test.js +54 -0
  98. package/dist/src/actions/recovery.d.ts +33 -0
  99. package/dist/src/actions/recovery.d.ts.map +1 -0
  100. package/dist/src/actions/recovery.js +193 -0
  101. package/dist/src/actions/recovery.test.d.ts +2 -0
  102. package/dist/src/actions/recovery.test.d.ts.map +1 -0
  103. package/dist/src/actions/recovery.test.js +168 -0
  104. package/dist/src/actions/smart-sessions.d.ts +23 -0
  105. package/dist/src/actions/smart-sessions.d.ts.map +1 -0
  106. package/dist/src/actions/smart-sessions.js +52 -0
  107. package/dist/src/errors/index.d.ts +5 -0
  108. package/dist/src/errors/index.d.ts.map +1 -0
  109. package/dist/src/errors/index.js +54 -0
  110. package/dist/src/execution/compact.d.ts +148 -0
  111. package/dist/src/execution/compact.d.ts.map +1 -0
  112. package/dist/src/execution/compact.js +120 -0
  113. package/dist/src/execution/error.d.ts +55 -0
  114. package/dist/src/execution/error.d.ts.map +1 -0
  115. package/dist/src/execution/error.js +78 -0
  116. package/dist/src/execution/index.d.ts +41 -0
  117. package/dist/src/execution/index.d.ts.map +1 -0
  118. package/dist/src/execution/index.js +230 -0
  119. package/dist/src/execution/permit2.d.ts +143 -0
  120. package/dist/src/execution/permit2.d.ts.map +1 -0
  121. package/dist/src/execution/permit2.js +285 -0
  122. package/dist/src/execution/singleChainOps.d.ts +40 -0
  123. package/dist/src/execution/singleChainOps.d.ts.map +1 -0
  124. package/dist/src/execution/singleChainOps.js +46 -0
  125. package/dist/src/execution/types.d.ts +36 -0
  126. package/dist/src/execution/types.d.ts.map +1 -0
  127. package/dist/src/execution/types.js +2 -0
  128. package/dist/src/execution/utils.d.ts +87 -0
  129. package/dist/src/execution/utils.d.ts.map +1 -0
  130. package/dist/src/execution/utils.js +783 -0
  131. package/dist/src/index.d.ts +76 -0
  132. package/dist/src/index.d.ts.map +1 -0
  133. package/dist/src/index.js +319 -0
  134. package/dist/src/modules/abi/smart-session-emissary.d.ts +696 -0
  135. package/dist/src/modules/abi/smart-session-emissary.d.ts.map +1 -0
  136. package/dist/src/modules/abi/smart-session-emissary.js +565 -0
  137. package/dist/src/modules/abi/smart-sessions.d.ts +104 -0
  138. package/dist/src/modules/abi/smart-sessions.d.ts.map +1 -0
  139. package/dist/src/modules/abi/smart-sessions.js +131 -0
  140. package/dist/src/modules/chain-abstraction.d.ts +5 -0
  141. package/dist/src/modules/chain-abstraction.d.ts.map +1 -0
  142. package/dist/src/modules/chain-abstraction.js +7 -0
  143. package/dist/src/modules/common.d.ts +30 -0
  144. package/dist/src/modules/common.d.ts.map +1 -0
  145. package/dist/src/modules/common.js +42 -0
  146. package/dist/src/modules/index.d.ts +11 -0
  147. package/dist/src/modules/index.d.ts.map +1 -0
  148. package/dist/src/modules/index.js +97 -0
  149. package/dist/src/modules/index.test.d.ts +2 -0
  150. package/dist/src/modules/index.test.d.ts.map +1 -0
  151. package/dist/src/modules/index.test.js +81 -0
  152. package/dist/src/modules/legacy.d.ts +10 -0
  153. package/dist/src/modules/legacy.d.ts.map +1 -0
  154. package/dist/src/modules/legacy.js +65 -0
  155. package/dist/src/modules/read.d.ts +9 -0
  156. package/dist/src/modules/read.d.ts.map +1 -0
  157. package/dist/src/modules/read.js +125 -0
  158. package/dist/src/modules/validators/core.d.ts +31 -0
  159. package/dist/src/modules/validators/core.d.ts.map +1 -0
  160. package/dist/src/modules/validators/core.js +284 -0
  161. package/dist/src/modules/validators/core.test.d.ts +2 -0
  162. package/dist/src/modules/validators/core.test.d.ts.map +1 -0
  163. package/dist/src/modules/validators/core.test.js +101 -0
  164. package/dist/src/modules/validators/index.d.ts +4 -0
  165. package/dist/src/modules/validators/index.d.ts.map +1 -0
  166. package/dist/src/modules/validators/index.js +10 -0
  167. package/dist/src/modules/validators/smart-sessions.d.ts +185 -0
  168. package/dist/src/modules/validators/smart-sessions.d.ts.map +1 -0
  169. package/dist/src/modules/validators/smart-sessions.js +624 -0
  170. package/dist/src/orchestrator/client.d.ts +22 -0
  171. package/dist/src/orchestrator/client.d.ts.map +1 -0
  172. package/dist/src/orchestrator/client.js +360 -0
  173. package/dist/src/orchestrator/consts.d.ts +5 -0
  174. package/dist/src/orchestrator/consts.d.ts.map +1 -0
  175. package/dist/src/orchestrator/consts.js +9 -0
  176. package/dist/src/orchestrator/error.d.ts +242 -0
  177. package/dist/src/orchestrator/error.d.ts.map +1 -0
  178. package/dist/src/orchestrator/error.js +283 -0
  179. package/dist/src/orchestrator/index.d.ts +10 -0
  180. package/dist/src/orchestrator/index.d.ts.map +1 -0
  181. package/dist/src/orchestrator/index.js +58 -0
  182. package/dist/src/orchestrator/registry.d.ts +22 -0
  183. package/dist/src/orchestrator/registry.d.ts.map +1 -0
  184. package/dist/src/orchestrator/registry.js +116 -0
  185. package/dist/src/orchestrator/registry.test.d.ts +2 -0
  186. package/dist/src/orchestrator/registry.test.d.ts.map +1 -0
  187. package/dist/src/orchestrator/registry.test.js +154 -0
  188. package/dist/src/orchestrator/types.d.ts +322 -0
  189. package/dist/src/orchestrator/types.d.ts.map +1 -0
  190. package/dist/src/orchestrator/types.js +31 -0
  191. package/dist/src/orchestrator/utils.d.ts +3 -0
  192. package/dist/src/orchestrator/utils.d.ts.map +1 -0
  193. package/dist/src/orchestrator/utils.js +24 -0
  194. package/dist/src/types.d.ts +296 -0
  195. package/dist/src/types.d.ts.map +1 -0
  196. package/dist/src/types.js +2 -0
  197. package/dist/src/utils/index.d.ts +26 -0
  198. package/dist/src/utils/index.d.ts.map +1 -0
  199. package/dist/src/utils/index.js +63 -0
  200. package/dist/test/consts.d.ts +10 -0
  201. package/dist/test/consts.d.ts.map +1 -0
  202. package/dist/test/consts.js +22 -0
  203. package/dist/test/utils/utils.d.ts +5 -0
  204. package/dist/test/utils/utils.d.ts.map +1 -0
  205. package/dist/test/utils/utils.js +20 -0
  206. package/package.json +161 -0
@@ -0,0 +1,360 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Orchestrator = void 0;
4
+ const error_1 = require("./error");
5
+ const utils_1 = require("./utils");
6
+ function parseTokenAmountsRecord(record) {
7
+ return Object.fromEntries(Object.entries(record).map(([addr, amount]) => [
8
+ addr,
9
+ BigInt(amount),
10
+ ]));
11
+ }
12
+ class Orchestrator {
13
+ serverUrl;
14
+ apiKey;
15
+ constructor(serverUrl, apiKey) {
16
+ this.serverUrl = serverUrl;
17
+ this.apiKey = apiKey;
18
+ }
19
+ async getPortfolio(userAddress, filter) {
20
+ const params = new URLSearchParams();
21
+ if (filter?.chainIds) {
22
+ params.set('chainIds', filter.chainIds.join(','));
23
+ }
24
+ if (filter?.tokens) {
25
+ params.set('tokens', Object.entries(filter.tokens)
26
+ .flatMap(([chainId, tokens]) => tokens.map((token) => `${chainId}:${token}`))
27
+ .join(','));
28
+ }
29
+ const url = new URL(`${this.serverUrl}/accounts/${userAddress}/portfolio`);
30
+ url.search = params.toString();
31
+ const json = await this.fetch(url.toString(), {
32
+ headers: this.getHeaders(),
33
+ });
34
+ const portfolioResponse = json.portfolio;
35
+ const portfolio = portfolioResponse.map((tokenResponse) => ({
36
+ symbol: tokenResponse.tokenName,
37
+ decimals: tokenResponse.tokenDecimals,
38
+ balances: {
39
+ locked: BigInt(tokenResponse.balance.locked),
40
+ unlocked: BigInt(tokenResponse.balance.unlocked),
41
+ },
42
+ chains: tokenResponse.tokenChainBalance.map((chainBalance) => ({
43
+ chain: chainBalance.chainId,
44
+ address: chainBalance.tokenAddress,
45
+ locked: BigInt(chainBalance.balance.locked),
46
+ unlocked: BigInt(chainBalance.balance.unlocked),
47
+ })),
48
+ }));
49
+ return portfolio;
50
+ }
51
+ async getIntentRoute(input) {
52
+ return await this.fetch(`${this.serverUrl}/intents/route`, {
53
+ method: 'POST',
54
+ headers: this.getHeaders(),
55
+ body: JSON.stringify((0, utils_1.convertBigIntFields)(input)),
56
+ });
57
+ }
58
+ async splitIntents(input) {
59
+ const response = await fetch(`${this.serverUrl}/intents/split`, {
60
+ method: 'POST',
61
+ headers: this.getHeaders(),
62
+ body: JSON.stringify((0, utils_1.convertBigIntFields)({
63
+ chainId: input.chain.id,
64
+ tokens: input.tokens,
65
+ settlementLayers: input.settlementLayers,
66
+ })),
67
+ });
68
+ if (response.ok) {
69
+ const json = await response.json();
70
+ return {
71
+ intents: json.intents.map(parseTokenAmountsRecord),
72
+ };
73
+ }
74
+ let errorData = {};
75
+ try {
76
+ errorData = await response.json();
77
+ }
78
+ catch {
79
+ try {
80
+ const text = await response.text();
81
+ errorData = { message: text };
82
+ }
83
+ catch { }
84
+ }
85
+ if (response.status === 422 &&
86
+ errorData.error === 'INSUFFICIENT_LIQUIDITY') {
87
+ throw new error_1.InsufficientLiquidityError({
88
+ availableIntents: errorData.availableIntents.map(parseTokenAmountsRecord),
89
+ unfillable: parseTokenAmountsRecord(errorData.unfillable),
90
+ traceId: errorData.traceId,
91
+ statusCode: 422,
92
+ });
93
+ }
94
+ this.parseError({
95
+ response: {
96
+ status: response.status,
97
+ data: errorData,
98
+ headers: {},
99
+ },
100
+ });
101
+ throw new error_1.OrchestratorError({ message: 'Unexpected error' });
102
+ }
103
+ async submitIntent(signedIntentOpUnformatted, dryRun) {
104
+ const signedIntentOp = (0, utils_1.convertBigIntFields)(signedIntentOpUnformatted);
105
+ if (dryRun) {
106
+ signedIntentOp.options = {
107
+ dryRun: true,
108
+ };
109
+ }
110
+ return await this.fetch(`${this.serverUrl}/intent-operations`, {
111
+ method: 'POST',
112
+ headers: this.getHeaders(),
113
+ body: JSON.stringify({
114
+ signedIntentOp,
115
+ }),
116
+ });
117
+ }
118
+ async getIntentOpStatus(intentId) {
119
+ return await this.fetch(`${this.serverUrl}/intent-operation/${intentId.toString()}`, {
120
+ headers: this.getHeaders(),
121
+ });
122
+ }
123
+ getHeaders() {
124
+ const headers = {
125
+ 'Content-Type': 'application/json',
126
+ };
127
+ if (this.apiKey) {
128
+ headers['x-api-key'] = this.apiKey;
129
+ }
130
+ return headers;
131
+ }
132
+ async fetch(url, options) {
133
+ const response = await fetch(url, options);
134
+ if (!response.ok) {
135
+ let errorData = {};
136
+ try {
137
+ errorData = await response.json();
138
+ }
139
+ catch {
140
+ try {
141
+ const text = await response.text();
142
+ errorData = { message: text };
143
+ }
144
+ catch { }
145
+ }
146
+ const retryAfterHeader = response.headers?.get?.('retry-after') || undefined;
147
+ this.parseError({
148
+ response: {
149
+ status: response.status,
150
+ data: errorData,
151
+ headers: {
152
+ retryAfter: retryAfterHeader,
153
+ },
154
+ },
155
+ });
156
+ }
157
+ return response.json();
158
+ }
159
+ parseError(error) {
160
+ if (error.response) {
161
+ const status = error.response.status;
162
+ const { headers } = error.response;
163
+ const { errors = [], traceId, message } = error.response.data || {};
164
+ let errorType = 'Unknown';
165
+ switch (status) {
166
+ case 400:
167
+ errorType = 'Bad Request';
168
+ break;
169
+ case 401:
170
+ errorType = 'Unauthorized';
171
+ break;
172
+ case 403:
173
+ errorType = 'Forbidden';
174
+ break;
175
+ case 404:
176
+ errorType = 'Not Found';
177
+ break;
178
+ case 409:
179
+ errorType = 'Conflict';
180
+ break;
181
+ case 422:
182
+ errorType = 'Unprocessable Entity';
183
+ break;
184
+ case 429:
185
+ errorType = 'Too Many Requests';
186
+ break;
187
+ case 500:
188
+ errorType = 'Internal Server Error';
189
+ break;
190
+ case 503:
191
+ errorType = 'Service Unavailable';
192
+ break;
193
+ default:
194
+ errorType = 'Unknown';
195
+ }
196
+ const baseParams = {
197
+ context: { traceId },
198
+ errorType,
199
+ traceId,
200
+ statusCode: status,
201
+ };
202
+ if (status === 429) {
203
+ const retryAfter = headers?.retryAfter;
204
+ const context = { traceId, retryAfter };
205
+ throw new error_1.RateLimitedError({
206
+ ...baseParams,
207
+ context,
208
+ });
209
+ }
210
+ if (status === 503) {
211
+ throw new error_1.ServiceUnavailableError(baseParams);
212
+ }
213
+ if (message) {
214
+ this.parseErrorMessage(message, baseParams);
215
+ }
216
+ for (const err of errors) {
217
+ const mergedParams = {
218
+ ...baseParams,
219
+ context: { ...err.context, traceId },
220
+ };
221
+ this.parseErrorMessage(err.message, mergedParams);
222
+ }
223
+ switch (status) {
224
+ case 400:
225
+ throw new error_1.BadRequestError({
226
+ ...baseParams,
227
+ context: { traceId, errors },
228
+ message: message,
229
+ });
230
+ case 401:
231
+ if (message === 'Authentication is required') {
232
+ throw new error_1.AuthenticationRequiredError(baseParams);
233
+ }
234
+ throw new error_1.UnauthorizedError(baseParams);
235
+ case 403:
236
+ throw new error_1.ForbiddenError(baseParams);
237
+ case 404:
238
+ throw new error_1.ResourceNotFoundError(baseParams);
239
+ case 409:
240
+ throw new error_1.ConflictError(baseParams);
241
+ case 500:
242
+ if (errors && errors.length > 0) {
243
+ const mergedParams = {
244
+ ...baseParams,
245
+ context: { ...errors[0].context, traceId },
246
+ };
247
+ throw new error_1.OrchestratorError({
248
+ ...mergedParams,
249
+ message: errors[0].message || 'Internal Server Error',
250
+ });
251
+ }
252
+ throw new error_1.InternalServerError(baseParams);
253
+ default:
254
+ throw new error_1.OrchestratorError({
255
+ ...baseParams,
256
+ message: message || errorType,
257
+ });
258
+ }
259
+ }
260
+ }
261
+ parseErrorMessage(message, errorParams) {
262
+ if (message === 'Insufficient balance') {
263
+ throw new error_1.InsufficientBalanceError(errorParams);
264
+ }
265
+ else if (message === 'Unsupported chain id' ||
266
+ message === 'Unsupported chain ids') {
267
+ throw new error_1.UnsupportedChainIdError(errorParams);
268
+ }
269
+ else if (message.startsWith('Unsupported chain ')) {
270
+ const chainIdMatch = message.match(/Unsupported chain (\d+)/);
271
+ if (chainIdMatch) {
272
+ const chainId = parseInt(chainIdMatch[1], 10);
273
+ throw new error_1.UnsupportedChainError(chainId, errorParams);
274
+ }
275
+ throw new error_1.UnsupportedChainIdError(errorParams);
276
+ }
277
+ else if (message.includes('Unsupported token') &&
278
+ message.includes('for chain')) {
279
+ const tokenMatch = message.match(/Unsupported token (\w+) for chain (\d+)/);
280
+ if (tokenMatch) {
281
+ const tokenSymbol = tokenMatch[1];
282
+ const chainId = parseInt(tokenMatch[2], 10);
283
+ throw new error_1.UnsupportedTokenError(tokenSymbol, chainId, errorParams);
284
+ }
285
+ throw new error_1.OrchestratorError({ message, ...errorParams });
286
+ }
287
+ else if (message === 'Unsupported token addresses') {
288
+ // generic unsupported tokens without specific symbol/chain context
289
+ throw new error_1.BadRequestError({ message, ...errorParams });
290
+ }
291
+ else if (message.includes('not supported on chain')) {
292
+ const tokenMatch = message.match(/Token (.+) not supported on chain (\d+)/);
293
+ if (tokenMatch) {
294
+ const tokenAddress = tokenMatch[1];
295
+ const chainId = parseInt(tokenMatch[2], 10);
296
+ throw new error_1.TokenNotSupportedError(tokenAddress, chainId, errorParams);
297
+ }
298
+ throw new error_1.OrchestratorError({ message, ...errorParams });
299
+ }
300
+ else if (message === 'Authentication is required') {
301
+ throw new error_1.AuthenticationRequiredError(errorParams);
302
+ }
303
+ else if (message === 'Invalid API key') {
304
+ throw new error_1.InvalidApiKeyError(errorParams);
305
+ }
306
+ else if (message === 'Insufficient permissions') {
307
+ throw new error_1.ForbiddenError(errorParams);
308
+ }
309
+ else if (message === 'Invalid bundle signature') {
310
+ throw new error_1.InvalidIntentSignatureError(errorParams);
311
+ }
312
+ else if (message === 'Invalid checksum signature') {
313
+ throw new error_1.InvalidIntentSignatureError(errorParams);
314
+ }
315
+ else if (message === 'Only one target token amount can be unset' ||
316
+ message === 'Only one max-out transfer is allowed') {
317
+ throw new error_1.OnlyOneTargetTokenAmountCanBeUnsetError(errorParams);
318
+ }
319
+ else if (message === 'No valid settlement plan found for the given transfers' ||
320
+ message === 'No valid transfers sent for settlement quotes' ||
321
+ message === 'No Path Found') {
322
+ throw new error_1.NoPathFoundError(errorParams);
323
+ }
324
+ else if (message === 'Emissary is not enabled' ||
325
+ message === 'Emissary is not the expected address') {
326
+ throw new error_1.ForbiddenError(errorParams);
327
+ }
328
+ else if (message.includes('No such intent with nonce') ||
329
+ message === 'Order bundle not found') {
330
+ throw new error_1.IntentNotFoundError(errorParams);
331
+ }
332
+ else if (message === 'Could not retrieve a valid quote from any aggregator') {
333
+ throw new error_1.NoPathFoundError(errorParams);
334
+ }
335
+ else if (message === 'No aggregators available for swap') {
336
+ throw new error_1.InternalServerError(errorParams);
337
+ }
338
+ else if (message === 'entity.parse.failed' ||
339
+ message === 'entity.too.large' ||
340
+ message === 'encoding.unsupported') {
341
+ throw new error_1.BodyParserError({ message, ...errorParams });
342
+ }
343
+ else if (message === 'Bundle simulation failed') {
344
+ const simulations = errorParams.context.error.simulations;
345
+ const { traceId, errorType, statusCode, context } = errorParams;
346
+ throw new error_1.SimulationFailedError({
347
+ message,
348
+ context,
349
+ errorType,
350
+ traceId,
351
+ statusCode,
352
+ simulations,
353
+ });
354
+ }
355
+ else {
356
+ throw new error_1.OrchestratorError({ message, ...errorParams });
357
+ }
358
+ }
359
+ }
360
+ exports.Orchestrator = Orchestrator;
@@ -0,0 +1,5 @@
1
+ declare const PROD_ORCHESTRATOR_URL = "https://v1.orchestrator.rhinestone.dev";
2
+ declare const STAGING_ORCHESTRATOR_URL = "https://staging.v1.orchestrator.rhinestone.dev";
3
+ declare const RHINESTONE_SPOKE_POOL_ADDRESS = "0x000000000060f6e853447881951574cdd0663530";
4
+ export { PROD_ORCHESTRATOR_URL, STAGING_ORCHESTRATOR_URL, RHINESTONE_SPOKE_POOL_ADDRESS, };
5
+ //# sourceMappingURL=consts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../../../orchestrator/consts.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,qBAAqB,2CAA2C,CAAA;AACtE,QAAA,MAAM,wBAAwB,mDACoB,CAAA;AAClD,QAAA,MAAM,6BAA6B,+CACW,CAAA;AAE9C,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,6BAA6B,GAC9B,CAAA"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RHINESTONE_SPOKE_POOL_ADDRESS = exports.STAGING_ORCHESTRATOR_URL = exports.PROD_ORCHESTRATOR_URL = void 0;
4
+ const PROD_ORCHESTRATOR_URL = 'https://v1.orchestrator.rhinestone.dev';
5
+ exports.PROD_ORCHESTRATOR_URL = PROD_ORCHESTRATOR_URL;
6
+ const STAGING_ORCHESTRATOR_URL = 'https://staging.v1.orchestrator.rhinestone.dev';
7
+ exports.STAGING_ORCHESTRATOR_URL = STAGING_ORCHESTRATOR_URL;
8
+ const RHINESTONE_SPOKE_POOL_ADDRESS = '0x000000000060f6e853447881951574cdd0663530';
9
+ exports.RHINESTONE_SPOKE_POOL_ADDRESS = RHINESTONE_SPOKE_POOL_ADDRESS;
@@ -0,0 +1,242 @@
1
+ import type { Address, Hex } from 'viem';
2
+ interface Simulation {
3
+ success: boolean;
4
+ call: {
5
+ chainId: number;
6
+ to: Address;
7
+ data: Hex;
8
+ value: string;
9
+ };
10
+ details: {
11
+ stateOverride: unknown[];
12
+ blockNumber: string;
13
+ relayer: string;
14
+ simulationUrl: string;
15
+ };
16
+ }
17
+ declare class OrchestratorError extends Error {
18
+ private readonly _message;
19
+ private readonly _context;
20
+ private readonly _errorType;
21
+ private readonly _traceId;
22
+ private readonly _statusCode?;
23
+ constructor(params?: {
24
+ message?: string;
25
+ context?: any;
26
+ errorType?: string;
27
+ traceId?: string;
28
+ statusCode?: number;
29
+ });
30
+ get message(): string;
31
+ get context(): any;
32
+ get errorType(): string;
33
+ get traceId(): string;
34
+ get statusCode(): number | undefined;
35
+ }
36
+ declare class InsufficientBalanceError extends OrchestratorError {
37
+ constructor(params?: {
38
+ context?: any;
39
+ errorType?: string;
40
+ traceId?: string;
41
+ statusCode?: number;
42
+ });
43
+ }
44
+ declare class UnsupportedChainIdError extends OrchestratorError {
45
+ constructor(params?: {
46
+ context?: any;
47
+ errorType?: string;
48
+ traceId?: string;
49
+ statusCode?: number;
50
+ });
51
+ }
52
+ declare class UnsupportedChainError extends OrchestratorError {
53
+ constructor(chainId: number, params?: {
54
+ context?: any;
55
+ errorType?: string;
56
+ traceId?: string;
57
+ statusCode?: number;
58
+ });
59
+ }
60
+ declare class UnsupportedTokenError extends OrchestratorError {
61
+ constructor(tokenSymbol: string, chainId: number, params?: {
62
+ context?: any;
63
+ errorType?: string;
64
+ traceId?: string;
65
+ statusCode?: number;
66
+ });
67
+ }
68
+ declare class TokenNotSupportedError extends OrchestratorError {
69
+ constructor(tokenAddress: string, chainId: number, params?: {
70
+ context?: any;
71
+ errorType?: string;
72
+ traceId?: string;
73
+ statusCode?: number;
74
+ });
75
+ }
76
+ declare class AuthenticationRequiredError extends OrchestratorError {
77
+ constructor(params?: {
78
+ context?: any;
79
+ errorType?: string;
80
+ traceId?: string;
81
+ statusCode?: number;
82
+ });
83
+ }
84
+ declare class InvalidApiKeyError extends OrchestratorError {
85
+ constructor(params?: {
86
+ context?: any;
87
+ errorType?: string;
88
+ traceId?: string;
89
+ statusCode?: number;
90
+ });
91
+ }
92
+ declare class InvalidIntentSignatureError extends OrchestratorError {
93
+ constructor(params?: {
94
+ context?: any;
95
+ errorType?: string;
96
+ traceId?: string;
97
+ statusCode?: number;
98
+ });
99
+ }
100
+ declare class OnlyOneTargetTokenAmountCanBeUnsetError extends OrchestratorError {
101
+ constructor(params?: {
102
+ context?: any;
103
+ errorType?: string;
104
+ traceId?: string;
105
+ statusCode?: number;
106
+ });
107
+ }
108
+ declare class NoPathFoundError extends OrchestratorError {
109
+ constructor(params?: {
110
+ context?: any;
111
+ errorType?: string;
112
+ traceId?: string;
113
+ statusCode?: number;
114
+ });
115
+ }
116
+ declare class IntentNotFoundError extends OrchestratorError {
117
+ constructor(params?: {
118
+ context?: any;
119
+ errorType?: string;
120
+ traceId?: string;
121
+ statusCode?: number;
122
+ });
123
+ }
124
+ declare class SchemaValidationError extends OrchestratorError {
125
+ constructor(params?: {
126
+ message?: string;
127
+ context?: any;
128
+ errorType?: string;
129
+ traceId?: string;
130
+ statusCode?: number;
131
+ });
132
+ }
133
+ declare class RateLimitedError extends OrchestratorError {
134
+ constructor(params?: {
135
+ context?: any;
136
+ errorType?: string;
137
+ traceId?: string;
138
+ statusCode?: number;
139
+ });
140
+ }
141
+ declare class ServiceUnavailableError extends OrchestratorError {
142
+ constructor(params?: {
143
+ context?: any;
144
+ errorType?: string;
145
+ traceId?: string;
146
+ statusCode?: number;
147
+ });
148
+ }
149
+ declare class UnauthorizedError extends OrchestratorError {
150
+ constructor(params?: {
151
+ context?: any;
152
+ errorType?: string;
153
+ traceId?: string;
154
+ statusCode?: number;
155
+ });
156
+ }
157
+ declare class ForbiddenError extends OrchestratorError {
158
+ constructor(params?: {
159
+ context?: any;
160
+ errorType?: string;
161
+ traceId?: string;
162
+ statusCode?: number;
163
+ });
164
+ }
165
+ declare class ResourceNotFoundError extends OrchestratorError {
166
+ constructor(params?: {
167
+ context?: any;
168
+ errorType?: string;
169
+ traceId?: string;
170
+ statusCode?: number;
171
+ });
172
+ }
173
+ declare class ConflictError extends OrchestratorError {
174
+ constructor(params?: {
175
+ context?: any;
176
+ errorType?: string;
177
+ traceId?: string;
178
+ statusCode?: number;
179
+ });
180
+ }
181
+ declare class BadRequestError extends OrchestratorError {
182
+ constructor(params?: {
183
+ message?: string;
184
+ context?: any;
185
+ errorType?: string;
186
+ traceId?: string;
187
+ statusCode?: number;
188
+ });
189
+ }
190
+ declare class UnprocessableEntityError extends OrchestratorError {
191
+ constructor(params?: {
192
+ message?: string;
193
+ context?: any;
194
+ errorType?: string;
195
+ traceId?: string;
196
+ statusCode?: number;
197
+ });
198
+ }
199
+ declare class InternalServerError extends OrchestratorError {
200
+ constructor(params?: {
201
+ context?: any;
202
+ errorType?: string;
203
+ traceId?: string;
204
+ statusCode?: number;
205
+ });
206
+ }
207
+ declare class BodyParserError extends OrchestratorError {
208
+ constructor(params?: {
209
+ message?: string;
210
+ context?: any;
211
+ errorType?: string;
212
+ traceId?: string;
213
+ statusCode?: number;
214
+ });
215
+ }
216
+ declare class SimulationFailedError extends OrchestratorError {
217
+ constructor(params?: {
218
+ message?: string;
219
+ context?: any;
220
+ errorType?: string;
221
+ traceId?: string;
222
+ statusCode?: number;
223
+ simulations?: Simulation[];
224
+ });
225
+ }
226
+ declare class InsufficientLiquidityError extends OrchestratorError {
227
+ readonly availableIntents: Record<string, bigint>[];
228
+ readonly unfillable: Record<string, bigint>;
229
+ constructor(params: {
230
+ availableIntents: Record<string, bigint>[];
231
+ unfillable: Record<string, bigint>;
232
+ traceId?: string;
233
+ statusCode?: number;
234
+ });
235
+ }
236
+ declare function isOrchestratorError(error: Error): error is OrchestratorError;
237
+ declare function isRateLimited(error: unknown): error is RateLimitedError;
238
+ declare function isValidationError(error: unknown): boolean;
239
+ declare function isAuthError(error: unknown): boolean;
240
+ declare function isRetryable(error: unknown): boolean;
241
+ export { isOrchestratorError, isRetryable, isAuthError, isValidationError, isRateLimited, OrchestratorError, InsufficientLiquidityError, InsufficientBalanceError, UnsupportedChainIdError, UnsupportedChainError, UnsupportedTokenError, TokenNotSupportedError, AuthenticationRequiredError, InvalidApiKeyError, InvalidIntentSignatureError, OnlyOneTargetTokenAmountCanBeUnsetError, NoPathFoundError, IntentNotFoundError, SchemaValidationError, RateLimitedError, ServiceUnavailableError, UnauthorizedError, ForbiddenError, ResourceNotFoundError, ConflictError, BadRequestError, UnprocessableEntityError, InternalServerError, BodyParserError, SimulationFailedError, };
242
+ //# sourceMappingURL=error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../../orchestrator/error.ts"],"names":[],"mappings":"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"}