UNPKG

opensea-js

Version:

TypeScript SDK for the OpenSea marketplace helps developers build new experiences using NFTs and our marketplace data

140 lines (139 loc) 4.29 kB
import { BasicOrderParametersStruct } from "@opensea/seaport-js/lib/typechain-types/seaport/contracts/Seaport"; import { AdvancedOrder, OrderWithCounter } from "@opensea/seaport-js/lib/types"; import { OpenSeaAccount, OrderSide } from "../types"; type OrderProtocolToProtocolData = { seaport: OrderWithCounter; }; export type OrderProtocol = keyof OrderProtocolToProtocolData; export type ProtocolData = OrderProtocolToProtocolData[keyof OrderProtocolToProtocolData]; export declare enum OrderType { BASIC = "basic", ENGLISH = "english", CRITERIA = "criteria" } type OrderFee = { account: OpenSeaAccount; basisPoints: string; }; /** * The latest OpenSea Order schema. */ export type OrderV2 = { /** The date the order was created. */ createdDate: string; /** The date the order was closed. */ closingDate: string | null; /** The date the order was listed. Order can be created before the listing time. */ listingTime: number; /** The date the order expires. */ expirationTime: number; /** The hash of the order. */ orderHash: string | null; /** The account that created the order. */ maker: OpenSeaAccount; /** The account that filled the order. */ taker: OpenSeaAccount | null; /** The protocol data for the order. Only 'seaport' is currently supported. */ protocolData: ProtocolData; /** The contract address of the protocol. */ protocolAddress: string; /** The current price of the order. */ currentPrice: bigint; /** The maker fees for the order. */ makerFees: OrderFee[]; /** The taker fees for the order. */ takerFees: OrderFee[]; /** The side of the order. Listing/Offer */ side: OrderSide; /** The type of the order. Basic/English/Criteria */ orderType: OrderType; /** Whether or not the maker has cancelled the order. */ cancelled: boolean; /** Whether or not the order is finalized. */ finalized: boolean; /** Whether or not the order is marked invalid and therefore not fillable. */ markedInvalid: boolean; /** The signature the order is signed with. */ clientSignature: string | null; /** Amount of items left in the order which can be taken. */ remainingQuantity: number; }; export type FulfillmentDataResponse = { protocol: string; fulfillment_data: FulfillmentData; }; type FulfillmentData = { transaction: Transaction; orders: ProtocolData[]; }; type Transaction = { function: string; chain: number; to: string; value: number; input_data: { orders: OrderWithCounter[] | AdvancedOrder[] | BasicOrderParametersStruct[]; }; }; type OpenOrderOrderingOption = "created_date" | "eth_price"; type OrderByDirection = "asc" | "desc"; export type OrderAPIOptions = { protocol?: OrderProtocol; protocolAddress?: string; side: OrderSide; }; export type OrdersQueryOptions = OrderAPIOptions & { limit?: number; cursor?: string; next?: string; paymentTokenAddress?: string; maker?: string; taker?: string; owner?: string; listedAfter?: number | string; listedBefore?: number | string; tokenId?: string; tokenIds?: string[]; assetContractAddress?: string; orderBy?: OpenOrderOrderingOption; orderDirection?: OrderByDirection; onlyEnglish?: boolean; }; export type SerializedOrderV2 = { created_date: string; closing_date: string | null; listing_time: number; expiration_time: number; order_hash: string | null; maker: unknown; taker: unknown | null; protocol_data: ProtocolData; protocol_address: string; current_price: string; maker_fees: { account: unknown; basis_points: string; }[]; taker_fees: { account: unknown; basis_points: string; }[]; side: OrderSide; order_type: OrderType; cancelled: boolean; finalized: boolean; marked_invalid: boolean; client_signature: string | null; remaining_quantity: number; }; export type QueryCursors = { next: string | null; previous: string | null; }; export type OrdersQueryResponse = QueryCursors & { orders: SerializedOrderV2[]; }; export type OrdersPostQueryResponse = { order: SerializedOrderV2; }; export {};