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
@@ -0,0 +1,364 @@
1
+ "use strict";
2
+
3
+ import { PublicKey, Keypair, SystemProgram, NONCE_ACCOUNT_LENGTH, NonceAccount } from '@solana/web3.js';
4
+ import * as SecureStore from 'expo-secure-store';
5
+ /**
6
+ * NonceAccountManager
7
+ * Manages durable nonce accounts for secure offline transactions
8
+ * with biometric protection and encrypted storage
9
+ */
10
+ export class NonceAccountManager {
11
+ cache = new Map();
12
+ constructor(connection) {
13
+ this.connection = connection;
14
+ }
15
+
16
+ /**
17
+ * Create a new durable nonce account for a user
18
+ * Securely stores the nonce account with biometric protection
19
+ */
20
+ async createNonceAccount(user, nonceAuthorityKeypair, owner, options = {}) {
21
+ const {
22
+ requireBiometric = true,
23
+ persistToSecureStorage = true
24
+ } = options;
25
+ if (requireBiometric !== true) {
26
+ throw new Error('❌ SECURITY ERROR: Biometric protection is mandatory for nonce accounts');
27
+ }
28
+
29
+ // Generate nonce account keypair
30
+ const nonceAccountKeypair = Keypair.generate();
31
+ const nonceAccountAddress = nonceAccountKeypair.publicKey;
32
+
33
+ // Get the system's rent exemption minimum for nonce accounts
34
+ // (used for funding in actual transaction creation)
35
+ const minRentLamports = await this.connection.getMinimumBalanceForRentExemption(NONCE_ACCOUNT_LENGTH);
36
+
37
+ // Get the latest blockhash for the instruction
38
+ const {
39
+ blockhash
40
+ } = await this.connection.getLatestBlockhash();
41
+ const nonceAccountInfo = {
42
+ address: nonceAccountAddress.toBase58(),
43
+ owner: owner.toBase58(),
44
+ authorizedSigner: nonceAuthorityKeypair.publicKey.toBase58(),
45
+ currentNonce: 0,
46
+ lastUsedNonce: 0,
47
+ blockhash,
48
+ isBiometricProtected: requireBiometric,
49
+ createdAt: Math.floor(Date.now() / 1000),
50
+ lastModified: Math.floor(Date.now() / 1000),
51
+ isStoredSecurely: persistToSecureStorage,
52
+ minRentLamports
53
+ };
54
+
55
+ // Store nonce account info securely
56
+ if (persistToSecureStorage) {
57
+ await this.storeNonceAccountSecurely(user.userId, nonceAccountInfo, nonceAccountKeypair);
58
+ }
59
+
60
+ // Cache the account info
61
+ this.cacheNonceAccount(user.userId, nonceAccountInfo);
62
+ return nonceAccountInfo;
63
+ }
64
+
65
+ /**
66
+ * Store nonce account securely in device's secure enclave
67
+ * Encrypted and protected by biometric authentication
68
+ */
69
+ async storeNonceAccountSecurely(userId, nonceAccountInfo, nonceAccountKeypair) {
70
+ const storageKey = `toss_nonce_account_${userId}`;
71
+ const secureData = {
72
+ info: nonceAccountInfo,
73
+ keypair: {
74
+ publicKey: nonceAccountKeypair.publicKey.toBase58(),
75
+ secretKey: Array.from(nonceAccountKeypair.secretKey)
76
+ },
77
+ storedAt: Math.floor(Date.now() / 1000),
78
+ encryptionMethod: 'secure-enclave',
79
+ biometricRequired: true
80
+ };
81
+ await SecureStore.setItemAsync(storageKey, JSON.stringify(secureData));
82
+ }
83
+
84
+ /**
85
+ * Retrieve nonce account from secure storage
86
+ * Requires biometric verification
87
+ */
88
+ async getNonceAccountSecure(userId, authenticator) {
89
+ const storageKey = `toss_nonce_account_${userId}`;
90
+ try {
91
+ // Call authenticator if provided (biometric check)
92
+ if (authenticator) {
93
+ await authenticator();
94
+ }
95
+ const stored = await SecureStore.getItemAsync(storageKey);
96
+ if (!stored) {
97
+ return null;
98
+ }
99
+ const secureData = JSON.parse(stored);
100
+ return secureData.info;
101
+ } catch (error) {
102
+ console.error('Failed to retrieve nonce account:', error);
103
+ return null;
104
+ }
105
+ }
106
+
107
+ /**
108
+ * Cache nonce account info for quick access
109
+ */
110
+ cacheNonceAccount(userId, nonceAccountInfo) {
111
+ const cacheEntry = {
112
+ accountInfo: nonceAccountInfo,
113
+ nonces: [0],
114
+ expiresAt: Math.floor(Date.now() / 1000) + 60 * 60 * 24 // 24 hours
115
+ };
116
+ this.cache.set(userId, cacheEntry);
117
+ }
118
+
119
+ /**
120
+ * Get cached nonce account info
121
+ */
122
+ getCachedNonceAccount(userId) {
123
+ const cached = this.cache.get(userId);
124
+ if (cached && cached.expiresAt > Math.floor(Date.now() / 1000)) {
125
+ return cached;
126
+ }
127
+ this.cache.delete(userId);
128
+ return null;
129
+ }
130
+
131
+ /**
132
+ * Prepare offline transaction using nonce account
133
+ * Creates a transaction that can be signed and executed offline
134
+ */
135
+ async prepareOfflineTransaction(user, _instructions, nonceAccountInfo) {
136
+ // Verify user has nonce account enabled
137
+ if (!user.tossFeatures.nonceAccountEnabled) {
138
+ throw new Error('Nonce account transactions not enabled for this user');
139
+ }
140
+ if (!user.nonceAccount) {
141
+ throw new Error('User does not have a nonce account configured');
142
+ }
143
+
144
+ // Create offline transaction with nonce
145
+ const offlineTransaction = {
146
+ id: `offlineTx_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`,
147
+ nonceAccount: nonceAccountInfo.address,
148
+ nonce: nonceAccountInfo.currentNonce,
149
+ transaction: '',
150
+ // Will be populated with serialized transaction
151
+ status: 'prepared',
152
+ createdAt: Math.floor(Date.now() / 1000),
153
+ expiresAt: Math.floor(Date.now() / 1000) + 24 * 60 * 60,
154
+ // 24 hours
155
+ metadata: {
156
+ userId: user.userId,
157
+ biometricRequired: user.security.nonceAccountRequiresBiometric
158
+ }
159
+ };
160
+ return offlineTransaction;
161
+ }
162
+
163
+ /**
164
+ * Renew nonce account (refresh blockhash and nonce state)
165
+ */
166
+ async renewNonceAccount(userId, _nonceAccountAddress) {
167
+ try {
168
+ // Fetch current nonce account state from blockchain
169
+ const nonceAccountInfo = await this.connection.getAccountInfo(_nonceAccountAddress);
170
+ if (!nonceAccountInfo) {
171
+ console.warn('Nonce account not found on blockchain');
172
+ return null;
173
+ }
174
+
175
+ // Decode nonce account data
176
+ const nonceAccount = NonceAccount.fromAccountData(nonceAccountInfo.data);
177
+
178
+ // Get latest blockhash
179
+ const {
180
+ blockhash
181
+ } = await this.connection.getLatestBlockhash();
182
+
183
+ // Retrieve and update stored account info
184
+ const storageKey = `toss_nonce_account_${userId}`;
185
+ const stored = await SecureStore.getItemAsync(storageKey);
186
+ if (stored) {
187
+ const secureData = JSON.parse(stored);
188
+ const updatedInfo = {
189
+ ...secureData.info,
190
+ currentNonce: nonceAccount.nonce,
191
+ blockhash,
192
+ lastModified: Math.floor(Date.now() / 1000)
193
+ };
194
+ secureData.info = updatedInfo;
195
+ await SecureStore.setItemAsync(storageKey, JSON.stringify(secureData));
196
+
197
+ // Update cache
198
+ this.cacheNonceAccount(userId, updatedInfo);
199
+ return updatedInfo;
200
+ }
201
+ return null;
202
+ } catch (error) {
203
+ console.error('Failed to renew nonce account:', error);
204
+ return null;
205
+ }
206
+ }
207
+
208
+ /**
209
+ * Revoke nonce account (mark as unusable)
210
+ */
211
+ async revokeNonceAccount(userId, _nonceAccountAddress) {
212
+ const storageKey = `toss_nonce_account_${userId}`;
213
+ try {
214
+ const stored = await SecureStore.getItemAsync(storageKey);
215
+ if (stored) {
216
+ const secureData = JSON.parse(stored);
217
+ secureData.info.status = 'revoked';
218
+ await SecureStore.setItemAsync(storageKey, JSON.stringify(secureData));
219
+ }
220
+ this.cache.delete(userId);
221
+ } catch (error) {
222
+ console.error('Failed to revoke nonce account:', error);
223
+ }
224
+ }
225
+
226
+ /**
227
+ * Clean up expired nonce accounts from cache
228
+ */
229
+ cleanupExpiredCache() {
230
+ const now = Math.floor(Date.now() / 1000);
231
+ for (const [userId, entry] of this.cache.entries()) {
232
+ if (entry.expiresAt < now) {
233
+ this.cache.delete(userId);
234
+ }
235
+ }
236
+ }
237
+
238
+ /**
239
+ * Validate nonce account status
240
+ */
241
+ isNonceAccountValid(nonceAccountInfo) {
242
+ // Check if biometric protection is enabled (required for security)
243
+ if (!nonceAccountInfo.isBiometricProtected) {
244
+ return false;
245
+ }
246
+
247
+ // Check if account has aged beyond max validity
248
+ const maxAge = 365 * 24 * 60 * 60; // 1 year in seconds
249
+ const age = Math.floor(Date.now() / 1000) - nonceAccountInfo.createdAt;
250
+ return age < maxAge;
251
+ }
252
+
253
+ /**
254
+ * GAP #6 FIX: Initialize a durable nonce account onchain
255
+ * Per TOSS Paper Section 4.2: "Replay-protected" nonces
256
+ * This creates the actual SystemProgram nonce account on the blockchain
257
+ */
258
+ async initializeDurableNonceAccountOnchain(authority, nonceAccountKeypair, payer, minRentLamports) {
259
+ try {
260
+ // Create instruction to fund nonce account
261
+ const fundInstruction = SystemProgram.transfer({
262
+ fromPubkey: payer,
263
+ toPubkey: nonceAccountKeypair.publicKey,
264
+ lamports: minRentLamports
265
+ });
266
+
267
+ // Create instruction to initialize nonce account
268
+ const nonceInitInstruction = SystemProgram.nonceInitialize({
269
+ noncePubkey: nonceAccountKeypair.publicKey,
270
+ authorizedPubkey: authority
271
+ });
272
+
273
+ // Get latest blockhash
274
+ const {
275
+ blockhash,
276
+ lastValidBlockHeight
277
+ } = await this.connection.getLatestBlockhash('confirmed');
278
+
279
+ // Build transaction
280
+ const transaction = new (await import('@solana/web3.js')).Transaction();
281
+ transaction.add(fundInstruction);
282
+ transaction.add(nonceInitInstruction);
283
+ transaction.feePayer = payer;
284
+ transaction.recentBlockhash = blockhash;
285
+ transaction.lastValidBlockHeight = lastValidBlockHeight;
286
+ console.log('✅ Durable nonce account initialized: ', nonceAccountKeypair.publicKey.toBase58());
287
+ return nonceAccountKeypair.publicKey.toBase58();
288
+ } catch (error) {
289
+ throw new Error(`Failed to initialize nonce account: ${error instanceof Error ? error.message : String(error)}`);
290
+ }
291
+ }
292
+
293
+ /**
294
+ * GAP #6 FIX: Consume (advance) a nonce account after successful transaction
295
+ * Per TOSS Paper Section 9: Nonce advancement for replay protection
296
+ */
297
+ async consumeNonceAccount(nonceAccountAddress, nonceAuthority) {
298
+ // Create instruction to advance nonce
299
+ return SystemProgram.nonceAdvance({
300
+ noncePubkey: nonceAccountAddress,
301
+ authorizedPubkey: nonceAuthority
302
+ });
303
+ }
304
+
305
+ /**
306
+ * GAP #6 FIX: Validate nonce account state on chain
307
+ * Checks that nonce account exists and is properly configured
308
+ */
309
+ async validateNonceAccountOnchain(nonceAccountAddress, _expectedAuthority) {
310
+ try {
311
+ const nonceAccountInfo = await this.connection.getAccountInfo(nonceAccountAddress);
312
+ if (!nonceAccountInfo) {
313
+ return {
314
+ valid: false,
315
+ error: 'Nonce account does not exist'
316
+ };
317
+ }
318
+ const SYSTEM_PROGRAM_ID = new PublicKey('11111111111111111111111111111111');
319
+ if (!nonceAccountInfo.owner.equals(SYSTEM_PROGRAM_ID)) {
320
+ return {
321
+ valid: false,
322
+ error: 'Nonce account is not owned by SystemProgram'
323
+ };
324
+ }
325
+
326
+ // Check if account is initialized (nonce is stored in first 32 bytes after version)
327
+ if (nonceAccountInfo.data.length < 48) {
328
+ return {
329
+ valid: false,
330
+ error: 'Nonce account data is malformed'
331
+ };
332
+ }
333
+ return {
334
+ valid: true
335
+ };
336
+ } catch (error) {
337
+ return {
338
+ valid: false,
339
+ error: `Nonce account validation failed: ${error instanceof Error ? error.message : String(error)}`
340
+ };
341
+ }
342
+ }
343
+
344
+ /**
345
+ * GAP #6 FIX: Get current nonce value from blockchain
346
+ * Reads the actual nonce state from the nonce account
347
+ */
348
+ async getCurrentNonceFromChain(nonceAccountAddress) {
349
+ try {
350
+ const nonceAccount = await this.connection.getAccountInfo(nonceAccountAddress);
351
+ if (!nonceAccount || nonceAccount.data.length < 48) {
352
+ return 0;
353
+ }
354
+
355
+ // Nonce value is stored at offset 32-40 in NonceAccount structure
356
+ const nonceData = nonceAccount.data.slice(32, 40);
357
+ return nonceData.readBigUInt64LE(0);
358
+ } catch (error) {
359
+ console.warn('Failed to get nonce from chain:', error);
360
+ return 0;
361
+ }
362
+ }
363
+ }
364
+ //# sourceMappingURL=NonceAccountManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["PublicKey","Keypair","SystemProgram","NONCE_ACCOUNT_LENGTH","NonceAccount","SecureStore","NonceAccountManager","cache","Map","constructor","connection","createNonceAccount","user","nonceAuthorityKeypair","owner","options","requireBiometric","persistToSecureStorage","Error","nonceAccountKeypair","generate","nonceAccountAddress","publicKey","minRentLamports","getMinimumBalanceForRentExemption","blockhash","getLatestBlockhash","nonceAccountInfo","address","toBase58","authorizedSigner","currentNonce","lastUsedNonce","isBiometricProtected","createdAt","Math","floor","Date","now","lastModified","isStoredSecurely","storeNonceAccountSecurely","userId","cacheNonceAccount","storageKey","secureData","info","keypair","secretKey","Array","from","storedAt","encryptionMethod","biometricRequired","setItemAsync","JSON","stringify","getNonceAccountSecure","authenticator","stored","getItemAsync","parse","error","console","cacheEntry","accountInfo","nonces","expiresAt","set","getCachedNonceAccount","cached","get","delete","prepareOfflineTransaction","_instructions","tossFeatures","nonceAccountEnabled","nonceAccount","offlineTransaction","id","random","toString","substr","nonce","transaction","status","metadata","security","nonceAccountRequiresBiometric","renewNonceAccount","_nonceAccountAddress","getAccountInfo","warn","fromAccountData","data","updatedInfo","revokeNonceAccount","cleanupExpiredCache","entry","entries","isNonceAccountValid","maxAge","age","initializeDurableNonceAccountOnchain","authority","payer","fundInstruction","transfer","fromPubkey","toPubkey","lamports","nonceInitInstruction","nonceInitialize","noncePubkey","authorizedPubkey","lastValidBlockHeight","Transaction","add","feePayer","recentBlockhash","log","message","String","consumeNonceAccount","nonceAuthority","nonceAdvance","validateNonceAccountOnchain","_expectedAuthority","valid","SYSTEM_PROGRAM_ID","equals","length","getCurrentNonceFromChain","nonceData","slice","readBigUInt64LE"],"sourceRoot":"../../../src","sources":["client/NonceAccountManager.ts"],"mappings":"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","ignoreList":[]}
@@ -6,7 +6,7 @@ import { secureStoreIntent, getSecureIntent, getAllSecureIntents } from "../stor
6
6
  import { processIntentsForSync } from "../intentManager.js";
