@lightprotocol/compressed-token - v0.23.0-beta.8
    Preparing search index...

    Function createLoadAccountsParams

    • Create params for loading program accounts and ATAs.

      Returns:

      • decompressParams: for a caller program's standardized decompressAccountsIdempotent instruction
      • ataInstructions: for loading user ATAs

      Parameters

      • rpc: Rpc

        RPC connection

      • payer: PublicKey

        Fee payer (needed for associated token account instructions)

      • programId: PublicKey

        Program ID for decompressAccountsIdempotent

      • programAccounts: CompressibleAccountInput<unknown>[] = []

        PDAs and vaults (caller pre-fetches)

      • atas: AccountInterface[] = []

        User ATAs (fetched via getAtaInterface)

      • Optionaloptions: InterfaceOptions

        Optional load options

      Returns Promise<LoadResult>

      LoadResult with decompressParams and ataInstructions

      const poolInfo = await myProgram.fetchPoolState(rpc, poolAddress);
      const vault0Ata = getAssociatedTokenAddressInterface(token0Mint, poolAddress);
      const vault0Info = await getAtaInterface(rpc, vault0Ata, poolAddress, token0Mint, undefined, LIGHT_TOKEN_PROGRAM_ID);
      const userAta = getAssociatedTokenAddressInterface(tokenMint, userWallet);
      const userAtaInfo = await getAtaInterface(rpc, userAta, userWallet, tokenMint);

      const result = await createLoadAccountsParams(
      rpc,
      payer.publicKey,
      programId,
      [
      { address: poolAddress, accountType: 'poolState', info: poolInfo },
      { address: vault0, accountType: 'cTokenData', tokenVariant: 'token0Vault', info: vault0Info },
      ],
      [userAta],
      );

      // Build transaction with both program decompress and associated token account load
      const instructions = [...result.ataInstructions];
      if (result.decompressParams) {
      instructions.push(await program.methods
      .decompressAccountsIdempotent(
      result.decompressParams.proofOption,
      result.decompressParams.compressedAccounts,
      result.decompressParams.systemAccountsOffset,
      )
      .remainingAccounts(result.decompressParams.remainingAccounts)
      .instruction());
      }