New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

cosmes

Package Overview
Dependencies
Maintainers
4
Versions
77
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

cosmes

<!-- omit in toc --> # CosmES

  • 0.0.26
  • npm
  • Socket score

Version published
Weekly downloads
30
decreased by-64.71%
Maintainers
4
Weekly downloads
 
Created
Source

CosmES

npm version

A tree-shakeable, framework agnostic, pure ESM alternative of CosmJS and Cosmos Kit.

Features

  • Fully tree-shakeable: import and bundle only the modules you need
  • Framework agnostic: integrate with any web framework (React, Vue, Svelte, etc.)
  • Lightweight and minimal: 143 KB gzipped to connect a React app to Keplr via browser extension or WalletConnect (see benchmarks)
  • Uses modern web APIs: no dependencies on Node.js and minimal dependencies on third-party libraries where possible
  • Supports modern bundlers: works with Vite, SWC, Rollup, etc.
  • Fully typed: written in TypeScript and ships with type definitions

Installing

npm install cosmes

pnpm i cosmes

yarn add cosmes

Using with TypeScript

This library only exports ES modules. To ensure imports from this library work correctly, the following configuration is required in tsconfig.json:

{
  "compilerOptions": {
    "moduleResolution": "bundler", // recommended if using modern bundlers
    // or "node16" 
    // or "nodenext"
    // but NOT "node"
  }
}

Using with Vite

If you are using Vite, the following configuration is required in vite.config.ts:

export default defineConfig({
  define: {
    global: "window",
  },
});

This can be removed once support for WalletConnect v1 is no longer required.

Using Station wallet

The Station wallet currently relies on WalletConnect v1. If you want to import and use StationController, a polyfill for Buffer is required:

// First, install the buffer package
npm install buffer

// Then, create a new file 'polyfill.ts'
import { Buffer } from "buffer";
(window as any).Buffer = Buffer;

// Finally, import the above file in your entry file
import "./polyfill";

See examples/solid-vite for a working example.

This can be removed once support for WalletConnect v1 is no longer required.

Examples

Docs do not exist yet - see the examples folder for various working examples.

Modules

This package is split into multiple subdirectories, with each subdirectory having their own set of functionalities. The root directory does not contain any exports, and all exports are exported from the subdirectories. Thus, imports must be done by referencing the subdirectories (ie. import { ... } from "cosmes/client").

cosmes/client

This directory contains models and helper functions to interact with Cosmos SDK via the CometBFT RPC.

cosmes/codec

This directory contains various encoding and decoding functions that relies solely on Web APIs and has no dependencies on Node.js. For modern browsers and Node v16+, this should work out of the box.

cosmes/protobufs

This directory contains the auto-generated code for various Cosmos SDK based protobufs. See scripts/gen-protobufs.mjs for the script that generates the code.

cosmes/wallet

This directory is a Cosmos Kit alternative to manage various wallets (Keplr, Station, Cosmostation, Leap, etc.) across various different Cosmos SDK based blockchains. See examples/solid-vite for a working example.

Features:

  • Supports Station, Keplr, Leap, and Cosmostation wallets
  • Supports both browser extension (desktop) and WalletConnect (mobile)
  • Unified interface for connecting, signing, and event handling
  • Signing of arbitrary messages (for wallets that support it)
  • Simultaneous connections to multiple WalletConnect wallets

Benchmarks

See the benchmarks folder, where the JS bundle size of CosmES is compared against Cosmos Kit. The following points are adhered to:

  • Apps should only contain the minimal functionality of connecting to Osmosis via Keplr using both the browser extension and WalletConnect wallets
  • Apps should be built using React (as Cosmos Kit has a hard dependency) and Vite
  • Use the bundle size as reported by Vite after running the vite build command (including the size of all other dependencies like React)

Results

PackageMinifiedGzipped
CosmES532 KB144 KB
Cosmos Kit5770 KB1356 KB

Contributing

See CONTRIBUTING.md.

FAQs

Package last updated on 13 Jul 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc