Skip to content

Library for creating keys and signing messages on Cosmos 🔑

Notifications You must be signed in to change notification settings

jnaviask/cosmos-keys

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

65 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cosmos Keys

Cosmos Keys is a library for creating keys and signing messages on Cosmos. You can use it to generate keypairs and addresses and to sign messages for the Cosmos Network.

This library deals with tasks that are considered security-critical and should be used very carefully.

Install

yarn add @lunie/cosmos-keys

Usage

Create a wallet

import { getWallet } from "@lunie/comos-keys"

const { cosmosAddress, privateKey, publicKey } = getWallet()
// Attention: protect the `privateKey` at all cost and never display it anywhere!!

Import a seed

import { generateWalletFromSeed } from "@lunie/comos-keys"

const seed = ...24 seed words here

const { cosmosAddress, privateKey, publicKey } = generateWalletFromSeed(seed)
// Attention: protect the `privateKey` at all cost and never display it anywhere!!

Sign a message

import { signWithPrivateKey } from "@lunie/comos-keys"

const privateKey = Buffer.from(...)
const signMessage = ... message to sign, generate messages with "@lunie/cosmos-js"
const signature = signWithPrivateKey(signMessage, privateKey)

Using with cosmos-js

import { signWithPrivateKey } from "@lunie/comos-keys"
import Cosmos from "@lunie/cosmos-js"

const privateKey = Buffer.from(...)
const publicKey = Buffer.from(...)

// init cosmos sender
const cosmos = Cosmos(STARGATE_URL, ADDRESS)

// create message
const msg = cosmos
  .MsgSend({toAddress: 'cosmos1abcd09876', amounts: [{ denom: 'stake', amount: 10 }})

// create a signer from this local js signer library
const localSigner = (signMessage) => {
  const signature = signWithPrivateKey(signMessage, privateKey)

  return {
    signature,
    publicKey
  }
}

// send the transaction
const { included }= await msg.send({ gas: 200000 }, localSigner)

// await tx to be included in a block
await included()

About

Library for creating keys and signing messages on Cosmos 🔑

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 96.3%
  • JavaScript 3.7%