UNPKG

@gotake/gotake-sdk

Version:

SDK for interacting with GoTake blockchain contracts

199 lines 5.1 kB
/** * Core type definitions for GoodTake SDK */ import { BigNumber } from 'ethers'; export interface GasConfig { gasLimit?: number | string | BigNumber; maxFeePerGas?: number | string | BigNumber; maxPriorityFeePerGas?: number | string | BigNumber; gasPriceMultiplier?: number; priorityFeeMultiplier?: number; } export interface TransactionOptions { gasConfig?: GasConfig; } export interface BaseTransactionParams { gasConfig?: GasConfig; } export declare enum VideoStatus { UPLOADING = "uploading",// Video is being uploaded to API server PROCESSING = "processing",// Video is being processed by Livepeer READY = "ready",// Video is processed and ready for viewing MINT_READY = "mint_ready",// Video is ready to mint NFT MINTING = "minting",// NFT is being minted COMPLETED = "completed",// Process completed successfully ERROR = "error" } export interface VideoMetadata { title?: string; description?: string; tags?: string[] | string; } export interface MediaInfo { seriesTitle: string; description: string; totalSeasons: BigNumber; totalEpisodes: BigNumber; genres: string[]; creators: string[]; createdAt: BigNumber; posterUri: string; } export interface MediaMetadata { title: string; description?: string; totalSeasons?: number; totalEpisodes?: number; genres?: string[]; creators?: string[]; posterUri?: string; thumbnailUrl?: string; creator?: string; } export interface IPInfo { title: string; description: string; ipType: number; createdAt: BigNumber; } export interface VideoStatusInfo { id: string; status: VideoStatus; progress?: number; message?: string; error?: { code: string; message: string; }; assetInfo?: { assetId: string; playbackUrl?: string; thumbnailUrl?: string; }; mintInfo?: { tokenId?: string; transactionHash?: string; }; updated_at: string; } export type StatusCallback = (status: VideoStatusInfo) => void; export interface Subscription { unsubscribe: () => void; } export interface MintOptions { royaltyPercentage?: number; extraMetadata?: Record<string, any>; } export interface MintResult { tokenId: string; transactionHash: string; owner: string; metadata: MediaInfo; } export interface PollController { stop: () => void; } export declare enum PaymentMethod { ETH = "ETH", ERC20 = "ERC20" } export interface ContentConfig { contentId: number; nativePrice: BigNumber; defaultViewCount: number; viewDuration: number; isActive: boolean; } export interface ViewPermission { purchaseTime: BigNumber; remainingViews: BigNumber; isValid: boolean; } export interface PurchaseParams { contentId: number; paymentMethod: PaymentMethod; tokenAddress?: string; amount?: string | number | BigNumber; } export interface PurchaseResult { transactionHash: string; contentId: number; purchaseTime: BigNumber; viewCount: BigNumber; validUntil: BigNumber; gasUsed?: BigNumber; error?: string; } export interface AdminContentParams { contentId: number; nativePrice: string | number | BigNumber; defaultViewCount: number; viewDuration: number; isActive: boolean; } export interface BatchContentParams { contentIds: number[]; nativePrices: (string | number | BigNumber)[]; defaultViewCounts: number[]; viewDurations: number[]; isActiveArray: boolean[]; } export interface TokenPriceParams { contentId: number; tokenAddress: string; price: string | number | BigNumber; } export interface ContentInfo { contentId: number; nativePrice: BigNumber; defaultViewCount: number; viewDuration: number; isActive: boolean; tokenPrices: Record<string, BigNumber>; } export interface UserPermissionSummary { contentId: number; permission: ViewPermission; contentInfo: ContentInfo; } export interface BatchPurchaseParams { contentIds: number[]; paymentMethod: PaymentMethod; tokenAddress?: string; } export interface BatchPermissionResult { contentId: number; hasPermission: boolean; permission?: ViewPermission; error?: string; } export interface AdminRoleInfo { isOwner: boolean; isAdmin: boolean; canManageContent: boolean; canManageTokens: boolean; canManageAdmins: boolean; } export interface ContentPurchasedEvent { user: string; contentId: number; paymentMethod: PaymentMethod; amount: BigNumber; timestamp: BigNumber; } export interface ViewConsumedEvent { user: string; contentId: number; remainingViews: number; timestamp: BigNumber; } export interface ContentConfigUpdatedEvent { contentId: number; nativePrice: BigNumber; defaultViewCount: number; viewDuration: number; isActive: boolean; timestamp: BigNumber; } export { VideoMetadata as OriginalVideoMetadata } from './utils/types'; //# sourceMappingURL=types.d.ts.map