@magiceden/magiceden-sdk
Version:
A TypeScript SDK for interacting with Magic Eden's API across multiple chains.
54 lines (53 loc) • 1.6 kB
JavaScript
;
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;