Skip to main content

createInitializeTranchingMarketInstruction

Builds a raw instruction that initializes the market account, return model storage account, SY escrow, and Senior/Junior LP mints.

Usage

import { TranchingMarket } from "@exponent-labs/exponent-sdk";
import {
  createInitializeTranchingMarketInstruction,
} from "@exponent-labs/exponent-sdk/client/tranching";

const seedId = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8]);
const derived = TranchingMarket.deriveAddresses(seedId);

const ix = createInitializeTranchingMarketInstruction(
  {
    payer: wallet.publicKey,
    adminSigner: admin.publicKey,
    market: derived.market,
    returnModelStorage: derived.returnModelStorage,
    addressLookupTable,
    syProgram,
    syMint,
    tokenSyEscrow: derived.tokenSyEscrow,
    mintLpSenior: derived.mintLpSenior,
    mintLpJunior: derived.mintLpJunior,
    tokenProgram,
    systemProgram,
    admin: adminState,
  },
  {
    roles: { admin: [admin.publicKey], sentinel: [] },
    riskConfig,
    protocolFeeConfig,
    returnModel,
    syCpiAccounts,
    maxSeniorLpSupply: 0n,
    maxJuniorLpSupply: 0n,
    seedId,
  }
);

Accounts

NameTypeSignerWritableDescription
payerPublicKeyYesYesRent and transaction payer
adminSignerPublicKeyYesNoAdmin signer authorized by Exponent admin state
marketPublicKeyNoYesMarket PDA
returnModelStoragePublicKeyNoYesReturn model storage PDA
addressLookupTablePublicKeyNoNoALT used by market CPI account indexes
syProgramPublicKeyNoNoLinked SY program
syMintPublicKeyNoNoSY mint
tokenSyEscrowPublicKeyNoYesMarket SY escrow PDA
mintLpSeniorPublicKeyNoYesSenior LP mint PDA
mintLpJuniorPublicKeyNoYesJunior LP mint PDA
tokenProgramPublicKeyNoNoSPL Token program
systemProgramPublicKeyNoNoSystem program
adminPublicKeyNoNoExponent admin state

Args

NameTypeDescription
rolesTranchingMarketRolesAdmin and sentinel role lists
riskConfigTranchingRiskConfigCoverage, recovery, liquidation, and minimum amount parameters
protocolFeeConfigTranchingProtocolFeeConfigFee recipient and fee rates
returnModelTrancheReturnModelUpdateInitial return allocation model
syCpiAccountsCpiAccountsALT indexes for SY CPI account groups
maxSeniorLpSupplyu64Optional Senior LP supply cap. 0 means uncapped except coverage
maxJuniorLpSupplyu64Optional Junior LP supply cap. 0 means uncapped
seedId[u8; 8]Market seed ID

Returns

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