{"id":21528512,"url":"https://github.com/fibercrypto/skywallet-protob","last_synced_at":"2026-03-19T20:45:04.080Z","repository":{"id":35657128,"uuid":"218785862","full_name":"fibercrypto/skywallet-protob","owner":"fibercrypto","description":"Protocol Buffer schemas for Skycoin hardware wallet communication","archived":false,"fork":false,"pushed_at":"2022-12-04T18:24:38.000Z","size":5961,"stargazers_count":0,"open_issues_count":18,"forks_count":3,"subscribers_count":4,"default_branch":"develop","last_synced_at":"2025-01-24T06:11:18.405Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Makefile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fibercrypto.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-10-31T14:31:37.000Z","updated_at":"2019-12-10T20:49:00.000Z","dependencies_parsed_at":"2023-01-16T02:31:04.738Z","dependency_job_id":null,"html_url":"https://github.com/fibercrypto/skywallet-protob","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fibercrypto%2Fskywallet-protob","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fibercrypto%2Fskywallet-protob/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fibercrypto%2Fskywallet-protob/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fibercrypto%2Fskywallet-protob/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fibercrypto","download_url":"https://codeload.github.com/fibercrypto/skywallet-protob/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244092027,"owners_count":20396724,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-24T01:53:31.127Z","updated_at":"2026-01-04T01:31:36.758Z","avatar_url":"https://github.com/fibercrypto.png","language":"Makefile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Hardware wallet protobuffer\n\n[![Build Status](https://travis-ci.com/fibercrypto/skywallet-protob.svg?branch=master)](https://travis-ci.com/fibercrypto/skywallet-protob)\n\n[Protocol Buffer](https://developers.google.com/protocol-buffers/) schemas for Skycoin hardware wallet communication and scripts for supporting multiple programming languages.\n\n## Table of Contents\n\n\u003c!-- MarkdownTOC levels=\"1,2,3,4,5\" autolink=\"true\" bracket=\"round\" --\u003e\n- [Installation](#installation)\n- [Using the scripts](#using-the-scripts)\n  - [Make rules](#make-rules)\n  - [Environment variables](#environment-variables)\n- [Development setup](#development-setup)\n  - [Running tests](#running-tests)\n  - [Merging Pull Reqeusts](#merging-pull-requests)\n  - [Releases](#releases)\n    - [Update the version](#update-the-version)\n    - [Pre-release testing](#pre-release-testing)\n    - [Creating release builds](#creating-release-builds)\n\u003c!-- /MarkdownTOC --\u003e\n\n## Installation\n\nAll tools needed , including `protoc`, language-specific generators and dependencies, will be installed after executing the following commands.\n\n```sh\ngit clone https://github.com/fibercrypto/skywallet-protob\ncd skywallet-protob\nmake install\n```\n\n## Using the scripts\n\nIt is highly recommended to invoke code generation scripts by executing the suitable make targets. This repository is meant to be included as a submodule in (at least) the following projects:\n\n- [Skycoin hardware wallet](https://github.com/fibercrypto/skywallet-mcu) : Implements bootloader and firmware for the hardware wallet\n- [Skycoin hardware wallet library for go language](https://github.com/fibercrypto/skywallet-go) :\n- [Skycoin hardware wallet library for Javascript](https://github.com/skycoin/hardware-wallet-js) :\n\nThe following projects also use it either directly or indirectly:\n\n- [Skycoin desktop wallet ](https://github.com/skycoin/skycoin/tree/master/src/electron) :\n\n### Make rules\n\nThe following make targets are defined\n\n```sh\n$ make help\nall                            Generate protobuf classes for all languages\ninstall                        Install protocol buffer tools\nclean                          Delete temporary and output files\ninstall-deps-go                Install tools to generate protobuf classes for go lang\nbuild-go                       Generate protobuf classes for go lang\ninstall-deps-js                Install tools to generate protobuf classes for javascript\nbuild-js                       Generate protobuf classes for javascript\ninstall-deps-nanopb            Install tools to generate protobuf classes for C and Python with nanopb\nbuild-c                        Generate protobuf classes for C with nanopb\nbuild-py                       Generate protobuf classes for Python with nanopb\n```\n\n### Environment variables\n\nCode generation commands (i.e. `build-*` targets) can generate source code at any location should the following variables be properly set:\n\n- `OUT_C` env var allows to output protobuf C code onto a custom directory\n- `OUT_GO` env var allows to output protobuf go code onto a custom directory\n- `OUT_JS` env var allows to output protobuf js code onto a custom directory\n- `OUT_PY` env var allows to output protobuf Python code onto a custom directory\n\n- When using this projets as submodule of a go project foo.bar/my/project consider using the env var `GO_PREFIX_IMPORT_PATH` to `foo.bar/my/project/path/where/this/project/live/as/submodule`.\n\n## Development setup\n\nTo start using these scripts see [installation instructions](#installation). In order to import these specifications and scripts as part of another project follow the following steps:\n\n- Include this repository as submodule e.g. `git submodule add https://github.com/fibercrypto/skywallet-protob protob`\n- In your `Makefile` (or equivalent)\n  * Define a variable for the target corresponding to the programming language that needs to be generated e.g. `PROTOB_CMD=build-py` to generate Python code\n  * Define a variable for the path to the folder containing protocol buffer classes e.g. `PROTOB_DIR=protob/py`\n  * Include a step that executes the target e.g. `make -C protob $(PROTOB_CMD) OUT_PY=$(PROTOB_DIR)` , read about [environment variables](#environment-variables) for further details. \n\nThe project has two branches: `master` and `develop`.\n\n- `develop` is the default branch and will always have the latest development code.\n- `master` will always be equal to the current stable release on the website, and should correspond with the latest release tag.\n\nVersioning scheme will match the one of the hardware wallet firmware contract. Release tags will have exactly the same name as [fibercrypto/skywallet-mcu](https://github.com/fibercrypto/skywallet-mcu)'s using it to build firmware deliverables.\n\n### Running tests\n\nBy design, this repository does not include a test suite. Nevertheless :\n\n- continuous integration of the generation process in [fibercrypto/skywallet-protob @ Travis](https://travis-ci.com/fibercrypto/skywallet-protob)\n- external projects do have a test suite that relies upon clases generated by these specifications\n\n### Merging Pull Requests\nAfter changes are merged into this `skywallet-protob` repository the corresponding changes should be updated into the following repositories:\n- [Hardware Wallet](https://github.com/fibercrypto/skywallet-protob): \n    Hardware Wallet has a submodule which depends on this repository.\n    To update the submodule execute the following commands\n    ```bash\n    $ cd $(GOPATH)/src/github.com/fibercrypto/skywallet-protob\n    $ git submodule foreach git pull origin master\n    ```\n\n- [Hardware Wallet Go](https://github.com/fibercrypto/skywallet-go):\n    Hardware Wallet Go has a dep dependency on this repository.\n    To update it take the commit hash from master of hardware wallet protob and update that in respective constraint in `Gopkg.toml`.\n    Then execute:\n    ```bash\n    $ dep ensure -update -v \n    ``` \n\n- [Hardware Wallet Daemon](https://github.com/skycoin/hardware-wallet-daemon):\n    Hardware Wallet Daemon has a dep dependency on this repository.\n    To update it take the commit hash from master of hardware wallet protob and update that in respective constraint in `Gopkg.toml`.\n    Then execute:\n    ```bash\n    $ dep ensure -update -v \n    ```\n\nAfter updating the submodule or depdency PR the changes in the respective respositories.\n\n### Releases\n\nThis repository is not meant to have release packages.\n\n#### Update the version\n\nSee [fibercrypto/skywallet-mcu README](https://github.com/fibercrypto/skywallet-mcu/tree/master/README.md).\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffibercrypto%2Fskywallet-protob","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffibercrypto%2Fskywallet-protob","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffibercrypto%2Fskywallet-protob/lists"}