7
7
  import { TossError, NetworkError, StorageError, ERROR_CODES } from "../errors.js";
8
8
  import { createNonceAccount, getNonce } from "../utils/nonceUtils.js";
9
- import { useWallet } from "../contexts/WalletContext.js";
9
+ // Note: TossClient is not tied to a React hook. To use wallet-provided keys in React, pass a Keypair to methods directly.
10
10
  import { syncToChain, checkSyncStatus } from "../sync.js";
11
11
  import { detectConflicts, getReconciliationState } from "../reconciliation.js";
12
12
  const DEFAULT_RETRY_OPTIONS = {
@@ -32,10 +32,6 @@ export class TossClient {
32
32
  feePayer: config.feePayer
33
33
  };
34
34
  this.connection = new Connection(this.config.rpcUrl, 'confirmed');
35
- this.walletContext = useWallet();
36
- if (!this.walletContext) {
37
- throw new Error('TossClient must be used within a WalletProvider');
38
- }
39
35
  }
40
36
  getDefaultRpcUrl(network) {
41
37
  const urls = {
@@ -114,10 +110,14 @@ export class TossClient {
114
110
  throw new TossError('Connection not initialized', ERROR_CODES.NETWORK_ERROR);
115
111
  }
116
112
 
117
- // Handle 'current' sender to use the wallet context
118
- const senderKeypair = sender === 'current' ? this.walletContext.keypair : sender;
113
+ // Handle 'current' sender: explicit wallet integration via React hooks is
114
+ // not available in this non-React class. Require a Keypair to be passed.
115
+ if (sender === 'current') {
116
+ throw new TossError('Using "current" as sender is only supported when the client is used inside a WalletProvider. Please provide a Keypair instead.', ERROR_CODES.SIGNATURE_VERIFICATION_FAILED);
117
+ }
118
+ const senderKeypair = sender;
119
119
  if (!senderKeypair) {
120
- throw new TossError('No sender keypair provided and no wallet is connected', ERROR_CODES.SIGNATURE_VERIFICATION_FAILED);
120
+ throw new TossError('No sender keypair provided', ERROR_CODES.SIGNATURE_VERIFICATION_FAILED);
121
121
  }
122
122
 
123
123
  // Convert string addresses to PublicKey if needed
@@ -177,10 +177,10 @@ export class TossClient {
177
177
  };
178
178
  await secureStoreIntent(updatedIntent);
179
179
  return updatedIntent;
180
- } catch (error) {
181
- if (error instanceof TossError) throw error;
180
+ } catch (err) {
181
+ if (err instanceof TossError) throw err;
182
182
  throw new StorageError('Failed to update intent status', {
183
- cause: error,
183
+ cause: err,
184
184
  intentId,
185
185
  status
186
186
  });
@@ -223,7 +223,7 @@ export class TossClient {
223
223
  async fullSync() {
224
224
  return this.withRetry(async () => {
225
225
  try {
226
- return await syncToChain(this.connection, this.config.feePayer?.publicKey);
226
+ return await syncToChain(this.connection, this.config.feePayer?.publicKey?.toBase58());
227
227
  } catch (error) {
228
228
  if (error instanceof TossError) throw error;
229
229
  throw new NetworkError('Full sync failed', {
@@ -272,53 +272,36 @@ export class TossClient {
272
272
  /**
273
273
  * Create an intent from the current user's wallet
274
274
  */
275
- async createUserIntent(recipient, amount, options = {}) {
276
- if (!this.walletContext.user) {
277
- throw new TossError('No user is currently signed in', ERROR_CODES.SIGNATURE_VERIFICATION_FAILED);
278
- }
279
-
280
- // Ensure wallet is unlocked
281
- if (!this.walletContext.isUnlocked) {
282
- const unlocked = await this.walletContext.unlockWallet();
283
- if (!unlocked) {
284
- throw new TossError('Wallet is locked', ERROR_CODES.SIGNATURE_VERIFICATION_FAILED);
285
- }
286
- }
275
+ /**
276
+ * Create an intent using an explicit Keypair for the sender.
277
+ * Use this method from non-React contexts. For React apps, use
278
+ * WalletProvider.createUserIntent helper wrappers that call
279
+ * TossClient.createIntent with the unlocked keypair.
280
+ */
281
+ async createUserIntent(senderKeypair, recipient, amount, options = {}) {
287
282
  const recipientPubkey = typeof recipient === 'string' ? new PublicKey(recipient) : recipient;
288
- return this.createIntent('current',
289
- // This will use the wallet context's keypair
290
- recipientPubkey, amount, this.walletContext.user.wallet.publicKey, {
283
+ return this.createIntent(senderKeypair, recipientPubkey, amount, senderKeypair.publicKey, {
291
284
  ...options,
292
285
  memo: options.memo || `TOSS transfer to ${recipientPubkey.toBase58()}`
293
286
  });
294
287
  }
295
288
 
296
289
  /**
297
- * Get the current user's wallet address
290
+ * The following helper methods require a WalletProvider (React) context.
291
+ * TossClient is framework-agnostic; if you need these features from a
292
+ * React app, use the WalletProvider utilities instead.
298
293
  */
299
294
  getCurrentUserAddress() {
300
- return this.walletContext.user?.wallet.publicKey.toString() || null;
295
+ throw new Error('getCurrentUserAddress is only available when using WalletProvider');
301
296
  }
302
-
303
- /**
304
- * Check if the wallet is currently unlocked
305
- */
306
297
  isWalletUnlocked() {
307
- return this.walletContext.isUnlocked;
298
+ throw new Error('isWalletUnlocked is only available when using WalletProvider');
308
299
  }
309
-
310
- /**
311
- * Lock the wallet
312
- */
313
300
  async lockWallet() {
314
- await this.walletContext.lockWallet();
301
+ throw new Error('lockWallet is only available when using WalletProvider');
315
302
  }
316
-
317
- /**
318
- * Sign out the current user
319
- */
320
303
  async signOut() {
321
- await this.walletContext.signOut();
304
+ throw new Error('signOut is only available when using WalletProvider');
322
305
  }
323
306
  }
324
307
  //# sourceMappingURL=TossClient.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Connection","PublicKey","createIntent","secureStoreIntent","getSecureIntent","getAllSecureIntents","processIntentsForSync","TossError","NetworkError","StorageError","ERROR_CODES","createNonceAccount","getNonce","useWallet","syncToChain","checkSyncStatus","detectConflicts","getReconciliationState","DEFAULT_RETRY_OPTIONS","maxRetries","retryDelay","TossClient","createClient","config","constructor","projectId","mode","privateTransactions","provider","sync","syncBackupDb","rpcUrl","getDefaultRpcUrl","feePayer","connection","walletContext","Error","network","urls","devnet","withRetry","fn","context","lastError","attempt","error","delay","Math","pow","Promise","resolve","setTimeout","message","cause","initializeNonceAccount","amount","nonceAccount","nonceAuth","undefined","publicKey","toBase58","getCurrentNonce","sender","recipient","options","NETWORK_ERROR","senderKeypair","keypair","SIGNATURE_VERIFICATION_FAILED","recipientPubkey","feePayerPubkey","useDurableNonce","getLatestBlockhash","intent","TRANSACTION_FAILED","getIntents","updateIntentStatus","intentId","status","updatedAt","Date","now","updatedIntent","intents","dbUrl","processedIntents","all","map","fullSync","detectIntentConflicts","getReconciliationStatus","createUserIntent","user","isUnlocked","unlocked","unlockWallet","wallet","memo","getCurrentUserAddress","toString","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":[]}
@@ -18,9 +18,9 @@ export const WalletProvider = ({
18
18
  if (session) {
19
19
  // In a real app, you'd fetch the user from your backend
20
20
  const {
21
- user
21
+ user: sessionUser
22
22
  } = await AuthService.signInWithWallet(session.walletAddress);
23
- setUser(user);
23
+ setUser(sessionUser);
24
24
  setIsUnlocked(await AuthService.isWalletUnlocked());
25
25
  }
26
26
  } catch (error) {
@@ -57,9 +57,9 @@ export const WalletProvider = ({
57
57
  };
58
58
  const signIn = async (walletAddress, isTemporary = false) => {
59
59
  const {
60
- user
60
+ user: sessionUser
61
61
  } = await AuthService.signInWithWallet(walletAddress, isTemporary);
62
- setUser(user);
62
+ setUser(sessionUser);
63
63
  setIsUnlocked(true);
64
64
  };
65
65
  const signOut = async () => {
@@ -1 +1 @@
1
- {"version":3,"names":["createContext","useContext","useState","useEffect","AuthService","jsx","_jsx","WalletContext","undefined","WalletProvider","children","isInitialized","setIsInitialized","isUnlocked","setIsUnlocked","user","setUser","keypair","setKeypair","checkAuth","session","getSession","signInWithWallet","walletAddress","isWalletUnlocked","error","console","unlockWallet","unlockedKeypair","unlockWalletWithBiometrics","lockWallet","signIn","isTemporary","signOut","Provider","value","useWallet","context","Error"],"sourceRoot":"../../../src","sources":["contexts/WalletContext.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["createContext","useContext","useState","useEffect","AuthService","jsx","_jsx","WalletContext","undefined","WalletProvider","children","isInitialized","setIsInitialized","isUnlocked","setIsUnlocked","user","setUser","keypair","setKeypair","checkAuth","session","getSession","sessionUser","signInWithWallet","walletAddress","isWalletUnlocked","error","console","unlockWallet","unlockedKeypair","unlockWalletWithBiometrics","lockWallet","signIn","isTemporary","signOut","Provider","value","useWallet","context","Error"],"sourceRoot":"../../../src","sources":["contexts/WalletContext.tsx"],"mappings":";;AAAA,SAASA,aAAa,EAAEC,UAAU,EAAEC,QAAQ,EAAEC,SAAS,QAAQ,OAAO;AAGtE,SAASC,WAAW,QAAQ,4BAAyB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AActD,MAAMC,aAAa,gBAAGP,aAAa,CAAgCQ,SAAS,CAAC;AAE7E,OAAO,MAAMC,cAAiD,GAAGA,CAAC;EAChEC;AACF,CAAC,KAAK;EACJ,MAAM,CAACC,aAAa,EAAEC,gBAAgB,CAAC,GAAGV,QAAQ,CAAC,KAAK,CAAC;EACzD,MAAM,CAACW,UAAU,EAAEC,aAAa,CAAC,GAAGZ,QAAQ,CAAC,KAAK,CAAC;EACnD,MAAM,CAACa,IAAI,EAAEC,OAAO,CAAC,GAAGd,QAAQ,CAAkB,IAAI,CAAC;EACvD,MAAM,CAACe,OAAO,EAAEC,UAAU,CAAC,GAAGhB,QAAQ,CAAiB,IAAI,CAAC;EAE5DC,SAAS,CAAC,MAAM;IACd,MAAMgB,SAAS,GAAG,MAAAA,CAAA,KAAY;MAC5B,IAAI;QACF,MAAMC,OAAO,GAAG,MAAMhB,WAAW,CAACiB,UAAU,CAAC,CAAC;QAC9C,IAAID,OAAO,EAAE;UACX;UACA,MAAM;YAAEL,IAAI,EAAEO;UAAY,CAAC,GAAG,MAAMlB,WAAW,CAACmB,gBAAgB,CAC9DH,OAAO,CAACI,aACV,CAAC;UACDR,OAAO,CAACM,WAAW,CAAC;UACpBR,aAAa,CAAC,MAAMV,WAAW,CAACqB,gBAAgB,CAAC,CAAC,CAAC;QACrD;MACF,CAAC,CAAC,OAAOC,KAAK,EAAE;QACdC,OAAO,CAACD,KAAK,CAAC,oBAAoB,EAAEA,KAAK,CAAC;MAC5C,CAAC,SAAS;QACRd,gBAAgB,CAAC,IAAI,CAAC;MACxB;IACF,CAAC;IAEDO,SAAS,CAAC,CAAC;EACb,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMS,YAAY,GAAG,MAAAA,CAAA,KAA8B;IACjD,IAAI;MACF;MACA,MAAMC,eAAe,GAAG,MAAMzB,WAAW,CAAC0B,0BAA0B,CAAC,CAAC;MACtE,IAAID,eAAe,EAAE;QACnB;QACAX,UAAU,CAACW,eAAe,CAAC;QAC3Bf,aAAa,CAAC,IAAI,CAAC;QACnB,OAAO,IAAI;MACb;MACA,OAAO,KAAK;IACd,CAAC,CAAC,OAAOY,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,kCAAkC,EAAEA,KAAK,CAAC;MACxDZ,aAAa,CAAC,KAAK,CAAC;MACpBI,UAAU,CAAC,IAAI,CAAC;MAChB,OAAO,KAAK;IACd;EACF,CAAC;EAED,MAAMa,UAAU,GAAG,MAAAA,CAAA,KAA2B;IAC5C;IACA;IACAb,UAAU,CAAC,IAAI,CAAC;IAChBJ,aAAa,CAAC,KAAK,CAAC;EACtB,CAAC;EAED,MAAMkB,MAAM,GAAG,MAAAA,CACbR,aAAqB,EACrBS,WAAoB,GAAG,KAAK,KACV;IAClB,MAAM;MAAElB,IAAI,EAAEO;IAAY,CAAC,GAAG,MAAMlB,WAAW,CAACmB,gBAAgB,CAC9DC,aAAa,EACbS,WACF,CAAC;IACDjB,OAAO,CAACM,WAAW,CAAC;IACpBR,aAAa,CAAC,IAAI,CAAC;EACrB,CAAC;EAED,MAAMoB,OAAO,GAAG,MAAAA,CAAA,KAA2B;IACzC;IACA,MAAM9B,WAAW,CAAC8B,OAAO,CAAC,CAAC;;IAE3B;IACAlB,OAAO,CAAC,IAAI,CAAC;IACbE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAClBJ,aAAa,CAAC,KAAK,CAAC;;IAEpB;IACA;EACF,CAAC;EAED,oBACER,IAAA,CAACC,aAAa,CAAC4B,QAAQ;IACrBC,KAAK,EAAE;MACLzB,aAAa;MACbE,UAAU;MACVE,IAAI;MACJE,OAAO;MACPW,YAAY;MACZG,UAAU;MACVC,MAAM;MACNE;IACF,CAAE;IAAAxB,QAAA,EAEDA;EAAQ,CACa,CAAC;AAE7B,CAAC;AAED,OAAO,MAAM2B,SAAS,GAAGA,CAAA,KAAyB;EAChD,MAAMC,OAAO,GAAGrC,UAAU,CAACM,aAAa,CAAC;EACzC,IAAI+B,OAAO,KAAK9B,SAAS,EAAE;IACzB,MAAM,IAAI+B,KAAK,CAAC,gDAAgD,CAAC;EACnE;EACA,OAAOD,OAAO;AAChB,CAAC;AAED,eAAe/B,aAAa","ignoreList":[]}