Skip to content

Commit

Permalink
Revert "fix: advance only necessary records (#2016)"
Browse files Browse the repository at this point in the history
This reverts commit e5e30e6.
  • Loading branch information
cprussin committed Oct 10, 2024
1 parent 1730be9 commit 2024d94
Showing 1 changed file with 8 additions and 23 deletions.
31 changes: 8 additions & 23 deletions governance/pyth_staking_sdk/src/pyth-staking-client.ts
Original file line number Diff line number Diff line change
Expand Up @@ -172,9 +172,7 @@ export class PythStakingClient {
publisher: PublicKey,
) {
return this.integrityPoolProgram.account.delegationRecord
.fetchNullable(
getDelegationRecordAddress(stakeAccountPositions, publisher),
)
.fetch(getDelegationRecordAddress(stakeAccountPositions, publisher))
.then((record) => convertBNToBigInt(record));
}

Expand Down Expand Up @@ -687,23 +685,10 @@ export class PythStakingClient {
),
);

const delegationRecords = await Promise.all(
publishers.map(({ pubkey }) =>
this.getDelegationRecord(stakeAccountPositions, pubkey),
),
);

const currentEpoch = await getCurrentEpoch(this.connection);

// Filter out delegationRecord that are up to date
const filteredPublishers = publishers.filter((_, index) => {
return !(delegationRecords[index]?.lastEpoch === currentEpoch);
});

// anchor does not calculate the correct pda for other programs
// therefore we need to manually calculate the pdas
const advanceDelegationRecordInstructions = await Promise.all(
filteredPublishers.map(({ pubkey, stakeAccount }) =>
publishers.map(({ pubkey, stakeAccount }) =>
this.integrityPoolProgram.methods
.advanceDelegationRecord()
.accountsPartial({
Expand Down Expand Up @@ -776,19 +761,19 @@ export class PythStakingClient {
totalRewards += BigInt("0x" + buffer.toString("hex"));
}

const delegationRecords = await Promise.all(
const delegationRecords = await Promise.allSettled(
instructions.publishers.map(({ pubkey }) =>
this.getDelegationRecord(stakeAccountPositions, pubkey),
),
);

let lowestEpoch: bigint | undefined;
for (const record of delegationRecords) {
if (
record !== null &&
(lowestEpoch === undefined || record.lastEpoch < lowestEpoch)
) {
lowestEpoch = record.lastEpoch;
if (record.status === "fulfilled") {
const { lastEpoch } = record.value;
if (lowestEpoch === undefined || lastEpoch < lowestEpoch) {
lowestEpoch = lastEpoch;
}
}
}

Expand Down

0 comments on commit 2024d94

Please sign in to comment.