@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.
- package/README.md +204 -18
- package/dist/browser/api/JWT.d.ts +41 -0
- package/dist/browser/api/JWT.d.ts.map +1 -0
- package/dist/browser/api/JWT.js +59 -0
- package/dist/browser/api/JWT.js.map +1 -0
- package/dist/browser/api/{OffRampAPI.d.ts → OffRamp.d.ts} +2 -2
- package/dist/browser/api/OffRamp.d.ts.map +1 -0
- package/dist/{esm/api/OffRampAPI.js → browser/api/OffRamp.js} +11 -2
- package/dist/browser/api/OffRamp.js.map +1 -0
- package/dist/{esm/api/OnRampAPI.d.ts → browser/api/OnRamp.d.ts} +2 -2
- package/dist/browser/api/OnRamp.d.ts.map +1 -0
- package/dist/{esm/api/OnRampAPI.js → browser/api/OnRamp.js} +9 -2
- package/dist/browser/api/OnRamp.js.map +1 -0
- package/dist/browser/api/{QuoteAPI.d.ts → Quote.d.ts} +2 -2
- package/dist/browser/api/Quote.d.ts.map +1 -0
- package/dist/browser/api/Quote.js +24 -0
- package/dist/browser/api/Quote.js.map +1 -0
- package/dist/{esm/api/RecipientAPI.d.ts → browser/api/Recipient.d.ts} +2 -2
- package/dist/browser/api/Recipient.d.ts.map +1 -0
- package/dist/browser/api/{RecipientAPI.js → Recipient.js} +2 -2
- package/dist/browser/api/Recipient.js.map +1 -0
- package/dist/{esm/api/TransactionAPI.d.ts → browser/api/Transaction.d.ts} +2 -2
- package/dist/browser/api/Transaction.d.ts.map +1 -0
- package/dist/browser/api/{TransactionAPI.js → Transaction.js} +2 -2
- package/dist/browser/api/Transaction.js.map +1 -0
- package/dist/browser/auth/jwt.d.ts +16 -0
- package/dist/browser/auth/jwt.d.ts.map +1 -0
- package/dist/browser/auth/jwt.js +24 -0
- package/dist/browser/auth/jwt.js.map +1 -0
- package/dist/browser/http/client.d.ts +3 -2
- package/dist/browser/http/client.d.ts.map +1 -1
- package/dist/browser/http/client.js +12 -4
- package/dist/browser/http/client.js.map +1 -1
- package/dist/browser/index.d.ts +26 -16
- package/dist/browser/index.d.ts.map +1 -1
- package/dist/browser/index.js +51 -25
- package/dist/browser/index.js.map +1 -1
- package/dist/browser/types/index.d.ts +7 -1
- package/dist/browser/types/index.d.ts.map +1 -1
- package/dist/browser/types/index.js +1 -0
- package/dist/browser/types/index.js.map +1 -1
- package/dist/browser/types/jwt.d.ts +37 -0
- package/dist/browser/types/jwt.d.ts.map +1 -0
- package/dist/browser/types/jwt.js +9 -0
- package/dist/browser/types/jwt.js.map +1 -0
- package/dist/browser/types/onramp.d.ts +6 -1
- package/dist/browser/types/onramp.d.ts.map +1 -1
- package/dist/cjs/api/JWT.d.ts +41 -0
- package/dist/cjs/api/JWT.d.ts.map +1 -0
- package/dist/cjs/api/JWT.js +63 -0
- package/dist/cjs/api/JWT.js.map +1 -0
- package/dist/{esm/api/OffRampAPI.d.ts → cjs/api/OffRamp.d.ts} +2 -2
- package/dist/cjs/api/OffRamp.d.ts.map +1 -0
- package/dist/cjs/api/{OffRampAPI.js → OffRamp.js} +13 -4
- package/dist/cjs/api/OffRamp.js.map +1 -0
- package/dist/{browser/api/OnRampAPI.d.ts → cjs/api/OnRamp.d.ts} +2 -2
- package/dist/cjs/api/OnRamp.d.ts.map +1 -0
- package/dist/cjs/api/{OnRampAPI.js → OnRamp.js} +11 -4
- package/dist/cjs/api/OnRamp.js.map +1 -0
- package/dist/{types/api/QuoteAPI.d.ts → cjs/api/Quote.d.ts} +2 -2
- package/dist/cjs/api/Quote.d.ts.map +1 -0
- package/dist/cjs/api/Quote.js +28 -0
- package/dist/cjs/api/Quote.js.map +1 -0
- package/dist/{types/api/RecipientAPI.d.ts → cjs/api/Recipient.d.ts} +2 -2
- package/dist/cjs/api/Recipient.d.ts.map +1 -0
- package/dist/cjs/api/{RecipientAPI.js → Recipient.js} +4 -4
- package/dist/cjs/api/Recipient.js.map +1 -0
- package/dist/{types/api/TransactionAPI.d.ts → cjs/api/Transaction.d.ts} +2 -2
- package/dist/cjs/api/Transaction.d.ts.map +1 -0
- package/dist/cjs/api/{TransactionAPI.js → Transaction.js} +4 -4
- package/dist/cjs/api/Transaction.js.map +1 -0
- package/dist/cjs/auth/jwt.d.ts +16 -0
- package/dist/cjs/auth/jwt.d.ts.map +1 -0
- package/dist/cjs/auth/jwt.js +28 -0
- package/dist/cjs/auth/jwt.js.map +1 -0
- package/dist/cjs/http/client.d.ts +3 -2
- package/dist/cjs/http/client.d.ts.map +1 -1
- package/dist/cjs/http/client.js +12 -4
- package/dist/cjs/http/client.js.map +1 -1
- package/dist/cjs/index.d.ts +26 -16
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +59 -31
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/index.d.ts +7 -1
- package/dist/cjs/types/index.d.ts.map +1 -1
- package/dist/cjs/types/index.js +15 -0
- package/dist/cjs/types/index.js.map +1 -1
- package/dist/cjs/types/jwt.d.ts +37 -0
- package/dist/cjs/types/jwt.d.ts.map +1 -0
- package/dist/cjs/types/jwt.js +10 -0
- package/dist/cjs/types/jwt.js.map +1 -0
- package/dist/cjs/types/onramp.d.ts +6 -1
- package/dist/cjs/types/onramp.d.ts.map +1 -1
- package/dist/esm/api/JWT.d.ts +41 -0
- package/dist/esm/api/JWT.d.ts.map +1 -0
- package/dist/esm/api/JWT.js +59 -0
- package/dist/esm/api/JWT.js.map +1 -0
- package/dist/{cjs/api/OffRampAPI.d.ts → esm/api/OffRamp.d.ts} +2 -2
- package/dist/esm/api/OffRamp.d.ts.map +1 -0
- package/dist/{browser/api/OffRampAPI.js → esm/api/OffRamp.js} +11 -2
- package/dist/esm/api/OffRamp.js.map +1 -0
- package/dist/{cjs/api/OnRampAPI.d.ts → esm/api/OnRamp.d.ts} +2 -2
- package/dist/esm/api/OnRamp.d.ts.map +1 -0
- package/dist/{browser/api/OnRampAPI.js → esm/api/OnRamp.js} +9 -2
- package/dist/esm/api/OnRamp.js.map +1 -0
- package/dist/esm/api/{QuoteAPI.d.ts → Quote.d.ts} +2 -2
- package/dist/esm/api/Quote.d.ts.map +1 -0
- package/dist/esm/api/Quote.js +24 -0
- package/dist/esm/api/Quote.js.map +1 -0
- package/dist/{cjs/api/RecipientAPI.d.ts → esm/api/Recipient.d.ts} +2 -2
- package/dist/esm/api/Recipient.d.ts.map +1 -0
- package/dist/esm/api/{RecipientAPI.js → Recipient.js} +2 -2
- package/dist/esm/api/Recipient.js.map +1 -0
- package/dist/{browser/api/TransactionAPI.d.ts → esm/api/Transaction.d.ts} +2 -2
- package/dist/esm/api/Transaction.d.ts.map +1 -0
- package/dist/esm/api/{TransactionAPI.js → Transaction.js} +2 -2
- package/dist/esm/api/Transaction.js.map +1 -0
- package/dist/esm/auth/jwt.d.ts +16 -0
- package/dist/esm/auth/jwt.d.ts.map +1 -0
- package/dist/esm/auth/jwt.js +24 -0
- package/dist/esm/auth/jwt.js.map +1 -0
- package/dist/esm/http/client.d.ts +3 -2
- package/dist/esm/http/client.d.ts.map +1 -1
- package/dist/esm/http/client.js +12 -4
- package/dist/esm/http/client.js.map +1 -1
- package/dist/esm/index.d.ts +26 -16
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +51 -25
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types/index.d.ts +7 -1
- package/dist/esm/types/index.d.ts.map +1 -1
- package/dist/esm/types/index.js +1 -0
- package/dist/esm/types/index.js.map +1 -1
- package/dist/esm/types/jwt.d.ts +37 -0
- package/dist/esm/types/jwt.d.ts.map +1 -0
- package/dist/esm/types/jwt.js +9 -0
- package/dist/esm/types/jwt.js.map +1 -0
- package/dist/esm/types/onramp.d.ts +6 -1
- package/dist/esm/types/onramp.d.ts.map +1 -1
- package/dist/types/api/JWT.d.ts +41 -0
- package/dist/types/api/JWT.d.ts.map +1 -0
- package/dist/types/api/{OffRampAPI.d.ts → OffRamp.d.ts} +2 -2
- package/dist/types/api/OffRamp.d.ts.map +1 -0
- package/dist/types/api/{OnRampAPI.d.ts → OnRamp.d.ts} +2 -2
- package/dist/types/api/OnRamp.d.ts.map +1 -0
- package/dist/{cjs/api/QuoteAPI.d.ts → types/api/Quote.d.ts} +2 -2
- package/dist/types/api/Quote.d.ts.map +1 -0
- package/dist/{browser/api/RecipientAPI.d.ts → types/api/Recipient.d.ts} +2 -2
- package/dist/types/api/Recipient.d.ts.map +1 -0
- package/dist/{cjs/api/TransactionAPI.d.ts → types/api/Transaction.d.ts} +2 -2
- package/dist/types/api/Transaction.d.ts.map +1 -0
- package/dist/types/auth/jwt.d.ts +16 -0
- package/dist/types/auth/jwt.d.ts.map +1 -0
- package/dist/types/http/client.d.ts +3 -2
- package/dist/types/http/client.d.ts.map +1 -1
- package/dist/types/index.d.ts +26 -16
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/types/index.d.ts +7 -1
- package/dist/types/types/index.d.ts.map +1 -1
- package/dist/types/types/jwt.d.ts +37 -0
- package/dist/types/types/jwt.d.ts.map +1 -0
- package/dist/types/types/onramp.d.ts +6 -1
- package/dist/types/types/onramp.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/browser/api/OffRampAPI.d.ts.map +0 -1
- package/dist/browser/api/OffRampAPI.js.map +0 -1
- package/dist/browser/api/OnRampAPI.d.ts.map +0 -1
- package/dist/browser/api/OnRampAPI.js.map +0 -1
- package/dist/browser/api/QuoteAPI.d.ts.map +0 -1
- package/dist/browser/api/QuoteAPI.js +0 -17
- package/dist/browser/api/QuoteAPI.js.map +0 -1
- package/dist/browser/api/RecipientAPI.d.ts.map +0 -1
- package/dist/browser/api/RecipientAPI.js.map +0 -1
- package/dist/browser/api/TransactionAPI.d.ts.map +0 -1
- package/dist/browser/api/TransactionAPI.js.map +0 -1
- package/dist/cjs/api/OffRampAPI.d.ts.map +0 -1
- package/dist/cjs/api/OffRampAPI.js.map +0 -1
- package/dist/cjs/api/OnRampAPI.d.ts.map +0 -1
- package/dist/cjs/api/OnRampAPI.js.map +0 -1
- package/dist/cjs/api/QuoteAPI.d.ts.map +0 -1
- package/dist/cjs/api/QuoteAPI.js +0 -21
- package/dist/cjs/api/QuoteAPI.js.map +0 -1
- package/dist/cjs/api/RecipientAPI.d.ts.map +0 -1
- package/dist/cjs/api/RecipientAPI.js.map +0 -1
- package/dist/cjs/api/TransactionAPI.d.ts.map +0 -1
- package/dist/cjs/api/TransactionAPI.js.map +0 -1
- package/dist/esm/api/OffRampAPI.d.ts.map +0 -1
- package/dist/esm/api/OffRampAPI.js.map +0 -1
- package/dist/esm/api/OnRampAPI.d.ts.map +0 -1
- package/dist/esm/api/OnRampAPI.js.map +0 -1
- package/dist/esm/api/QuoteAPI.d.ts.map +0 -1
- package/dist/esm/api/QuoteAPI.js +0 -17
- package/dist/esm/api/QuoteAPI.js.map +0 -1
- package/dist/esm/api/RecipientAPI.d.ts.map +0 -1
- package/dist/esm/api/RecipientAPI.js.map +0 -1
- package/dist/esm/api/TransactionAPI.d.ts.map +0 -1
- package/dist/esm/api/TransactionAPI.js.map +0 -1
- package/dist/types/api/OffRampAPI.d.ts.map +0 -1
- package/dist/types/api/OnRampAPI.d.ts.map +0 -1
- package/dist/types/api/QuoteAPI.d.ts.map +0 -1
- package/dist/types/api/RecipientAPI.d.ts.map +0 -1
- 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
|
-
- **
|
|
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
|
-
##
|
|
103
|
+
## Authentication Methods
|
|
92
104
|
|
|
93
|
-
|
|
105
|
+
### HMAC Authentication (Server-Side)
|
|
94
106
|
|
|
95
|
-
|
|
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:
|
|
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
|
|
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
|
|
201
|
-
|
|
202
|
-
|
|
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
|
|
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=
|
|
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
|
|
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=
|
|
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
|
|
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=
|
|
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
|
|
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=
|
|
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
|
|
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=
|
|
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
|
|
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=
|
|
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
|
|
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=
|
|
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
|
|
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=
|
|
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"}
|