toss-expo-sdk 0.1.2 → 1.0.1

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 (73) hide show
  1. package/README.md +368 -15
  2. package/lib/module/ble.js +59 -4
  3. package/lib/module/ble.js.map +1 -1
  4. package/lib/module/client/BLETransactionHandler.js +277 -0
  5. package/lib/module/client/BLETransactionHandler.js.map +1 -0
  6. package/lib/module/client/NonceAccountManager.js +364 -0
  7. package/lib/module/client/NonceAccountManager.js.map +1 -0
  8. package/lib/module/client/TossClient.js +1 -1
  9. package/lib/module/client/TossClient.js.map +1 -1
  10. package/lib/module/hooks/useOfflineBLETransactions.js +314 -0
  11. package/lib/module/hooks/useOfflineBLETransactions.js.map +1 -0
  12. package/lib/module/index.js +12 -8
  13. package/lib/module/index.js.map +1 -1
  14. package/lib/module/intent.js +129 -0
  15. package/lib/module/intent.js.map +1 -1
  16. package/lib/module/noise.js +175 -0
  17. package/lib/module/noise.js.map +1 -1
  18. package/lib/module/reconciliation.js +155 -0
  19. package/lib/module/reconciliation.js.map +1 -1
  20. package/lib/module/services/authService.js +164 -1
  21. package/lib/module/services/authService.js.map +1 -1
  22. package/lib/module/storage/secureStorage.js +102 -0
  23. package/lib/module/storage/secureStorage.js.map +1 -1
  24. package/lib/module/sync.js +25 -1
  25. package/lib/module/sync.js.map +1 -1
  26. package/lib/module/types/nonceAccount.js +2 -0
  27. package/lib/module/types/nonceAccount.js.map +1 -0
  28. package/lib/module/types/tossUser.js +16 -1
  29. package/lib/module/types/tossUser.js.map +1 -1
  30. package/lib/typescript/src/__tests__/solana-program-simple.test.d.ts +8 -0
  31. package/lib/typescript/src/__tests__/solana-program-simple.test.d.ts.map +1 -0
  32. package/lib/typescript/src/ble.d.ts +31 -2
  33. package/lib/typescript/src/ble.d.ts.map +1 -1
  34. package/lib/typescript/src/client/BLETransactionHandler.d.ts +98 -0
  35. package/lib/typescript/src/client/BLETransactionHandler.d.ts.map +1 -0
  36. package/lib/typescript/src/client/NonceAccountManager.d.ts +82 -0
  37. package/lib/typescript/src/client/NonceAccountManager.d.ts.map +1 -0
  38. package/lib/typescript/src/hooks/useOfflineBLETransactions.d.ts +91 -0
  39. package/lib/typescript/src/hooks/useOfflineBLETransactions.d.ts.map +1 -0
  40. package/lib/typescript/src/index.d.ts +9 -4
  41. package/lib/typescript/src/index.d.ts.map +1 -1
  42. package/lib/typescript/src/intent.d.ts +15 -0
  43. package/lib/typescript/src/intent.d.ts.map +1 -1
  44. package/lib/typescript/src/noise.d.ts +62 -0
  45. package/lib/typescript/src/noise.d.ts.map +1 -1
  46. package/lib/typescript/src/reconciliation.d.ts +6 -0
  47. package/lib/typescript/src/reconciliation.d.ts.map +1 -1
  48. package/lib/typescript/src/services/authService.d.ts +26 -1
  49. package/lib/typescript/src/services/authService.d.ts.map +1 -1
  50. package/lib/typescript/src/storage/secureStorage.d.ts +16 -0
  51. package/lib/typescript/src/storage/secureStorage.d.ts.map +1 -1
  52. package/lib/typescript/src/sync.d.ts +6 -1
  53. package/lib/typescript/src/sync.d.ts.map +1 -1
  54. package/lib/typescript/src/types/nonceAccount.d.ts +59 -0
  55. package/lib/typescript/src/types/nonceAccount.d.ts.map +1 -0
  56. package/lib/typescript/src/types/tossUser.d.ts +16 -0
  57. package/lib/typescript/src/types/tossUser.d.ts.map +1 -1
  58. package/package.json +1 -1
  59. package/src/__tests__/solana-program-simple.test.ts +256 -0
  60. package/src/ble.ts +105 -4
  61. package/src/client/BLETransactionHandler.ts +364 -0
  62. package/src/client/NonceAccountManager.ts +444 -0
  63. package/src/client/TossClient.ts +1 -1
  64. package/src/hooks/useOfflineBLETransactions.ts +438 -0
  65. package/src/index.tsx +40 -6
  66. package/src/intent.ts +166 -0
  67. package/src/noise.ts +238 -0
  68. package/src/reconciliation.ts +184 -0
  69. package/src/services/authService.ts +188 -1
  70. package/src/storage/secureStorage.ts +138 -0
  71. package/src/sync.ts +40 -0
  72. package/src/types/nonceAccount.ts +75 -0
  73. package/src/types/tossUser.ts +35 -2
