GithubHelp home page GithubHelp logo

safe-global / safe-android Goto Github PK

View Code? Open in Web Editor NEW
84.0 84.0 35.0 14.81 MB

🔐 App to manage and interact with Safe

Home Page: https://safe.global

License: GNU General Public License v3.0

Kotlin 99.64% Shell 0.36%
ethereum kotlin-android multisig

safe-android's People

Contributors

biafra23 avatar dmitrybespalov avatar elgatovital avatar fmrsabino avatar johnnyjumper avatar jpalvarezl avatar rmeissner avatar tschubotz avatar zhiying-fan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

safe-android's Issues

Changing password focusses wrong input field

Expected behavior

When changing my device password, I should first get asked to enter a new password.

Actual behavior

I get asked first to repeat/confirm a password before even entering one.

Steps to reproduce the behavior

  • Go to setting
  • Change device pw
  • Enter current device pw
  • Now the repeat input field is focussed, but the "new pw" field should be.

Additional Information

  • Device: Gnosis Huawei
  • OS version: 8.0.0
  • App version: 0.6.1-dev

Locking > Unlocking extension + Reject Transaction BEFORE mobile approval does not reject on web

Expected behavior

Clicking reject should reject tx in FE and throw error w/message ~ 'User rejected transaction .... '

Mobile notifications pending should NOT come in
OR
clicking accept on mobile notification AFTER rejecting in browser Extension should NOT approve or do anything when clicking

Actual behavior

  1. Mobile Gnosis Safe App was not unlocked before initiating tx on dapp
  2. Start tx on app with browser extension unlocked
  3. extension shows pending tx please accept on mobile app
  4. unlock mobile app but no notification received ...
  5. lock browser extension and unlock browser extension
  6. Click 'reject' on browser extension
  7. tx does NOT reject
  8. mobile notification came in late
  9. approved mobile notification and tx was mined successfully

Steps to reproduce the behavior

  1. Mobile Gnosis Safe App was not unlocked before initiating tx on dapp
  2. Start tx on app with browser extension unlocked
  3. extension shows pending tx please accept on mobile app
  4. unlock mobile app but no notification received ...
  5. lock browser extension and unlock browser extension
  6. Click 'reject' on browser extension
  7. tx does NOT reject
  8. mobile notification came in late
  9. approved mobile notification and tx was mined successfully

Additional information

  • Device: Galaxy J5 (2016)
  • Android OS version: 7.1.1
  • Safe app version: 0.2.2

Adjust Onboarding Screens

  • Change design of generate mnemonic
  • Change design of restore mnemonic
  • Add longpress to copy mnemonic
  • Remove initial screen to select generate or restore and add a restore option to the generate screen
  • Adjust architecture for both screens
  • Add tests for both screens

Add address book

  • Add possibility to add and remove entries to an address book (address and name should be mandatory). Also add screen that lists all stored entries
  • Show if an address is stored and display the name (e.g. when performing transactions or displaying owners of a safe)

Clean up gradle files

  • Create helper functions file
  • Create dependencies file
  • Make sure buildserver can handle it

Target screen is briefly shown before the Unlock screen pops up

Expected behavior

When unlocking the app the unlock screen should show up without any "flashing" (ie.: target screen being briefly shown)

Actual behavior

When I unlock the app there is a short moment where you see a white background. Preferably this would not happen

Steps to reproduce the behaviour

Open the application whenever it is on a locked state.

Additional information

  • Device: Pixel 2
  • Android OS version: 9
  • Safe app version: 0.6.3

Add "Unlock for x minutes"

Making an unlock session for X amt of time option to allow easier confirmation of multiple transactions in a row.

E.g. when interacting with the DutchX multiple transactions have to be performed in a row. Each time the user has to type their password again. Adding this feature would a low an easier interaction in these cases.

Change Confirmation Flow Screens

  • Change design of all screens
  • Change architecture for all screen
  • Add tests for all screen

Please list the screens here when working on the ticket.

After changing the password the transaction cannot be confirmed

Expected behavior

After changing the password it can be used to confirm a transaction

Actual behavior

After changing the password you cannot confirm the transaction for submission
https://drive.google.com/file/d/1LvN5p3i3lm6-i4mkoQZVwedBm6FKsO3a/view?usp=sharing

Steps to reproduce the behavior

