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.
- package/README.md +368 -15
- package/lib/module/ble.js +59 -4
- package/lib/module/ble.js.map +1 -1
- package/lib/module/client/BLETransactionHandler.js +277 -0
- package/lib/module/client/BLETransactionHandler.js.map +1 -0
- package/lib/module/client/NonceAccountManager.js +364 -0
- package/lib/module/client/NonceAccountManager.js.map +1 -0
- package/lib/module/client/TossClient.js +1 -1
- package/lib/module/client/TossClient.js.map +1 -1
- package/lib/module/hooks/useOfflineBLETransactions.js +314 -0
- package/lib/module/hooks/useOfflineBLETransactions.js.map +1 -0
- package/lib/module/index.js +12 -8
- package/lib/module/index.js.map +1 -1
- package/lib/module/intent.js +129 -0
- package/lib/module/intent.js.map +1 -1
- package/lib/module/noise.js +175 -0
- package/lib/module/noise.js.map +1 -1
- package/lib/module/reconciliation.js +155 -0
- package/lib/module/reconciliation.js.map +1 -1
- package/lib/module/services/authService.js +164 -1
- package/lib/module/services/authService.js.map +1 -1
- package/lib/module/storage/secureStorage.js +102 -0
- package/lib/module/storage/secureStorage.js.map +1 -1
- package/lib/module/sync.js +25 -1
- package/lib/module/sync.js.map +1 -1
- package/lib/module/types/nonceAccount.js +2 -0
- package/lib/module/types/nonceAccount.js.map +1 -0
- package/lib/module/types/tossUser.js +16 -1
- package/lib/module/types/tossUser.js.map +1 -1
- package/lib/typescript/src/__tests__/solana-program-simple.test.d.ts +8 -0
- package/lib/typescript/src/__tests__/solana-program-simple.test.d.ts.map +1 -0
- package/lib/typescript/src/ble.d.ts +31 -2
- package/lib/typescript/src/ble.d.ts.map +1 -1
- package/lib/typescript/src/client/BLETransactionHandler.d.ts +98 -0
- package/lib/typescript/src/client/BLETransactionHandler.d.ts.map +1 -0
- package/lib/typescript/src/client/NonceAccountManager.d.ts +82 -0
- package/lib/typescript/src/client/NonceAccountManager.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useOfflineBLETransactions.d.ts +91 -0
- package/lib/typescript/src/hooks/useOfflineBLETransactions.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +9 -4
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/intent.d.ts +15 -0
- package/lib/typescript/src/intent.d.ts.map +1 -1
- package/lib/typescript/src/noise.d.ts +62 -0
- package/lib/typescript/src/noise.d.ts.map +1 -1
- package/lib/typescript/src/reconciliation.d.ts +6 -0
- package/lib/typescript/src/reconciliation.d.ts.map +1 -1
- package/lib/typescript/src/services/authService.d.ts +26 -1
- package/lib/typescript/src/services/authService.d.ts.map +1 -1
- package/lib/typescript/src/storage/secureStorage.d.ts +16 -0
- package/lib/typescript/src/storage/secureStorage.d.ts.map +1 -1
- package/lib/typescript/src/sync.d.ts +6 -1
- package/lib/typescript/src/sync.d.ts.map +1 -1
- package/lib/typescript/src/types/nonceAccount.d.ts +59 -0
- package/lib/typescript/src/types/nonceAccount.d.ts.map +1 -0
- package/lib/typescript/src/types/tossUser.d.ts +16 -0
- package/lib/typescript/src/types/tossUser.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/__tests__/solana-program-simple.test.ts +256 -0
- package/src/ble.ts +105 -4
- package/src/client/BLETransactionHandler.ts +364 -0
- package/src/client/NonceAccountManager.ts +444 -0
- package/src/client/TossClient.ts +1 -1
- package/src/hooks/useOfflineBLETransactions.ts +438 -0
- package/src/index.tsx +40 -6
- package/src/intent.ts +166 -0
- package/src/noise.ts +238 -0
- package/src/reconciliation.ts +184 -0
- package/src/services/authService.ts +188 -1
- package/src/storage/secureStorage.ts +138 -0
- package/src/sync.ts +40 -0
- package/src/types/nonceAccount.ts +75 -0
- 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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
|
|
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":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -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
|
-
//
|
|
22
|
-
|
|
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
|
|
package/lib/module/index.js.map
CHANGED
|
@@ -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","
|
|
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":[]}
|
package/lib/module/intent.js
CHANGED
|
@@ -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
|
package/lib/module/intent.js.map
CHANGED
|
@@ -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":";;AAAA,SAASA,SAAS,QAA6B,iBAAiB;AAEhE,OAAOC,IAAI,MAAM,MAAM;AACvB,SAASC,EAAE,IAAIC,MAAM,QAAQ,MAAM;AACnC,SAASC,IAAI,QAAQ,WAAW;AAChC,OAAOC,IAAI,MAAM,WAAW;AAE5B,SACEC,wBAAwB,QAEnB,4BAAyB;AAChC;;AAEA;AACA;AACA;;AAGA;AACA;AACA;;AA8BA;AACA;AACA;;AAuBA;AACA;AACA;AACA,MAAMC,YAAY,CAAC;EACTC,UAAU,GAChB,IAAIC,GAAG,CAAC,CAAC;EACMC,YAAY,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;;EAE/C,MAAMC,YAAYA,CAChBC,SAAoB,EACpBC,UAAsB,EACL;IACjB,MAAMC,GAAG,GAAGF,SAAS,CAACG,QAAQ,CAAC,CAAC;IAChC,MAAMC,GAAG,GAAGC,IAAI,CAACD,GAAG,CAAC,CAAC;;IAEtB;IACA,IAAI,CAACE,aAAa,CAAC,CAAC;IAEpB,IAAI;MACF;MACA,MAAMC,WAAW,GAAG,MAAMN,UAAU,CAACO,cAAc,CAACR,SAAS,CAAC;MAC9D,MAAMS,UAAU,GAAGF,WAAW,GAC1B,IAAI,CAACG,2BAA2B,CAACH,WAAW,CAAC,GAC7C,CAAC;;MAEL;MACA,MAAMI,MAAM,GAAG,IAAI,CAACf,UAAU,CAACgB,GAAG,CAACV,GAAG,CAAC,IAAI;QACzCW,KAAK,EAAEJ,UAAU;QACjBK,QAAQ,EAAEV;MACZ,CAAC;MACD,MAAMW,SAAS,GAAGC,IAAI,CAACC,GAAG,CAACN,MAAM,CAACE,KAAK,GAAG,CAAC,EAAEJ,UAAU,GAAG,CAAC,CAAC;;MAE5D;MACA,IAAI,CAACb,UAAU,CAACsB,GAAG,CAAChB,GAAG,EAAE;QAAEW,KAAK,EAAEE,SAAS;QAAED,QAAQ,EAAEV;MAAI,CAAC,CAAC;MAC7D,OAAOW,SAAS;IAClB,CAAC,CAAC,OAAOI,KAAK,EAAE;MACdC,OAAO,CAACC,IAAI,CACV,uDAAuD,EACvDF,KACF,CAAC;MACD,MAAMR,MAAM,GAAG,IAAI,CAACf,UAAU,CAACgB,GAAG,CAACV,GAAG,CAAC,IAAI;QAAEW,KAAK,EAAE,CAAC;QAAEC,QAAQ,EAAEV;MAAI,CAAC;MACtE,MAAMW,SAAS,GAAGJ,MAAM,CAACE,KAAK,GAAG,CAAC;MAClC,IAAI,CAACjB,UAAU,CAACsB,GAAG,CAAChB,GAAG,EAAE;QAAEW,KAAK,EAAEE,SAAS;QAAED,QAAQ,EAAEV;MAAI,CAAC,CAAC;MAC7D,OAAOW,SAAS;IAClB;EACF;EAEQL,2BAA2BA,CACjCH,WAAgC,EACxB;IACR;IACA,MAAMe,IAAI,GAAGf,WAAW,CAACe,IAAI;IAC7B,OAAOA,IAAI,EAAEC,MAAM,IAAI,CAAC,GAAGD,IAAI,CAACE,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC;EACrD;EAEQlB,aAAaA,CAAA,EAAG;IACtB,MAAMF,GAAG,GAAGC,IAAI,CAACD,GAAG,CAAC,CAAC;IACtB,KAAK,MAAM,CAACF,GAAG,EAAEuB,KAAK,CAAC,IAAI,IAAI,CAAC7B,UAAU,CAAC8B,OAAO,CAAC,CAAC,EAAE;MACpD,IAAItB,GAAG,GAAGqB,KAAK,CAACX,QAAQ,GAAG,IAAI,CAAChB,YAAY,EAAE;QAC5C,IAAI,CAACF,UAAU,CAAC+B,MAAM,CAACzB,GAAG,CAAC;MAC7B;IACF;EACF;AACF;AAEA,OAAO,MAAM0B,YAAY,GAAG,IAAIjC,YAAY,CAAC,CAAC;;AAE9C;AACA;AACA;AACA;AACA,OAAO,eAAekC,gBAAgBA,CACpCC,UAAoB,EACpBC,aAAsB,EACtBC,aAAuB,EACvBC,MAAc,EACdhC,UAAsB,EACtBiC,OAA4B,GAAG,CAAC,CAAC,EACV;EACvB;EACA,IACEH,aAAa,CAAC/B,SAAS,CAACG,QAAQ,CAAC,CAAC,KAClC2B,UAAU,CAACK,MAAM,CAACnC,SAAS,CAACG,QAAQ,CAAC,CAAC,EACtC;IACA,MAAM,IAAIiC,KAAK,CAAC,2CAA2C,CAAC;EAC9D;;EAEA;EACA,IAAI,CAACN,UAAU,CAACO,YAAY,CAACC,OAAO,EAAE;IACpC,MAAM,IAAIF,KAAK,CAAC,2CAA2C,CAAC;EAC9D;EACA,IAAI,CAACJ,aAAa,CAACK,YAAY,CAACE,UAAU,EAAE;IAC1C,MAAM,IAAIH,KAAK,CAAC,gDAAgD,CAAC;EACnE;;EAEA;EACA,IAAIH,MAAM,GAAGH,UAAU,CAACO,YAAY,CAACG,oBAAoB,EAAE;IACzD,MAAM,IAAIJ,KAAK,CACb,uCAAuCN,UAAU,CAACO,YAAY,CAACG,oBAAoB,WACrF,CAAC;EACH;;EAEA;EACA,MAAMC,SAA0B,GAAG;IACjCC,MAAM,EAAEZ,UAAU,CAACY,MAAM;IACzBC,QAAQ,EAAEb,UAAU,CAACa,QAAQ;IAC7BR,MAAM,EAAE;MACNnC,SAAS,EAAE8B,UAAU,CAACK,MAAM,CAACnC,SAAS;MACtC4C,UAAU,EAAEd,UAAU,CAACK,MAAM,CAACS,UAAU;MACxCC,SAAS,EAAEf,UAAU,CAACK,MAAM,CAACU;IAC/B,CAAC;IACDC,MAAM,EAAEhB,UAAU,CAACgB,MAAM;IACzBC,QAAQ,EAAEjB,UAAU,CAACkB,MAAM,CAACC,EAAE;IAC9BC,SAAS,EAAE3D,MAAM,CAAC;EACpB,CAAC;EAED,MAAM4D,YAA6B,GAAG;IACpCT,MAAM,EAAEV,aAAa,CAACU,MAAM;IAC5BC,QAAQ,EAAEX,aAAa,CAACW,QAAQ;IAChCR,MAAM,EAAE;MACNnC,SAAS,EAAEgC,aAAa,CAACG,MAAM,CAACnC,SAAS;MACzC4C,UAAU,EAAEZ,aAAa,CAACG,MAAM,CAACS,UAAU;MAC3CC,SAAS,EAAEb,aAAa,CAACG,MAAM,CAACU;IAClC,CAAC;IACDC,MAAM,EAAEd,aAAa,CAACc,MAAM;IAC5BC,QAAQ,EAAEf,aAAa,CAACgB,MAAM,CAACC,EAAE;IACjCC,SAAS,EAAE3D,MAAM,CAAC;EACpB,CAAC;;EAED;EACA,MAAM6D,MAAM,GAAG,MAAMC,kBAAkB,CACrCtB,aAAa,EACbC,aAAa,CAACG,MAAM,CAACnC,SAAS,EAC9BiC,MAAM,EACNhC,UAAU,EACV;IAAE,GAAGiC,OAAO;IAAEoB,QAAQ,EAAEb,SAAS;IAAEc,MAAM,EAAEJ;EAAa,CAC1D,CAAC;;EAED;EACAC,MAAM,CAACE,QAAQ,GAAGb,SAAS;EAC3BW,MAAM,CAACG,MAAM,GAAGJ,YAAY;EAE5B,OAAOC,MAAM;AACf;;AAEA;AACA;AACA;AACA,OAAO,eAAeC,kBAAkBA,CACtCG,MAAe,EACfC,SAAoB,EACpBxB,MAAc,EACdhC,UAAsB,EACtBiC,OAA4B,GAAG,CAAC,CAAC,EACV;EACvB,MAAM9B,GAAG,GAAGY,IAAI,CAAC0C,KAAK,CAACrD,IAAI,CAACD,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;EACzC,MAAMuD,aAAa,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;;EAEpC;EACA,MAAM,CAAC;IAAEC;EAAU,CAAC,EAAE/C,KAAK,CAAC,GAAG,MAAMgD,OAAO,CAACC,GAAG,CAAC,CAC/C7D,UAAU,CAAC8D,kBAAkB,CAAC,CAAC,EAC/B7B,OAAO,CAACrB,KAAK,KAAKmD,SAAS,GACvBH,OAAO,CAACI,OAAO,CAAC/B,OAAO,CAACrB,KAAK,CAAC,GAC9Be,YAAY,CAAC7B,YAAY,CAACyD,MAAM,CAACxD,SAAS,EAAEC,UAAU,CAAC,CAC5D,CAAC;;EAEF;EACA,MAAMiE,UAA2C,GAAG;IAClDjB,EAAE,EAAE1D,MAAM,CAAC,CAAC;IACZ4E,IAAI,EAAEX,MAAM,CAACxD,SAAS,CAACG,QAAQ,CAAC,CAAC;IACjCiE,EAAE,EAAEX,SAAS,CAACtD,QAAQ,CAAC,CAAC;IACxB;IACA,IAAI+B,OAAO,CAACoB,QAAQ,GAAG;MAAEA,QAAQ,EAAEpB,OAAO,CAACoB;IAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3D,IAAIpB,OAAO,CAACqB,MAAM,GAAG;MAAEA,MAAM,EAAErB,OAAO,CAACqB;IAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IACrDtB,MAAM;IACNpB,KAAK;IACLwD,MAAM,EAAEjE,GAAG,IAAI8B,OAAO,CAACoC,SAAS,IAAIX,aAAa,CAAC;IAClDC,SAAS;IACTW,QAAQ,EAAErC,OAAO,CAACsC,SAAS,EAAErE,QAAQ,CAAC,CAAC,IAAIqD,MAAM,CAACxD,SAAS,CAACG,QAAQ,CAAC,CAAC;IACtE2C,MAAM,EAAE,SAAS;IACjBD,SAAS,EAAEzC,GAAG;IACdqE,SAAS,EAAErE,GAAG;IACd,IAAI8B,OAAO,CAACwC,YAAY,IAAIxC,OAAO,CAACsC,SAAS,GACzC;MACEE,YAAY,EAAExC,OAAO,CAACwC,YAAY,CAAC1E,SAAS,CAACG,QAAQ,CAAC,CAAC;MACvDqE,SAAS,EAAEtC,OAAO,CAACsC,SAAS,CAACrE,QAAQ,CAAC;IACxC,CAAC,GACD,CAAC,CAAC;EACR,CAAC;;EAED;EACA,MAAMwE,SAAS,GAAGnF,IAAI,CACpBoF,MAAM,CAACT,IAAI,CAACU,IAAI,CAACC,SAAS,CAACZ,UAAU,CAAC,CAAC,EACvCV,MAAM,CAACuB,SACT,CAAC;EAED,OAAO;IACL,GAAGb,UAAU;IACbS,SAAS,EAAEtF,IAAI,CAAC2F,MAAM,CAACL,SAAS;EAClC,CAAC;AACH;;AAEA;AACA;AACA;AACA,OAAO,eAAeM,YAAYA,CAChC7B,MAAoB,EACpBnD,UAAuB,EACL;EAClB,IAAI;IACF;IACA,IAAI,CAACmD,MAAM,CAACuB,SAAS,IAAI,CAACvB,MAAM,CAACe,IAAI,IAAI,CAACf,MAAM,CAACgB,EAAE,EAAE;MACnD,OAAO,KAAK;IACd;;IAEA;IACA,IAAIc,eAAe,CAAC9B,MAAM,CAAC,EAAE;MAC3B,OAAO,KAAK;IACd;;IAEA;IACA,MAAMuB,SAAS,GAAGtF,IAAI,CAAC8F,MAAM,CAAC/B,MAAM,CAACuB,SAAS,CAAC;IAC/C,MAAMS,OAAO,GAAGR,MAAM,CAACT,IAAI,CACzBU,IAAI,CAACC,SAAS,CAAC;MAAE,GAAG1B,MAAM;MAAEuB,SAAS,EAAEX;IAAU,CAAC,CACpD,CAAC;IACD,MAAMhE,SAAS,GAAG,IAAIZ,SAAS,CAACgE,MAAM,CAACe,IAAI,CAAC,CAACkB,OAAO,CAAC,CAAC;IAEtD,IAAI;MACF;MACA;MACA,MAAMC,cAAc,GAAG,IAAIC,UAAU,CAACvF,SAAS,CAAC;MAChD,MAAMwF,cAAc,GAAG,IAAID,UAAU,CAACZ,SAAS,CAAC;MAEhD,MAAMc,QAAQ,GAAGhG,IAAI,CAACD,IAAI,CAACkG,QAAQ,CAACC,MAAM,CACxCf,MAAM,CAACT,IAAI,CAACiB,OAAO,CAAC,EACpBI,cAAc,EACdF,cACF,CAAC;MAED,IAAI,CAACG,QAAQ,EAAE;QACb,OAAO,KAAK;MACd;IACF,CAAC,CAAC,OAAOtE,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,gCAAgC,EAAEA,KAAK,CAAC;MACtD,OAAO,KAAK;IACd;;IAEA;IACA,IAAIlB,UAAU,EAAE;MACd,IAAI;QACF,MAAMM,WAAW,GAAG,MAAMN,UAAU,CAACO,cAAc,CACjD,IAAIpB,SAAS,CAACgE,MAAM,CAACe,IAAI,CAC3B,CAAC;QACD,IAAI5D,WAAW,EAAE;UACf,MAAMqF,YAAY,GAChBrF,WAAW,CAACe,IAAI,EAAEC,MAAM,IAAI,CAAC,GACzBhB,WAAW,CAACe,IAAI,CAACE,YAAY,CAAC,CAAC,CAAC,GAChC,CAAC;UACP,IAAI4B,MAAM,CAACvC,KAAK,IAAI+E,YAAY,EAAE;YAChC,OAAO,KAAK,CAAC,CAAC;UAChB;QACF;MACF,CAAC,CAAC,OAAOzE,KAAK,EAAE;QACdC,OAAO,CAACC,IAAI,CAAC,yBAAyB,EAAEF,KAAK,CAAC;QAC9C;MACF;IACF;IAEA,OAAO,IAAI;EACb,CAAC,CAAC,OAAOA,KAAK,EAAE;IACdC,OAAO,CAACD,KAAK,CAAC,6BAA6B,EAAEA,KAAK,CAAC;IACnD,OAAO,KAAK;EACd;AACF;;AAEA;AACA;AACA;AACA;AACA,OAAO,eAAe0E,YAAYA,CAChCrC,MAAe,EACfC,SAAoB,EACpBxB,MAAc,EACdhC,UAAsB,EACtBiC,OAA4B,GAAG,CAAC,CAAC,EACV;EACvB;EACA,MAAMkB,MAAM,GAAG,MAAMC,kBAAkB,CACrCG,MAAM,EACNC,SAAS,EACTxB,MAAM,EACNhC,UAAU,EACViC,OACF,CAAC;;EAED;EACA,IAAIA,OAAO,CAAC4D,kBAAkB,EAAE;IAC9B,IAAI,CAAC5D,OAAO,CAAC6D,YAAY,EAAE;MACzB,MAAM,IAAI3D,KAAK,CAAC,qDAAqD,CAAC;IACxE;IACA,IAAI,CAACF,OAAO,CAAC8D,QAAQ,EAAE;MACrB,MAAM,IAAI5D,KAAK,CAAC,+CAA+C,CAAC;IAClE;IAEA,MAAM6D,eAAyB,GAAG,CAChCC,MAAM,CAACjE,MAAM;IACb;IAAA,CACD;IAEDmB,MAAM,CAAC+C,SAAS,GAAG,MAAMzG,wBAAwB,CAC/CwC,OAAO,CAAC6D,YAAY,EACpBE,eAAe,EACf/D,OAAO,CAAC8D,QACV,CAAC;EACH;EAEA,OAAO5C,MAAM;AACf;;AAEA;AACA;AACA;AACA,OAAO,SAAS8B,eAAeA,CAAC9B,MAAoB,EAAW;EAC7D,OAAOA,MAAM,CAACiB,MAAM,IAAIrD,IAAI,CAAC0C,KAAK,CAACrD,IAAI,CAACD,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;AACvD;;AAEA;AACA;AACA;AACA,OAAO,SAASgG,kBAAkBA,CAChChD,MAAoB,EACpBN,MAAoB,EACpB3B,KAAc,EACA;EACd,OAAO;IACL,GAAGiC,MAAM;IACTN,MAAM;IACN3B,KAAK;IACLsD,SAAS,EAAEzD,IAAI,CAAC0C,KAAK,CAACrD,IAAI,CAACD,GAAG,CAAC,CAAC,GAAG,IAAI;EACzC,CAAC;AACH","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":[]}
|