@ordanetwork/sdk 1.0.2 → 1.1.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.
Files changed (202) hide show
  1. package/README.md +204 -18
  2. package/dist/browser/api/JWT.d.ts +41 -0
  3. package/dist/browser/api/JWT.d.ts.map +1 -0
  4. package/dist/browser/api/JWT.js +59 -0
  5. package/dist/browser/api/JWT.js.map +1 -0
  6. package/dist/browser/api/{OffRampAPI.d.ts → OffRamp.d.ts} +2 -2
  7. package/dist/browser/api/OffRamp.d.ts.map +1 -0
  8. package/dist/{esm/api/OffRampAPI.js → browser/api/OffRamp.js} +11 -2
  9. package/dist/browser/api/OffRamp.js.map +1 -0
  10. package/dist/{esm/api/OnRampAPI.d.ts → browser/api/OnRamp.d.ts} +2 -2
  11. package/dist/browser/api/OnRamp.d.ts.map +1 -0
  12. package/dist/{esm/api/OnRampAPI.js → browser/api/OnRamp.js} +9 -2
  13. package/dist/browser/api/OnRamp.js.map +1 -0
  14. package/dist/browser/api/{QuoteAPI.d.ts → Quote.d.ts} +2 -2
  15. package/dist/browser/api/Quote.d.ts.map +1 -0
  16. package/dist/browser/api/Quote.js +24 -0
  17. package/dist/browser/api/Quote.js.map +1 -0
  18. package/dist/{esm/api/RecipientAPI.d.ts → browser/api/Recipient.d.ts} +2 -2
  19. package/dist/browser/api/Recipient.d.ts.map +1 -0
  20. package/dist/browser/api/{RecipientAPI.js → Recipient.js} +2 -2
  21. package/dist/browser/api/Recipient.js.map +1 -0
  22. package/dist/{esm/api/TransactionAPI.d.ts → browser/api/Transaction.d.ts} +2 -2
  23. package/dist/browser/api/Transaction.d.ts.map +1 -0
  24. package/dist/browser/api/{TransactionAPI.js → Transaction.js} +2 -2
  25. package/dist/browser/api/Transaction.js.map +1 -0
  26. package/dist/browser/auth/jwt.d.ts +16 -0
  27. package/dist/browser/auth/jwt.d.ts.map +1 -0
  28. package/dist/browser/auth/jwt.js +24 -0
  29. package/dist/browser/auth/jwt.js.map +1 -0
  30. package/dist/browser/http/client.d.ts +3 -2
  31. package/dist/browser/http/client.d.ts.map +1 -1
  32. package/dist/browser/http/client.js +12 -4
  33. package/dist/browser/http/client.js.map +1 -1
  34. package/dist/browser/index.d.ts +26 -16
  35. package/dist/browser/index.d.ts.map +1 -1
  36. package/dist/browser/index.js +51 -25
  37. package/dist/browser/index.js.map +1 -1
  38. package/dist/browser/types/index.d.ts +7 -1
  39. package/dist/browser/types/index.d.ts.map +1 -1
  40. package/dist/browser/types/index.js +1 -0
  41. package/dist/browser/types/index.js.map +1 -1
  42. package/dist/browser/types/jwt.d.ts +37 -0
  43. package/dist/browser/types/jwt.d.ts.map +1 -0
  44. package/dist/browser/types/jwt.js +9 -0
  45. package/dist/browser/types/jwt.js.map +1 -0
  46. package/dist/browser/types/onramp.d.ts +6 -1
  47. package/dist/browser/types/onramp.d.ts.map +1 -1
  48. package/dist/cjs/api/JWT.d.ts +41 -0
  49. package/dist/cjs/api/JWT.d.ts.map +1 -0
  50. package/dist/cjs/api/JWT.js +63 -0
  51. package/dist/cjs/api/JWT.js.map +1 -0
  52. package/dist/{esm/api/OffRampAPI.d.ts → cjs/api/OffRamp.d.ts} +2 -2
  53. package/dist/cjs/api/OffRamp.d.ts.map +1 -0
  54. package/dist/cjs/api/{OffRampAPI.js → OffRamp.js} +13 -4
  55. package/dist/cjs/api/OffRamp.js.map +1 -0
  56. package/dist/{browser/api/OnRampAPI.d.ts → cjs/api/OnRamp.d.ts} +2 -2
  57. package/dist/cjs/api/OnRamp.d.ts.map +1 -0
  58. package/dist/cjs/api/{OnRampAPI.js → OnRamp.js} +11 -4
  59. package/dist/cjs/api/OnRamp.js.map +1 -0
  60. package/dist/{types/api/QuoteAPI.d.ts → cjs/api/Quote.d.ts} +2 -2
  61. package/dist/cjs/api/Quote.d.ts.map +1 -0
  62. package/dist/cjs/api/Quote.js +28 -0
  63. package/dist/cjs/api/Quote.js.map +1 -0
  64. package/dist/{types/api/RecipientAPI.d.ts → cjs/api/Recipient.d.ts} +2 -2
  65. package/dist/cjs/api/Recipient.d.ts.map +1 -0
  66. package/dist/cjs/api/{RecipientAPI.js → Recipient.js} +4 -4
  67. package/dist/cjs/api/Recipient.js.map +1 -0
  68. package/dist/{types/api/TransactionAPI.d.ts → cjs/api/Transaction.d.ts} +2 -2
  69. package/dist/cjs/api/Transaction.d.ts.map +1 -0
  70. package/dist/cjs/api/{TransactionAPI.js → Transaction.js} +4 -4
  71. package/dist/cjs/api/Transaction.js.map +1 -0
  72. package/dist/cjs/auth/jwt.d.ts +16 -0
  73. package/dist/cjs/auth/jwt.d.ts.map +1 -0
  74. package/dist/cjs/auth/jwt.js +28 -0
  75. package/dist/cjs/auth/jwt.js.map +1 -0
  76. package/dist/cjs/http/client.d.ts +3 -2
  77. package/dist/cjs/http/client.d.ts.map +1 -1
  78. package/dist/cjs/http/client.js +12 -4
  79. package/dist/cjs/http/client.js.map +1 -1
  80. package/dist/cjs/index.d.ts +26 -16
  81. package/dist/cjs/index.d.ts.map +1 -1
  82. package/dist/cjs/index.js +59 -31
  83. package/dist/cjs/index.js.map +1 -1
  84. package/dist/cjs/types/index.d.ts +7 -1
  85. package/dist/cjs/types/index.d.ts.map +1 -1
  86. package/dist/cjs/types/index.js +15 -0
  87. package/dist/cjs/types/index.js.map +1 -1
  88. package/dist/cjs/types/jwt.d.ts +37 -0
  89. package/dist/cjs/types/jwt.d.ts.map +1 -0
  90. package/dist/cjs/types/jwt.js +10 -0
  91. package/dist/cjs/types/jwt.js.map +1 -0
  92. package/dist/cjs/types/onramp.d.ts +6 -1
  93. package/dist/cjs/types/onramp.d.ts.map +1 -1
  94. package/dist/esm/api/JWT.d.ts +41 -0
  95. package/dist/esm/api/JWT.d.ts.map +1 -0
  96. package/dist/esm/api/JWT.js +59 -0
  97. package/dist/esm/api/JWT.js.map +1 -0
  98. package/dist/{cjs/api/OffRampAPI.d.ts → esm/api/OffRamp.d.ts} +2 -2
  99. package/dist/esm/api/OffRamp.d.ts.map +1 -0
  100. package/dist/{browser/api/OffRampAPI.js → esm/api/OffRamp.js} +11 -2
  101. package/dist/esm/api/OffRamp.js.map +1 -0
  102. package/dist/{cjs/api/OnRampAPI.d.ts → esm/api/OnRamp.d.ts} +2 -2
  103. package/dist/esm/api/OnRamp.d.ts.map +1 -0
  104. package/dist/{browser/api/OnRampAPI.js → esm/api/OnRamp.js} +9 -2
  105. package/dist/esm/api/OnRamp.js.map +1 -0
  106. package/dist/esm/api/{QuoteAPI.d.ts → Quote.d.ts} +2 -2
  107. package/dist/esm/api/Quote.d.ts.map +1 -0
  108. package/dist/esm/api/Quote.js +24 -0
  109. package/dist/esm/api/Quote.js.map +1 -0
  110. package/dist/{cjs/api/RecipientAPI.d.ts → esm/api/Recipient.d.ts} +2 -2
  111. package/dist/esm/api/Recipient.d.ts.map +1 -0
  112. package/dist/esm/api/{RecipientAPI.js → Recipient.js} +2 -2
  113. package/dist/esm/api/Recipient.js.map +1 -0
  114. package/dist/{browser/api/TransactionAPI.d.ts → esm/api/Transaction.d.ts} +2 -2
  115. package/dist/esm/api/Transaction.d.ts.map +1 -0
  116. package/dist/esm/api/{TransactionAPI.js → Transaction.js} +2 -2
  117. package/dist/esm/api/Transaction.js.map +1 -0
  118. package/dist/esm/auth/jwt.d.ts +16 -0
  119. package/dist/esm/auth/jwt.d.ts.map +1 -0
  120. package/dist/esm/auth/jwt.js +24 -0
  121. package/dist/esm/auth/jwt.js.map +1 -0
  122. package/dist/esm/http/client.d.ts +3 -2
  123. package/dist/esm/http/client.d.ts.map +1 -1
  124. package/dist/esm/http/client.js +12 -4
  125. package/dist/esm/http/client.js.map +1 -1
  126. package/dist/esm/index.d.ts +26 -16
  127. package/dist/esm/index.d.ts.map +1 -1
  128. package/dist/esm/index.js +51 -25
  129. package/dist/esm/index.js.map +1 -1
  130. package/dist/esm/types/index.d.ts +7 -1
  131. package/dist/esm/types/index.d.ts.map +1 -1
  132. package/dist/esm/types/index.js +1 -0
  133. package/dist/esm/types/index.js.map +1 -1
  134. package/dist/esm/types/jwt.d.ts +37 -0
  135. package/dist/esm/types/jwt.d.ts.map +1 -0
  136. package/dist/esm/types/jwt.js +9 -0
  137. package/dist/esm/types/jwt.js.map +1 -0
  138. package/dist/esm/types/onramp.d.ts +6 -1
  139. package/dist/esm/types/onramp.d.ts.map +1 -1
  140. package/dist/types/api/JWT.d.ts +41 -0
  141. package/dist/types/api/JWT.d.ts.map +1 -0
  142. package/dist/types/api/{OffRampAPI.d.ts → OffRamp.d.ts} +2 -2
  143. package/dist/types/api/OffRamp.d.ts.map +1 -0
  144. package/dist/types/api/{OnRampAPI.d.ts → OnRamp.d.ts} +2 -2
  145. package/dist/types/api/OnRamp.d.ts.map +1 -0
  146. package/dist/{cjs/api/QuoteAPI.d.ts → types/api/Quote.d.ts} +2 -2
  147. package/dist/types/api/Quote.d.ts.map +1 -0
  148. package/dist/{browser/api/RecipientAPI.d.ts → types/api/Recipient.d.ts} +2 -2
  149. package/dist/types/api/Recipient.d.ts.map +1 -0
  150. package/dist/{cjs/api/TransactionAPI.d.ts → types/api/Transaction.d.ts} +2 -2
  151. package/dist/types/api/Transaction.d.ts.map +1 -0
  152. package/dist/types/auth/jwt.d.ts +16 -0
  153. package/dist/types/auth/jwt.d.ts.map +1 -0
  154. package/dist/types/http/client.d.ts +3 -2
  155. package/dist/types/http/client.d.ts.map +1 -1
  156. package/dist/types/index.d.ts +26 -16
  157. package/dist/types/index.d.ts.map +1 -1
  158. package/dist/types/types/index.d.ts +7 -1
  159. package/dist/types/types/index.d.ts.map +1 -1
  160. package/dist/types/types/jwt.d.ts +37 -0
  161. package/dist/types/types/jwt.d.ts.map +1 -0
  162. package/dist/types/types/onramp.d.ts +6 -1
  163. package/dist/types/types/onramp.d.ts.map +1 -1
  164. package/package.json +1 -1
  165. package/dist/browser/api/OffRampAPI.d.ts.map +0 -1
  166. package/dist/browser/api/OffRampAPI.js.map +0 -1
  167. package/dist/browser/api/OnRampAPI.d.ts.map +0 -1
  168. package/dist/browser/api/OnRampAPI.js.map +0 -1
  169. package/dist/browser/api/QuoteAPI.d.ts.map +0 -1
  170. package/dist/browser/api/QuoteAPI.js +0 -17
  171. package/dist/browser/api/QuoteAPI.js.map +0 -1
  172. package/dist/browser/api/RecipientAPI.d.ts.map +0 -1
  173. package/dist/browser/api/RecipientAPI.js.map +0 -1
  174. package/dist/browser/api/TransactionAPI.d.ts.map +0 -1
  175. package/dist/browser/api/TransactionAPI.js.map +0 -1
  176. package/dist/cjs/api/OffRampAPI.d.ts.map +0 -1
  177. package/dist/cjs/api/OffRampAPI.js.map +0 -1
  178. package/dist/cjs/api/OnRampAPI.d.ts.map +0 -1
  179. package/dist/cjs/api/OnRampAPI.js.map +0 -1
  180. package/dist/cjs/api/QuoteAPI.d.ts.map +0 -1
  181. package/dist/cjs/api/QuoteAPI.js +0 -21
  182. package/dist/cjs/api/QuoteAPI.js.map +0 -1
  183. package/dist/cjs/api/RecipientAPI.d.ts.map +0 -1
  184. package/dist/cjs/api/RecipientAPI.js.map +0 -1
  185. package/dist/cjs/api/TransactionAPI.d.ts.map +0 -1
  186. package/dist/cjs/api/TransactionAPI.js.map +0 -1
  187. package/dist/esm/api/OffRampAPI.d.ts.map +0 -1
  188. package/dist/esm/api/OffRampAPI.js.map +0 -1
  189. package/dist/esm/api/OnRampAPI.d.ts.map +0 -1
  190. package/dist/esm/api/OnRampAPI.js.map +0 -1
  191. package/dist/esm/api/QuoteAPI.d.ts.map +0 -1
  192. package/dist/esm/api/QuoteAPI.js +0 -17
  193. package/dist/esm/api/QuoteAPI.js.map +0 -1
  194. package/dist/esm/api/RecipientAPI.d.ts.map +0 -1
  195. package/dist/esm/api/RecipientAPI.js.map +0 -1
  196. package/dist/esm/api/TransactionAPI.d.ts.map +0 -1
  197. package/dist/esm/api/TransactionAPI.js.map +0 -1
  198. package/dist/types/api/OffRampAPI.d.ts.map +0 -1
  199. package/dist/types/api/OnRampAPI.d.ts.map +0 -1
  200. package/dist/types/api/QuoteAPI.d.ts.map +0 -1
  201. package/dist/types/api/RecipientAPI.d.ts.map +0 -1
  202. package/dist/types/api/TransactionAPI.d.ts.map +0 -1
