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

Mobile: Add request-specific timeouts to quorum #903

Merged
merged 2 commits into from
Jan 10, 2019

Conversation

cvarley100
Copy link
Contributor

@cvarley100 cvarley100 commented Jan 10, 2019

Description

  • Adds timeouts for specific API requests with quorum

Type of change

  • Enhancement (a non-breaking change which adds functionality)

How Has This Been Tested?

Timeout values tested extensively through scripting. Tested in app 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
  • 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

@cvarley100 cvarley100 merged commit 31274f9 into mobile-0.6.0-alpha-quorum Jan 10, 2019
@rajivshah3 rajivshah3 deleted the feat/quorum-timeouts branch January 10, 2019 01:12
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>
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants