Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/wallet choose address contact 6843 #7263

Closed

Conversation

goranjovic
Copy link
Contributor

@goranjovic goranjovic commented Jan 14, 2019

fixes #6843

Summary:

New wallet send flow screens.

Review notes (optional):

  • This PR introduces usage of local atoms for internal Wallet state, as opposed to global re-frame managed state. This is done with intention to increase the encapsulation of Wallet as a module and bring us closer to the ideal case where wallet is an interchangeable library module.
  • We're using inline maps for the react style property where the values are not reusable. Also intentional, to increase readability.

Testing notes (optional):

Everything related to Wallet needs to be tested, but primarily:

  • Wallet Send flow
    • to address. QR, contact
    • ether, tokens, default or custom gas
    • value specified as fiat, e.g. 5 dollars worth of SNT (mainnet only)
    • different networks
  • Chat /send flow (also responding to /request)
  • dapp transactions
  • extension transactions

Platforms (optional)

  • Android
  • iOS
  • Desktop (only a quick check if anything was obviously broken)

Areas that maybe impacted (optional)

Functional

  • wallet / transactions
  • dapps / app browsing
  • networks

status: ready

@status-github-bot
Copy link

status-github-bot bot commented Jan 14, 2019

Pull Request Checklist

  • Have you updated the documentation, if impacted (e.g. docs.status.im)?

@status-im-auto
Copy link
Member

status-im-auto commented Jan 14, 2019

Jenkins Builds

Click to see older builds (15)
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ 5e161bf #1 2019-01-14 10:06:58 ~15 min ios-e2e 📦 package
✔️ 5e161bf #1 2019-01-14 10:07:19 ~15 min android-e2e 📦 package
✔️ 5e161bf #1 2019-01-14 10:07:43 ~15 min macos 📦 package
✔️ 5e161bf #1 2019-01-14 10:08:29 ~16 min ios 📦 package
✔️ 5e161bf #1 2019-01-14 10:09:34 ~17 min linux 📦 package
✔️ 5e161bf #1 2019-01-14 10:10:26 ~18 min android 📦 package
✔️ 5e161bf #1 2019-01-14 10:21:09 ~29 min windows 📦 package
✔️ b5b9859 #2 2019-01-14 15:27:13 ~35 min android-e2e 📦 package
b5b9859 #2 2019-01-14 15:33:53 ~42 min ios 📄 build log
✔️ b5b9859 #2 2019-01-14 15:38:56 ~47 min ios-e2e 📦 package
✔️ b5b9859 #2 2019-01-14 15:40:12 ~48 min android 📦 package
✔️ b5b9859 #2 2019-01-14 15:41:43 ~50 min macos 📦 package
✔️ b5b9859 #2 2019-01-14 15:47:18 ~55 min linux 📦 package
✔️ b5b9859 #2 2019-01-14 15:47:39 ~56 min windows 📦 package
✔️ b5b9859 #3 2019-01-16 13:47:35 ~16 min ios 📦 package
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ 5629b8f #3 2019-01-18 10:09:24 ~14 min ios-e2e 📦 package
✔️ 5629b8f #4 2019-01-18 10:11:49 ~16 min ios 📦 package
✔️ 5629b8f #3 2019-01-18 10:12:16 ~17 min android 📦 package
✔️ 5629b8f #3 2019-01-18 10:12:28 ~17 min android-e2e 📦 package
✔️ 5629b8f #3 2019-01-18 10:13:29 ~18 min windows 📦 package
✔️ 5629b8f #3 2019-01-18 10:14:07 ~19 min linux 📦 package
✔️ 5629b8f #3 2019-01-18 10:14:30 ~19 min macos 📦 package
✔️ 9218a8e #4 2019-01-18 14:09:09 ~14 min macos 📦 package
✔️ 9218a8e #4 2019-01-18 14:11:12 ~16 min android-e2e 📦 package
✔️ 9218a8e #5 2019-01-18 14:11:32 ~16 min ios 📦 package
✔️ 9218a8e #4 2019-01-18 14:11:33 ~16 min ios-e2e 📦 package
✔️ 9218a8e #4 2019-01-18 14:14:31 ~19 min linux 📦 package
✔️ 9218a8e #4 2019-01-18 14:15:14 ~20 min windows 📦 package
✔️ 9218a8e #4 2019-01-18 14:26:44 ~31 min android 📦 package

@oskarth
Copy link
Contributor

oskarth commented Jan 17, 2019

Would it make sense to do divide this work up into smaller chunks? I.e. smaller PRs that are ready and can be merged, as opposed to one big shebang

@goranjovic
Copy link
Contributor Author

@oskarth Unfortunately no.

@denis-sharypin
Copy link

denis-sharypin commented Jan 18, 2019

Hey, @goranjovic good job on the redesign. However, I found small bugs:

  1. We don't have to scream at our users :)
    Make See it again in a regular case, please.
    image

  2. Paste icon. Could you please take the new one from the Figma file. There was a battle around it within the design team. So another icon won this battle.
    image

  3. Adjust a baseline. Amount and currency should be on the same baseline. Currently, the currency is above it.
    image

  4. Somehow I could proceed to the review screen even if I have Insufficient funds error.
    image

  5. The text here should be aligned centrally and be 12px size. Also, the background of this tooltip should be completely white.
    image

  6. When I got back to this screen (no matter, from the assets screen or preview screen) I can't any more set the amount. The amount is not tapable and a keyboard doesn't show up.
    image

  7. Transparency of the backdrop works weird. I'll try to explain that. Currently, it starts increasing from 0 to 100 and then goes back to a certain amount. Here step by step screenshot from the build:

