@nexus-cross/crossx-sdk-core 0.0.0-beta.2 → 1.0.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 (68) hide show
  1. package/README.md +129 -83
  2. package/dist/__tests__/adapters/IndexedDBStorageAdapter.test.d.ts +2 -0
  3. package/dist/__tests__/adapters/IndexedDBStorageAdapter.test.d.ts.map +1 -0
  4. package/dist/__tests__/mocks/MockChainRegistryPort.d.ts +9 -0
  5. package/dist/__tests__/mocks/MockChainRegistryPort.d.ts.map +1 -0
  6. package/dist/__tests__/mocks/MockTransportPort.d.ts +10 -5
  7. package/dist/__tests__/mocks/MockTransportPort.d.ts.map +1 -1
  8. package/dist/__tests__/mocks/MockWalletProviderPort.d.ts +3 -8
  9. package/dist/__tests__/mocks/MockWalletProviderPort.d.ts.map +1 -1
  10. package/dist/adapters/chain/RemoteChainRegistryAdapter.d.ts +29 -0
  11. package/dist/adapters/chain/RemoteChainRegistryAdapter.d.ts.map +1 -0
  12. package/dist/adapters/confirmation/BrowserConfirmationAdapter.d.ts +6 -1
  13. package/dist/adapters/confirmation/BrowserConfirmationAdapter.d.ts.map +1 -1
  14. package/dist/adapters/oauth/BrowserOAuthAdapter.d.ts.map +1 -1
  15. package/dist/adapters/storage/IndexedDBStorageAdapter.d.ts +25 -0
  16. package/dist/adapters/storage/IndexedDBStorageAdapter.d.ts.map +1 -0
  17. package/dist/adapters/transport/FetchTransportAdapter.d.ts.map +1 -1
  18. package/dist/adapters/wallet/MockWalletProviderAdapter.d.ts +1 -6
  19. package/dist/adapters/wallet/MockWalletProviderAdapter.d.ts.map +1 -1
  20. package/dist/adapters/wallet/RemoteWalletProviderAdapter.d.ts +1 -11
  21. package/dist/adapters/wallet/RemoteWalletProviderAdapter.d.ts.map +1 -1
  22. package/dist/adapters/wallet/types.d.ts +0 -6
  23. package/dist/adapters/wallet/types.d.ts.map +1 -1
  24. package/dist/core/constants.d.ts +27 -0
  25. package/dist/core/constants.d.ts.map +1 -0
  26. package/dist/core/ports/ChainRegistryPort.d.ts +18 -0
  27. package/dist/core/ports/ChainRegistryPort.d.ts.map +1 -0
  28. package/dist/core/ports/ConfirmationPort.d.ts +46 -6
  29. package/dist/core/ports/ConfirmationPort.d.ts.map +1 -1
  30. package/dist/core/ports/TransportPort.d.ts +2 -0
  31. package/dist/core/ports/TransportPort.d.ts.map +1 -1
  32. package/dist/core/ports/WalletProviderPort.d.ts +3 -28
  33. package/dist/core/ports/WalletProviderPort.d.ts.map +1 -1
  34. package/dist/core/ports/index.d.ts +1 -0
  35. package/dist/core/ports/index.d.ts.map +1 -1
  36. package/dist/core/services/JsonRpcService.d.ts +18 -0
  37. package/dist/core/services/JsonRpcService.d.ts.map +1 -0
  38. package/dist/core/services/TypedEventEmitter.d.ts +23 -0
  39. package/dist/core/services/TypedEventEmitter.d.ts.map +1 -0
  40. package/dist/core/types/chain.d.ts +102 -17
  41. package/dist/core/types/chain.d.ts.map +1 -1
  42. package/dist/core/types/errors.d.ts +8 -3
  43. package/dist/core/types/errors.d.ts.map +1 -1
  44. package/dist/core/types/events.d.ts +23 -0
  45. package/dist/core/types/events.d.ts.map +1 -0
  46. package/dist/core/types/index.d.ts +8 -15
  47. package/dist/core/types/index.d.ts.map +1 -1
  48. package/dist/core/types/internal.d.ts +39 -0
  49. package/dist/core/types/internal.d.ts.map +1 -0
  50. package/dist/core/usecases/SignInUseCase.d.ts +32 -7
  51. package/dist/core/usecases/SignInUseCase.d.ts.map +1 -1
  52. package/dist/core/usecases/SignOutUseCase.d.ts +3 -1
  53. package/dist/core/usecases/SignOutUseCase.d.ts.map +1 -1
  54. package/dist/core/usecases/index.d.ts +0 -1
  55. package/dist/core/usecases/index.d.ts.map +1 -1
  56. package/dist/index.cjs +263 -203
  57. package/dist/index.d.ts +2 -2
  58. package/dist/index.d.ts.map +1 -1
  59. package/dist/index.js +5128 -4410
  60. package/dist/sdk/CROSSxSDK.d.ts +148 -15
  61. package/dist/sdk/CROSSxSDK.d.ts.map +1 -1
  62. package/dist/sdk/EthereumProvider.d.ts.map +1 -1
  63. package/dist/sdk/factory.d.ts.map +1 -1
  64. package/package.json +2 -1
  65. package/dist/__tests__/usecases/WithdrawUseCase.test.d.ts +0 -2
  66. package/dist/__tests__/usecases/WithdrawUseCase.test.d.ts.map +0 -1
  67. package/dist/core/usecases/WithdrawUseCase.d.ts +0 -11
  68. package/dist/core/usecases/WithdrawUseCase.d.ts.map +0 -1
package/README.md CHANGED
@@ -1,85 +1,82 @@
1
1
  # @nexus-cross/crossx-sdk-core
2
2
 
3
- CROSSx Embedded Wallet SDK — Clean Architecture + Hexagonal Architecture 기반
3
+ CROSSx Embedded Wallet SDK — Built on Clean Architecture + Hexagonal Architecture
4
4
 
