Technology Stack
This document provides a reference for the technology stack used by Telescope and Telescope-generated code.
Core Technologies
TypeScript
Telescope is built with TypeScript and generates TypeScript code. TypeScript provides static typing that helps catch errors early in the development process and improves developer productivity through better tooling.
Version: 4.7+
Resources:
Protocol Buffers
Telescope uses Protocol Buffers (Protobuf), a language-neutral, platform-neutral, extensible mechanism for serializing structured data. Cosmos SDK chains use Protobuf for defining messages, services, and types.
Version: proto3
Resources:
CosmJS
Telescope-generated code relies on CosmJS, a library for building JavaScript applications that interact with Cosmos SDK blockchains.
Version: 0.29+ (recommended 0.31+)
Key Packages:
@cosmjs/stargate
- High-level client for Cosmos SDK chains@cosmjs/proto-signing
- Protobuf-based transaction signing@cosmjs/tendermint-rpc
- Interface to Tendermint RPC@cosmjs/amino
- Legacy Amino encoding support
Resources:
Build System
Node.js
Telescope runs on Node.js, a JavaScript runtime built on Chrome's V8 JavaScript engine.
Version: 14+ (recommended 16+)
Resources:
Yarn
Telescope uses Yarn for package management.
Version: 1.x
Resources:
Lerna
Telescope is organized as a monorepo using Lerna for managing multiple packages.
Version: 4.x
Resources:
Code Generation
AST Manipulation
Telescope uses Abstract Syntax Tree (AST) manipulation to generate TypeScript code from Protobuf definitions.
Key Technologies:
- TypeScript Compiler API
- Custom AST processing
Templates
Telescope uses code templates for generating consistent patterns across different services and message types.
Optional Integrations
React Query
Telescope can generate React Query hooks for interacting with Cosmos SDK chains.
Version: 4.x
Resources:
Vue Query
Telescope can generate Vue Query composables for Vue.js applications.
Version: 4.x
Resources:
Recoil
Telescope supports integration with Recoil for React state management.
Version: 0.7+
Resources:
CosmWasm
Telescope integrates with CosmWasm for generating TypeScript clients for CosmWasm smart contracts.
Technology:
Resources:
Development Tools
Jest
Telescope uses Jest for testing.
Version: 27+
Resources:
ESLint
Telescope uses ESLint for code linting.
Version: 8+
Resources:
Prettier
Telescope uses Prettier for code formatting.
Version: 2+
Resources:
Runtime Dependencies for Generated Code
Long.js
Used for handling 64-bit integers in JavaScript.
Resources:
buffer
Provides Buffer implementation for browser environments.
Resources:
Browser Compatibility
Telescope-generated code is compatible with modern browsers. For older browsers, polyfills may be required:
Required Polyfills:
Promise
fetch
TextEncoder
/TextDecoder
Buffer
Recommended Polyfill Solution:
core-js
for standard JavaScript features- Custom polyfills for Node.js built-ins in browser environments
Recommended Development Environment
- IDE: Visual Studio Code with TypeScript support
- Node Version Manager: nvm or volta
- Package Manager: Yarn 1.x
- Git Hooks: husky with lint-staged
Version Compatibility Matrix
Telescope Version | TypeScript | Node.js | CosmJS | Protobuf |
---|---|---|---|---|
1.0.x | 4.7+ | 14+ | 0.29+ | proto3 |
0.12.x | 4.5+ | 14+ | 0.28+ | proto3 |
0.11.x | 4.4+ | 12+ | 0.27+ | proto3 |
Deployment Environments
Telescope-generated code can be deployed in various environments:
Browser
- Webpack, Rollup, or Vite for bundling
- Polyfills for Node.js built-ins
- CORS considerations for RPC endpoints
Node.js
- Direct usage without special configuration
- Better performance for cryptographic operations
React Native
- Requires appropriate polyfills
- May need native modules for cryptography
Resource Requirements
Typical resource requirements for running Telescope:
Resource | Minimum | Recommended |
---|---|---|
CPU | 2 cores | 4+ cores |
Memory | 2 GB | 4+ GB |
Disk Space | 1 GB | 5+ GB |
Node.js Version | 14.x | 16.x+ |