screenshot 2019-01-18 11 42 27

But it should work rather like this: starts from 0 and goes to this certain amount right directly without reaching 100%.

  1. Gas popup works not as I expected. My bad, specification wasn't clear. I'll provide details on it a bit later today

@goranjovic
Copy link
Contributor Author

@denis-sharypin Once again I'm grateful to you and your excellent eyesight :)

@denis-sharypin
Copy link

No probs!

Fixes related to the gas popup:

  1. When we trigger the gas popup from Send amount screen we should hide the keyboard.
    image

  2. To fix such stuff it would be great to set a max height for this popup and make the content of it scrollable.

Problem:
image

Solution:
screenshot 2019-01-18 15 22 42

What do you think?

@denis-sharypin
Copy link

denis-sharypin commented Jan 18, 2019

Check the example — https://www.dropbox.com/s/6vrzdn8gwvgmvac/2019-01-18%2015.36.45.mp4?dl=0

Dropbox
Shared with Dropbox

@status-im-auto
Copy link
Member

status-im-auto commented Jan 23, 2019

Jenkins Builds

Click to see older builds (159)
Commit #️⃣ Finished (UTC) Duration Platform Result
9420c24 #5 2019-01-23 12:05:45 ~11 min macos 📄 log
✔️ 9420c24 #5 2019-01-23 12:08:11 ~13 min android-e2e 📦 apk
✔️ 9420c24 #6 2019-01-23 12:09:21 ~15 min ios 📦 ipa
✔️ 9420c24 #5 2019-01-23 12:10:06 ~15 min ios-e2e 📦 pkg
✔️ 9420c24 #5 2019-01-23 12:12:13 ~17 min windows 📦 exe
✔️ 9420c24 #5 2019-01-23 12:13:12 ~18 min linux 📦 App
✔️ 1b9bc04 #6 2019-01-23 12:09:05 ~12 min android 📦 apk
✔️ 1b9bc04 #6 2019-01-23 12:20:39 ~14 min macos 📦 dmg
✔️ 1b9bc04 #7 2019-01-23 12:24:22 ~14 min ios 📦 ipa
✔️ 1b9bc04 #6 2019-01-23 12:25:05 ~14 min ios-e2e 📦 pkg
✔️ 1b9bc04 #6 2019-01-23 12:32:25 ~19 min linux 📦 App
caf0458 #7 2019-01-25 10:08:02 ~1 min linux 📄 log
caf0458 #7 2019-01-25 10:08:05 ~1 min android-e2e 📄 log
caf0458 #7 2019-01-25 10:08:10 ~1 min android 📄 log
caf0458 #7 2019-01-25 10:08:12 ~1 min windows 📄 log
caf0458 #7 2019-01-25 10:19:16 ~12 min ios-e2e 📄 log
caf0458 #8 2019-01-25 10:19:36 ~13 min ios 📄 log
caf0458 #7 2019-01-25 10:19:42 ~13 min macos 📄 log
✔️ 755bf1d #8 2019-01-25 10:51:12 ~15 min ios-e2e 📦 pkg
✔️ 755bf1d #9 2019-01-25 10:51:15 ~15 min ios 📦 ipa
✔️ 755bf1d #8 2019-01-25 10:52:25 ~16 min macos 📦 dmg
✔️ 755bf1d #8 2019-01-25 10:54:04 ~18 min android-e2e 📦 apk
✔️ 755bf1d #8 2019-01-25 10:58:42 ~23 min windows 📦 exe
✔️ 755bf1d #8 2019-01-25 10:59:58 ~24 min android 📦 apk
✔️ 755bf1d #8 2019-01-25 11:01:24 ~25 min linux 📦 App
86b5793 #9 2019-01-29 14:40:48 ~48 sec linux 📄 log
✔️ 86b5793 #9 2019-01-29 14:54:28 ~14 min macos 📦 dmg
✔️ 86b5793 #9 2019-01-29 14:55:27 ~15 min ios-e2e 📦 pkg
✔️ 86b5793 #10 2019-01-29 14:56:35 ~16 min ios 📦 ipa
✔️ 86b5793 #9 2019-01-29 14:57:11 ~17 min android 📦 apk
✔️ 86b5793 #9 2019-01-29 14:57:49 ~17 min android-e2e 📦 apk
✔️ 86b5793 #9 2019-01-29 15:01:09 ~21 min windows 📦 exe
✔️ be60557 #11 2019-01-30 15:26:11 ~16 min ios-e2e 📦 pkg
✔️ be60557 #11 2019-01-30 15:26:29 ~16 min macos 📦 dmg
✔️ be60557 #12 2019-01-30 15:26:37 ~16 min ios 📦 ipa
✔️ be60557 #11 2019-01-30 15:27:30 ~17 min android 📦 apk
✔️ be60557 #11 2019-01-30 15:29:11 ~19 min android-e2e 📦 apk
✔️ be60557 #11 2019-01-30 15:32:36 ~22 min windows 📦 exe
✔️ be60557 #11 2019-01-30 15:33:21 ~23 min linux 📦 App
8b44000 #12 2019-02-01 10:42:49 ~5 min ios-e2e 📄 log
8b44000 #13 2019-02-01 10:43:01 ~5 min ios 📄 log
8b44000 #12 2019-02-01 10:45:04 ~8 min android-e2e 📄 log
8b44000 #12 2019-02-01 10:46:37 ~9 min android 📄 log
✔️ 8b44000 #12 2019-02-01 10:51:05 ~13 min macos 📦 dmg
✔️ 8b44000 #12 2019-02-01 10:57:00 ~19 min windows 📦 exe
✔️ 8b44000 #12 2019-02-01 11:00:18 ~23 min linux 📦 App
✔️ 7b053f9 #13 2019-02-01 11:51:07 ~33 min android-e2e 📦 apk
✔️ 7b053f9 #13 2019-02-01 11:51:10 ~33 min android 📦 apk
✔️ 7b053f9 #13 2019-02-01 11:55:33 ~37 min windows 📦 exe
✔️ 7b053f9 #13 2019-02-01 11:56:20 ~38 min linux 📦 App
✔️ 7b053f9 #13 2019-02-01 11:58:01 ~40 min macos 📦 dmg
✔️ 7b053f9 #13 2019-02-01 11:58:57 ~41 min ios-e2e 📦 pkg
✔️ 7b053f9 #14 2019-02-01 11:58:57 ~41 min ios 📦 ipa
✔️ 7b053f9 #14 2019-02-04 07:16:44 ~13 min ios-e2e 📦 pkg
✔️ 7b053f9 #15 2019-02-04 07:18:04 ~15 min ios 📦 ipa
✔️ 7b053f9 #14 2019-02-04 07:18:34 ~15 min android-e2e 📦 apk
✔️ 7b053f9 #14 2019-02-04 07:18:46 ~14 min macos 📦 dmg
✔️ 7b053f9 #14 2019-02-04 07:21:43 ~17 min windows 📦 exe
✔️ 7b053f9 #14 2019-02-04 07:23:43 ~21 min android 📦 apk
✔️ 7b053f9 #14 2019-02-04 07:28:43 ~25 min linux 📦 App
ee54782 #15 2019-02-06 13:32:44 ~18 sec android 📄 log
ee54782 #15 2019-02-06 13:32:44 ~22 sec android-e2e 📄 log
ee54782 #15 2019-02-06 13:32:44 ~15 sec linux 📄 log
ee54782 #16 2019-02-06 13:32:48 ~21 sec ios 📄 log
ee54782 #15 2019-02-06 13:32:48 ~18 sec macos 📄 log
ee54782 #15 2019-02-06 13:32:48 ~22 sec ios-e2e 📄 log
ee54782 #15 2019-02-06 13:32:50 ~18 sec windows 📄 log
c353b7a #16 2019-02-06 13:41:29 ~1 min ios-e2e 📄 log
c353b7a #17 2019-02-06 13:41:33 ~1 min ios 📄 log
✔️ c353b7a #16 2019-02-06 13:56:05 ~15 min macos 📦 dmg
✔️ c353b7a #16 2019-02-06 13:57:29 ~17 min android 📦 apk
✔️ c353b7a #16 2019-02-06 13:57:29 ~17 min android-e2e 📦 apk
✔️ c353b7a #16 2019-02-06 13:59:21 ~18 min windows 📦 exe
✔️ c353b7a #16 2019-02-06 14:06:41 ~26 min linux 📦 App
✔️ 52e9c9e #17 2019-02-08 09:37:20 ~15 min ios-e2e 📦 pkg
✔️ 52e9c9e #17 2019-02-08 09:38:28 ~16 min macos 📦 dmg
✔️ 52e9c9e #18 2019-02-08 09:39:02 ~16 min ios 📦 ipa
✔️ 52e9c9e #17 2019-02-08 09:39:25 ~17 min android 📦 apk
✔️ 52e9c9e #17 2019-02-08 09:39:36 ~17 min android-e2e 📦 apk
✔️ 52e9c9e #17 2019-02-08 09:40:55 ~18 min windows 📦 exe
✔️ 52e9c9e #17 2019-02-08 09:45:18 ~23 min linux 📦 App
14118e8 #18 2019-02-11 14:09:37 ~16 sec android-e2e 📄 log
14118e8 #18 2019-02-11 14:09:48 ~24 sec android 📄 log
14118e8 #18 2019-02-11 14:09:54 ~28 sec linux 📄 log
14118e8 #18 2019-02-11 14:10:08 ~40 sec windows 📄 log
14118e8 #18 2019-02-11 14:13:23 ~3 min ios-e2e 📄 log
14118e8 #19 2019-02-11 14:13:41 ~4 min ios 📄 log
14118e8 #18 2019-02-11 14:13:57 ~4 min macos 📄 log
8b13ad0 #19 2019-02-14 11:20:07 ~18 sec linux 📄 log
8b13ad0 #19 2019-02-14 11:20:08 ~17 sec windows 📄 log
8b13ad0 #20 2019-02-14 11:20:09 ~21 sec ios 📄 log
8b13ad0 #19 2019-02-14 11:20:10 ~21 sec macos 📄 log
8b13ad0 #19 2019-02-14 11:20:11 ~24 sec ios-e2e 📄 log
8b13ad0 #19 2019-02-14 11:20:11 ~25 sec android 📄 log
8b13ad0 #19 2019-02-14 11:20:11 ~27 sec android-e2e 📄 log
✔️ a2f4b93 #20 2019-02-14 12:52:37 ~15 min ios-e2e 📦 pkg
✔️ a2f4b93 #20 2019-02-14 12:53:34 ~16 min macos 📦 dmg
✔️ a2f4b93 #21 2019-02-14 12:54:33 ~17 min ios 📦 ipa
✔️ a2f4b93 #20 2019-02-14 13:03:26 ~26 min windows 📦 exe
✔️ a2f4b93 #20 2019-02-14 13:04:30 ~27 min linux 📦 App
✔️ a2f4b93 #20 2019-02-14 13:10:08 ~32 min android 📦 apk
✔️ a2f4b93 #20 2019-02-14 13:10:39 ~33 min android-e2e 📦 apk
✔️ 5a44d37 #21 2019-02-14 13:31:54 ~16 min ios-e2e 📦 pkg
✔️ 5a44d37 #21 2019-02-14 13:32:48 ~16 min macos 📦 dmg
✔️ 5a44d37 #22 2019-02-14 13:32:51 ~16 min ios 📦 ipa
✔️ 5a44d37 #21 2019-02-14 13:36:12 ~20 min windows 📦 exe
✔️ 5a44d37 #21 2019-02-14 13:42:46 ~26 min linux 📦 App
✔️ 5a44d37 #21 2019-02-14 13:48:25 ~32 min android 📦 apk
✔️ 5a44d37 #21 2019-02-14 13:48:45 ~32 min android-e2e 📦 apk
6e62611 #22 2019-02-19 09:04:58 ~12 sec linux 📄 log
6e62611 #22 2019-02-19 09:04:59 ~11 sec windows 📄 log
6e62611 #22 2019-02-19 09:04:59 ~18 sec android-e2e 📄 log
6e62611 #22 2019-02-19 09:04:59 ~17 sec android 📄 log
6e62611 #22 2019-02-19 09:05:02 ~15 sec macos 📄 log
6e62611 #22 2019-02-19 09:05:03 ~19 sec ios-e2e 📄 log
6e62611 #23 2019-02-19 09:05:03 ~19 sec ios 📄 log
7a038d6 #23 2019-02-19 09:20:21 ~4 min macos 📄 log
7a038d6 #24 2019-02-19 09:20:35 ~4 min ios 📄 log
7a038d6 #23 2019-02-19 09:21:09 ~4 min ios-e2e 📄 log
7a038d6 #23 2019-02-19 09:22:57 ~6 min linux 📄 log
7a038d6 #23 2019-02-19 09:22:57 ~6 min windows 📄 log
7a038d6 #23 2019-02-19 09:23:49 ~7 min android-e2e 📄 log
7a038d6 #23 2019-02-19 09:23:49 ~7 min android 📄 log
63b44b6 #24 2019-02-19 09:36:45 ~8 min windows 📄 log
✔️ 63b44b6 #24 2019-02-19 09:42:59 ~15 min ios-e2e 📦 pkg
✔️ 63b44b6 #24 2019-02-19 09:44:05 ~16 min macos 📦 dmg
✔️ 63b44b6 #25 2019-02-19 09:44:52 ~16 min ios 📦 ipa
✔️ 63b44b6 #24 2019-02-19 09:47:24 ~19 min android 📦 apk
✔️ 63b44b6 #24 2019-02-19 09:47:36 ~19 min linux 📦 App
✔️ 63b44b6 #24 2019-02-19 09:47:43 ~19 min android-e2e 📦 apk
✔️ 70bcd8a #25 2019-02-19 11:33:15 ~15 min macos 📦 dmg
✔️ 70bcd8a #26 2019-02-19 11:33:32 ~15 min ios 📦 ipa
✔️ 70bcd8a #25 2019-02-19 11:33:34 ~15 min ios-e2e 📦 pkg
✔️ 70bcd8a #25 2019-02-19 11:36:16 ~18 min android 📦 apk
✔️ 70bcd8a #25 2019-02-19 11:36:38 ~19 min android-e2e 📦 apk
✔️ 70bcd8a #25 2019-02-19 11:39:04 ~21 min windows 📦 exe
✔️ 70bcd8a #25 2019-02-19 11:40:48 ~23 min linux 📦 App
✔️ 16e6d93 #26 2019-02-19 12:07:13 ~15 min macos 📦 dmg
✔️ 16e6d93 #27 2019-02-19 12:07:40 ~15 min ios 📦 ipa
✔️ 16e6d93 #26 2019-02-19 12:07:43 ~16 min ios-e2e 📦 pkg
✔️ 16e6d93 #26 2019-02-19 12:09:57 ~18 min android 📦 apk
✔️ 16e6d93 #26 2019-02-19 12:10:30 ~18 min android-e2e 📦 apk
✔️ 16e6d93 #26 2019-02-19 12:12:35 ~20 min windows 📦 exe
✔️ 16e6d93 #26 2019-02-19 12:13:46 ~22 min linux 📦 App
5707e68 #27 2019-02-20 14:07:52 ~1 min ios-e2e 📄 log
5707e68 #28 2019-02-20 14:07:59 ~1 min ios 📄 log
✔️ 5707e68 #27 2019-02-20 14:22:08 ~15 min macos 📦 dmg
✔️ 5707e68 #27 2019-02-20 14:24:29 ~17 min android 📦 apk
✔️ 5707e68 #27 2019-02-20 14:24:37 ~17 min android-e2e 📦 apk
✔️ 5707e68 #27 2019-02-20 14:25:33 ~18 min windows 📦 exe
✔️ 5707e68 #27 2019-02-20 14:26:28 ~19 min linux 📦 App
✔️ 5707e68 #29 2019-02-20 14:48:06 ~17 min ios 📦 ipa
✔️ d7593f8 #28 2019-02-21 07:32:38 ~15 min ios-e2e 📦 pkg
✔️ d7593f8 #28 2019-02-21 07:33:09 ~15 min macos 📦 dmg
✔️ d7593f8 #30 2019-02-21 07:34:17 ~16 min ios 📦 ipa
✔️ d7593f8 #28 2019-02-21 07:36:41 ~19 min android-e2e 📦 apk
✔️ d7593f8 #28 2019-02-21 07:36:49 ~19 min android 📦 apk
✔️ d7593f8 #28 2019-02-21 07:38:43 ~21 min windows 📦 exe
✔️ d7593f8 #28 2019-02-21 07:39:41 ~22 min linux 📦 App
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ 786b196 #29 2019-02-21 09:14:34 ~14 min macos 📦 dmg
✔️ 786b196 #31 2019-02-21 09:15:26 ~15 min ios 📦 ipa
✔️ 786b196 #29 2019-02-21 09:15:55 ~16 min ios-e2e 📦 pkg
✔️ 786b196 #29 2019-02-21 09:18:40 ~19 min android 📦 apk
✔️ 786b196 #29 2019-02-21 09:18:46 ~19 min android-e2e 📦 apk
✔️ 786b196 #29 2019-02-21 09:20:49 ~21 min windows 📦 exe
✔️ 786b196 #29 2019-02-21 09:21:40 ~22 min linux 📦 App
✔️ 372c5b9 #30 2019-02-21 09:53:51 ~15 min ios-e2e 📦 pkg
✔️ 372c5b9 #30 2019-02-21 09:54:02 ~15 min macos 📦 dmg
✔️ 372c5b9 #32 2019-02-21 09:55:10 ~16 min ios 📦 ipa
✔️ 372c5b9 #30 2019-02-21 09:56:45 ~18 min android-e2e 📦 apk
✔️ 372c5b9 #30 2019-02-21 09:56:51 ~18 min android 📦 apk
✔️ 372c5b9 #30 2019-02-21 10:00:17 ~21 min windows 📦 exe
✔️ 372c5b9 #30 2019-02-21 10:01:16 ~22 min linux 📦 App

