Параметры
Объект конфигурации, содержащий:Уровень подтверждения (processed, confirmed, finalized)
Ответ
Минимальная сумма делегирования стейка в 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
}
}
};
}
Примечания
- Возвращает минимальную сумму делегирования стейка в lamports
- Минимальная сумма делегирования устанавливается сетью
- Ответ приходит немедленно, так как читается из текущего состояния
- Минимальная сумма делегирования может изменяться при обновлении сети
- Это значение важно для определения допустимых сумм стейка
Рекомендации
- Используйте подходящий уровень подтверждения в зависимости от ваших потребностей
- Кэшируйте результаты там, где это уместно, для снижения нагрузки на RPC
- Отслеживайте изменения в минимальной сумме делегирования
- Рассмотрите использование подписки на websocket для обновлений в реальном времени
- Обрабатывайте сетевые ошибки и выполняйте повторные попытки при необходимости
Распространённые ошибки
| Код | Сообщение | Решение |
|---|
| -32601 | Method not found | Убедитесь, что вы подключены к узлу Solana RPC |
| -32602 | Invalid params | Проверьте параметры конфигурации |
| -32007 | Minimum delegation information unavailable | Узел может выполнять начальную загрузку или синхронизацию |
Сценарии использования
-
Анализ делегирования стейка
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
}
};
}
}
-
Мониторинг делегирования стейка
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;
}
}
-
Планирование делегирования стейка
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()
}
};
}
}