Skip to content

stdevAlDen/hardware-wallet-go

 
 

Repository files navigation

Go bindings and CLI tool for the Skycoin hardware wallet

Build Status

Table of contents

Installation

Install golang

https://github.com/golang/go/wiki/Ubuntu

Usage

Download source code

$ go get github.com/skycoin/hardware-wallet-go

Dependancies management

This project uses dep dependancy manager.

Don't modify anything under vendor/ directory without using dep commands.

Download dependencies using command:

$ make dep

Generate protobuf files

Init proto submboule

$ git submodule init 
$ git submodule update

Generate go files

$ make vendor_proto

Run

$ go run cmd/cli/cli.go

See also CLI README for information about the Command Line Interface.

Development guidelines

Code added in this repository should comply to development guidelines documented in Skycoin wiki.

The project has two branches: master and develop.

  • develop is the default branch and will always have the latest code.
  • master will always be equal to the current stable release on the website, and should correspond with the latest release tag.

Versioning policies

This go client library follows the versioning rules for SkyWallet client libraries .

Running tests

Library test suite can be run by running the following command

make test

If a physical SkyWallet device is connected then the test suite will exchange test messages with it. Likewise, the emulator will reply to test messages if executed in advance as follows.

git clone https://github.com/skycoin/hardware-wallet /some/path/to/hardware-wallet
make clean -C /some/path/to/hardware-wallet && make -C /some/path/to/hardware-wallet run-emulator

If neither the emulator nor a physical device are connected then tests will be skipped silently.

Releases

Update the version

  1. If the master branch has commits that are not in develop (e.g. due to a hotfix applied to master), merge master into develop (and fix any build or test failures)
  2. Switch to a new release branch named release-X.Y.Z for preparing the release.
  3. Run make build to make sure that the code base is up to date
  4. Update CHANGELOG.md: move the "unreleased" changes to the version and add the date.
  5. Follow the steps in pre-release testing
  6. Make a PR merging the release branch into master
  7. Review the PR and merge it
  8. Tag the master branch with the version number. Version tags start with v, e.g. v0.20.0. Sign the tag. If you have your GPG key in github, creating a release on the Github website will automatically tag the release. It can be tagged from the command line with git tag -as v0.20.0 $COMMIT_ID, but Github will not recognize it as a "release".
  9. Tag the changeset of the protob submodule checkout with the same version number as above.
  10. Release builds are created and uploaded by travis. To do it manually, checkout the master branch and follow the create release builds instructions.
  11. Checkout develop branch and bump tiny-firmware/VERSION and tiny-firmware/bootloader/VERSION to next dev version number.

Pre-release testing

Follow hardware wallet firmware pre-release instructions by using library commands.

Wiki

More information in the wiki

About

Go interface to the hardware wallet

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 82.9%
  • Go 13.7%
  • C++ 3.3%
  • Other 0.1%