package/README.md CHANGED
@@ -23,7 +23,7 @@ pnpm add @ordanetwork/sdk
23
23
 
24
24
  ## Features
25
25
 
26
- - **HMAC Authentication**: Secure API authentication
26
+ - **Dual Authentication**: HMAC (server-side) and JWT (client-side) authentication
27
27
  - **Multi-chain Support**: Cross-chain transfers, off-ramp, and on-ramp operations
28
28
  - **Smart Wallets**: Integrated Alchemy Account Kit support for UserOperations
29
29
  - **Module Formats**: ESM and CommonJS
@@ -32,6 +32,8 @@ pnpm add @ordanetwork/sdk
32
32
 
33
33
  ## Quick Start
34
34
 
35
+ ### Server-Side (HMAC Authentication)
36
+
35
37
  ```typescript
36
38
  import { OrdaSDK } from '@ordanetwork/sdk';
37
39
 
@@ -39,6 +41,16 @@ const orda = new OrdaSDK({
39
41
  clientId: 'your-client-id',
40
42
  clientSecret: 'your-client-secret'
41
43
  });
44
+ ```
45
+
46
+ ### Client-Side (JWT Authentication)
47
+
48
+ ```typescript
49
+ import { OrdaSDK } from '@ordanetwork/sdk';
50
+
51
+ const orda = new OrdaSDK({
52
+ token: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...'
53
+ });
42
54
 
43
55
  // Create a recipient with smart wallet (no toAddress)
44
56
  const recipientWithSmartWallet = await orda.recipients.create({
@@ -88,11 +100,11 @@ const { OrdaSDK } = require('@ordanetwork/sdk');
88
100
  import { OrdaSDK } from '@ordanetwork/sdk';
89
101
  ```
