toss-expo-sdk 0.1.1 → 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 (93) hide show
  1. package/README.md +490 -81
  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 +27 -44
  9. package/lib/module/client/TossClient.js.map +1 -1
  10. package/lib/module/contexts/WalletContext.js +4 -4
  11. package/lib/module/contexts/WalletContext.js.map +1 -1
  12. package/lib/module/discovery.js +35 -8
  13. package/lib/module/discovery.js.map +1 -1
  14. package/lib/module/examples/offlinePaymentFlow.js +27 -2
  15. package/lib/module/examples/offlinePaymentFlow.js.map +1 -1
  16. package/lib/module/hooks/useOfflineBLETransactions.js +314 -0
  17. package/lib/module/hooks/useOfflineBLETransactions.js.map +1 -0
  18. package/lib/module/index.js +13 -8
  19. package/lib/module/index.js.map +1 -1
  20. package/lib/module/intent.js +198 -0
  21. package/lib/module/intent.js.map +1 -1
  22. package/lib/module/nfc.js +1 -1
  23. package/lib/module/noise.js +176 -1
  24. package/lib/module/noise.js.map +1 -1
  25. package/lib/module/reconciliation.js +155 -0
  26. package/lib/module/reconciliation.js.map +1 -1
  27. package/lib/module/services/authService.js +164 -1
  28. package/lib/module/services/authService.js.map +1 -1
  29. package/lib/module/storage/secureStorage.js +102 -0
  30. package/lib/module/storage/secureStorage.js.map +1 -1
  31. package/lib/module/storage.js +4 -4
  32. package/lib/module/sync.js +25 -1
  33. package/lib/module/sync.js.map +1 -1
  34. package/lib/module/types/nonceAccount.js +2 -0
  35. package/lib/module/types/nonceAccount.js.map +1 -0
  36. package/lib/module/types/tossUser.js +16 -1
  37. package/lib/module/types/tossUser.js.map +1 -1
  38. package/lib/typescript/src/__tests__/solana-program-simple.test.d.ts +8 -0
  39. package/lib/typescript/src/__tests__/solana-program-simple.test.d.ts.map +1 -0
  40. package/lib/typescript/src/ble.d.ts +31 -2
  41. package/lib/typescript/src/ble.d.ts.map +1 -1
  42. package/lib/typescript/src/client/BLETransactionHandler.d.ts +98 -0
  43. package/lib/typescript/src/client/BLETransactionHandler.d.ts.map +1 -0
  44. package/lib/typescript/src/client/NonceAccountManager.d.ts +82 -0
  45. package/lib/typescript/src/client/NonceAccountManager.d.ts.map +1 -0
  46. package/lib/typescript/src/client/TossClient.d.ts +10 -12
  47. package/lib/typescript/src/client/TossClient.d.ts.map +1 -1
  48. package/lib/typescript/src/discovery.d.ts +8 -2
  49. package/lib/typescript/src/discovery.d.ts.map +1 -1
  50. package/lib/typescript/src/examples/offlinePaymentFlow.d.ts +9 -1
  51. package/lib/typescript/src/examples/offlinePaymentFlow.d.ts.map +1 -1
  52. package/lib/typescript/src/hooks/useOfflineBLETransactions.d.ts +91 -0
  53. package/lib/typescript/src/hooks/useOfflineBLETransactions.d.ts.map +1 -0
  54. package/lib/typescript/src/index.d.ts +11 -4
  55. package/lib/typescript/src/index.d.ts.map +1 -1
  56. package/lib/typescript/src/intent.d.ts +26 -0
  57. package/lib/typescript/src/intent.d.ts.map +1 -1
  58. package/lib/typescript/src/noise.d.ts +62 -0
  59. package/lib/typescript/src/noise.d.ts.map +1 -1
  60. package/lib/typescript/src/reconciliation.d.ts +6 -0
  61. package/lib/typescript/src/reconciliation.d.ts.map +1 -1
  62. package/lib/typescript/src/services/authService.d.ts +26 -1
  63. package/lib/typescript/src/services/authService.d.ts.map +1 -1
  64. package/lib/typescript/src/storage/secureStorage.d.ts +16 -0
  65. package/lib/typescript/src/storage/secureStorage.d.ts.map +1 -1
  66. package/lib/typescript/src/sync.d.ts +6 -1
  67. package/lib/typescript/src/sync.d.ts.map +1 -1
  68. package/lib/typescript/src/types/nonceAccount.d.ts +59 -0
  69. package/lib/typescript/src/types/nonceAccount.d.ts.map +1 -0
  70. package/lib/typescript/src/types/tossUser.d.ts +16 -0
  71. package/lib/typescript/src/types/tossUser.d.ts.map +1 -1
  72. package/package.json +12 -1
  73. package/src/__tests__/reconciliation.test.tsx +7 -1
  74. package/src/__tests__/solana-program-simple.test.ts +256 -0
  75. package/src/ble.ts +105 -4
  76. package/src/client/BLETransactionHandler.ts +364 -0
  77. package/src/client/NonceAccountManager.ts +444 -0
  78. package/src/client/TossClient.ts +36 -49
  79. package/src/contexts/WalletContext.tsx +4 -4
  80. package/src/discovery.ts +46 -8
  81. package/src/examples/offlinePaymentFlow.ts +48 -2
  82. package/src/hooks/useOfflineBLETransactions.ts +438 -0
  83. package/src/index.tsx +49 -7
  84. package/src/intent.ts +254 -0
  85. package/src/nfc.ts +4 -4
  86. package/src/noise.ts +239 -1
  87. package/src/reconciliation.ts +184 -0
  88. package/src/services/authService.ts +188 -1
  89. package/src/storage/secureStorage.ts +142 -4
  90. package/src/storage.ts +4 -4
  91. package/src/sync.ts +40 -0
  92. package/src/types/nonceAccount.ts +75 -0
  93. package/src/types/tossUser.ts +35 -2
