Skip to content

Library for interacting with the Cosmos Ledger Nano app 🔌

Notifications You must be signed in to change notification settings

nasa8x/cosmos-ledger

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cosmos Ledger App wrapper

This library helps interfacing with Cosmos Ledger App. It provides a developer friendly interface and user friendly error messages.

THANK YOU

This library is based on ledger-cosmos-js by Juan Leni who implemente the Cosmos Ledger App. Thank you Juan!

Install

yarn add @lunie/cosmos-ledger

Usage

Sign using the Ledger

import Ledger from "@lunie/cosmos-ledger"

const signMessage = ... message to sign, generate messages with "@lunie/cosmos-js"

const ledger = await Ledger().connect()

const signature = await ledger.sign(signMessage)

Using with cosmos-js

import Ledger from "@lunie/cosmos-ledger"
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 ledgerSigner = async (signMessage) => {
  const ledger = await Ledger().connect()
  const publicKey = await ledger.getPubKey()
  const signature = await ledger.sign(signMessage)

  return {
    signature,
    publicKey
  }
}

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

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

About

Library for interacting with the Cosmos Ledger Nano app 🔌

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 95.8%
  • JavaScript 4.2%