UNPKG

@hashgraphonline/standards-sdk

Version:

The Hashgraph Online Standards SDK provides a complete implementation of the Hashgraph Consensus Standards (HCS), giving developers all the tools needed to build applications on Hedera.

369 lines • 8.58 kB
import { LogLevel } from '../utils/logger'; import { NetworkType } from '../utils/types'; import { TransactionReceipt, PrivateKey } from '@hashgraph/sdk'; import { z } from 'zod'; /** * HCS-2 operation types * - register: Add a new entry/version * - update: Modify a previous entry (indexed topics only) * - delete: Remove an entry by uid (indexed topics only) * - migrate: Move a topic to a new one */ export declare enum HCS2Operation { REGISTER = "register", UPDATE = "update", DELETE = "delete", MIGRATE = "migrate" } /** * HCS-2 registry type * - 0: Indexed registry - All records are considered for processing * - 1: Non-indexed registry - Only the latest message is considered */ export declare enum HCS2RegistryType { INDEXED = 0, NON_INDEXED = 1 } /** * Base HCS-2 message format */ export interface HCS2Message { p: string; op: HCS2Operation; t_id?: string; uid?: string; metadata?: string; m?: string; ttl?: number; } /** * Register operation message */ export interface HCS2RegisterMessage extends HCS2Message { op: HCS2Operation.REGISTER; t_id: string; } /** * Update operation message */ export interface HCS2UpdateMessage extends HCS2Message { op: HCS2Operation.UPDATE; uid: string; t_id: string; } /** * Delete operation message */ export interface HCS2DeleteMessage extends HCS2Message { op: HCS2Operation.DELETE; uid: string; } /** * Migrate operation message */ export interface HCS2MigrateMessage extends HCS2Message { op: HCS2Operation.MIGRATE; t_id: string; } /** * Configuration for HCS-2 client */ export interface HCS2ClientConfig { network: NetworkType; logLevel?: LogLevel; silent?: boolean; mirrorNodeUrl?: string; } /** * Response from topic registration */ export interface TopicRegistrationResponse { success: boolean; topicId?: string; transactionId?: string; error?: string; } /** * Response from a registry operation */ export interface RegistryOperationResponse { success: boolean; transactionId?: string; receipt?: TransactionReceipt; error?: string; sequenceNumber?: number; } /** * Registry entry information */ export interface RegistryEntry { topicId: string; sequence: number; timestamp: string; payer: string; message: HCS2Message; consensus_timestamp: string; registry_type: HCS2RegistryType; } /** * Topic registry information */ export interface TopicRegistry { topicId: string; registryType: HCS2RegistryType; ttl: number; entries: RegistryEntry[]; latestEntry?: RegistryEntry; } /** * Options for creating a new registry */ export interface CreateRegistryOptions { memo?: string; ttl?: number; adminKey?: boolean | string | PrivateKey; submitKey?: boolean | string | PrivateKey; registryType?: HCS2RegistryType; } /** * Options for registering a topic entry */ export interface RegisterEntryOptions { targetTopicId: string; metadata?: string; memo?: string; } /** * Options for updating a topic entry */ export interface UpdateEntryOptions { targetTopicId: string; uid: string; metadata?: string; memo?: string; } /** * Options for deleting a topic entry */ export interface DeleteEntryOptions { uid: string; memo?: string; } /** * Options for migrating a topic */ export interface MigrateTopicOptions { targetTopicId: string; metadata?: string; memo?: string; } /** * Options for querying registry entries */ export interface QueryRegistryOptions { limit?: number; order?: 'asc' | 'desc'; skip?: number; } /** * Zod schemas for HCS-2 message validation */ export declare const topicIdSchema: z.ZodString; export declare const baseMessageSchema: z.ZodObject<{ p: z.ZodLiteral<"hcs-2">; op: z.ZodEnum<[HCS2Operation.REGISTER, HCS2Operation.UPDATE, HCS2Operation.DELETE, HCS2Operation.MIGRATE]>; m: z.ZodOptional<z.ZodString>; ttl: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { p?: "hcs-2"; op?: HCS2Operation; ttl?: number; m?: string; }, { p?: "hcs-2"; op?: HCS2Operation; ttl?: number; m?: string; }>; export declare const registerMessageSchema: z.ZodObject<{ p: z.ZodLiteral<"hcs-2">; m: z.ZodOptional<z.ZodString>; ttl: z.ZodOptional<z.ZodNumber>; } & { op: z.ZodLiteral<HCS2Operation.REGISTER>; t_id: z.ZodString; metadata: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { p?: "hcs-2"; metadata?: string; op?: HCS2Operation.REGISTER; ttl?: number; m?: string; t_id?: string; }, { p?: "hcs-2"; metadata?: string; op?: HCS2Operation.REGISTER; ttl?: number; m?: string; t_id?: string; }>; export declare const updateMessageSchema: z.ZodObject<{ p: z.ZodLiteral<"hcs-2">; m: z.ZodOptional<z.ZodString>; ttl: z.ZodOptional<z.ZodNumber>; } & { op: z.ZodLiteral<HCS2Operation.UPDATE>; uid: z.ZodString; t_id: z.ZodString; metadata: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { p?: "hcs-2"; metadata?: string; op?: HCS2Operation.UPDATE; ttl?: number; m?: string; t_id?: string; uid?: string; }, { p?: "hcs-2"; metadata?: string; op?: HCS2Operation.UPDATE; ttl?: number; m?: string; t_id?: string; uid?: string; }>; export declare const deleteMessageSchema: z.ZodObject<{ p: z.ZodLiteral<"hcs-2">; m: z.ZodOptional<z.ZodString>; ttl: z.ZodOptional<z.ZodNumber>; } & { op: z.ZodLiteral<HCS2Operation.DELETE>; uid: z.ZodString; }, "strip", z.ZodTypeAny, { p?: "hcs-2"; op?: HCS2Operation.DELETE; ttl?: number; m?: string; uid?: string; }, { p?: "hcs-2"; op?: HCS2Operation.DELETE; ttl?: number; m?: string; uid?: string; }>; export declare const migrateMessageSchema: z.ZodObject<{ p: z.ZodLiteral<"hcs-2">; m: z.ZodOptional<z.ZodString>; ttl: z.ZodOptional<z.ZodNumber>; } & { op: z.ZodLiteral<HCS2Operation.MIGRATE>; t_id: z.ZodString; metadata: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { p?: "hcs-2"; metadata?: string; op?: HCS2Operation.MIGRATE; ttl?: number; m?: string; t_id?: string; }, { p?: "hcs-2"; metadata?: string; op?: HCS2Operation.MIGRATE; ttl?: number; m?: string; t_id?: string; }>; export declare const hcs2MessageSchema: z.ZodDiscriminatedUnion<"op", [z.ZodObject<{ p: z.ZodLiteral<"hcs-2">; m: z.ZodOptional<z.ZodString>; ttl: z.ZodOptional<z.ZodNumber>; } & { op: z.ZodLiteral<HCS2Operation.REGISTER>; t_id: z.ZodString; metadata: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { p?: "hcs-2"; metadata?: string; op?: HCS2Operation.REGISTER; ttl?: number; m?: string; t_id?: string; }, { p?: "hcs-2"; metadata?: string; op?: HCS2Operation.REGISTER; ttl?: number; m?: string; t_id?: string; }>, z.ZodObject<{ p: z.ZodLiteral<"hcs-2">; m: z.ZodOptional<z.ZodString>; ttl: z.ZodOptional<z.ZodNumber>; } & { op: z.ZodLiteral<HCS2Operation.UPDATE>; uid: z.ZodString; t_id: z.ZodString; metadata: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { p?: "hcs-2"; metadata?: string; op?: HCS2Operation.UPDATE; ttl?: number; m?: string; t_id?: string; uid?: string; }, { p?: "hcs-2"; metadata?: string; op?: HCS2Operation.UPDATE; ttl?: number; m?: string; t_id?: string; uid?: string; }>, z.ZodObject<{ p: z.ZodLiteral<"hcs-2">; m: z.ZodOptional<z.ZodString>; ttl: z.ZodOptional<z.ZodNumber>; } & { op: z.ZodLiteral<HCS2Operation.DELETE>; uid: z.ZodString; }, "strip", z.ZodTypeAny, { p?: "hcs-2"; op?: HCS2Operation.DELETE; ttl?: number; m?: string; uid?: string; }, { p?: "hcs-2"; op?: HCS2Operation.DELETE; ttl?: number; m?: string; uid?: string; }>, z.ZodObject<{ p: z.ZodLiteral<"hcs-2">; m: z.ZodOptional<z.ZodString>; ttl: z.ZodOptional<z.ZodNumber>; } & { op: z.ZodLiteral<HCS2Operation.MIGRATE>; t_id: z.ZodString; metadata: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { p?: "hcs-2"; metadata?: string; op?: HCS2Operation.MIGRATE; ttl?: number; m?: string; t_id?: string; }, { p?: "hcs-2"; metadata?: string; op?: HCS2Operation.MIGRATE; ttl?: number; m?: string; t_id?: string; }>]>; //# sourceMappingURL=types.d.ts.map