mirror of
https://github.com/pezkuwichain/pezkuwi-subquery.git
synced 2026-06-15 16:21:04 +00:00
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:
+28
-4
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user