UNPKG

@magiceden/magiceden-sdk

Version:

A TypeScript SDK for interacting with Magic Eden's API across multiple chains.

54 lines (53 loc) 1.6 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MagicEdenClient = void 0; const types_1 = require("./types"); const nft_1 = require("./services/nft"); /** * Magic Eden API client */ class MagicEdenClient { /** * Creates a new Magic Eden API client * @param config Client configuration */ constructor(config) { this._config = this.validateConfig(config); this._nft = nft_1.NftServiceFactory.create(this._config); } /** * Access wallet-related functionality */ get wallet() { return this._config.wallet; } /** * Access NFT-related functionality */ get nft() { return this._nft; } /** * Validates the provided configuration */ validateConfig(config) { if (!config.chain) { throw new Error('Chain type must be specified'); } return { ...config, // Ensure apiOptions exists with apiKey apiOptions: { ...(config.apiOptions || {}), // Reject unauthorized requests by default rejectUnauthorized: config.apiOptions?.rejectUnauthorized ?? true, }, transactionOptions: { ...(config.transactionOptions || {}), // Default to signing and sending transactions, then waiting for confirmation strategy: config.transactionOptions?.strategy || types_1.TransactionStrategy.SignSendAndConfirm, }, }; } } exports.MagicEdenClient = MagicEdenClient;