UNPKG

@blockassetlabs/minter

Version:

Blockasset Minter

102 lines 3.88 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.setAsRedeemedInstruction = exports.mintInstruction = exports.closeMinterInstruction = exports.updateMinterInstruction = exports.initMinterInstruction = void 0; const anchor_1 = require("@project-serum/anchor"); const spl_token_1 = require("@solana/spl-token"); const web3_js_1 = require("@solana/web3.js"); const constants_1 = require("./constants"); const getProgram = (connection, wallet) => { const provider = new anchor_1.AnchorProvider(connection, wallet, {}); const program = new anchor_1.Program(constants_1.MINTER_IDL, constants_1.MINTER_ADDRESS, provider); return program; }; 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: web3_js_1.SystemProgram.programId, tokenProgram: spl_token_1.TOKEN_PROGRAM_ID, }) .transaction(); }; exports.initMinterInstruction = initMinterInstruction; 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(); }; exports.updateMinterInstruction = updateMinterInstruction; 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: spl_token_1.TOKEN_PROGRAM_ID, }) .transaction(); }; exports.closeMinterInstruction = closeMinterInstruction; 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: spl_token_1.TOKEN_PROGRAM_ID, }) .remainingAccounts(params.remainingAccounts) .transaction(); }; exports.mintInstruction = mintInstruction; 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: spl_token_1.TOKEN_PROGRAM_ID, systemProgram: web3_js_1.SystemProgram.programId, }) .transaction(); }; exports.setAsRedeemedInstruction = setAsRedeemedInstruction; //# sourceMappingURL=instruction.js.map