5
- ## 특징
5
+ ## Features
6
6
 
7
- - **EIP-1193 Provider**: ethers.js / viem / wagmi 와 바로 연동
8
- - **Clean Architecture**: 순수 비즈니스 로직과 구현 분리
9
- - **환경 독립적**: Web / Node / React Native 모두 지원 가능
10
- - **Port & Adapters**: 구현체를 교체해도 core 코드 변경 없음
11
- - **CAIP-2**: 표준 체인 ID 형식 (`eip155:612044`)
12
- - **트랜잭션 컨펌 모달**: 서명/전송 사용자 승인 필수 (우회 불가)
7
+ - **EIP-1193 Provider**: Direct integration with ethers.js / viem / wagmi
8
+ - **Clean Architecture**: Separation of pure business logic and implementation
9
+ - **Environment Independent**: Supports Web / Node / React Native
10
+ - **Port & Adapters**: Swap implementations without modifying core code
11
+ - **CAIP-2**: Standard chain ID format (`eip155:612044`)
12
+ - **Transaction Confirmation Modal**: User approval required before signing/sending (cannot be bypassed)
13
13
 
14
- ## 설치
14
+ ## Installation
15
15
 
16
16
  ```bash
17
17
  npm install @nexus-cross/crossx-sdk-core
18
18
  ```
19
19
 
20
- ## 빠른 시작
20
+ ## Quick Start
21
21
 
22
22
  ```ts
23
23
  import { createCROSSxSDK, ChainId } from '@nexus-cross/crossx-sdk-core';
24
24
 
25
25
  const sdk = createCROSSxSDK({
26
- receiptPolling: { intervalMs: 2000, timeoutMs: 60000 }, // 선택
26
+ receiptPolling: { intervalMs: 2000, timeoutMs: 60000 }, // optional
27
27
  });
28
28
 
29
29
  await sdk.init();
30
30
  const result = await sdk.signIn();
31
- console.log('지갑 주소:', sdk.getAddress());
31
+ console.log('Wallet address:', sdk.getAddress());
32
32
  ```
33
33
 
34
- > 백엔드 URL은 `.env`의 `VITE_*` 환경 변수로만 설정합니다.
35
- > `SDKConfig`에 URL 필드를 추가하거나 직접 전달하지 마세요.
34
+ > Backend URLs are configured via `VITE_*` environment variables in `.env`.
35
+ > Do not add URL fields to `SDKConfig` or pass them directly.
36
36
 
37
37
  ---
38
38
 
39
- ## API 레퍼런스
39
+ ## API Reference
40
40
 
41
- ### 초기화 & 인증
41
+ ### Initialization & Authentication
42
42
 
43
43
  ```ts
44
- // SDK 초기화 (자동 로그인 복구 포함)
44
+ // Initialize SDK (includes automatic session restoration)
45
45
  await sdk.init();
46
46
 
47
- // 로그인 (OAuth popup)
47
+ // Sign in (OAuth popup)
48
48
  const result = await sdk.signIn();
49
49
  const result = await sdk.signIn({ provider: 'google' });
50
50
 
51
- // 인증 상태 확인
51
+ // Check authentication status
52
52
  sdk.isAuthenticated(); // boolean
53
53
  sdk.getAddress(); // string | null
54
54
 
55
- // 로그아웃
55
+ // Sign out
56
56
  await sdk.signOut();
57
-
58
- // 계정 탈퇴
59
- await sdk.withdraw();
60
57
  ```
61
58
 
62
59
  ---
63
60
 
64
- ### 지갑
61
+ ### Wallet
65
62
 
66
63
  ```ts
67
- // 지갑 생성 (로그인 지갑이 없을 )
64
+ // Create wallet (when no wallet exists after sign-in)
68
65
  const { address } = await sdk.createWallet();
69
66
 
70
- // 네이티브 잔액 조회
67
+ // Get native balance
71
68
  const { wei, formatted } = await sdk.getBalance('eip155:612044');
72
69
  console.log(formatted); // "1.234567 CROSS"
73
70
 
74
- // 현재 nonce 조회
71
+ // Get current nonce
75
72
  const nonce = await sdk.getNonce('eip155:612044');
76
73
  ```
77
74
 
78
75
  ---
79
76
 
80
- ### 트랜잭션 컨펌 모달
77
+ ### Transaction Confirmation Modal
81
78
 
82
- `signTransaction()` / `sendTransaction()` / `sendTransactionAndWait()` 호출 SDK 자동으로 사용자 승인 모달을 표시합니다. DApp 개발자가 우회할 있는 공개 API 없습니다.
79
+ When calling `signTransaction()` / `sendTransaction()` / `sendTransactionAndWait()`, the SDK automatically displays a user approval modal. There is no public API for DApp developers to bypass this.
83
80
 
84
81
  ```ts
85
82
  import { CROSSxError, ErrorCode } from '@nexus-cross/crossx-sdk-core';
@@ -88,16 +85,16 @@ try {
88
85
  const result = await sdk.signTransaction(ChainId.CROSS_TESTNET, tx);
89
86
  } catch (error) {
90
87
  if (error instanceof CROSSxError && error.code === ErrorCode.USER_REJECTED) {
91
- console.log('사용자가 취소했습니다');
88
+ console.log('User cancelled the transaction');
92
89
  }
93
90
  }
94
91
  ```
95
92
 
96
- > 자세한 내용 → [트랜잭션 컨펌 모달 가이드](../../doc/transaction-confirmation.md)
93
+ > For more details → [Transaction Confirmation Modal Guide](../../doc/transaction-confirmation.md)
97
94
 
98
95
  ---
99
96
 
100
- ### 트랜잭션 서명 & 전송
97
+ ### Sign & Send Transactions
101
98
 
