import { ExponentVault } from "@exponent-labs/exponent-sdk";
import { PublicKey, Transaction, sendAndConfirmTransaction } from "@solana/web3.js";
const ix = ExponentVault.ixInitializeVault({
payer: wallet.publicKey,
mint: new PublicKey("So11111111111111111111111111111111111111112"), // Underlying mint
manager: wallet.publicKey,
seedId: new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8]), // 8-byte unique seed
feeTreasury: feeTreasuryAddress,
feeTreasuryLpBps: 200, // 2% management fee
tokenEntries: [
{
mint: usdcMint,
priceId: { simple: { id: 0 } },
tokenSquadsAccount: usdcSquadsAccount,
},
],
maxLpSupply: 1_000_000_000_000n,
initialLpAmount: 1_000_000n,
lpDecimals: 6,
vaultType: { generic: {} },
roles: {
manager: [wallet.publicKey],
curator: [],
allocator: [],
sentinel: [],
},
addressLookupTable: lookupTableAddress,
squadsProgram: squadsV4ProgramId,
squadsProgramConfig: squadsProgramConfigAddress,
squadsTreasury: squadsTreasuryAddress,
squadsSettings: squadsSettingsAddress,
squadsVault: squadsVaultAddress,
}, env);
const tx = new Transaction().add(ix);
await sendAndConfirmTransaction(connection, tx, [wallet]);