@denis-sharypin
Copy link

denis-sharypin commented Jan 24, 2019

Hey @goranjovic, amazing stuff, thanks! Almost ready, a few things are left:

  1. Adjust a baseline. Amount and currency should be on the same baseline. Currently, the currency is above it.
    image

  2. The text here should be aligned centrally and be 12px size.
    image

  3. Reduce this space for 8 px
    image

  4. Bg colors of these inputs should be the same as Enter your password input
    image

  5. Pressed state of the button should be a bit different. Not lighter but darker than the normal one.
    image

  6. Inactive 'Next button' should have a different style. Check the specs
    image

  7. Network fee is always 0 USD to me. Is it alright?
    image

  8. Design team is cursing me for such bold font in the wallet. Can we change it from 700 to 500 (Medium) on the main wallet screen, on the screen with an address and screen with an amount.

screenshot 2019-01-24 11 31 28

  1. And finaly a bit extra, can we try and check a dark keyboard style for this flow only?
    https://facebook.github.io/react-native/docs/textinput#keyboardappearance
    "dark"
    It should be cool!
A foundational component for inputting text into the app via a keyboard. Props provide configurability for several features, such as auto-correction, auto-capitalization, placeholder text, and different keyboard types, such as a numeric keypad.

@goranjovic goranjovic force-pushed the feature/wallet-choose-address-contact-6843 branch 2 times, most recently from caf0458 to 755bf1d Compare January 25, 2019 10:35
@goranjovic goranjovic self-assigned this Jan 25, 2019
@goranjovic goranjovic changed the title WIP Feature/wallet choose address contact 6843 Feature/wallet choose address contact 6843 Jan 25, 2019
@goranjovic
Copy link
Contributor Author

@denis-sharypin Just saw your last comment. Will update this along with any updates needed from the review.

Copy link
Contributor

@dmitryn dmitryn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you also plan to extract simple-tab-navigator, slide-up-modal, etc components to be used in other parts of the app ?

(if error
;; ERROR
(do (utils/show-popup (i18n/label :t/error)
(if (= (:code error) 5)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

magic number, maybe move to constant

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

good point

(defn extract-qr-code-details [chain qr-uri]
{:pre [(keyword? chain) (string? qr-uri)]}
;; i don't like fetching all tokens here
(let [{:keys [:wallet/all-tokens]} @re-frame.db/app-db
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you please explain why do you get all-tokens data from @re-frame.db/app-db directly?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

because there was strictly speaking no reason to have it through a sub, since the view didn't need to react on it's change

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this doesn't look good to use app-db directly if you need access to db, better to dispatch an event and get db from event's cofx

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@flexsurfer It must not be a triggered event. re-frame cycles don't work well with the qr scanner component, there can be race conditions. That was the cause of that weird QR error on ios.

In any case there is probably a nicer solution, e.g. passing it as a param from one of the enclosing components.

But out of curiosity, is there any technical reason why you think this is bad, or just that it doesn't look pretty (on which we can agree)?

(cond-> {:from (ethereum/normalized-address from)
:to (ethereum/normalized-address to)
:value (ethereum/int->hex amount)
:gas (ethereum/int->hex gas)
:gasPrice (ethereum/int->hex gas-price)}
:gas (ethereum/int->hex (or gas optimal-gas))
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What are those? Does it address #7103 ?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, in fact it does. It is due to the requirements for the redesigned gas popup.

src/status_im/ui/screens/wallet/send/events.cljs Outdated Show resolved Hide resolved
@goranjovic
Copy link
Contributor Author

goranjovic commented Jan 28, 2019

Do you also plan to extract simple-tab-navigator, slide-up-modal, etc components to be used in other parts of the app ?

@dmitryn not at the moment, but if any designs in other screens require that, it would be easy to copy the code up in the hierarchy.

@goranjovic
Copy link
Contributor Author

goranjovic commented Feb 21, 2019

@antdanchenko Not in scope of this PR and something that we can fix separately. Is there a way you can temporarily disable that check?

Also, does it work on develop? There have been no changes in Sign message

@antdanchenko
Copy link
Contributor

@goranjovic I can disable it, but in that way we are going to introduce an issue in product + skipped test. Is that necessary?

@goranjovic
Copy link
Contributor Author

@antdanchenko
I see what's causing the issue and can post a small follow up PR to address it, but I'd really avoid expanding the scope of this PR to include Sign message as well. Seems like a lesser evil to me.

@statustestbot
Copy link

65% of end-end tests have passed

Total executed tests: 57
Failed tests: 20
Passed tests: 37

Failed tests (20)

Click to expand
1. test_copy_and_paste_messages

Device 1: Tap on StartNewChatButton
Device 1: Wait for PublicKeyEditBox

Device 1: 'PublicKeyEditBox' is not found on the screen

Device sessions

2. test_request_and_receive_tokens_in_1_1_chat

Device 2: Looking for a message by text: '0.022181258'
Device 2: Wait for ChatElementByText

Transaction with amount 0.022181258 is not found in list of transactions, address is e71c43413559e40ebcb602fb95c33662926cc000

Device sessions

3. test_public_chat_messaging

Device 1: Tap on PlusButton
Device 1: Wait for StartNewChatButton

Device 1: 'JoinPublicChatButton' is not found on the screen

Device sessions

4. test_open_chat_by_pasting_public_key

Device 1: Tap on PlusButton
Device 1: Wait for StartNewChatButton

Device 1: 'StartNewChatButton' is not found on the screen

Device sessions

5. test_add_to_contacts

Device 2: Tap on PlusButton
Device 2: Wait for StartNewChatButton

Device 2: 'StartNewChatButton' is not found on the screen

Device sessions

6. test_send_transaction_details_in_1_1_chat

Device 1: Looking for an element by text: 'ETHro'
Device 1: Looking for an element by text: '0.02218835'

Recipient name is not shown. Asset field doesn't contain 'ETHro' text. Amount is not visible

Device sessions

7. test_wallet_set_up

Device 1: Looking for an element by text: 'Remember this!'
Device 1: Looking for an element by text: 'You'll need to recognize this to ensure your transactions are safe. This combo is not stored in your account.'

Device 1: 'YesButton' is not found on the screen, also Unexpected Alert is shown: 'You'll need to recognize this to ensure your transactions are safe. This combo is not stored in your account.'

Device sessions

8. test_swipe_to_delete_public_chat

Device 1: Looking for ChatElement
Device 1: Wait for DeleteButton

Device 1: 'DeleteButton' is not found on the screen

Device sessions

9. test_send_emoji

Device 1: Tap on StartNewChatButton
Device 1: Wait for PublicKeyEditBox

Device 1: 'PublicKeyEditBox' is not found on the screen

Device sessions

10. test_messaging_in_different_networks

Device 1: Tap on PlusButton
Device 1: Wait for StartNewChatButton

Device 1: 'JoinPublicChatButton' is not found on the screen

Device sessions

11. test_send_tokens_in_1_1_chat

Device 2: Looking for a message by text: '0.022175124'
Device 2: Wait for ChatElementByText

Transaction with amount 0.022175124 is not found in list of transactions, address is 702995aa7dc6aad543661aab35494f4986022659

Device sessions

12. test_swipe_to_delete_1_1_chat

Device 1: Looking for ChatElement
Device 1: Wait for DeleteButton

Device 1: 'DeleteButton' is not found on the screen

Device sessions

13. test_send_stt_from_wallet

Device 1: Tap on SendButton
Device 1: Tap on GotItButton

Transaction with amount 0.02218928 is not found in list of transactions, address is f184747445c3B85CEb147DfB136067CB93d95F1D

Device sessions

14. test_send_eth_in_1_1_chat

Device 1: Tap on SendMessageButton
Device 1: Wait for SignTransactionButton

Device 1: 'ChooseRecipientButton' is not found on the screen

Device sessions

15. test_add_contact_from_public_chat

Device 1: Tap on PlusButton
Device 1: Wait for StartNewChatButton

Device 1: 'StartNewChatButton' is not found on the screen

Device sessions

16. test_offline_status

Device 1: Tap on PlusButton
Device 1: Wait for StartNewChatButton

Device 1: 'JoinPublicChatButton' is not found on the screen

Device sessions

17. test_unread_messages_counter_public_chat

Device 2: Type 'test message' to ChatMessageInput
Device 2: Tap on SendMessageButton

Device 1: 'Counter' is not found on the screen

Device sessions

18. test_sign_message_from_daap

Device 1: Tap on SignMessageButton
Device 1: Looking for full text: 'Test message'

Device 1: 'BaseElement' is not found on the screen

Device sessions

19. test_request_eth_in_wallet

Device 1: Tap on ChooseRecipientButton
Device 1: Looking for an element by text: 'Optimistic Gigantic Bagworm'

'SendTransactionView' object has no attribute 'recent_recipients_button'

Device sessions

20. test_backup_recovery_phrase_warning_from_wallet

Device 1: Wait for SendTransactionButton
Device 1: Wait for BackupRecoveryPhrase

'Backup your Recovery phrase' option is not shown on Wallet for an account with funds

Device sessions

Passed tests (37)

Click to expand
1. test_create_account
Device sessions

2. test_user_can_switch_network
Device sessions

3. test_filters_from_daap
Device sessions

4. test_send_transaction_from_daap
Device sessions

5. test_delete_cut_and_paste_messages
Device sessions

6. test_deploy_contract_from_daap
Device sessions

7. test_offline_login
Device sessions

8. test_pass_phrase_validation
Device sessions

9. test_password_in_logcat_sign_in
Device sessions

10. test_set_profile_picture
Device sessions

11. test_text_message_1_1_chat
Device sessions

12. test_unread_messages_counter_1_1_chat
Device sessions

13. test_logcat_send_transaction_from_daap
Device sessions

14. test_onboarding_screen_when_requesting_tokens_for_new_account
Device sessions

15. test_logcat_send_transaction_from_wallet
Device sessions

16. test_send_token_with_7_decimals
Device sessions

17. test_token_with_more_than_allowed_decimals
Device sessions

18. test_send_eth_from_wallet_to_address
Device sessions

19. test_manage_assets
Device sessions

20. test_logcat_send_transaction_in_1_1_chat
Device sessions

21. test_request_and_receive_eth_in_1_1_chat
Device sessions

22. test_passphrase_whitespaces_ignored_while_recovering_access
Device sessions

23. test_logcat_recovering_account
Device sessions

24. test_network_mismatch_for_send_request_commands
Device sessions

25. test_logcat_sign_message_from_daap
Device sessions

26. test_switch_users_and_add_new_account
Device sessions

27. test_login_with_new_account
Device sessions

28. test_send_eth_from_wallet_to_contact
Device sessions

29. test_send_request_not_enabled_tokens
Device sessions

30. test_send_message_to_newly_added_contact
Device sessions

31. test_password_in_logcat_creating_account
Device sessions

32. test_backup_recovery_phrase
Device sessions

33. test_open_google_com_via_open_dapp
Device sessions

34. test_user_can_remove_profile_picture
Device sessions

35. test_share_contact_code_and_wallet_address
Device sessions

36. test_refresh_button_browsing_app_webview
Device sessions

37. test_recover_account
Device sessions

@goranjovic goranjovic force-pushed the feature/wallet-choose-address-contact-6843 branch from d7593f8 to 786b196 Compare February 21, 2019 08:59
@statustestbot
Copy link

95% of end-end tests have passed

Total executed tests: 56
Failed tests: 3
Passed tests: 53

Failed tests (3)

Click to expand
1. test_request_and_receive_tokens_in_1_1_chat

Device 2: Looking for a message by text: '0.02211072'
Device 2: Wait for ChatElementByText

Transaction with amount 0.02211072 is not found in list of transactions, address is e71c43413559e40ebcb602fb95c33662926cc000

Device sessions

2. test_send_tokens_in_1_1_chat

Device 2: Looking for a message by text: '0.022110443'
Device 2: Wait for ChatElementByText

Transaction with amount 0.022110443 is not found in list of transactions, address is 702995aa7dc6aad543661aab35494f4986022659

Device sessions

3. test_send_stt_from_wallet

Device 1: Tap on SendButton
Device 1: Tap on GotItButton

Transaction with amount 0.0221102446 is not found in list of transactions, address is f184747445c3B85CEb147DfB136067CB93d95F1D

Device sessions

Passed tests (53)

Click to expand
1. test_create_account
Device sessions

2. test_user_can_switch_network
Device sessions

3. test_filters_from_daap
Device sessions

4. test_copy_and_paste_messages
Device sessions

5. test_send_transaction_from_daap
Device sessions

6. test_delete_cut_and_paste_messages
Device sessions

7. test_deploy_contract_from_daap
Device sessions

8. test_offline_login
Device sessions

9. test_pass_phrase_validation
Device sessions

10. test_public_chat_messaging
Device sessions

11. test_open_chat_by_pasting_public_key
Device sessions

12. test_password_in_logcat_sign_in
Device sessions

13. test_set_profile_picture
Device sessions

14. test_text_message_1_1_chat
Device sessions

15. test_add_to_contacts
Device sessions

16. test_unread_messages_counter_1_1_chat
Device sessions

17. test_logcat_send_transaction_from_daap
Device sessions

18. test_onboarding_screen_when_requesting_tokens_for_new_account
Device sessions

19. test_logcat_send_transaction_from_wallet
Device sessions

20. test_send_token_with_7_decimals
Device sessions

21. test_token_with_more_than_allowed_decimals
Device sessions

22. test_send_eth_from_wallet_to_address
Device sessions

23. test_send_transaction_details_in_1_1_chat
Device sessions

24. test_manage_assets
Device sessions

25. test_wallet_set_up
Device sessions

26. test_logcat_send_transaction_in_1_1_chat
Device sessions

27. test_request_and_receive_eth_in_1_1_chat
Device sessions

28. test_swipe_to_delete_public_chat
Device sessions

29. test_passphrase_whitespaces_ignored_while_recovering_access
Device sessions

30. test_send_emoji
Device sessions

31. test_logcat_recovering_account
Device sessions

32. test_messaging_in_different_networks
Device sessions

33. test_network_mismatch_for_send_request_commands
Device sessions

34. test_logcat_sign_message_from_daap
Device sessions

35. test_swipe_to_delete_1_1_chat
Device sessions

36. test_switch_users_and_add_new_account
Device sessions

37. test_send_eth_in_1_1_chat
Device sessions

38. test_login_with_new_account
Device sessions

39. test_send_eth_from_wallet_to_contact
Device sessions

40. test_add_contact_from_public_chat
Device sessions

41. test_send_request_not_enabled_tokens
Device sessions

42. test_send_message_to_newly_added_contact
Device sessions

43. test_password_in_logcat_creating_account
Device sessions

44. test_backup_recovery_phrase
Device sessions

45. test_offline_status
Device sessions

46. test_open_google_com_via_open_dapp
Device sessions

47. test_unread_messages_counter_public_chat
Device sessions

48. test_user_can_remove_profile_picture
Device sessions

49. test_share_contact_code_and_wallet_address
Device sessions

50. test_request_eth_in_wallet
Device sessions

51. test_refresh_button_browsing_app_webview
Device sessions

52. test_backup_recovery_phrase_warning_from_wallet
Device sessions

53. test_recover_account
Device sessions

@goranjovic
Copy link
Contributor Author

goranjovic commented Feb 21, 2019

Closing this PR and leaving the branch, with the intention to scavenge the changes into separate PRs with the following goals:

  • decouple Sign Message from Send Transaction
  • decouple Request Transaction from Sign Transaction (both decouplings needed in order to merge the Send screens in isolation - keeping the pr scope in check)
  • Fix QR scanner by removing its dependence on re-frame and have it only use atoms
  • reintroduce the new Send flow screens
  • cleanup after

@goranjovic goranjovic closed this Feb 21, 2019
@goranjovic
Copy link
Contributor Author

Branch kept intentionally. Please do not delete it. If you do delete it, please undo :)

@churik
Copy link
Member

churik commented Feb 21, 2019

@goranjovic
Tested on last build from #7263 (comment)

Another set of issues/questions:
1) When typing ENS or wallet address on IOS on "Send Amount" screen, then tap on Next - invalid address is shown, only after the second tap you can proceed
Severity: normal
Video: https://take.ms/G2qIL

2) When open "scan" on "Send to" screen black squares are shown on the corners
Severity: low
235

3) Scan QR on Android leads to nth is not supported on this type of cljs.com/PersistentHashMap
Severity: critical
On Android I even can't scan QR - app is returning an error nth is not supported on this type of cljs.com/PersistentHashMap
Steps:

  • on IOS: go to wallet, tap on Deposit
  • on Android (my device is Android 8, LG V20) go to wallet, tap on Send and try to scan QR from IOS
    ntch

4) #7541 is also reproducible if you paste amount from clipboard

Monosnap screenshot tool
Monosnap — the best tool to take & share your screenshots.

@annadanchenko
Copy link

@goranjovic for future pr(s) regarding wallet re-design: amount length is limited to 20 chars that is not enough, e.g want to send 121,123456789012345678 but can't type such amount

@goranjovic
Copy link
Contributor Author

@churik @annadanchenko Good to know, thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
No open projects
Archived in project
Development

Successfully merging this pull request may close these issues.

New choose address/contact in wallet send transaction