@magiceden/magiceden-sdk
Version:
A TypeScript SDK for interacting with Magic Eden's API across multiple chains.
47 lines (46 loc) • 1.9 kB
TypeScript
import { paths } from '@reservoir0x/reservoir-sdk';
import { EvmBlockchain } from '../../chains/evm';
export interface V3EVMRequest {
chain: EvmBlockchain;
}
type PlaceBidBody = NonNullable<paths['/execute/bid/v5']['post']['parameters']['body']['body']>;
export interface V3PlaceBidRequest extends V3EVMRequest {
maker: string;
params: Required<PlaceBidBody>['params'];
}
type ListTokenBody = NonNullable<paths['/execute/list/v5']['post']['parameters']['body']['body']>;
export interface V3ListRequest extends V3EVMRequest {
maker: string;
params: Required<ListTokenBody>['params'];
}
type BuyTokenBody = NonNullable<paths['/execute/buy/v7']['post']['parameters']['body']['body']>;
type BuyTokenOptions = Partial<Omit<BuyTokenBody, 'source' | 'items'>>;
export interface V3BuyRequest extends V3EVMRequest {
taker: string;
items: Required<BuyTokenBody>['items'];
options?: BuyTokenOptions;
}
type SellTokenBody = NonNullable<paths['/execute/sell/v7']['post']['parameters']['body']['body']>;
type SellTokenOptions = Partial<Omit<SellTokenBody, 'items'>>;
export interface V3SellRequest extends V3EVMRequest {
taker: string;
items: Required<SellTokenBody>['items'];
options?: SellTokenOptions;
}
type CancelOrderBody = paths['/execute/cancel/v3']['post']['parameters']['body'];
type CancelOrderOptions = Omit<NonNullable<CancelOrderBody['body']>, 'orderIds'>;
export interface V3CancelOrderRequest extends V3EVMRequest {
orderIds: string[];
options?: CancelOrderOptions;
}
type TransferTokenBody = NonNullable<paths['/execute/transfer/v1']['post']['parameters']['body']['body']>;
export interface V3TransferRequest extends V3EVMRequest {
to: `0x${string}`;
from: `0x${string}`;
items: Required<TransferTokenBody>['items'];
}
export interface V3SubmitSignedOrderRequest extends V3EVMRequest {
signature: string;
data: any;
}
export {};