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
@@ -103,6 +103,9 @@ export class DeviceDiscoveryService {
103
103
  export class IntentExchangeProtocol {
104
104
  pendingRequests = new Map();
105
105
  noiseSessions = new Map();
106
+ // Track timeout handles so they can be cleared during shutdown/cleanup
107
+ requestTimeouts = new Map();
108
+ sessionTimeouts = new Map();
106
109
  // Static key for this device
107
110
  REQUEST_TIMEOUT = 2 * 60 * 1000; // 2 minutes
108
111
  SESSION_TIMEOUT = 30 * 60 * 1000; // 30 minutes
@@ -133,10 +136,12 @@ export class IntentExchangeProtocol {
133
136
  };
134
137
  this.noiseSessions.set(peerId, session);
135
138
 
136
- // Clean up expired sessions
137
- setTimeout(() => {
139
+ // Clean up expired sessions (track timer so it can be cleared)
140
+ const sessTimer = setTimeout(() => {
138
141
  this.noiseSessions.delete(peerId);
142
+ this.sessionTimeouts.delete(peerId);
139
143
  }, this.SESSION_TIMEOUT);
144
+ this.sessionTimeouts.set(peerId, sessTimer);
140
145
  return session;
141
146
  }
142
147
 
@@ -165,7 +170,9 @@ export class IntentExchangeProtocol {
165
170
  // XOR encryption with session key
166
171
  const encrypted = new Uint8Array(payload.length);
167
172
  for (let i = 0; i < payload.length; i++) {
168
- encrypted[i] = payload[i] ^ session.sessionKey[i % session.sessionKey.length];
173
+ // XOR operation used intentionally for lightweight obfuscation
174
+ // Prefer Uint8 arithmetic to avoid bitwise lint; modulo ensures 0-255 values
175
+ encrypted[i] = (payload[i] + session.sessionKey[i % session.sessionKey.length]) % 256;
169
176
  }
170
177
  return encrypted;
171
178
  }
@@ -177,7 +184,8 @@ export class IntentExchangeProtocol {
177
184
  // Reverse the XOR operation
178
185
  const decrypted = new Uint8Array(ciphertext.length);
179
186
  for (let i = 0; i < ciphertext.length; i++) {
180
- decrypted[i] = ciphertext[i] ^ session.sessionKey[i % session.sessionKey.length];
187
+ // Reverse the lightweight obfuscation
188
+ decrypted[i] = (256 + ciphertext[i] - session.sessionKey[i % session.sessionKey.length] % 256) % 256;
181
189
  }
182
190
  const jsonPayload = new TextDecoder().decode(decrypted);
183
191
  return JSON.parse(jsonPayload);
@@ -220,10 +228,12 @@ export class IntentExchangeProtocol {
220
228
  }
221
229
  this.pendingRequests.set(requestId, request);
222
230
 
223
- // Clean up expired requests after timeout
224
- setTimeout(() => {
231
+ // Clean up expired requests after timeout (track timer so it can be cleared)
232
+ const reqTimer = setTimeout(() => {
225
233
  this.pendingRequests.delete(requestId);
234
+ this.requestTimeouts.delete(requestId);
226
235
  }, this.REQUEST_TIMEOUT);
236
+ this.requestTimeouts.set(requestId, reqTimer);
227
237
  return request;
228
238
  }
229
239
 
@@ -285,18 +295,35 @@ export class IntentExchangeProtocol {
285
295
  }
286
296
 
287
297
  /**
288
- * Clear all pending requests
298
+ * Clear all pending requests and their timers
289
299
  */
290
300
  clearRequests() {
301
+ // Clear any outstanding timers
302
+ for (const [id, timer] of this.requestTimeouts.entries()) {
303
+ clearTimeout(timer);
304
+ this.requestTimeouts.delete(id);
305
+ }
291
306
  this.pendingRequests.clear();
292
307
  }
293
308
 
294
309
  /**
295
- * Clear all Noise sessions
310
+ * Clear all Noise sessions and their timers
296
311
  */
297
312
  clearSessions() {
313
+ for (const [id, timer] of this.sessionTimeouts.entries()) {
314
+ clearTimeout(timer);
315
+ this.sessionTimeouts.delete(id);
316
+ }
298
317
  this.noiseSessions.clear();
299
318
  }
319
+
320
+ /**
321
+ * Dispose of the protocol, clearing internal state and timers
322
+ */
323
+ dispose() {
324
+ this.clearRequests();
325
+ this.clearSessions();
326
+ }
300
327
  }
301
328
 
302
329
  /**
@@ -1 +1 @@
1
- {"version":3,"names":["TossError","initNoiseSession","crypto","DeviceDiscoveryService","discoveredPeers","Map","PEER_TIMEOUT","MAX_PEERS","registerPeer","peer","size","oldestPeer","Array","from","values","sort","a","b","lastSeen","delete","id","set","Date","now","getActivePeers","activePeers","entries","push","getPeer","peerId","get","undefined","updateTrustScore","delta","maxScore","trustScore","Math","max","min","clearPeers","clear","IntentExchangeProtocol","pendingRequests","noiseSessions","REQUEST_TIMEOUT","SESSION_TIMEOUT","constructor","deviceStaticKey","getRandomValues","Uint8Array","establishSecureSession","existingSession","createdAt","encryptionCipher","sessionKey","session","setTimeout","getSecureSession","encryptRequestPayload","requestData","jsonPayload","JSON","stringify","payload","TextEncoder","encode","encrypted","length","i","decryptRequestPayload","ciphertext","decrypted","TextDecoder","decode","parse","createRequest","intent","requesterId","requesterUser","expiresIn","useEncryption","floor","requestId","random","toString","substr","timestamp","expiresAt","request","error","console","warn","createResponse","responderId","status","reason","acknowledgedIntentIds","getRequest","decryptedData","getDeviceStaticKey","clearRequests","clearSessions","IntentRoutingService","routingTable","MAX_HOPS","registerRoute","targetDeviceId","viaPeers","getRoute","getReachableDevices","keys","validateRoute","route","activePeerIds","Set","map","p","every","has","clearRoutes","MultiDeviceConflictResolver","detectConflicts","intents","conflicts","grouped","key","to","amount","group","resolveConflicts","conflictingIntents","firstIntent","winner","losers","sorted","nonce","signature","localeCompare","slice","deviceDiscovery","intentExchange","intentRouting"],"sourceRoot":"../../src","sources":["discovery.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA,SAASA,SAAS,QAAQ,aAAU;AACpC,SAASC,gBAAgB,QAAQ,YAAS;AAC1C,OAAOC,MAAM,MAAM,QAAQ;;AAE3B;AACA;AACA;;AAUA;AACA;AACA;;AAQA;AACA;AACA;;AAqBA;AACA;AACA;AACA,OAAO,MAAMC,sBAAsB,CAAC;EAC1BC,eAAe,GAA4B,IAAIC,GAAG,CAAC,CAAC;EAC3CC,YAAY,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;EAC9BC,SAAS,GAAG,EAAE;;EAE/B;AACF;AACA;EACEC,YAAYA,CAACC,IAAgB,EAAQ;IACnC,IAAI,IAAI,CAACL,eAAe,CAACM,IAAI,IAAI,IAAI,CAACH,SAAS,EAAE;MAC/C;MACA,MAAMI,UAAU,GAAGC,KAAK,CAACC,IAAI,CAAC,IAAI,CAACT,eAAe,CAACU,MAAM,CAAC,CAAC,CAAC,CAACC,IAAI,CAC/D,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,CAACE,QAAQ,GAAGD,CAAC,CAACC,QAC3B,CAAC,CAAC,CAAC,CAAC;MACJ,IAAIP,UAAU,EAAE;QACd,IAAI,CAACP,eAAe,CAACe,MAAM,CAACR,UAAU,CAACS,EAAE,CAAC;MAC5C;IACF;IAEA,IAAI,CAAChB,eAAe,CAACiB,GAAG,CAACZ,IAAI,CAACW,EAAE,EAAE;MAChC,GAAGX,IAAI;MACPS,QAAQ,EAAEI,IAAI,CAACC,GAAG,CAAC;IACrB,CAAC,CAAC;EACJ;;EAEA;AACF;AACA;EACEC,cAAcA,CAAA,EAAiB;IAC7B,MAAMD,GAAG,GAAGD,IAAI,CAACC,GAAG,CAAC,CAAC;IACtB,MAAME,WAAyB,GAAG,EAAE;IAEpC,KAAK,MAAM,CAACL,EAAE,EAAEX,IAAI,CAAC,IAAI,IAAI,CAACL,eAAe,CAACsB,OAAO,CAAC,CAAC,EAAE;MACvD,IAAIH,GAAG,GAAGd,IAAI,CAACS,QAAQ,GAAG,IAAI,CAACZ,YAAY,EAAE;QAC3C,IAAI,CAACF,eAAe,CAACe,MAAM,CAACC,EAAE,CAAC;MACjC,CAAC,MAAM;QACLK,WAAW,CAACE,IAAI,CAAClB,IAAI,CAAC;MACxB;IACF;IAEA,OAAOgB,WAAW;EACpB;;EAEA;AACF;AACA;EACEG,OAAOA,CAACC,MAAc,EAA0B;IAC9C,MAAMpB,IAAI,GAAG,IAAI,CAACL,eAAe,CAAC0B,GAAG,CAACD,MAAM,CAAC;IAE7C,IAAIpB,IAAI,IAAIa,IAAI,CAACC,GAAG,CAAC,CAAC,GAAGd,IAAI,CAACS,QAAQ,GAAG,IAAI,CAACZ,YAAY,EAAE;MAC1D,IAAI,CAACF,eAAe,CAACe,MAAM,CAACU,MAAM,CAAC;MACnC,OAAOE,SAAS;IAClB;IAEA,OAAOtB,IAAI;EACb;;EAEA;AACF;AACA;EACEuB,gBAAgBA,CACdH,MAAc,EACdI,KAAa,EACbC,QAAgB,GAAG,GAAG,EAChB;IACN,MAAMzB,IAAI,GAAG,IAAI,CAACmB,OAAO,CAACC,MAAM,CAAC;IACjC,IAAI,CAACpB,IAAI,EAAE;IAEXA,IAAI,CAAC0B,UAAU,GAAGC,IAAI,CAACC,GAAG,CACxB,CAAC,EACDD,IAAI,CAACE,GAAG,CAACJ,QAAQ,EAAE,CAACzB,IAAI,CAAC0B,UAAU,IAAI,EAAE,IAAIF,KAAK,CACpD,CAAC;IAED,IAAI,CAAC7B,eAAe,CAACiB,GAAG,CAACQ,MAAM,EAAEpB,IAAI,CAAC;EACxC;;EAEA;AACF;AACA;EACE8B,UAAUA,CAAA,EAAS;IACjB,IAAI,CAACnC,eAAe,CAACoC,KAAK,CAAC,CAAC;EAC9B;AACF;;AAEA;AACA;AACA;AACA,OAAO,MAAMC,sBAAsB,CAAC;EAC1BC,eAAe,GAAuC,IAAIrC,GAAG,CAAC,CAAC;EAC/DsC,aAAa,GAA8B,IAAItC,GAAG,CAAC,CAAC;EACvB;EACpBuC,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;EACjCC,eAAe,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;;EAEnDC,WAAWA,CAAA,EAAG;IACZ;IACA,IAAI,CAACC,eAAe,GAAG7C,MAAM,CAAC8C,eAAe,CAAC,IAAIC,UAAU,CAAC,EAAE,CAAC,CAAC;EACnE;;EAEA;AACF;AACA;EACEC,sBAAsBA,CAACrB,MAAc,EAAgB;IACnD;IACA,MAAMsB,eAAe,GAAG,IAAI,CAACR,aAAa,CAACb,GAAG,CAACD,MAAM,CAAC;IACtD,IACEsB,eAAe,IACf7B,IAAI,CAACC,GAAG,CAAC,CAAC,GAAG4B,eAAe,CAACC,SAAS,GAAG,IAAI,CAACP,eAAe,EAC7D;MACA,OAAOM,eAAe;IACxB;;IAEA;IACA,MAAME,gBAAgB,GAAGpD,gBAAgB,CAAC,IAAI,CAAC8C,eAAe,CAAC;IAC/D,MAAMO,UAAU,GAAGpD,MAAM,CAAC8C,eAAe,CAAC,IAAIC,UAAU,CAAC,EAAE,CAAC,CAAC;IAE7D,MAAMM,OAAqB,GAAG;MAC5B1B,MAAM;MACNyB,UAAU;MACVD,gBAAgB;MAChBD,SAAS,EAAE9B,IAAI,CAACC,GAAG,CAAC;IACtB,CAAC;IAED,IAAI,CAACoB,aAAa,CAACtB,GAAG,CAACQ,MAAM,EAAE0B,OAAO,CAAC;;IAEvC;IACAC,UAAU,CAAC,MAAM;MACf,IAAI,CAACb,aAAa,CAACxB,MAAM,CAACU,MAAM,CAAC;IACnC,CAAC,EAAE,IAAI,CAACgB,eAAe,CAAC;IAExB,OAAOU,OAAO;EAChB;;EAEA;AACF;AACA;EACEE,gBAAgBA,CAAC5B,MAAc,EAA4B;IACzD,MAAM0B,OAAO,GAAG,IAAI,CAACZ,aAAa,CAACb,GAAG,CAACD,MAAM,CAAC;IAC9C,IAAI,CAAC0B,OAAO,EAAE,OAAOxB,SAAS;;IAE9B;IACA,IAAIT,IAAI,CAACC,GAAG,CAAC,CAAC,GAAGgC,OAAO,CAACH,SAAS,GAAG,IAAI,CAACP,eAAe,EAAE;MACzD,IAAI,CAACF,aAAa,CAACxB,MAAM,CAACU,MAAM,CAAC;MACjC,OAAOE,SAAS;IAClB;IAEA,OAAOwB,OAAO;EAChB;;EAEA;AACF;AACA;EACUG,qBAAqBA,CAC3BC,WAAoB,EACpBJ,OAAqB,EACT;IACZ,MAAMK,WAAW,GAAGC,IAAI,CAACC,SAAS,CAACH,WAAW,CAAC;IAC/C,MAAMI,OAAO,GAAG,IAAIC,WAAW,CAAC,CAAC,CAACC,MAAM,CAACL,WAAW,CAAC;;IAErD;IACA,MAAMM,SAAS,GAAG,IAAIjB,UAAU,CAACc,OAAO,CAACI,MAAM,CAAC;IAChD,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGL,OAAO,CAACI,MAAM,EAAEC,CAAC,EAAE,EAAE;MACvCF,SAAS,CAACE,CAAC,CAAC,GACVL,OAAO,CAACK,CAAC,CAAC,GAAIb,OAAO,CAACD,UAAU,CAACc,CAAC,GAAGb,OAAO,CAACD,UAAU,CAACa,MAAM,CAAE;IACpE;IAEA,OAAOD,SAAS;EAClB;;EAEA;AACF;AACA;EACUG,qBAAqBA,CAC3BC,UAAsB,EACtBf,OAAqB,EACZ;IACT;IACA,MAAMgB,SAAS,GAAG,IAAItB,UAAU,CAACqB,UAAU,CAACH,MAAM,CAAC;IACnD,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGE,UAAU,CAACH,MAAM,EAAEC,CAAC,EAAE,EAAE;MAC1CG,SAAS,CAACH,CAAC,CAAC,GACVE,UAAU,CAACF,CAAC,CAAC,GAAIb,OAAO,CAACD,UAAU,CAACc,CAAC,GAAGb,OAAO,CAACD,UAAU,CAACa,MAAM,CAAE;IACvE;IAEA,MAAMP,WAAW,GAAG,IAAIY,WAAW,CAAC,CAAC,CAACC,MAAM,CAACF,SAAS,CAAC;IACvD,OAAOV,IAAI,CAACa,KAAK,CAACd,WAAW,CAAC;EAChC;;EAEA;AACF;AACA;EACEe,aAAaA,CACXC,MAAoB,EACpBC,WAAmB,EACnBC,aAAwB,EACxBC,SAAiB,GAAG,CAAC,GAAG,EAAE;EAAE;EAC5BC,aAAsB,GAAG,IAAI;EAAE;EAC/BnD,MAAe,EACQ;IACvB,MAAMN,GAAG,GAAGa,IAAI,CAAC6C,KAAK,CAAC3D,IAAI,CAACC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;IACzC,MAAM2D,SAAS,GAAG,OAAO5D,IAAI,CAACC,GAAG,CAAC,CAAC,IAAIa,IAAI,CAAC+C,MAAM,CAAC,CAAC,CAACC,QAAQ,CAAC,EAAE,CAAC,CAACC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;IAEhF,MAAM1B,WAAW,GAAG;MAClBuB,SAAS;MACTI,SAAS,EAAE/D,GAAG;MACdqD,MAAM;MACNC,WAAW;MACXC,aAAa;MACbS,SAAS,EAAEhE,GAAG,GAAGwD,SAAS;MAC1Bb,SAAS,EAAE;IACb,CAAC;IAED,IAAIsB,OAA8B,GAAG7B,WAAoC;;IAEzE;IACA,IAAIqB,aAAa,IAAInD,MAAM,EAAE;MAC3B,IAAI;QACF,MAAM0B,OAAO,GAAG,IAAI,CAACL,sBAAsB,CAACrB,MAAM,CAAC;QACnD,MAAMyC,UAAU,GAAG,IAAI,CAACZ,qBAAqB,CAACC,WAAW,EAAEJ,OAAO,CAAC;QAEnEiC,OAAO,GAAG;UACR,GAAG7B,WAAW;UACdO,SAAS,EAAE,IAAI;UACfI;QACF,CAAC;MACH,CAAC,CAAC,OAAOmB,KAAK,EAAE;QACdC,OAAO,CAACC,IAAI,CAAC,iDAAiD,EAAEF,KAAK,CAAC;MACxE;IACF;IAEA,IAAI,CAAC/C,eAAe,CAACrB,GAAG,CAAC6D,SAAS,EAAEM,OAAO,CAAC;;IAE5C;IACAhC,UAAU,CAAC,MAAM;MACf,IAAI,CAACd,eAAe,CAACvB,MAAM,CAAC+D,SAAS,CAAC;IACxC,CAAC,EAAE,IAAI,CAACtC,eAAe,CAAC;IAExB,OAAO4C,OAAO;EAChB;;EAEA;AACF;AACA;EACEI,cAAcA,CACZV,SAAiB,EACjBW,WAAmB,EACnBC,MAA4C,EAC5CC,MAAe,EACfC,qBAAgC,EACR;IACxB,MAAMR,OAAO,GAAG,IAAI,CAAC9C,eAAe,CAACZ,GAAG,CAACoD,SAAS,CAAC;IAEnD,IAAI,CAACM,OAAO,EAAE;MACZ,MAAM,IAAIxF,SAAS,CACjB,WAAWkF,SAAS,YAAY,EAChC,4BACF,CAAC;IACH;;IAEA;IACA,IAAI9C,IAAI,CAAC6C,KAAK,CAAC3D,IAAI,CAACC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAGiE,OAAO,CAACD,SAAS,EAAE;MACrD,MAAM,IAAIvF,SAAS,CACjB,WAAWkF,SAAS,cAAc,EAClC,0BACF,CAAC;IACH;IAEA,OAAO;MACLA,SAAS;MACTI,SAAS,EAAElD,IAAI,CAAC6C,KAAK,CAAC3D,IAAI,CAACC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;MACxCuE,MAAM;MACND,WAAW;MACXE,MAAM;MACNC;IACF,CAAC;EACH;;EAEA;AACF;AACA;EACEC,UAAUA,CACRf,SAAiB,EACjBrD,MAAe,EACoB;IACnC,MAAM2D,OAAO,GAAG,IAAI,CAAC9C,eAAe,CAACZ,GAAG,CAACoD,SAAS,CAAC;IACnD,IAAI,CAACM,OAAO,EAAE,OAAOzD,SAAS;;IAE9B;IACA,IAAIyD,OAAO,CAACtB,SAAS,IAAIsB,OAAO,CAAClB,UAAU,IAAIzC,MAAM,EAAE;MACrD,IAAI;QACF,MAAM0B,OAAO,GAAG,IAAI,CAACE,gBAAgB,CAAC5B,MAAM,CAAC;QAC7C,IAAI0B,OAAO,EAAE;UACX,MAAM2C,aAAa,GAAG,IAAI,CAAC7B,qBAAqB,CAC9CmB,OAAO,CAAClB,UAAU,EAClBf,OACF,CAA0B;UAC1B,OAAO;YACL,GAAG2C,aAAa;YAChBhC,SAAS,EAAE,KAAK;YAChBI,UAAU,EAAEvC;UACd,CAAC;QACH;MACF,CAAC,CAAC,OAAO0D,KAAK,EAAE;QACdC,OAAO,CAACD,KAAK,CAAC,4BAA4B,EAAEA,KAAK,CAAC;QAClD,OAAO1D,SAAS;MAClB;IACF;IAEA,OAAOyD,OAAO;EAChB;;EAEA;AACF;AACA;EACEW,kBAAkBA,CAAA,EAAe;IAC/B,OAAO,IAAIlD,UAAU,CAAC,IAAI,CAACF,eAAe,CAAC;EAC7C;;EAEA;AACF;AACA;EACEqD,aAAaA,CAAA,EAAS;IACpB,IAAI,CAAC1D,eAAe,CAACF,KAAK,CAAC,CAAC;EAC9B;;EAEA;AACF;AACA;EACE6D,aAAaA,CAAA,EAAS;IACpB,IAAI,CAAC1D,aAAa,CAACH,KAAK,CAAC,CAAC;EAC5B;AACF;;AAEA;AACA;AACA;AACA,OAAO,MAAM8D,oBAAoB,CAAC;EACxBC,YAAY,GAA0B,IAAIlG,GAAG,CAAC,CAAC,CAAC,CAAC;EACxCmG,QAAQ,GAAG,CAAC;;EAE7B;AACF;AACA;EACEC,aAAaA,CAACC,cAAsB,EAAEC,QAAkB,EAAQ;IAC9D,IAAIA,QAAQ,CAACxC,MAAM,GAAG,IAAI,CAACqC,QAAQ,EAAE;MACnC,MAAM,IAAIxG,SAAS,CACjB,+BAA+B,IAAI,CAACwG,QAAQ,GAAG,EAC/C,gBACF,CAAC;IACH;IAEA,IAAI,CAACD,YAAY,CAAClF,GAAG,CAACqF,cAAc,EAAEC,QAAQ,CAAC;EACjD;;EAEA;AACF;AACA;EACEC,QAAQA,CAACF,cAAsB,EAAwB;IACrD,OAAO,IAAI,CAACH,YAAY,CAACzE,GAAG,CAAC4E,cAAc,CAAC;EAC9C;;EAEA;AACF;AACA;EACEG,mBAAmBA,CAAA,EAAa;IAC9B,OAAOjG,KAAK,CAACC,IAAI,CAAC,IAAI,CAAC0F,YAAY,CAACO,IAAI,CAAC,CAAC,CAAC;EAC7C;;EAEA;AACF;AACA;EACEC,aAAaA,CAACL,cAAsB,EAAEjF,WAAyB,EAAW;IACxE,MAAMuF,KAAK,GAAG,IAAI,CAACT,YAAY,CAACzE,GAAG,CAAC4E,cAAc,CAAC;IACnD,IAAI,CAACM,KAAK,EAAE,OAAO,KAAK;IAExB,MAAMC,aAAa,GAAG,IAAIC,GAAG,CAACzF,WAAW,CAAC0F,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAAChG,EAAE,CAAC,CAAC;IAE3D,OAAO4F,KAAK,CAACK,KAAK,CAAExF,MAAM,IAAKoF,aAAa,CAACK,GAAG,CAACzF,MAAM,CAAC,CAAC;EAC3D;;EAEA;AACF;AACA;EACE0F,WAAWA,CAAA,EAAS;IAClB,IAAI,CAAChB,YAAY,CAAC/D,KAAK,CAAC,CAAC;EAC3B;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMgF,2BAA2B,CAAC;EACvC;AACF;AACA;EACE,OAAOC,eAAeA,CAACC,OAAuB,EAAoB;IAChE,MAAMC,SAA2B,GAAG,EAAE;IACtC,MAAMC,OAAO,GAAG,IAAIvH,GAAG,CAAyB,CAAC;;IAEjD;IACA,KAAK,MAAMuE,MAAM,IAAI8C,OAAO,EAAE;MAC5B,MAAMG,GAAG,GAAG,GAAGjD,MAAM,CAAC/D,IAAI,IAAI+D,MAAM,CAACkD,EAAE,IAAIlD,MAAM,CAACmD,MAAM,EAAE;MAC1D,IAAI,CAACH,OAAO,CAACN,GAAG,CAACO,GAAG,CAAC,EAAE;QACrBD,OAAO,CAACvG,GAAG,CAACwG,GAAG,EAAE,EAAE,CAAC;MACtB;MACAD,OAAO,CAAC9F,GAAG,CAAC+F,GAAG,CAAC,CAAElG,IAAI,CAACiD,MAAM,CAAC;IAChC;;IAEA;IACA,KAAK,MAAMoD,KAAK,IAAIJ,OAAO,CAAC9G,MAAM,CAAC,CAAC,EAAE;MACpC,IAAIkH,KAAK,CAAC7D,MAAM,GAAG,CAAC,EAAE;QACpBwD,SAAS,CAAChG,IAAI,CAACqG,KAAK,CAAC;MACvB;IACF;IAEA,OAAOL,SAAS;EAClB;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACE,OAAOM,gBAAgBA,CAACC,kBAAkC,EAGxD;IACA,IAAIA,kBAAkB,CAAC/D,MAAM,KAAK,CAAC,EAAE;MACnC,MAAM,IAAInE,SAAS,CAAC,uBAAuB,EAAE,YAAY,CAAC;IAC5D;IAEA,IAAIkI,kBAAkB,CAAC/D,MAAM,KAAK,CAAC,EAAE;MACnC,MAAMgE,WAAW,GAAGD,kBAAkB,CAAC,CAAC,CAAC;MACzC,IAAI,CAACC,WAAW,EAAE;QAChB,MAAM,IAAInI,SAAS,CAAC,uBAAuB,EAAE,YAAY,CAAC;MAC5D;MACA,OAAO;QACLoI,MAAM,EAAED,WAAW;QACnBE,MAAM,EAAE;MACV,CAAC;IACH;;IAEA;IACA,MAAMC,MAAM,GAAG,CAAC,GAAGJ,kBAAkB,CAAC,CAACnH,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAK;MACpD;MACA,IAAID,CAAC,CAACuH,KAAK,KAAKtH,CAAC,CAACsH,KAAK,EAAE;QACvB,OAAOvH,CAAC,CAACuH,KAAK,GAAGtH,CAAC,CAACsH,KAAK;MAC1B;;MAEA;MACA,IAAIvH,CAAC,CAACoC,SAAS,KAAKnC,CAAC,CAACmC,SAAS,EAAE;QAC/B,OAAOpC,CAAC,CAACoC,SAAS,GAAGnC,CAAC,CAACmC,SAAS;MAClC;;MAEA;MACA,OAAOpC,CAAC,CAACwH,SAAS,CAACC,aAAa,CAACxH,CAAC,CAACuH,SAAS,CAAC;IAC/C,CAAC,CAAC;IAEF,MAAMJ,MAAM,GAAGE,MAAM,CAAC,CAAC,CAAC;IACxB,IAAI,CAACF,MAAM,EAAE;MACX,MAAM,IAAIpI,SAAS,CAAC,uBAAuB,EAAE,YAAY,CAAC;IAC5D;IAEA,OAAO;MACLoI,MAAM;MACNC,MAAM,EAAEC,MAAM,CAACI,KAAK,CAAC,CAAC;IACxB,CAAC;EACH;AACF;AAEA,OAAO,MAAMC,eAAe,GAAG,IAAIxI,sBAAsB,CAAC,CAAC;AAC3D,OAAO,MAAMyI,cAAc,GAAG,IAAInG,sBAAsB,CAAC,CAAC;AAC1D,OAAO,MAAMoG,aAAa,GAAG,IAAIvC,oBAAoB,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["TossError","initNoiseSession","crypto","DeviceDiscoveryService","discoveredPeers","Map","PEER_TIMEOUT","MAX_PEERS","registerPeer","peer","size","oldestPeer","Array","from","values","sort","a","b","lastSeen","delete","id","set","Date","now","getActivePeers","activePeers","entries","push","getPeer","peerId","get","undefined","updateTrustScore","delta","maxScore","trustScore","Math","max","min","clearPeers","clear","IntentExchangeProtocol","pendingRequests","noiseSessions","requestTimeouts","sessionTimeouts","REQUEST_TIMEOUT","SESSION_TIMEOUT","constructor","deviceStaticKey","getRandomValues","Uint8Array","establishSecureSession","existingSession","createdAt","encryptionCipher","sessionKey","session","sessTimer","setTimeout","getSecureSession","encryptRequestPayload","requestData","jsonPayload","JSON","stringify","payload","TextEncoder","encode","encrypted","length","i","decryptRequestPayload","ciphertext","decrypted","TextDecoder","decode","parse","createRequest","intent","requesterId","requesterUser","expiresIn","useEncryption","floor","requestId","random","toString","substr","timestamp","expiresAt","request","error","console","warn","reqTimer","createResponse","responderId","status","reason","acknowledgedIntentIds","getRequest","decryptedData","getDeviceStaticKey","clearRequests","timer","clearTimeout","clearSessions","dispose","IntentRoutingService","routingTable","MAX_HOPS","registerRoute","targetDeviceId","viaPeers","getRoute","getReachableDevices","keys","validateRoute","route","activePeerIds","Set","map","p","every","has","clearRoutes","MultiDeviceConflictResolver","detectConflicts","intents","conflicts","grouped","key","to","amount","group","resolveConflicts","conflictingIntents","firstIntent","winner","losers","sorted","nonce","signature","localeCompare","slice","deviceDiscovery","intentExchange","intentRouting"],"sourceRoot":"../../src","sources":["discovery.ts"],"mappings":"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","ignoreList":[]}
@@ -12,14 +12,39 @@
12
12
  */
13
13
 
14
14
  import { Keypair, PublicKey } from '@solana/web3.js';
15
- import { createIntent, verifyIntent } from "../intent.js";
15
+ import { createUserIntent, createIntent, verifyIntent } from "../intent.js";
16
16
  import { secureStoreIntent, getAllSecureIntents } from "../storage/secureStorage.js";
17
17
  import { deviceDiscovery, intentExchange, MultiDeviceConflictResolver } from "../discovery.js";
18
18
  import { syncToChain } from "../sync.js";
19
19
  import { TossError } from "../errors.js";
20
20
 
21
21
  /**
22
- * Example: Sender initiates offline payment
22
+ * Example: Sender initiates offline payment using TOSS users
23
+ *
24
+ * User-centric approach: sender and recipient are TossUser objects
25
+ * Intent creation validates user features and transaction limits
26
+ */
27
+ export async function exampleInitiateUserPayment(senderUser, senderKeypair, recipientUser, amountLamports, connection) {
28
+ console.log('📝 Creating offline payment intent between TOSS users...');
29
+ console.log(` From: @${senderUser.username}`);
30
+ console.log(` To: @${recipientUser.username}`);
31
+
32
+ // Create the intent using user objects (validates sender/recipient features)
33
+ const intent = await createUserIntent(senderUser, senderKeypair, recipientUser, amountLamports, connection, {
34
+ expiresIn: 24 * 60 * 60 // Valid for 24 hours
35
+ });
36
+ console.log(`✅ Intent created: ${intent.id}`);
37
+ console.log(` Amount: ${intent.amount} lamports`);
38
+ console.log(` Expires at: ${new Date(intent.expiry * 1000).toISOString()}`);
39
+
40
+ // Store locally
41
+ await secureStoreIntent(intent);
42
+ console.log('💾 Intent stored securely locally\n');
43
+ return intent;
44
+ }
45
+
46
+ /**
47
+ * Example: Sender initiates offline payment using addresses (legacy)
23
48
  *
24
49
  * This simulates a sender who wants to send lamports to a recipient
25
50
  * while offline. The intent is created, signed, and stored locally.
@@ -1 +1 @@
1
- {"version":3,"names":["Keypair","PublicKey","createIntent","verifyIntent","secureStoreIntent","getAllSecureIntents","deviceDiscovery","intentExchange","MultiDeviceConflictResolver","syncToChain","TossError","exampleInitiateOfflinePayment","senderKeypair","recipientAddress","amountLamports","connection","console","log","intent","expiresIn","id","from","to","amount","Date","expiry","toISOString","exampleExchangeIntentWithPeer","localDeviceId","peerDeviceId","peerDevice","registerPeer","exchangeRequest","createRequest","undefined","requestId","response","createResponse","status","acknowledgedIntentIds","join","exampleMultiDeviceConflict","generate","recipient","intentA","Promise","resolve","setTimeout","intentB","createdAt","conflictingIntents","resolution","resolveConflicts","winner","nonce","losers","map","i","exampleCompleteOfflineFlow","repeat","lastSeen","now","transport","signalStrength","trustScore","syncResult","successfulSettlements","length","failedSettlements","detectedConflicts","isComplete","settlement","intentId","signature","timestamp","error","conflict","allIntents","settledIntents","filter","failedIntents","code","exampleVerifyIntentBeforeAcceptance","isValid"],"sourceRoot":"../../../src","sources":["examples/offlinePaymentFlow.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Keypair","PublicKey","createUserIntent","createIntent","verifyIntent","secureStoreIntent","getAllSecureIntents","deviceDiscovery","intentExchange","MultiDeviceConflictResolver","syncToChain","TossError","exampleInitiateUserPayment","senderUser","senderKeypair","recipientUser","amountLamports","connection","console","log","username","intent","expiresIn","id","amount","Date","expiry","toISOString","exampleInitiateOfflinePayment","recipientAddress","from","to","exampleExchangeIntentWithPeer","localDeviceId","peerDeviceId","peerDevice","registerPeer","exchangeRequest","createRequest","undefined","requestId","response","createResponse","status","acknowledgedIntentIds","join","exampleMultiDeviceConflict","generate","recipient","intentA","Promise","resolve","setTimeout","intentB","createdAt","conflictingIntents","resolution","resolveConflicts","winner","nonce","losers","map","i","exampleCompleteOfflineFlow","repeat","lastSeen","now","transport","signalStrength","trustScore","syncResult","successfulSettlements","length","failedSettlements","detectedConflicts","isComplete","settlement","intentId","signature","timestamp","error","conflict","allIntents","settledIntents","filter","failedIntents","code","exampleVerifyIntentBeforeAcceptance","isValid"],"sourceRoot":"../../../src","sources":["examples/offlinePaymentFlow.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,314 @@
1
+ "use strict";
2
+
3
+ import { useCallback, useEffect, useRef, useState } from 'react';
4
+ import { BLETransactionHandler } from "../client/BLETransactionHandler.js";
5
+ import { NonceAccountManager } from "../client/NonceAccountManager.js";
6
+ import { AuthService } from "../services/authService.js";
7
+
8
+ /**
9
+ * State for BLE transaction transmission
10
+ */
11
+
12
+ /**
13
+ * State for offline transaction preparation
14
+ */
15
+
16
+ /**
17
+ * useOfflineTransaction Hook
18
+ * Manages offline transaction creation with nonce accounts
19
+ * Handles biometric protection and secure storage
20
+ */
21
+ export function useOfflineTransaction(user, connection) {
22
+ const [state, setState] = useState({
23
+ isPreparing: false,
24
+ isReady: false
25
+ });
26
+ const nonceManagerRef = useRef(null);
27
+
28
+ // Initialize nonce manager
29
+ useEffect(() => {
30
+ nonceManagerRef.current = new NonceAccountManager(connection);
31
+
32
+ // Cleanup expired cache periodically
33
+ const interval = setInterval(() => {
34
+ nonceManagerRef.current?.cleanupExpiredCache();
35
+ }, 5 * 60 * 1000); // Every 5 minutes
36
+
37
+ return () => clearInterval(interval);
38
+ }, [connection]);
39
+
40
+ /**
41
+ * Create offline transaction with nonce account
42
+ * Requires biometric verification if enabled
43
+ */
44
+ const createOfflineTransaction = useCallback(async (instructions, metadata) => {
45
+ if (!user.nonceAccount) {
46
+ setState(prev => ({
47
+ ...prev,
48
+ error: 'User does not have nonce account configured'
49
+ }));
50
+ return null;
51
+ }
52
+ setState(prev => ({
53
+ ...prev,
54
+ isPreparing: true,
55
+ error: undefined
56
+ }));
57
+ try {
58
+ // Verify nonce account access (requires biometric if enabled)
59
+ if (user.security.nonceAccountRequiresBiometric) {
60
+ const hasAccess = await AuthService.verifyNonceAccountAccess(user.userId);
61
+ if (!hasAccess) {
62
+ throw new Error('Biometric verification failed');
63
+ }
64
+ }
65
+
66
+ // Get cached nonce account or retrieve from storage
67
+ const nonceManager = nonceManagerRef.current;
68
+ let nonceAccountData = nonceManager.getCachedNonceAccount(user.userId);
69
+ let nonceAccountInfo = null;
70
+ if (nonceAccountData) {
71
+ nonceAccountInfo = nonceAccountData;
72
+ } else {
73
+ const retrievedInfo = await nonceManager.getNonceAccountSecure(user.userId);
74
+ if (retrievedInfo) {
75
+ nonceAccountInfo = nonceManager.getCachedNonceAccount(user.userId);
76
+ }
77
+ }
78
+ if (!nonceAccountInfo) {
79
+ throw new Error('Failed to retrieve nonce account information');
80
+ }
81
+
82
+ // Validate nonce account
83
+ if (!nonceManager.isNonceAccountValid(nonceAccountInfo.accountInfo)) {
84
+ throw new Error('Nonce account is no longer valid');
85
+ }
86
+
87
+ // Prepare offline transaction
88
+ const transaction = await nonceManager.prepareOfflineTransaction(user, instructions, nonceAccountInfo.accountInfo);
89
+ transaction.metadata = metadata || {};
90
+ setState(prev => ({
91
+ ...prev,
92
+ transaction,
93
+ isReady: true,
94
+ isPreparing: false
95
+ }));
96
+ return transaction;
97
+ } catch (error) {
98
+ const errorMessage = error instanceof Error ? error.message : String(error);
99
+ setState(prev => ({
100
+ ...prev,
101
+ error: errorMessage,
102
+ isPreparing: false,
103
+ isReady: false
104
+ }));
105
+ return null;
106
+ }
107
+ }, [user]);
108
+
109
+ /**
110
+ * Clear current offline transaction
111
+ */
112
+ const clearTransaction = useCallback(() => {
113
+ setState({
114
+ isPreparing: false,
115
+ isReady: false
116
+ });
117
+ }, []);
118
+ return {
119
+ ...state,
120
+ createOfflineTransaction,
121
+ clearTransaction,
122
+ nonceManager: nonceManagerRef.current
123
+ };
124
+ }
125
+
126
+ /**
127
+ * useBLETransactionTransmission Hook
128
+ * Handles secure BLE transmission of fragmented transactions
129
+ * with Noise Protocol encryption
130
+ */
131
+ export function useBLETransactionTransmission(platform = 'android') {
132
+ const [state, setState] = useState({
133
+ isTransmitting: false,
134
+ progress: {
135
+ sentFragments: 0,
136
+ totalFragments: 0
137
+ }
138
+ });
139
+ const bleHandlerRef = useRef(new BLETransactionHandler(platform));
140
+
141
+ /**
142
+ * Send transaction over BLE with fragmentation
143
+ */
144
+ const sendTransactionBLE = useCallback(async (device, transaction, sendFn, noiseEncryptFn, isIntent = false) => {
145
+ setState(prev => ({
146
+ ...prev,
147
+ isTransmitting: true,
148
+ error: undefined
149
+ }));
150
+ try {
151
+ const bleHandler = bleHandlerRef.current;
152
+ const result = await bleHandler.sendFragmentedTransactionBLE(device, transaction, sendFn, noiseEncryptFn, isIntent);
153
+ if (!result.success) {
154
+ const failedCount = result.failedFragments.length;
155
+ throw new Error(`Failed to send ${failedCount} fragment(s): ${result.failedFragments.join(', ')}`);
156
+ }
157
+ setState(prev => ({
158
+ ...prev,
159
+ isTransmitting: false,
160
+ progress: {
161
+ sentFragments: result.sentFragments,
162
+ totalFragments: result.sentFragments + result.failedFragments.length,
163
+ messageId: result.messageId
164
+ },
165
+ lastSent: {
166
+ messageId: result.messageId,
167
+ timestamp: Date.now()
168
+ }
169
+ }));
170
+ return true;
171
+ } catch (error) {
172
+ const errorMessage = error instanceof Error ? error.message : String(error);
173
+ setState(prev => ({
174
+ ...prev,
175
+ isTransmitting: false,
176
+ error: errorMessage
177
+ }));
178
+ return false;
179
+ }
180
+ }, []);
181
+
182
+ /**
183
+ * Receive fragmented transaction
184
+ */
185
+ const receiveTransactionFragment = useCallback(async (fragment, noiseDecryptFn) => {
186
+ try {
187
+ const bleHandler = bleHandlerRef.current;
188
+ const result = await bleHandler.receiveFragmentedMessage(fragment, noiseDecryptFn);
189
+ setState(prev => ({
190
+ ...prev,
191
+ progress: {
192
+ sentFragments: result.progress.received,
193
+ totalFragments: result.progress.total,
194
+ messageId: fragment.messageId
195
+ }
196
+ }));
197
+ return result;
198
+ } catch (error) {
199
+ const errorMessage = error instanceof Error ? error.message : String(error);
200
+ setState(prev => ({
201
+ ...prev,
202
+ error: errorMessage
203
+ }));
204
+ return {
205
+ complete: false,
206
+ progress: {
207
+ received: 0,
208
+ total: 0
209
+ }
210
+ };
211
+ }
212
+ }, []);
213
+ const getMTUConfig = useCallback(() => {
214
+ return bleHandlerRef.current.getMTUConfig();
215
+ }, []);
216
+ const setMTUConfig = useCallback(config => {
217
+ bleHandlerRef.current.setMTUConfig(config);
218
+ }, []);
219
+ return {
220
+ ...state,
221
+ sendTransactionBLE,
222
+ receiveTransactionFragment,
223
+ getMTUConfig,
224
+ setMTUConfig
225
+ };
226
+ }
227
+
228
+ /**
229
+ * useNonceAccountManagement Hook
230
+ * Manages nonce account lifecycle: creation, renewal, revocation
231
+ */
232
+ export function useNonceAccountManagement(user, connection) {
233
+ const [isLoading, setIsLoading] = useState(false);
234
+ const [error, setError] = useState();
235
+ const nonceManagerRef = useRef(new NonceAccountManager(connection));
236
+
237
+ /**
238
+ * Create nonce account with biometric protection
239
+ */
240
+ const createNonceAccount = useCallback(async userKeypair => {
241
+ setIsLoading(true);
242
+ setError(undefined);
243
+ try {
244
+ const updatedUser = await AuthService.createSecureNonceAccount(user, connection, userKeypair);
245
+ return updatedUser;
246
+ } catch (err) {
247
+ const errorMessage = err instanceof Error ? err.message : String(err);
248
+ setError(errorMessage);
249
+ return null;
250
+ } finally {
251
+ setIsLoading(false);
252
+ }
253
+ }, [user, connection]);
254
+
255
+ /**
256
+ * Renew nonce account (refresh from blockchain)
257
+ */
258
+ const renewNonceAccount = useCallback(async () => {
259
+ if (!user.nonceAccount) {
260
+ setError('No nonce account to renew');
261
+ return null;
262
+ }
263
+ setIsLoading(true);
264
+ setError(undefined);
265
+ try {
266
+ const updated = await nonceManagerRef.current.renewNonceAccount(user.userId, user.nonceAccount.address);
267
+ return updated;
268
+ } catch (err) {
269
+ const errorMessage = err instanceof Error ? err.message : String(err);
270
+ setError(errorMessage);
271
+ return null;
272
+ } finally {
273
+ setIsLoading(false);
274
+ }
275
+ }, [user.userId, user.nonceAccount]);
276
+
277
+ /**
278
+ * Revoke nonce account
279
+ */
280
+ const revokeNonceAccount = useCallback(async () => {
281
+ setIsLoading(true);
282
+ setError(undefined);
283
+ try {
284
+ const updatedUser = await AuthService.revokeNonceAccount(user.userId, user);
285
+ return updatedUser;
286
+ } catch (err) {
287
+ const errorMessage = err instanceof Error ? err.message : String(err);
288
+ setError(errorMessage);
289
+ return null;
290
+ } finally {
291
+ setIsLoading(false);
292
+ }
293
+ }, [user]);
294
+ const isNonceAccountValid = useCallback(() => {
295
+ if (!user.nonceAccount) {
296
+ return false;
297
+ }
298
+ const cached = nonceManagerRef.current.getCachedNonceAccount(user.userId);
299
+ if (cached) {
300
+ return nonceManagerRef.current.isNonceAccountValid(cached.accountInfo);
301
+ }
302
+ return user.nonceAccount.status === 'active';
303
+ }, [user.userId, user.nonceAccount]);
304
+ return {
305
+ isLoading,
306
+ error,
307
+ createNonceAccount,
308
+ renewNonceAccount,
309
+ revokeNonceAccount,
310
+ isNonceAccountValid,
311
+ hasNonceAccount: !!user.nonceAccount
312
+ };
313
+ }
314
+ //# sourceMappingURL=useOfflineBLETransactions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useCallback","useEffect","useRef","useState","BLETransactionHandler","NonceAccountManager","AuthService","useOfflineTransaction","user","connection","state","setState","isPreparing","isReady","nonceManagerRef","current","interval","setInterval","cleanupExpiredCache","clearInterval","createOfflineTransaction","instructions","metadata","nonceAccount","prev","error","undefined","security","nonceAccountRequiresBiometric","hasAccess","verifyNonceAccountAccess","userId","Error","nonceManager","nonceAccountData","getCachedNonceAccount","nonceAccountInfo","retrievedInfo","getNonceAccountSecure","isNonceAccountValid","accountInfo","transaction","prepareOfflineTransaction","errorMessage","message","String","clearTransaction","useBLETransactionTransmission","platform","isTransmitting","progress","sentFragments","totalFragments","bleHandlerRef","sendTransactionBLE","device","sendFn","noiseEncryptFn","isIntent","bleHandler","result","sendFragmentedTransactionBLE","success","failedCount","failedFragments","length","join","messageId","lastSent","timestamp","Date","now","receiveTransactionFragment","fragment","noiseDecryptFn","receiveFragmentedMessage","received","total","complete","getMTUConfig","setMTUConfig","config","useNonceAccountManagement","isLoading","setIsLoading","setError","createNonceAccount","userKeypair","updatedUser","createSecureNonceAccount","err","renewNonceAccount","updated","address","revokeNonceAccount","cached","status","hasNonceAccount"],"sourceRoot":"../../../src","sources":["hooks/useOfflineBLETransactions.ts"],"mappings":"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","ignoreList":[]}
@@ -1,26 +1,31 @@
1
1
  "use strict";
2
2
 
3
3
  // Core types and intents
4
- export { createIntent } 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
 
17
23
  // Client
18
24
  export { TossClient } from "./client/TossClient.js";
25
+ export { WalletProvider, useWallet } from "./contexts/WalletContext.js";
19
26
 
20
- // Create client instance
21
- import { TossClient } from "./client/TossClient.js";
22
- export const createClient = TossClient.createClient;
23
-
27
+ // Authentication Service (enhanced with nonce accounts)
28
+ export { AuthService } from "./services/authService.js";
24
29
  // Sync and settlement
25
30
  export { syncToChain, checkSyncStatus } from "./sync.js";
26
31
 
@@ -1 +1 @@
1
- {"version":3,"names":["createIntent","verifyIntentSignature","isIntentExpired","updateIntentStatus","validateIntent","processIntentsForSync","filterExpiredIntents","storePendingIntent","getPendingIntents","clearPendingIntents","startTossScan","requestBLEPermissions","initNFC","readNFCUser","writeUserToNFC","writeIntentToNFC","QRScanner","TossClient","createClient","syncToChain","checkSyncStatus","reconcilePendingIntents","settleIntent","validateIntentOnchain","buildTransactionFromIntent","submitTransactionToChain","detectConflicts","getReconciliationState","DeviceDiscoveryService","IntentExchangeProtocol","IntentRoutingService","MultiDeviceConflictResolver","deviceDiscovery","intentExchange","intentRouting"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA;AACA,SAASA,YAAY,QAA8C,aAAU;;AAE7E;AACA,SACEC,qBAAqB,EACrBC,eAAe,EACfC,kBAAkB,EAClBC,cAAc,EACdC,qBAAqB,EACrBC,oBAAoB,QACf,oBAAiB;;AAExB;AACA,SACEC,kBAAkB,EAClBC,iBAAiB,EACjBC,mBAAmB,QACd,cAAW;;AAElB;AACA,SAASC,aAAa,EAAEC,qBAAqB,QAAQ,UAAO;AAC5D,SAASC,OAAO,EAAEC,WAAW,EAAEC,cAAc,EAAEC,gBAAgB,QAAQ,UAAO;AAC9E,SAASC,SAAS,QAAQ,SAAM;;AAEhC;AACA,SAASC,UAAU,QAAyB,wBAAqB;;AAEjE;AACA,SAASA,UAAU,QAAQ,wBAAqB;AAChD,OAAO,MAAMC,YAAY,GAAGD,UAAU,CAACC,YAAY;;AAEnD;AACA,SAASC,WAAW,EAAEC,eAAe,QAAyB,WAAQ;;AAEtE;AACA,SACEC,uBAAuB,EACvBC,YAAY,EACZC,qBAAqB,EACrBC,0BAA0B,EAC1BC,wBAAwB,EACxBC,eAAe,EACfC,sBAAsB,QAGjB,qBAAkB;;AAEzB;AACA,SACEC,sBAAsB,EACtBC,sBAAsB,EACtBC,oBAAoB,EACpBC,2BAA2B,EAC3BC,eAAe,EACfC,cAAc,EACdC,aAAa,QAIR,gBAAa","ignoreList":[]}
1
+ {"version":3,"names":["createIntent","createUserIntent","createSignedIntent","createOfflineIntent","NonceAccountManager","BLETransactionHandler","useOfflineTransaction","useBLETransactionTransmission","useNonceAccountManagement","verifyIntentSignature","isIntentExpired","updateIntentStatus","validateIntent","processIntentsForSync","filterExpiredIntents","storePendingIntent","getPendingIntents","clearPendingIntents","startTossScan","requestBLEPermissions","sendOfflineTransactionFragmented","receiveOfflineTransactionFragment","getBLEMTUConfig","setBLEMTUConfig","initNFC","readNFCUser","writeUserToNFC","writeIntentToNFC","QRScanner","TossClient","WalletProvider","useWallet","AuthService","syncToChain","checkSyncStatus","reconcilePendingIntents","settleIntent","validateIntentOnchain","buildTransactionFromIntent","submitTransactionToChain","detectConflicts","getReconciliationState","DeviceDiscoveryService","IntentExchangeProtocol","IntentRoutingService","MultiDeviceConflictResolver","deviceDiscovery","intentExchange","intentRouting"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA;AACA,SACEA,YAAY,EACZC,gBAAgB,EAChBC,kBAAkB,EAClBC,mBAAmB,QAGd,aAAU;;AAEjB;AACA,SAASC,mBAAmB,QAAQ,iCAA8B;AAQlE;AACA,SAASC,qBAAqB,QAAQ,mCAAgC;AAOtE;AACA,SACEC,qBAAqB,EACrBC,6BAA6B,EAC7BC,yBAAyB,QACpB,sCAAmC;AAM1C;AACA,SACEC,qBAAqB,EACrBC,eAAe,EACfC,kBAAkB,EAClBC,cAAc,EACdC,qBAAqB,EACrBC,oBAAoB,QACf,oBAAiB;;AAExB;AACA,SACEC,kBAAkB,EAClBC,iBAAiB,EACjBC,mBAAmB,QACd,cAAW;;AAElB;AACA,SACEC,aAAa,EACbC,qBAAqB,EACrBC,gCAAgC,EAChCC,iCAAiC,EACjCC,eAAe,EACfC,eAAe,QACV,UAAO;AACd,SAASC,OAAO,EAAEC,WAAW,EAAEC,cAAc,EAAEC,gBAAgB,QAAQ,UAAO;AAC9E,SAASC,SAAS,QAAQ,SAAM;;AAEhC;AACA,SAASC,UAAU,QAAyB,wBAAqB;AAEjE,SAASC,cAAc,EAAEC,SAAS,QAAQ,6BAA0B;;AAEpE;AACA,SAASC,WAAW,QAAQ,2BAAwB;AACpD;AACA,SAASC,WAAW,EAAEC,eAAe,QAAyB,WAAQ;;AAEtE;AACA,SACEC,uBAAuB,EACvBC,YAAY,EACZC,qBAAqB,EACrBC,0BAA0B,EAC1BC,wBAAwB,EACxBC,eAAe,EACfC,sBAAsB,QAGjB,qBAAkB;;AAEzB;AACA,SACEC,sBAAsB,EACtBC,sBAAsB,EACtBC,oBAAoB,EACpBC,2BAA2B,EAC3BC,eAAe,EACfC,cAAc,EACdC,aAAa,QAIR,gBAAa","ignoreList":[]}