mirror of
https://github.com/pezkuwichain/pezkuwi-subquery.git
synced 2026-04-22 05:27:57 +00:00
Add codegen step to security workflow and fix prettier formatting
This commit is contained in:
@@ -37,6 +37,9 @@ jobs:
|
|||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: yarn install --immutable
|
run: yarn install --immutable
|
||||||
|
|
||||||
|
- name: Generate types
|
||||||
|
run: ./node_modules/.bin/subql codegen pezkuwi.yaml
|
||||||
|
|
||||||
- name: Build
|
- name: Build
|
||||||
run: ./node_modules/.bin/subql build pezkuwi.yaml
|
run: ./node_modules/.bin/subql build pezkuwi.yaml
|
||||||
|
|
||||||
|
|||||||
@@ -53,7 +53,8 @@ export async function cachedRewardDestination(
|
|||||||
},
|
},
|
||||||
} = event;
|
} = event;
|
||||||
let accountAddress = accountId.toString();
|
let accountAddress = accountId.toString();
|
||||||
destinationByAddress[accountAddress] = destination as unknown as RewardDestination;
|
destinationByAddress[accountAddress] =
|
||||||
|
destination as unknown as RewardDestination;
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
const allAccountsInBlock = allEventsInBlock.map((event) => {
|
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
|
// looks like accountAddress not related to events so just try to query payee directly
|
||||||
if (allAccountsInBlock.length === 0) {
|
if (allAccountsInBlock.length === 0) {
|
||||||
rewardDestinationByAddress[blockId] = {};
|
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(
|
const payees = await api.queryMulti(
|
||||||
@@ -81,7 +84,9 @@ export async function cachedRewardDestination(
|
|||||||
|
|
||||||
// something went wrong, so just query for single accountAddress
|
// something went wrong, so just query for single accountAddress
|
||||||
if (rewardDestinations.length !== allAccountsInBlock.length) {
|
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;
|
destinationByAddress[accountAddress] = payee;
|
||||||
rewardDestinationByAddress[blockId] = destinationByAddress;
|
rewardDestinationByAddress[blockId] = destinationByAddress;
|
||||||
return payee;
|
return payee;
|
||||||
@@ -212,9 +217,7 @@ export async function getPoolMembers(
|
|||||||
const members: [string, any][] = (
|
const members: [string, any][] = (
|
||||||
await api.query.nominationPools.poolMembers.entries()
|
await api.query.nominationPools.poolMembers.entries()
|
||||||
)
|
)
|
||||||
.filter(
|
.filter(([_key, member]) => (member as Option<any>).isSome)
|
||||||
([_key, member]) => (member as Option<any>).isSome,
|
|
||||||
)
|
|
||||||
.map(([accountId, member]) => [
|
.map(([accountId, member]) => [
|
||||||
accountId.args[0].toString(),
|
accountId.args[0].toString(),
|
||||||
(member as Option<any>).unwrap(),
|
(member as Option<any>).unwrap(),
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ type TransferData = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export async function handleHistoryElement(
|
export async function handleHistoryElement(
|
||||||
extrinsic: SubstrateExtrinsic
|
extrinsic: SubstrateExtrinsic,
|
||||||
): Promise<void> {
|
): Promise<void> {
|
||||||
const { isSigned } = extrinsic.extrinsic;
|
const { isSigned } = extrinsic.extrinsic;
|
||||||
|
|
||||||
@@ -36,7 +36,7 @@ function createHistoryElement(
|
|||||||
extrinsic: SubstrateExtrinsic,
|
extrinsic: SubstrateExtrinsic,
|
||||||
address: string,
|
address: string,
|
||||||
suffix: string = "",
|
suffix: string = "",
|
||||||
hash?: string
|
hash?: string,
|
||||||
) {
|
) {
|
||||||
let extrinsicHash = hash || extrinsic.extrinsic.hash.toString();
|
let extrinsicHash = hash || extrinsic.extrinsic.hash.toString();
|
||||||
let blockNum = extrinsic.block.block.header.number.toNumber();
|
let blockNum = extrinsic.block.block.header.number.toNumber();
|
||||||
@@ -59,7 +59,7 @@ function createHistoryElement(
|
|||||||
|
|
||||||
async function saveFailedTransfers(
|
async function saveFailedTransfers(
|
||||||
transfers: Array<TransferData>,
|
transfers: Array<TransferData>,
|
||||||
extrinsic: SubstrateExtrinsic
|
extrinsic: SubstrateExtrinsic,
|
||||||
): Promise<void> {
|
): Promise<void> {
|
||||||
for (const { isTransferAll, transfer } of transfers) {
|
for (const { isTransferAll, transfer } of transfers) {
|
||||||
const elementFrom = createHistoryElement(extrinsic, transfer.from, `-from`);
|
const elementFrom = createHistoryElement(extrinsic, transfer.from, `-from`);
|
||||||
@@ -79,7 +79,7 @@ async function saveExtrinsic(extrinsic: SubstrateExtrinsic): Promise<void> {
|
|||||||
const element = createHistoryElement(
|
const element = createHistoryElement(
|
||||||
extrinsic,
|
extrinsic,
|
||||||
extrinsic.extrinsic.signer.toString(),
|
extrinsic.extrinsic.signer.toString(),
|
||||||
"-extrinsic"
|
"-extrinsic",
|
||||||
);
|
);
|
||||||
|
|
||||||
element.extrinsic = {
|
element.extrinsic = {
|
||||||
@@ -93,7 +93,7 @@ async function saveExtrinsic(extrinsic: SubstrateExtrinsic): Promise<void> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function findFailedTransferCalls(
|
function findFailedTransferCalls(
|
||||||
extrinsic: SubstrateExtrinsic
|
extrinsic: SubstrateExtrinsic,
|
||||||
): Array<TransferData> | null {
|
): Array<TransferData> | null {
|
||||||
if (extrinsic.success) {
|
if (extrinsic.success) {
|
||||||
return null;
|
return null;
|
||||||
@@ -104,7 +104,7 @@ function findFailedTransferCalls(
|
|||||||
const createTransfer = (
|
const createTransfer = (
|
||||||
isTransferAll: boolean,
|
isTransferAll: boolean,
|
||||||
address: string,
|
address: string,
|
||||||
amount: bigint
|
amount: bigint,
|
||||||
): TransferData => {
|
): TransferData => {
|
||||||
return {
|
return {
|
||||||
isTransferAll,
|
isTransferAll,
|
||||||
@@ -121,7 +121,7 @@ function findFailedTransferCalls(
|
|||||||
|
|
||||||
let transferCalls = determineTransferCallsArgs(
|
let transferCalls = determineTransferCallsArgs(
|
||||||
extrinsic.extrinsic.method,
|
extrinsic.extrinsic.method,
|
||||||
createTransfer
|
createTransfer,
|
||||||
);
|
);
|
||||||
|
|
||||||
if (transferCalls.length == 0) {
|
if (transferCalls.length == 0) {
|
||||||
@@ -133,11 +133,21 @@ function findFailedTransferCalls(
|
|||||||
|
|
||||||
function determineTransferCallsArgs(
|
function determineTransferCallsArgs(
|
||||||
causeCall: any,
|
causeCall: any,
|
||||||
createTransfer: (isTransferAll: boolean, address: string, amount: bigint) => TransferData
|
createTransfer: (
|
||||||
|
isTransferAll: boolean,
|
||||||
|
address: string,
|
||||||
|
amount: bigint,
|
||||||
|
) => TransferData,
|
||||||
): Array<TransferData> {
|
): Array<TransferData> {
|
||||||
if (isNativeTransfer(causeCall)) {
|
if (isNativeTransfer(causeCall)) {
|
||||||
const [destinationAddress, amount] = causeCall.args;
|
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)) {
|
} else if (isNativeTransferAll(causeCall)) {
|
||||||
const [destinationAddress] = causeCall.args;
|
const [destinationAddress] = causeCall.args;
|
||||||
return [createTransfer(true, destinationAddress.toString(), BigInt(0))];
|
return [createTransfer(true, destinationAddress.toString(), BigInt(0))];
|
||||||
|
|||||||
@@ -70,12 +70,14 @@ async function processEraStakersPaged(
|
|||||||
const pageNumber = (pageId as any).toNumber();
|
const pageNumber = (pageId as any).toNumber();
|
||||||
const validatorIdString = validatorId.toString();
|
const validatorIdString = validatorId.toString();
|
||||||
|
|
||||||
const others: IndividualExposure[] = exposure.others.map(({ who, value }: any) => {
|
const others: IndividualExposure[] = exposure.others.map(
|
||||||
return {
|
({ who, value }: any) => {
|
||||||
who: who.toString(),
|
return {
|
||||||
value: value.toString(),
|
who: who.toString(),
|
||||||
} as IndividualExposure;
|
value: value.toString(),
|
||||||
});
|
} as IndividualExposure;
|
||||||
|
},
|
||||||
|
);
|
||||||
|
|
||||||
(accumulator[validatorIdString] = accumulator[validatorIdString] || {})[
|
(accumulator[validatorIdString] = accumulator[validatorIdString] || {})[
|
||||||
pageNumber
|
pageNumber
|
||||||
|
|||||||
@@ -145,8 +145,7 @@ export async function handlePoolUnbondingSlash(
|
|||||||
).unwrap();
|
).unwrap();
|
||||||
|
|
||||||
const pool =
|
const pool =
|
||||||
(unbondingPools.withEra as any).get(eraIdNumber) ??
|
(unbondingPools.withEra as any).get(eraIdNumber) ?? unbondingPools.noEra;
|
||||||
unbondingPools.noEra;
|
|
||||||
|
|
||||||
await handleRelaychainPooledStakingSlash(
|
await handleRelaychainPooledStakingSlash(
|
||||||
unbondingSlashEvent,
|
unbondingSlashEvent,
|
||||||
@@ -155,8 +154,7 @@ export async function handlePoolUnbondingSlash(
|
|||||||
(slash as any).toBigInt(),
|
(slash as any).toBigInt(),
|
||||||
(member: any): bigint => {
|
(member: any): bigint => {
|
||||||
return (
|
return (
|
||||||
((member.unbondingEras as any).get(eraIdNumber))?.toBigInt() ??
|
(member.unbondingEras as any).get(eraIdNumber)?.toBigInt() ?? BigInt(0)
|
||||||
BigInt(0)
|
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -60,7 +60,9 @@ function extractArgsFromPayoutValidator(
|
|||||||
return [sender, (eraRaw as any).toNumber()];
|
return [sender, (eraRaw as any).toNumber()];
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function handleRewarded(rewardEvent: SubstrateEvent): Promise<void> {
|
export async function handleRewarded(
|
||||||
|
rewardEvent: SubstrateEvent,
|
||||||
|
): Promise<void> {
|
||||||
await handleReward(rewardEvent);
|
await handleReward(rewardEvent);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user