Skip to main content

createProposeActionInstruction

Builds a raw instruction to create a governance proposal for vault settings changes or position updates. Only callable by the manager role. The proposal enters a voting period during which LP holders can vote to reject or opt out.

Usage

import { createProposeActionInstruction } from "@exponent-labs/exponent-sdk/client/vaults";
import { PublicKey, SystemProgram } from "@solana/web3.js";

const ix = createProposeActionInstruction(
  {
    payer: managerKeypair.publicKey,
    manager: managerKeypair.publicKey,
    vault: vaultAddress,
    proposal: proposalAddress,
    systemProgram: SystemProgram.programId,
  },
  {
    proposalId: BigInt(1),
    action: {
      vaultSettingsAction: {
        updateRejectionThresholdBps: 2500,
      },
    },
    votingPeriodSeconds: 86400,
    timelockSeconds: 3600,
  }
);

Accounts

NameSignerWritableDescription
payerYesYesFee payer for the transaction
managerYesNoManager authority of the vault
vaultNoYesVault account the proposal targets
proposalNoYesProposal account to initialize
systemProgramNoNoSystem program

Args

NameTypeDescription
proposalIdu64Sequential proposal ID for the vault
actionProposalActionThe proposed change: VaultSettingsAction or PositionUpdate
votingPeriodSecondsu32 | nullOptional voting period override in seconds
timelockSecondsu32 | nullOptional timelock period override in seconds

Returns

TransactionInstruction — a transaction instruction ready to be added to a transaction.