@blockassetlabs/blaze
Version:
Blockasset Blaze
43 lines (40 loc) • 1.08 kB
text/typescript
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<BlazeData, 'tokenMint' | 'treasury'>
) => {
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;
};