SPLToken2022ExtensionsProgram.updateRateInterestBearingMint constructor

SPLToken2022ExtensionsProgram.updateRateInterestBearingMint({
  1. required SolAddress mint,
  2. required SolAddress rateAuthority,
  3. required SPLToken2022InterestBearingMintUpdateRateLayout layout,
  4. SolAddress programId = SPLTokenProgramConst.token2022ProgramId,
  5. List<SolAddress> multiSigners = const [],
})

Update the interest rate. Only supported for mints that include the InterestBearingConfig extension.

Implementation

factory SPLToken2022ExtensionsProgram.updateRateInterestBearingMint({
  /// The mint.
  required SolAddress mint,

  /// The mint rate authority.
  required SolAddress rateAuthority,
  required SPLToken2022InterestBearingMintUpdateRateLayout layout,
  SolAddress programId = SPLTokenProgramConst.token2022ProgramId,

  /// Multisignature authority
  List<SolAddress> multiSigners = const [],
}) {
  if (programId == SPLTokenProgramConst.tokenProgramId) {
    throw const MessageException("Token program does not support extensions");
  }
  return SPLToken2022ExtensionsProgram(
      keys: SPLTokenUtils.buildKeys(keys: [
        mint.toWritable(),
        if (multiSigners.isEmpty)
          rateAuthority.toSigner()
        else
          rateAuthority.toReadOnly()
      ], owner: rateAuthority, multiSigners: multiSigners),
      programId: programId,
      layout: layout);
}