HbarSuite Docs
  • Welcome to HbarSuite
  • HbarSuite Developer Documentation
    • HbarSuite Smart Engine Applications
      • @hsuite/cross-chain-exchange
      • @hsuite/dao
        • DAO Application Testing
      • @hsuite/exchange
      • @hsuite/launchpad
      • @hsuite/multisig
      • @hsuite/nft-exchange
      • HSuite Smart App - Enterprise Hedera Application Framework
    • HSuite Libraries
      • @hsuite/api-key - Enterprise API Key Authentication System
      • @hsuite/auth-types
      • @hsuite/auth - Authentication Module
      • @hsuite/client-types
      • @hsuite/client - Client Service Module
      • @hsuite/dkg-types - Distributed Key Generation Type Definitions
      • @hsuite/hashgraph-types - Hedera Hashgraph Type Definitions
      • @hsuite/health - Comprehensive System Health Monitoring
      • @hsuite/helpers - Utility Library
      • @hsuite/ipfs - InterPlanetary File System Integration
      • @hsuite/shared-types - Shared Type Definitions
      • @hsuite/smart-config - Configuration Management
      • @hsuite/smart-ledgers - Multi-Ledger Management
      • @hsuite/smart-network-types - Smart Network Type Definitions
      • @hsuite/smart-transaction-types - Smart Transaction Type Definitions
      • @hsuite/smartnode-sdk - SmartNode Software Development Kit
      • @hsuite/snapshots - Multi-Ledger Token Snapshot Management
      • @hsuite/subscriptions-types - Subscription Management Type Definitions
      • @hsuite/subscriptions - Enterprise Subscription Management System
      • @hsuite/throttler-types - Rate Limiting Type Definitions
      • @hsuite/throttler - Advanced Rate Limiting for NestJS
      • @hsuite/users-types - User Type Definitions
      • @hsuite/users - User Management Module
      • @hsuite/validators-types
  • General Documentation
    • Smart Apps and Interaction
      • Subscription-Based Model
      • Token-Gate Model
    • The Smart Node Network
      • security-layer
      • Type of Validators Explained
      • Understanding Validators in Our System
      • Automating Responses to Network Changes & Key Rotation
      • Ensuring Continuous Operation and Recovery
      • Generating and Sharing Keys Collaboratively
      • Handling Node Expulsion and Replacement
      • Managing Cluster Membership
      • Protecting Secrets with Shamir's Method
      • Security Layer Integration
      • Setting Up Secure Clusters
    • Tokenomics
      • Tokenomics v1
      • Tokenomics V2
    • What is a Smart Node?
  • Restful APIs Documentation
Powered by GitBook
On this page
  • Quick Start
  • Documentation
  • Complete Developer Guide
  • Quick Access Guides
  • API Reference
  • Key Features
  • Dual Namespace Architecture
  • Comprehensive Validation
  • Advanced Features
  • Developer Experience
  • Supported Operations
  • Installation & Setup
  • Prerequisites
  • Installation
  • NestJS Integration
  • Usage Examples
  • Account Creation with Token Gates
  • Token Creation with Custom Fees
  • Consensus Message Validation
  • Testing
  • Library Statistics
  • Related Libraries
  • Support & Contributing
  • License
  1. HbarSuite Developer Documentation
  2. HSuite Libraries

@hsuite/validators-types

A comprehensive TypeScript library providing type-safe validation for Hedera Hashgraph network operations, smart app interactions, and DAO governance.

Quick Start

npm install @hsuite/validators-types
import { IValidators, Validators } from '@hsuite/validators-types';

// Initialize helper
const helper = new Validators.Helper(
  smartConfigService,
  clientService,
  smartLedgersService,
  validatorOptions
);

// Create validators
const accountValidator = new Validators.Account.Create(helper, config);
const tokenValidator = new Validators.Token.Create(helper, config);

// Validate transactions
const result = await accountValidator.validate(transaction, { params });

Documentation

Complete Developer Guide

Comprehensive documentation covering all aspects of the library including:

  • Quick Start Guide - Get up and running in 5 minutes

  • Architecture Overview - Understand the dual-namespace design

  • Domain-Specific Guides - Deep dive into account, token, and consensus validation

  • API Reference - Complete interface and model documentation

  • Usage Examples - Real-world implementation examples

  • Configuration - Advanced setup and customization

  • Testing Patterns - Unit and integration testing approaches

  • Best Practices - Recommended patterns and practices

Quick Access Guides

Quick Start

5-minute setup guide with practical examples for each validation domain.

Architecture Overview

System design principles, dual-namespace architecture, and extension points.

Account Validation

Account operations, security features, token gates, and multi-signature support.

Token Validation (HTS)

Token lifecycle, custom fees, compliance controls, and economic features.

Consensus Validation (HCS)

Topic management, message validation, access control, and security enforcement.

API Reference

  • Interfaces - TypeScript interface definitions and contracts

  • Models - Implementation models and concrete validators

  • Enums - Transaction types and enumeration definitions

