From 0b0519bff8cabbd4cc610aca093421eec2ccc04a Mon Sep 17 00:00:00 2001 From: Kurdistan Tech Ministry Date: Fri, 13 Feb 2026 01:51:37 +0300 Subject: [PATCH] Add codegen step to security workflow and fix prettier formatting --- .github/workflows/security.yml | 3 +++ src/mappings/Cache.ts | 15 +++++++++------ src/mappings/HistoryElements.ts | 28 +++++++++++++++++++--------- src/mappings/NewEra.ts | 14 ++++++++------ src/mappings/PoolRewards.ts | 6 ++---- src/mappings/Rewards.ts | 4 +++- 6 files changed, 44 insertions(+), 26 deletions(-) diff --git a/.github/workflows/security.yml b/.github/workflows/security.yml index d8e68a7..04da1ce 100644 --- a/.github/workflows/security.yml +++ b/.github/workflows/security.yml @@ -37,6 +37,9 @@ jobs: - name: Install dependencies run: yarn install --immutable + - name: Generate types + run: ./node_modules/.bin/subql codegen pezkuwi.yaml + - name: Build run: ./node_modules/.bin/subql build pezkuwi.yaml diff --git a/src/mappings/Cache.ts b/src/mappings/Cache.ts index 0f36541..00cba96 100644 --- a/src/mappings/Cache.ts +++ b/src/mappings/Cache.ts @@ -53,7 +53,8 @@ export async function cachedRewardDestination( }, } = event; let accountAddress = accountId.toString(); - destinationByAddress[accountAddress] = destination as unknown as RewardDestination; + destinationByAddress[accountAddress] = + destination as unknown as RewardDestination; }); } else { const allAccountsInBlock = allEventsInBlock.map((event) => { @@ -68,7 +69,9 @@ export async function cachedRewardDestination( // looks like accountAddress not related to events so just try to query payee directly if (allAccountsInBlock.length === 0) { rewardDestinationByAddress[blockId] = {}; - return (await api.query.staking.payee(accountAddress)) as unknown as RewardDestination; + return (await api.query.staking.payee( + accountAddress, + )) as unknown as RewardDestination; } const payees = await api.queryMulti( @@ -81,7 +84,9 @@ export async function cachedRewardDestination( // something went wrong, so just query for single accountAddress if (rewardDestinations.length !== allAccountsInBlock.length) { - const payee = (await api.query.staking.payee(accountAddress)) as unknown as RewardDestination; + const payee = (await api.query.staking.payee( + accountAddress, + )) as unknown as RewardDestination; destinationByAddress[accountAddress] = payee; rewardDestinationByAddress[blockId] = destinationByAddress; return payee; @@ -212,9 +217,7 @@ export async function getPoolMembers( const members: [string, any][] = ( await api.query.nominationPools.poolMembers.entries() ) - .filter( - ([_key, member]) => (member as Option).isSome, - ) + .filter(([_key, member]) => (member as Option).isSome) .map(([accountId, member]) => [ accountId.args[0].toString(), (member as Option).unwrap(), diff --git a/src/mappings/HistoryElements.ts b/src/mappings/HistoryElements.ts index ad053c1..b541ba6 100644 --- a/src/mappings/HistoryElements.ts +++ b/src/mappings/HistoryElements.ts @@ -18,7 +18,7 @@ type TransferData = { }; export async function handleHistoryElement( - extrinsic: SubstrateExtrinsic + extrinsic: SubstrateExtrinsic, ): Promise { const { isSigned } = extrinsic.extrinsic; @@ -36,7 +36,7 @@ function createHistoryElement( extrinsic: SubstrateExtrinsic, address: string, suffix: string = "", - hash?: string + hash?: string, ) { let extrinsicHash = hash || extrinsic.extrinsic.hash.toString(); let blockNum = extrinsic.block.block.header.number.toNumber(); @@ -59,7 +59,7 @@ function createHistoryElement( async function saveFailedTransfers( transfers: Array, - extrinsic: SubstrateExtrinsic + extrinsic: SubstrateExtrinsic, ): Promise { for (const { isTransferAll, transfer } of transfers) { const elementFrom = createHistoryElement(extrinsic, transfer.from, `-from`); @@ -79,7 +79,7 @@ async function saveExtrinsic(extrinsic: SubstrateExtrinsic): Promise { const element = createHistoryElement( extrinsic, extrinsic.extrinsic.signer.toString(), - "-extrinsic" + "-extrinsic", ); element.extrinsic = { @@ -93,7 +93,7 @@ async function saveExtrinsic(extrinsic: SubstrateExtrinsic): Promise { } function findFailedTransferCalls( - extrinsic: SubstrateExtrinsic + extrinsic: SubstrateExtrinsic, ): Array | null { if (extrinsic.success) { return null; @@ -104,7 +104,7 @@ function findFailedTransferCalls( const createTransfer = ( isTransferAll: boolean, address: string, - amount: bigint + amount: bigint, ): TransferData => { return { isTransferAll, @@ -121,7 +121,7 @@ function findFailedTransferCalls( let transferCalls = determineTransferCallsArgs( extrinsic.extrinsic.method, - createTransfer + createTransfer, ); if (transferCalls.length == 0) { @@ -133,11 +133,21 @@ function findFailedTransferCalls( function determineTransferCallsArgs( causeCall: any, - createTransfer: (isTransferAll: boolean, address: string, amount: bigint) => TransferData + createTransfer: ( + isTransferAll: boolean, + address: string, + amount: bigint, + ) => TransferData, ): Array { if (isNativeTransfer(causeCall)) { const [destinationAddress, amount] = causeCall.args; - return [createTransfer(false, destinationAddress.toString(), (amount as any).toBigInt())]; + return [ + createTransfer( + false, + destinationAddress.toString(), + (amount as any).toBigInt(), + ), + ]; } else if (isNativeTransferAll(causeCall)) { const [destinationAddress] = causeCall.args; return [createTransfer(true, destinationAddress.toString(), BigInt(0))]; diff --git a/src/mappings/NewEra.ts b/src/mappings/NewEra.ts index d63c25f..a3f2ed2 100644 --- a/src/mappings/NewEra.ts +++ b/src/mappings/NewEra.ts @@ -70,12 +70,14 @@ async function processEraStakersPaged( const pageNumber = (pageId as any).toNumber(); const validatorIdString = validatorId.toString(); - const others: IndividualExposure[] = exposure.others.map(({ who, value }: any) => { - return { - who: who.toString(), - value: value.toString(), - } as IndividualExposure; - }); + const others: IndividualExposure[] = exposure.others.map( + ({ who, value }: any) => { + return { + who: who.toString(), + value: value.toString(), + } as IndividualExposure; + }, + ); (accumulator[validatorIdString] = accumulator[validatorIdString] || {})[ pageNumber diff --git a/src/mappings/PoolRewards.ts b/src/mappings/PoolRewards.ts index 4fe8fe1..2023227 100644 --- a/src/mappings/PoolRewards.ts +++ b/src/mappings/PoolRewards.ts @@ -145,8 +145,7 @@ export async function handlePoolUnbondingSlash( ).unwrap(); const pool = - (unbondingPools.withEra as any).get(eraIdNumber) ?? - unbondingPools.noEra; + (unbondingPools.withEra as any).get(eraIdNumber) ?? unbondingPools.noEra; await handleRelaychainPooledStakingSlash( unbondingSlashEvent, @@ -155,8 +154,7 @@ export async function handlePoolUnbondingSlash( (slash as any).toBigInt(), (member: any): bigint => { return ( - ((member.unbondingEras as any).get(eraIdNumber))?.toBigInt() ?? - BigInt(0) + (member.unbondingEras as any).get(eraIdNumber)?.toBigInt() ?? BigInt(0) ); }, ); diff --git a/src/mappings/Rewards.ts b/src/mappings/Rewards.ts index 895d83b..3f2d8d4 100644 --- a/src/mappings/Rewards.ts +++ b/src/mappings/Rewards.ts @@ -60,7 +60,9 @@ function extractArgsFromPayoutValidator( return [sender, (eraRaw as any).toNumber()]; } -export async function handleRewarded(rewardEvent: SubstrateEvent): Promise { +export async function handleRewarded( + rewardEvent: SubstrateEvent, +): Promise { await handleReward(rewardEvent); }