> ## Documentation Index
> Fetch the complete documentation index at: https://docs.orbitflare.com/llms.txt
> Use this file to discover all available pages before exploring further.

# getTransactionCount

> Возвращает текущее количество транзакций из реестра

## Параметры

<ResponseField name="config" type="object" optional>
  Объект конфигурации, содержащий:

  <ResponseField name="commitment" type="string" optional>
    Уровень подтверждения (processed, confirmed, finalized)
  </ResponseField>
</ResponseField>

## Ответ

<ResponseField name="result" type="number">
  Текущее количество транзакций
</ResponseField>

## Примеры кода

### Базовый запрос

```bash theme={null}
curl https://fra.rpc.orbitflare.com?api_key=YOUR-API-KEY -X POST -H "Content-Type: application/json" -d '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getTransactionCount"
}'
```

### Использование web3.js

```typescript theme={null}
import { Connection } from '@solana/web3.js';

const connection = new Connection('https://fra.rpc.orbitflare.com?api_key=YOUR-API-KEY');

// Get transaction count
const count = await connection.getTransactionCount();
console.log('Transaction count:', count);

// Get transaction count with analysis
async function getTransactionCountWithAnalysis(
  config: { commitment?: string }
) {
  const count = await connection.getTransactionCount(config);
  
  return {
    count,
    analysis: {
      timestamp: Date.now(),
      commitment: config.commitment
    }
  };
}
```

## Примечания

1. Возвращает текущее количество транзакций из реестра
2. Счётчик включает все транзакции, обработанные узлом
3. Ответ приходит немедленно, так как читается из текущего состояния
4. Счётчик может меняться с появлением новых транзакций
5. Счётчик может отличаться между узлами из-за распространения по сети

## Рекомендации

1. Используйте подходящий уровень подтверждения в зависимости от ваших потребностей
2. Кэшируйте результаты там, где это уместно, для снижения нагрузки на RPC
3. Отслеживайте изменения количества транзакций
4. Рассмотрите использование подписки на websocket для обновлений в реальном времени
5. Обрабатывайте сетевые ошибки и выполняйте повторные попытки при необходимости

## Распространённые ошибки

| Код    | Сообщение        | Решение                                        |
| ------ | ---------------- | ---------------------------------------------- |
| -32601 | Method not found | Убедитесь, что вы подключены к узлу Solana RPC |
| -32602 | Invalid params   | Проверьте параметры конфигурации               |

## Сценарии использования

1. **Анализ количества транзакций**
   ```typescript theme={null}
   interface TransactionCountAnalysis {
     count: number;
     metrics: {
       timestamp: number;
       commitment?: string;
     };
   }

   class TransactionCountAnalyzer {
     async analyzeTransactionCount(
       config: { commitment?: string }
     ): Promise<TransactionCountAnalysis> {
       const count = await connection.getTransactionCount(config);
       
       return {
         count,
         metrics: {
           timestamp: Date.now(),
           commitment: config.commitment
         }
       };
     }
   }
   ```

2. **Мониторинг количества транзакций**
   ```typescript theme={null}
   interface TransactionCountChange {
     changes: {
       previousCount: number;
       currentCount: number;
       difference: number;
       percentageChange: number;
     };
     metadata: {
       timestamp: number;
     };
   }

   class TransactionCountMonitor {
     private previousCount: number | null = null;
     
     async monitorTransactionCount(
       config: { commitment?: string }
     ): Promise<TransactionCountChange | null> {
       const currentCount = await connection.getTransactionCount(config);
       
       if (this.previousCount !== null && this.previousCount !== currentCount) {
         const difference = currentCount - this.previousCount;
         const percentageChange = (difference / this.previousCount) * 100;
         
         this.previousCount = currentCount;
         
         return {
           changes: {
             previousCount: this.previousCount,
             currentCount,
             difference,
             percentageChange
           },
           metadata: {
             timestamp: Date.now()
           }
         };
       }
       
       this.previousCount = currentCount;
       return null;
     }
   }
   ```

3. **Планирование количества транзакций**
   ```typescript theme={null}
   interface TransactionCountPlan {
     currentCount: number;
     recommendations: Array<{
       type: 'scale' | 'optimize' | 'monitor';
       reason: string;
     }>;
     metadata: {
       timestamp: number;
     };
   }

   class TransactionCountPlanner {
     private readonly maxTransactionsPerSecond = 1000;
     private readonly minTransactionsPerSecond = 100;
     
     async planTransactionCount(
       config: { commitment?: string }
     ): Promise<TransactionCountPlan> {
       const currentCount = await connection.getTransactionCount(config);
       
       const recommendations: Array<{
         type: 'scale' | 'optimize' | 'monitor';
         reason: string;
       }> = [];
       
       // Check for high transaction rate
       if (currentCount > this.maxTransactionsPerSecond) {
         recommendations.push({
           type: 'scale',
           reason: `Transaction count (${currentCount}) exceeds maximum (${this.maxTransactionsPerSecond})`
         });
       }
       
       // Check for low transaction rate
       if (currentCount < this.minTransactionsPerSecond) {
         recommendations.push({
           type: 'optimize',
           reason: `Transaction count (${currentCount}) below minimum (${this.minTransactionsPerSecond})`
         });
       }
       
       return {
         currentCount,
         recommendations,
         metadata: {
           timestamp: Date.now()
         }
       };
     }
   }
   ```
