/// import { IResponse, AuthorizedOptionalRequest } from '../interfaces/common'; import TPayload from '../types/TPayload'; import IPayOptions from '../interfaces/IPaymentOptions'; import TokenDataSummary from '../interfaces/TokenDataSummary'; export interface DeliveryService { payment(request: IPaymentRequest): Promise; checkRefStatus(request: CheckRefStatusRequest): Promise; verifyNFTOwnership(request: VerifyNFTOwnershipRequest): Promise; swapNFT(request: SwapNFTRequest): Promise; emptyWallet(request: EmptyWalletRequest): Promise; } /** ****************************************************************************** * Deliver Pay Transaction ******************************************************************************* */ export interface IPaymentParams { account: string; options: IPayOptions; } export declare type TPaymentPayload = TPayload; export interface IPaymentRequest extends AuthorizedOptionalRequest { params: IPaymentParams; } export interface IPaymentResponse extends IResponse { txBuffer?: Buffer; } /** ****************************************************************************** * Check Status by Ref ******************************************************************************* */ export interface CheckRefStatusParams { ref: string; } export declare type TCheckRefStatusPayload = TPayload; export interface CheckRefStatusRequest extends AuthorizedOptionalRequest { params: CheckRefStatusParams; } export interface CheckRefStatusResponse extends IResponse { signature?: string | null; } /** ****************************************************************************** * Verify Token Ownership ******************************************************************************* */ export interface VerifyNFTOwnershipParams { account: string; collection: string; traits?: Record; } export interface VerifyNFTOwnershipQueryStringParams extends VerifyNFTOwnershipParams { trait?: string | string[]; } export declare type TVerifyNFTOwnershipPayload = TPayload; export interface VerifyNFTOwnershipRequest extends AuthorizedOptionalRequest { params: VerifyNFTOwnershipParams; } export interface VerifyNFTOwnershipResponse extends IResponse { success?: boolean; tokens?: TokenDataSummary[]; } /** ****************************************************************************** * Swap NFT ******************************************************************************* */ export interface SwapNFTParams { account: string; } export declare type TSwapNFTPayload = TPayload; export interface SwapNFTRequest extends AuthorizedOptionalRequest { params: SwapNFTParams; } export interface SwapNFTResponse extends IResponse { txBuffer?: Buffer; } /** ****************************************************************************** * Empty Wallet ******************************************************************************* */ export interface EmptyWalletParams { account: string; } export declare type TEmptyWalletPayload = TPayload; export interface EmptyWalletRequest extends AuthorizedOptionalRequest { params: EmptyWalletParams; } export interface EmptyWalletResponse extends IResponse { txBuffer?: Buffer; }