Как разнести награды за эпоху Solana по стейк- и vote-аккаунтам

Изменение баланса может включать и награду, и пополнения или выводы. Для отчёта по эпохе запросите начисленное вознаграждение напрямую.

Укажите эпоху и получателей

Подставьте адреса проверяемых стейк- и vote-аккаунтов. Вместо 500 укажите завершённую эпоху. Адрес кошелька, который управляет стейк-аккаунтом, может отличаться от адреса получателя награды.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getInflationReward",
  "params": [
    [
      "STAKE_ACCOUNT",
      "VOTE_ACCOUNT"
    ],
    {
      "epoch": 500,
      "commitment": "finalized"
    }
  ]
}

Привяжите начисление к слоту

Сопоставьте результаты с адресами по позиции в массиве. Если amount равен 32 000, а postBalance — 100 032 000 лампортов, непосредственно до начисления там было 100 000 000. Сохраните epoch и effectiveSlot с суммой, чтобы последующие операции не затруднили сверку.

Запись null означает, что узел не вернул сведения о награде за эту эпоху для данного адреса. Отдельно отметьте отсутствие данных и перед закрытием отчёта проверьте охват истории и роль аккаунта.

Документация