Skip to content

wylu1037/lattice-js

Repository files navigation

LatticeJS

TypeScript npm Node.js Coverage

Overview

LatticeJS is a comprehensive SDK implemented in TypeScript for blockchain interactions with the Lattice network. This library provides a set of tools for cryptographic operations, wallet management, and blockchain communication.

Features

  • Dual Module Support: Full support for both CommonJS and ES Modules (CJS + ESM)
  • Cryptographic Suite: Full implementation of SM2, SM3, and SM4 cryptographic algorithms
  • Ethereum Compatibility: Built with ethers.js components for seamless Ethereum integration
  • Wallet Management: Secure key generation and management
  • Provider System: Flexible connection to various blockchain nodes
  • Robust Logging: Built-in logging system with rotation capabilities
  • TypeScript First: Complete type definitions for enhanced development experience

Installation

npm install @zlattice/lattice-js

# or with pnpm
pnpm add @zlattice/lattice-js

Module Support

This library supports both module systems:

  • ES Modules (ESM): Modern import syntax with tree-shaking support
  • CommonJS (CJS): Traditional require() syntax for Node.js compatibility

Node.js will automatically choose the appropriate format based on your project configuration.

Quick Start

// ESM
import { LatticeClient, Address, Curves } from '@zlattice/lattice-js';

// CJS
const { LatticeClient, Address, Curves } = require('@zlattice/lattice-js');

const client = new LatticeClient({ rpcUrl: 'http://localhost:8000' });
const address = new Address('zltc_QLbz7JHiBTspS962RLKV8GndWFwjA5K66');

For detailed usage examples, see examples/README.md.

Core Dependencies

  • Ethers Components - Ethereum utilities and cryptography
  • Noble Curves - High-security, easily auditable elliptic curve cryptography
  • Noble Hashes - Secure, auditable hashing implementations
  • Axios - Promise-based HTTP client for browser and Node.js
  • Pino - Super fast, all-natural JSON logger
  • Zod - TypeScript-first schema validation

Testing

This project uses Vitest for testing with coverage reporting:

# Run tests
npm test

# Run tests with coverage
npm run coverage

# Watch mode for development
npm run test:watch

If you encounter module-related issues, try cleaning your dependencies:

rm -rf node_modules
npm cache clean --force
npm install

Documentation

Comprehensive documentation is being built with VitePress.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the Apache-2.0 License - see the LICENSE file for details.

About

Blockchain sdk implemented in typescript language.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •