Skip to main content

createWrapperDepositInstruction

Builds a raw instruction that mints SY from base assets, deposits the SY into the selected tranche, and mints tranche LP shares.

Usage

import {
  TrancheSide,
  createWrapperDepositInstruction,
} from "@exponent-labs/exponent-sdk/client/tranching";

const ix = createWrapperDepositInstruction(
  {
    user: wallet.publicKey,
    market: marketAddress,
    returnModelStorage,
    addressLookupTable,
    syProgram,
    syMint,
    tokenSrc: userSyTokenAccount,
    tokenSyEscrow,
    tokenLpDst: userLpTokenAccount,
    mintLp: mintLpSenior,
    tokenProgram,
    eventAuthority,
    program: tranchingProgram,
  },
  {
    trancheSide: TrancheSide.Senior,
    amountBase: 1_000_000_000n, // raw base-token units
    minLpOut: 0n,               // raw Senior LP units
    mintSyAccountsUntil: 0,
  }
);

Accounts

NameTypeSignerWritableDescription
userPublicKeyYesYesDepositor
marketPublicKeyNoYesTranching market account
returnModelStoragePublicKeyNoYesReturn model storage account
addressLookupTablePublicKeyNoNoMarket address lookup table
syProgramPublicKeyNoNoLinked SY program
syMintPublicKeyNoYesSY mint
tokenSrcPublicKeyNoYesUser SY token account used by the wrapper
tokenSyEscrowPublicKeyNoYesMarket SY escrow
tokenLpDstPublicKeyNoYesDestination LP token account
mintLpPublicKeyNoYesSenior or Junior LP mint
tokenProgramPublicKeyNoNoSPL Token program
eventAuthorityPublicKeyNoNoEvent authority PDA
programPublicKeyNoNoExponent Tranching program

Args

NameTypeDescription
trancheSideTrancheSideSenior or Junior
amountBaseu64Base asset amount to wrap into SY, in raw base-token units
minLpOutu64Minimum selected-tranche LP shares to mint, in raw LP units
mintSyAccountsUntilu8Number of remaining accounts used by the SY mint CPI segment

Remaining accounts

Append remaining accounts in this order:
  1. SY mint CPI accounts, with length mintSyAccountsUntil
  2. Tranching getSyState and depositSy CPI accounts
Use TranchingMarket.ixWrapperDeposit to build this ordering automatically.

Returns

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