@ordanetwork/sdk 1.1.0 → 1.2.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 +62 -0
- package/dist/browser/api/JWT.d.ts +1 -1
- package/dist/browser/api/JWT.js +1 -1
- package/dist/browser/api/Quote.d.ts +3 -2
- package/dist/browser/api/Quote.d.ts.map +1 -1
- package/dist/browser/api/Quote.js +1 -0
- package/dist/browser/api/Quote.js.map +1 -1
- package/dist/browser/api/Recipient.d.ts +7 -1
- package/dist/browser/api/Recipient.d.ts.map +1 -1
- package/dist/browser/api/Recipient.js +41 -0
- package/dist/browser/api/Recipient.js.map +1 -1
- package/dist/browser/api/Transaction.d.ts.map +1 -1
- package/dist/browser/api/Transaction.js +3 -0
- package/dist/browser/api/Transaction.js.map +1 -1
- package/dist/browser/auth/jwt.d.ts +8 -1
- package/dist/browser/auth/jwt.d.ts.map +1 -1
- package/dist/browser/auth/jwt.js +14 -2
- package/dist/browser/auth/jwt.js.map +1 -1
- package/dist/browser/index.d.ts +3 -1
- package/dist/browser/index.d.ts.map +1 -1
- package/dist/browser/index.js +21 -5
- package/dist/browser/index.js.map +1 -1
- package/dist/browser/types/guards.d.ts +28 -0
- package/dist/browser/types/guards.d.ts.map +1 -0
- package/dist/browser/types/guards.js +38 -0
- package/dist/browser/types/guards.js.map +1 -0
- package/dist/browser/types/index.d.ts +146 -10
- package/dist/browser/types/index.d.ts.map +1 -1
- package/dist/browser/types/index.js +2 -0
- package/dist/browser/types/index.js.map +1 -1
- package/dist/browser/types/offramp.d.ts +4 -3
- package/dist/browser/types/offramp.d.ts.map +1 -1
- package/dist/browser/types/onramp.d.ts +3 -3
- package/dist/browser/types/onramp.d.ts.map +1 -1
- package/dist/browser/types/transaction.d.ts +43 -0
- package/dist/browser/types/transaction.d.ts.map +1 -0
- package/dist/browser/types/transaction.js +6 -0
- package/dist/browser/types/transaction.js.map +1 -0
- package/dist/cjs/api/JWT.d.ts +1 -1
- package/dist/cjs/api/JWT.js +1 -1
- package/dist/cjs/api/Quote.d.ts +3 -2
- package/dist/cjs/api/Quote.d.ts.map +1 -1
- package/dist/cjs/api/Quote.js +1 -0
- package/dist/cjs/api/Quote.js.map +1 -1
- package/dist/cjs/api/Recipient.d.ts +7 -1
- package/dist/cjs/api/Recipient.d.ts.map +1 -1
- package/dist/cjs/api/Recipient.js +41 -0
- package/dist/cjs/api/Recipient.js.map +1 -1
- package/dist/cjs/api/Transaction.d.ts.map +1 -1
- package/dist/cjs/api/Transaction.js +3 -0
- package/dist/cjs/api/Transaction.js.map +1 -1
- package/dist/cjs/auth/jwt.d.ts +8 -1
- package/dist/cjs/auth/jwt.d.ts.map +1 -1
- package/dist/cjs/auth/jwt.js +14 -2
- package/dist/cjs/auth/jwt.js.map +1 -1
- package/dist/cjs/index.d.ts +3 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +21 -5
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/guards.d.ts +28 -0
- package/dist/cjs/types/guards.d.ts.map +1 -0
- package/dist/cjs/types/guards.js +44 -0
- package/dist/cjs/types/guards.js.map +1 -0
- package/dist/cjs/types/index.d.ts +146 -10
- package/dist/cjs/types/index.d.ts.map +1 -1
- package/dist/cjs/types/index.js +2 -0
- package/dist/cjs/types/index.js.map +1 -1
- package/dist/cjs/types/offramp.d.ts +4 -3
- package/dist/cjs/types/offramp.d.ts.map +1 -1
- package/dist/cjs/types/onramp.d.ts +3 -3
- package/dist/cjs/types/onramp.d.ts.map +1 -1
- package/dist/cjs/types/transaction.d.ts +43 -0
- package/dist/cjs/types/transaction.d.ts.map +1 -0
- package/dist/cjs/types/transaction.js +7 -0
- package/dist/cjs/types/transaction.js.map +1 -0
- package/dist/esm/api/JWT.d.ts +1 -1
- package/dist/esm/api/JWT.js +1 -1
- package/dist/esm/api/Quote.d.ts +3 -2
- package/dist/esm/api/Quote.d.ts.map +1 -1
- package/dist/esm/api/Quote.js +1 -0
- package/dist/esm/api/Quote.js.map +1 -1
- package/dist/esm/api/Recipient.d.ts +7 -1
- package/dist/esm/api/Recipient.d.ts.map +1 -1
- package/dist/esm/api/Recipient.js +41 -0
- package/dist/esm/api/Recipient.js.map +1 -1
- package/dist/esm/api/Transaction.d.ts.map +1 -1
- package/dist/esm/api/Transaction.js +3 -0
- package/dist/esm/api/Transaction.js.map +1 -1
- package/dist/esm/auth/jwt.d.ts +8 -1
- package/dist/esm/auth/jwt.d.ts.map +1 -1
- package/dist/esm/auth/jwt.js +14 -2
- package/dist/esm/auth/jwt.js.map +1 -1
- package/dist/esm/index.d.ts +3 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +21 -5
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types/guards.d.ts +28 -0
- package/dist/esm/types/guards.d.ts.map +1 -0
- package/dist/esm/types/guards.js +38 -0
- package/dist/esm/types/guards.js.map +1 -0
- package/dist/esm/types/index.d.ts +146 -10
- package/dist/esm/types/index.d.ts.map +1 -1
- package/dist/esm/types/index.js +2 -0
- package/dist/esm/types/index.js.map +1 -1
- package/dist/esm/types/offramp.d.ts +4 -3
- package/dist/esm/types/offramp.d.ts.map +1 -1
- package/dist/esm/types/onramp.d.ts +3 -3
- package/dist/esm/types/onramp.d.ts.map +1 -1
- package/dist/esm/types/transaction.d.ts +43 -0
- package/dist/esm/types/transaction.d.ts.map +1 -0
- package/dist/esm/types/transaction.js +6 -0
- package/dist/esm/types/transaction.js.map +1 -0
- package/dist/types/api/JWT.d.ts +1 -1
- package/dist/types/api/Quote.d.ts +3 -2
- package/dist/types/api/Quote.d.ts.map +1 -1
- package/dist/types/api/Recipient.d.ts +7 -1
- package/dist/types/api/Recipient.d.ts.map +1 -1
- package/dist/types/api/Transaction.d.ts.map +1 -1
- package/dist/types/auth/jwt.d.ts +8 -1
- package/dist/types/auth/jwt.d.ts.map +1 -1
- package/dist/types/index.d.ts +3 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/types/guards.d.ts +28 -0
- package/dist/types/types/guards.d.ts.map +1 -0
- package/dist/types/types/index.d.ts +146 -10
- package/dist/types/types/index.d.ts.map +1 -1
- package/dist/types/types/offramp.d.ts +4 -3
- package/dist/types/types/offramp.d.ts.map +1 -1
- package/dist/types/types/onramp.d.ts +3 -3
- package/dist/types/types/onramp.d.ts.map +1 -1
- package/dist/types/types/transaction.d.ts +43 -0
- package/dist/types/types/transaction.d.ts.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -218,6 +218,19 @@ await orda.recipients.create({
|
|
|
218
218
|
kycInformation?: KYCInformation
|
|
219
219
|
});
|
|
220
220
|
|
|
221
|
+
// List recipients with pagination and filters
|
|
222
|
+
await orda.recipients.list({
|
|
223
|
+
page?: number, // Page number (default: 1)
|
|
224
|
+
limit?: number, // Items per page (default: 50, max: 100)
|
|
225
|
+
filters?: {
|
|
226
|
+
toAddress?: string, // Filter by crypto settlement address
|
|
227
|
+
name?: string, // Filter by recipient name (partial match)
|
|
228
|
+
pixKey?: string, // Filter by PIX key (partial match)
|
|
229
|
+
taxId?: string, // Filter by Tax ID (partial match)
|
|
230
|
+
chainIds?: string | string[] // Filter by Chain IDs (comma-separated or array)
|
|
231
|
+
}
|
|
232
|
+
});
|
|
233
|
+
|
|
221
234
|
// Update recipient
|
|
222
235
|
await orda.recipients.updateSettlement({
|
|
223
236
|
recipientId: string,
|
|
@@ -232,6 +245,45 @@ await orda.recipients.deactivate({
|
|
|
232
245
|
});
|
|
233
246
|
```
|
|
234
247
|
|
|
248
|
+
**List Recipients Examples:**
|
|
249
|
+
|
|
250
|
+
```typescript
|
|
251
|
+
// List all recipients (first page)
|
|
252
|
+
const response = await orda.recipients.list();
|
|
253
|
+
console.log(`Total: ${response.pagination.totalCount}`);
|
|
254
|
+
|
|
255
|
+
// With pagination
|
|
256
|
+
const response = await orda.recipients.list({
|
|
257
|
+
page: 2,
|
|
258
|
+
limit: 20
|
|
259
|
+
});
|
|
260
|
+
|
|
261
|
+
// Filter by name
|
|
262
|
+
const response = await orda.recipients.list({
|
|
263
|
+
filters: {
|
|
264
|
+
name: 'John'
|
|
265
|
+
}
|
|
266
|
+
});
|
|
267
|
+
|
|
268
|
+
// Filter by chain IDs
|
|
269
|
+
const response = await orda.recipients.list({
|
|
270
|
+
filters: {
|
|
271
|
+
chainIds: ['1', '8453', '42161'] // Ethereum, Base, Arbitrum
|
|
272
|
+
}
|
|
273
|
+
});
|
|
274
|
+
|
|
275
|
+
// Multiple filters
|
|
276
|
+
const response = await orda.recipients.list({
|
|
277
|
+
page: 1,
|
|
278
|
+
limit: 10,
|
|
279
|
+
filters: {
|
|
280
|
+
name: 'John',
|
|
281
|
+
chainIds: ['8453'],
|
|
282
|
+
toAddress: '0x123...'
|
|
283
|
+
}
|
|
284
|
+
});
|
|
285
|
+
```
|
|
286
|
+
|
|
235
287
|
### Quote API
|
|
236
288
|
|
|
237
289
|
```typescript
|
|
@@ -429,6 +481,16 @@ async function main() {
|
|
|
429
481
|
debug: true,
|
|
430
482
|
});
|
|
431
483
|
|
|
484
|
+
// List recipients
|
|
485
|
+
const recipientsList = await orda.recipients.list({
|
|
486
|
+
page: 1,
|
|
487
|
+
limit: 10,
|
|
488
|
+
filters: {
|
|
489
|
+
chainIds: ['8453'] // Filter by Base chain
|
|
490
|
+
}
|
|
491
|
+
});
|
|
492
|
+
console.log(`Found ${recipientsList.pagination.totalCount} recipients`);
|
|
493
|
+
|
|
432
494
|
// Create recipient with smart wallet
|
|
433
495
|
const recipient = await orda.recipients.create({
|
|
434
496
|
name: 'Test Recipient',
|
|
@@ -3,7 +3,7 @@ import { GenerateJWTRequest, GenerateJWTResponse } from '../types/jwt';
|
|
|
3
3
|
/**
|
|
4
4
|
* API wrapper for JWT authentication operations
|
|
5
5
|
*
|
|
6
|
-
* Handles generation of
|
|
6
|
+
* Handles generation of JWTs for client-side authentication.
|
|
7
7
|
* Note: "token" in this context refers to JWT (authentication), not ERC-20 tokens (assets).
|
|
8
8
|
*/
|
|
9
9
|
export declare class JWT {
|
package/dist/browser/api/JWT.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* API wrapper for JWT authentication operations
|
|
3
3
|
*
|
|
4
|
-
* Handles generation of
|
|
4
|
+
* Handles generation of JWTs for client-side authentication.
|
|
5
5
|
* Note: "token" in this context refers to JWT (authentication), not ERC-20 tokens (assets).
|
|
6
6
|
*/
|
|
7
7
|
export class JWT {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { UniversalHttpClient } from '../http/client';
|
|
2
|
-
import { QuoteRequestParams,
|
|
2
|
+
import { QuoteRequestParams, TransferResponse, DirectTransferResponse } from '../types';
|
|
3
3
|
/**
|
|
4
4
|
* API wrapper for quote operations
|
|
5
5
|
*/
|
|
@@ -10,7 +10,8 @@ export declare class Quote {
|
|
|
10
10
|
* Requests a quote for a cross-chain transfer
|
|
11
11
|
* @param params Quote request parameters
|
|
12
12
|
* @returns Quote response with transaction ID and transfer details
|
|
13
|
+
* Returns either TransferResponse (crypto-to-crypto) or DirectTransferResponse (same chain)
|
|
13
14
|
*/
|
|
14
|
-
request(params: QuoteRequestParams): Promise<
|
|
15
|
+
request(params: QuoteRequestParams): Promise<TransferResponse | DirectTransferResponse>;
|
|
15
16
|
}
|
|
16
17
|
//# sourceMappingURL=Quote.d.ts.map
|
|
@@ -1 +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,
|
|
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,EACL,kBAAkB,EAClB,gBAAgB,EAChB,sBAAsB,EACvB,MAAM,UAAU,CAAC;AAElB;;GAEG;AACH,qBAAa,KAAK;IACJ,OAAO,CAAC,UAAU;gBAAV,UAAU,EAAE,mBAAmB;IAEnD;;;;;OAKG;IACG,OAAO,CACX,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,gBAAgB,GAAG,sBAAsB,CAAC;CActD"}
|
|
@@ -9,6 +9,7 @@ export class Quote {
|
|
|
9
9
|
* Requests a quote for a cross-chain transfer
|
|
10
10
|
* @param params Quote request parameters
|
|
11
11
|
* @returns Quote response with transaction ID and transfer details
|
|
12
|
+
* Returns either TransferResponse (crypto-to-crypto) or DirectTransferResponse (same chain)
|
|
12
13
|
*/
|
|
13
14
|
async request(params) {
|
|
14
15
|
// mutual exclusivity: either recipientId OR settlementDetails, not both
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Quote.js","sourceRoot":"","sources":["../../../src/api/Quote.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Quote.js","sourceRoot":"","sources":["../../../src/api/Quote.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,MAAM,OAAO,KAAK;IAChB,YAAoB,UAA+B;QAA/B,eAAU,GAAV,UAAU,CAAqB;IAAG,CAAC;IAEvD;;;;;OAKG;IACH,KAAK,CAAC,OAAO,CACX,MAA0B;QAE1B,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,CACzB,QAAQ,EACR,MAAM,CACP,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { UniversalHttpClient } from '../http/client';
|
|
2
|
-
import { CreateRecipientParams, UpdateRecipientSettlementParams, DeactivateRecipientParams, CreateRecipientResponse, UpdateRecipientResponse, DeactivateRecipientResponse } from '../types';
|
|
2
|
+
import { CreateRecipientParams, UpdateRecipientSettlementParams, DeactivateRecipientParams, CreateRecipientResponse, UpdateRecipientResponse, DeactivateRecipientResponse, ListRecipientsParams, ListRecipientsResponse } from '../types';
|
|
3
3
|
export declare class Recipient {
|
|
4
4
|
private httpClient;
|
|
5
5
|
constructor(httpClient: UniversalHttpClient);
|
|
@@ -21,5 +21,11 @@ export declare class Recipient {
|
|
|
21
21
|
* @returns Deactivation response
|
|
22
22
|
*/
|
|
23
23
|
deactivate(params: DeactivateRecipientParams): Promise<DeactivateRecipientResponse>;
|
|
24
|
+
/**
|
|
25
|
+
* Lists recipients with pagination and filters
|
|
26
|
+
* @param params List parameters including pagination and filters
|
|
27
|
+
* @returns List of recipients with pagination metadata
|
|
28
|
+
*/
|
|
29
|
+
list(params?: ListRecipientsParams): Promise<ListRecipientsResponse>;
|
|
24
30
|
}
|
|
25
31
|
//# sourceMappingURL=Recipient.d.ts.map
|
|
@@ -1 +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,
|
|
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,EAC3B,oBAAoB,EACpB,sBAAsB,EACvB,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;IAIzF;;;;OAIG;IACG,IAAI,CAAC,MAAM,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,sBAAsB,CAAC;CAsC3E"}
|
|
@@ -26,5 +26,46 @@ export class Recipient {
|
|
|
26
26
|
async deactivate(params) {
|
|
27
27
|
return this.httpClient.put('/deactivate-recipient', params);
|
|
28
28
|
}
|
|
29
|
+
/**
|
|
30
|
+
* Lists recipients with pagination and filters
|
|
31
|
+
* @param params List parameters including pagination and filters
|
|
32
|
+
* @returns List of recipients with pagination metadata
|
|
33
|
+
*/
|
|
34
|
+
async list(params) {
|
|
35
|
+
// Build query parameters
|
|
36
|
+
const queryParams = {};
|
|
37
|
+
// Pagination
|
|
38
|
+
if (params?.page !== undefined) {
|
|
39
|
+
queryParams.page = params.page.toString();
|
|
40
|
+
}
|
|
41
|
+
if (params?.limit !== undefined) {
|
|
42
|
+
queryParams.limit = params.limit.toString();
|
|
43
|
+
}
|
|
44
|
+
// Filters
|
|
45
|
+
if (params?.filters) {
|
|
46
|
+
if (params.filters.toAddress) {
|
|
47
|
+
queryParams.toAddress = params.filters.toAddress;
|
|
48
|
+
}
|
|
49
|
+
if (params.filters.name) {
|
|
50
|
+
queryParams.name = params.filters.name;
|
|
51
|
+
}
|
|
52
|
+
if (params.filters.pixKey) {
|
|
53
|
+
queryParams.pixKey = params.filters.pixKey;
|
|
54
|
+
}
|
|
55
|
+
if (params.filters.taxId) {
|
|
56
|
+
queryParams.taxId = params.filters.taxId;
|
|
57
|
+
}
|
|
58
|
+
if (params.filters.chainIds) {
|
|
59
|
+
// Handle both string (comma-separated) and array
|
|
60
|
+
if (Array.isArray(params.filters.chainIds)) {
|
|
61
|
+
queryParams.chainIds = params.filters.chainIds.join(',');
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
queryParams.chainIds = params.filters.chainIds;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return this.httpClient.get('/recipients', queryParams);
|
|
69
|
+
}
|
|
29
70
|
}
|
|
30
71
|
//# sourceMappingURL=Recipient.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Recipient.js","sourceRoot":"","sources":["../../../src/api/Recipient.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Recipient.js","sourceRoot":"","sources":["../../../src/api/Recipient.ts"],"names":[],"mappings":"AAYA,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;IAED;;;;OAIG;IACH,KAAK,CAAC,IAAI,CAAC,MAA6B;QACtC,yBAAyB;QACzB,MAAM,WAAW,GAAwB,EAAE,CAAC;QAE5C,aAAa;QACb,IAAI,MAAM,EAAE,IAAI,KAAK,SAAS,EAAE,CAAC;YAC/B,WAAW,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC5C,CAAC;QACD,IAAI,MAAM,EAAE,KAAK,KAAK,SAAS,EAAE,CAAC;YAChC,WAAW,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC9C,CAAC;QAED,UAAU;QACV,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YACpB,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;gBAC7B,WAAW,CAAC,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;YACnD,CAAC;YACD,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACxB,WAAW,CAAC,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;YACzC,CAAC;YACD,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;gBAC1B,WAAW,CAAC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;YAC7C,CAAC;YACD,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBACzB,WAAW,CAAC,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;YAC3C,CAAC;YACD,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;gBAC5B,iDAAiD;gBACjD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC3C,WAAW,CAAC,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC3D,CAAC;qBAAM,CAAC;oBACN,WAAW,CAAC,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;gBACjD,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAyB,aAAa,EAAE,WAAW,CAAC,CAAC;IACjF,CAAC;CACF"}
|
|
@@ -1 +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;
|
|
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;IA4CrC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,KAAK;CAGd"}
|
|
@@ -35,6 +35,9 @@ export class Transaction {
|
|
|
35
35
|
}
|
|
36
36
|
try {
|
|
37
37
|
const response = await this.getStatus({ transactionId });
|
|
38
|
+
if (!response.transaction) {
|
|
39
|
+
throw new Error(`Transaction status response missing transaction data. Error: ${response.error || 'Unknown error'}`);
|
|
40
|
+
}
|
|
38
41
|
const currentStatus = response.transaction.status;
|
|
39
42
|
if (currentStatus !== lastStatus && options?.onStatusUpdate) {
|
|
40
43
|
options.onStatusUpdate(currentStatus);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Transaction.js","sourceRoot":"","sources":["../../../src/api/Transaction.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,iBAAiB,EAClB,MAAM,UAAU,CAAC;AASlB,MAAM,OAAO,WAAW;IACtB,YAAoB,UAA+B;QAA/B,eAAU,GAAV,UAAU,CAAqB;IAAG,CAAC;IAEvD;;;;OAIG;IACH,KAAK,CAAC,SAAS,CAAC,MAA+B;QAC7C,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAA4B,SAAS,EAAE,MAAM,CAAC,CAAC;IAC3E,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,yBAAyB;QAC7B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAwB,0BAA0B,CAAC,CAAC;IAChF,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,iBAAiB,CACrB,aAAqB,EACrB,OAAwB;QAExB,MAAM,UAAU,GAAG,OAAO,EAAE,UAAU,IAAI,IAAI,CAAC;QAC/C,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,MAAM,CAAC;QAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,IAAI,UAAU,GAA6B,IAAI,CAAC;QAEhD,OAAO,IAAI,EAAE,CAAC;YACZ,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,SAAS,EAAE,CAAC;gBACvC,MAAM,IAAI,KAAK,CACb,qCAAqC,SAAS,oBAAoB,UAAU,EAAE,CAC/E,CAAC;YACJ,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"Transaction.js","sourceRoot":"","sources":["../../../src/api/Transaction.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,iBAAiB,EAClB,MAAM,UAAU,CAAC;AASlB,MAAM,OAAO,WAAW;IACtB,YAAoB,UAA+B;QAA/B,eAAU,GAAV,UAAU,CAAqB;IAAG,CAAC;IAEvD;;;;OAIG;IACH,KAAK,CAAC,SAAS,CAAC,MAA+B;QAC7C,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAA4B,SAAS,EAAE,MAAM,CAAC,CAAC;IAC3E,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,yBAAyB;QAC7B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAwB,0BAA0B,CAAC,CAAC;IAChF,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,iBAAiB,CACrB,aAAqB,EACrB,OAAwB;QAExB,MAAM,UAAU,GAAG,OAAO,EAAE,UAAU,IAAI,IAAI,CAAC;QAC/C,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,MAAM,CAAC;QAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,IAAI,UAAU,GAA6B,IAAI,CAAC;QAEhD,OAAO,IAAI,EAAE,CAAC;YACZ,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,SAAS,EAAE,CAAC;gBACvC,MAAM,IAAI,KAAK,CACb,qCAAqC,SAAS,oBAAoB,UAAU,EAAE,CAC/E,CAAC;YACJ,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC;gBAEzD,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;oBAC1B,MAAM,IAAI,KAAK,CACb,gEAAgE,QAAQ,CAAC,KAAK,IAAI,eAAe,EAAE,CACpG,CAAC;gBACJ,CAAC;gBAED,MAAM,aAAa,GAAG,QAAQ,CAAC,WAAW,CAAC,MAA2B,CAAC;gBAEvE,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,CAAC,4BAA4B;oBAC1D,SAAS;gBACX,CAAC;gBACD,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,MAAyB;QAChD,OAAO;YACL,iBAAiB,CAAC,SAAS;YAC3B,iBAAiB,CAAC,MAAM;YACxB,iBAAiB,CAAC,SAAS;YAC3B,iBAAiB,CAAC,QAAQ;SAC3B,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACrB,CAAC;IAEO,KAAK,CAAC,EAAU;QACtB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IAC3D,CAAC;CACF"}
|
|
@@ -1,12 +1,19 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* JWT Bearer Token Authenticator
|
|
3
3
|
*
|
|
4
|
-
* Provides authentication headers using a JWT
|
|
4
|
+
* Provides authentication headers using a JWT.
|
|
5
5
|
* The token is opaque to the SDK - it's simply passed as a Bearer token.
|
|
6
6
|
*/
|
|
7
7
|
export declare class JWTAuthenticator {
|
|
8
8
|
private token;
|
|
9
9
|
constructor(token: string);
|
|
10
|
+
/**
|
|
11
|
+
* Updates the JWT dynamically without creating a new authenticator instance
|
|
12
|
+
*
|
|
13
|
+
* @param newToken - The new JWT to use for authentication
|
|
14
|
+
* @throws {Error} If the new token is empty or null
|
|
15
|
+
*/
|
|
16
|
+
updateToken(newToken: string): void;
|
|
10
17
|
/**
|
|
11
18
|
* Gets authentication headers for API requests
|
|
12
19
|
* @returns Authentication headers with Bearer token
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jwt.d.ts","sourceRoot":"","sources":["../../../src/auth/jwt.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,qBAAa,gBAAgB;IACf,OAAO,CAAC,KAAK;gBAAL,KAAK,EAAE,MAAM;IAMjC;;;OAGG;IACG,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAKxD"}
|
|
1
|
+
{"version":3,"file":"jwt.d.ts","sourceRoot":"","sources":["../../../src/auth/jwt.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,qBAAa,gBAAgB;IACf,OAAO,CAAC,KAAK;gBAAL,KAAK,EAAE,MAAM;IAMjC;;;;;OAKG;IACI,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAO1C;;;OAGG;IACG,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAKxD"}
|
package/dist/browser/auth/jwt.js
CHANGED
|
@@ -1,16 +1,28 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* JWT Bearer Token Authenticator
|
|
3
3
|
*
|
|
4
|
-
* Provides authentication headers using a JWT
|
|
4
|
+
* Provides authentication headers using a JWT.
|
|
5
5
|
* The token is opaque to the SDK - it's simply passed as a Bearer token.
|
|
6
6
|
*/
|
|
7
7
|
export class JWTAuthenticator {
|
|
8
8
|
constructor(token) {
|
|
9
9
|
this.token = token;
|
|
10
10
|
if (!token) {
|
|
11
|
-
throw new Error('JWT
|
|
11
|
+
throw new Error('JWT is required');
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
|
+
/**
|
|
15
|
+
* Updates the JWT dynamically without creating a new authenticator instance
|
|
16
|
+
*
|
|
17
|
+
* @param newToken - The new JWT to use for authentication
|
|
18
|
+
* @throws {Error} If the new token is empty or null
|
|
19
|
+
*/
|
|
20
|
+
updateToken(newToken) {
|
|
21
|
+
if (!newToken) {
|
|
22
|
+
throw new Error('JWT is required');
|
|
23
|
+
}
|
|
24
|
+
this.token = newToken;
|
|
25
|
+
}
|
|
14
26
|
/**
|
|
15
27
|
* Gets authentication headers for API requests
|
|
16
28
|
* @returns Authentication headers with Bearer token
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jwt.js","sourceRoot":"","sources":["../../../src/auth/jwt.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,OAAO,gBAAgB;IAC3B,YAAoB,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;QAC/B,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"jwt.js","sourceRoot":"","sources":["../../../src/auth/jwt.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,OAAO,gBAAgB;IAC3B,YAAoB,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;QAC/B,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACI,WAAW,CAAC,QAAgB;QACjC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACrC,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;IACxB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,cAAc;QAClB,OAAO;YACL,aAAa,EAAE,UAAU,IAAI,CAAC,KAAK,EAAE;SACtC,CAAC;IACJ,CAAC;CACF"}
|
package/dist/browser/index.d.ts
CHANGED
|
@@ -22,7 +22,7 @@ export interface OrdaConfig {
|
|
|
22
22
|
*
|
|
23
23
|
* Supports both authentication modes:
|
|
24
24
|
* 1. HMAC: Server-side authentication with clientId/clientSecret
|
|
25
|
-
* 2. JWT: Client-side authentication with JWT
|
|
25
|
+
* 2. JWT: Client-side authentication with JWT
|
|
26
26
|
*/
|
|
27
27
|
export declare class OrdaSDK {
|
|
28
28
|
private httpClient;
|
|
@@ -35,6 +35,8 @@ export declare class OrdaSDK {
|
|
|
35
35
|
jwt: JWT;
|
|
36
36
|
smartWallets: SmartWalletManager;
|
|
37
37
|
constructor(config: OrdaConfig | JWTAuthConfig);
|
|
38
|
+
updateToken(newToken: string): void;
|
|
39
|
+
isJWTMode(): boolean;
|
|
38
40
|
/**
|
|
39
41
|
* Checks if the SDK is running in a browser environment
|
|
40
42
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAIhC,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;GAMG;AACH,qBAAa,OAAO;IAClB,OAAO,CAAC,UAAU,CAAsB;IACxC,OAAO,CAAC,MAAM,CAA6B;IAEpC,KAAK,EAAE,KAAK,CAAC;IACb,UAAU,EAAE,SAAS,CAAC;IACtB,YAAY,EAAE,WAAW,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,GAAG,CAAC;IACT,YAAY,EAAE,kBAAkB,CAAC;gBAE5B,MAAM,EAAE,UAAU,GAAG,aAAa;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAIhC,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;GAMG;AACH,qBAAa,OAAO;IAClB,OAAO,CAAC,UAAU,CAAsB;IACxC,OAAO,CAAC,MAAM,CAA6B;IAEpC,KAAK,EAAE,KAAK,CAAC;IACb,UAAU,EAAE,SAAS,CAAC;IACtB,YAAY,EAAE,WAAW,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,GAAG,CAAC;IACT,YAAY,EAAE,kBAAkB,CAAC;gBAE5B,MAAM,EAAE,UAAU,GAAG,aAAa;IAqEvC,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAYnC,SAAS,IAAI,OAAO;IAG3B;;OAEG;IACH,MAAM,CAAC,SAAS,IAAI,OAAO;IAI3B;;OAEG;IACH,MAAM,CAAC,MAAM,IAAI,OAAO;IAIxB;;OAEG;IACH,MAAM,KAAK,OAAO,IAAI,MAAM,CAE3B;CACF;AAED,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AAEzB,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,EAAE,MAAM,EAAE,KAAK,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAEhC,OAAO,EAAE,mBAAmB,EAAE,KAAK,aAAa,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC/F,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAG9C,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACxG,YAAY,EACV,iBAAiB,EAAE,oBAAoB,EAAE,oBAAoB,EAC7D,iBAAiB,EAAE,WAAW,EAAE,gBAAgB,GACjD,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,uBAAuB,GAAG,MAAM,iBAAiB,CAAC;AAE1I,eAAe,OAAO,CAAC"}
|
package/dist/browser/index.js
CHANGED
|
@@ -13,7 +13,7 @@ import { SmartWalletManager } from './smart-wallets';
|
|
|
13
13
|
*
|
|
14
14
|
* Supports both authentication modes:
|
|
15
15
|
* 1. HMAC: Server-side authentication with clientId/clientSecret
|
|
16
|
-
* 2. JWT: Client-side authentication with JWT
|
|
16
|
+
* 2. JWT: Client-side authentication with JWT
|
|
17
17
|
*/
|
|
18
18
|
export class OrdaSDK {
|
|
19
19
|
constructor(config) {
|
|
@@ -31,12 +31,12 @@ export class OrdaSDK {
|
|
|
31
31
|
console.warn('Security Warning: Using API credentials in the browser is not recommended for production. ' +
|
|
32
32
|
'Consider using JWT authentication method or a backend proxy to protect your credentials.');
|
|
33
33
|
}
|
|
34
|
-
const baseUrl =
|
|
34
|
+
const baseUrl = process.env.ORDA_API_BASE_URL;
|
|
35
35
|
let authenticator;
|
|
36
36
|
if (isJWTMode) {
|
|
37
37
|
const jwtConfig = config;
|
|
38
38
|
authenticator = new JWTAuthenticator(jwtConfig.token);
|
|
39
|
-
this.httpClient = new UniversalHttpClient(baseUrl, jwtConfig.requestTimeout || 30000, {
|
|
39
|
+
this.httpClient = new UniversalHttpClient(baseUrl || 'https://api.orda.network/v1', jwtConfig.requestTimeout || 30000, {
|
|
40
40
|
authenticator,
|
|
41
41
|
enableTimestamp: false, // JWT doesn't need timestamps
|
|
42
42
|
debug: jwtConfig.debug || false
|
|
@@ -46,7 +46,7 @@ export class OrdaSDK {
|
|
|
46
46
|
// HMAC mode
|
|
47
47
|
const hmacConfig = config;
|
|
48
48
|
authenticator = new HmacAuthenticator(hmacConfig.clientId, hmacConfig.clientSecret);
|
|
49
|
-
this.httpClient = new UniversalHttpClient(baseUrl, hmacConfig.requestTimeout || 30000, {
|
|
49
|
+
this.httpClient = new UniversalHttpClient(baseUrl || 'https://api.orda.network/v1', hmacConfig.requestTimeout || 30000, {
|
|
50
50
|
authenticator,
|
|
51
51
|
enableTimestamp: hmacConfig.enableTimestamp !== false,
|
|
52
52
|
debug: hmacConfig.debug || false
|
|
@@ -64,6 +64,22 @@ export class OrdaSDK {
|
|
|
64
64
|
alchemyApiKey: this.config.alchemyApiKey
|
|
65
65
|
});
|
|
66
66
|
}
|
|
67
|
+
updateToken(newToken) {
|
|
68
|
+
if (!this.config || !('token' in this.config)) {
|
|
69
|
+
throw new Error('updateToken() is only available in JWT authentication mode');
|
|
70
|
+
}
|
|
71
|
+
this.config.token = newToken;
|
|
72
|
+
const authenticator = this.httpClient.authenticator;
|
|
73
|
+
if (authenticator instanceof JWTAuthenticator) {
|
|
74
|
+
authenticator.updateToken(newToken);
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
throw new Error('Internal error: Authenticator type mismatch. Expected JWTAuthenticator.');
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
isJWTMode() {
|
|
81
|
+
return this.config && 'token' in this.config;
|
|
82
|
+
}
|
|
67
83
|
/**
|
|
68
84
|
* Checks if the SDK is running in a browser environment
|
|
69
85
|
*/
|
|
@@ -80,7 +96,7 @@ export class OrdaSDK {
|
|
|
80
96
|
* Gets the current SDK version
|
|
81
97
|
*/
|
|
82
98
|
static get version() {
|
|
83
|
-
return '1.
|
|
99
|
+
return '1.1.1';
|
|
84
100
|
}
|
|
85
101
|
}
|
|
86
102
|
export * from './types';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAChC,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAerD;;;;;;GAMG;AACH,MAAM,OAAO,OAAO;IAYlB,YAAY,MAAkC;QAC5C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,MAAM,SAAS,GAAG,OAAO,IAAI,MAAM,CAAC;QACpC,MAAM,UAAU,GAAG,UAAU,IAAI,MAAM,IAAI,cAAc,IAAI,MAAM,CAAC;QAEpE,IAAI,CAAC,SAAS,IAAI,CAAC,UAAU,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;QACjF,CAAC;QAED,+CAA+C;QAC/C,IAAI,SAAS,IAAI,MAAM,IAAI,aAAa,IAAI,MAAM,EAAE,CAAC;YACnD,MAAM,IAAI,KAAK,CAAC,kFAAkF,CAAC,CAAC;QACtG,CAAC;QAED,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,UAAU,EAAE,CAAC;YAChD,OAAO,CAAC,IAAI,CACV,4FAA4F;gBAC5F,0FAA0F,CAC3F,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type guards for discriminated union types
|
|
3
|
+
* Use these to narrow QuoteResponse to specific types
|
|
4
|
+
*/
|
|
5
|
+
import type { QuoteResponse, TransferResponse, DirectTransferResponse } from './index';
|
|
6
|
+
import type { OffRampQuoteResponse } from './offramp';
|
|
7
|
+
import type { OnRampQuoteResponse } from './onramp';
|
|
8
|
+
/**
|
|
9
|
+
* Type guard for TransferResponse (crypto-to-crypto)
|
|
10
|
+
* Identified by presence of 'quote' with 'providerQuoteDetails' and absence of 'depositInstructions'
|
|
11
|
+
*/
|
|
12
|
+
export declare function isTransferResponse(response: QuoteResponse): response is TransferResponse;
|
|
13
|
+
/**
|
|
14
|
+
* Type guard for DirectTransferResponse (same chain)
|
|
15
|
+
* Identified by presence of 'feeTxParams' and absence of 'quote'
|
|
16
|
+
*/
|
|
17
|
+
export declare function isDirectTransferResponse(response: QuoteResponse): response is DirectTransferResponse;
|
|
18
|
+
/**
|
|
19
|
+
* Type guard for OffRampQuoteResponse (crypto-to-fiat)
|
|
20
|
+
* Identified by presence of 'quote' with 'toCurrency' field
|
|
21
|
+
*/
|
|
22
|
+
export declare function isOffRampResponse(response: QuoteResponse): response is OffRampQuoteResponse;
|
|
23
|
+
/**
|
|
24
|
+
* Type guard for OnRampQuoteResponse (fiat-to-crypto)
|
|
25
|
+
* Identified by presence of 'depositInstructions' field
|
|
26
|
+
*/
|
|
27
|
+
export declare function isOnRampResponse(response: QuoteResponse): response is OnRampQuoteResponse;
|
|
28
|
+
//# sourceMappingURL=guards.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guards.d.ts","sourceRoot":"","sources":["../../../src/types/guards.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,aAAa,EACb,gBAAgB,EAChB,sBAAsB,EACvB,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAEpD;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,aAAa,GACtB,QAAQ,IAAI,gBAAgB,CAO9B;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,aAAa,GACtB,QAAQ,IAAI,sBAAsB,CAEpC;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,aAAa,GACtB,QAAQ,IAAI,oBAAoB,CAMlC;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,aAAa,GACtB,QAAQ,IAAI,mBAAmB,CAEjC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type guards for discriminated union types
|
|
3
|
+
* Use these to narrow QuoteResponse to specific types
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Type guard for TransferResponse (crypto-to-crypto)
|
|
7
|
+
* Identified by presence of 'quote' with 'providerQuoteDetails' and absence of 'depositInstructions'
|
|
8
|
+
*/
|
|
9
|
+
export function isTransferResponse(response) {
|
|
10
|
+
return ('quote' in response &&
|
|
11
|
+
'providerQuoteDetails' in response &&
|
|
12
|
+
!('depositInstructions' in response) &&
|
|
13
|
+
'toToken' in response.quote);
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Type guard for DirectTransferResponse (same chain)
|
|
17
|
+
* Identified by presence of 'feeTxParams' and absence of 'quote'
|
|
18
|
+
*/
|
|
19
|
+
export function isDirectTransferResponse(response) {
|
|
20
|
+
return 'feeTxParams' in response && !('quote' in response);
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Type guard for OffRampQuoteResponse (crypto-to-fiat)
|
|
24
|
+
* Identified by presence of 'quote' with 'toCurrency' field
|
|
25
|
+
*/
|
|
26
|
+
export function isOffRampResponse(response) {
|
|
27
|
+
return ('quote' in response &&
|
|
28
|
+
'toCurrency' in response.quote &&
|
|
29
|
+
!('depositInstructions' in response));
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Type guard for OnRampQuoteResponse (fiat-to-crypto)
|
|
33
|
+
* Identified by presence of 'depositInstructions' field
|
|
34
|
+
*/
|
|
35
|
+
export function isOnRampResponse(response) {
|
|
36
|
+
return 'depositInstructions' in response;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=guards.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guards.js","sourceRoot":"","sources":["../../../src/types/guards.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAUH;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAChC,QAAuB;IAEvB,OAAO,CACL,OAAO,IAAI,QAAQ;QACnB,sBAAsB,IAAI,QAAQ;QAClC,CAAC,CAAC,qBAAqB,IAAI,QAAQ,CAAC;QACpC,SAAS,IAAK,QAA6B,CAAC,KAAK,CAClD,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CACtC,QAAuB;IAEvB,OAAO,aAAa,IAAI,QAAQ,IAAI,CAAC,CAAC,OAAO,IAAI,QAAQ,CAAC,CAAC;AAC7D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC/B,QAAuB;IAEvB,OAAO,CACL,OAAO,IAAI,QAAQ;QACnB,YAAY,IAAK,QAAiC,CAAC,KAAK;QACxD,CAAC,CAAC,qBAAqB,IAAI,QAAQ,CAAC,CACrC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAC9B,QAAuB;IAEvB,OAAO,qBAAqB,IAAI,QAAQ,CAAC;AAC3C,CAAC"}
|