Skip to content
Library for interacting with the Cosmos Ledger Nano app πŸ”Œ
TypeScript JavaScript
Branch: develop
Clone or download
Latest commit 9e9c324 Jun 18, 2019

README.md

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()
You can’t perform that action at this time.