@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
TypeScript
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