Skip to content
This repository has been archived by the owner on Jun 7, 2023. It is now read-only.

Fix findSyncedNodes implementation #915

Conversation

laumair
Copy link
Contributor

@laumair laumair commented Jan 15, 2019

Description

#findSyncedNodes wasn't removing unsynced nodes from selectedNodes in one case. This bug could've lead to unnecessary delays. This PR fixes the issue and removes unsynced nodes from selectedNodes in each iteration.

Type of change

  • Bug fix

How Has This Been Tested?

  • Manually tested on iOS

Checklist:

  • My code follows the style guidelines for this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • For changes to mobile that include native code (including React Native modules): I have verified that both iOS and Android successfully build in both Debug and Release modes
  • For changes to shared: If applicable, I have verified that my changes are implemented correctly in desktop and mobile

findSyncedNodes wasn't filtering unsynced nodes from selected nodes in one case. This commit fixes the issue.
@laumair laumair added T - Bug Type - Bug: Something isn't working C - Shared L - Need reviews Lifecycle - Each PR must have at least two reviewers E - Performance Epic - Performance related labels Jan 15, 2019
@cvarley100 cvarley100 merged commit 8cd9eb6 into iotaledger:mobile-0.6.0-alpha-quorum Jan 15, 2019
cvarley100 added a commit that referenced this pull request Jan 15, 2019
* Mobile: Fix bar colours

* Mobile: Add new receive page UI

* Mobile: Clear timeouts on unmount

* Mobile: Adjust receive page animations

* Mobile: Rename component

* Mobile: Fix progress bar on fingerprint authentication

* Mobile: Fix topbar spacing

* Mobile: Fix topbar opacity when disabled

* Mobile: Fix Android alert padding when modal is open

* Shared: Localise strings

* Mobile: Update transaction history modal buttons

* Mobile: Adjust topbar scrollable

* Node Quorum (#631)

* Implement quorum for wereAddressesSpentFrom

* Simply #findSyncedNodes implementation

* Add quorum support for getBalances IRI endpoint

* Minor updates

- Add quorum support for getTrytes IRI endpoint
- Minor clean up in quorum methods

* Add quorum support for findTransactions IRI endpoint

* Rename quorum methods for better readability

* Integrate quorum methods with extended api

* Remove findTransactions & getTrytes endpoints from quorum

* Refactor quorum implementation and do minor fixes

- Update JSDoc typos
- Simplify quorum implementation (Remove duplications)
- Add a timeout for network request to each node
- Fix issues in findSyncedNodes implementation
- Update error messages

* Add coverage
- Add coverage for #determineQuorumResult
- Add coverage for #fallbackToSafeResult
- Add coverage for #findSyncedNodes

* Add empty payload checks in quorum methods

* Wrap percentage calculation in parentheses for clarity

Co-Authored-By: laumair <aquadestructor@icloud.com>

* Use develop branch of iota.lib.js

* Enforce quorum (by default) on supported methods

* Fix tests failing because of quorum enforcement

* Add code documentation and rename parameters & variables for clarity

- Related discussion #631 (comment)

* [Security] Bump cryptiles from 3.1.2 to 3.1.4 (#829)

* [Security] Bump nokogiri from 1.8.4 to 1.9.1 in /src/mobile/android (#828)

* Make sure accounts are always iterated in correct order (by account index) (#824)

Object.keys(<object>) function does not always preseve the order, especially if the object key starts with a number. This causes an issue when Object.keys is used for iterating on account names. #715 adds account indexes to state to make sure the order of accounts is always intact. However, some components in desktop use Object.keys directly on accounts object, which leads to certain issues of incorrect references to accounts. This commit fixes this issue by replacing Object.keys implementation on accounts with getAccountNamesFromState selector that guarantees the accounts order.

Fixes #811

Note that the issues Object.keys create are not always noticeable. Steps to reproduce these issues are:

- Add account with name "M"
- Add another account with name "0"
- Notice account names order in sidebar (Instead of "0" being the second account, it becomes the first)
- Generate receive address from account "M" (Instead of generating receive address for account "M", it generates receive address for account "0")

* New Crowdin translations [ci skip] (#826)

* New translations translation.json (Czech)

* New translations translation.json (Czech)

* New translations translation.json (Japanese)

* New translations translation.json (Spanish)

* Mobile: Update findSyncedNodes

* Update quorum.js

* Improve parameters and variable names

* Include custom nodes in quorum nodes

* Reduce node request timeout for getNodeInfo api calls (in quorum)

* Mobile: Minor cleanup

* Mobile: Bump build numbers for release v0.6.0 (33) (#808)

* Mobile: Bump build no

* Mobile: Bump build numbers for release 0.6.0 (35) (#844)

* Mobile: Fix account name opacity during certain tasks

* Mobile: Adjust chart animations

* Mobile: Adjust chart timeframe order

* Mobile: Fix View Addresses scrollable area

* Fix failing tests (#879)

* Mobile: Fix issues with animations in settings (#881)

* Mobile: Fix settings animations issues

* Mobile: Fix settings animations issues

* Mobile: Fade out on logout

* Mobile: Fix login animation direction

* Mobile: Remove unused prop

* Mobile: Fix notification icon when modal is open

* Mobile: Fix retry text opacity during promotion

* Quorum refinements (#884)

* Remove unnecessary node sync checks

With quorum integration, some node sync checks are now unnecessary as quorum will ensure we always query synced nodes. This commit removes these checks.

* Use default timeout for getNodeInfo while checking node's health

* Disable quorum for getLatestInclusion (#900)

- Add node health checks for account sync utils because getLatestInclusion support for quorum is (temporarily) disabled.

* Mobile: Add request-specific timeouts to quorum

* Mobile: Add request-specific timeouts to quorum (#903)

* Mobile: Add request-specific timeouts to quorum

* Mobile: Update GET_NODE_INFO_REQUEST_TIMEOUT in config

* Alpha 0.6.0 (36) Release (#904)

* Mobile: Add request-specific timeouts to quorum

* Mobile: bump build no

* Fix findSyncedNodes implementation (#915)

findSyncedNodes wasn't filtering unsynced nodes from selected nodes in one case. This commit fixes the issue.

* Fix modal layout issues on Android and iPhone X (#916)

* Mobile: Add request-specific timeouts to quorum

* Mobile: Fix modal layout issues and refactor

* Update src/mobile/src/ui/components/ModalView.js

Co-Authored-By: cvarley100 <cvarley100@gmail.com>
This was referenced Jan 15, 2019
@laumair laumair deleted the hotfix/find-synced-nodes branch February 15, 2019 10:13
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
C - Shared E - Performance Epic - Performance related L - Need reviews Lifecycle - Each PR must have at least two reviewers T - Bug Type - Bug: Something isn't working
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants