toss-expo-sdk 1.0.1 → 1.0.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.
Files changed (36) hide show
  1. package/README.md +68 -65
  2. package/lib/module/client/NonceAccountManager.js +2 -2
  3. package/lib/module/client/NonceAccountManager.js.map +1 -1
  4. package/lib/module/examples/enhancedFeaturesFlow.js +233 -0
  5. package/lib/module/examples/enhancedFeaturesFlow.js.map +1 -0
  6. package/lib/module/examples/offlinePaymentFlow.js +27 -27
  7. package/lib/module/examples/offlinePaymentFlow.js.map +1 -1
  8. package/lib/module/index.js +13 -1
  9. package/lib/module/index.js.map +1 -1
  10. package/lib/module/qr.js +2 -2
  11. package/lib/module/reconciliation.js +4 -4
  12. package/lib/module/reconciliation.js.map +1 -1
  13. package/lib/module/services/authService.js +3 -3
  14. package/lib/module/services/authService.js.map +1 -1
  15. package/lib/module/utils/compression.js +210 -0
  16. package/lib/module/utils/compression.js.map +1 -0
  17. package/lib/module/wifi.js +311 -0
  18. package/lib/module/wifi.js.map +1 -0
  19. package/lib/typescript/src/examples/enhancedFeaturesFlow.d.ts +45 -0
  20. package/lib/typescript/src/examples/enhancedFeaturesFlow.d.ts.map +1 -0
  21. package/lib/typescript/src/index.d.ts +7 -1
  22. package/lib/typescript/src/index.d.ts.map +1 -1
  23. package/lib/typescript/src/utils/compression.d.ts +52 -0
  24. package/lib/typescript/src/utils/compression.d.ts.map +1 -0
  25. package/lib/typescript/src/wifi.d.ts +116 -0
  26. package/lib/typescript/src/wifi.d.ts.map +1 -0
  27. package/package.json +1 -1
  28. package/src/client/NonceAccountManager.ts +2 -2
  29. package/src/examples/enhancedFeaturesFlow.ts +272 -0
  30. package/src/examples/offlinePaymentFlow.ts +27 -27
  31. package/src/index.tsx +26 -1
  32. package/src/qr.tsx +2 -2
  33. package/src/reconciliation.ts +4 -4
  34. package/src/services/authService.ts +3 -3
  35. package/src/utils/compression.ts +247 -0
  36. package/src/wifi.ts +401 -0
package/README.md CHANGED
@@ -1,13 +1,25 @@
1
1
  # TOSS Expo SDK
2
2
 
3
- **TOSS (The Offline Solana Stack)** implements the complete [TOSS Technical Paper](./TOSS_PAPER_IMPLEMENTATION_VERIFICATION.md) — a protocol-correct approach to building offline-first Solana applications without compromising security or finality guarantees.
3
+ <img width="1080" height="360" alt="image" src="https://github.com/user-attachments/assets/7e05de78-ef08-4dd6-a736-1ecf6b377c7f" />
4
+
5
+ **TOSS (The Offline Solana Stack)** — The official React Native SDK implementing the complete TOSS Technical Paper specification — a protocol-correct approach to building offline-first Solana applications without compromising security or finality guarantees.
4
6
 
5
7
  [![npm version](https://img.shields.io/npm/v/toss-expo-sdk)](https://www.npmjs.com/package/toss-expo-sdk)
6
8
  [![License](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE)
7
9
 
10
+ > **"Solana should work anytime, anywhere. Even offline."** — TOSS Whitepaper
11
+
8
12
  **Solana, extended.** TOSS introduces deterministic separation between transaction intent creation and onchain settlement, enabling applications to function seamlessly in disconnected environments while preserving Solana's security model.
9
13
 
10
- ## 🚀 Features
14
+ ## 📚 Documentation
15
+
16
+ - **[TOSS Paper Compliance](./TOSS_PAPER_COMPLIANCE.md)** - Complete mapping of implementation to TOSS Technical Paper sections
17
+ - **[TOSS Whitepaper](https://github.com/zyppprotocol/toss-expo-sdk#toss-whitepaper)** - Mission, vision, and use cases
18
+ - **[TOSS Technical Paper](https://github.com/zyppprotocol/toss-expo-sdk#toss-technical-paper)** - Protocol specification and architecture
19
+
20
+ This SDK is a **protocol-correct implementation** of the TOSS specification, ensuring all security guarantees, design principles, and architectural requirements are met.
21
+
22
+ ## Features
11
23
 
12
24
  ### Core Capabilities
13
25
 
@@ -20,12 +32,12 @@
20
32
 
21
33
  ### Security
22
34
 
23
- -Biometric-protected nonce accounts (mandatory)
24
- -Hardware-backed secure key storage (Secure Enclave / Keymaster)
25
- -Automatic replay protection with durable nonces
26
- -Noise Protocol encryption for BLE transmission
27
- -CRC32 checksums for fragment verification
28
- -Non-custodial by design - users maintain control of their keys
35
+ - Biometric-protected nonce accounts (mandatory)
36
+ - Hardware-backed secure key storage (Secure Enclave / Keymaster)
37
+ - Automatic replay protection with durable nonces
38
+ - Noise Protocol encryption for BLE transmission
39
+ - CRC32 checksums for fragment verification
40
+ - Non-custodial by design - users maintain control of their keys
29
41
 
30
42
  ### Developer Experience
31
43
 
@@ -35,7 +47,7 @@
35
47
  - Built-in retry mechanisms with exponential backoff
36
48
  - Automatic MTU negotiation and fragmentation
37
49
 
38
- ## 📦 Installation
50
+ ## Installation
39
51
 
40
52
  ```bash
41
53
  # Using npm
@@ -47,7 +59,7 @@ yarn add toss-expo-sdk
47
59
 
48
60
  All dependencies (Solana Web3.js, Arcium, Noise Protocol, etc.) are automatically included.
49
61
 
50
- ## 📋 System Model & Design Principles
62
+ ## System Model & Design Principles
51
63
 
52
64
  **TOSS operates under these assumptions:**
53
65
 
@@ -59,16 +71,16 @@ All dependencies (Solana Web3.js, Arcium, Noise Protocol, etc.) are automaticall
59
71
 
60
72
  **TOSS maintains these invariants:**
61
73
 
62
- -Onchain state is canonical
63
- -Offline execution never mutates global state
64
- -All offline artifacts are cryptographically verifiable onchain
65
- -No trusted relayers or delegated signing
66
- -Failure is deterministic and safe
67
- -Privacy is preserved prior to settlement
74
+ - Onchain state is canonical
75
+ - Offline execution never mutates global state
76
+ - All offline artifacts are cryptographically verifiable onchain
77
+ - No trusted relayers or delegated signing
78
+ - Failure is deterministic and safe
79
+ - Privacy is preserved prior to settlement
68
80
 
69
81
  **Violation of any invariant invalidates the offline model.**
70
82
 
71
- ## 🏁 Quick Start
83
+ ## Quick Start
72
84
 
73
85
  ### Initialize the Client
74
86
 
@@ -244,7 +256,7 @@ TOSS follows a deterministic 4-phase model (Section 4.3 of Technical Paper):
244
256
 
245
257
  ---
246
258
 
247
- ## 💾 Local State Management & Reconciliation
259
+ ## Local State Management & Reconciliation
248
260
 
249
261
  TOSS maintains an **encrypted, append-only local intent store** that enables offline operation while waiting for network connectivity.
250
262
 
@@ -293,17 +305,17 @@ console.log(`Conflicts detected: ${syncResult.detectedConflicts.length}`);
293
305
 
294
306
  **Reconciliation Steps:**
295
307
 
296
- 1.Retrieve all pending intents from local storage
297
- 2.Submit to Solana
298
- 3.Verify signatures and state constraints onchain
299
- 4.Deterministically reject invalid or conflicting intents
300
- 5.Update local state with finality
308
+ 1. Retrieve all pending intents from local storage
309
+ 2. Submit to Solana
310
+ 3. Verify signatures and state constraints onchain
311
+ 4. Deterministically reject invalid or conflicting intents
312
+ 5. Update local state with finality
301
313
 
302
314
  **No offline state is treated as final.** Solana's verdict is authoritative.
303
315
 
304
316
  ---
305
317
 
306
- ## 🔐 Confidential Execution via Arcium (Optional)
318
+ ## Confidential Execution via Arcium (Optional)
307
319
 
308
320
  TOSS integrates **Arcium** for confidential computation in pre-settlement stages, protecting sensitive transaction parameters before onchain execution.
309
321
 
@@ -409,28 +421,28 @@ console.log(`Sent ${result.sentFragments}/${result.totalFragments} fragments`);
409
421
 
410
422
  **Biometric Protection**
411
423
 
412
- -All nonce operations require biometric authentication
413
- -Private keys stored in device's secure enclave (iOS Secure Enclave / Android Keymaster)
414
- -User cannot export or backup private keys
424
+ - All nonce operations require biometric authentication
425
+ - Private keys stored in device's secure enclave (iOS Secure Enclave / Android Keymaster)
426
+ - User cannot export or backup private keys
415
427
 
416
428
  **Replay Protection**
417
429
 
418
- -Each transaction uses a unique, incrementing nonce from the blockchain
419
- -Nonce values automatically validated before transaction execution
420
- -Expired nonces automatically detected and rejected
430
+ - Each transaction uses a unique, incrementing nonce from the blockchain
431
+ - Nonce values automatically validated before transaction execution
432
+ - Expired nonces automatically detected and rejected
421
433
 
422
434
  **BLE Transmission**
423
435
 
424
- -Automatic MTU-aware message fragmentation
425
- -CRC32 checksum verification for each fragment
426
- -Automatic retry with exponential backoff
427
- -Noise Protocol encryption support
436
+ - Automatic MTU-aware message fragmentation
437
+ - CRC32 checksum verification for each fragment
438
+ - Automatic retry with exponential backoff
439
+ - Noise Protocol encryption support
428
440
 
429
441
  **Storage & Renewal**
430
442
 
431
- -Nonce accounts cached efficiently in memory
432
- -Automatic renewal from blockchain
433
- -Graceful expiry handling with status tracking
443
+ - Nonce accounts cached efficiently in memory
444
+ - Automatic renewal from blockchain
445
+ - Graceful expiry handling with status tracking
434
446
 
435
447
  ### Detailed Guide
436
448
 
@@ -449,7 +461,7 @@ Topics covered:
449
461
 
450
462
  ---
451
463
 
452
- ## 🔒 Security
464
+ ## Security
453
465
 
454
466
  ### TOSS Security Guarantees
455
467
 
@@ -548,7 +560,7 @@ All errors have the following structure:
548
560
  }
549
561
  ```
550
562
 
551
- ## 🔄 Synchronisation and Settlement
563
+ ## Synchronisation and Settlement
552
564
 
553
565
  TOSS implements deterministic synchronisation (Section 9 of the technical paper) when devices reconnect to the network.
554
566
 
@@ -633,31 +645,31 @@ const activePeers = discovery.getActivePeers();
633
645
  console.log(`${activePeers.length} active peers nearby`);
634
646
  ```
635
647
 
636
- ## ⚠️ Understanding TOSS Limitations
648
+ ## Understanding TOSS Limitations
637
649
 
638
650
  TOSS is designed to fail safely. The following limitations are **by design** and fundamental to any offline system:
639
651
 
640
652
  ### What TOSS Does NOT Do
641
653
 
642
- **Does not resolve offline double-spend**
654
+ **Does not resolve offline double-spend**
643
655
 
644
656
  - Multiple devices can create conflicting intents offline
645
657
  - Conflicts are resolved deterministically onchain (first valid intent wins)
646
658
  - You must verify transaction details before committing to offline transfer
647
659
 
648
- **Does not guarantee settlement success**
660
+ **Does not guarantee settlement success**
649
661
 
650
662
  - Intents may fail onchain due to insufficient balance, nonce violations, or expired intents
651
663
  - Settlement is deterministic but failures can occur
652
664
  - Always check sync results for failed intents
653
665
 
654
- **Does not replace Solana consensus**
666
+ **Does not replace Solana consensus**
655
667
 
656
668
  - TOSS extends operational boundaries but does not modify Solana's execution semantics
657
669
  - All final state transitions occur exclusively on Solana
658
670
  - Transaction validity is determined by Solana's runtime, not TOSS
659
671
 
660
- **Does not eliminate finality dependency on network**
672
+ **Does not eliminate finality dependency on network**
661
673
 
662
674
  - Finality still requires network connectivity to Solana
663
675
  - Offline operation defers settlement, not finality
@@ -667,35 +679,26 @@ TOSS is designed to fail safely. The following limitations are **by design** and
667
679
 
668
680
  TOSS **guarantees**:
669
681
 
670
- -Signatures cannot be forged (Ed25519 cryptography)
671
- -Offline state never mutates global state (local-only storage)
672
- -All artifacts are verifiable onchain (deterministic settlement)
673
- -Conflicts resolve deterministically (based on nonce and timestamp)
674
- -Pre-settlement confidentiality via Arcium (optional)
682
+ - Signatures cannot be forged (Ed25519 cryptography)
683
+ - Offline state never mutates global state (local-only storage)
684
+ - All artifacts are verifiable onchain (deterministic settlement)
685
+ - Conflicts resolve deterministically (based on nonce and timestamp)
686
+ - Pre-settlement confidentiality via Arcium (optional)
675
687
 
676
688
  But TOSS **does not guarantee**:
677
689
 
678
- -That your intent will successfully settle (dependent on onchain state)
679
- -Prevention of offline double-spend (conflicts detected onchain)
680
- -Immediate finality (requires network connectivity)
690
+ - That your intent will successfully settle (dependent on onchain state)
691
+ - Prevention of offline double-spend (conflicts detected onchain)
692
+ - Immediate finality (requires network connectivity)
681
693
 
682
694
  **The distinction:** TOSS guarantees **protocol correctness**, not **settlement success**. These are different requirements.
683
695
 
684
696
  ---
685
697
 
686
- ## 🌐 Network Support
698
+ ## Network Support
687
699
 
688
700
  | Network | Status | RPC Endpoint |
689
701
  | ------- | ------- | ----------------------------------- |
690
- | Devnet |Live | https://api.devnet.solana.com |
691
- | Testnet |Live | https://api.testnet.solana.com |
692
- | Mainnet |Live | https://api.mainnet-beta.solana.com |
693
-
694
- ## 📚 Complete Documentation
695
-
696
- For comprehensive information, see:
697
-
698
- - [DOCUMENTATION_INDEX.md](./DOCUMENTATION_INDEX.md) - Complete documentation guide
699
- - [TOSS_PAPER_IMPLEMENTATION_VERIFICATION.md](./TOSS_PAPER_IMPLEMENTATION_VERIFICATION.md) - TOSS paper compliance
700
- - [PAPER_VS_IMPLEMENTATION_AUDIT.md](./PAPER_VS_IMPLEMENTATION_AUDIT.md) - Detailed technical audit
701
- - [USER_SECURITY_AND_KEY_MANAGEMENT.md](./USER_SECURITY_AND_KEY_MANAGEMENT.md) - Security model and biometric protection
702
+ | Devnet | Live | https://api.devnet.solana.com |
703
+ | Testnet | Live | https://api.testnet.solana.com |
704
+ | Mainnet | Live | https://api.mainnet-beta.solana.com |
@@ -23,7 +23,7 @@ export class NonceAccountManager {
23
23
  persistToSecureStorage = true
24
24
  } = options;
25
25
  if (requireBiometric !== true) {
26
- throw new Error(' SECURITY ERROR: Biometric protection is mandatory for nonce accounts');
26
+ throw new Error(' SECURITY ERROR: Biometric protection is mandatory for nonce accounts');
27
27
  }
28
28
 
29
29
  // Generate nonce account keypair
@@ -283,7 +283,7 @@ export class NonceAccountManager {
283
283
  transaction.feePayer = payer;
284
284
  transaction.recentBlockhash = blockhash;
285
285
  transaction.lastValidBlockHeight = lastValidBlockHeight;
286
- console.log(' Durable nonce account initialized: ', nonceAccountKeypair.publicKey.toBase58());
286
+ console.log(' Durable nonce account initialized: ', nonceAccountKeypair.publicKey.toBase58());
287
287
  return nonceAccountKeypair.publicKey.toBase58();
288
288
  } catch (error) {
289
289
  throw new Error(`Failed to initialize nonce account: ${error instanceof Error ? error.message : String(error)}`);
@@ -1 +1 @@
1
- {"version":3,"names":["PublicKey","Keypair","SystemProgram","NONCE_ACCOUNT_LENGTH","NonceAccount","SecureStore","NonceAccountManager","cache","Map","constructor","connection","createNonceAccount","user","nonceAuthorityKeypair","owner","options","requireBiometric","persistToSecureStorage","Error","nonceAccountKeypair","generate","nonceAccountAddress","publicKey","minRentLamports","getMinimumBalanceForRentExemption","blockhash","getLatestBlockhash","nonceAccountInfo","address","toBase58","authorizedSigner","currentNonce","lastUsedNonce","isBiometricProtected","createdAt","Math","floor","Date","now","lastModified","isStoredSecurely","storeNonceAccountSecurely","userId","cacheNonceAccount","storageKey","secureData","info","keypair","secretKey","Array","from","storedAt","encryptionMethod","biometricRequired","setItemAsync","JSON","stringify","getNonceAccountSecure","authenticator","stored","getItemAsync","parse","error","console","cacheEntry","accountInfo","nonces","expiresAt","set","getCachedNonceAccount","cached","get","delete","prepareOfflineTransaction","_instructions","tossFeatures","nonceAccountEnabled","nonceAccount","offlineTransaction","id","random","toString","substr","nonce","transaction","status","metadata","security","nonceAccountRequiresBiometric","renewNonceAccount","_nonceAccountAddress","getAccountInfo","warn","fromAccountData","data","updatedInfo","revokeNonceAccount","cleanupExpiredCache","entry","entries","isNonceAccountValid","maxAge","age","initializeDurableNonceAccountOnchain","authority","payer","fundInstruction","transfer","fromPubkey","toPubkey","lamports","nonceInitInstruction","nonceInitialize","noncePubkey","authorizedPubkey","lastValidBlockHeight","Transaction","add","feePayer","recentBlockhash","log","message","String","consumeNonceAccount","nonceAuthority","nonceAdvance","validateNonceAccountOnchain","_expectedAuthority","valid","SYSTEM_PROGRAM_ID","equals","length","getCurrentNonceFromChain","nonceData","slice","readBigUInt64LE"],"sourceRoot":"../../../src","sources":["client/NonceAccountManager.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["PublicKey","Keypair","SystemProgram","NONCE_ACCOUNT_LENGTH","NonceAccount","SecureStore","NonceAccountManager","cache","Map","constructor","connection","createNonceAccount","user","nonceAuthorityKeypair","owner","options","requireBiometric","persistToSecureStorage","Error","nonceAccountKeypair","generate","nonceAccountAddress","publicKey","minRentLamports","getMinimumBalanceForRentExemption","blockhash","getLatestBlockhash","nonceAccountInfo","address","toBase58","authorizedSigner","currentNonce","lastUsedNonce","isBiometricProtected","createdAt","Math","floor","Date","now","lastModified","isStoredSecurely","storeNonceAccountSecurely","userId","cacheNonceAccount","storageKey","secureData","info","keypair","secretKey","Array","from","storedAt","encryptionMethod","biometricRequired","setItemAsync","JSON","stringify","getNonceAccountSecure","authenticator","stored","getItemAsync","parse","error","console","cacheEntry","accountInfo","nonces","expiresAt","set","getCachedNonceAccount","cached","get","delete","prepareOfflineTransaction","_instructions","tossFeatures","nonceAccountEnabled","nonceAccount","offlineTransaction","id","random","toString","substr","nonce","transaction","status","metadata","security","nonceAccountRequiresBiometric","renewNonceAccount","_nonceAccountAddress","getAccountInfo","warn","fromAccountData","data","updatedInfo","revokeNonceAccount","cleanupExpiredCache","entry","entries","isNonceAccountValid","maxAge","age","initializeDurableNonceAccountOnchain","authority","payer","fundInstruction","transfer","fromPubkey","toPubkey","lamports","nonceInitInstruction","nonceInitialize","noncePubkey","authorizedPubkey","lastValidBlockHeight","Transaction","add","feePayer","recentBlockhash","log","message","String","consumeNonceAccount","nonceAuthority","nonceAdvance","validateNonceAccountOnchain","_expectedAuthority","valid","SYSTEM_PROGRAM_ID","equals","length","getCurrentNonceFromChain","nonceData","slice","readBigUInt64LE"],"sourceRoot":"../../../src","sources":["client/NonceAccountManager.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,233 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Complete Example: Enhanced TOSS Flow with Compression, Incentives & WiFi
5
+ *
6
+ * Demonstrates:
7
+ * 1. Compression of intent metadata
8
+ * 2. Smart transport selection (WiFi > BLE)
9
+ * 3. Relay incentive tracking
10
+ * 4. Mesh clustering for optimal routing
11
+ */
12
+
13
+ import { Keypair } from '@solana/web3.js';
14
+ import { createIntent, SmartTransportSelector, compressIntentMetadata, decompressIntentMetadata } from 'toss-expo-sdk';
15
+
16
+ /**
17
+ * Example 1: Metadata Compression Flow
18
+ *
19
+ * Compress large memo text before transmission
20
+ */
21
+ export async function exampleCompressedIntentFlow(sender, recipient, amount, connection) {
22
+ console.log('\nExample 1: Compressed Intent Flow\n');
23
+
24
+ // Step 1: Create intent
25
+ const intent = await createIntent(sender, recipient, amount, connection);
26
+
27
+ // Step 2: Create metadata with long memo
28
+ const metadata = {
29
+ memo: 'Payment for services rendered during Q4 2025. This is a longer memo that benefits from compression',
30
+ recipientName: 'Alice Smith',
31
+ transactionType: 'service-payment'
32
+ };
33
+
34
+ // Step 3: Compress metadata
35
+ const {
36
+ compressed,
37
+ savings
38
+ } = await compressIntentMetadata(metadata);
39
+ console.log(`Compressed metadata: ${savings}% smaller`);
40
+ console.log(` Original size: ${JSON.stringify(metadata).length} bytes`);
41
+ console.log(` Compressed size: ${JSON.stringify(compressed).length} bytes`);
42
+
43
+ // Step 4: Store/transmit compressed version
44
+ const transmissionPayload = {
45
+ intent,
46
+ metadata: compressed
47
+ };
48
+ console.log(`\n Transmission payload:`, {
49
+ intentSize: JSON.stringify(intent).length,
50
+ metadataSize: JSON.stringify(compressed).length,
51
+ total: JSON.stringify(transmissionPayload).length
52
+ });
53
+
54
+ // Step 5: On receive, decompress
55
+ const received = await decompressIntentMetadata(compressed);
56
+ console.log(`\nDecompressed metadata:`, received);
57
+ console.log(' Verification: Matches original:', JSON.stringify(received) === JSON.stringify(metadata));
58
+ }
59
+
60
+ /**
61
+ * Example 2: Smart Transport Selection
62
+ *
63
+ * Automatically choose WiFi Direct if available, fallback to BLE
64
+ */
65
+ export async function exampleSmartTransportFlow() {
66
+ console.log('\n Example 2: Smart Transport Selection\n');
67
+ const selector = new SmartTransportSelector();
68
+ const selectedTransport = await selector.selectTransport();
69
+ console.log(`Selected transport: ${selectedTransport}`);
70
+ if (selectedTransport === 'wifi') {
71
+ console.log(' Benefits:');
72
+ console.log(' • MTU: 1200 bytes (vs BLE 480 bytes)');
73
+ console.log(' • Speed: ~2.5x faster');
74
+ console.log(' • Ideal for bulk transfers');
75
+ } else {
76
+ console.log(' Benefits:');
77
+ console.log(' • Widely compatible');
78
+ console.log(' • Lower power than WiFi');
79
+ console.log(' • Sufficient for most intents');
80
+ }
81
+ const shouldUseWiFi = await selector.shouldUseWiFi(false);
82
+ console.log(`\nWiFi Direct recommended: ${shouldUseWiFi}`);
83
+ }
84
+
85
+ /**
86
+ * Example 3: Relay Incentive Tracking
87
+ *
88
+ * Calculate and track rewards for devices relaying transactions
89
+ */
90
+ export async function exampleRelayIncentiveFlow() {
91
+ console.log('\nExample 3: Relay Incentive Tracking\n');
92
+
93
+ // Simulate relay path: Device A → Device B → Device C → Gateway
94
+ const relayPath = ['deviceB_address_here', 'deviceC_address_here', 'gateway_address_here'];
95
+
96
+ // Step 1: Calculate rewards for each relay (in production)
97
+ // const rewards = calculateRelayRewards(relayPath);
98
+ const rewardPerRelay = 1000; // 1000 lamports per relay per hop
99
+
100
+ console.log('Relay reward structure:');
101
+ for (let i = 0; i < relayPath.length; i++) {
102
+ console.log(` ${relayPath[i]}: ${rewardPerRelay * (relayPath.length - i)} lamports`);
103
+ }
104
+
105
+ // Step 2: Track which relays contributed
106
+ const totalReward = relayPath.length * rewardPerRelay;
107
+ console.log(`\nTotal rewards distributed: ${totalReward} lamports`);
108
+
109
+ // Step 3: In production, after successful settlement:
110
+ // await trackRelayContribution('intent-id', relayPath, connection, feePayer);
111
+ console.log('\nRelay contributions tracked for future settlement');
112
+ console.log(' (In production, rewards would be transferred onchain)');
113
+ }
114
+
115
+ /**
116
+ * Example 4: Mesh Clustering & Smart Routing
117
+ *
118
+ * Use signal strength to form clusters and find optimal paths
119
+ */
120
+ export async function exampleMeshClusteringFlow() {
121
+ console.log('\nExample 4: Mesh Clustering & Smart Routing\n');
122
+
123
+ // Step 1: Detect clusters (in production, would use actual device discovery)
124
+ console.log('Detected 3 clusters:');
125
+ console.log(' Cluster A: 5 devices');
126
+ console.log(' Cluster B: 3 devices');
127
+ console.log(' Cluster C: 2 devices');
128
+
129
+ // Step 2: Find optimal route to target
130
+ const targetDeviceId = 'target-device-123';
131
+ console.log(`\nOptimal route to ${targetDeviceId}:`);
132
+ console.log(' Multi-hop path (2 hops):');
133
+ console.log(' 0: relay-1');
134
+ console.log(' 1: target-device-123');
135
+
136
+ // Step 3: Track relay performance (in production)
137
+ console.log('\nRelay performance tracking:');
138
+ console.log(' Relay 1 score: 95/100 (fast & reliable)');
139
+ console.log(' Relay 2 score: 72/100 (slower)');
140
+ console.log(' Relay 3 score: 45/100 (failed recently)');
141
+
142
+ // Step 4: Select best relay
143
+ console.log('\nBest relay selected: relay-1');
144
+ }
145
+
146
+ /**
147
+ * Example 5: Complete Production Flow
148
+ *
149
+ * Integrates compression + WiFi transport + incentives + optimal routing
150
+ */
151
+ export async function exampleCompleteEnhancedFlow(sender, recipient, amount, connection, _feePayer) {
152
+ console.log('\n Example 5: Complete Enhanced TOSS Flow\n');
153
+
154
+ // Phase 1: Creation (offline)
155
+ console.log('Phase 1: Intent Creation (Offline)\n');
156
+ const intent = await createIntent(sender, recipient, amount, connection);
157
+ console.log(' Intent created and signed');
158
+ const metadata = {
159
+ memo: 'Complete flow demonstration',
160
+ timestamp: new Date().toISOString()
161
+ };
162
+ const {
163
+ compressed,
164
+ savings
165
+ } = await compressIntentMetadata(metadata);
166
+ console.log(` Metadata compressed (${savings}% savings)`);
167
+
168
+ // Phase 2: Transport (intelligent selection)
169
+ console.log('\nPhase 2: Intelligent Transport Selection\n');
170
+ const selector = new SmartTransportSelector();
171
+ const transport = await selector.selectTransport();
172
+ console.log(` Selected transport: ${transport.toUpperCase()}`);
173
+
174
+ // Phase 3: Routing (cluster-based optimization)
175
+ console.log('\nPhase 3: Optimal Path Finding\n');
176
+ const clusterCount = 3;
177
+ console.log(` Found ${clusterCount} network clusters`);
178
+ const relayPath = ['relay-1', 'relay-2'];
179
+ console.log(` Route: ${relayPath.length} hops to destination`);
180
+
181
+ // Phase 4: Incentive tracking
182
+ console.log('\nPhase 4: Relay Incentive Setup\n');
183
+ const rewardPerRelay = 1000;
184
+ const totalReward = relayPath.length * rewardPerRelay;
185
+ console.log(` Reward pool: ${totalReward} lamports for ${relayPath.length} relays`);
186
+
187
+ // Phase 5: Transmission
188
+ console.log('\nPhase 5: Intent Transmission\n');
189
+ const payloadSize = JSON.stringify({
190
+ intent,
191
+ metadata: compressed
192
+ }).length;
193
+ console.log(` Payload size: ${payloadSize} bytes`);
194
+ console.log(` MTU: ${transport === 'wifi' ? '1200' : '480'} bytes`);
195
+ const fragments = Math.ceil(payloadSize / (transport === 'wifi' ? 1200 : 480));
196
+ console.log(` Fragments: ${fragments} (optimized)`);
197
+
198
+ // Phase 6: Settlement (when online)
199
+ console.log('\nPhase 6: Settlement (When Online)\n');
200
+ console.log(' Intent ready for settlement');
201
+ console.log(' • Signature verified: YES');
202
+ console.log(' • Metadata decompressed: YES');
203
+ console.log(' • Relayers identified: YES');
204
+ console.log(` • Rewards tracked: ${totalReward} lamports`);
205
+ console.log('\n Complete flow ready for production deployment');
206
+ }
207
+
208
+ /**
209
+ * Run all examples
210
+ */
211
+ export async function runAllExamples(connection) {
212
+ console.log('═══════════════════════════════════════════════════════════');
213
+ console.log(' TOSS Enhanced Features - Complete Examples');
214
+ console.log('═══════════════════════════════════════════════════════════');
215
+
216
+ // Create test keypairs
217
+ const sender = Keypair.generate();
218
+ const recipient = Keypair.generate().publicKey;
219
+ const feePayer = Keypair.generate().publicKey;
220
+ try {
221
+ await exampleCompressedIntentFlow(sender, recipient, 1000000, connection);
222
+ await exampleSmartTransportFlow();
223
+ await exampleRelayIncentiveFlow();
224
+ await exampleMeshClusteringFlow();
225
+ await exampleCompleteEnhancedFlow(sender, recipient, 1000000, connection, feePayer);
226
+ console.log('\n═══════════════════════════════════════════════════════════');
227
+ console.log(' All examples completed successfully!');
228
+ console.log('═══════════════════════════════════════════════════════════\n');
229
+ } catch (error) {
230
+ console.error(' Example failed:', error);
231
+ }
232
+ }
233
+ //# sourceMappingURL=enhancedFeaturesFlow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Keypair","createIntent","SmartTransportSelector","compressIntentMetadata","decompressIntentMetadata","exampleCompressedIntentFlow","sender","recipient","amount","connection","console","log","intent","metadata","memo","recipientName","transactionType","compressed","savings","JSON","stringify","length","transmissionPayload","intentSize","metadataSize","total","received","exampleSmartTransportFlow","selector","selectedTransport","selectTransport","shouldUseWiFi","exampleRelayIncentiveFlow","relayPath","rewardPerRelay","i","totalReward","exampleMeshClusteringFlow","targetDeviceId","exampleCompleteEnhancedFlow","_feePayer","timestamp","Date","toISOString","transport","toUpperCase","clusterCount","payloadSize","fragments","Math","ceil","runAllExamples","generate","publicKey","feePayer","error"],"sourceRoot":"../../../src","sources":["examples/enhancedFeaturesFlow.ts"],"mappings":"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","ignoreList":[]}