import { createInitializeVaultInstruction } from "@exponent-labs/exponent-sdk/client/vaults";
import { Keypair, PublicKey } from "@solana/web3.js";
const ix = createInitializeVaultInstruction(
{
payer: wallet.publicKey,
vault: vaultPda,
exponentPrices: exponentPricesPda,
mint: underlyingMintAddress,
mintLp: lpMintPda,
tokenLpEscrow: lpEscrowPda,
feeTreasury: feeTreasuryPda,
lpDst: payerLpTokenAccount,
tokenProgram: TOKEN_PROGRAM_ID,
systemProgram: SYSTEM_PROGRAM_ID,
associatedTokenProgram: ASSOCIATED_TOKEN_PROGRAM_ID,
addressLookupTable: lookupTableAddress,
squadsProgram: SQUADS_PROGRAM_ID,
squadsProgramConfig: squadsProgramConfigPda,
squadsTreasury: squadsTreasuryPda,
squadsSettings: squadsSettingsPda,
squadsVault: squadsVaultPda,
squadsPolicy: squadsPolicyPda,
squadsSettingsTransaction: squadsSettingsTransactionPda,
squadsProposal: squadsProposalPda,
},
{
manager: managerPublicKey,
feeTreasuryLpBps: 500,
tokenEntries: [
{ mint: usdcMint, oracle: usdcOracle, decimals: 6 },
],
maxLpSupply: BigInt(1_000_000_000_000),
seedId: new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8]),
initialLpAmount: BigInt(1_000_000),
lpDecimals: 6,
vaultType: { openEnded: {} },
roles: {
manager: managerPublicKey,
sentinel: sentinelPublicKey,
},
proposalVoteConfig: null,
}
);