interface IPAssetContract {
asset_id: PublicKey;
creator: PublicKey;
asset_type: AssetType;
metadata_uri: string;
created_at: number;
current_owner: PublicKey;
transfer_history: TransferRecord[];
royalty_percentage: number;
royalty_recipient: PublicKey;
}
enum AssetType {
Design = "design",
Toy = "toy",
Pattern = "pattern",
Document = "document"
}
interface TransferRecord {
from: PublicKey;
to: PublicKey;
timestamp: number;
price?: number;
}
async function registerIPAsset(
creator: PublicKey,
asset_type: AssetType,
metadata_uri: string,
royalty_percentage: number
): Promise<PublicKey>;
async function transferOwnership(
asset_id: PublicKey,
from: PublicKey,
to: PublicKey,
price?: number
): Promise<void>;
async function getAssetInfo(asset_id: PublicKey): Promise<IPAssetContract>;