UNPKG

@blockassetlabs/minter

Version:

Blockasset Minter

94 lines 3.32 kB
import { AnchorProvider, Program } from "@project-serum/anchor"; import { TOKEN_PROGRAM_ID } from "@solana/spl-token"; import { SystemProgram } from "@solana/web3.js"; import { MINTER_ADDRESS, MINTER_IDL } from "./constants"; const getProgram = (connection, wallet) => { const provider = new AnchorProvider(connection, wallet, {}); const program = new Program(MINTER_IDL, MINTER_ADDRESS, provider); return program; }; export const initMinterInstruction = (connection, wallet, params) => { const program = getProgram(connection, wallet); return program.methods .initMinter({ identifier: params.identifierId, authorizedCreators: params.authorizedCreators || [], metadataKind: params.metadataKind || null, maxMint: params.maxMint || null, minSetSize: params.minSetSize || null, start: params.start || null, end: params.end || null, }) .accounts({ minter: params.minterId, redeemedMints: params.redeemedMintsId, project: params.projectId, mint: params.mintId, payer: wallet.publicKey, systemProgram: SystemProgram.programId, tokenProgram: TOKEN_PROGRAM_ID, }) .transaction(); }; export const updateMinterInstruction = (connection, wallet, params) => { const program = getProgram(connection, wallet); return program.methods .updateMinter({ authorizedCreators: params.authorizedCreators || [], metadataKind: params.metadataKind || null, maxMint: params.maxMint || null, minSetSize: params.minSetSize || null, start: params.start || null, end: params.end || null, }) .accounts({ minter: params.minterId, project: params.projectId, authority: wallet.publicKey, }) .transaction(); }; export const closeMinterInstruction = (connection, wallet, params) => { const program = getProgram(connection, wallet); return program.methods .closeMinter() .accounts({ minter: params.minterId, redeemedMints: params.redeemedMintsId, project: params.projectId, mint: params.mintId, authority: wallet.publicKey, tokenProgram: TOKEN_PROGRAM_ID, }) .transaction(); }; export const mintInstruction = (connection, wallet, params) => { const program = getProgram(connection, wallet); return program.methods .mint() .accounts({ minter: params.minterId, userTokenAccount: params.userTokenAccountId, redeemedMints: params.redeemedMintsId, mint: params.mintId, user: wallet.publicKey, tokenProgram: TOKEN_PROGRAM_ID, }) .remainingAccounts(params.remainingAccounts) .transaction(); }; export const setAsRedeemedInstruction = (connection, wallet, params) => { const program = getProgram(connection, wallet); return program.methods .setAsRedeemed(params.mints) .accounts({ minter: params.minterId, redeemedMints: params.redeemedMintsId, project: params.projectId, authority: wallet.publicKey, tokenProgram: TOKEN_PROGRAM_ID, systemProgram: SystemProgram.programId, }) .transaction(); }; //# sourceMappingURL=instruction.js.map