102
99
  ```ts
103
100
  const tx = {
@@ -112,29 +109,29 @@ const tx = {
112
109
  nonce: await sdk.getNonce('eip155:612044'),
113
110
  };
114
111
 
115
- // 서명만
112
+ // Sign only
116
113
  const { signedTx, txHash } = await sdk.signTransaction('eip155:612044', tx);
117
114
 
118
- // 전송 (status: 'pending' 즉시 반환)
115
+ // Send (returns immediately with status: 'pending')
119
116
  const { txHash } = await sdk.sendTransaction('eip155:612044', tx);
120
117
 
121
- // 전송 + Receipt 폴링 (블록 포함까지 대기)
118
+ // Send + Poll receipt (waits until included in block)
122
119
  const { txHash, receipt } = await sdk.sendTransactionAndWait('eip155:612044', tx);
123
120
  console.log(receipt.status); // '0x1' = success, '0x0' = reverted
124
121
  ```
125
122
 
126
123
  ---
127
124
 
128
- ### Receipt 조회 & 폴링
125
+ ### Receipt Query & Polling
129
126
 
130
127
  ```ts
131
- // 단일 조회 (채굴 전이면 null)
128
+ // Single query (returns null if not yet mined)
132
129
  const receipt = await sdk.getTransactionReceipt(txHash, 'eip155:612044');
133
130
 
134
- // 채굴될 때까지 폴링
131
+ // Poll until mined
135
132
  const receipt = await sdk.waitForTransaction(txHash, 'eip155:612044');
136
133
 
137
- // 폴링 옵션 오버라이드
134
+ // Override polling options
138
135
  const receipt = await sdk.waitForTransaction(txHash, 'eip155:612044', {
139
136
  intervalMs: 3000,
140
137
  timeoutMs: 120000,
@@ -145,7 +142,7 @@ const receipt = await sdk.waitForTransaction(txHash, 'eip155:612044', {
145
142
 
146
143
  ### EIP-1193 Provider
147
144
 
148
- ethers.js, viem, wagmi 등과 연동하기 위한 표준 Provider입니다.
145
+ Standard Provider for integration with ethers.js, viem, wagmi, and more.
149
146
 
150
147
  ```ts
151
148
  const provider = sdk.getProvider('eip155:612044');
@@ -163,12 +160,12 @@ const client = createWalletClient({ transport: custom(provider) });
163
160
 
164
161
  ---
165
162
 
166
- ### 범용 RPC 호출
163
+ ### Generic RPC Calls
167
164
 
168
- `/wallet/rpc` 엔드포인트를 통해 노드에 직접 JSON-RPC 요청을 보냅니다.
165
+ Sends JSON-RPC requests directly to the node via the `/wallet/rpc` endpoint.
169
166
 
170
167
  ```ts
171
- // 네이티브 잔액
168
+ // Native balance
172
169
  const balance = await sdk.rpcRequest('eth_getBalance', [address, 'latest'], 'eip155:612044');
173
170
 
174
171
  // eth_call — ERC-20 balanceOf
@@ -181,7 +178,7 @@ const raw = await sdk.rpcRequest(
181
178
  );
182
179
  console.log(BigInt(raw).toString());
183
180
 
184
- // Provider를 통한 동일 호출
181
+ // Same call via Provider
185
182
  const result = await provider.request({
186
183
  method: 'eth_call',
187
184
  params: [{ to: contractAddress, data: '0x' + selector + padded }, 'latest'],
@@ -190,65 +187,114 @@ const result = await provider.request({
190
187
 
191
188
  ---
192
189
 
190
+ ## Gateway API Access Control (Project Whitelist)
191
+
192
+ The Gateway API enforces whitelist verification so that only authorized projects can access it.
193
+ Only combinations of **project + origin (web) or app ID (native)** registered in the management console are allowed. Unregistered requests are blocked.
194
+
195
+ ### Required Headers
196
+
197
+ In addition to the existing `Authorization` header, the following headers must be included:
198
+
199
+ | Header | Description | Required |
200
+ |--------|------------|----------|
201
+ | `X-Project-Id` | Project ID issued from the management console | **Always required** |
202
+ | `Origin` | Request origin domain (automatically set by browser) | Required for web |
203
+ | `X-App-Id` | bundle ID or package name | Required for native apps |
204
+ | `X-App-Type` | `ios` / `android` / `windows` | Required when using `X-App-Id` |
205
+
206
+ ### Request Examples
207
+
208
+ **Web request** (browser automatically includes `Origin`):
209
+
210
+ ```
211
+ X-Project-Id: {project-id}
212
+ Authorization: Bearer {token}
213
+ ```
214
+
215
+ **Native app request**:
216
+
217
+ ```
218
+ X-Project-Id: {project-id}
219
+ X-App-Id: com.example.app
220
+ X-App-Type: android
221
+ Authorization: Bearer {token}
222
+ ```
223
+
224
+ ### Error Responses
225
+
226
+ | Code | Description |
227
+ |------|------------|
228
+ | `-10022` | Unregistered project or origin/app |
229
+ | `-10023` | Missing `X-Project-Id` header |
230
+ | `-10024` | Missing `Origin` or `X-App-Id` header |
231
+ | `-10025` | `X-App-Type` is not `android` / `ios` / `windows` |
232
+
233
+ > The SDK automatically includes `SDKConfig.projectId` in the `X-Project-Id` header.
234
+ > For web, the browser automatically sets the `Origin` header — no additional configuration needed.
235
+ > For native apps, set `SDKConfig.appId` and `SDKConfig.appType` and the SDK will include the appropriate headers automatically.
236
+
237
+ ---
238
+
193
239
  ## SDKConfig
194
240
 
195
241
  ```ts
