Remove relay staking handlers after pallet removal (spec 1_020_006)

Staking pallet (index 9), FastUnstake (15), and VoterBagsList (100)
were removed from the relay chain. The relay indexer now only tracks
transfers and signed extrinsics. Added safety try-catch to staking
queries in case handlers are accidentally re-enabled.
This commit is contained in:
2026-02-21 01:40:34 +03:00
parent 8a5681db33
commit 3cc7a7b245
3 changed files with 43 additions and 62 deletions
+28 -4
View File
@@ -30,7 +30,19 @@ export async function handleRelayBlock(block: SubstrateBlock): Promise<void> {
logger.info("Initializing active relay stakers from live chain state...");
const activeEraOpt = (await api.query.staking.activeEra()) as Option<any>;
// Safety: staking pallet was removed from relay chain in spec 1_020_006
if (!api.query.staking || !api.query.staking.activeEra) {
logger.info("Staking pallet not available on relay chain - skipping relay staker init");
return;
}
let activeEraOpt: Option<any>;
try {
activeEraOpt = (await api.query.staking.activeEra()) as Option<any>;
} catch (e) {
logger.warn(`Failed to query staking.activeEra on relay: ${e}`);
return;
}
if (activeEraOpt.isNone) {
logger.info("No active era found on relay chain");
return;
@@ -121,9 +133,21 @@ export async function handleStakersElected(
}
export async function handleNewEra(event: SubstrateEvent): Promise<void> {
const currentEra = ((await api.query.staking.currentEra()) as Option<any>)
.unwrap()
.toNumber();
// Safety: staking pallet was removed from relay chain in spec 1_020_006
if (!api.query.staking || !api.query.staking.currentEra) {
logger.warn("Staking pallet not available - skipping handleNewEra");
return;
}
let currentEra: number;
try {
currentEra = ((await api.query.staking.currentEra()) as Option<any>)
.unwrap()
.toNumber();
} catch (e) {
logger.warn(`Failed to query staking.currentEra: ${e}`);
return;
}
let validatorExposures: Array<{
address: string;
+14
View File
@@ -170,6 +170,20 @@ function calculateYearlyInflation(stakedPortion: number): number {
}
async function computeAndSaveAPY(): Promise<void> {
// Safety: check staking pallet availability before querying
if (!api.query.staking || !api.query.staking.activeEra) {
logger.warn("Staking pallet not available on this chain - skipping APY computation");
return;
}
try {
await _computeAndSaveAPYInner();
} catch (e) {
logger.warn(`APY computation failed: ${e}`);
}
}
async function _computeAndSaveAPYInner(): Promise<void> {
// Use AH's own totalIssuance. AH staking pallet mints inflation from AH supply.
const TOTAL_SUPPLY = (
(await api.query.balances.totalIssuance()) as any