UNPKG

@magiceden/magiceden-sdk

Version:

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

125 lines (124 loc) 5.28 kB
import { ChainMethodParams, ClientConfig, SignatureResponse, TransactionResponse } from '../../types'; import { SupportedChain } from '../../types/chains'; import { V2ApiClient } from '../../api/clients/v2'; import { V4ApiClient } from '../../api/clients/v4'; import { V3ApiClient } from '../../api/clients/v3'; import { ChainOperation, OperationResponse, SignatureOperation, TransactionOperation } from '../../types/operations'; /** * Base class for NFT services */ export declare abstract class BaseNftService<C extends SupportedChain = SupportedChain> { protected readonly config: ClientConfig<C>; protected readonly v2ApiClient: V2ApiClient; protected readonly v3ApiClient: V3ApiClient; protected readonly v4ApiClient: V4ApiClient; constructor(config: ClientConfig<C>); /** * Publish a launchpad * * Only available for Solana. Meant to be called after calling createLaunchpad and creating a launchpad on-chain. */ publishLaunchpad(params: ChainMethodParams<C, 'publishLaunchpad'>): Promise<boolean>; /** * Get publish launchpad response from API */ protected abstract getPublishLaunchpadResponse(params: ChainMethodParams<C, 'publishLaunchpad'>): Promise<boolean>; /** * Creates a new launchpad */ createLaunchpad(params: ChainMethodParams<C, 'createLaunchpad'>): Promise<OperationResponse[]>; /** * Get create launchpad transaction instructions from API */ protected abstract getCreateLaunchpadOperations(params: ChainMethodParams<C, 'createLaunchpad'>): Promise<ChainOperation<C>[]>; /** * Updates an existing launchpad */ updateLaunchpad(params: ChainMethodParams<C, 'updateLaunchpad'>): Promise<OperationResponse[]>; /** * Get update launchpad transaction instructions from API */ protected abstract getUpdateLaunchpadOperations(params: ChainMethodParams<C, 'updateLaunchpad'>): Promise<ChainOperation<C>[]>; /** * Mints an NFT from a launchpad */ mint(params: ChainMethodParams<C, 'mint'>): Promise<OperationResponse[]>; /** * Get mint transaction instructions from API */ protected abstract getMintOperations(params: ChainMethodParams<C, 'mint'>): Promise<ChainOperation<C>[]>; /** * Lists an NFT for sale. * * - Supported on EVM. * - Supported on Solana (every NFT type excluding cNFT). * * @param params - The parameters for the list operation * @returns The operation response */ list(params: ChainMethodParams<C, 'list'>): Promise<OperationResponse[]>; /** * Get list transaction instructions from API */ protected abstract getListOperations(params: ChainMethodParams<C, 'list'>): Promise<ChainOperation<C>[]>; /** * Cancels an NFT listing */ cancelListing(params: ChainMethodParams<C, 'cancelListing'>): Promise<OperationResponse[]>; /** * Get cancel listing transaction instructions from API */ protected abstract getCancelListingOperations(params: ChainMethodParams<C, 'cancelListing'>): Promise<ChainOperation<C>[]>; /** * Takes an item offer on an NFT */ takeItemOffer(params: ChainMethodParams<C, 'takeItemOffer'>): Promise<OperationResponse[]>; /** * Get take item offer transaction instructions from API */ protected abstract getTakeItemOfferOperations(params: ChainMethodParams<C, 'takeItemOffer'>): Promise<ChainOperation<C>[]>; /** * Makes an item offer on an NFT */ makeItemOffer(params: ChainMethodParams<C, 'makeItemOffer'>): Promise<OperationResponse[]>; /** * Get make item offer transaction instructions from API */ protected abstract getMakeItemOfferOperations(params: ChainMethodParams<C, 'makeItemOffer'>): Promise<ChainOperation<C>[]>; /** * Cancels an item offer */ cancelItemOffer(params: ChainMethodParams<C, 'cancelItemOffer'>): Promise<OperationResponse[]>; /** * Get cancel item offer transaction instructions from API */ protected abstract getCancelItemOfferOperations(params: ChainMethodParams<C, 'cancelItemOffer'>): Promise<ChainOperation<C>[]>; /** * Buys an NFT */ buy(params: ChainMethodParams<C, 'buy'>): Promise<OperationResponse[]>; /** * Get transfer transaction instructions from API */ protected abstract getBuyOperations(params: ChainMethodParams<C, 'buy'>): Promise<ChainOperation<C>[]>; /** * Transfers an NFT to another wallet */ transfer(params: ChainMethodParams<C, 'transfer'>): Promise<OperationResponse[]>; /** * Get transfer transaction instructions from API */ protected abstract getTransferOperations(params: ChainMethodParams<C, 'transfer'>): Promise<ChainOperation<C>[]>; /** * Process a sequence of operations */ protected processOperations(operations: ChainOperation<C>[]): Promise<OperationResponse[]>; /** * Process a transaction operation */ protected processTransactionOperation(operation: TransactionOperation<C>): Promise<TransactionResponse>; /** * Process a signature operation */ protected abstract processSignatureOperation(operation: SignatureOperation<C>): Promise<SignatureResponse>; }