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.
- 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
npm install @zlattice/lattice-js
# or with pnpm
pnpm add @zlattice/lattice-js
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.
// 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.
- 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
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
Comprehensive documentation is being built with VitePress.
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the Apache-2.0 License - see the LICENSE file for details.