@magicred-1/ble-mesh 1.2.2 → 1.2.4

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 CHANGED
@@ -163,19 +163,23 @@ await BleMesh.sendFile('/path/to/document.pdf', { recipientPeerId: 'abc123' });
163
163
 
164
164
  Sends a Solana transaction for any peer to sign as the second signer. Perfect for multi-signature transactions.
165
165
 
166
+ > **⚠️ Important**: Transactions require **encrypted sessions** with target peer(s). By default, `sendTransaction()` automatically initiates handshakes with peers that don't have active sessions. To disable auto-handshake, set `ensureSession: false` in options.
167
+
166
168
  **Targeted (specific peer):**
167
169
  ```typescript
168
170
  await BleMesh.sendTransaction(base64SerializedTx, {
169
171
  recipientPeerId: 'abc123', // Send to specific peer (optional)
170
172
  firstSignerPublicKey: senderPubKey,
171
173
  secondSignerPublicKey: recipientPubKey, // Preferred signer (optional)
172
- description: 'Payment for services'
174
+ description: 'Payment for services',
175
+ ensureSession: true // Default: auto-initiate handshake if needed
173
176
  });
174
177
  ```
175
178
 
176
179
  **Broadcast (any peer can sign):**
177
180
  ```typescript
178
181
  // Broadcast to all peers - any peer can sign
182
+ // Automatically initiates handshakes with all connected peers
179
183
  await BleMesh.sendTransaction(base64SerializedTx, {
180
184
  firstSignerPublicKey: senderPubKey,
181
185
  // No recipientPeerId - broadcasts to all
@@ -184,6 +188,26 @@ await BleMesh.sendTransaction(base64SerializedTx, {
184
188
  });
185
189
  ```
186
190
 
191
+ **Manual session management (advanced):**
192
+ ```typescript
193
+ // Check if encrypted session exists
194
+ const hasSession = await BleMesh.hasEncryptedSession(peerId);
195
+
196
+ if (!hasSession) {
197
+ // Manually initiate handshake
198
+ await BleMesh.initiateHandshake(peerId);
199
+ // Wait briefly for handshake to complete
200
+ await new Promise(resolve => setTimeout(resolve, 500));
201
+ }
202
+
203
+ // Now send transaction without auto-handshake
204
+ await BleMesh.sendTransaction(base64SerializedTx, {
205
+ recipientPeerId: peerId,
206
+ firstSignerPublicKey: senderPubKey,
207
+ ensureSession: false // Skip auto-handshake
208
+ });
209
+ ```
210
+
187
211
  ##### `respondToTransaction(transactionId: string, recipientPeerId: string, response): Promise<void>`
188
212
 
189
213
  Responds to a received transaction with the signed transaction or an error.
