@magiceden/magiceden-sdk
Version:
A TypeScript SDK for interacting with Magic Eden's API across multiple chains.
82 lines (81 loc) • 3.43 kB
TypeScript
import { EvmBlockchain } from './types';
import { MagicEdenClient } from './client';
import { ClientConfig } from './types';
import { Keypair } from '@solana/web3.js';
import { SolanaWalletProvider } from './wallet/solana';
import { EvmWalletProvider } from './wallet/evm';
import { ViemWalletProviderOptions } from './wallet/evm/viemWalletProvider';
import { EvmNftService } from './services/nft/evm';
import { SolanaNftService } from './services/nft/solana';
/**
* Magic Eden SDK V1 implementation
*/
declare class MagicEdenSDKV1 {
/**
* Creates a new Magic Eden API client for Solana
* @param apiKey Your Magic Eden API key
* @param walletProvider The wallet provider to use
* @param clientConfig Additional client configuration
* @returns A new Magic Eden API client for Solana
*/
static createSolanaClient<T extends SolanaWalletProvider>(apiKey: string, walletProvider: T, clientConfig?: Partial<Omit<ClientConfig<'solana'>, 'apiKey'>>): MagicEdenClient<SolanaNftService>;
/**
* Creates a new Magic Eden API client for Solana using a keypair
* @param apiKey Your Magic Eden API key
* @param keypair The Solana keypair to use for the client
* @param options Optional configuration
* @param options.rpcUrl Custom Solana RPC URL (defaults to public endpoint if not provided)
* @param options.clientConfig Additional client configuration
* @returns A new Magic Eden API client for Solana
*/
static createSolanaKeypairClient(apiKey: string, keypair: Keypair, options?: {
/**
* Custom Solana RPC URL
*
* @default 'https://api.mainnet-beta.solana.com'
*/
rpcUrl?: string;
/**
* Additional client configuration
*/
clientConfig?: Partial<Omit<ClientConfig<'solana'>, 'apiKey'>>;
}): MagicEdenClient<SolanaNftService>;
/**
* Creates a new Magic Eden API client for an EVM blockchain
* @param apiKey Your Magic Eden API key
* @param walletProvider The wallet provider to use
* @param clientConfig Additional client configuration
* @returns A new Magic Eden API client for an EVM blockchain
*/
static createEvmClient<T extends EvmWalletProvider>(apiKey: string, walletProvider: T, clientConfig?: Partial<Omit<ClientConfig<'evm'>, 'apiKey'>>): MagicEdenClient<EvmNftService>;
/**
* Creates a new Magic Eden API client for an EVM blockchain using a private key
* @param apiKey Your Magic Eden API key
* @param privateKey The private key to use for the client
* @param blockchain The blockchain to use
* @param options Optional configuration
* @param options.clientConfig Additional client configuration
* @param options.walletOptions Wallet options
* @returns A new Magic Eden API client for an EVM blockchain
*/
static createViemEvmClient(apiKey: string, privateKey: `0x${string}`, blockchain: EvmBlockchain, options?: {
/**
* Additional client configuration
*/
clientConfig?: Partial<Omit<ClientConfig<'evm'>, 'apiKey'>>;
/**
* Wallet options
*/
walletOptions?: ViemWalletProviderOptions;
}): MagicEdenClient<EvmNftService>;
}
/**
* Magic Eden SDK
*/
export declare class MagicEdenSDK {
/**
* Magic Eden SDK V1 API methods
*/
static v1: typeof MagicEdenSDKV1;
}
export {};