196
242
  const sdk = createCROSSxSDK({
197
- /** OAuth 팝업 방식: 'popup' (기본) | 'modal' */
243
+ /** OAuth popup mode: 'popup' (default) | 'modal' */
198
244
  oauthDisplayMode: 'popup',
199
245
 
200
- /** Mock 지갑 사용 여부 (개발/테스트용) */
246
+ /** Enable mock wallet (for development/testing) */
201
247
  useMockWallet: false,
202
248
 
203
- /** 확인 모달 테마: 'light' (기본) | 'dark' */
249
+ /** Confirmation modal theme: 'light' (default) | 'dark' */
204
250
  theme: 'light',
205
251
 
206
252
  /**
207
- * 확인 모달 색상 커스터마이징 (light / dark 모드별 독립 오버라이드)
253
+ * Confirmation modal color customization (independent overrides per light/dark mode)
208
254
  */
209
255
  themeTokens: {
210
256
  light: {
211
- primary: '#FF6B35', // 버튼·강조색 (기본: #019D92)
212
- bg: '#F5F0EB', // 카드 배경색 (기본: #FFFFFF)
257
+ primary: '#FF6B35', // Button & accent color (default: #019D92)
258
+ bg: '#F5F0EB', // Card background color (default: #FFFFFF)
213
259
  },
214
260
  dark: {
215
261
  primary: '#FF6B35',
216
- bg: '#1A0A00', // 카드 배경색 (기본: #121212)
262
+ bg: '#1A0A00', // Card background color (default: #121212)
217
263
  },
218
264
  },
219
265
 
220
- /** Receipt 폴링 기본값 */
266
+ /** Receipt polling defaults */
221
267
  receiptPolling: {
222
- intervalMs: 2000, // 폴링 간격 (ms)
223
- timeoutMs: 60000, // 최대 대기 시간 (ms)
268
+ intervalMs: 2000, // Polling interval (ms)
269
+ timeoutMs: 60000, // Maximum wait time (ms)
224
270
  },
225
271
 
226
272
  /**
227
- * 디버그 로그 출력 여부 (기본: true)
228
- * ⚠️ 프로덕션 빌드에서는 값과 관계없이 항상 비활성화됩니다.
273
+ * Enable debug log output (default: true)
274
+ * ⚠️ Always disabled in production builds regardless of this value.
229
275
  */
230
276
  debug: true,
231
277
  });
232
278
  ```
233
279
 
234
- ### 확인 모달 테마
280
+ ### Confirmation Modal Theme
235
281
 
236
- | 방법 | 설명 |
282
+ | Method | Description |
237
283
  |---|---|
238
- | `config.theme` | 초기 테마 설정 (`'light'` 기본) |
239
- | `sdk.setTheme('dark')` | 런타임 테마 전환 (`themeTokens` 오버라이드 유지) |
240
- | `config.themeTokens.light.*` | 라이트 모드 Semantic 토큰 오버라이드 |
241
- | `config.themeTokens.dark.*` | 다크 모드 Semantic 토큰 오버라이드 |
284
+ | `config.theme` | Initial theme setting (`'light'` by default) |
285
+ | `sdk.setTheme('dark')` | Runtime theme switching (preserves `themeTokens` overrides) |
286
+ | `config.themeTokens.light.*` | Light mode semantic token overrides |
287
+ | `config.themeTokens.dark.*` | Dark mode semantic token overrides |
242
288
 
243
- 오버라이드 가능한 토큰: `primary` · `secondary` · `onPrimary` · `borderDefault` · `borderSubtle` · `textPrimary` · `textSecondary` · `textTertiary` · `surfaceDefault` · `bg`
289
+ Available override tokens: `primary` · `secondary` · `onPrimary` · `borderDefault` · `borderSubtle` · `textPrimary` · `textSecondary` · `textTertiary` · `surfaceDefault` · `bg`
244
290
 
245
- 자세한 내용은 [컨펌 모달 & Prepare 플로우](../../doc/transaction-confirmation.md#색상-커스터마이징-themetokens)를 참고하세요.
291
+ For details, see [Confirmation Modal & Prepare Flow](../../doc/transaction-confirmation.md#색상-커스터마이징-themetokens).
246
292
 
247
293
  ---
248
294
 
249
- ## 체인 ID 상수
295
+ ## Chain ID Constants
250
296
 
251
- 오타 방지를 위해 `ChainId` 상수를 사용하세요.
297
+ Use `ChainId` constants to prevent typos.
252
298
 
253
299
  ```ts
254
300
  import { ChainId } from '@nexus-cross/crossx-sdk-core';
@@ -259,28 +305,28 @@ await sdk.getBalance(ChainId.CROSS_MAINNET); // 'eip155:612055'
259
305
 
260
306
  ---
261
307
 
262
- ## 환경 변수
308
+ ## Environment Variables
263
309
 
264
- | 변수명 | 용도 | 필수 |
310
+ | Variable | Purpose | Required |
265
311
  |---|---|---|
266
312
  | `VITE_WALLET_GATEWAY_URL` | Wallet Gateway API URL | ✅ |
267
- | `VITE_OAUTH_SERVICE_URL` | OAuth 서비스 URL | ✅ |
268
- | `VITE_AUTH_API_URL` | 인증 API URL | ✅ |
313
+ | `VITE_OAUTH_SERVICE_URL` | OAuth Service URL | ✅ |
314
+ | `VITE_AUTH_API_URL` | Auth API URL | ✅ |
269
315
 
270
316
  ---
271
317
 
272
- ## 공개 타입
318
+ ## Public Types
273
319
 
