Skip to content

Commit 3ba291d

Browse files
Initial
0 parents  commit 3ba291d

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

87 files changed

+14392
-0
lines changed

.github/workflows/publish.yml

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
name: "publish"
2+
on:
3+
push:
4+
branches:
5+
- release
6+
7+
jobs:
8+
publish-tauri:
9+
strategy:
10+
fail-fast: false
11+
matrix:
12+
platform: [macos-latest, ubuntu-latest, windows-latest]
13+
14+
runs-on: ${{ matrix.platform }}
15+
steps:
16+
- uses: actions/checkout@v2
17+
- name: setup node
18+
uses: actions/setup-node@v1
19+
with:
20+
node-version: 16
21+
- name: install Rust stable
22+
uses: actions-rs/toolchain@v1
23+
with:
24+
toolchain: stable
25+
- name: install dependencies (ubuntu only)
26+
if: matrix.platform == 'ubuntu-latest'
27+
run: |
28+
sudo apt-get update
29+
sudo apt-get install -y libwebkit2gtk-4.0-dev build-essential curl wget libssl-dev libgtk-3-dev libayatana-appindicator3-dev librsvg2-dev
30+
- name: install app dependencies and build it
31+
run: npm install && cargo install tauri-cli && cargo tauri build
32+
- uses: tauri-apps/tauri-action@v0
33+
env:
34+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
35+
with:
36+
tagName: app-v__VERSION__ # the action automatically replaces \_\_VERSION\_\_ with the app version
37+
releaseName: "App v__VERSION__"
38+
releaseBody: "See the assets to download this version and install."
39+
releaseDraft: true
40+
prerelease: false

.gitignore

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# Logs
2+
logs
3+
*.log
4+
npm-debug.log*
5+
yarn-debug.log*
6+
yarn-error.log*
7+
pnpm-debug.log*
8+
lerna-debug.log*
9+
10+
node_modules
11+
dist
12+
dist-ssr
13+
*.local
14+
15+
# Editor directories and files
16+
.vscode/*
17+
!.vscode/extensions.json
18+
.idea
19+
.DS_Store
20+
*.suo
21+
*.ntvs*
22+
*.njsproj
23+
*.sln
24+
*.sw?

README.md

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
<div align="center">
2+
<img height=150 src="doc/ghorbu_logo.png" />
3+
</div>
4+
<br>
5+
<p align="center"><span>A cross-platform desktop HD wallet for Bitcoin.</span></p>
6+
<br>
7+
<div align="center">
8+
9+
[![Linux Support](https://img.shields.io/static/v1?style=for-the-badge&message=Linux&color=0078D6&logo=Linux&logoColor=FFFFFF&label=)](https://github.com/matthias-wright/ghorbu-wallet/releases)
10+
[![macOS Support](https://img.shields.io/static/v1?style=for-the-badge&message=macOS&color=0078D6&logo=macOS&logoColor=FFFFFF&label=)](https://github.com/matthias-wright/ghorbu-wallet/releases)
11+
[![Windows Support](https://img.shields.io/static/v1?style=for-the-badge&message=Windows&color=0078D6&logo=Windows&logoColor=FFFFFF&label=)](https://github.com/matthias-wright/ghorbu-wallet/releases)
12+
</div>
13+
<br>
14+
<br>
15+
<div align="center">
16+
<img height=512 src="doc/preview.gif" />
17+
</div>
18+
19+
## About
20+
Ghorbu wallet is a hierarchical deterministic Bitcoin wallet for the desktop.
21+
It implements [BIP-39](https://en.bitcoin.it/wiki/BIP_0039) (generating the mnemonic and converting it into a binary seed),
22+
[BIP-32](https://en.bitcoin.it/wiki/BIP_0032) (deriving a tree of keypairs from a the seed and build a wallet structure), and
23+
[BIP-44](https://en.bitcoin.it/wiki/BIP_0044) (defining a logical hierarchy for deterministic wallets).
24+
For the coin selection process, it uses the Random-Improve algorithm as specified in [CIP-2](https://cips.cardano.org/cips/cip2/).
25+
The wallet uses the [mempool.space REST API](https://mempool.space/docs/api/rest).
26+
The app is built using [Tauri](https://tauri.app/). The backend is written in Rust and the frontend is built with [Svelte](https://svelte.dev/).
27+
28+
## Download
29+
Go [here](https://github.com/matthias-wright/ghorbu-wallet/releases).
30+
31+
## Build
32+
1. Install the prerequisites: https://tauri.app/v1/guides/getting-started/prerequisites
33+
2. `git clone https://github.com/matthias-wright/ghorbu-wallet`
34+
3. `cd ghorbu-wallet`
35+
4. `npm install`
36+
5. `cargo install tauri-cli`
37+
6. `cargo tauri build`
38+
39+
## References
40+
* [Bitcoin Core](https://github.com/bitcoin/bitcoin)
41+
* [BIPs](https://github.com/bitcoin/bips/blob/master/README.mediawiki)
42+
* [Mastering Bitcoin (2nd Edition) by Andreas M. Antonopoulos](https://aantonop.com/books/mastering-bitcoin/)
43+
* [Programming Bitcoin by Jimmy Song](https://programmingbitcoin.com/programming-bitcoin-book/)
44+
* [CIP-2](https://cips.cardano.org/cips/cip2/)
45+
46+
## License
47+
[GPL-3.0](https://opensource.org/licenses/GPL-3.0)

doc/ghorbu_logo.png

22.6 KB
Loading

doc/preview.gif

368 KB
Loading

index.html

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8" />
5+
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
6+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
7+
<title>Vite + Svelte</title>
8+
</head>
9+
<body>
10+
<div id="app"></div>
11+
<script type="module" src="/src/main.js"></script>
12+
</body>
13+
</html>

jsconfig.json

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
{
2+
"compilerOptions": {
3+
"moduleResolution": "Node",
4+
"target": "ESNext",
5+
"module": "ESNext",
6+
/**
7+
* svelte-preprocess cannot figure out whether you have
8+
* a value or a type, so tell TypeScript to enforce using
9+
* `import type` instead of `import` for Types.
10+
*/
11+
"importsNotUsedAsValues": "error",
12+
"isolatedModules": true,
13+
"resolveJsonModule": true,
14+
/**
15+
* To have warnings / errors of the Svelte compiler at the
16+
* correct position, enable source maps by default.
17+
*/
18+
"sourceMap": true,
19+
"esModuleInterop": true,
20+
"skipLibCheck": true,
21+
"forceConsistentCasingInFileNames": true,
22+
"baseUrl": ".",
23+
/**
24+
* Typecheck JS in `.svelte` and `.js` files by default.
25+
* Disable this if you'd like to use dynamic types.
26+
*/
27+
"checkJs": true
28+
},
29+
/**
30+
* Use global.d.ts instead of compilerOptions.types
31+
* to avoid limiting type declarations.
32+
*/
33+
"include": ["src/**/*.d.ts", "src/**/*.js", "src/**/*.svelte"]
34+
}

0 commit comments

Comments
 (0)