Overview

The Solana service provides a unified interface for handling Solana blockchain transactions with support for:

  • Priority Fee Transactions: Enhanced processing with configurable fee tiers
  • Jito Bundle Transactions: MEV-protected transactions through Jito’s block engine
  • Automated Commission System: Built-in 0.5% commission handling
  • Mobile Wallet Adapter Support: Native mobile wallet integration

Transaction Processing

  • Priority fee management (4 tiers)
  • Jito bundle support
  • SOL and Token transfers
  • Mobile Wallet Adapter (MWA)
  • Versioned transactions

Priority Fee System

  • Low, Medium, High, Very-High tiers
  • Dynamic calculation
  • Compute unit optimization
  • Real-time tier selection

Jito Integration

  • MEV-protected transactions
  • Bundle submission
  • Status tracking
  • Block engine communication

Error Handling

  • Comprehensive error parsing
  • Retry mechanisms
  • Confirmation validation
  • Status callbacks

Module Structure

src/shared/services/transactions/
├── index.ts                    # Main exports
├── methods/                    # Transaction execution methods
│   ├── sendSOL.ts             # SOL transfers
│   ├── sendToken.ts           # Token transfers
│   ├── priority.ts            # Priority fee transactions
│   └── jito.ts               # Jito bundle transactions
├── core/                      # Core utilities and configurations
│   ├── types.ts              # TypeScript interfaces
│   ├── constants.ts          # Configuration constants
│   ├── commission.ts         # Commission utilities
│   ├── helpers.ts            # Transaction helpers
│   └── errorParser.ts        # Error handling
└── README.md                  # Documentation

Priority Fee System

TierMicroLamportsUse Case
Low1,000Standard transactions
Medium10,000Normal priority
High100,000High priority
Very-High1,000,000Critical transactions

Jito Bundle Integration

Transaction Methods

Core Functions

// Sends SOL with optional commission and priority fees
const signature = await sendSOL({
  wallet: connectedWallet,
  recipientAddress: 'recipient_address',
  amountSol: 0.1,
  connection: solanaConnection,
  includeCommission: true,
  onStatusUpdate: (status) => console.log(status)
});

Commission System

The service includes an automated 0.5% commission system for all transactions.

// Commission calculation utilities
interface CommissionUtils {
  calculateCommissionLamports(transactionLamports: number): number;
  createCommissionInstruction(fromPubkey: PublicKey, transactionLamports: number): TransactionInstruction;
  calculateTransferAmountAfterCommission(totalLamports: number): {
    transferLamports: number;
    commissionLamports: number;
  };
}

Error Handling & Retries

export const TRANSACTION_RETRIES = {
  maxAttempts: 6,
  interval: 1500,
  confirmationAttempts: 3,
  confirmationInterval: 1000,
  blockhashAttempts: 3,
  blockhashInterval: 500,
};

Error types include:

  • Confirmation failures
  • Network issues
  • Wallet errors
  • Insufficient funds

Mobile Wallet Adapter Support

// Android-specific transaction handling
if (Platform.OS === 'android') {
  const signature = await sendPriorityTransactionMWA(
    connection,
    recipientAddress,
    lamportsAmount,
    feeMapping,
    (status) => console.log(status)
  );
}

Configuration

Environment Variables

# Commission wallet address
COMMISSION_WALLET=your_commission_wallet_address

# Jito configuration
JITO_BUNDLE_URL=https://your-jito-endpoint

# Solana cluster
CLUSTER=mainnet-beta

Redux Integration

// Get current settings from Redux state
const transactionMode = getCurrentTransactionMode(); // 'jito' | 'priority'
const feeTier = getCurrentFeeTier(); // 'low' | 'medium' | 'high' | 'very-high'
const feeAmount = getCurrentFeeMicroLamports();

export type TransactionType = 'swap' | 'transfer' | 'stake' | 'nft' | 'token';
export type TransactionMode = 'jito' | 'priority';

Best Practices

Mode Selection

Use Jito for MEV-sensitive transactions, Priority fees for speed

Fee Tiers

Match tier to transaction urgency and importance

Error Handling

Implement comprehensive error handling with status callbacks

Platform Support

Check MWA compatibility for Android devices


For detailed API documentation and examples, see the API Reference section.