/** * Versioning Inscription Handler * * Handles deployment and interaction with ordinal-based versioning inscriptions. * Uses inscription metadata for lightweight version tracking. */ import type { PrivateKey } from '@bsv/sdk'; import { Utxo } from 'js-1sat-ord'; export declare const VERSIONING_ENABLED = true; export interface VersioningInscriptionInfo { outpoint: string; originOutpoint: string; appName: string; metadata: Record; utxo?: Utxo | null; } /** * Structure of individual version entry (before stringification) */ export interface VersionEntry { outpoint: string; description: string; utcTimeStamp: number; } /** * Version metadata structure in inscription * Version keys must be prefixed with "version." and values are stringified VersionEntry objects * Use createVersionEntry() helper to ensure type safety when adding version entries */ export interface VersionMetadata { app: string; type: string; [key: string]: string; } /** * Helper to create a version entry (provides type safety) */ export declare function createVersionEntry(outpoint: string, description: string, utcTimeStamp?: number): string; /** * Helper to parse a version entry (provides type safety) */ export declare function parseVersionEntry(json: string): VersionEntry; /** * Deploy an empty versioning inscription (becomes the origin) * This is deployed BEFORE the HTML so the origin can be injected into the redirect script * Metadata is added later by spending this inscription with updateVersioningInscription * * @param paymentKey - Private key for paying transaction fees * @param appName - Name of the application * @param destinationAddress - Address to receive the inscription * @param satsPerKb - Fee rate in satoshis per KB * @returns Inscription outpoint (txid_vout) */ export declare function deployVersioningInscription(paymentKey: PrivateKey, appName: string, destinationAddress: string, satsPerKb?: number): Promise<{ outpoint: string; changeUtxo?: Utxo; }>; /** * Update an existing versioning inscription (subsequent deployments) * Spends the previous inscription and creates a new one with merged metadata * * @param versionInscriptionOrigin - The origin outpoint of the versioning inscription chain * @param paymentKey - Private key for paying transaction fees * @param ordPk - Private key that owns the ordinal (usually same as payment key) * @param version - Version string (e.g., "1.0.1") * @param versionOutpoint - The outpoint of the new app deployment * @param description - Changelog or version description * @param destinationAddress - Address to receive the inscription * @param satsPerKb - Fee rate in satoshis per KB * @returns New inscription outpoint */ export declare function updateVersioningInscription(versionInscriptionOrigin: string, paymentKey: PrivateKey, ordPk: PrivateKey, version: string, versionOutpoint: string, description: string, destinationAddress: string, satsPerKb?: number): Promise; /** * Check if a version already exists in the inscription metadata * Throws an error if the version exists to prevent wasted inscription costs * * @param versionInscriptionOrigin - The origin outpoint of the versioning inscription * @param version - Version string to check * @throws Error if version already exists */ export declare function checkVersionExists(versionInscriptionOrigin: string, version: string): Promise; /** * Get specific version details from inscription metadata * * @param versionInscriptionOrigin - The origin outpoint of the versioning inscription * @param version - Version string to query * @returns Version details including outpoint and description */ export declare function getVersionDetails(versionInscriptionOrigin: string, version: string): Promise<{ version: string; outpoint: string; description: string; } | null>; /** * Get inscription information * * @param versionInscriptionOrigin - The origin outpoint of the versioning inscription * @returns Inscription information including metadata */ export declare function getInscriptionInfo(versionInscriptionOrigin: string): Promise; /** * Get both inscription info and version history with a single metadata fetch * This is more efficient than calling getInscriptionInfo and getVersionHistory separately * * @param versionInscriptionOrigin - The origin outpoint of the versioning inscription * @returns Object containing both inscription info and version history */ export declare function getVersionInfoAndHistory(versionInscriptionOrigin: string): Promise<{ info: VersioningInscriptionInfo; history: Array<{ version: string; description: string; outpoint: string; }>; }>; //# sourceMappingURL=versioningInscriptionHandler.d.ts.map