Перейти к основному содержанию

Параметры

config
object
Объект конфигурации, содержащий:
commitment
string
Уровень подтверждения (processed, confirmed, finalized)

Ответ

result
number
Минимальная сумма делегирования стейка в lamports

Примеры кода

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

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": "getStakeMinimumDelegation",
  "params": []
}'

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

import { Connection } from '@solana/web3.js';

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

// Get minimum stake delegation
const minDelegation = await connection.getStakeMinimumDelegation();
console.log('Minimum stake delegation:', minDelegation);

// Get minimum stake delegation with analysis
async function getStakeMinimumDelegationWithAnalysis(
  config?: { commitment?: string }
) {
  const minDelegation = await connection.getStakeMinimumDelegation(config);
  
  return {
    minDelegation,
    analysis: {
      inSOL: minDelegation / 1e9, // Convert lamports to SOL
      metadata: {
        timestamp: Date.now(),
        commitment: config?.commitment
      }
    }
  };
}

Примечания

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

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

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

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

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

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

  1. Анализ делегирования стейка
    interface StakeDelegationAnalysis {
      minDelegation: number;
      metrics: {
        inSOL: number;
        recommendedMinimum: number;
      };
      metadata: {
        timestamp: number;
        commitment?: string;
      };
    }
    
    class StakeDelegationAnalyzer {
      private readonly recommendedMultiplier = 1.1; // 10% above minimum
      
      async analyzeStakeDelegation(
        config?: { commitment?: string }
      ): Promise<StakeDelegationAnalysis> {
        const minDelegation = await connection.getStakeMinimumDelegation(config);
        
        return {
          minDelegation,
          metrics: {
            inSOL: minDelegation / 1e9,
            recommendedMinimum: minDelegation * this.recommendedMultiplier
          },
          metadata: {
            timestamp: Date.now(),
            commitment: config?.commitment
          }
        };
      }
    }
    
  2. Мониторинг делегирования стейка
    interface StakeDelegationChange {
      previousMinDelegation: number;
      currentMinDelegation: number;
      change: number;
      metadata: {
        timestamp: number;
      };
    }
    
    class StakeDelegationMonitor {
      private previousMinDelegation: number | null = null;
      
      async monitorStakeDelegation(
        config?: { commitment?: string }
      ): Promise<StakeDelegationChange | null> {
        const currentMinDelegation = await connection.getStakeMinimumDelegation(config);
        
        if (this.previousMinDelegation === null) {
          this.previousMinDelegation = currentMinDelegation;
          return null;
        }
        
        if (this.previousMinDelegation !== currentMinDelegation) {
          const change: StakeDelegationChange = {
            previousMinDelegation: this.previousMinDelegation,
            currentMinDelegation,
            change: currentMinDelegation - this.previousMinDelegation,
            metadata: {
              timestamp: Date.now()
            }
          };
          
          this.previousMinDelegation = currentMinDelegation;
          return change;
        }
        
        return null;
      }
    }
    
  3. Планирование делегирования стейка
    interface StakeDelegationPlan {
      minDelegation: number;
      recommendations: Array<{
        amount: number;
        description: string;
        inSOL: number;
      }>;
      metadata: {
        timestamp: number;
      };
    }
    
    class StakeDelegationPlanner {
      private readonly tiers = [
        { multiplier: 1.1, description: 'Minimum recommended' },
        { multiplier: 2, description: 'Standard' },
        { multiplier: 5, description: 'Premium' }
      ];
      
      async planStakeDelegation(
        config?: { commitment?: string }
      ): Promise<StakeDelegationPlan> {
        const minDelegation = await connection.getStakeMinimumDelegation(config);
        
        const recommendations = this.tiers.map(tier => ({
          amount: minDelegation * tier.multiplier,
          description: tier.description,
          inSOL: (minDelegation * tier.multiplier) / 1e9
        }));
        
        return {
          minDelegation,
          recommendations,
          metadata: {
            timestamp: Date.now()
          }
        };
      }
    }