@@ -1 +1 @@
1
- {"version":3,"names":["PublicKey","Transaction","SystemProgram","isIntentExpired","secureStoreIntent","getAllSecureIntents","TossError","NetworkError","validateIntentOnchain","intent","connection","valid","error","senderPublicKey","from","senderAccountInfo","getAccountInfo","lamports","amount","recipientPublicKey","to","recipientAccountInfo","signatures","getSignaturesForAddress","limit","sig","tx","getParsedTransaction","signature","transaction","message","instructions","instruction","parsed","type","parsedIx","info","source","destination","slot","blockTime","timeDiff","Math","floor","Date","now","Error","String","buildTransactionFromIntent","feePayer","feePayerPubkey","blockhash","lastValidBlockHeight","getLatestBlockhash","transferInstruction","transfer","fromPubkey","toPubkey","add","nonceAccount","nonceAuth","nonceAccountPubkey","nonceAuthPubkey","nonceAdvanceInstruction","nonceAdvance","noncePubkey","authorizedPubkey","recentBlockhash","submitTransactionToChain","maxRetries","lastError","attempt","rawTransaction","serialize","sendRawTransaction","skipPreflight","preflightCommitment","confirmation","confirmTransaction","value","err","JSON","stringify","includes","delay","pow","Promise","resolve","setTimeout","context","cause","settleIntent","timestamp","validation","intentId","id","status","reconcilePendingIntents","allIntents","pendingIntents","filter","i","length","sort","a","b","createdAt","settlementResults","result","push","newStatus","updatedIntent","updatedAt","undefined","detectConflicts","conflicts","conflict","getReconciliationState","getSlot","lastSyncTime","lastSyncSlot","processedIntents","map","failedIntents","conflictingIntents"],"sourceRoot":"../../src","sources":["reconciliation.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["PublicKey","Transaction","SystemProgram","isIntentExpired","secureStoreIntent","getAllSecureIntents","TossError","NetworkError","msg","message","console","log","validateIntentOnchain","intent","connection","valid","error","senderPublicKey","from","senderAccountInfo","getAccountInfo","executable","lamports","amount","data","length","isFrozen","recipientPublicKey","to","recipientAccountInfo","nonceAccountAddress","nonceAuth","nonceAddress","nonceAccountInfo","SYSTEM_PROGRAM_ID","owner","equals","signatures","getSignaturesForAddress","limit","sig","tx","getParsedTransaction","signature","transaction","instructions","instruction","parsed","type","parsedIx","info","source","destination","slot","blockTime","timeDiff","Math","floor","Date","now","Error","String","buildTransactionFromIntent","feePayer","feePayerPubkey","blockhash","lastValidBlockHeight","getLatestBlockhash","transferInstruction","transfer","fromPubkey","toPubkey","add","nonceAccount","nonceAccountPubkey","nonceAuthPubkey","nonceAdvanceInstruction","nonceAdvance","noncePubkey","authorizedPubkey","recentBlockhash","submitTransactionToChain","maxRetries","lastError","attempt","rawTransaction","serialize","sendRawTransaction","skipPreflight","preflightCommitment","confirmation","confirmTransaction","value","err","JSON","stringify","includes","delay","pow","Promise","resolve","setTimeout","context","cause","submitTransactionToArciumMXE","mxeProgramId","provider","encrypted","encryptForArciumInternal","plaintextValues","BigInt","nonce","expiry","encryptedDataBuffer","Buffer","concat","publicKey","ciphertext","mxeInstruction","programId","keys","pubkey","isSigner","isWritable","wallet","mxeTransaction","latestBlockhash","mxeSignature","settleIntent","timestamp","validation","intentId","id","status","reconcilePendingIntents","allIntents","pendingIntents","filter","i","sort","a","b","createdAt","settlementResults","result","push","newStatus","updatedIntent","updatedAt","undefined","detectConflicts","conflicts","conflict","getReconciliationState","getSlot","lastSyncTime","lastSyncSlot","processedIntents","map","failedIntents","conflictingIntents"],"sourceRoot":"../../src","sources":["reconciliation.ts"],"mappings":"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","ignoreList":[]}
@@ -4,9 +4,11 @@ import * as SecureStore from 'expo-secure-store';
4
4
  import { Keypair, PublicKey } from '@solana/web3.js';
5
5
  import * as LocalAuthentication from 'expo-local-authentication';
6
6
  import crypto from 'crypto';
7
+ import { NonceAccountManager } from "../client/NonceAccountManager.js";
7
8
  export const SESSION_KEY = 'toss_user_session';
8
9
  const WALLET_KEY = 'toss_encrypted_wallet';
9
10
  const BIOMETRIC_SALT_KEY = 'toss_biometric_salt';
11
+ const NONCE_ACCOUNT_KEY = 'toss_nonce_account';
10
12
  export class AuthService {
11
13
  static async signInWithWallet(walletAddress, isTemporary = false) {
12
14
  // In a real implementation, this would call your backend
@@ -32,13 +34,19 @@ export class AuthService {
32
34
  lastActive: new Date().toISOString(),
33
35
  client: 'mobile'
34
36
  },
37
+ security: {
38
+ biometricEnabled: false,
39
+ nonceAccountRequiresBiometric: true
40
+ },
35
41
  status: 'active',
36
42
  lastSeen: new Date().toISOString(),
37
43
  tossFeatures: {
38
44
  canSend: true,
39
45
  canReceive: true,
40
46
  isPrivateTxEnabled: true,
41
- maxTransactionAmount: 10000
47
+ maxTransactionAmount: 10000,
48
+ offlineTransactionsEnabled: false,
49
+ nonceAccountEnabled: false
42
50
  },
43
51
  createdAt: new Date().toISOString(),
44
52
  updatedAt: new Date().toISOString()
@@ -201,5 +209,160 @@ export class AuthService {
201
209
  await SecureStore.deleteItemAsync(BIOMETRIC_SALT_KEY);
202
210
  await SecureStore.deleteItemAsync(SESSION_KEY);
203
211
  }
212
+
213
+ /**
214
+ * Create a secure durable nonce account for offline transactions
215
+ * REQUIRES biometric authentication for maximum security
216
+ *
217
+ * This creates a nonce account that enables:
218
+ * - Offline transaction creation (with replay protection)
219
+ * - Biometric-protected signing
220
+ * - Encrypted storage with Noise Protocol support
221
+ */
222
+ static async createSecureNonceAccount(user, connection, userKeypair) {
223
+ // Verify biometric is available and enrolled
224
+ const hasHardware = await LocalAuthentication.hasHardwareAsync();
225
+ const isEnrolled = await LocalAuthentication.isEnrolledAsync();
226
+ if (!hasHardware || !isEnrolled) {
227
+ throw new Error('❌ Biometric authentication required but not configured on this device');
228
+ }
229
+
230
+ // Require biometric verification before creating nonce account
231
+ const result = await LocalAuthentication.authenticateAsync({
232
+ promptMessage: 'Biometric verification required to create nonce account',
233
+ fallbackLabel: 'Use PIN',
234
+ disableDeviceFallback: false
235
+ });
236
+ if (!result.success) {
237
+ throw new Error('Biometric verification failed - nonce account creation denied');
238
+ }
239
+ try {
240
+ // Initialize nonce account manager
241
+ const nonceManager = new NonceAccountManager(connection);
242
+
243
+ // Generate nonce authority keypair (separate from user wallet for security)
244
+ const nonceAuthorityKeypair = Keypair.generate();
245
+
246
+ // Create the nonce account
247
+ const nonceAccountInfo = await nonceManager.createNonceAccount(user, nonceAuthorityKeypair, userKeypair.publicKey, {
248
+ requireBiometric: true,
249
+ securityLevel: 'high',
250
+ persistToSecureStorage: true,
251
+ autoRenew: true
252
+ });
253
+
254
+ // Update user with nonce account information
255
+ const updatedUser = {
256
+ ...user,
257
+ nonceAccount: {
258
+ address: new PublicKey(nonceAccountInfo.address),
259
+ authorizedSigner: new PublicKey(nonceAccountInfo.authorizedSigner),
260
+ isBiometricProtected: true,
261
+ status: 'active'
262
+ },
263
+ security: {
264
+ ...user.security,
265
+ biometricEnabled: true,
266
+ nonceAccountRequiresBiometric: true,
267
+ lastBiometricVerification: Math.floor(Date.now() / 1000)
268
+ },
269
+ tossFeatures: {
270
+ ...user.tossFeatures,
271
+ offlineTransactionsEnabled: true,
272
+ nonceAccountEnabled: true
273
+ },
274
+ updatedAt: new Date().toISOString()
275
+ };
276
+ return updatedUser;
277
+ } catch (error) {
278
+ const errorMessage = error instanceof Error ? error.message : String(error);
279
+ throw new Error(`Failed to create nonce account: ${errorMessage}`);
280
+ }
281
+ }
282
+
283
+ /**
284
+ * Enable offline transactions for a user with nonce account support
285
+ * Ensures all security measures are in place
286
+ */
287
+ static async enableOfflineTransactions(user) {
288
+ // Verify user has nonce account
289
+ if (!user.nonceAccount) {
290
+ throw new Error('User does not have a nonce account. Create one first.');
291
+ }
292
+
293
+ // Verify biometric is enabled
294
+ if (!user.security.biometricEnabled) {
295
+ throw new Error('Biometric authentication must be enabled first');
296
+ }
297
+
298
+ // Update user with offline transactions enabled
299
+ return {
300
+ ...user,
301
+ tossFeatures: {
302
+ ...user.tossFeatures,
303
+ offlineTransactionsEnabled: true,
304
+ nonceAccountEnabled: true
305
+ },
306
+ updatedAt: new Date().toISOString()
307
+ };
308
+ }
309
+
310
+ /**
311
+ * Verify nonce account is accessible and valid
312
+ * Requires biometric authentication
313
+ */
314
+ static async verifyNonceAccountAccess(userId) {
315
+ try {
316
+ // Verify biometric
317
+ const result = await LocalAuthentication.authenticateAsync({
318
+ promptMessage: 'Verify nonce account access with biometric',
319
+ fallbackLabel: 'Use PIN',
320
+ disableDeviceFallback: false
321
+ });
322
+ if (!result.success) {
323
+ return false;
324
+ }
325
+
326
+ // Check if nonce account exists in secure storage
327
+ const storageKey = `${NONCE_ACCOUNT_KEY}_${userId}`;
328
+ const stored = await SecureStore.getItemAsync(storageKey);
329
+ return stored !== null;
330
+ } catch (error) {
331
+ console.error('Failed to verify nonce account access:', error);
332
+ return false;
333
+ }
334
+ }
335
+
336
+ /**
337
+ * Revoke nonce account (security measure)
338
+ * Requires biometric verification
339
+ */
340
+ static async revokeNonceAccount(userId, user) {
341
+ // Require biometric verification
342
+ const result = await LocalAuthentication.authenticateAsync({
343
+ promptMessage: 'Biometric verification required to revoke nonce account',
344
+ fallbackLabel: 'Use PIN',
345
+ disableDeviceFallback: false
346
+ });
347
+ if (!result.success) {
348
+ throw new Error('Biometric verification failed - revocation denied');
349
+ }
350
+
351
+ // Remove nonce account from storage
352
+ const storageKey = `${NONCE_ACCOUNT_KEY}_${userId}`;
353
+ await SecureStore.deleteItemAsync(storageKey);
354
+
355
+ // Update user
356
+ return {
357
+ ...user,
358
+ nonceAccount: undefined,
359
+ tossFeatures: {
360
+ ...user.tossFeatures,
361
+ offlineTransactionsEnabled: false,
362
+ nonceAccountEnabled: false
363
+ },
364
+ updatedAt: new Date().toISOString()
365
+ };
366
+ }
204
367
  }
205
368
  //# sourceMappingURL=authService.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["SecureStore","Keypair","PublicKey","LocalAuthentication","crypto","SESSION_KEY","WALLET_KEY","BIOMETRIC_SALT_KEY","AuthService","signInWithWallet","walletAddress","isTemporary","session","id","Date","now","token","Math","random","toString","substr","expiresAt","user","userId","slice","username","wallet","publicKey","isVerified","createdAt","toISOString","device","lastActive","client","status","lastSeen","tossFeatures","canSend","canReceive","isPrivateTxEnabled","maxTransactionAmount","updatedAt","saveSession","setItemAsync","JSON","stringify","getSession","getItemAsync","parse","signOut","deleteItemAsync","isWalletUnlocked","isAvailable","isAvailableAsync","item","unlockWalletWithBiometrics","hasHardware","hasHardwareAsync","isEnrolled","isEnrolledAsync","Error","result","authenticateAsync","promptMessage","fallbackLabel","disableDeviceFallback","success","encrypted","salt","decryptedData","secretKey","secretKeyArray","Uint8Array","keypair","fromSecretKey","error","message","String","setupWalletProtection","useBiometrics","getRandomValues","walletData","Array","from","biometricRequired","nonCustodial","deviceSpecific","exportable","isKeypairStoredSecurely","stored","getPublicKeyWithoutAuth","data","console","lockWalletFromMemory","deleteWalletPermanently"],"sourceRoot":"../../../src","sources":["services/authService.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["SecureStore","Keypair","PublicKey","LocalAuthentication","crypto","NonceAccountManager","SESSION_KEY","WALLET_KEY","BIOMETRIC_SALT_KEY","NONCE_ACCOUNT_KEY","AuthService","signInWithWallet","walletAddress","isTemporary","session","id","Date","now","token","Math","random","toString","substr","expiresAt","user","userId","slice","username","wallet","publicKey","isVerified","createdAt","toISOString","device","lastActive","client","security","biometricEnabled","nonceAccountRequiresBiometric","status","lastSeen","tossFeatures","canSend","canReceive","isPrivateTxEnabled","maxTransactionAmount","offlineTransactionsEnabled","nonceAccountEnabled","updatedAt","saveSession","setItemAsync","JSON","stringify","getSession","getItemAsync","parse","signOut","deleteItemAsync","isWalletUnlocked","isAvailable","isAvailableAsync","item","unlockWalletWithBiometrics","hasHardware","hasHardwareAsync","isEnrolled","isEnrolledAsync","Error","result","authenticateAsync","promptMessage","fallbackLabel","disableDeviceFallback","success","encrypted","salt","decryptedData","secretKey","secretKeyArray","Uint8Array","keypair","fromSecretKey","error","message","String","setupWalletProtection","useBiometrics","getRandomValues","walletData","Array","from","biometricRequired","nonCustodial","deviceSpecific","exportable","isKeypairStoredSecurely","stored","getPublicKeyWithoutAuth","data","console","lockWalletFromMemory","deleteWalletPermanently","createSecureNonceAccount","connection","userKeypair","nonceManager","nonceAuthorityKeypair","generate","nonceAccountInfo","createNonceAccount","requireBiometric","securityLevel","persistToSecureStorage","autoRenew","updatedUser","nonceAccount","address","authorizedSigner","isBiometricProtected","lastBiometricVerification","floor","errorMessage","enableOfflineTransactions","verifyNonceAccountAccess","storageKey","revokeNonceAccount","undefined"],"sourceRoot":"../../../src","sources":["services/authService.ts"],"mappings":"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","ignoreList":[]}
@@ -86,4 +86,106 @@ export async function clearAllSecureIntents() {
86
86
  });
87
87
  }
88
88
  }