90
102
 
91
- ## Security Considerations
103
+ ## Authentication Methods
92
104
 
93
- **CRITICAL SECURITY WARNING**
105
+ ### HMAC Authentication (Server-Side)
94
106
 
95
- **Never expose your API credentials in frontend code!** Your `clientId` and `clientSecret` should always be kept secure on your backend server.
107
+ Use HMAC authentication for server-to-server communication. This method should only be used in secure backend environments.
96
108
 
97
109
  ```javascript
98
110
  const { OrdaSDK } = require('@ordanetwork/sdk');
@@ -101,15 +113,47 @@ const orda = new OrdaSDK({
101
113
  clientId: process.env.ORDA_CLIENT_ID,
102
114
  clientSecret: process.env.ORDA_CLIENT_SECRET
103
115
  });
116
+ ```
117
+
118
+ **CRITICAL**: Never expose `clientSecret` in frontend code.
119
+
120
+ ### JWT Authentication (Client-Side)
121
+
122
+ Use JWT authentication for client-side applications. Generate tokens on your backend and pass them to your frontend.
123
+
124
+ **Backend (Node.js):**
125
+ ```typescript
126
+ import { OrdaSDK } from '@ordanetwork/sdk';
127
+
128
+ const orda = new OrdaSDK({
129
+ clientId: process.env.ORDA_CLIENT_ID,
130
+ clientSecret: process.env.ORDA_CLIENT_SECRET
131
+ });
132
+
133
+ const { token, expiresAt } = await orda.jwt.generate({
134
+ clientId: process.env.ORDA_CLIENT_ID,
135
+ clientSecret: process.env.ORDA_CLIENT_SECRET,
136
+ expiresIn: 3600,
137
+ permissions: ['quotes:read', 'offramp:read', 'onramp:read', 'transactions:read']
138
+ });
139
+
140
+ res.json({ token, expiresAt });
141
+ ```
142
+
143
+ **Frontend (React/Vue/etc):**
144
+ ```typescript
145
+ import { OrdaSDK } from '@ordanetwork/sdk';
146
+
147
+ const response = await fetch('/api/auth/token');
148
+ const { token } = await response.json();
149
+
150
+ const orda = new OrdaSDK({ token });
104
151
 
105
152
  const quote = await orda.quote.request({
106
153
  fromChain: '1',
107
154
  fromToken: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',
108
- fromAddress: '0xYourAddress',
109
- intent: {
110
- method: 'usd',
111
- value: '100'
112
- },
155
+ fromAddress: userWalletAddress,
156
+ intent: { method: 'usd', value: '100' },
113
157
  recipientId: 'recipient-id'
114
158
  });
115
159
  ```
