UNPKG

@blockassetlabs/blaze

Version:

Blockasset Blaze

128 lines 5.1 kB
import { AnchorProvider, Program } from '@project-serum/anchor'; import { TOKEN_PROGRAM_ID } from '@solana/spl-token'; import { SystemProgram, SYSVAR_RECENT_BLOCKHASHES_PUBKEY } from '@solana/web3.js'; import { BLAZE_ADDRESS, BLAZE_IDL } from './constants'; export const initIdentifierInstruction = (connection, wallet, params) => { const provider = new AnchorProvider(connection, wallet, {}); const blazeProgram = new Program(BLAZE_IDL, BLAZE_ADDRESS, provider); return blazeProgram.methods .initIdentifier() .accounts({ identifier: params.identifierId, payer: wallet.publicKey, systemProgram: SystemProgram.programId }) .transaction(); }; export const initBlazeInstruction = (connection, wallet, params) => { const provider = new AnchorProvider(connection, wallet, {}); const blazeProgram = new Program(BLAZE_IDL, BLAZE_ADDRESS, provider); return blazeProgram.methods .initBlaze({ prizeMint: params.prizeMint, tokenMint: params.tokenMint || null, tokenAccount: params.tokenAccount || null, treasury: params.treasury || null, entrantFee: params.entrantFee, maxEntrants: params.maxEntrants, start: params.start, end: params.end, maxEntrantsPerWalletRate: params.maxEntrantsPerWalletRate || null, category: params.category || null, burnRate: params.burnRate || null }) .accounts({ blaze: params.blazeId, identifier: params.identifierId, project: params.projectId, projectWallet: params.projectWallet, blazePrizeMintTokenAccount: params.blazePrizeMintTokenAccount, authority: wallet.publicKey, authorityPrizeMintTokenAccount: params.userPrizeMintTokenAccount, entrants: params.entrants, systemProgram: SystemProgram.programId, tokenProgram: TOKEN_PROGRAM_ID }) .transaction(); }; export const updateBlazeInstruction = (connection, wallet, params) => { const provider = new AnchorProvider(connection, wallet, {}); const blazeProgram = new Program(BLAZE_IDL, BLAZE_ADDRESS, provider); return blazeProgram.methods .updateBlaze({ tokenMint: params.tokenMint || null, tokenAccount: params.tokenAccount || null, treasury: params.treasury || null, entrantFee: params.entrantFee, start: params.start, end: params.end, maxEntrantsPerWalletRate: params.maxEntrantsPerWalletRate || null, category: params.category || null, burnRate: params.burnRate || null }) .accounts({ blaze: params.blazeId, project: params.projectId, authority: wallet.publicKey }) .transaction(); }; export const closeBlazeInstruction = (connection, wallet, params) => { const provider = new AnchorProvider(connection, wallet, {}); const blazeProgram = new Program(BLAZE_IDL, BLAZE_ADDRESS, provider); return blazeProgram.methods .closeBlaze() .accounts({ blaze: params.blazeId, project: params.projectId, blazePrizeMintTokenAccount: params.blazePrizeMintTokenAccount, authorityPrizeMintTokenAccount: params.userPrizeMintTokenAccount, entrants: params.entrants, authority: wallet.publicKey, tokenProgram: TOKEN_PROGRAM_ID }) .transaction(); }; export const redeemEntrantsInstruction = (connection, wallet, params) => { const provider = new AnchorProvider(connection, wallet, {}); const blazeProgram = new Program(BLAZE_IDL, BLAZE_ADDRESS, provider); return blazeProgram.methods .redeemEntrants(params.quantity) .accounts({ blaze: params.blazeId, entrants: params.entrants, signer: wallet.publicKey, systemProgram: SystemProgram.programId, tokenProgram: TOKEN_PROGRAM_ID }) .remainingAccounts(params.remainingAccountsForRedeem) .transaction(); }; export const resolveBlazeInstruction = (connection, wallet, params) => { const provider = new AnchorProvider(connection, wallet, {}); const blazeProgram = new Program(BLAZE_IDL, BLAZE_ADDRESS, provider); return blazeProgram.methods .resolveBlaze() .accounts({ blaze: params.blazeId, entrants: params.entrants, recentBlockhashes: SYSVAR_RECENT_BLOCKHASHES_PUBKEY, tokenProgram: TOKEN_PROGRAM_ID }) .transaction(); }; export const claimPrizeInstruction = (connection, wallet, params) => { const provider = new AnchorProvider(connection, wallet, {}); const blazeProgram = new Program(BLAZE_IDL, BLAZE_ADDRESS, provider); return blazeProgram.methods .claimPrize() .accounts({ blaze: params.blazeId, blazePrizeMintTokenAccount: params.blazePrizeMintTokenAccount, winnerPrizeMintTokenAccount: params.winnerPrizeMintTokenAccount, winner: wallet.publicKey, tokenProgram: TOKEN_PROGRAM_ID }) .transaction(); }; //# sourceMappingURL=instruction.js.map