Telescope
usage
Stack

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 VersionTypeScriptNode.jsCosmJSProtobuf
1.0.x4.7+14+0.29+proto3
0.12.x4.5+14+0.28+proto3
0.11.x4.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:

ResourceMinimumRecommended
CPU2 cores4+ cores
Memory2 GB4+ GB
Disk Space1 GB5+ GB
Node.js Version14.x16.x+