Git Product home page Git Product logo

zephyrus-wallet's Introduction

Zephyrus Wallet

๐Ÿค” What is this?

This is an Android Bitcoin wallet utilising bdk-android library, and Jetpack Compose. For the time being, it is only for Bitcoin Testnet .

โœ๏ธ What is the current functionality:

  • Generate a new wallet
  • Recover an existing wallet
  • Receive satoshi
  • Display transaction history
  • Send satoshi
  • Display recovery phrase
  • Scan QR code
  • Display exchange rate
  • Display recommended fees

๐Ÿ“ฒ How to download this app?

You can download this app as an .apk in the Releases.

Or build from source, I recommend doing this via Android Studio.

๐Ÿ’ธ How to get testnet coins?

To obtain some coins for testing, you can use any bitcoin testnet faucet. It's a website, that will send you a small amount of balance for testing purpouses, search for it :)

๐Ÿซถ How to support me?

I very much appreciate any donations that you might make. Please note, that everything is voluntary and there are no refunds.

You can send me a donation via:

  • Bitcoin on-chain: 36ZesvSFoyDBJcJMYRyUP2hnWcwjxjp7JD
  • Lightning Network address: [email protected]
  • Monero: 49261YsGmYjeEAipPeRC5g2KR8imwedAYX4i3Gy9hYvN7JUBB4Vyc5U7aDbsnUF43S7tjLptrYmdt32P4yytvo9s6p51dgc

๐Ÿ“  License

This app is published under Apache-2.0 license, please see license.

Zephyrus Wallet is a free and open source software.

I very much appreciate any contributions to this project as I encourage you to fork it and build something new!

zephyrus-wallet's People

Contributors

sevcak avatar tohrxyz avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

zephyrus-wallet's Issues

Crashes

App crashes when launched without internet

Pending Tx history isn't refreshed after successfull broadcast of tx

Current behaviour

After successfully broadcasting new transaction, the user is routed to HomeScreen, but the transactions inside Pending box aren't refreshed. Not even after wallet synchronization
User needs to change screen (for ex. go to receive) and come back and only after that the Pending transactions inside the box are displayed.

Correct behaviour

They should be displayed immediately after coming from successfull broadcast or atleast after wallet sync.

Inform user about transaction broadcast status

The user should be informed whether transaction was broadcasted successfully or didn't go through. Currently the user doesn't know anything, unless they go back to the home screen and sync and see the balance reduced or increased.

App doesn't send small amount nor displays a warning

Current behavior

When a user attempts to send an amount less than is too small, the transaction does not go through and no warning is displayed to the user.

Expected behavior

The app should detect when the user is trying to send an amount too small and display a warning message to the user, informing them of the minimum amount allowed for a transaction.

App crashes on over balance amount send

Current behavior

When a user attempts to send an amount greater than their balance minus the transaction fee, the app crashes.

Expected behavior

The app should prevent the user from sending an amount greater than their balance minus the transaction fee and display an warning message instead of crashing.

Balance in sending screen

The wallet balance should be displayed in the sending screen, this way the user sees how much they can afford to send out.

Make separate ViewModel class

The ViewModel should be in separate file that would contain everything that other screens would need and they would import it (or rather pass as an argument).

This would help with code readability and other stuff that currently are problematic to do, because of internal viewmodels.

BUG: Button doesn't generate new addresses

The button to generate new address in ReceiveScreen doesn't actually generate new addresses, it's just generating the last unused address . Upon launch the lastUnusedAddress is generated, so it would be better if the button generated new.

Wrong amount in tx history when sending whole UTXO

What's wrong?

When spending the whole utxo, the incorrect amount is displayed in transaction history.

Steps to reproduce:

  1. Generate new wallet or empty it
  2. Receive some amount
  3. Try to spend a fraction of it
  4. Sending amount is now equal to the whole wallet balance even though you sent only fraction of it

Send all button

The send screen should contain a Send all button, that enters the value of the whole wallet balance into the amount input field. It also need to manage sending balance minus the transaction fee, not the whole balance.

Make Home, Receive and Send screens into a page switcher

Currently when user wants to navigate between Home, Send, Receive screens they need to route to them and it needs to launch them.

Better approach would be to make them into a page switcher, with Home in the middle and Send & Receive on the sides. User would then swipe between them.

This would also help with delays when launching a screen and it needs something to generate like a new address.

Sync button freezes the whole app

Current behaviour

When sync button is clicked, the whole app freezes until it's synced.

Expected behaviour

The sync should be handled in the background thread and only update UI's balance after it's finished. This way it isn't stopping any other processes.

Address paste button

The input field for entering outgoing address should contain a button that can paste the address from smartphone clipboard into the input field.

QR code scan isn't working all the time

What's wrong?

When trying to scan a qr code with a bitcoin address, not every time it is correctly inserted into recipient address input field, but instead the user is redirected to home wallet screen or even white screen ( ? ).

Steps to reproduce

  1. Open app
  2. Scan QR code - first time it usually works
  3. Next times probably redirects you to home screen
  4. Do it ~4 times it works now again
  5. Sometimes puts you on white screen

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.