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/transaction signals #8221

Closed

Conversation

yenda
Copy link
Contributor

@yenda yenda commented May 15, 2019

fixes #8151

  • remove the transaction fetching loop entirely to rely only on subscriptions
    for live transactions and token transfer updates

  • fetch token transfers history via etherscan API to lift the 100000 blocks
    limit on token transfers history

  • inbound token transfers are caught via a filter on ethlogs

  • outbound token transfers and other transactions are caught by filtering
    transaction in the current block that have the wallet address as to or from field

Tests

This affects the transaction history. It should also affect the transaction messages in chat (they should update more frequently, not test yet).

Tested on Android:

  • send and receive eth and token transactions, they should show up in the transactions list as soon as they are added to the blockchain

status: ready

@yenda yenda self-assigned this May 15, 2019
@status-github-bot
Copy link

status-github-bot bot commented May 15, 2019

Pull Request Checklist

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

@yenda yenda force-pushed the feature/transaction-signals branch 2 times, most recently from 1adf195 to 2ad6956 Compare May 15, 2019 20:49
@status-im-auto
Copy link
Member

status-im-auto commented May 15, 2019

Jenkins Builds

Click to see older builds (24)
Commit #️⃣ Finished (UTC) Duration Platform Result
2ad6956 #3 2019-05-15 20:54:23 ~4 min macos 📄 log
2ad6956 #3 2019-05-15 20:54:34 ~4 min windows 📄 log
2ad6956 #3 2019-05-15 20:54:49 ~4 min ios 📄 log
2ad6956 #3 2019-05-15 20:54:49 ~4 min linux 📄 log
2ad6956 #3 2019-05-15 20:59:54 ~10 min android-e2e 📄 log
2ad6956 #3 2019-05-15 21:00:03 ~10 min android 📄 log
8232dd6 #4 2019-05-15 21:03:57 ~4 min ios 📄 log
8232dd6 #4 2019-05-15 21:04:28 ~4 min linux 📄 log
8232dd6 #4 2019-05-15 21:04:32 ~4 min macos 📄 log
8232dd6 #4 2019-05-15 21:05:02 ~5 min windows 📄 log
8232dd6 #4 2019-05-15 21:07:49 ~7 min android-e2e 📄 log
8232dd6 #4 2019-05-15 21:11:52 ~12 min android 📄 log
✔️ fde33d3 #5 2019-05-15 22:13:07 ~15 min linux 📦 App
✔️ fde33d3 #5 2019-05-15 22:14:24 ~16 min windows 📦 exe
✔️ fde33d3 #5 2019-05-15 22:16:10 ~18 min android 📦 apk
✔️ fde33d3 #5 2019-05-15 22:17:15 ~19 min android-e2e 📦 apk
✔️ fde33d3 #5 2019-05-15 22:18:27 ~20 min macos 📦 dmg
✔️ fde33d3 #5 2019-05-15 22:21:46 ~23 min ios 📦 ipa
✔️ 34409c5 #6 2019-05-15 22:38:41 ~17 min android 📦 apk
✔️ 34409c5 #6 2019-05-15 22:38:48 ~17 min linux 📦 App
✔️ 34409c5 #6 2019-05-15 22:39:35 ~18 min macos 📦 dmg
✔️ 34409c5 #6 2019-05-15 22:40:50 ~19 min windows 📦 exe
✔️ 34409c5 #6 2019-05-15 22:41:26 ~20 min android-e2e 📦 apk
✔️ 34409c5 #6 2019-05-15 22:47:48 ~26 min ios 📦 ipa
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ 3c34d61 #8 2019-05-16 17:11:31 ~16 min linux 📦 App
✔️ 3c34d61 #8 2019-05-16 17:13:11 ~17 min macos 📦 dmg
✔️ 3c34d61 #8 2019-05-16 17:16:07 ~20 min windows 📦 exe
✔️ 3c34d61 #8 2019-05-16 17:18:54 ~23 min ios 📦 ipa
✔️ 3c34d61 #8 2019-05-16 17:22:01 ~26 min android 📦 apk
✔️ 3c34d61 #8 2019-05-16 17:22:10 ~27 min android-e2e 📦 apk
✔️ e672c7a #9 2019-05-17 01:55:11 ~19 min android-e2e 📦 apk
✔️ e672c7a #9 2019-05-17 01:56:18 ~20 min macos 📦 dmg
✔️ e672c7a #9 2019-05-17 01:59:00 ~23 min ios 📦 ipa
✔️ e672c7a #9 2019-05-17 02:00:13 ~24 min android 📦 apk
✔️ e672c7a #9 2019-05-17 02:06:00 ~30 min linux 📦 App
✔️ e672c7a #9 2019-05-17 02:13:03 ~37 min windows 📦 exe

@yenda yenda force-pushed the feature/transaction-signals branch from 2ad6956 to 8232dd6 Compare May 15, 2019 20:59
@yenda yenda added the wallet label May 15, 2019
@yenda yenda force-pushed the feature/transaction-signals branch 2 times, most recently from fde33d3 to 34409c5 Compare May 15, 2019 22:21
@status-im-auto
Copy link
Member

✔️ status-react/prs/ios/PR-8221#5 🔹 ~23 min 🔹 fde33d3 🔹 📦 ios package

