@gotake/gotake-sdk
Version:
SDK for interacting with GoTake blockchain contracts
74 lines • 2.4 kB
TypeScript
import { ethers } from 'ethers';
import { Provider } from '@ethersproject/providers';
import { BaseApi } from './base-api';
import { VideoMetadata } from '../utils';
import { TransactionOptions } from '../types';
/**
* IPNFT API module, providing functionality related to IP NFT minting
*/
export declare class IPNFTApi extends BaseApi {
private _ipnftWrapper;
/**
* Create IPNFT API instance
* @param provider Provider instance
* @param signer Signer instance
*/
constructor(provider: Provider, signer: ethers.Signer);
/**
* Mint IP NFT
* @param to Recipient address
* @param metadata Content metadata
* @param options Transaction options
* @returns Transaction object and token ID
*/
mint(to: string, metadata: VideoMetadata, options?: TransactionOptions): Promise<{
tx: ethers.ContractTransaction;
tokenId: ethers.BigNumber;
}>;
/**
* Get NFT details
* @param tokenId Token ID
* @returns NFT metadata
*/
getNFTDetails(tokenId: ethers.BigNumber | number | string): Promise<{
tokenId: ethers.BigNumber;
uri: string;
owner: string;
seriesTitle: string;
description: string;
totalSeasons: ethers.BigNumber;
totalEpisodes: ethers.BigNumber;
genres: string[];
creators: string[];
createdAt: ethers.BigNumber;
posterUri: string;
}>;
/**
* Set media details for an NFT
* @param tokenId Token ID
* @param mediaData Media information
* @param options Transaction options
* @returns Transaction object
*/
setMediaDetails(tokenId: ethers.BigNumber | number | string, mediaData: {
seriesTitle: string;
description: string;
totalSeasons: number;
totalEpisodes: number;
genres: string[];
creators: string[];
posterUri: string;
}, options?: TransactionOptions): Promise<ethers.ContractTransaction>;
/**
* Check if a user is the owner of an NFT
* @param tokenId Token ID
* @param address User address
* @returns Whether the user is the owner
*/
isOwner(tokenId: ethers.BigNumber | number | string, address: string): Promise<boolean>;
/**
* Process connection update
*/
protected onConnectionUpdated(): Promise<void>;
}
//# sourceMappingURL=ipnft-api.d.ts.map