@bagsfm/bags-sdk
Version:
TypeScript SDK for Bags
68 lines • 3.06 kB
JavaScript
;
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