89
+
90
+ /**
91
+ * GAP #1: Cleanup expired intents from local storage
92
+ * Per TOSS Paper Section 8: Local state is append-only until settlement confirmation
93
+ */
94
+ export async function cleanupExpiredIntents() {
95
+ try {
96
+ const intents = await getAllSecureIntents();
97
+ const now = Math.floor(Date.now() / 1000);
98
+ let cleanedCount = 0;
99
+ for (const intent of intents) {
100
+ if (intent.expiry < now) {
101
+ await removeSecureIntent(intent.id);
102
+ cleanedCount++;
103
+ }
104
+ }
105
+ return cleanedCount;
106
+ } catch (error) {
107
+ throw new StorageError('Failed to cleanup expired intents', {
108
+ cause: error
109
+ });
110
+ }
111
+ }
112
+
113
+ /**
114
+ * GAP #2: Store and retrieve reconciliation state
115
+ * Per TOSS Paper Section 9: Track which intents have been synced/failed/conflicted
116
+ */
117
+ const RECONCILIATION_STATE_KEY = 'toss_reconciliation_state_';
118
+ export async function saveReconciliationState(userId, state) {
119
+ try {
120
+ const key = `${RECONCILIATION_STATE_KEY}${userId}`;
121
+ const existing = await SecureStore.getItemAsync(key);
122
+ const currentState = existing ? JSON.parse(existing) : {
123
+ userId,
124
+ lastSyncTime: 0,
125
+ lastSyncSlot: 0,
126
+ processedIntents: [],
127
+ failedIntents: [],
128
+ conflictingIntents: []
129
+ };
130
+ const merged = {
131
+ ...currentState,
132
+ ...state,
133
+ userId // Always preserve userId
134
+ };
135
+ await SecureStore.setItemAsync(key, JSON.stringify(merged));
136
+ } catch (error) {
137
+ throw new StorageError('Failed to save reconciliation state', {
138
+ cause: error,
139
+ userId
140
+ });
141
+ }
142
+ }
143
+ export async function getReconciliationState(userId) {
144
+ try {
145
+ const key = `${RECONCILIATION_STATE_KEY}${userId}`;
146
+ const value = await SecureStore.getItemAsync(key);
147
+ if (value) {
148
+ return JSON.parse(value);
149
+ }
150
+ return {
151
+ userId,
152
+ lastSyncTime: 0,
153
+ lastSyncSlot: 0,
154
+ processedIntents: [],
155
+ failedIntents: [],
156
+ conflictingIntents: []
157
+ };
158
+ } catch (error) {
159
+ throw new StorageError('Failed to retrieve reconciliation state', {
160
+ cause: error,
161
+ userId
162
+ });
163
+ }
164
+ }
165
+ export async function updateReconciliationState(userId, intentId, status) {
166
+ try {
167
+ const current = await getReconciliationState(userId);
168
+
169
+ // Remove from all lists first
170
+ current.processedIntents = current.processedIntents.filter(id => id !== intentId);
171
+ current.failedIntents = current.failedIntents.filter(id => id !== intentId);
172
+ current.conflictingIntents = current.conflictingIntents.filter(id => id !== intentId);
173
+
174
+ // Add to appropriate list
175
+ if (status === 'processed') {
176
+ current.processedIntents.push(intentId);
177
+ } else if (status === 'failed') {
178
+ current.failedIntents.push(intentId);
179
+ } else if (status === 'conflicted') {
180
+ current.conflictingIntents.push(intentId);
181
+ }
182
+ await saveReconciliationState(userId, current);
183
+ } catch (error) {
184
+ throw new StorageError('Failed to update reconciliation state', {
185
+ cause: error,
186
+ userId,
187
+ intentId
188
+ });
189
+ }
190
+ }
89
191
  //# sourceMappingURL=secureStorage.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["SecureStore","StorageError","STORAGE_PREFIX","getAllKeys","keys","getItemAsync","JSON","parse","saveKeys","setItemAsync","stringify","secureStoreIntent","intent","key","id","includes","push","error","cause","intentId","getSecureIntent","value","getAllSecureIntents","intents","Promise","all","map","filter","Boolean","removeSecureIntent","deleteItemAsync","updatedKeys","k","clearAllSecureIntents"],"sourceRoot":"../../../src","sources":["storage/secureStorage.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["SecureStore","StorageError","STORAGE_PREFIX","getAllKeys","keys","getItemAsync","JSON","parse","saveKeys","setItemAsync","stringify","secureStoreIntent","intent","key","id","includes","push","error","cause","intentId","getSecureIntent","value","getAllSecureIntents","intents","Promise","all","map","filter","Boolean","removeSecureIntent","deleteItemAsync","updatedKeys","k","clearAllSecureIntents","cleanupExpiredIntents","now","Math","floor","Date","cleanedCount","expiry","RECONCILIATION_STATE_KEY","saveReconciliationState","userId","state","existing","currentState","lastSyncTime","lastSyncSlot","processedIntents","failedIntents","conflictingIntents","merged","getReconciliationState","updateReconciliationState","status","current"],"sourceRoot":"../../../src","sources":["storage/secureStorage.ts"],"mappings":"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","ignoreList":[]}