@@ -168,13 +168,56 @@ class BleMeshService {
168
168
  * @param options.secondSignerPublicKey - Preferred second signer (optional, any peer can sign if not specified)
169
169
  * @param options.description - Description of the transaction
170
170
  * @param options.recipientPeerId - Specific peer to send to (optional, broadcasts to all if not specified)
171
+ * @param options.ensureSession - Auto-initiate handshake if no encrypted session exists (default: true)
171
172
  */
172
173
  async sendTransaction(serializedTransaction, options) {
173
174
  this.ensureInitialized();
175
+
176
+ // Auto-initiate handshakes if needed (default: true)
177
+ const ensureSession = options?.ensureSession !== false;
178
+ if (ensureSession) {
179
+ await this.ensureEncryptedSessions(options?.recipientPeerId);
180
+ }
174
181
  const txId = Math.random().toString(36).substring(2, 15);
175
182
  return BleMeshModule.sendTransaction(txId, serializedTransaction, options?.recipientPeerId || null, options?.firstSignerPublicKey, options?.secondSignerPublicKey || null, options?.description || null);
176
183
  }
177
184
 
185
+ /**
186
+ * Ensure encrypted sessions exist with target peer(s) before sending transactions.
187
+ * Auto-initiates handshakes for peers without active sessions.
188
+ *
189
+ * @param recipientPeerId - Specific peer ID, or null/undefined to check all connected peers
190
+ */
191
+ async ensureEncryptedSessions(recipientPeerId) {
192
+ if (recipientPeerId) {
193
+ // Check specific peer
194
+ const hasSession = await this.hasEncryptedSession(recipientPeerId);
195
+ if (!hasSession) {
196
+ console.log(`[BleMesh] No encrypted session with ${recipientPeerId}, initiating handshake...`);
197
+ await this.initiateHandshake(recipientPeerId);
198
+ // Wait briefly for handshake to complete
199
+ await new Promise(resolve => setTimeout(resolve, 500));
200
+ }
201
+ } else {
202
+ // Check all connected peers
203
+ const peers = await this.getPeers();
204
+ const connectedPeers = peers.filter(p => p.isConnected);
205
+ console.log(`[BleMesh] Checking sessions for ${connectedPeers.length} connected peers...`);
206
+ for (const peer of connectedPeers) {
207
+ const hasSession = await this.hasEncryptedSession(peer.peerId);
208
+ if (!hasSession) {
209
+ console.log(`[BleMesh] No encrypted session with ${peer.nickname} (${peer.peerId}), initiating handshake...`);
210
+ await this.initiateHandshake(peer.peerId);
211
+ }
212
+ }
213
+
214
+ // Wait for handshakes to complete
215
+ if (connectedPeers.length > 0) {
216
+ await new Promise(resolve => setTimeout(resolve, 1000));
217
+ }
218
+ }
219
+ }
220
+
178
221
  // Respond to a received transaction (sign or reject)
179
222
  async respondToTransaction(transactionId, recipientPeerId, response) {
180
223
  this.ensureInitialized();
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","LINKING_ERROR","Platform","select","ios","default","BleMeshModule","NativeModules","BleMesh","Proxy","get","Error","eventEmitter","NativeEventEmitter","BleMeshService","isInitialized","requestPermissions","OS","requestAndroidPermissions","requestIOSPermissions","apiLevel","Version","permissions","PermissionsAndroid","PERMISSIONS","BLUETOOTH_ADVERTISE","BLUETOOTH_CONNECT","BLUETOOTH_SCAN","ACCESS_FINE_LOCATION","ACCESS_COARSE_LOCATION","results","requestMultiple","status","bluetooth","location","bluetoothAdvertise","bluetoothConnect","bluetoothScan","result","checkPermissions","checkAndroidPermissions","fineLocation","check","advertise","connect","scan","start","config","nickname","autoRequestPermissions","hasAllPermissions","stop","setNickname","ensureInitialized","getMyPeerId","getMyNickname","getPeers","sendMessage","content","channel","sendPrivateMessage","recipientPeerId","sendFile","filePath","options","sendTransaction","serializedTransaction","txId","Math","random","toString","substring","firstSignerPublicKey","secondSignerPublicKey","description","respondToTransaction","transactionId","response","signedTransaction","error","sendReadReceipt","messageId","hasEncryptedSession","peerId","initiateHandshake","sendSolanaNonceTransaction","transaction","getIdentityFingerprint","getPeerFingerprint","broadcastAnnounce","onPeerListUpdated","callback","subscription","addListener","remove","onMessageReceived","onFileReceived","onTransactionReceived","onTransactionResponse","onConnectionStateChanged","onReadReceipt","onDeliveryAck","onError","exports","_default"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","LINKING_ERROR","Platform","select","ios","default","BleMeshModule","NativeModules","BleMesh","Proxy","get","Error","eventEmitter","NativeEventEmitter","BleMeshService","isInitialized","requestPermissions","OS","requestAndroidPermissions","requestIOSPermissions","apiLevel","Version","permissions","PermissionsAndroid","PERMISSIONS","BLUETOOTH_ADVERTISE","BLUETOOTH_CONNECT","BLUETOOTH_SCAN","ACCESS_FINE_LOCATION","ACCESS_COARSE_LOCATION","results","requestMultiple","status","bluetooth","location","bluetoothAdvertise","bluetoothConnect","bluetoothScan","result","checkPermissions","checkAndroidPermissions","fineLocation","check","advertise","connect","scan","start","config","nickname","autoRequestPermissions","hasAllPermissions","stop","setNickname","ensureInitialized","getMyPeerId","getMyNickname","getPeers","sendMessage","content","channel","sendPrivateMessage","recipientPeerId","sendFile","filePath","options","sendTransaction","serializedTransaction","ensureSession","ensureEncryptedSessions","txId","Math","random","toString","substring","firstSignerPublicKey","secondSignerPublicKey","description","hasSession","hasEncryptedSession","console","log","initiateHandshake","Promise","resolve","setTimeout","peers","connectedPeers","filter","p","isConnected","length","peer","peerId","respondToTransaction","transactionId","response","signedTransaction","error","sendReadReceipt","messageId","sendSolanaNonceTransaction","transaction","getIdentityFingerprint","getPeerFingerprint","broadcastAnnounce","onPeerListUpdated","callback","subscription","addListener","remove","onMessageReceived","onFileReceived","onTransactionReceived","onTransactionResponse","onConnectionStateChanged","onReadReceipt","onDeliveryAck","onError","exports","_default"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
@@ -162,13 +162,56 @@ class BleMeshService {
162
162
  * @param options.secondSignerPublicKey - Preferred second signer (optional, any peer can sign if not specified)
163
163
  * @param options.description - Description of the transaction
164
164
  * @param options.recipientPeerId - Specific peer to send to (optional, broadcasts to all if not specified)
165
+ * @param options.ensureSession - Auto-initiate handshake if no encrypted session exists (default: true)
165
166
  */
166
167
  async sendTransaction(serializedTransaction, options) {
167
168
  this.ensureInitialized();
169
+
170
+ // Auto-initiate handshakes if needed (default: true)
171
+ const ensureSession = options?.ensureSession !== false;
172
+ if (ensureSession) {
173
+ await this.ensureEncryptedSessions(options?.recipientPeerId);
174
+ }
168
175
  const txId = Math.random().toString(36).substring(2, 15);
169
176
  return BleMeshModule.sendTransaction(txId, serializedTransaction, options?.recipientPeerId || null, options?.firstSignerPublicKey, options?.secondSignerPublicKey || null, options?.description || null);
170
177
  }
171
178
 
179
+ /**
180
+ * Ensure encrypted sessions exist with target peer(s) before sending transactions.
181
+ * Auto-initiates handshakes for peers without active sessions.
182
+ *
183
+ * @param recipientPeerId - Specific peer ID, or null/undefined to check all connected peers
184
+ */
185
+ async ensureEncryptedSessions(recipientPeerId) {
186
+ if (recipientPeerId) {
187
+ // Check specific peer
188
+ const hasSession = await this.hasEncryptedSession(recipientPeerId);
189
+ if (!hasSession) {
190
+ console.log(`[BleMesh] No encrypted session with ${recipientPeerId}, initiating handshake...`);
191
+ await this.initiateHandshake(recipientPeerId);
192
+ // Wait briefly for handshake to complete
193
+ await new Promise(resolve => setTimeout(resolve, 500));
194
+ }
195
+ } else {
196
+ // Check all connected peers
197
+ const peers = await this.getPeers();
198
+ const connectedPeers = peers.filter(p => p.isConnected);
199
+ console.log(`[BleMesh] Checking sessions for ${connectedPeers.length} connected peers...`);
200
+ for (const peer of connectedPeers) {
201
+ const hasSession = await this.hasEncryptedSession(peer.peerId);
202
+ if (!hasSession) {
203
+ console.log(`[BleMesh] No encrypted session with ${peer.nickname} (${peer.peerId}), initiating handshake...`);
204
+ await this.initiateHandshake(peer.peerId);
205
+ }
206
+ }
207
+
208
+ // Wait for handshakes to complete
209
+ if (connectedPeers.length > 0) {
210
+ await new Promise(resolve => setTimeout(resolve, 1000));
211
+ }
212
+ }
213
+ }
214
+
172
215
  // Respond to a received transaction (sign or reject)
173
216
  async respondToTransaction(transactionId, recipientPeerId, response) {
174
217
  this.ensureInitialized();
@@ -1 +1 @@
1
- {"version":3,"names":["NativeModules","NativeEventEmitter","Platform","PermissionsAndroid","LINKING_ERROR","select","ios","default","BleMeshModule","BleMesh","Proxy","get","Error","eventEmitter","BleMeshService","isInitialized","requestPermissions","OS","requestAndroidPermissions","requestIOSPermissions","apiLevel","Version","permissions","PERMISSIONS","BLUETOOTH_ADVERTISE","BLUETOOTH_CONNECT","BLUETOOTH_SCAN","ACCESS_FINE_LOCATION","ACCESS_COARSE_LOCATION","results","requestMultiple","status","bluetooth","location","bluetoothAdvertise","bluetoothConnect","bluetoothScan","result","checkPermissions","checkAndroidPermissions","fineLocation","check","advertise","connect","scan","start","config","nickname","autoRequestPermissions","hasAllPermissions","stop","setNickname","ensureInitialized","getMyPeerId","getMyNickname","getPeers","sendMessage","content","channel","sendPrivateMessage","recipientPeerId","sendFile","filePath","options","sendTransaction","serializedTransaction","txId","Math","random","toString","substring","firstSignerPublicKey","secondSignerPublicKey","description","respondToTransaction","transactionId","response","signedTransaction","error","sendReadReceipt","messageId","hasEncryptedSession","peerId","initiateHandshake","sendSolanaNonceTransaction","transaction","getIdentityFingerprint","getPeerFingerprint","broadcastAnnounce","onPeerListUpdated","callback","subscription","addListener","remove","onMessageReceived","onFileReceived","onTransactionReceived","onTransactionResponse","onConnectionStateChanged","onReadReceipt","onDeliveryAck","onError"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["NativeModules","NativeEventEmitter","Platform","PermissionsAndroid","LINKING_ERROR","select","ios","default","BleMeshModule","BleMesh","Proxy","get","Error","eventEmitter","BleMeshService","isInitialized","requestPermissions","OS","requestAndroidPermissions","requestIOSPermissions","apiLevel","Version","permissions","PERMISSIONS","BLUETOOTH_ADVERTISE","BLUETOOTH_CONNECT","BLUETOOTH_SCAN","ACCESS_FINE_LOCATION","ACCESS_COARSE_LOCATION","results","requestMultiple","status","bluetooth","location","bluetoothAdvertise","bluetoothConnect","bluetoothScan","result","checkPermissions","checkAndroidPermissions","fineLocation","check","advertise","connect","scan","start","config","nickname","autoRequestPermissions","hasAllPermissions","stop","setNickname","ensureInitialized","getMyPeerId","getMyNickname","getPeers","sendMessage","content","channel","sendPrivateMessage","recipientPeerId","sendFile","filePath","options","sendTransaction","serializedTransaction","ensureSession","ensureEncryptedSessions","txId","Math","random","toString","substring","firstSignerPublicKey","secondSignerPublicKey","description","hasSession","hasEncryptedSession","console","log","initiateHandshake","Promise","resolve","setTimeout","peers","connectedPeers","filter","p","isConnected","length","peer","peerId","respondToTransaction","transactionId","response","signedTransaction","error","sendReadReceipt","messageId","sendSolanaNonceTransaction","transaction","getIdentityFingerprint","getPeerFingerprint","broadcastAnnounce","onPeerListUpdated","callback","subscription","addListener","remove","onMessageReceived","onFileReceived","onTransactionReceived","onTransactionResponse","onConnectionStateChanged","onReadReceipt","onDeliveryAck","onError"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
@@ -137,13 +137,22 @@ declare class BleMeshService {
137
137
  * @param options.secondSignerPublicKey - Preferred second signer (optional, any peer can sign if not specified)
138
138
  * @param options.description - Description of the transaction
139
139
  * @param options.recipientPeerId - Specific peer to send to (optional, broadcasts to all if not specified)
140
+ * @param options.ensureSession - Auto-initiate handshake if no encrypted session exists (default: true)
140
141
  */
141
142
  sendTransaction(serializedTransaction: string, options?: {
142
143
  firstSignerPublicKey: string;
143
144
  secondSignerPublicKey?: string;
144
145
  description?: string;
145
146
  recipientPeerId?: string;
147
+ ensureSession?: boolean;
146
148
  }): Promise<string>;
149
+ /**
150
+ * Ensure encrypted sessions exist with target peer(s) before sending transactions.
151
+ * Auto-initiates handshakes for peers without active sessions.
152
+ *
153
+ * @param recipientPeerId - Specific peer ID, or null/undefined to check all connected peers
154
+ */
155
+ private ensureEncryptedSessions;
147
156
  respondToTransaction(transactionId: string, recipientPeerId: string, response: {
148
157
  signedTransaction?: string;
149
158
  error?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@magicred-1/ble-mesh",
3
- "version": "1.2.2",
3
+ "version": "1.2.4",
4
4
  "description": "BLE Mesh networking library for React Native with seamless permissions",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
package/src/index.ts CHANGED
@@ -301,6 +301,7 @@ class BleMeshService {
301
301
  * @param options.secondSignerPublicKey - Preferred second signer (optional, any peer can sign if not specified)
302
302
  * @param options.description - Description of the transaction
303
303
  * @param options.recipientPeerId - Specific peer to send to (optional, broadcasts to all if not specified)
304
+ * @param options.ensureSession - Auto-initiate handshake if no encrypted session exists (default: true)
304
305
  */
305
306
  async sendTransaction(
306
307
  serializedTransaction: string,
@@ -309,9 +310,17 @@ class BleMeshService {
309
310
  secondSignerPublicKey?: string;
310
311
  description?: string;
311
312
  recipientPeerId?: string;
313
+ ensureSession?: boolean;
312
314
  }
313
315
  ): Promise<string> {
314
316
  this.ensureInitialized();
317
+
318
+ // Auto-initiate handshakes if needed (default: true)
319
+ const ensureSession = options?.ensureSession !== false;
320
+ if (ensureSession) {
321
+ await this.ensureEncryptedSessions(options?.recipientPeerId);
322
+ }
323
+
315
324
  const txId = Math.random().toString(36).substring(2, 15);
316
325
  return BleMeshModule.sendTransaction(
317
326
  txId,
@@ -323,6 +332,44 @@ class BleMeshService {
323
332
  );
324
333
  }
325
334
 
335
+ /**
336
+ * Ensure encrypted sessions exist with target peer(s) before sending transactions.
337
+ * Auto-initiates handshakes for peers without active sessions.
338
+ *
339
+ * @param recipientPeerId - Specific peer ID, or null/undefined to check all connected peers
340
+ */
341
+ private async ensureEncryptedSessions(recipientPeerId?: string | null): Promise<void> {
342
+ if (recipientPeerId) {
343
+ // Check specific peer
344
+ const hasSession = await this.hasEncryptedSession(recipientPeerId);
345
+ if (!hasSession) {
346
+ console.log(`[BleMesh] No encrypted session with ${recipientPeerId}, initiating handshake...`);
347
+ await this.initiateHandshake(recipientPeerId);
348
+ // Wait briefly for handshake to complete
349
+ await new Promise(resolve => setTimeout(resolve, 500));
350
+ }
351
+ } else {
352
+ // Check all connected peers
353
+ const peers = await this.getPeers();
354
+ const connectedPeers = peers.filter(p => p.isConnected);
355
+
356
+ console.log(`[BleMesh] Checking sessions for ${connectedPeers.length} connected peers...`);
357
+
358
+ for (const peer of connectedPeers) {
359
+ const hasSession = await this.hasEncryptedSession(peer.peerId);
360
+ if (!hasSession) {
361
+ console.log(`[BleMesh] No encrypted session with ${peer.nickname} (${peer.peerId}), initiating handshake...`);
362
+ await this.initiateHandshake(peer.peerId);
363
+ }
364
+ }
365
+
366
+ // Wait for handshakes to complete
367
+ if (connectedPeers.length > 0) {
368
+ await new Promise(resolve => setTimeout(resolve, 1000));
369
+ }
370
+ }
371
+ }
372
+
326
373
  // Respond to a received transaction (sign or reject)
327
374
  async respondToTransaction(
328
375
  transactionId: string,