@@ -118,13 +162,51 @@ const quote = await orda.quote.request({
118
162
 
119
163
  ### Initialize SDK
120
164
 
165
+ **HMAC Mode (Server-Side):**
121
166
  ```typescript
122
167
  const orda = new OrdaSDK({
123
168
  clientId: 'your-client-id',
124
169
  clientSecret: 'your-client-secret',
170
+ requestTimeout: 30000,
171
+ debug: false
125
172
  });
126
173
  ```
127
174
 
175
+ **JWT Mode (Client-Side):**
176
+ ```typescript
177
+ const orda = new OrdaSDK({
178
+ token: 'your-jwt-token',
179
+ requestTimeout: 30000,
180
+ debug: false
181
+ });
182
+ ```
183
+
184
+ ### JWT API
185
+
186
+ Generate JWT tokens for client-side authentication.
187
+
188
+ ```typescript
189
+ const { token, expiresAt } = await orda.jwt.generate({
190
+ clientId: string,
191
+ clientSecret: string,
192
+ expiresIn?: number,
193
+ permissions?: JWTPermission[]
194
+ });
195
+ ```
196
+
197
+ **Available Permissions:**
198
+ - `quotes:read`
199
+ - `offramp:read`
200
+ - `onramp:read`
201
+ - `transactions:read`
202
+ - `recipients:read`
203
+ - `recipients:write`
204
+
205
+ **Default Permissions:**
206
+ `['quotes:read', 'offramp:read', 'onramp:read', 'transactions:read', 'recipients:read']`
207
+
208
+ **Note:** HMAC authentication bypasses permission checks and has full access to all operations.
209
+
128
210
  ### Recipients API
129
211
 
130
212
  ```typescript
@@ -153,7 +235,7 @@ await orda.recipients.deactivate({
153
235
  ### Quote API
154
236
 
155
237
  ```typescript
156
- // Request quote
238
+ // Request quote with recipient
157
239
  await orda.quote.request({
158
240
  fromChain: string,
159
241
  fromToken: string,
@@ -162,7 +244,24 @@ await orda.quote.request({
162
244
  method: 'usd' | 'fromAmount' | 'toAmount',
163
245
  value: string
164
246
  },
165
- recipientId?: string,
247
+ recipientId: string,
248
+ timeout?: number
249
+ });
250
+
251
+ // OR request quote with inline settlement (no recipient needed)
252
+ await orda.quote.request({
253
+ fromChain: string,
254
+ fromToken: string,
255
+ fromAddress: string,
256
+ intent: {
257
+ method: 'usd' | 'fromAmount' | 'toAmount',
258
+ value: string
259
+ },
260
+ settlementDetails: {
261
+ toChain: string,
262
+ toToken: string,
263
+ toAddress: string
264
+ },
166
265
  timeout?: number
167
266
  });
168
267
  ```
@@ -191,15 +290,36 @@ await orda.transactions.waitForCompletion(transactionId, {
191
290
  ### Off-Ramp API (Crypto to Fiat)
192
291
 
193
292
  ```typescript
194
- // Request off-ramp quote
293
+ // Request off-ramp quote with recipient
195
294
  await orda.offRamp.requestQuote({
196
295
  fromChain: string,
197
296
  fromToken: string,
198
297
  fromAddress: string,
199
298
  intent: Intent,
200
- recipientId?: string,
201
- kycInformation?: KYCInformation,
202
- fiatSettlementDetails?: FiatSettlementDetails
299
+ recipientId: string
300
+ });
301
+
302
+ // OR request off-ramp quote with inline KYC/settlement (no recipient needed)
303
+ await orda.offRamp.requestQuote({
304
+ fromChain: string,
305
+ fromToken: string,
306
+ fromAddress: string,
307
+ intent: Intent,
308
+ kycInformation: {
309
+ taxId: string,
310
+ taxIdCountry: string,
311
+ email: string,
312
+ name: string
313
+ },
314
+ fiatSettlementDetails: {
315
+ toCurrency: string,
316
+ pixKey?: string,
317
+ bankAccount?: string,
318
+ bankBranch?: string,
319
+ bankAccountType?: string,
320
+ iban?: string,
321
+ cbuCvu?: string
322
+ }
203
323
  });
204
324
 
205
325
  // Get off-ramp status
@@ -212,13 +332,24 @@ await orda.offRamp.waitForCompletion(transactionId, options);
212
332
  ### On-Ramp API (Fiat to Crypto)
213
333
 
214
334
  ```typescript
215
- // Request on-ramp quote
335
+ // Request on-ramp quote with recipient
216
336
  await orda.onRamp.requestQuote({
217
337
  fromCurrency: string,
218
338
  intent: Intent,
219
339
  recipientId: string
220
340
  });
221
341
 
342
+ // OR request on-ramp quote with inline settlement (no recipient needed)
343
+ await orda.onRamp.requestQuote({
344
+ fromCurrency: string,
345
+ intent: Intent,
346
+ settlementDetails: {
347
+ toChain: string,
348
+ toToken: string,
349
+ toAddress: string
350
+ }
351
+ });
352
+
222
353
  // Get on-ramp status
223
354
  await orda.onRamp.getStatus(transactionId);
224
355
 
@@ -236,7 +367,10 @@ import {
236
367
  OrdaSDK,
237
368
  QuoteRequestParams,
238
369
  TransactionStatus,
239
- OrdaError
370
+ OrdaError,
371
+ JWTPermission,
372
+ GenerateJWTRequest,
373
+ GenerateJWTResponse
240
374
  } from '@ordanetwork/sdk';
241
375
  ```
242
376
 
@@ -305,7 +439,7 @@ async function main() {
305
439
  });
306
440
  console.log('Smart wallet:', recipient.smartWallet?.address);
307
441
 
308
- // Request cross-chain quote
442
+ // Request cross-chain quote with recipient
309
443
  const quote = await orda.quote.request({
310
444
  fromChain: '1', // Ethereum
311
445
  fromToken: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', // USDC
@@ -317,6 +451,22 @@ async function main() {
317
451
  recipientId: recipient.recipientId,
318
452
  });
319
453
 
454
+ // OR request cross-chain quote with inline settlement (no recipient needed)
455
+ const inlineQuote = await orda.quote.request({
456
+ fromChain: '1', // Ethereum
457
+ fromToken: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', // USDC
458
+ fromAddress: '0xYourAddress',
459
+ intent: {
460
+ method: 'fromAmount',
461
+ value: '100000000', // 100 USDC (6 decimals)
462
+ },
463
+ settlementDetails: {
464
+ toChain: '137', // Polygon
465
+ toToken: '0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174', // USDC on Polygon
466
+ toAddress: '0xRecipientAddress',
467
+ },
468
+ });
469
+
320
470
  // Monitor transaction
321
471
  await orda.transactions.waitForCompletion(quote.transactionId, {
322
472
  intervalMs: 10000,
@@ -350,6 +500,27 @@ async function main() {
350
500
  recipientId: offRampRecipient.recipientId,
351
501
  });
352
502
 
503
+ // OR off-ramp with inline KYC/settlement (no recipient needed)
504
+ const inlineOffRampQuote = await orda.offRamp.requestQuote({
505
+ fromChain: '8453',
506
+ fromToken: '0xE9185Ee218cae427aF7B9764A011bb89FeA761B4', // BRZ
507
+ fromAddress: '0xYourAddress',
508
+ intent: {
509
+ method: 'fromAmount',
510
+ value: '10000000000000000000', // 10 BRZ
511
+ },
512
+ kycInformation: {
513
+ taxId: '12345678901',
514
+ taxIdCountry: 'BRA',
515
+ email: 'user@example.com',
516
+ name: 'User Name',
517
+ },
518
+ fiatSettlementDetails: {
519
+ toCurrency: 'BRL',
520
+ pixKey: 'user@example.com',
521
+ },
522
+ });
523
+
353
524
  // On-ramp example (Fiat to Crypto)
354
525
  const onRampQuote = await orda.onRamp.requestQuote({
355
526
  fromCurrency: 'BRL',
@@ -360,6 +531,21 @@ async function main() {
360
531
  recipientId: recipient.recipientId,
361
532
  });
362
533
  console.log('PIX payment key:', onRampQuote.depositInstructions.pixKey);
534
+
535
+ // OR on-ramp with inline settlement (no recipient needed)
536
+ const inlineOnRampQuote = await orda.onRamp.requestQuote({
537
+ fromCurrency: 'BRL',
538
+ intent: {
539
+ method: 'fromAmount',
540
+ value: '100.00',
541
+ },
542
+ settlementDetails: {
543
+ toChain: '8453', // Base
544
+ toToken: '0x833589fcd6edb6e08f4c7c32d4f71b54bda02913', // USDC
545
+ toAddress: '0xRecipientAddress',
546
+ },
547
+ });
548
+ console.log('PIX payment key:', inlineOnRampQuote.depositInstructions.pixKey);
363
549
  }
364
550
 
365
551
  main().catch(console.error);
@@ -0,0 +1,41 @@
1
+ import { UniversalHttpClient } from '../http/client';
2
+ import { GenerateJWTRequest, GenerateJWTResponse } from '../types/jwt';
3
+ /**
4
+ * API wrapper for JWT authentication operations
5
+ *
6
+ * Handles generation of JWT tokens for client-side authentication.
7
+ * Note: "token" in this context refers to JWT (authentication), not ERC-20 tokens (assets).
8
+ */
9
+ export declare class JWT {
10
+ private httpClient;
11
+ constructor(httpClient: UniversalHttpClient);
12
+ /**
13
+ * Generates a JWT for authentication using project credentials
14
+ *
15
+ * This endpoint does NOT use HMAC authentication - it directly validates
16
+ * the clientId and clientSecret to generate a JWT.
17
+ *
18
+ * @param params JWT generation parameters
19
+ * @returns JWT string and expiration timestamp
20
+ *
21
+ * @example
22
+ * ```typescript
23
+ * // Create an unauthenticated client
24
+ * const client = new UniversalHttpClient('https://api.orda.network/v1');
25
+ *
26
+ * // Generate a JWT
27
+ * const jwtApi = new JWT(client);
28
+ * const { token, expiresAt } = await jwtApi.generate({
29
+ * clientId: 'proj_xxx',
30
+ * clientSecret: 'secret_yyy',
31
+ * expiresIn: 3600,
32
+ * permissions: ['quotes:read', 'transactions:read']
33
+ * });
34
+ *
35
+ * // Use the JWT with SDK
36
+ * const sdk = new OrdaSDK({ token });
37
+ * ```
38
+ */
39
+ generate(params: GenerateJWTRequest): Promise<GenerateJWTResponse>;
40
+ }
41
+ //# sourceMappingURL=JWT.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JWT.d.ts","sourceRoot":"","sources":["../../../src/api/JWT.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEvE;;;;;GAKG;AACH,qBAAa,GAAG;IACF,OAAO,CAAC,UAAU;gBAAV,UAAU,EAAE,mBAAmB;IAEnD;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACG,QAAQ,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC;CAuBzE"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * API wrapper for JWT authentication operations
3
+ *
4
+ * Handles generation of JWT tokens for client-side authentication.
5
+ * Note: "token" in this context refers to JWT (authentication), not ERC-20 tokens (assets).
6
+ */
7
+ export class JWT {
8
+ constructor(httpClient) {
9
+ this.httpClient = httpClient;
10
+ }
11
+ /**
12
+ * Generates a JWT for authentication using project credentials
13
+ *
14
+ * This endpoint does NOT use HMAC authentication - it directly validates
15
+ * the clientId and clientSecret to generate a JWT.
16
+ *
17
+ * @param params JWT generation parameters
18
+ * @returns JWT string and expiration timestamp
19
+ *
20
+ * @example
21
+ * ```typescript
22
+ * // Create an unauthenticated client
23
+ * const client = new UniversalHttpClient('https://api.orda.network/v1');
24
+ *
25
+ * // Generate a JWT
26
+ * const jwtApi = new JWT(client);
27
+ * const { token, expiresAt } = await jwtApi.generate({
28
+ * clientId: 'proj_xxx',
29
+ * clientSecret: 'secret_yyy',
30
+ * expiresIn: 3600,
31
+ * permissions: ['quotes:read', 'transactions:read']
32
+ * });
33
+ *
34
+ * // Use the JWT with SDK
35
+ * const sdk = new OrdaSDK({ token });
36
+ * ```
37
+ */
38
+ async generate(params) {
39
+ const { clientId, clientSecret, expiresIn, permissions } = params;
40
+ const body = {};
41
+ if (expiresIn) {
42
+ body.expiresIn = expiresIn;
43
+ }
44
+ if (permissions) {
45
+ body.permissions = permissions;
46
+ }
47
+ const response = await this.httpClient.request({
48
+ path: '/tokens',
49
+ method: 'POST',
50
+ headers: {
51
+ 'x-client-id': clientId,
52
+ 'x-client-secret': clientSecret
53
+ },
54
+ body: Object.keys(body).length > 0 ? body : undefined
55
+ });
56
+ return response;
57
+ }
58
+ }
59
+ //# sourceMappingURL=JWT.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JWT.js","sourceRoot":"","sources":["../../../src/api/JWT.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,MAAM,OAAO,GAAG;IACd,YAAoB,UAA+B;QAA/B,eAAU,GAAV,UAAU,CAAqB;IAAG,CAAC;IAEvD;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,KAAK,CAAC,QAAQ,CAAC,MAA0B;QACvC,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;QAElE,MAAM,IAAI,GAAwB,EAAE,CAAC;QACrC,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC7B,CAAC;QACD,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QACjC,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAsB;YAClE,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,aAAa,EAAE,QAAQ;gBACvB,iBAAiB,EAAE,YAAY;aAChC;YACD,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;SACtD,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF"}
@@ -11,7 +11,7 @@ export interface OffRampPollingOptions {
11
11
  /**
12
12
  * API wrapper for off-ramp (crypto to fiat) operations
13
13
  */
14
- export declare class OffRampAPI {
14
+ export declare class OffRamp {
15
15
  private httpClient;
16
16
  constructor(httpClient: UniversalHttpClient);
17
17
  /**
@@ -42,4 +42,4 @@ export declare class OffRampAPI {
42
42
  */
43
43
  private sleep;
44
44
  }
45
- //# sourceMappingURL=OffRampAPI.d.ts.map
45
+ //# sourceMappingURL=OffRamp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OffRamp.d.ts","sourceRoot":"","sources":["../../../src/api/OffRamp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EAClB,MAAM,kBAAkB,CAAC;AAE1B;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAC;CACtD;AAED;;GAEG;AACH,qBAAa,OAAO;IACN,OAAO,CAAC,UAAU;gBAAV,UAAU,EAAE,mBAAmB;IAEnD;;;;OAIG;IACG,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAiB7E;;;;OAIG;IACG,SAAS,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAItE;;;;;OAKG;IACG,iBAAiB,CACrB,aAAa,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,qBAAqB,CAAC;IAqCjC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAIxB;;OAEG;IACH,OAAO,CAAC,KAAK;CAGd"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * API wrapper for off-ramp (crypto to fiat) operations
3
3
  */
4
- export class OffRampAPI {
4
+ export class OffRamp {
5
5
  constructor(httpClient) {
6
6
  this.httpClient = httpClient;
7
7
  }
@@ -11,6 +11,15 @@ export class OffRampAPI {
11
11
  * @returns Off-ramp quote response
12
12
  */
13
13
  async requestQuote(params) {
14
+ // mutual exclusivity: either recipientId OR settlementDetails, not both
15
+ const hasRecipientId = !!params.recipientId;
16
+ const hasInlineData = !!(params.kycInformation && params.fiatSettlementDetails);
17
+ if (hasRecipientId && hasInlineData) {
18
+ throw new Error('Cannot provide both recipientId and inline KYC/settlement details');
19
+ }
20
+ if (!hasRecipientId && !hasInlineData) {
21
+ throw new Error('Must provide either recipientId OR both kycInformation and fiatSettlementDetails');
22
+ }
14
23
  return this.httpClient.post('/offramp/quote', params);
15
24
  }
16
25
  /**
@@ -70,4 +79,4 @@ export class OffRampAPI {
70
79
  return new Promise((resolve) => setTimeout(resolve, ms));
71
80
  }
72
81
  }
73
- //# sourceMappingURL=OffRampAPI.js.map
82
+ //# sourceMappingURL=OffRamp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OffRamp.js","sourceRoot":"","sources":["../../../src/api/OffRamp.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@ export interface OnRampPollingOptions {
8
8
  /**
9
9
  * API wrapper for on-ramp (fiat to crypto) operations
10
10
  */
11
- export declare class OnRampAPI {
11
+ export declare class OnRamp {
12
12
  private httpClient;
13
13
  constructor(httpClient: UniversalHttpClient);
14
14
  /**
@@ -39,4 +39,4 @@ export declare class OnRampAPI {
39
39
  */
40
40
  private sleep;
41
41
  }
42
- //# sourceMappingURL=OnRampAPI.d.ts.map
42
+ //# sourceMappingURL=OnRamp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OnRamp.d.ts","sourceRoot":"","sources":["../../../src/api/OnRamp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAG/F,MAAM,WAAW,oBAAoB;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CAC3C;AAED;;GAEG;AACH,qBAAa,MAAM;IACL,OAAO,CAAC,UAAU;gBAAV,UAAU,EAAE,mBAAmB;IAEnD;;;;OAIG;IACG,YAAY,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAY3E;;;;OAIG;IACG,SAAS,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAIrE;;;;;OAKG;IACG,iBAAiB,CACrB,aAAa,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,oBAAoB,CAAC;IAmChC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAIxB;;OAEG;IACH,OAAO,CAAC,KAAK;CAGd"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * API wrapper for on-ramp (fiat to crypto) operations
3
3
  */
4
- export class OnRampAPI {
4
+ export class OnRamp {
5
5
  constructor(httpClient) {
6
6
  this.httpClient = httpClient;
7
7
  }
@@ -11,6 +11,13 @@ export class OnRampAPI {
11
11
  * @returns On-ramp quote response with deposit instructions
12
12
  */
13
13
  async requestQuote(params) {
14
+ // mutual exclusivity: either recipientId OR settlementDetails, not both
15
+ if (params.recipientId && params.settlementDetails) {
16
+ throw new Error('Cannot provide both recipientId and settlementDetails');
17
+ }
18
+ if (!params.recipientId && !params.settlementDetails) {
19
+ throw new Error('Must provide either recipientId or settlementDetails');
20
+ }
14
21
  return this.httpClient.post('/onramp/quote', params);
15
22
  }
16
23
  /**
@@ -70,4 +77,4 @@ export class OnRampAPI {
70
77
  return new Promise((resolve) => setTimeout(resolve, ms));
71
78
  }
72
79
  }
73
- //# sourceMappingURL=OnRampAPI.js.map
80
+ //# sourceMappingURL=OnRamp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OnRamp.js","sourceRoot":"","sources":["../../../src/api/OnRamp.ts"],"names":[],"mappings":"AAUA;;GAEG;AACH,MAAM,OAAO,MAAM;IACjB,YAAoB,UAA+B;QAA/B,eAAU,GAAV,UAAU,CAAqB;IAAG,CAAC;IAEvD;;;;OAIG;IACH,KAAK,CAAC,YAAY,CAAC,MAAyB;QAC1C,wEAAwE;QACxE,IAAI,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;YACnD,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;QAC3E,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;YACrD,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAC1E,CAAC;QAED,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAsB,eAAe,EAAE,MAAM,CAAC,CAAC;IAC5E,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,SAAS,CAAC,aAAqB;QACnC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAuB,gBAAgB,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC;IACxF,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,iBAAiB,CACrB,aAAqB,EACrB,OAA8B;QAE9B,MAAM,UAAU,GAAG,OAAO,EAAE,UAAU,IAAI,KAAK,CAAC,CAAC,UAAU;QAC3D,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,OAAO,CAAC,CAAC,kBAAkB;QACnE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,IAAI,UAAU,GAAkB,IAAI,CAAC;QAErC,OAAO,IAAI,EAAE,CAAC;YACZ,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,SAAS,EAAE,CAAC;gBACvC,MAAM,IAAI,KAAK,CAAC,iCAAiC,SAAS,oBAAoB,UAAU,EAAE,CAAC,CAAC;YAC9F,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;gBACrD,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC;gBAEtC,IAAI,aAAa,KAAK,UAAU,IAAI,OAAO,EAAE,cAAc,EAAE,CAAC;oBAC5D,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;gBACxC,CAAC;gBACD,UAAU,GAAG,aAAa,CAAC;gBAE3B,IAAI,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,EAAE,CAAC;oBACzC,OAAO,QAAQ,CAAC;gBAClB,CAAC;gBAED,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,wBAAwB;YACxD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;oBAChE,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;oBAC7B,SAAS,CAAC,4BAA4B;gBACxC,CAAC;gBACD,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,MAAc;QACrC,OAAO,CAAC,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC3E,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,EAAU;QACtB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IAC3D,CAAC;CACF"}
@@ -3,7 +3,7 @@ import { QuoteRequestParams, QuoteResponse } from '../types';
3
3
  /**
4
4
  * API wrapper for quote operations
5
5
  */
6
- export declare class QuoteAPI {
6
+ export declare class Quote {
7
7
  private httpClient;
8
8
  constructor(httpClient: UniversalHttpClient);
9
9
  /**
@@ -13,4 +13,4 @@ export declare class QuoteAPI {
13
13
  */
14
14
  request(params: QuoteRequestParams): Promise<QuoteResponse>;
15
15
  }
16
- //# sourceMappingURL=QuoteAPI.d.ts.map
16
+ //# sourceMappingURL=Quote.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Quote.d.ts","sourceRoot":"","sources":["../../../src/api/Quote.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE7D;;GAEG;AACH,qBAAa,KAAK;IACJ,OAAO,CAAC,UAAU;gBAAV,UAAU,EAAE,mBAAmB;IAEnD;;;;OAIG;IACG,OAAO,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC;CAWlE"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * API wrapper for quote operations
3
+ */
4
+ export class Quote {
5
+ constructor(httpClient) {
6
+ this.httpClient = httpClient;
7
+ }
8
+ /**
9
+ * Requests a quote for a cross-chain transfer
10
+ * @param params Quote request parameters
11
+ * @returns Quote response with transaction ID and transfer details
12
+ */
13
+ async request(params) {
14
+ // mutual exclusivity: either recipientId OR settlementDetails, not both
15
+ if (params.recipientId && params.settlementDetails) {
16
+ throw new Error('Cannot provide both recipientId and settlementDetails');
17
+ }
18
+ if (!params.recipientId && !params.settlementDetails) {
19
+ throw new Error('Must provide either recipientId or settlementDetails');
20
+ }
21
+ return this.httpClient.post('/quote', params);
22
+ }
23
+ }
24
+ //# sourceMappingURL=Quote.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Quote.js","sourceRoot":"","sources":["../../../src/api/Quote.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,OAAO,KAAK;IAChB,YAAoB,UAA+B;QAA/B,eAAU,GAAV,UAAU,CAAqB;IAAG,CAAC;IAEvD;;;;OAIG;IACH,KAAK,CAAC,OAAO,CAAC,MAA0B;QACtC,wEAAwE;QACxE,IAAI,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;YACnD,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;QAC3E,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;YACrD,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAC1E,CAAC;QAED,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAgB,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC/D,CAAC;CACF"}
@@ -1,6 +1,6 @@
1
1
  import { UniversalHttpClient } from '../http/client';
2
2
  import { CreateRecipientParams, UpdateRecipientSettlementParams, DeactivateRecipientParams, CreateRecipientResponse, UpdateRecipientResponse, DeactivateRecipientResponse } from '../types';
3
- export declare class RecipientAPI {
3
+ export declare class Recipient {
4
4
  private httpClient;
5
5
  constructor(httpClient: UniversalHttpClient);
6
6
  /**
@@ -22,4 +22,4 @@ export declare class RecipientAPI {
22
22
  */
23
23
  deactivate(params: DeactivateRecipientParams): Promise<DeactivateRecipientResponse>;
24
24
  }
25
- //# sourceMappingURL=RecipientAPI.d.ts.map
25
+ //# sourceMappingURL=Recipient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Recipient.d.ts","sourceRoot":"","sources":["../../../src/api/Recipient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EACL,qBAAqB,EACrB,+BAA+B,EAC/B,yBAAyB,EACzB,uBAAuB,EACvB,uBAAuB,EACvB,2BAA2B,EAC5B,MAAM,UAAU,CAAC;AAElB,qBAAa,SAAS;IACR,OAAO,CAAC,UAAU;gBAAV,UAAU,EAAE,mBAAmB;IAEnD;;;;OAIG;IACG,MAAM,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAI7E;;;;OAIG;IACG,gBAAgB,CACpB,MAAM,EAAE,+BAA+B,GACtC,OAAO,CAAC,uBAAuB,CAAC;IAInC;;;;OAIG;IACG,UAAU,CAAC,MAAM,EAAE,yBAAyB,GAAG,OAAO,CAAC,2BAA2B,CAAC;CAG1F"}
@@ -1,4 +1,4 @@
1
- export class RecipientAPI {
1
+ export class Recipient {
2
2
  constructor(httpClient) {
3
3
  this.httpClient = httpClient;
4
4
  }
@@ -27,4 +27,4 @@ export class RecipientAPI {
27
27
  return this.httpClient.put('/deactivate-recipient', params);
28
28
  }
29
29
  }
30
- //# sourceMappingURL=RecipientAPI.js.map
30
+ //# sourceMappingURL=Recipient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Recipient.js","sourceRoot":"","sources":["../../../src/api/Recipient.ts"],"names":[],"mappings":"AAUA,MAAM,OAAO,SAAS;IACpB,YAAoB,UAA+B;QAA/B,eAAU,GAAV,UAAU,CAAqB;IAAG,CAAC;IAEvD;;;;OAIG;IACH,KAAK,CAAC,MAAM,CAAC,MAA6B;QACxC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAA0B,mBAAmB,EAAE,MAAM,CAAC,CAAC;IACpF,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,gBAAgB,CACpB,MAAuC;QAEvC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAA0B,mBAAmB,EAAE,MAAM,CAAC,CAAC;IACnF,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,UAAU,CAAC,MAAiC;QAChD,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAA8B,uBAAuB,EAAE,MAAM,CAAC,CAAC;IAC3F,CAAC;CACF"}
@@ -5,7 +5,7 @@ export interface PollingOptions {
5
5
  timeoutMs?: number;
6
6
  onStatusUpdate?: (status: TransactionStatus) => void;
7
7
  }
8
- export declare class TransactionAPI {
8
+ export declare class Transaction {
9
9
  private httpClient;
10
10
  constructor(httpClient: UniversalHttpClient);
11
11
  /**
@@ -32,4 +32,4 @@ export declare class TransactionAPI {
32
32
  private isTerminalStatus;
33
33
  private sleep;
34
34
  }
35
- //# sourceMappingURL=TransactionAPI.d.ts.map
35
+ //# sourceMappingURL=Transaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Transaction.d.ts","sourceRoot":"","sources":["../../../src/api/Transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EACzB,mBAAmB,EACnB,iBAAiB,EAClB,MAAM,UAAU,CAAC;AAGlB,MAAM,WAAW,cAAc;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAC;CACtD;AAED,qBAAa,WAAW;IACV,OAAO,CAAC,UAAU;gBAAV,UAAU,EAAE,mBAAmB;IAEnD;;;;OAIG;IACG,SAAS,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAIpF;;;OAGG;IACG,yBAAyB,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAIjE;;;;;OAKG;IACG,iBAAiB,CACrB,aAAa,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,yBAAyB,CAAC;IAqCrC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,KAAK;CAGd"}