UNPKG

@bagsfm/bags-sdk

Version:

TypeScript SDK for Bags

68 lines 3.06 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.TokenLaunchService = void 0; const web3_js_1 = require("@solana/web3.js"); const base_1 = require("./base"); const bs58_1 = __importDefault(require("bs58")); const form_data_1 = __importDefault(require("form-data")); const image_1 = require("../utils/image"); const validations_1 = require("../utils/validations"); class TokenLaunchService extends base_1.BaseService { constructor(apiKey, connection, commitment = 'processed') { super(apiKey, connection, commitment); } async createLaunchTransaction(params) { const encodedSignedTransaction = await this.bagsApiClient.post('/token-launch/create-launch-transaction', { ipfs: params.metadataUrl, tokenMint: params.tokenMint.toBase58(), wallet: params.launchWallet.toBase58(), initialBuyLamports: params.initialBuyLamports, configKey: params.configKey.toBase58(), tipWallet: params.tipConfig ? params.tipConfig.tipWallet.toBase58() : undefined, tipLamports: params.tipConfig ? params.tipConfig.tipLamports : undefined, }); const decodedSignedTransaction = bs58_1.default.decode(encodedSignedTransaction); const launchTransaction = web3_js_1.VersionedTransaction.deserialize(decodedSignedTransaction); return launchTransaction; } async createTokenInfoAndMetadata(params) { const normalized = (0, validations_1.validateAndNormalizeCreateTokenInfoParams)(params); const formData = new form_data_1.default(); if (normalized.kind === 'file') { const imageData = await (0, image_1.prepareImageForFormData)(normalized.image); formData.append('image', imageData.buffer, { filename: imageData.filename, contentType: imageData.contentType, }); } else { formData.append('imageUrl', normalized.imageUrl); } formData.append('name', normalized.name); formData.append('symbol', normalized.symbol); formData.append('description', normalized.description); if (normalized.telegram) { formData.append('telegram', normalized.telegram); } if (normalized.website) { formData.append('website', normalized.website); } if (normalized.twitter) { formData.append('twitter', normalized.twitter); } if (normalized.metadataUrl) { formData.append('metadataUrl', normalized.metadataUrl); } const response = await this.bagsApiClient.post('/token-launch/create-token-info', formData, { headers: { ...formData.getHeaders(), }, }); return response; } } exports.TokenLaunchService = TokenLaunchService; //# sourceMappingURL=token-launch.js.map