274
320
  ```ts
275
321
  import type {
276
322
  SDKConfig,
277
- ConfirmationTokenOverride, // themeTokens 타입 (light/dark 모드별 오버라이드)
278
- ConfirmationThemeTokens, // 단일 모드 Semantic 토큰 타입
323
+ ConfirmationTokenOverride, // themeTokens type (per light/dark mode overrides)
324
+ ConfirmationThemeTokens, // Single mode semantic token type
279
325
  AuthResult,
280
326
  EvmTransactionRequest,
281
327
  TransactionResult,
282
- TransactionWithReceipt, // sendTransactionAndWait() 반환 타입
283
- TransactionReceipt, // waitForTransaction() 반환 타입
328
+ TransactionWithReceipt, // sendTransactionAndWait() return type
329
+ TransactionReceipt, // waitForTransaction() return type
284
330
  SignTransactionResult,
285
331
  ChainIdValue,
286
332
  } from '@nexus-cross/crossx-sdk-core';
@@ -288,15 +334,15 @@ import type {
288
334
 
289
335
  ---
290
336
 
291
- ## 관련 문서
337
+ ## Related Documentation
292
338
 
293
- - [트랜잭션 컨펌 모달](../../doc/transaction-confirmation.md)
294
- - [Ethereum Provider 가이드](../../doc/ethereum-provider.md)
295
- - [환경 변수 설정](../../doc/environment-variables.md)
296
- - [CAIP-2 체인 ID 가이드](../../doc/caip-integration.md)
297
- - [wagmi 통합 가이드](../../doc/wagmi-integration.md)
298
- - [아키텍처 설명](../../doc/architecture.md)
339
+ - [Transaction Confirmation Modal](../../doc/transaction-confirmation.md)
340
+ - [Ethereum Provider Guide](../../doc/ethereum-provider.md)
341
+ - [Environment Variables](../../doc/environment-variables.md)
342
+ - [CAIP-2 Chain ID Guide](../../doc/caip-integration.md)
343
+ - [wagmi Integration Guide](../../doc/wagmi-integration.md)
344
+ - [Architecture](../../doc/architecture.md)
299
345
 
300
- ## 라이센스
346
+ ## License
301
347
 
302
348
  MIT
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=IndexedDBStorageAdapter.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IndexedDBStorageAdapter.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/adapters/IndexedDBStorageAdapter.test.ts"],"names":[],"mappings":"AACA,OAAO,qBAAqB,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { ChainRegistryPort } from '../../core/ports/ChainRegistryPort';
2
+ import { ChainInfo } from '../../core/types/chain';
3
+
4
+ export declare const MOCK_CHAIN_INFO: ChainInfo;
5
+ export declare class MockChainRegistryPort implements ChainRegistryPort {
6
+ getChains: import('vitest').Mock<() => Promise<ChainInfo[]>>;
7
+ getChain: import('vitest').Mock<(_chainId: string) => Promise<ChainInfo>>;
8
+ }
9
+ //# sourceMappingURL=MockChainRegistryPort.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MockChainRegistryPort.d.ts","sourceRoot":"","sources":["../../../src/__tests__/mocks/MockChainRegistryPort.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD,eAAO,MAAM,eAAe,EAAE,SAG7B,CAAC;AAEF,qBAAa,qBAAsB,YAAW,iBAAiB;IAC7D,SAAS,8BAAmB,OAAO,CAAC,SAAS,EAAE,CAAC,EAAuB;IACvE,QAAQ,mCAA0B,MAAM,KAAG,OAAO,CAAC,SAAS,CAAC,EAAqB;CACnF"}
@@ -2,13 +2,18 @@ import { TransportPort, TransportRequest, TransportResponse } from '../../core/p
2
2
 
3
3
  /**
4
4
  * vi.fn() 기반 TransportPort mock.
5
- * request 메서드의 반환값을 테스트마다 mockResolvedValueOnce 로 제어하세요.
6
5
  *
7
- * @example
8
- * const transport = new MockTransportPort();
9
- * transport.request.mockResolvedValueOnce({ status: 200, data: { access_token: 'abc' }, headers: {} });
6
+ * RPC URL(testnet.crosstoken.io)로의 요청은 rpcResults 큐에서
7
+ * JSON-RPC 형식으로 응답합니다.
8
+ * 요청은 authResponse 또는 기본값을 반환합니다.
10
9
  */
11
10
  export declare class MockTransportPort implements TransportPort {
12
- request: import('vitest').Mock<(_req: TransportRequest) => Promise<TransportResponse>>;
11
+ private rpcResults;
12
+ private authResponse;
13
+ request: import('vitest').Mock<(req: TransportRequest) => Promise<TransportResponse>>;
14
+ /** RPC 호출의 result 값을 큐에 추가 (FIFO) */
15
+ pushRpcResult(result: any): void;
16
+ /** 인증 API 등 비RPC 요청의 기본 응답 설정 */
17
+ setAuthResponse(response: TransportResponse): void;
13
18
  }
14
19
  //# sourceMappingURL=MockTransportPort.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MockTransportPort.d.ts","sourceRoot":"","sources":["../../../src/__tests__/mocks/MockTransportPort.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE3F;;;;;;;GAOG;AACH,qBAAa,iBAAkB,YAAW,aAAa;IACrD,OAAO,+BAAsB,gBAAgB,KAAG,OAAO,CAAC,iBAAiB,CAAC,EAItE;CACL"}
1
+ {"version":3,"file":"MockTransportPort.d.ts","sourceRoot":"","sources":["../../../src/__tests__/mocks/MockTransportPort.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAI3F;;;;;;GAMG;AACH,qBAAa,iBAAkB,YAAW,aAAa;IACrD,OAAO,CAAC,UAAU,CAA0B;IAC5C,OAAO,CAAC,YAAY,CAA6D;IAEjF,OAAO,8BAAqB,gBAAgB,KAAG,OAAO,CAAC,iBAAiB,CAAC,EAYtE;IAEH,qCAAqC;IACrC,aAAa,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI;IAIhC,iCAAiC;IACjC,eAAe,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI;CAGnD"}
@@ -1,11 +1,10 @@
1
1
  import { WalletProviderPort, WalletData, SignResponse } from '../../core/ports';
2
- import { AddressInfo, TransactionReceipt } from '../../core/types/chain';
2
+ import { AddressInfo } from '../../core/types/chain';
3
3
 
4
4
  export declare const MOCK_ADDRESS = "0xaabbccdd00112233445566778899aabbccddeeff";
5
5
  export declare const MOCK_TX_HASH = "0xaa11bb22cc33dd44ee55ff6600112233445566778899aabbccddeeff00112233";
6
6
  declare const MOCK_WALLET_DATA: WalletData;
7
7
  declare const MOCK_SIGN_RESPONSE: SignResponse;
8
- declare const MOCK_RECEIPT: TransactionReceipt;
9
8
  /**
10
9
  * WalletProviderPort mock.
11
10
  * 모든 메서드가 vi.fn() 으로 spy 되어 있어 호출 여부/인수 검증이 가능합니다.
@@ -14,15 +13,11 @@ export declare class MockWalletProviderPort implements WalletProviderPort {
14
13
  getOrCreateWallet: import('vitest').Mock<(_userId: string) => Promise<WalletData>>;
15
14
  getAddress: import('vitest').Mock<(_userId: string, _index: number) => Promise<AddressInfo>>;
16
15
  signMessage: import('vitest').Mock<(_userId: string, _chainId: string, _message: string, _index?: number) => Promise<SignResponse>>;
16
+ signTypedData: import('vitest').Mock<(_userId: string, _chainId: string, _typedData: unknown, _index?: number) => Promise<SignResponse>>;
17
17
  signTransaction: import('vitest').Mock<(_userId: string, _chainId: string, _tx: any, _index?: number) => Promise<SignResponse>>;
18
18
  sendTransaction: import('vitest').Mock<(_userId: string, _chainId: string, _tx: any) => Promise<{
19
19
  txHash: string;
20
20
  }>>;
21
- getBalance: import('vitest').Mock<(_userId: string, _chainId: string) => Promise<string>>;
22
- getTransactionCount: import('vitest').Mock<(_userId: string, _chainId: string) => Promise<number>>;
23
- getTransactionReceipt: import('vitest').Mock<(_userId: string, _txHash: string) => Promise<TransactionReceipt | null>>;
24
- rpcRequest: import('vitest').Mock<(_method: string, _params: any[], _chainId: string) => Promise<any>>;
25
- withdraw: import('vitest').Mock<(_confirmation: string) => Promise<void>>;
26
21
  }
27
- export { MOCK_WALLET_DATA, MOCK_SIGN_RESPONSE, MOCK_RECEIPT };
22
+ export { MOCK_WALLET_DATA, MOCK_SIGN_RESPONSE };
28
23
  //# sourceMappingURL=MockWalletProviderPort.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MockWalletProviderPort.d.ts","sourceRoot":"","sources":["../../../src/__tests__/mocks/MockWalletProviderPort.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrF,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE9E,eAAO,MAAM,YAAY,+CAA+C,CAAC;AACzE,eAAO,MAAM,YAAY,uEAAuE,CAAC;AAEjG,QAAA,MAAM,gBAAgB,EAAE,UAKvB,CAAC;AAIF,QAAA,MAAM,kBAAkB,EAAE,YAKzB,CAAC;AAEF,QAAA,MAAM,YAAY,EAAE,kBAYnB,CAAC;AAEF;;;GAGG;AACH,qBAAa,sBAAuB,YAAW,kBAAkB;IAC/D,iBAAiB,kCAAyB,MAAM,KAAG,OAAO,CAAC,UAAU,CAAC,EAAsB;IAE5F,UAAU,kCAAyB,MAAM,UAAU,MAAM,KAAG,OAAO,CAAC,WAAW,CAAC,EAG5E;IAEJ,WAAW,kCACO,MAAM,YAAY,MAAM,YAAY,MAAM,WAAW,MAAM,KAAG,OAAO,CAAC,YAAY,CAAC,EAEnG;IAEF,eAAe,kCACG,MAAM,YAAY,MAAM,OAAO,GAAG,WAAW,MAAM,KAAG,OAAO,CAAC,YAAY,CAAC,EAE3F;IAEF,eAAe,kCACG,MAAM,YAAY,MAAM,OAAO,GAAG,KAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,EAEhF;IAEF,UAAU,kCAAyB,MAAM,YAAY,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,EAAuB;IAEpG,mBAAmB,kCAAyB,MAAM,YAAY,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,EAAO;IAE7F,qBAAqB,kCACH,MAAM,WAAW,MAAM,KAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,EAE5E;IAEF,UAAU,kCAAyB,MAAM,WAAW,GAAG,EAAE,YAAY,MAAM,KAAG,OAAO,CAAC,GAAG,CAAC,EAAU;IAEpG,QAAQ,wCAA+B,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC,EAAQ;CACtE;AAED,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"MockWalletProviderPort.d.ts","sourceRoot":"","sources":["../../../src/__tests__/mocks/MockWalletProviderPort.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE1D,eAAO,MAAM,YAAY,+CAA+C,CAAC;AACzE,eAAO,MAAM,YAAY,uEAAuE,CAAC;AAEjG,QAAA,MAAM,gBAAgB,EAAE,UAKvB,CAAC;AAIF,QAAA,MAAM,kBAAkB,EAAE,YAKzB,CAAC;AAEF;;;GAGG;AACH,qBAAa,sBAAuB,YAAW,kBAAkB;IAC/D,iBAAiB,kCAAyB,MAAM,KAAG,OAAO,CAAC,UAAU,CAAC,EAAsB;IAE5F,UAAU,kCAAyB,MAAM,UAAU,MAAM,KAAG,OAAO,CAAC,WAAW,CAAC,EAG5E;IAEJ,WAAW,kCACO,MAAM,YAAY,MAAM,YAAY,MAAM,WAAW,MAAM,KAAG,OAAO,CAAC,YAAY,CAAC,EAEnG;IAEF,aAAa,kCACK,MAAM,YAAY,MAAM,cAAc,OAAO,WAAW,MAAM,KAAG,OAAO,CAAC,YAAY,CAAC,EAEtG;IAEF,eAAe,kCACG,MAAM,YAAY,MAAM,OAAO,GAAG,WAAW,MAAM,KAAG,OAAO,CAAC,YAAY,CAAC,EAE3F;IAEF,eAAe,kCACG,MAAM,YAAY,MAAM,OAAO,GAAG,KAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,EAEhF;CACH;AAED,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { ChainRegistryPort } from '../../core/ports/ChainRegistryPort';
2
+ import { TransportPort } from '../../core/ports/TransportPort';
3
+ import { ChainInfo } from '../../core/types/chain';
4
+
5
+ export interface ChainRegistryAdapterConfig {
6
+ gatewayUrl: string;
7
+ projectId: string;
8
+ }
9
+ export declare class RemoteChainRegistryAdapter implements ChainRegistryPort {
10
+ private readonly baseUrl;
11
+ private readonly projectId;
12
+ private readonly transport;
13
+ private cache;
14
+ private loadedAt;
15
+ private usingFallback;
16
+ constructor(config: ChainRegistryAdapterConfig, transport: TransportPort);
17
+ getChains(): Promise<ChainInfo[]>;
18
+ getChain(chainId: string): Promise<ChainInfo>;
19
+ /** 캐시를 무효화하여 다음 호출 시 Gateway에서 재조회합니다. */
20
+ invalidateCache(): void;
21
+ private isCacheValid;
22
+ private populateCache;
23
+ private request;
24
+ private handleEnvelopeError;
25
+ private fallbackOrThrow;
26
+ private static fallbackChains;
27
+ private static mapErrorCode;
28
+ }
29
+ //# sourceMappingURL=RemoteChainRegistryAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RemoteChainRegistryAdapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/chain/RemoteChainRegistryAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAKxD,MAAM,WAAW,0BAA0B;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAYD,qBAAa,0BAA2B,YAAW,iBAAiB;IAClE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgB;IAE1C,OAAO,CAAC,KAAK,CAAgC;IAC7C,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,aAAa,CAAS;gBAElB,MAAM,EAAE,0BAA0B,EAAE,SAAS,EAAE,aAAa;IAMlE,SAAS,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAuBjC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAQnD,0CAA0C;IAC1C,eAAe,IAAI,IAAI;IAMvB,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,aAAa;YASP,OAAO;IAWrB,OAAO,CAAC,mBAAmB;IAc3B,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,MAAM,CAAC,cAAc;IAO7B,OAAO,CAAC,MAAM,CAAC,YAAY;CAkB5B"}
@@ -1,4 +1,4 @@
1
- import { ConfirmationPort, ConfirmationDetails, TransactionCompleteDetails } from '../../core/ports/ConfirmationPort';
1
+ import { ConfirmationPort, ConfirmationDetails, TransactionCompleteDetails, TransactionPendingDetails } from '../../core/ports/ConfirmationPort';
2
2
  import { SDKThemeTokens } from '../../core/types';
3
3
 
4
4
  export type ConfirmationTheme = 'light' | 'dark';
@@ -31,6 +31,11 @@ export declare class BrowserConfirmationAdapter implements ConfirmationPort {
31
31
  * "Done" 버튼 클릭, 닫기 버튼 클릭, 배경 클릭, Escape 키로 닫힙니다.
32
32
  */
33
33
  showTransactionComplete(details: TransactionCompleteDetails): Promise<void>;
34
+ /**
35
+ * 트랜잭션 전송 직후 "대기 중" 모달을 표시하고,
36
+ * receiptPromise가 resolve되면 결과(성공/실패/타임아웃)로 전환합니다.
37
+ */
38
+ showTransactionProgress(pending: TransactionPendingDetails, receiptPromise: Promise<TransactionCompleteDetails>): Promise<void>;
34
39
  requestConfirmation(details: ConfirmationDetails): Promise<boolean>;
35
40
  }
36
41
  //# sourceMappingURL=BrowserConfirmationAdapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BrowserConfirmationAdapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/confirmation/BrowserConfirmationAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,mBAAmB,EAEnB,0BAA0B,EAG3B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,MAAM,CAAC;AAk/CjD,qBAAa,0BAA2B,YAAW,gBAAgB;IACjE,OAAO,CAAC,KAAK,CAAoB;IACjC,OAAO,CAAC,SAAS,CAA6B;IAC9C,OAAO,CAAC,MAAM,CAAc;gBAEhB,KAAK,GAAE,iBAA2B,EAAE,SAAS,CAAC,EAAE,cAAc;IAM1E,QAAQ,CAAC,KAAK,EAAE,iBAAiB,EAAE,SAAS,CAAC,EAAE,cAAc,GAAG,IAAI;IAMpE,QAAQ,IAAI,iBAAiB;IAI7B;;;;OAIG;IACH,iBAAiB,IAAI,OAAO,CAAC,QAAQ,GAAG,OAAO,GAAG,IAAI,CAAC;IA+BvD;;;OAGG;IACH,wBAAwB,IAAI,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC;IA0BvD;;;;OAIG;IACH,kBAAkB,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAiBjE;;;OAGG;IACH,uBAAuB,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,IAAI,CAAC;IAiC3E,mBAAmB,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC;CA2CpE"}
1
+ {"version":3,"file":"BrowserConfirmationAdapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/confirmation/BrowserConfirmationAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,mBAAmB,EAEnB,0BAA0B,EAC1B,yBAAyB,EAG1B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,MAAM,CAAC;AA8sDjD,qBAAa,0BAA2B,YAAW,gBAAgB;IACjE,OAAO,CAAC,KAAK,CAAoB;IACjC,OAAO,CAAC,SAAS,CAA6B;IAC9C,OAAO,CAAC,MAAM,CAAc;gBAEhB,KAAK,GAAE,iBAA2B,EAAE,SAAS,CAAC,EAAE,cAAc;IAM1E,QAAQ,CAAC,KAAK,EAAE,iBAAiB,EAAE,SAAS,CAAC,EAAE,cAAc,GAAG,IAAI;IAMpE,QAAQ,IAAI,iBAAiB;IAI7B;;;;OAIG;IACH,iBAAiB,IAAI,OAAO,CAAC,QAAQ,GAAG,OAAO,GAAG,IAAI,CAAC;IA8BvD;;;OAGG;IACH,wBAAwB,IAAI,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC;IA0BvD;;;;OAIG;IACH,kBAAkB,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAiBjE;;;OAGG;IACH,uBAAuB,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,IAAI,CAAC;IAiC3E;;;OAGG;IACH,uBAAuB,CACrB,OAAO,EAAE,yBAAyB,EAClC,cAAc,EAAE,OAAO,CAAC,0BAA0B,CAAC,GAClD,OAAO,CAAC,IAAI,CAAC;IAqChB,mBAAmB,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC;CA2CpE"}
@@ -1 +1 @@
1
- {"version":3,"file":"BrowserOAuthAdapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/oauth/BrowserOAuthAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/D,qBAAa,mBAAoB,YAAW,SAAS;IACnD,OAAO,CAAC,MAAM,CAAC,aAAa;IAM5B,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;CAkF/C"}
1
+ {"version":3,"file":"BrowserOAuthAdapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/oauth/BrowserOAuthAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/D,qBAAa,mBAAoB,YAAW,SAAS;IACnD,OAAO,CAAC,MAAM,CAAC,aAAa;IAM5B,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;CA8G/C"}
@@ -0,0 +1,25 @@
1
+ import { StoragePort } from '../../core/ports';
2
+
3
+ export declare class IndexedDBStorageAdapter implements StoragePort {
4
+ private db;
5
+ private cryptoKey;
6
+ private initPromise;
7
+ private ensureReady;
8
+ private openDB;
9
+ private idbGet;
10
+ private idbPut;
11
+ private idbDelete;
12
+ private idbClear;
13
+ private init;
14
+ private encrypt;
15
+ private decrypt;
16
+ set<T>(key: string, value: T): Promise<void>;
17
+ get<T>(key: string): Promise<T | null>;
18
+ remove(key: string): Promise<void>;
19
+ clear(): Promise<void>;
20
+ /**
21
+ * IndexedDB + Web Crypto 사용 가능 여부 확인
22
+ */
23
+ static isAvailable(): boolean;
24
+ }
25
+ //# sourceMappingURL=IndexedDBStorageAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IndexedDBStorageAdapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/storage/IndexedDBStorageAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAepD,qBAAa,uBAAwB,YAAW,WAAW;IACzD,OAAO,CAAC,EAAE,CAA4B;IACtC,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,WAAW,CAA8B;YAEnC,WAAW;IAQzB,OAAO,CAAC,MAAM;IAiBd,OAAO,CAAC,MAAM;IASd,OAAO,CAAC,MAAM;IASd,OAAO,CAAC,SAAS;IASjB,OAAO,CAAC,QAAQ;YASF,IAAI;YAiBJ,OAAO;YAYP,OAAO;IAUf,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAY5C,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAatC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUlC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAU5B;;OAEG;IACH,MAAM,CAAC,WAAW,IAAI,OAAO;CAK9B"}
@@ -1 +1 @@
1
- {"version":3,"file":"FetchTransportAdapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/transport/FetchTransportAdapter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAI3F,qBAAa,qBAAsB,YAAW,aAAa;IACnD,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;CA0BjF"}
1
+ {"version":3,"file":"FetchTransportAdapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/transport/FetchTransportAdapter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAI3F,qBAAa,qBAAsB,YAAW,aAAa;IACnD,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;CAiCjF"}
@@ -1,6 +1,6 @@
1
1
  import { WalletProviderPort, WalletData, SignResponse } from '../../core/ports/WalletProviderPort';
2
- import { TransactionReceipt, AddressInfo, EvmTransactionRequest } from '../../core/types/chain';
3
2
  import { StoragePort } from '../../core/ports';
3
+ import { AddressInfo, EvmTransactionRequest } from '../../core/types/chain';
4
4
  import { PrepareAction, PrepareContext, PrepareResult } from '../../core/types/prepare';
5
5
 
6
6
  export declare class MockWalletProviderAdapter implements WalletProviderPort {
@@ -8,10 +8,6 @@ export declare class MockWalletProviderAdapter implements WalletProviderPort {
8
8
  constructor(storage: StoragePort);
9
9
  getOrCreateWallet(userId: string): Promise<WalletData>;
10
10
  getAddress(userId: string, index: number): Promise<AddressInfo>;
11
- getBalance(_address: string, _chainId: string): Promise<string>;
12
- getTransactionCount(_address: string, _chainId: string): Promise<number>;
13
- getTransactionReceipt(_txHash: string, _chainId: string): Promise<TransactionReceipt | null>;
14
- rpcRequest(method: string, _params: any[], _chainId: string): Promise<any>;
15
11
  prepare(action: PrepareAction, _context: PrepareContext): Promise<PrepareResult>;
16
12
  signMessage(userId: string, chainId: string, message: string, index?: number, uuid?: string, from?: string): Promise<SignResponse>;
17
13
  signTypedData(userId: string, chainId: string, typedData: unknown, index?: number, uuid?: string, from?: string): Promise<SignResponse>;
@@ -19,7 +15,6 @@ export declare class MockWalletProviderAdapter implements WalletProviderPort {
19
15
  sendTransaction(userId: string, chainId: string, tx: EvmTransactionRequest, uuid?: string): Promise<{
20
16
  txHash: string;
21
17
  }>;
22
- withdraw(confirmation: string): Promise<void>;
23
18
  recoverWallet(userId: string, shareC: string): Promise<WalletData>;
24
19
  migrateWallet(pin: string, sub: string): Promise<WalletData>;
25
20
  private generateMockEvmAddress;