@@ -1 +1 @@
1
- {"version":3,"names":["Connection","PublicKey","createIntent","secureStoreIntent","getSecureIntent","getAllSecureIntents","processIntentsForSync","TossError","NetworkError","StorageError","ERROR_CODES","createNonceAccount","getNonce","syncToChain","checkSyncStatus","detectConflicts","getReconciliationState","DEFAULT_RETRY_OPTIONS","maxRetries","retryDelay","TossClient","createClient","config","constructor","projectId","mode","privateTransactions","provider","sync","syncBackupDb","rpcUrl","getDefaultRpcUrl","feePayer","connection","network","urls","devnet","withRetry","fn","context","lastError","attempt","error","delay","Math","pow","Promise","resolve","setTimeout","message","cause","initializeNonceAccount","amount","Error","nonceAccount","nonceAuth","undefined","publicKey","toBase58","getCurrentNonce","sender","recipient","options","NETWORK_ERROR","SIGNATURE_VERIFICATION_FAILED","senderKeypair","recipientPubkey","feePayerPubkey","useDurableNonce","getLatestBlockhash","intent","TRANSACTION_FAILED","getIntents","updateIntentStatus","intentId","status","updatedAt","Date","now","updatedIntent","err","intents","dbUrl","processedIntents","all","map","fullSync","detectIntentConflicts","getReconciliationStatus","createUserIntent","memo","getCurrentUserAddress","isWalletUnlocked","lockWallet","signOut"],"sourceRoot":"../../../src","sources":["client/TossClient.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Connection","PublicKey","createIntent","secureStoreIntent","getSecureIntent","getAllSecureIntents","processIntentsForSync","TossError","NetworkError","StorageError","ERROR_CODES","createNonceAccount","getNonce","syncToChain","checkSyncStatus","detectConflicts","getReconciliationState","DEFAULT_RETRY_OPTIONS","maxRetries","retryDelay","TossClient","createClient","config","constructor","projectId","mode","privateTransactions","provider","sync","syncBackupDb","rpcUrl","getDefaultRpcUrl","feePayer","connection","network","urls","devnet","withRetry","fn","context","lastError","attempt","error","delay","Math","pow","Promise","resolve","setTimeout","message","cause","initializeNonceAccount","amount","Error","nonceAccount","nonceAuth","undefined","publicKey","toBase58","getCurrentNonce","sender","recipient","options","NETWORK_ERROR","SIGNATURE_VERIFICATION_FAILED","senderKeypair","recipientPubkey","feePayerPubkey","useDurableNonce","getLatestBlockhash","intent","TRANSACTION_FAILED","getIntents","updateIntentStatus","intentId","status","updatedAt","Date","now","updatedIntent","err","intents","dbUrl","processedIntents","all","map","fullSync","detectIntentConflicts","getReconciliationStatus","createUserIntent","memo","getCurrentUserAddress","isWalletUnlocked","lockWallet","signOut"],"sourceRoot":"../../../src","sources":["client/TossClient.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,314 @@
1
+ "use strict";
2
+
3
+ import { useCallback, useEffect, useRef, useState } from 'react';
4
+ import { BLETransactionHandler } from "../client/BLETransactionHandler.js";
5
+ import { NonceAccountManager } from "../client/NonceAccountManager.js";
6
+ import { AuthService } from "../services/authService.js";
7
+
8
+ /**
9
+ * State for BLE transaction transmission
10
+ */
11
+
12
+ /**
13
+ * State for offline transaction preparation
14
+ */
15
+
16
+ /**
17
+ * useOfflineTransaction Hook
18
+ * Manages offline transaction creation with nonce accounts
19
+ * Handles biometric protection and secure storage
20
+ */
21
+ export function useOfflineTransaction(user, connection) {
22
+ const [state, setState] = useState({
23
+ isPreparing: false,
24
+ isReady: false
25
+ });
26
+ const nonceManagerRef = useRef(null);
27
+
28
+ // Initialize nonce manager
29
+ useEffect(() => {
30
+ nonceManagerRef.current = new NonceAccountManager(connection);
31
+
32
+ // Cleanup expired cache periodically
33
+ const interval = setInterval(() => {
34
+ nonceManagerRef.current?.cleanupExpiredCache();
35
+ }, 5 * 60 * 1000); // Every 5 minutes
36
+
37
+ return () => clearInterval(interval);
38
+ }, [connection]);
39
+
40
+ /**
41
+ * Create offline transaction with nonce account
42
+ * Requires biometric verification if enabled
43
+ */
44
+ const createOfflineTransaction = useCallback(async (instructions, metadata) => {
45
+ if (!user.nonceAccount) {
46
+ setState(prev => ({
47
+ ...prev,
48
+ error: 'User does not have nonce account configured'
49
+ }));
50
+ return null;
51
+ }
52
+ setState(prev => ({
53
+ ...prev,
54
+ isPreparing: true,
55
+ error: undefined
56
+ }));
57
+ try {
58
+ // Verify nonce account access (requires biometric if enabled)
59
+ if (user.security.nonceAccountRequiresBiometric) {
60
+ const hasAccess = await AuthService.verifyNonceAccountAccess(user.userId);
61
+ if (!hasAccess) {
62
+ throw new Error('Biometric verification failed');
63
+ }
64
+ }
65
+
66
+ // Get cached nonce account or retrieve from storage
67
+ const nonceManager = nonceManagerRef.current;
68
+ let nonceAccountData = nonceManager.getCachedNonceAccount(user.userId);
69
+ let nonceAccountInfo = null;
70
+ if (nonceAccountData) {
71
+ nonceAccountInfo = nonceAccountData;
72
+ } else {
73
+ const retrievedInfo = await nonceManager.getNonceAccountSecure(user.userId);
74
+ if (retrievedInfo) {
75
+ nonceAccountInfo = nonceManager.getCachedNonceAccount(user.userId);
76
+ }
77
+ }
78
+ if (!nonceAccountInfo) {
79
+ throw new Error('Failed to retrieve nonce account information');
80
+ }
81
+
82
+ // Validate nonce account
83
+ if (!nonceManager.isNonceAccountValid(nonceAccountInfo.accountInfo)) {
84
+ throw new Error('Nonce account is no longer valid');
85
+ }
86
+
87
+ // Prepare offline transaction
88
+ const transaction = await nonceManager.prepareOfflineTransaction(user, instructions, nonceAccountInfo.accountInfo);
89
+ transaction.metadata = metadata || {};
90
+ setState(prev => ({
91
+ ...prev,
92
+ transaction,
93
+ isReady: true,
94
+ isPreparing: false
95
+ }));
96
+ return transaction;
97
+ } catch (error) {
98
+ const errorMessage = error instanceof Error ? error.message : String(error);
99
+ setState(prev => ({
100
+ ...prev,
101
+ error: errorMessage,
102
+ isPreparing: false,
103
+ isReady: false
104
+ }));
105
+ return null;
106
+ }
107
+ }, [user]);
108
+
109
+ /**
110
+ * Clear current offline transaction
111
+ */
112
+ const clearTransaction = useCallback(() => {
113
+ setState({
114
+ isPreparing: false,
115
+ isReady: false
116
+ });
117
+ }, []);
118
+ return {
119
+ ...state,
120
+ createOfflineTransaction,
121
+ clearTransaction,
122
+ nonceManager: nonceManagerRef.current
123
+ };
124
+ }
125
+
126
+ /**
127
+ * useBLETransactionTransmission Hook
128
+ * Handles secure BLE transmission of fragmented transactions
129
+ * with Noise Protocol encryption
130
+ */
131
+ export function useBLETransactionTransmission(platform = 'android') {
132
+ const [state, setState] = useState({
133
+ isTransmitting: false,
134
+ progress: {
135
+ sentFragments: 0,
136
+ totalFragments: 0
137
+ }
138
+ });
139
+ const bleHandlerRef = useRef(new BLETransactionHandler(platform));
140
+
141
+ /**
142
+ * Send transaction over BLE with fragmentation
143
+ */
144
+ const sendTransactionBLE = useCallback(async (device, transaction, sendFn, noiseEncryptFn, isIntent = false) => {
145
+ setState(prev => ({
146
+ ...prev,
147
+ isTransmitting: true,
148
+ error: undefined
149
+ }));
150
+ try {
151
+ const bleHandler = bleHandlerRef.current;
152
+ const result = await bleHandler.sendFragmentedTransactionBLE(device, transaction, sendFn, noiseEncryptFn, isIntent);
153
+ if (!result.success) {
154
+ const failedCount = result.failedFragments.length;
155
+ throw new Error(`Failed to send ${failedCount} fragment(s): ${result.failedFragments.join(', ')}`);
156
+ }
157
+ setState(prev => ({
158
+ ...prev,
159
+ isTransmitting: false,
160
+ progress: {
161
+ sentFragments: result.sentFragments,
162
+ totalFragments: result.sentFragments + result.failedFragments.length,
163
+ messageId: result.messageId
164
+ },
165
+ lastSent: {
166
+ messageId: result.messageId,
167
+ timestamp: Date.now()
168
+ }
169
+ }));
170
+ return true;
171
+ } catch (error) {
172
+ const errorMessage = error instanceof Error ? error.message : String(error);
173
+ setState(prev => ({
174
+ ...prev,
175
+ isTransmitting: false,
176
+ error: errorMessage
177
+ }));
178
+ return false;
179
+ }
180
+ }, []);
181
+
182
+ /**
183
+ * Receive fragmented transaction
184
+ */
185
+ const receiveTransactionFragment = useCallback(async (fragment, noiseDecryptFn) => {
186
+ try {
187
+ const bleHandler = bleHandlerRef.current;
188
+ const result = await bleHandler.receiveFragmentedMessage(fragment, noiseDecryptFn);
189
+ setState(prev => ({
190
+ ...prev,
191
+ progress: {
192
+ sentFragments: result.progress.received,
193
+ totalFragments: result.progress.total,
194
+ messageId: fragment.messageId
195
+ }
196
+ }));
197
+ return result;
198
+ } catch (error) {
199
+ const errorMessage = error instanceof Error ? error.message : String(error);
200
+ setState(prev => ({
201
+ ...prev,
202
+ error: errorMessage
203
+ }));
204
+ return {
205
+ complete: false,
206
+ progress: {
207
+ received: 0,
208
+ total: 0
209
+ }
210
+ };
211
+ }
212
+ }, []);
213
+ const getMTUConfig = useCallback(() => {
214
+ return bleHandlerRef.current.getMTUConfig();
215
+ }, []);
216
+ const setMTUConfig = useCallback(config => {
217
+ bleHandlerRef.current.setMTUConfig(config);
218
+ }, []);
219
+ return {
220
+ ...state,
221
+ sendTransactionBLE,
222
+ receiveTransactionFragment,
223
+ getMTUConfig,
224
+ setMTUConfig
225
+ };
226
+ }
227
+
228
+ /**
229
+ * useNonceAccountManagement Hook
230
+ * Manages nonce account lifecycle: creation, renewal, revocation
231
+ */
232
+ export function useNonceAccountManagement(user, connection) {
233
+ const [isLoading, setIsLoading] = useState(false);
234
+ const [error, setError] = useState();
235
+ const nonceManagerRef = useRef(new NonceAccountManager(connection));
236
+
237
+ /**
238
+ * Create nonce account with biometric protection
239
+ */
240
+ const createNonceAccount = useCallback(async userKeypair => {
241
+ setIsLoading(true);
242
+ setError(undefined);
243
+ try {
244
+ const updatedUser = await AuthService.createSecureNonceAccount(user, connection, userKeypair);
245
+ return updatedUser;
246
+ } catch (err) {
247
+ const errorMessage = err instanceof Error ? err.message : String(err);
248
+ setError(errorMessage);
249
+ return null;
250
+ } finally {
251
+ setIsLoading(false);
252
+ }
253
+ }, [user, connection]);
254
+
255
+ /**
256
+ * Renew nonce account (refresh from blockchain)
257
+ */
258
+ const renewNonceAccount = useCallback(async () => {
259
+ if (!user.nonceAccount) {
260
+ setError('No nonce account to renew');
261
+ return null;
262
+ }
263
+ setIsLoading(true);
264
+ setError(undefined);
265
+ try {
266
+ const updated = await nonceManagerRef.current.renewNonceAccount(user.userId, user.nonceAccount.address);
267
+ return updated;
268
+ } catch (err) {
269
+ const errorMessage = err instanceof Error ? err.message : String(err);
270
+ setError(errorMessage);
271
+ return null;
272
+ } finally {
273
+ setIsLoading(false);
274
+ }
275
+ }, [user.userId, user.nonceAccount]);
276
+
277
+ /**
278
+ * Revoke nonce account
279
+ */
280
+ const revokeNonceAccount = useCallback(async () => {
281
+ setIsLoading(true);
282
+ setError(undefined);
283
+ try {
284
+ const updatedUser = await AuthService.revokeNonceAccount(user.userId, user);
285
+ return updatedUser;
286
+ } catch (err) {
287
+ const errorMessage = err instanceof Error ? err.message : String(err);
288
+ setError(errorMessage);
289
+ return null;
290
+ } finally {
291
+ setIsLoading(false);
292
+ }
293
+ }, [user]);
294
+ const isNonceAccountValid = useCallback(() => {
295
+ if (!user.nonceAccount) {
296
+ return false;
297
+ }
298
+ const cached = nonceManagerRef.current.getCachedNonceAccount(user.userId);
299
+ if (cached) {
300
+ return nonceManagerRef.current.isNonceAccountValid(cached.accountInfo);
301
+ }
302
+ return user.nonceAccount.status === 'active';
303
+ }, [user.userId, user.nonceAccount]);
304
+ return {
305
+ isLoading,
306
+ error,
307
+ createNonceAccount,
308
+ renewNonceAccount,
309
+ revokeNonceAccount,
310
+ isNonceAccountValid,
311
+ hasNonceAccount: !!user.nonceAccount
312
+ };
313
+ }
314
+ //# sourceMappingURL=useOfflineBLETransactions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useCallback","useEffect","useRef","useState","BLETransactionHandler","NonceAccountManager","AuthService","useOfflineTransaction","user","connection","state","setState","isPreparing","isReady","nonceManagerRef","current","interval","setInterval","cleanupExpiredCache","clearInterval","createOfflineTransaction","instructions","metadata","nonceAccount","prev","error","undefined","security","nonceAccountRequiresBiometric","hasAccess","verifyNonceAccountAccess","userId","Error","nonceManager","nonceAccountData","getCachedNonceAccount","nonceAccountInfo","retrievedInfo","getNonceAccountSecure","isNonceAccountValid","accountInfo","transaction","prepareOfflineTransaction","errorMessage","message","String","clearTransaction","useBLETransactionTransmission","platform","isTransmitting","progress","sentFragments","totalFragments","bleHandlerRef","sendTransactionBLE","device","sendFn","noiseEncryptFn","isIntent","bleHandler","result","sendFragmentedTransactionBLE","success","failedCount","failedFragments","length","join","messageId","lastSent","timestamp","Date","now","receiveTransactionFragment","fragment","noiseDecryptFn","receiveFragmentedMessage","received","total","complete","getMTUConfig","setMTUConfig","config","useNonceAccountManagement","isLoading","setIsLoading","setError","createNonceAccount","userKeypair","updatedUser","createSecureNonceAccount","err","renewNonceAccount","updated","address","revokeNonceAccount","cached","status","hasNonceAccount"],"sourceRoot":"../../../src","sources":["hooks/useOfflineBLETransactions.ts"],"mappings":"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","ignoreList":[]}
@@ -1,16 +1,22 @@
1
1
  "use strict";
2
2
 
3
3
  // Core types and intents
4
- export { createIntent, createUserIntent, createSignedIntent } from "./intent.js";
5
-
4
+ export { createIntent, createUserIntent, createSignedIntent, createOfflineIntent } from "./intent.js";
5
+
6
+ // Nonce Account Management (for offline transactions)
7
+ export { NonceAccountManager } from "./client/NonceAccountManager.js";
8
+ // BLE Transaction Handling (fragmentation & Noise encryption)
9
+ export { BLETransactionHandler } from "./client/BLETransactionHandler.js";
10
+ // Custom Hooks for Offline BLE Transactions
11
+ export { useOfflineTransaction, useBLETransactionTransmission, useNonceAccountManagement } from "./hooks/useOfflineBLETransactions.js";
6
12
  // Intent management
7
13
  export { verifyIntentSignature, isIntentExpired, updateIntentStatus, validateIntent, processIntentsForSync, filterExpiredIntents } from "./intentManager.js";
8
14
 
9
15
  // Storage
10
16
  export { storePendingIntent, getPendingIntents, clearPendingIntents } from "./storage.js";
11
17
 
12
- // Transport methods
13
- export { startTossScan, requestBLEPermissions } from "./ble.js";
18
+ // Transport methods (enhanced with fragmentation)
19
+ export { startTossScan, requestBLEPermissions, sendOfflineTransactionFragmented, receiveOfflineTransactionFragment, getBLEMTUConfig, setBLEMTUConfig } from "./ble.js";
14
20
  export { initNFC, readNFCUser, writeUserToNFC, writeIntentToNFC } from "./nfc.js";
15
21
  export { QRScanner } from "./qr.js";
16
22
 
@@ -18,10 +24,8 @@ export { QRScanner } from "./qr.js";
18
24
  export { TossClient } from "./client/TossClient.js";
19
25
  export { WalletProvider, useWallet } from "./contexts/WalletContext.js";
20
26
 
21
- // Create client instance
22
- import { TossClient } from "./client/TossClient.js";
23
- export const createClient = TossClient.createClient;
24
-
27
+ // Authentication Service (enhanced with nonce accounts)
28
+ export { AuthService } from "./services/authService.js";
25
29
  // Sync and settlement
26
30
  export { syncToChain, checkSyncStatus } from "./sync.js";
27
31
 
@@ -1 +1 @@
1
- {"version":3,"names":["createIntent","createUserIntent","createSignedIntent","verifyIntentSignature","isIntentExpired","updateIntentStatus","validateIntent","processIntentsForSync","filterExpiredIntents","storePendingIntent","getPendingIntents","clearPendingIntents","startTossScan","requestBLEPermissions","initNFC","readNFCUser","writeUserToNFC","writeIntentToNFC","QRScanner","TossClient","WalletProvider","useWallet","createClient","syncToChain","checkSyncStatus","reconcilePendingIntents","settleIntent","validateIntentOnchain","buildTransactionFromIntent","submitTransactionToChain","detectConflicts","getReconciliationState","DeviceDiscoveryService","IntentExchangeProtocol","IntentRoutingService","MultiDeviceConflictResolver","deviceDiscovery","intentExchange","intentRouting"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA;AACA,SACEA,YAAY,EACZC,gBAAgB,EAChBC,kBAAkB,QAGb,aAAU;;AAEjB;AACA,SACEC,qBAAqB,EACrBC,eAAe,EACfC,kBAAkB,EAClBC,cAAc,EACdC,qBAAqB,EACrBC,oBAAoB,QACf,oBAAiB;;AAExB;AACA,SACEC,kBAAkB,EAClBC,iBAAiB,EACjBC,mBAAmB,QACd,cAAW;;AAElB;AACA,SAASC,aAAa,EAAEC,qBAAqB,QAAQ,UAAO;AAC5D,SAASC,OAAO,EAAEC,WAAW,EAAEC,cAAc,EAAEC,gBAAgB,QAAQ,UAAO;AAC9E,SAASC,SAAS,QAAQ,SAAM;;AAEhC;AACA,SAASC,UAAU,QAAyB,wBAAqB;AAEjE,SAASC,cAAc,EAAEC,SAAS,QAAQ,6BAA0B;;AAEpE;AACA,SAASF,UAAU,QAAQ,wBAAqB;AAChD,OAAO,MAAMG,YAAY,GAAGH,UAAU,CAACG,YAAY;;AAEnD;AACA,SAASC,WAAW,EAAEC,eAAe,QAAyB,WAAQ;;AAEtE;AACA,SACEC,uBAAuB,EACvBC,YAAY,EACZC,qBAAqB,EACrBC,0BAA0B,EAC1BC,wBAAwB,EACxBC,eAAe,EACfC,sBAAsB,QAGjB,qBAAkB;;AAEzB;AACA,SACEC,sBAAsB,EACtBC,sBAAsB,EACtBC,oBAAoB,EACpBC,2BAA2B,EAC3BC,eAAe,EACfC,cAAc,EACdC,aAAa,QAIR,gBAAa","ignoreList":[]}
1
+ {"version":3,"names":["createIntent","createUserIntent","createSignedIntent","createOfflineIntent","NonceAccountManager","BLETransactionHandler","useOfflineTransaction","useBLETransactionTransmission","useNonceAccountManagement","verifyIntentSignature","isIntentExpired","updateIntentStatus","validateIntent","processIntentsForSync","filterExpiredIntents","storePendingIntent","getPendingIntents","clearPendingIntents","startTossScan","requestBLEPermissions","sendOfflineTransactionFragmented","receiveOfflineTransactionFragment","getBLEMTUConfig","setBLEMTUConfig","initNFC","readNFCUser","writeUserToNFC","writeIntentToNFC","QRScanner","TossClient","WalletProvider","useWallet","AuthService","syncToChain","checkSyncStatus","reconcilePendingIntents","settleIntent","validateIntentOnchain","buildTransactionFromIntent","submitTransactionToChain","detectConflicts","getReconciliationState","DeviceDiscoveryService","IntentExchangeProtocol","IntentRoutingService","MultiDeviceConflictResolver","deviceDiscovery","intentExchange","intentRouting"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA;AACA,SACEA,YAAY,EACZC,gBAAgB,EAChBC,kBAAkB,EAClBC,mBAAmB,QAGd,aAAU;;AAEjB;AACA,SAASC,mBAAmB,QAAQ,iCAA8B;AAQlE;AACA,SAASC,qBAAqB,QAAQ,mCAAgC;AAOtE;AACA,SACEC,qBAAqB,EACrBC,6BAA6B,EAC7BC,yBAAyB,QACpB,sCAAmC;AAM1C;AACA,SACEC,qBAAqB,EACrBC,eAAe,EACfC,kBAAkB,EAClBC,cAAc,EACdC,qBAAqB,EACrBC,oBAAoB,QACf,oBAAiB;;AAExB;AACA,SACEC,kBAAkB,EAClBC,iBAAiB,EACjBC,mBAAmB,QACd,cAAW;;AAElB;AACA,SACEC,aAAa,EACbC,qBAAqB,EACrBC,gCAAgC,EAChCC,iCAAiC,EACjCC,eAAe,EACfC,eAAe,QACV,UAAO;AACd,SAASC,OAAO,EAAEC,WAAW,EAAEC,cAAc,EAAEC,gBAAgB,QAAQ,UAAO;AAC9E,SAASC,SAAS,QAAQ,SAAM;;AAEhC;AACA,SAASC,UAAU,QAAyB,wBAAqB;AAEjE,SAASC,cAAc,EAAEC,SAAS,QAAQ,6BAA0B;;AAEpE;AACA,SAASC,WAAW,QAAQ,2BAAwB;AACpD;AACA,SAASC,WAAW,EAAEC,eAAe,QAAyB,WAAQ;;AAEtE;AACA,SACEC,uBAAuB,EACvBC,YAAY,EACZC,qBAAqB,EACrBC,0BAA0B,EAC1BC,wBAAwB,EACxBC,eAAe,EACfC,sBAAsB,QAGjB,qBAAkB;;AAEzB;AACA,SACEC,sBAAsB,EACtBC,sBAAsB,EACtBC,oBAAoB,EACpBC,2BAA2B,EAC3BC,eAAe,EACfC,cAAc,EACdC,aAAa,QAIR,gBAAa","ignoreList":[]}
@@ -14,6 +14,7 @@ import { encryptForArciumInternal } from "./internal/arciumHelper.js";
14
14
 
15
15
  /**
16
16
  * Core type for an offline intent following TOSS specification
17
+ * Enhanced with durable nonce account support
17
18
  */
18
19
 
19
20
  /**
@@ -84,8 +85,28 @@ export const nonceManager = new NonceManager();
84
85
  /**
85
86
  * Creates a signed intent between two TOSS users (User-centric API)
86
87
  * Recommended for application developers - validates user wallets
88
+ *
89
+ * GAP #8 FIX: Requires biometric authentication for sensitive transactions
87
90
  */
88
91
  export async function createUserIntent(senderUser, senderKeypair, recipientUser, amount, connection, options = {}) {
92
+ // GAP #8 FIX: Require biometric verification if enabled
93
+ if (senderUser.security?.biometricEnabled) {
94
+ try {
95
+ const LocalAuthentication = await import('expo-local-authentication');
96
+ const compatible = await LocalAuthentication.default.hasHardwareAsync();
97
+ if (compatible) {
98
+ const authenticated = await LocalAuthentication.default.authenticateAsync({
99
+ disableDeviceFallback: false
100
+ });
101
+ if (!authenticated.success) {
102
+ throw new Error('Biometric authentication failed');
103
+ }
104
+ }
105
+ } catch (error) {
106
+ console.warn('Biometric verification not available, proceeding without', error);
107
+ }
108
+ }
109
+
89
110
  // Verify sender's keypair matches their wallet
90
111
  if (senderKeypair.publicKey.toBase58() !== senderUser.wallet.publicKey.toBase58()) {
91
112
  throw new Error('Sender keypair does not match user wallet');
@@ -289,4 +310,112 @@ export function updateIntentStatus(intent, status, error) {
289
310
  updatedAt: Math.floor(Date.now() / 1000)
290
311
  };
291
312
  }
313
+ /**
314
+ * Creates an offline intent with durable nonce account support
315
+ * Enables replay-protected offline transactions using nonce accounts
316
+ * Requires biometric authentication for enhanced security
317
+ */
318
+ export async function createOfflineIntent(senderUser, senderKeypair, recipientUser, amount, nonceAccountInfo,
319
+ // NonceAccountInfo from NonceAccountManager
320
+ connection, options = {}) {
321
+ // Verify sender has nonce account enabled
322
+ if (!senderUser.nonceAccount || !senderUser.tossFeatures.offlineTransactionsEnabled) {
323
+ throw new Error('Offline transactions not enabled for this user');
324
+ }
325
+
326
+ // Verify sender's keypair matches their wallet
327
+ if (senderKeypair.publicKey.toBase58() !== senderUser.wallet.publicKey.toBase58()) {
328
+ throw new Error('Sender keypair does not match user wallet');
329
+ }
330
+
331
+ // Verify both users can transact
332
+ if (!senderUser.tossFeatures.canSend) {
333
+ throw new Error('Sender account is not enabled for sending');
334
+ }
335
+ if (!recipientUser.tossFeatures.canReceive) {
336
+ throw new Error('Recipient account is not enabled for receiving');
337
+ }
338
+
339
+ // Verify transaction amount is within limits
340
+ if (amount > senderUser.tossFeatures.maxTransactionAmount) {
341
+ throw new Error(`Transaction amount exceeds limit of ${senderUser.tossFeatures.maxTransactionAmount} lamports`);
342
+ }
343
+ const now = Math.floor(Date.now() / 1000);
344
+ const defaultExpiry = 24 * 60 * 60; // 24 hours default
345
+
346
+ // Get latest blockhash for nonce account
347
+ const {
348
+ blockhash
349
+ } = await connection.getLatestBlockhash();
350
+
351
+ // Prepare user contexts
352
+ const senderCtx = {
353
+ userId: senderUser.userId,
354
+ username: senderUser.username,
355
+ wallet: {
356
+ publicKey: senderUser.wallet.publicKey,
357
+ isVerified: senderUser.wallet.isVerified,
358
+ createdAt: senderUser.wallet.createdAt
359
+ },
360
+ status: senderUser.status,
361
+ deviceId: senderUser.device.id,
362
+ sessionId: uuidv4()
363
+ };
364
+ const recipientCtx = {
365
+ userId: recipientUser.userId,
366
+ username: recipientUser.username,
367
+ wallet: {
368
+ publicKey: recipientUser.wallet.publicKey,
369
+ isVerified: recipientUser.wallet.isVerified,
370
+ createdAt: recipientUser.wallet.createdAt
371
+ },
372
+ status: recipientUser.status,
373
+ deviceId: recipientUser.device.id,
374
+ sessionId: uuidv4()
375
+ };
376
+
377
+ // Create base intent with nonce account support
378
+ const baseIntent = {
379
+ id: uuidv4(),
380
+ from: senderKeypair.publicKey.toBase58(),
381
+ to: recipientUser.wallet.publicKey.toBase58(),
382
+ fromUser: senderCtx,
383
+ toUser: recipientCtx,
384
+ amount,
385
+ nonce: nonceAccountInfo.currentNonce,
386
+ expiry: now + (options.expiresIn || defaultExpiry),
387
+ blockhash,
388
+ feePayer: senderKeypair.publicKey.toBase58(),
389
+ status: 'pending',
390
+ createdAt: now,
391
+ updatedAt: now,
392
+ // Nonce account support
393
+ nonceAccountAddress: nonceAccountInfo.address,
394
+ nonceAccountAuth: nonceAccountInfo.authorizedSigner,
395
+ requiresBiometric: senderUser.security.nonceAccountRequiresBiometric,
396
+ // Backward compatibility
397
+ nonceAccount: nonceAccountInfo.address,
398
+ nonceAuth: nonceAccountInfo.authorizedSigner
399
+ };
400
+
401
+ // Sign the intent
402
+ const signature = sign(Buffer.from(JSON.stringify(baseIntent)), senderKeypair.secretKey);
403
+ const intent = {
404
+ ...baseIntent,
405
+ signature: bs58.encode(signature)
406
+ };
407
+
408
+ // If private transaction, encrypt the intent data
409
+ if (options.privateTransaction) {
410
+ if (!options.mxeProgramId) {
411
+ throw new Error('MXE Program ID is required for private transactions');
412
+ }
413
+ if (!options.provider) {
414
+ throw new Error('Provider is required for private transactions');
415
+ }
416
+ const plaintextValues = [BigInt(amount)];
417
+ intent.encrypted = await encryptForArciumInternal(options.mxeProgramId, plaintextValues, options.provider);
418
+ }
419
+ return intent;
420
+ }
292
421
  //# sourceMappingURL=intent.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["PublicKey","bs58","v4","uuidv4","sign","nacl","encryptForArciumInternal","NonceManager","nonceStore","Map","NONCE_EXPIRY","getNextNonce","publicKey","connection","key","toBase58","now","Date","cleanupNonces","accountInfo","getAccountInfo","chainNonce","extractNonceFromAccountInfo","stored","get","nonce","lastUsed","nextNonce","Math","max","set","error","console","warn","data","length","readUInt32LE","value","entries","delete","nonceManager","createUserIntent","senderUser","senderKeypair","recipientUser","amount","options","wallet","Error","tossFeatures","canSend","canReceive","maxTransactionAmount","senderCtx","userId","username","isVerified","createdAt","status","deviceId","device","id","sessionId","recipientCtx","intent","createSignedIntent","fromUser","toUser","sender","recipient","floor","defaultExpiry","blockhash","Promise","all","getLatestBlockhash","undefined","resolve","baseIntent","from","to","expiry","expiresIn","feePayer","nonceAuth","updatedAt","nonceAccount","signature","Buffer","JSON","stringify","secretKey","encode","verifyIntent","isIntentExpired","decode","message","toBytes","publicKeyUint8","Uint8Array","signatureUint8","verified","detached","verify","currentNonce","createIntent","privateTransaction","mxeProgramId","provider","plaintextValues","BigInt","encrypted","updateIntentStatus"],"sourceRoot":"../../src","sources":["intent.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["PublicKey","bs58","v4","uuidv4","sign","nacl","encryptForArciumInternal","NonceManager","nonceStore","Map","NONCE_EXPIRY","getNextNonce","publicKey","connection","key","toBase58","now","Date","cleanupNonces","accountInfo","getAccountInfo","chainNonce","extractNonceFromAccountInfo","stored","get","nonce","lastUsed","nextNonce","Math","max","set","error","console","warn","data","length","readUInt32LE","value","entries","delete","nonceManager","createUserIntent","senderUser","senderKeypair","recipientUser","amount","options","security","biometricEnabled","LocalAuthentication","compatible","default","hasHardwareAsync","authenticated","authenticateAsync","disableDeviceFallback","success","Error","wallet","tossFeatures","canSend","canReceive","maxTransactionAmount","senderCtx","userId","username","isVerified","createdAt","status","deviceId","device","id","sessionId","recipientCtx","intent","createSignedIntent","fromUser","toUser","sender","recipient","floor","defaultExpiry","blockhash","Promise","all","getLatestBlockhash","undefined","resolve","baseIntent","from","to","expiry","expiresIn","feePayer","nonceAuth","updatedAt","nonceAccount","signature","Buffer","JSON","stringify","secretKey","encode","verifyIntent","isIntentExpired","decode","message","toBytes","publicKeyUint8","Uint8Array","signatureUint8","verified","detached","verify","currentNonce","createIntent","privateTransaction","mxeProgramId","provider","plaintextValues","BigInt","encrypted","updateIntentStatus","createOfflineIntent","nonceAccountInfo","offlineTransactionsEnabled","nonceAccountAddress","address","nonceAccountAuth","authorizedSigner","requiresBiometric","nonceAccountRequiresBiometric"],"sourceRoot":"../../src","sources":["intent.ts"],"mappings":"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","ignoreList":[]}