Giter VIP home page Giter VIP logo

easywallet's Introduction

EasyWallet

A simple Crypto wallets app to easily manage and create personal wallets.

See src/docs/readme.txt for more information.


Copyright (C) 2022 Stefano Fornari. Licensed under the
EUPL-1.2 or later (see LICENSE).

All Rights Reserved.  No use, copying or distribution of this
work may be made except in accordance with a valid license
agreement from Stefano Fornari.  This notice must be
included on all copies, modifications and derivatives of this
work.

STEFANO FORNARI MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY
OF THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE, OR NON-INFRINGEMENT. STEFANO FORNARI SHALL NOT BE LIABLE FOR ANY
DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
THIS SOFTWARE OR ITS DERIVATIVES.

easywallet's People

Contributors

stefanofornari avatar

Watchers

 avatar James Cloos avatar  avatar

easywallet's Issues

ERC20 token balances - all

AS A user
I WANT to see the balance of all tokens in a wallet
SO THAT I can easily check my tokens balance without going to etherscan or poligonscan

NOTES

  1. we need to get the list of tokens run time
  2. we want to retrieve the balance of ERC20 tokens on both Ethereum and Polygon

Delete wallet - UI

AS A user
I WANT to delete a wallet in the list
SO THAT I do not manage it any more

Changing the private key to a different key has no effect/feedback

Step to reproduce:

  • Have two wallets A and B
  • Edit B and update the private key to A's key
  • Save the change

Result:

  • the dialog dloses but no changes are saved

Expected result:

  • it should either give an error or change the wallet address if possible (i.e. no other wallets with the same address is already present)

NOTES:
I am not sure what should be the behaviour: if the private key can change, the wallet's address should change as well if possible. If not, changing the private key should be prevented once set.

Transactions - filter by date

AS A user
I WANT to filter transactions in the ledger view by dates with proper operators and date/time pickers
SO THAT I can more easily restrict the set of transfers in the list

ERC20 token balances - subset - configuration

AS A user
I WANT to see the balance of a selected set of tokens in the wallet card
SO THAT I can easily check my tokens balance without going to polygon

NOTE: we assume the address of the token contracts are stored in the configuration for now (see issue #27 for full implementation)

Configurable endpoint and key - file

AS A user
I WANT to be able to configure the endpoint and key in ${CONFIG}/ste.w3.easywallet/preferences.json
SO THAT I can easily change the provider

Add a wallet by private key

AS A user
I WANT to add a wallet knowing its private key
SO THAT I am not limited to only remembering/knowing the address

Transactions - fake data

AS A user
I WANT to see all incoming token transfer for a given wallet
SO THAT I can check all expected transfers happened

NOTES:

  1. UI only in this US (i.e. fake data)
  2. Tabular view is ok
  3. I am interested in: date and time in local time, amount and token, from which address
  4. I want to be able to order each field ascending/descending
  5. I want to be able filter rows by some basic logic (contains, starts with, comparison, ...)

Delete wallet - preferences

AS A user
I WANT that when I delete a wallet, it gets removed from the preferences
SO THAT it will not appear the next time I open the app

Errors returned to the endpoint not reported to the user

To reproduce: put a wrong app key, press REFRESH.

The connection fails with exception:

org.web3j.protocol.exceptions.ClientConnectionException: Invalid response received: 401; project id required in the url

	at org.web3j.protocol.http.HttpService.performIO(HttpService.java:173)
	at org.web3j.protocol.Service.send(Service.java:48)
	at org.web3j.protocol.core.Request.send(Request.java:87)
	at org.web3j.tx.RawTransactionManager.sendCall(RawTransactionManager.java:155)
	at org.web3j.tx.ManagedTransaction.call(ManagedTransaction.java:134)
[...]

but no feedback is provided to the user. The expected result is to see an error message at the top of the card list.

App key not picked from proper configuration key

To reproduce: put in preferences.json the correct endpoint and app key. Launch the app and press REFRESH.

Expected:wallets balance are refreshed.

Result: ClientConnectionException: Invalid response received: 401; project id required in the url

NOTE: the appkey is not appended to the url (if appended manually, it works)

Config - database settings

AS A user
I WANT TO set database connectivity settings in the configuration
SO THAT I can easily change database backend

Refresh balance

AS A user
I WANT to refresh the balance of all my managed wallets
SO THAT I can be up to date

Non blocking refresh

AS A user
I WANT to be able to interact with the application while a refresh is ongoing
SO THAT I do not have to wait the end of the process

Launcher

AS A user
I WANT to launch the application from an easy command line
SO THAT I can lunch it from the installed package

Close dialog pressing ESC

AS A user
I WANT to close a dialog pressing the key ESC
SO THAT it is easier to close a dialog without pressing the CLOSE button

Configuration - dialog at startup

AS A user
I WANT to insert the configuration at the start of the application if the preferences files is not already present
SO THAT I can start with a proper configuration

Show address validation message

AS A user
I WANT to see a reason why an address is not valid while adding it in the add wallet dialog
SO THAT I understand what is wrong

Packaging

AS A user
I WANT to easily install the application
SO THAT I do not have any other tool other than the JRE to launch EasyWallet

Transactions - fake data - database

AS A user
I WANT to see all incoming token transfer for a given wallet
SO THAT I can check all expected transfers happened

NOTES

  1. See also #35
  2. Here we read transaction information from the local db

ERC20 token balances - subset - ethereum - hardcoded

AS A user
I WANT to see the balance of a selected set of tokens in the wallet card
SO THAT I can easily check my tokens balance without going to etherscan

NOTE: we assume the address of the token contracts are hardcoded for now (see issue #27 for full implementation) on ethereum

Transactions - filter by amount as BigDecimal

AS A user
I WANT to filter transactions in the ledger view by full amount with proper operators and full support for big decimal
SO THAT I can more easily restrict the set of transfers in the list

Delete wallet - confirmation

AS A user
I WANT to confirm to really delete a wallet
SO THAT I do not delete a wallet by mistake or I can refrain from deleting it

Save added wallet

AS A user
I WANT that when I add a wallet it shows in the main window and it is stored in the preferences
SO THAT I can manage it in future sessions

Edit wallet - update/add private key

AS A user
I WANT to update or add the private key associated to a wallet
SO THAT I can correct it or add it after creating the wallet by public address

Real time balance error handling

AS A user
I WANT to clearly see an error indicator when the real-time balance can not be updated; the last retrieved value is displayed in red; if the last retrieved value is not available, 0.0 is showed in red
SO THAT I understand the balance may not be the current one

NOTES:

Error to be managed:
SocketException - networking - show a networking error
HttpException - web API - show a endpoint error

Ledger - arrow keys navigation

AS A user
I WANT to be able to move the highlighted row using up and down arrows
SO THAT I can avoid to use scrolling

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.