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