@blockassetlabs/minter
Version:
Blockasset Minter
102 lines • 3.88 kB
JavaScript
"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