Skip to content

Commit

Permalink
chore: support max capacity unstake
Browse files Browse the repository at this point in the history
  • Loading branch information
guibescos committed Apr 2, 2024
1 parent aad326c commit 2745913
Showing 1 changed file with 13 additions and 4 deletions.
17 changes: 13 additions & 4 deletions staking/app/StakeConnection.ts
Original file line number Diff line number Diff line change
Expand Up @@ -390,6 +390,7 @@ export class StakeConnection {
stakeAccount: StakeAccount,
amount: PythBalance
) {
const maxCapacity = stakeAccount.hasReachedMaxCapacity();
const positions = stakeAccount.stakeAccountPositionsJs.positions;

const time = await this.getTime();
Expand Down Expand Up @@ -427,10 +428,12 @@ export class StakeConnection {

while (amountBeforeFinishing.gt(new BN(0)) && i < sortPositions.length) {
if (sortPositions[i].value.amount.gte(amountBeforeFinishing)) {
toClose.push({
index: sortPositions[i].index,
amount: amountBeforeFinishing,
});
if (!maxCapacity) {
toClose.push({
index: sortPositions[i].index,
amount: amountBeforeFinishing,
});
}
amountBeforeFinishing = new BN(0);
} else {
toClose.push({
Expand Down Expand Up @@ -1488,4 +1491,10 @@ export class StakeAccount {
const balanceSummary = this.getBalanceSummary(timeOfEval).locked;
return balanceSummary.locking.toBN().add(balanceSummary.locked.toBN());
}

public hasReachedMaxCapacity(): boolean {
return (
this.stakeAccountMetadata.nextIndex == wasm.Constants.MAX_POSITIONS()
);
}
}

0 comments on commit 2745913

Please sign in to comment.