import type { Wallet } from '@saberhq/solana-contrib'; import type { AccountMeta, Connection, Transaction } from '@solana/web3.js'; import { withFindOrInitAssociatedTokenAccount } from '../../utils/withFindOrInitAssociatedTokenAccount'; import type { BlazeData } from './constants'; export const withRemainingAccountsForRedeem = async ( transaction: Transaction, connection: Connection, wallet: Wallet, { tokenMint, treasury }: Pick ) => { const res: AccountMeta[] = []; if (tokenMint) { const signerTokenAccount = await withFindOrInitAssociatedTokenAccount( transaction, connection, tokenMint, wallet.publicKey, wallet.publicKey ); res.push( { isSigner: false, isWritable: false, pubkey: tokenMint }, { isSigner: false, isWritable: true, pubkey: signerTokenAccount } ); } else if (treasury) { res.push({ isSigner: false, isWritable: true, pubkey: treasury }); } return res; };