deactivateDelinquent static method

TransactionInstruction deactivateDelinquent({
  1. required Pubkey delegatedStakeAccount,
  2. required Pubkey delinquentVoteAccount,
  3. required Pubkey referenceVoteAccount,
})

Deactivate stake delegated to a vote account that has been delinquent for at least MINIMUM_DELINQUENT_EPOCHS_FOR_DEACTIVATION epochs.

No signer is required for this instruction as it is a common good to deactivate abandoned stake.

Keys:

  • [w] delegatedStakeAccount - Delegated stake account.
  • [] delinquentVoteAccount - Delinquent vote account for the delegated stake account.
  • [] referenceVoteAccount - Reference vote account that has voted at least once in the last MINIMUM_DELINQUENT_EPOCHS_FOR_DEACTIVATION epochs

Implementation

static TransactionInstruction deactivateDelinquent({
  required final Pubkey delegatedStakeAccount,
  required final Pubkey delinquentVoteAccount,
  required final Pubkey referenceVoteAccount,
}) {
  // 0. `[w]` Delegated stake account
  // 1. `[]` Delinquent vote account for the delegated stake account
  // 2. `[]` Reference vote account that has voted at least once in the last
  //    `MINIMUM_DELINQUENT_EPOCHS_FOR_DEACTIVATION` epochs
  final List<AccountMeta> keys = [
    AccountMeta.writable(delegatedStakeAccount),
    AccountMeta(delinquentVoteAccount),
    AccountMeta(referenceVoteAccount),
  ];

  return _instance.createTransactionIntruction(
    StakeInstruction.deactivateDelinquent,
    keys: keys,
  );
}