Skip to content

Commit

Permalink
Include submodule icons (#49)
Browse files Browse the repository at this point in the history
- Include submodule icons  (now pyinstaller includes this data)
- balance statement improvement (show nsec, max address index, and coin
categories)
- Transaction diagram arrow heads work now on all platforms
- translations
- bump version to 1.0.0
  • Loading branch information
andreasgriffin authored Jan 6, 2025
1 parent 08e9327 commit 19d6093
Show file tree
Hide file tree
Showing 34 changed files with 440 additions and 97 deletions.
38 changes: 14 additions & 24 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,6 @@
# Bitcoin Safe

#### Long-term Bitcoin savings made Easy

#### BETA Version -- Use with Caution

## Features
#### A bitcoin savings wallet for the entire family

- **Easy** Multisig-Wallet Setup
- Step-by-Step instructions for a secure MultiSig setup with PDF backup sheets
Expand All @@ -29,34 +25,28 @@
- Electrum server syncing
- planned upgrade to **Compact Block Filters** for the Bitcoin Safe 2.0 release

## Preview


##### Setup a multisig wallet

![screenshot1](docs/multisig-setup.gif)

##### Transaction exploring via the money flow diagram

![diagram](docs/explorer.gif)

##### Sending

![screenshot0](docs/send.gif)

##### PSBT sharing with trusted devices
### Fully featured - Easy and Powerful

![psbt-share.gif](docs/psbt-share.gif)
| **Multisig setup wizard** | **Create a PSBT and broadcast** |
|--------------------------------|----------------------------|
| ![](docs/multisig-setup.gif) | ![](docs/send.gif) |
| **Transaction exploring via a diagram** | **Search in all open wallets** |
| ![](docs/explorer.gif) | ![](docs/global-search.gif) |
| **Automatic Label Synchronization of the same wallet** | **Multiparty Multisig collaboration** |
| ![](docs/label-sync.gif) | ![](docs/psbt-share.gif) |

##### Label Synchronization with trusted devices

![label-sync.gif](docs/label-sync.gif)

##### Easy search across wallets
### Available on all platforms
| ![Windows](docs/tx-win.png) | ![Mac OS X](docs/tx-mac.png) | ![Linux](docs/tx-linux.png) |
|-----------------------------|-----------------------------|----------------------------|
| Windows | Mac OS X | Linux |

![screenshot0](docs/global-search.gif)

## Full Features List
## Comprehensive Feature List

- **Import and Export Capabilities**

Expand Down
2 changes: 1 addition & 1 deletion bitcoin_safe/__init__.py
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
# this is the source of the version information
__version__ = "1.0.0rc2"
__version__ = "1.0.0"
Binary file modified bitcoin_safe/gui/locales/app_ar_AE.qm
Binary file not shown.
35 changes: 31 additions & 4 deletions bitcoin_safe/gui/locales/app_ar_AE.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3044,6 +3044,13 @@ below {rate}</source>
<translation>واصف المحفظة</translation>
</message>
</context>
<context>
<name>dynamic_lib_load</name>
<message>
<source>libsecp256k1 could not be found. Please install libsecp256k1 in your OS.</source>
<translation>لم يتم العثور على libsecp256k1. يرجى تثبيت libsecp256k1 في نظام التشغيل الخاص بك. </translation>
</message>
</context>
<context>
<name>export</name>
<message>
Expand Down Expand Up @@ -3269,17 +3276,29 @@ It is best to use your own server, such as {link}.</source>
<source>Total</source>
<translation>الإجمالي </translation>
</message>
<message>
<source>Category</source>
<translation>فئة</translation>
</message>
<message>
<source>Address</source>
<translation>عنوان</translation>
</message>
<message>
<source>Balance</source>
<translation>الرصيد</translation>
</message>
<message>
<source>Created at {date} with</source>
<translation>أُنشئ في {date} مع </translation>
</message>
<message>
<source>Balance Statement of {id}</source>
<translation>كشف حساب الرصيد لـ{id} </translation>
<source>On rescanning this wallet, scan to at least address index {max_tip} to discover all funded addresses.</source>
<translation>عند إعادة فحص هذه المحفظة، افحص على الأقل حتى مؤشر العنوان {max_tip} لاكتشاف جميع العناوين الممولة. </translation>
</message>
<message>
<source>Balance Statement of &quot;{id}&quot;</source>
<translation>كشف حساب الرصيد لـ&quot;{id}&quot; </translation>
<source>Label syncronization backup key: {label_sync_nsec}</source>
<translation>مفتاح النسخ الاحتياطي لمزامنة العلامات: {label_sync_nsec} </translation>
</message>
<message>
<source>1. Glue or tape the &apos;Recovery sheet&apos; ({number} words) over the table below&lt;br/&gt;
Expand All @@ -3289,6 +3308,14 @@ It is best to use your own server, such as {link}.</source>
</source>
<translation>1. الصق أو ثبّت &apos;ورقة الاسترداد&apos; ({number} كلمات) فوق الجدول أدناه&lt;br/&gt;2. طوِّ هذه الورقة عند الخط أدناه&lt;br/&gt;3. ضع هذه الورقة في مكان آمن حيث يمكنك الوصول إليها فقط&lt;br/&gt;4. يمكنك وضع الموقع الجهاز إما أ) مع النسخة الاحتياطية لبذور الورق، أو ب) في موقع آمن آخر (إذا كان متوفرًا)</translation>
</message>
<message>
<source>Balance Statement of {id}</source>
<translation>كشف حساب الرصيد لـ{id} </translation>
</message>
<message>
<source>Balance Statement of &quot;{id}&quot;</source>
<translation>كشف حساب الرصيد لـ&quot;{id}&quot; </translation>
</message>
<message>
<source>1. Glue or tape the &apos;Recovery sheet&apos; ({number} words) over the table below&lt;br/&gt;
2. Fold this paper at the line below &lt;br/&gt;
Expand Down
Binary file modified bitcoin_safe/gui/locales/app_de_DE.qm
Binary file not shown.
35 changes: 31 additions & 4 deletions bitcoin_safe/gui/locales/app_de_DE.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3041,6 +3041,13 @@ below {rate}</source>
<translation>Wallet-Deskriptor </translation>
</message>
</context>
<context>
<name>dynamic_lib_load</name>
<message>
<source>libsecp256k1 could not be found. Please install libsecp256k1 in your OS.</source>
<translation>libsecp256k1 konnte nicht gefunden werden. Bitte installieren Sie libsecp256k1 in Ihrem Betriebssystem. </translation>
</message>
</context>
<context>
<name>export</name>
<message>
Expand Down Expand Up @@ -3266,17 +3273,29 @@ It is best to use your own server, such as {link}.</source>
<source>Total</source>
<translation>Gesamt </translation>
</message>
<message>
<source>Category</source>
<translation>Kategorie </translation>
</message>
<message>
<source>Address</source>
<translation>Adresse </translation>
</message>
<message>
<source>Balance</source>
<translation>Saldo </translation>
</message>
<message>
<source>Created at {date} with</source>
<translation>Erstellt am {date} mit </translation>
</message>
<message>
<source>Balance Statement of {id}</source>
<translation>Kontostandsauszug von {id} </translation>
<source>On rescanning this wallet, scan to at least address index {max_tip} to discover all funded addresses.</source>
<translation>Beim erneuten Scannen dieses Wallets scannen Sie mindestens bis zum Adressindex {max_tip}, um alle finanzierten Adressen zu entdecken. </translation>
</message>
<message>
<source>Balance Statement of &quot;{id}&quot;</source>
<translation>Kontostandsauszug von &quot;{id}&quot; </translation>
<source>Label syncronization backup key: {label_sync_nsec}</source>
<translation>Label-Synchronisations-Backup-Schlüssel: {label_sync_nsec} </translation>
</message>
<message>
<source>1. Glue or tape the &apos;Recovery sheet&apos; ({number} words) over the table below&lt;br/&gt;
Expand All @@ -3286,6 +3305,14 @@ It is best to use your own server, such as {link}.</source>
</source>
<translation>1. Kleben oder kleben Sie das &apos;Recovery sheet&apos; ({number} Wörter) über die Tabelle unten&lt;br/&gt; 2. Falten Sie dieses Papier an der Linie unten &lt;br/&gt; 3. Legen Sie dieses Papier an einen sicheren Ort, wo nur Sie Zugang haben&lt;br/&gt; 4. Sie können den Hardware-Signer entweder a) zusammen mit dem Papier-Seed-Backup oder b) an einem anderen sicheren Ort (falls verfügbar) aufbewahren </translation>
</message>
<message>
<source>Balance Statement of {id}</source>
<translation>Kontostandsauszug von {id} </translation>
</message>
<message>
<source>Balance Statement of &quot;{id}&quot;</source>
<translation>Kontostandsauszug von &quot;{id}&quot; </translation>
</message>
<message>
<source>1. Glue or tape the &apos;Recovery sheet&apos; ({number} words) over the table below&lt;br/&gt;
2. Fold this paper at the line below &lt;br/&gt;
Expand Down
Binary file modified bitcoin_safe/gui/locales/app_es_ES.qm
Binary file not shown.
35 changes: 31 additions & 4 deletions bitcoin_safe/gui/locales/app_es_ES.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3044,6 +3044,13 @@ below {rate}</source>
<translation>Descriptor de la Cartera</translation>
</message>
</context>
<context>
<name>dynamic_lib_load</name>
<message>
<source>libsecp256k1 could not be found. Please install libsecp256k1 in your OS.</source>
<translation>No se pudo encontrar libsecp256k1. Por favor, instale libsecp256k1 en su sistema operativo. </translation>
</message>
</context>
<context>
<name>export</name>
<message>
Expand Down Expand Up @@ -3269,17 +3276,29 @@ It is best to use your own server, such as {link}.</source>
<source>Total</source>
<translation>Total </translation>
</message>
<message>
<source>Category</source>
<translation>Categoría</translation>
</message>
<message>
<source>Address</source>
<translation>Dirección</translation>
</message>
<message>
<source>Balance</source>
<translation>Saldo</translation>
</message>
<message>
<source>Created at {date} with</source>
<translation>Creado el {date} con </translation>
</message>
<message>
<source>Balance Statement of {id}</source>
<translation>Estado de cuenta de {id} </translation>
<source>On rescanning this wallet, scan to at least address index {max_tip} to discover all funded addresses.</source>
<translation>Al volver a escanear esta cartera, escanee al menos hasta el índice de dirección {max_tip} para descubrir todas las direcciones financiadas. </translation>
</message>
<message>
<source>Balance Statement of &quot;{id}&quot;</source>
<translation>Estado de cuenta de &quot;{id}&quot; </translation>
<source>Label syncronization backup key: {label_sync_nsec}</source>
<translation>Clave de respaldo de sincronización de etiquetas: {label_sync_nsec} </translation>
</message>
<message>
<source>1. Glue or tape the &apos;Recovery sheet&apos; ({number} words) over the table below&lt;br/&gt;
Expand All @@ -3289,6 +3308,14 @@ It is best to use your own server, such as {link}.</source>
</source>
<translation>1. Pegue o cinta la &apos;Hoja de recuperación&apos; ({number} palabras) sobre la tabla a continuación&lt;br/&gt;2. Doble este papel en la línea de abajo&lt;br/&gt;3. Coloque este papel en un lugar seguro, donde solo usted tenga acceso&lt;br/&gt;4. Puede poner el firmante de hardware ya sea a) junto con el respaldo de semilla de papel, o b) en otro lugar seguro (si está disponible) </translation>
</message>
<message>
<source>Balance Statement of {id}</source>
<translation>Estado de cuenta de {id} </translation>
</message>
<message>
<source>Balance Statement of &quot;{id}&quot;</source>
<translation>Estado de cuenta de &quot;{id}&quot; </translation>
</message>
<message>
<source>1. Glue or tape the &apos;Recovery sheet&apos; ({number} words) over the table below&lt;br/&gt;
2. Fold this paper at the line below &lt;br/&gt;
Expand Down
Binary file modified bitcoin_safe/gui/locales/app_fr_FR.qm
Binary file not shown.
35 changes: 31 additions & 4 deletions bitcoin_safe/gui/locales/app_fr_FR.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3044,6 +3044,13 @@ below {rate}</source>
<translation>Descripteur de portefeuille </translation>
</message>
</context>
<context>
<name>dynamic_lib_load</name>
<message>
<source>libsecp256k1 could not be found. Please install libsecp256k1 in your OS.</source>
<translation>libsecp256k1 est introuvable. Veuillez installer libsecp256k1 sur votre système d&apos;exploitation. </translation>
</message>
</context>
<context>
<name>export</name>
<message>
Expand Down Expand Up @@ -3269,17 +3276,29 @@ It is best to use your own server, such as {link}.</source>
<source>Total</source>
<translation>Total </translation>
</message>
<message>
<source>Category</source>
<translation>Catégorie </translation>
</message>
<message>
<source>Address</source>
<translation>Adresse </translation>
</message>
<message>
<source>Balance</source>
<translation>Solde </translation>
</message>
<message>
<source>Created at {date} with</source>
<translation>Créé le {date} avec </translation>
</message>
<message>
<source>Balance Statement of {id}</source>
<translation>Relevé de solde de {id} </translation>
<source>On rescanning this wallet, scan to at least address index {max_tip} to discover all funded addresses.</source>
<translation>Lors du re-scannage de ce portefeuille, scannez au moins jusqu&apos;à l&apos;indice d&apos;adresse {max_tip} pour découvrir toutes les adresses financées. </translation>
</message>
<message>
<source>Balance Statement of &quot;{id}&quot;</source>
<translation>Relevé de solde de &quot;{id}&quot; </translation>
<source>Label syncronization backup key: {label_sync_nsec}</source>
<translation>Clé de sauvegarde de synchronisation des étiquettes : {label_sync_nsec}</translation>
</message>
<message>
<source>1. Glue or tape the &apos;Recovery sheet&apos; ({number} words) over the table below&lt;br/&gt;
Expand All @@ -3289,6 +3308,14 @@ It is best to use your own server, such as {link}.</source>
</source>
<translation>1. Collez ou scotchez la &apos;Feuille de récupération&apos; ({number} mots) sur le tableau ci-dessous&lt;br/&gt; 2. Pliez ce papier sur la ligne ci-dessous &lt;br/&gt; 3. Placez ce papier dans un endroit sécurisé, où seulement vous avez accès&lt;br/&gt; 4. Vous pouvez placer le signataire matériel soit a) avec la sauvegarde de graine sur papier, soit b) dans un autre lieu sécurisé (si disponible) </translation>
</message>
<message>
<source>Balance Statement of {id}</source>
<translation>Relevé de solde de {id} </translation>
</message>
<message>
<source>Balance Statement of &quot;{id}&quot;</source>
<translation>Relevé de solde de &quot;{id}&quot; </translation>
</message>
<message>
<source>1. Glue or tape the &apos;Recovery sheet&apos; ({number} words) over the table below&lt;br/&gt;
2. Fold this paper at the line below &lt;br/&gt;
Expand Down
Binary file modified bitcoin_safe/gui/locales/app_hi_IN.qm
Binary file not shown.
35 changes: 31 additions & 4 deletions bitcoin_safe/gui/locales/app_hi_IN.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3044,6 +3044,13 @@ below {rate}</source>
<translation>वॉलेट वर्णनकर्ता</translation>
</message>
</context>
<context>
<name>dynamic_lib_load</name>
<message>
<source>libsecp256k1 could not be found. Please install libsecp256k1 in your OS.</source>
<translation>libsecp256k1 नहीं मिला। कृपया अपने ओएस में libsecp256k1 स्थापित करें। </translation>
</message>
</context>
<context>
<name>export</name>
<message>
Expand Down Expand Up @@ -3269,17 +3276,29 @@ It is best to use your own server, such as {link}.</source>
<source>Total</source>
<translation>कुल </translation>
</message>
<message>
<source>Category</source>
<translation>श्रेणी</translation>
</message>
<message>
<source>Address</source>
<translation>पता</translation>
</message>
<message>
<source>Balance</source>
<translation>बैलेंस</translation>
</message>
<message>
<source>Created at {date} with</source>
<translation>{date} को बनाया गया </translation>
</message>
<message>
<source>Balance Statement of {id}</source>
<translation>{id} का बैलेंस स्टेटमेंट </translation>
<source>On rescanning this wallet, scan to at least address index {max_tip} to discover all funded addresses.</source>
<translation>इस वॉलेट को फिर से स्कैन करते समय, कम से कम पते के सूचकांक {max_tip} तक स्कैन करें ताकि सभी वित्तपोषित पते पता चल सकें। </translation>
</message>
<message>
<source>Balance Statement of &quot;{id}&quot;</source>
<translation>&quot;{id}&quot; का बैलेंस स्टेटमेंट </translation>
<source>Label syncronization backup key: {label_sync_nsec}</source>
<translation>लेबल सिंक्रोनाइजेशन बैकअप कुंजी: {label_sync_nsec} </translation>
</message>
<message>
<source>1. Glue or tape the &apos;Recovery sheet&apos; ({number} words) over the table below&lt;br/&gt;
Expand All @@ -3289,6 +3308,14 @@ It is best to use your own server, such as {link}.</source>
</source>
<translation>1. &apos;रिकवरी शीट&apos; ({number} शब्दों) को नीचे दी गई तालिका पर गोंद या टेप करें&lt;br/&gt;2. नीचे दी गई लाइन पर इस कागज को मोड़ें&lt;br/&gt;3. इस कागज को केवल आपके पास पहुँचने वाली सुरक्षित जगह में रखें&lt;br/&gt;4. आप हार्डवेयर साइनर को या तो a) कागज़ के बीज बैकअप के साथ रख सकते हैं, या b) दूसरी सुरक्षित जगह में (अगर उपलब्ध है) </translation>
</message>
<message>
<source>Balance Statement of {id}</source>
<translation>{id} का बैलेंस स्टेटमेंट </translation>
</message>
<message>
<source>Balance Statement of &quot;{id}&quot;</source>
<translation>&quot;{id}&quot; का बैलेंस स्टेटमेंट </translation>
</message>
<message>
<source>1. Glue or tape the &apos;Recovery sheet&apos; ({number} words) over the table below&lt;br/&gt;
2. Fold this paper at the line below &lt;br/&gt;
Expand Down
Binary file modified bitcoin_safe/gui/locales/app_it_IT.qm
Binary file not shown.
Loading

0 comments on commit 19d6093

Please sign in to comment.