{"id":19260226,"url":"https://github.com/liskhq/lisk-desktop","last_synced_at":"2025-04-12T15:39:47.926Z","repository":{"id":37446030,"uuid":"109285783","full_name":"LiskHQ/lisk-desktop","owner":"LiskHQ","description":"🖥 Lisk graphical user interface for desktop","archived":false,"fork":false,"pushed_at":"2024-08-23T17:20:07.000Z","size":148230,"stargazers_count":579,"open_issues_count":23,"forks_count":97,"subscribers_count":32,"default_branch":"development","last_synced_at":"2025-04-03T14:13:27.183Z","etag":null,"topics":["blockchain","blockchain-wallet","desktop","electron","javascript","lisk","ui"],"latest_commit_sha":null,"homepage":"https://lisk.com/wallet","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LiskHQ.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"docs/CONTRIBUTING_GUIDE.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-11-02T15:49:25.000Z","updated_at":"2025-03-22T10:26:48.000Z","dependencies_parsed_at":"2024-01-05T11:34:31.403Z","dependency_job_id":"3b9a95a7-b5b8-4e2e-8339-1d22e13b9031","html_url":"https://github.com/LiskHQ/lisk-desktop","commit_stats":null,"previous_names":[],"tags_count":183,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LiskHQ%2Flisk-desktop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LiskHQ%2Flisk-desktop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LiskHQ%2Flisk-desktop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LiskHQ%2Flisk-desktop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LiskHQ","download_url":"https://codeload.github.com/LiskHQ/lisk-desktop/tar.gz/refs/heads/development","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248590697,"owners_count":21129875,"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":["blockchain","blockchain-wallet","desktop","electron","javascript","lisk","ui"],"created_at":"2024-11-09T19:19:28.432Z","updated_at":"2025-04-12T15:39:47.896Z","avatar_url":"https://github.com/LiskHQ.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Logo](./docs/assets/banner_desktop.png)\n\n# Lisk Desktop\n\n[![Build Status](https://jenkins.lisk.com/buildStatus/icon?job=lisk-desktop/development)](https://jenkins.lisk.com/job/lisk-desktop/job/development)\n[![Coverage Status](https://coveralls.io/repos/github/LiskHQ/lisk-desktop/badge.svg?branch=development)](https://coveralls.io/github/LiskHQ/lisk-desktop?branch=development)\n[![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](http://www.gnu.org/licenses/gpl-3.0)\n![GitHub package.json version](https://img.shields.io/github/package-json/v/LiskHQ/lisk-desktop)\n[![DeepScan grade](https://deepscan.io/api/teams/6759/projects/8871/branches/113511/badge/grade.svg)](https://deepscan.io/dashboard/#view=project\u0026tid=6759\u0026pid=8871\u0026bid=113511\u0026prid=1785946\u0026subview=overview)\n[![GitHub issues](https://img.shields.io/github/issues/LiskHQ/lisk-desktop)](https://github.com/LiskHQ/lisk-desktop/issues)\n![GitHub closed issues](https://img.shields.io/github/issues-closed/liskhq/lisk-desktop)\n\n## Installation\n\nYou can download the latest release from [Lisk.com](https://lisk.com/wallet). The link automatically detects your operating system and downloads the correct app. Currently we are supporting the following operating systems:\n\n- MacOS (individual builds for Apple Silicon and Intel chips)\n- Windows\n- Linux\n\n## For Contributors\n\nPlease see [CONTRIBUTING_GUIDE.md](/docs/CONTRIBUTING_GUIDE.md) for more information.\n\n## Development\n\n### Using Commercial Fonts\n\n`Basier Circle` and `Gilroy` used in the production version are commercial fonts. This repository only contains open fonts and uses `Open Sans` as a replacement for the commercial ones.\n\nIf you have licensed copies of `Basier Circle` and `Gilroy`, you can add them to [fonts folder](./src/assets/fonts). If you don't have the fonts, you need to remove lines 25 - 81 of [type.css](./src/components/app/type.css). After that, the `build` and `dev` yarn scripts run without any errors.\n\n### Setup environment\n\nThe development environment currently depends on:\n\n- [Node.js version 16 (lts/gallium)](https://nodejs.org/download/release/latest-v16.x/). The below instructions assume [nvm](https://github.com/nvm-sh/nvm) is being used to manage Node.js versions.\n- [Python version 2.7.18 is required](https://www.python.org/downloads/release/python-2718/) is being used on encrypt/decrypt by the [lisk-sdk](https://github.com/LiskHQ/lisk-sdk/tree/development/sdk#dependencies).\n\n_Note_:\nFor _Windows_ users, make sure to set the correct [msvs_version](https://www.npmjs.com/package/node-gyp#on-windows) config for installing and packing the Lisk Desktop application.\n\n```\ngit clone https://github.com/LiskHQ/lisk-desktop.git\ncd lisk-desktop\nnvm use\nyarn --cwd app \u0026\u0026 yarn\nyarn run dev\n```\n\nOpen http://localhost:8080 to access the wallet.\n\n### Build\n\n#### Production build\n\nTo build the project simply run\n\n```\nyarn run build\n```\n\nUnder the hood, this script runs\n\n```\nyarn run build:prod\n```\n\nto build the React app under `src/` and\n\n```\nyarn run build:electron\n```\n\nto build the electron app under `app/` using webpack. You can run the above scripts individually if you're looking to see the changes solely on one of the two said applications.\n\n### Run Electron\n\nIf you have already built the application as described above, you can launch Electron using\n\n```\nyarn run start\n```\n\n#### Run with parameters\n\nTo launch a version which supports hardware wallets, you can run\n\n```\nyarn run dev:hw\n```\n\nor to launch electron and receive live updates from already running `webpack-dev-server` on port `8080` and you can run\n\n```\nLISK_DESKTOP_URL=\"http://localhost:8080\" DEBUG=true yarn run start\n```\n\nThis comes with Redux dev tools.\n\n### How to use the Ledger hardware wallet\n\nPlease see [HARDWARE_WALLET_DEVELOPMENT.md](/docs/HARDWARE_WALLET_DEVELOPMENT.md) for more information.\n\n### Distribution\n\n#### Windows\n\nBuild package for Windows (on Windows in [Git BASH](https://git-for-windows.github.io/)).\n\n```\nyarn run pack:win\n```\n\n#### macOS\n\nBuild package for macOS (on macOs)\n\n```\nyarn run pack\n```\n\n#### Linux\n\nBuild package for Linux (on Linux).\n\n```\nyarn run pack\n```\n\n## Testing\n\n### Unit tests\n\n#### Single run\n\n```\nyarn run test\n```\n\n#### Run each time a file changes\n\n```\nyarn run test:live\n```\n\n## Directory Layout\n\nNote: The following layout structure may not appear exactly as shown below due to the legacy code/features. However, this is the layout that we try to follow:\n\n```\n├── .husky/                        # Contains a pre commit hook which checks that files are prettified before committing.\n├── app/                           # Electron based application that launces the react app.\n├── build/                         # Build specific materials.\n├── coverage/                      # Results of Jest test coverage.\n├── dist/                          # Platform specific built outputs.\n├── docs/                          # Project documentation such as contribution guides and development guidelines.\n├── libs/                          # Modules which can be consumed individually in other projects.\n│   ├── hardwareWallet/            # HardwareWallet integrations.\n│   ├── wcm/                       # Wallet connect.\n├── node_modules/                  # 3rd-party libraries and utilities.\n├── setup/                         # The top most application layer, contains MainRouter and globally imported css files.\n│   ├── config/                    # Automation scripts (Webpack configurations, i18n scanner, etc.).\n│   ├── react/                     # React presentational components are located here.\n│   │   ├── app/                   # The bootstrap React application.\n│   │   ├── assets/                # Static files (images, fonts, etc.).\n├── src/                           # Application source code.\n│   ├── const/                     # Static configurations and other values used throughout the application.\n│   ├── locales/                   # Contains the built localization files.\n│   ├── modules/                   # Divided logic in domain specific areas, an example structure is shown below.\n│   │   ├── hardwareWallet/        # Module/Domain.\n│   │       ├── __fixtures__/      # Contains mock data for the hardwareWallet module.\n│   │       ├── components/        # Components related to the hardwareWallet domain.\n│   │       ├── hooks/             # Hooks related to the hardwareWallet domain.\n│   │       ├── store/             # Redux encapsulated logic related to the hardwareWallet domain.\n│   │           ├── actions/       # HardwareWallet actions.\n│   │           ├── selectors/     # HardwareWallet selectors.\n│   │           ├── reducers/      # HardwareWallet reducers.\n│   │       ├── utils/             # Utils used in the hardwareWallet module. Global utils should be put in src/utils.\n│   ├── redux/                     # Contains the root reducer, all other reducers are imported here. It also has legacy pattern, selectors, and actions (these should now be encapsulated in its specific module).\n│   ├── routes/                    # Contains all routes in the application as well as modals.\n│   │   ├── routes.js              # Route and modal paths with metadata. This object is used in all our links.\n│   │   ├── routesMap.js           # Maps components to routes, this is used in the MainRouter.js.\n│   ├── service/                   # Add services, such as mock services.\n│   ├── theme/                     # Themed components (Button, Input, etc.).\n│   ├── utils/                     # Global utility functions used throughout the app.\n        ├── i18n/                  # Localization setup.\n└──e2e/                            # E2E tests written with Playwright and Cucumber; also some helpers used by unit tests that live in /src.\n```\n\n## Contributors\n\nSee [contributors section](https://github.com/LiskHQ/lisk-desktop/graphs/contributors).\n\n## License\n\nCopyright © 2016-2024 Lisk Foundation\n\nThis program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.\n\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License along with this program. If not, see [http://www.gnu.org/licenses/.](http://www.gnu.org/licenses/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fliskhq%2Flisk-desktop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fliskhq%2Flisk-desktop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fliskhq%2Flisk-desktop/lists"}