@yenda yenda force-pushed the feature/transaction-signals branch from 34409c5 to 3c34d61 Compare May 16, 2019 16:52
@yenda yenda changed the base branch from develop to feature/token-transaction-signals May 16, 2019 16:55
@yenda yenda marked this pull request as ready for review May 16, 2019 16:57
@yenda yenda force-pushed the feature/token-transaction-signals branch from f9a126e to e10d59e Compare May 17, 2019 01:34
- remove the transaction fetching loop entirely to rely only on subscription
for live transactions and token transfer updates
- fetch token transfers history via etherscan API to lift the 100000 blocks
limit on token transfers history

- inbound token transfers are catched via a filter on ethlogs
- outbound token transfers and other transactions are catched by filtering
transaction in current block that have the wallet address as to or from field
@yenda yenda force-pushed the feature/transaction-signals branch from 3c34d61 to e672c7a Compare May 17, 2019 01:35
@yenda yenda requested review from antdanchenko, churik and a team as code owners May 17, 2019 01:35
@yenda
Copy link
Contributor Author

yenda commented May 17, 2019

@siphiuel @flexsurfer @jeluard please review

@statustestbot
Copy link

98% of end-end tests have passed

Total executed tests: 49
Failed tests: 1
Passed tests: 48

Failed tests (1)

Click to expand
1. test_offline_status

Device 1: Type 'qwerty' to PasswordInput
Device 1: Tap on SignInButton

Device 1: 'PlusButton' is not found on the screen, also Unexpected Alert is shown: 'TypeError: Network request failed'

Device sessions

Passed tests (48)

Click to expand
1. test_block_user_from_public_chat
Device sessions

2. test_filters_from_daap
Device sessions

3. test_copy_and_paste_messages
Device sessions

4. test_send_transaction_from_daap
Device sessions

5. test_request_and_receive_tokens_in_1_1_chat
Device sessions

6. test_deploy_contract_from_daap
Device sessions

7. test_open_transaction_on_etherscan
Device sessions

8. test_public_chat_messaging
Device sessions

9. test_password_in_logcat_sign_in
Device sessions

10. test_text_message_1_1_chat
Device sessions

11. test_add_to_contacts
Device sessions

12. test_sign_typed_message (TestRail link is not found)
Device sessions

13. test_unread_messages_counter_1_1_chat
Device sessions

14. test_logcat_send_transaction_from_daap
Device sessions

15. test_send_message_in_group_chat
Device sessions

16. test_logcat_send_transaction_from_wallet
Device sessions

17. test_send_token_with_7_decimals
Device sessions

18. test_modify_transaction_fee_values
Device sessions

19. test_send_eth_from_wallet_to_address
Device sessions

20. test_manage_assets
Device sessions

21. test_logcat_send_transaction_in_1_1_chat
Device sessions

22. test_request_and_receive_eth_in_1_1_chat
Device sessions

23. test_swipe_to_delete_public_chat
Device sessions

24. test_send_emoji
Device sessions

25. test_search_chat_on_home
Device sessions

26. test_logcat_recovering_account
Device sessions

27. test_messaging_in_different_networks
Device sessions

28. test_send_tokens_in_1_1_chat
Device sessions

29. test_network_mismatch_for_send_request_commands
Device sessions

30. test_logcat_sign_message_from_daap
Device sessions

31. test_swipe_to_delete_1_1_chat
Device sessions

32. test_switch_users_and_add_new_account
Device sessions

33. test_send_stt_from_wallet
Device sessions

34. test_send_eth_in_1_1_chat
Device sessions

35. test_login_with_new_account
Device sessions

36. test_send_eth_from_wallet_to_contact
Device sessions

37. test_add_contact_from_public_chat
Device sessions

38. test_send_two_transactions_one_after_another_in_dapp
Device sessions

39. test_password_in_logcat_creating_account
Device sessions

40. test_backup_recovery_phrase
Device sessions

41. test_open_google_com_via_open_dapp
Device sessions

42. test_unread_messages_counter_public_chat
Device sessions

43. test_sign_message_from_daap
Device sessions

44. test_user_can_remove_profile_picture
Device sessions

45. test_share_contact_code_and_wallet_address
Device sessions

46. test_request_eth_in_wallet
Device sessions

47. test_refresh_button_browsing_app_webview
Device sessions

48. test_backup_recovery_phrase_warning_from_wallet
Device sessions

@churik
Copy link
Member

churik commented May 17, 2019

@yenda
I have several questions:

  • PR is related to performance.
  1. Can you elaborate please on what screens / states are improvements to have some base for comparison and what exactly was improved?
  2. Would be nice to have some clues about how it is possible to measure.
    If not - I'll try to use smth similar to [experiment] disable all svg icons #8195 (comment)
    Please, tell me if you consider that this approach is not useful here.

And also I by mistake tested #8224 instead of this PR, so issues are here: #8224 (comment)
Because this PR contains #8224 the same is here.

@yenda
Copy link
Contributor Author

yenda commented May 17, 2019

@churik testing #8224 is fine it's the next after this one, thanks for the feedback I'll take care of it today.

  1. in the transaction history screen, new transactions should appear sometimes more than 10 seconds before current develop.
  2. Besides new transactions appearing faster, it could be interesting to measure data consumption (without joining any chat to reduce noise)

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.

6 participants