Here’s a video and the steps:

  • change app password
  • initiate send ETH
  • confirm with chrome extension
  • submit transaction with app
  • screen greys out and button is replaced by an unresponsive white bar. (in last week’s user test, a red error message appeared.)
  • user clicks outside white bar to go back to pending transaction
  • try to submit transaction again
  • white bar appears again
  • i tried this whole flow 3 times and got the white bar consistently and couldn’t move forward. On the final try, I did get the password/fingerprint prompt on the 3rd try. Then the transaction seemed to move forward (see video).
  • when the user tried it last week, he received an error message that said password was not recognized.

Additional information

  • Device:
    NA
  • OS version:
    NA
  • App version:
    NA

Add styles for new design

  • Add style for primary button (full width)
  • Add style for inline button
  • Add style for text button
  • Add style for toolbar (and toolbar text)/ navbar (and navbar items)
  • Add style for activity (windowBackground)
  • Add style for different types of text (e.g. title, content, label, input) -> set at least textColor and textSize
  • Add custom font (Can be done via Text style)

Show details of multisig

  • show name
  • show balance
  • show transactions
  • show owners
  • show number of required confirmations
  • show tokens
  • add test

Add licence

Choose appropriate licence and add LICENCE file

Change Account Screen

  • Add pull to refresh
  • Adjust design
  • Add different loading spinner for qr code generation
  • Change architecture
  • Add tests

Optimize network calls

Extract rpc api into separate module

Combine multiple rpc calls:

[{
"method": "eth_estimateGas",
"params": ["0xa5056c8efadb5d6a1a6eb0176615692b6e648313"],
"jsonrpc":"2.0",
"id": 42
},{
"method": "eth_gasPrice",
"params": [],
"jsonrpc":"2.0",
"id": 45
},{
"method": "eth_getTransactionCount",
"params": [
"0xa5056c8efadb5d6a1a6eb0176615692b6e648313",
"latest"
],
"jsonrpc": "3.0",
"id": "dkhfgs"
}]

Add app security layer

  • The app should be locked by default.
  • The user needs to unlock it before he can use it.
  • All private data should be encrypted

UX: Export key without the password

First of all - congratulations to the release. Just had the chance to try it out yesterday - and really like what I saw and was able to make a transaction without any problem! Big up @rmeissner , @fmrsabino and the rest - good job!!
Now I have a small UX problem: I forgot the password I was using yesterday. and there is no option to dump the key so I could access the account again when I remember the password again (I think this will happen as soon as I see the password constraint list again)
The password constraints where also a bit disappointing to me - I really do not like these things and have to reference XKCD here

image

anyway - this is complaining on a high comfort level - just thought I dump this here so you have a data-point for potential changes.

Bypass recovery phrase confirmation screen

Describe the bug
It is possible to bypass recovery phrase confirmation screen without entering words.

To Reproduce
Steps to reproduce the behavior:

  1. Go to Confirm Recovery Phrase screen
  2. Just press "Finish"
  3. The confirmation step is bypassed

Expected behavior
It should not be possible to bypass the screen. The "Finish" should only be clickable if it the recovery phrase is correct.

Smartphone (please complete the following information):

  • Device: Pixel 2
  • Android Version: 9
  • App Version: 0.6.3

Safe Recovery Flow: Add introduction screen

Describe the bug
The Safe Recovery flow should have an introduction screen where the flow and the requirements are explained.

Smartphone (please complete the following information):

  • Device: Pixel 2
  • Android Version: 9
  • App Version: 0.6.3

Add more menu to Safe details

  • Add option to copy wallet address
  • Add option to share wallet address
  • Add option to generate QR code of wallet address

Note: show a progressbar for QR code generation

List token balances

For all tokens the balance should be fetched.

If one of the standard tokens has a 0 balance, don't display it.

Custom tokens should always be displayed.

App crash on Safe creation

Expected behavior

I can create a Safe

Actual behavior

App crashes after receiving the deposit. I assume at the point of Safe creation.

Steps to reproduce the behavior

  • Clean install from crashlytics
  • Go through onboarding
  • Create Safe
  • Fund Safe
  • Wait for deposit to be detected
  • Wait more
    💥

Afterwards, the app cannot be opened anymore, it crashes straight away.

Additional Information

It most likely this crash: https://fabric.io/gnosis/android/apps/pm.gnosis.heimdall.dev/issues/5b60b9c06007d59fcd609b0d

  • Device: Moto G5S
  • OS version: 7.1.1
  • App version: 0.6.1-3-g0ac99c3-internal

Display costs of transaction in confirmation screen

  • Display a card ("Costs:") that contains the value if present and the estimated gas limit and gas price
  • Add possibility to change gas limit and gas price (on click on the card open dialog)
  • (Optional) Add price in euro or dollars

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.