UNPKG

@accessprotocol/distributor

Version:

Access Protocol Distributor Library

38 lines (37 loc) 1.47 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.newClaim = newClaim; const web3_js_1 = require("@solana/web3.js"); const programId_1 = require("../programId"); const spl_token_1 = require("@solana/spl-token"); const spl_token_2 = require("@solana/spl-token"); const raw_instructions_1 = require("../raw_instructions"); /** * Creates claim instructions for both unlocked and locked tokens. * Returns both instructions if both amounts are > 0, otherwise returns the relevant one. */ function newClaim(amountUnlocked, amountLocked, proof, distributor, claimant, mint, programId = programId_1.PROGRAM_ID, tokenProgram = spl_token_1.TOKEN_PROGRAM_ID, systemProgram = web3_js_1.SystemProgram.programId) { // Get claim status PDA const claimStatus = web3_js_1.PublicKey.findProgramAddressSync([ Buffer.from("ClaimStatus"), claimant.toBuffer(), distributor.toBuffer(), ], programId)[0]; // Get distributor's token vault const from = (0, spl_token_2.getAssociatedTokenAddressSync)(mint, distributor, true); // Get claimant's token account const to = (0, spl_token_2.getAssociatedTokenAddressSync)(mint, claimant, true); return (0, raw_instructions_1.newClaimRaw)({ amountUnlocked, amountLocked, proof, }, { distributor, claimStatus, from, to, claimant, tokenProgram, systemProgram, }, programId); }