UNPKG

@blockassetlabs/minter

Version:

Blockasset Minter

56 lines (51 loc) 1.24 kB
import type { Wallet } from "@saberhq/solana-contrib"; import type { AccountMeta, Connection, PublicKey, Transaction, } from "@solana/web3.js"; import { withFindOrInitAssociatedTokenAccount } from "../../utils"; import { getMetadataId } from "./pda"; export const withRemainingAccountsForMint = async ( transaction: Transaction, connection: Connection, wallet: Wallet, params: { mints: PublicKey[]; } ) => { const res = await Promise.all( params.mints.map(async (mintId) => { const [mintTokenAccount, mintMetadataId] = await Promise.all([ withFindOrInitAssociatedTokenAccount( transaction, connection, mintId, wallet.publicKey, wallet.publicKey ), getMetadataId(mintId), ]); return [ { pubkey: mintId, isSigner: false, isWritable: false, }, { pubkey: mintMetadataId, isSigner: false, isWritable: false, }, { pubkey: mintTokenAccount, isSigner: false, isWritable: false, }, ]; }) ); const remainingAccounts: AccountMeta[] = res.flat(); return remainingAccounts; };