@@ -1,14 +1,14 @@
1
1
  "use strict";
2
2
 
3
- import AsyncStorage from "@react-native-async-storage/async-storage";
4
- const INTENTS_KEY = "TOSS_PENDING_INTENTS";
3
+ import AsyncStorage from '@react-native-async-storage/async-storage';
4
+ const INTENTS_KEY = 'TOSS_PENDING_INTENTS';
5
5
  export async function storePendingIntent(intent) {
6
- const current = JSON.parse((await AsyncStorage.getItem(INTENTS_KEY)) || "[]");
6
+ const current = JSON.parse((await AsyncStorage.getItem(INTENTS_KEY)) || '[]');
7
7
  current.push(intent);
8
8
  await AsyncStorage.setItem(INTENTS_KEY, JSON.stringify(current));
9
9
  }
10
10
  export async function getPendingIntents() {
11
- return JSON.parse((await AsyncStorage.getItem(INTENTS_KEY)) || "[]");
11
+ return JSON.parse((await AsyncStorage.getItem(INTENTS_KEY)) || '[]');
12
12
  }
13
13
  export async function clearPendingIntents() {
14
14
  await AsyncStorage.removeItem(INTENTS_KEY);
@@ -6,9 +6,12 @@
6
6
  * Implements Section 9 of the TOSS Technical Paper:
7
7
  * Upon regaining connectivity, devices initiate reconciliation with onchain state.
8
8
  * All offline artifacts are verified onchain and settled with deterministic outcomes.
9
+ *
10
+ * GAP #2 FIX: Track synchronization state persistently
9
11
  */
10
12
 
11
13
  import { reconcilePendingIntents, detectConflicts, getReconciliationState } from "./reconciliation.js";
14
+ import { updateReconciliationState } from "./storage/secureStorage.js";
12
15
  import { NetworkError } from "./errors.js";
13
16
  /**
14
17
  * Full sync and reconciliation with the Solana blockchain
@@ -19,11 +22,14 @@ import { NetworkError } from "./errors.js";
19
22
  * 2. Settle all pending intents
20
23
  * 3. Update local state with results
21
24
  *
25
+ * GAP #2 FIX: Persist reconciliation state for future queries
26
+ *
22
27
  * @param connection Connection to Solana RPC
28
+ * @param userId User ID for state tracking (required for persistence)
23
29
  * @param feePayer Optional fee payer keypair public key
24
30
  * @returns Detailed sync results including conflicts and settlements
25
31
  */
26
- export async function syncToChain(connection, feePayer) {
32
+ export async function syncToChain(connection, userId, feePayer) {
27
33
  const syncTimestamp = Math.floor(Date.now() / 1000);
28
34
  try {
29
35
  // Step 1: Detect any conflicts with onchain state
@@ -38,6 +44,24 @@ export async function syncToChain(connection, feePayer) {
38
44
 
39
45
  // Step 4: Get final reconciliation state
40
46
  const reconciliationState = await getReconciliationState(connection);
47
+
48
+ // GAP #2 FIX: Persist reconciliation state to storage
49
+ if (userId) {
50
+ try {
51
+ // Update individual intent statuses
52
+ for (const settlement of successfulSettlements) {
53
+ await updateReconciliationState(userId, settlement.intentId, 'processed');
54
+ }
55
+ for (const settlement of failedSettlements) {
56
+ await updateReconciliationState(userId, settlement.intentId, 'failed');
57
+ }
58
+ for (const conflict of detectedConflicts) {
59
+ await updateReconciliationState(userId, conflict.intentId, 'conflicted');
60
+ }
61
+ } catch (storageError) {
62
+ console.warn('Failed to update reconciliation state storage:', storageError);
63
+ }
64
+ }
41
65
  const isComplete = failedSettlements.length === 0 && detectedConflicts.length === 0;
42
66
  return {
43
67
  successfulSettlements,
@@ -1 +1 @@
1
- {"version":3,"names":["reconcilePendingIntents","detectConflicts","getReconciliationState","NetworkError","syncToChain","connection","feePayer","syncTimestamp","Math","floor","Date","now","detectedConflicts","allSettlementResults","successfulSettlements","filter","r","status","failedSettlements","reconciliationState","isComplete","length","error","Error","message","String","cause","checkSyncStatus"],"sourceRoot":"../../src","sources":["sync.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SACEA,uBAAuB,EACvBC,eAAe,EACfC,sBAAsB,QAGjB,qBAAkB;AACzB,SAASC,YAAY,QAAQ,aAAU;AAiBvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeC,WAAWA,CAC/BC,UAAsB,EACtBC,QAAoB,EACC;EACrB,MAAMC,aAAa,GAAGC,IAAI,CAACC,KAAK,CAACC,IAAI,CAACC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;EAEnD,IAAI;IACF;IACA,MAAMC,iBAAiB,GAAG,MAAMX,eAAe,CAACI,UAAU,CAAC;;IAE3D;IACA,MAAMQ,oBAAoB,GAAG,MAAMb,uBAAuB,CACxDK,UAAU,EACVC,QACF,CAAC;;IAED;IACA,MAAMQ,qBAAqB,GAAGD,oBAAoB,CAACE,MAAM,CACtDC,CAAC,IAAKA,CAAC,CAACC,MAAM,KAAK,SACtB,CAAC;IACD,MAAMC,iBAAiB,GAAGL,oBAAoB,CAACE,MAAM,CAClDC,CAAC,IAAKA,CAAC,CAACC,MAAM,KAAK,SACtB,CAAC;;IAED;IACA,MAAME,mBAAmB,GAAG,MAAMjB,sBAAsB,CAACG,UAAU,CAAC;IAEpE,MAAMe,UAAU,GACdF,iBAAiB,CAACG,MAAM,KAAK,CAAC,IAAIT,iBAAiB,CAACS,MAAM,KAAK,CAAC;IAElE,OAAO;MACLP,qBAAqB;MACrBI,iBAAiB;MACjBN,iBAAiB;MACjBO,mBAAmB;MACnBZ,aAAa;MACba;IACF,CAAC;EACH,CAAC,CAAC,OAAOE,KAAK,EAAE;IACd,MAAM,IAAInB,YAAY,CACpB,yBAAyBmB,KAAK,YAAYC,KAAK,GAAGD,KAAK,CAACE,OAAO,GAAGC,MAAM,CAACH,KAAK,CAAC,EAAE,EACjF;MAAEI,KAAK,EAAEJ;IAAM,CACjB,CAAC;EACH;AACF;;AAEA;AACA;AACA;AACA;AACA,OAAO,eAAeK,eAAeA,CACnCtB,UAAsB,EACQ;EAC9B,OAAOH,sBAAsB,CAACG,UAAU,CAAC;AAC3C","ignoreList":[]}
1
+ {"version":3,"names":["reconcilePendingIntents","detectConflicts","getReconciliationState","updateReconciliationState","NetworkError","syncToChain","connection","userId","feePayer","syncTimestamp","Math","floor","Date","now","detectedConflicts","allSettlementResults","successfulSettlements","filter","r","status","failedSettlements","reconciliationState","settlement","intentId","conflict","storageError","console","warn","isComplete","length","error","Error","message","String","cause","checkSyncStatus"],"sourceRoot":"../../src","sources":["sync.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SACEA,uBAAuB,EACvBC,eAAe,EACfC,sBAAsB,QAGjB,qBAAkB;AACzB,SAASC,yBAAyB,QAAQ,4BAAyB;AACnE,SAASC,YAAY,QAAQ,aAAU;AAiBvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeC,WAAWA,CAC/BC,UAAsB,EACtBC,MAAe,EACfC,QAAoB,EACC;EACrB,MAAMC,aAAa,GAAGC,IAAI,CAACC,KAAK,CAACC,IAAI,CAACC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;EAEnD,IAAI;IACF;IACA,MAAMC,iBAAiB,GAAG,MAAMb,eAAe,CAACK,UAAU,CAAC;;IAE3D;IACA,MAAMS,oBAAoB,GAAG,MAAMf,uBAAuB,CACxDM,UAAU,EACVE,QACF,CAAC;;IAED;IACA,MAAMQ,qBAAqB,GAAGD,oBAAoB,CAACE,MAAM,CACtDC,CAAC,IAAKA,CAAC,CAACC,MAAM,KAAK,SACtB,CAAC;IACD,MAAMC,iBAAiB,GAAGL,oBAAoB,CAACE,MAAM,CAClDC,CAAC,IAAKA,CAAC,CAACC,MAAM,KAAK,SACtB,CAAC;;IAED;IACA,MAAME,mBAAmB,GAAG,MAAMnB,sBAAsB,CAACI,UAAU,CAAC;;IAEpE;IACA,IAAIC,MAAM,EAAE;MACV,IAAI;QACF;QACA,KAAK,MAAMe,UAAU,IAAIN,qBAAqB,EAAE;UAC9C,MAAMb,yBAAyB,CAC7BI,MAAM,EACNe,UAAU,CAACC,QAAQ,EACnB,WACF,CAAC;QACH;QACA,KAAK,MAAMD,UAAU,IAAIF,iBAAiB,EAAE;UAC1C,MAAMjB,yBAAyB,CAC7BI,MAAM,EACNe,UAAU,CAACC,QAAQ,EACnB,QACF,CAAC;QACH;QACA,KAAK,MAAMC,QAAQ,IAAIV,iBAAiB,EAAE;UACxC,MAAMX,yBAAyB,CAC7BI,MAAM,EACNiB,QAAQ,CAACD,QAAQ,EACjB,YACF,CAAC;QACH;MACF,CAAC,CAAC,OAAOE,YAAY,EAAE;QACrBC,OAAO,CAACC,IAAI,CACV,gDAAgD,EAChDF,YACF,CAAC;MACH;IACF;IAEA,MAAMG,UAAU,GACdR,iBAAiB,CAACS,MAAM,KAAK,CAAC,IAAIf,iBAAiB,CAACe,MAAM,KAAK,CAAC;IAElE,OAAO;MACLb,qBAAqB;MACrBI,iBAAiB;MACjBN,iBAAiB;MACjBO,mBAAmB;MACnBZ,aAAa;MACbmB;IACF,CAAC;EACH,CAAC,CAAC,OAAOE,KAAK,EAAE;IACd,MAAM,IAAI1B,YAAY,CACpB,yBAAyB0B,KAAK,YAAYC,KAAK,GAAGD,KAAK,CAACE,OAAO,GAAGC,MAAM,CAACH,KAAK,CAAC,EAAE,EACjF;MAAEI,KAAK,EAAEJ;IAAM,CACjB,CAAC;EACH;AACF;;AAEA;AACA;AACA;AACA;AACA,OAAO,eAAeK,eAAeA,CACnC7B,UAAsB,EACQ;EAC9B,OAAOJ,sBAAsB,CAACI,UAAU,CAAC;AAC3C","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=nonceAccount.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["types/nonceAccount.ts"],"mappings":"","ignoreList":[]}
@@ -4,6 +4,7 @@ import { PublicKey } from '@solana/web3.js';
4
4
 
5
5
  /**
6
6
  * Represents a TOSS wallet user in the ecosystem
7
+ * Enhanced with secure nonce account support for offline transactions
7
8
  */
8
9
 
9
10
  /**
@@ -21,19 +22,33 @@ export const exampleTossUser = {
21
22
  isVerified: true,
22
23
  createdAt: '2023-01-01T00:00:00Z'
23
24
  },
25
+ nonceAccount: {
26
+ address: new PublicKey('22222222222222222222222222222222'),
27
+ authorizedSigner: new PublicKey('33333333333333333333333333333333'),
28
+ isBiometricProtected: true,
29
+ status: 'active'
30
+ },
24
31
  device: {
25
32
  id: 'dev_xyz789',
26
33
  name: 'Alice iPhone',
27
34
  lastActive: new Date().toISOString(),
28
35
  client: 'mobile'
29
36
  },
37
+ security: {
38
+ biometricEnabled: true,
39
+ nonceAccountRequiresBiometric: true,
40
+ lastBiometricVerification: Math.floor(Date.now() / 1000)
41
+ },
30
42
  status: 'active',
31
43
  lastSeen: new Date().toISOString(),
32
44
  tossFeatures: {
33
45
  canSend: true,
34
46
  canReceive: true,
35
47
  isPrivateTxEnabled: true,
36
- maxTransactionAmount: 1000000000 // 1 SOL in lamports
48
+ maxTransactionAmount: 1000000000,
49
+ // 1 SOL in lamports
50
+ offlineTransactionsEnabled: true,
51
+ nonceAccountEnabled: true
37
52
  },
38
53
  createdAt: '2023-01-01T00:00:00Z',
39
54
  updatedAt: new Date().toISOString()
@@ -1 +1 @@
1
- {"version":3,"names":["PublicKey","exampleTossUser","userId","username","displayName","wallet","publicKey","isVerified","createdAt","device","id","name","lastActive","Date","toISOString","client","status","lastSeen","tossFeatures","canSend","canReceive","isPrivateTxEnabled","maxTransactionAmount","updatedAt"],"sourceRoot":"../../../src","sources":["types/tossUser.ts"],"mappings":";;AAAA,SAASA,SAAS,QAAQ,iBAAiB;;AAE3C;AACA;AACA;;AAuCA;AACA;AACA;;AASA;AACA,OAAO,MAAMC,eAAyB,GAAG;EACvCC,MAAM,EAAE,aAAa;EACrBC,QAAQ,EAAE,QAAQ;EAClBC,WAAW,EAAE,OAAO;EACpBC,MAAM,EAAE;IACNC,SAAS,EAAE,IAAIN,SAAS,CAAC,kCAAkC,CAAC;IAAE;IAC9DO,UAAU,EAAE,IAAI;IAChBC,SAAS,EAAE;EACb,CAAC;EACDC,MAAM,EAAE;IACNC,EAAE,EAAE,YAAY;IAChBC,IAAI,EAAE,cAAc;IACpBC,UAAU,EAAE,IAAIC,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC;IACpCC,MAAM,EAAE;EACV,CAAC;EACDC,MAAM,EAAE,QAAQ;EAChBC,QAAQ,EAAE,IAAIJ,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC;EAClCI,YAAY,EAAE;IACZC,OAAO,EAAE,IAAI;IACbC,UAAU,EAAE,IAAI;IAChBC,kBAAkB,EAAE,IAAI;IACxBC,oBAAoB,EAAE,UAAU,CAAE;EACpC,CAAC;EACDd,SAAS,EAAE,sBAAsB;EACjCe,SAAS,EAAE,IAAIV,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC;AACpC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["PublicKey","exampleTossUser","userId","username","displayName","wallet","publicKey","isVerified","createdAt","nonceAccount","address","authorizedSigner","isBiometricProtected","status","device","id","name","lastActive","Date","toISOString","client","security","biometricEnabled","nonceAccountRequiresBiometric","lastBiometricVerification","Math","floor","now","lastSeen","tossFeatures","canSend","canReceive","isPrivateTxEnabled","maxTransactionAmount","offlineTransactionsEnabled","nonceAccountEnabled","updatedAt"],"sourceRoot":"../../../src","sources":["types/tossUser.ts"],"mappings":";;AAAA,SAASA,SAAS,QAAQ,iBAAiB;;AAE3C;AACA;AACA;AACA;;AA0DA;AACA;AACA;;AASA;AACA,OAAO,MAAMC,eAAyB,GAAG;EACvCC,MAAM,EAAE,aAAa;EACrBC,QAAQ,EAAE,QAAQ;EAClBC,WAAW,EAAE,OAAO;EACpBC,MAAM,EAAE;IACNC,SAAS,EAAE,IAAIN,SAAS,CAAC,kCAAkC,CAAC;IAAE;IAC9DO,UAAU,EAAE,IAAI;IAChBC,SAAS,EAAE;EACb,CAAC;EACDC,YAAY,EAAE;IACZC,OAAO,EAAE,IAAIV,SAAS,CAAC,kCAAkC,CAAC;IAC1DW,gBAAgB,EAAE,IAAIX,SAAS,CAAC,kCAAkC,CAAC;IACnEY,oBAAoB,EAAE,IAAI;IAC1BC,MAAM,EAAE;EACV,CAAC;EACDC,MAAM,EAAE;IACNC,EAAE,EAAE,YAAY;IAChBC,IAAI,EAAE,cAAc;IACpBC,UAAU,EAAE,IAAIC,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC;IACpCC,MAAM,EAAE;EACV,CAAC;EACDC,QAAQ,EAAE;IACRC,gBAAgB,EAAE,IAAI;IACtBC,6BAA6B,EAAE,IAAI;IACnCC,yBAAyB,EAAEC,IAAI,CAACC,KAAK,CAACR,IAAI,CAACS,GAAG,CAAC,CAAC,GAAG,IAAI;EACzD,CAAC;EACDd,MAAM,EAAE,QAAQ;EAChBe,QAAQ,EAAE,IAAIV,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC;EAClCU,YAAY,EAAE;IACZC,OAAO,EAAE,IAAI;IACbC,UAAU,EAAE,IAAI;IAChBC,kBAAkB,EAAE,IAAI;IACxBC,oBAAoB,EAAE,UAAU;IAAE;IAClCC,0BAA0B,EAAE,IAAI;IAChCC,mBAAmB,EAAE;EACvB,CAAC;EACD3B,SAAS,EAAE,sBAAsB;EACjC4B,SAAS,EAAE,IAAIlB,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC;AACpC,CAAC","ignoreList":[]}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * TOSS Solana Program Integration Tests (Simplified)
3
+ *
4
+ * Tests for the toss-intent-processor program
5
+ * Gap #5: Onchain Intent Verification
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=solana-program-simple.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solana-program-simple.test.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/solana-program-simple.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -1,10 +1,39 @@
1
1
  import { Device } from 'react-native-ble-plx';
2
2
  import type { TossUser } from './types/tossUser';
3
3
  import type { SolanaIntent } from './intent';
4
+ import type { OfflineTransaction } from './types/nonceAccount';
4
5
  export declare function requestBLEPermissions(): Promise<void>;
5
- export declare function startTossScan(onUserFound: (user: TossUser, device: Device) => void, onIntentFound: (intent: SolanaIntent, device: Device) => void): void;
6
+ export declare function startTossScan(onUserFound: (user: TossUser, device: Device) => void, onIntentFound: (intent: SolanaIntent, device: Device) => void, onOfflineTransactionFound?: (tx: OfflineTransaction, device: Device) => void): void;
6
7
  export declare function advertiseUser(user: TossUser): Promise<void>;
7
8
  export declare function stopAdvertising(): Promise<void>;
8
9
  export declare function sendIntentToDevice(deviceId: string, intent: SolanaIntent): Promise<void>;
9
- export declare function stopScan(): void;
10
+ /**
11
+ * Send fragmented offline transaction over BLE with Noise Protocol encryption
12
+ * Automatically handles MTU limitations and retries
13
+ */
14
+ export declare function sendOfflineTransactionFragmented(device: Device, transaction: OfflineTransaction | SolanaIntent, noiseEncryptFn?: (data: Uint8Array) => Promise<any>, isIntent?: boolean): Promise<{
15
+ success: boolean;
16
+ sentFragments: number;
17
+ failedFragments: number[];
18
+ messageId: string;
19
+ }>;
20
+ /**
21
+ * Receive and reassemble fragmented message from BLE
22
+ */
23
+ export declare function receiveOfflineTransactionFragment(fragment: any, noiseDecryptFn?: (encrypted: any) => Promise<Uint8Array>): Promise<{
24
+ complete: boolean;
25
+ transaction?: OfflineTransaction | SolanaIntent;
26
+ progress: {
27
+ received: number;
28
+ total: number;
29
+ };
30
+ }>;
31
+ /**
32
+ * Get current BLE MTU configuration
33
+ */
34
+ export declare function getBLEMTUConfig(): import(".").BLEMTUConfig;
35
+ /**
36
+ * Set custom BLE MTU configuration
37
+ */
38
+ export declare function setBLEMTUConfig(config: Partial<any>): void;
10
39
  //# sourceMappingURL=ble.d.ts.map