Key Features

Dual Namespace Architecture

  • Interfaces (IValidators) - Type contracts and definitions

  • Models (Validators) - Concrete implementations and runtime logic

  • Clean separation of concerns with full TypeScript support

Comprehensive Validation

  • Account Operations - Creation, updates, transfers, allowances

  • Token Operations - HTS lifecycle, supply, compliance, fees

  • Consensus Operations - HCS topics, messages, access control

  • Security Enforcement - Multi-level security controls

Advanced Features

  • Token Gates - Access control based on token ownership

  • Custom Fees - Fixed, fractional, and royalty fee structures

  • Smart Node Security - Multi-level security enforcement

  • Network Integration - Real-time network queries and validation

Developer Experience

  • Type Safety - Full TypeScript support with strict typing

  • Extensible - Plugin architecture for custom validators

  • Testable - Comprehensive testing patterns and utilities

  • NestJS Integration - First-class framework support

Supported Operations

Domain
Operations
Features

Account

Create, Update, Delete, Transfer, Allowances

Token gates, Multi-sig, Security levels

Token (HTS)

Create, Mint, Burn, Transfer, Freeze, KYC

Custom fees, Compliance, Supply management

Consensus (HCS)

Topic CRUD, Message submit

Access control, Size validation, Security

Installation & Setup

Prerequisites

  • Node.js 18+

  • TypeScript 5.3+

  • Hedera SDK (compatible version)

Installation

# npm
npm install @hsuite/validators-types

# yarn  
yarn add @hsuite/validators-types

# pnpm
pnpm add @hsuite/validators-types

NestJS Integration

@Module({
  imports: [
    ValidatorsTypesModule.forRootAsync({
      imports: [ConfigModule],
      useFactory: (configService: ConfigService) => ({
        network: configService.get('HEDERA_NETWORK'),
      }),
      inject: [ConfigService]
    })
  ]
})
export class AppModule {}

Usage Examples

Account Creation with Token Gates

const validator = new Validators.Account.Create(helper, config);

const params: IValidators.IAccount.IValidationParams = {
  smartNodeSecurity: 'full',
  tokenGates: {
    fungibles: { tokens: ['0.0.123456'] },
    nonFungibles: { tokens: ['0.0.789012'] },
    timeRange: {
      start: Date.now() / 1000,
      end: (Date.now() / 1000) + 86400
    }
  }
};

const result = await validator.validate(transaction, { params });

Token Creation with Custom Fees

const validator = new Validators.Token.Create(helper, config);

const feeSchedule: IValidators.IToken.IFeeSchedule = {
  customFees: [
    {
      feeCollectorAccountId: '0.0.98765',
      fractionalFee: {
        numerator: 1,
        denominator: 100, // 1%
        minimumAmount: '10000000',
        maximumAmount: '1000000000'
      }
    }
  ]
};

const result = await validator.validate(transaction, { 
  params: { conditions: { feeSchedule } } 
});

Consensus Message Validation

const validator = new Validators.Consensus.Submit(helper, config);

const params: IValidators.IConsensus.ISubmissionParams = {
  messageValidation: {
    maxMessageSize: 1024,
    allowEmptyMessages: false,
    validateEncoding: true
  },
  accessControl: {
    requireSubmitKey: true,
    validateKeySignature: true
  }
};

const result = await validator.validate(transaction, { params });

Testing

describe('Token Validator', () => {
  let validator: Validators.Token.Create;
  let mockHelper: jest.Mocked<Validators.Helper>;

  beforeEach(() => {
    mockHelper = {
      getTokenInfo: jest.fn(),
      validateTransactionStructure: jest.fn().mockReturnValue(true)
    } as any;

    validator = new Validators.Token.Create(mockHelper, mockConfig);
  });

  it('should validate token creation', async () => {
    const result = await validator.validate(transaction, { params });
    expect(result.isValid).toBe(true);
  });
});

Library Statistics

  • Interfaces: 50+ TypeScript interface definitions

  • Models: 30+ concrete validator implementations

  • Enums: 15+ transaction type enumerations

  • Test Coverage: 95%+ code coverage

  • Documentation: Comprehensive guides and examples

Related Libraries

Support & Contributing

  • Documentation: Complete implementation and API documentation

License


Version: 2.0.2 Compatibility: Node.js 18+, TypeScript 5.3+ Framework Support: NestJS 10.4+


Built with ❤️ by the HbarSuite Team Copyright © 2024 HbarSuite. All rights reserved.

Previous@hsuite/users - User Management ModuleNextGeneral Documentation

Last updated 2 days ago

- Core validation implementation

- Configuration management

- Hedera client wrapper

Issues:

Discussions:

API Docs:

MIT License - see file for details.

@hsuite/validators
@hsuite/smart-config
@hsuite/client
GitHub Issues
GitHub Discussions
Generated Documentation
LICENSE