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

Mobile: Add retry button, error log and change node to Realm migration #1041

Merged
merged 6 commits into from
Feb 8, 2019

Conversation

cvarley100
Copy link
Contributor

Description

  • Adds retry button, error log and change node to Realm migration

Type of change

Please delete options that are not relevant.

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

How Has This Been Tested?

Tested on iOS simulator

Checklist:

Please delete items that are not relevant.

  • 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
  • For changes to shared: If applicable, I have verified that my changes are implemented correctly in desktop and mobile

@rajivshah3 rajivshah3 added T - Enhancement New feature or request C - Mobile labels Feb 7, 2019
src/mobile/src/ui/components/Migration.js Outdated Show resolved Hide resolved
src/mobile/src/ui/components/Migration.js Outdated Show resolved Hide resolved
@cvarley100 cvarley100 merged commit a3ce40e into feature/realm Feb 8, 2019
This was referenced Feb 8, 2019
@rajivshah3 rajivshah3 deleted the enhance/mobile-migration branch February 8, 2019 19:33
rihardsgravis pushed a commit that referenced this pull request Feb 13, 2019
* feature/realm:
  Realm Database implementation desktop bugfixes (#1025)
  Mobile Release 0.6.1 (42) (#1048)
  Mobile: Add retry button, error log and change node to Realm migration (#1041)
  Update isFailedTransaction prop when modal props are updated (#1046)
  Correctly assign new account name in realm storage (#1045)

# Conflicts:
#	src/desktop/src/index.js
#	src/desktop/src/ui/views/settings/Advanced.js
rihardsgravis pushed a commit that referenced this pull request Feb 18, 2019
* feature/realm: (114 commits)
  Desktop: Realm implementation fixes (#1096)
  Add migration retry and node change functionality (#1094)
  Mobile: Readd react-native-translucent-moddal (#1083)
  Fix invalid address data issue (#1089)
  Fix account duplication on account rename operation (#1077)
  Desktop: Create Migration component to migrate data (#857)
  Realm Database implementation desktop bugfixes (#1025)
  Mobile Release 0.6.1 (42) (#1048)
  Mobile: Add retry button, error log and change node to Realm migration (#1041)
  Update isFailedTransaction prop when modal props are updated (#1046)
  Correctly assign new account name in realm storage (#1045)
  Shared: Only rebuild Realm on Debian
  Mobile Release 0.4.1 (41) (#1029)
  Realm data encryption (#1018)
  Check for undefined addressData prop before updating address data in realm
  Make sure we fetch persisted account indexes from realm
  Refactor #getFullAddressHistory tests
  Preserve local spend status before updating account data in realm
  Fix invalid bundle construction for failed transactions
  Remove primary key (address) from AddressSchema
  ...

# Conflicts:
#	src/desktop/npm-shrinkwrap.json
cvarley100 pushed a commit that referenced this pull request Feb 19, 2019
* Mobile: Add and link Realm

* Shared: Define some schemas

* Update schemas

* Mobile/iOS: Update pbxproj

* Move realm to shared

* Shared: Store chart data in realm

* Bug fix

* Change input selection

* Add coverage for #prepareInputs

* Fix lockfile

* Clean up #getInputs and related utils

* Remove unused utils #getOutgoingTransfersForAddresses & #getPendingOutgoingTransfersForAddresses

* Update coverage for libs/iota/addresses

* Add coverage for #getInputs

* Fix failing tests in libs/iota/transfers

* Update test coverage for actions/transfers

* Remove realm & redux-persist-realm dependency from mobile directory

* Avoid passing Realm constructor to state actions

* Setup base for realm

* Update schema

- Add Wallet schema
- Add Account schema
- Update Transaction schema
- Update Address schema

* Add a selector for selecting bundles for auto promotion

* Add some storage (realm) to state (redux) mappers

* Consume storage to state mapper for restoring state when mobile app intialises

* Allow purging realm storage on wallet reset

* Migrate to realm for account state for a new/fresh account

* Migrate account deletion & account name change to realm

* Integrate realm with mobile's entry point

* Integrate account syncs, polling, snapshot transition with realm storage

* Add maxInputs property to SeedVault class and use it during input selection

* Migrate accounts (transaction & addresses) related data management from AsyncStorage to realm

* Mobile: Relink Realm

* Add realm binaries to gitignore

* Clean up transaction utils and update test coverage

- Remove transaction util #categoriseTransactionsByPersistence
- Remove transaction util #transformTransactionsByBundleHash
- Remove transaction util #isValidTransactionSync
-  Remove transaction util #isValidTransactionAsync
- Remove transaction util #filterInvalidTransactionsSync
- Remove transaction util #filterInvalidTransactionsAsync
- Remove transaction util #prepareForAutoPromotion
- Remove transaction util #getPendingTxTailHashes
- Remove transaction util #markTransfersConfirmed
- Remove transaction util #getConfirmedTransactionHashes
- Remove transaction util #mergeNewTransfers
- Remove transaction util #getBundleHashesForNewlyConfirmedTransactions
- Remove transaction util #isStillAValidTransaction
- Remove transaction util #getOwnTransactionHashes
- Remove transaction util #pickNewTailTransactions

* Remove unnecessary tests for reducers/accounts

* Make maxInputs a read-only property of SeedVault class

* Fix some unit tests for libs/iota/addresses

* Remove unnecessary check for remainder transaction when inputs are categorised

Some bundles (e.g., MECOSAGPFIHBAJQBBX9HUJRNJEKRVNRJBHEBWYPD9H9IKBFEJZCRLLFYLLILEUHCUNYEHBEQARWNHFWBC)
are not properly categorised into inputs/outputs. This is because input transactions of such bundles have currentIndex === lastIndex.

This commit removes the unnecessary checks on inputs (restricting them to be non-remainder transactions). Categorisation of a bundle to inputs/outputs should only be based on negative/non-negative value.

 # Please enter the commit message for your changes. Lines starting

* [Realm] Node schema (#499)

* Shared: Add node schema

* Refactor and add tests

* Remove unnecessary import

* Make maxInputs a read-only property of SeedVault class

* Migrate settings redux reducer to realm

* Simplify theming state management

Currently, we store both theme object and theme name in settings reducer. This commit simplifies the theme setup by removing theme object from state and using a state selector for passing active theme object to all UI components. This also avoids storing theme object in persistent storage.

* Remove ChartDataSchema, DataForTimeframeSchema, DataPointSchema

* Use theme selector for injecting theme object to all UI components (mobile & shared)

* Migrate node and currency related state management to realm

* Update test coverage for settings reducer

* Fix typo

* Fix test coverage for libs/iota/addresses

* Fix transactions schema and related tests

* Add auto migration from AsyncStorage to Realm storage

This commit adds the ability for the wallet to automatically migrate (accounts & settings) data from old (AsyncStorage) to Realm storage. After login, users will automatically be redirected to the migration screen (on mobile) where behind the scenes, auto migration will be performed. On successful migration, users will be redirected to the dashboard.

* Minor fixes

- Fix balance display for accounts in TopBar (mobile)
- Fix reference to address data in ViewAddresses (mobile)
- Fix some failing tests
- Refactor tests for actions/transfers/makeTransaction

* Minor fixes

- Fix failing tests
- Fix some iota utils

* Make sure getInput stubs return an object and not an array of inputs

* Upgrade Snyk and whitelist vulnerability (#630)

* Upgrade Snyk

* Whitelist vulnerability, this cannot be easily patched and Trinity is not vulnerable

* Upgrade to React Native 0.57 (#438)

* Mobile: Update to React Native 0.56

* Mobile: Clean up RN update

* Mobile: Remove react-native-keyboard-aware-scroll-view

* Mobile: Fix Android keyboard avoidance

* Mobile: Fix chart interpolation Android

* Mobile: Fix Android account name cut-off

* Mobile: Upgrade React Native to 0.57

* Bug fixes

* Bug fixes

* Mobile: Fix hidden back button

* Update lockfile

* Mobile: Re-add JVM args

* Mobile: Add babel-plugin-jest-hoist to fix Bugsnag mocks

* Shared: Fix babel-related mocha issues

* Remove unnecessary patches

* Update lockfile

* Mobile: Apply forwardRef fix

* Mobile: Fix failing Balance test

* Mobile: Revert unintended changes

* Mobile: Re-add react-native-vector-icons patch

* Remove unnecessary babel files/deps

* Fix module-resolver, ignore some YellowBox warnings

* Shared: Revert redux-persist upgrade

* Make sure greenkeeper does not update redux-persist

* Shared: Revert React update

* Revert "Merge branch 'hotfix/revert-upgrade' into chore/rn-0.57"

This reverts commit 3b5a8e7, reversing
changes made to a6bbbbb.

* Mobile: Bump to React Native 0.57.5, React 16.6.1

* Revert unnecessary change [ci skip]

* Upgrade react-native-vector-icons

Closes #603

* Upgrade react-native-navigation

* Use new Xcode build system

* Mobile: Fix Android build

* Mobile: Fix failing test

* Mobile: Revert RNN upgrade, revert to legacy build system

* Mobile: Cherry pick wix/react-native-navigation@ab2f335 for RN 0.57 support

* Mobile: Fix typo in gradlew.bat

* Finalise Realm instantiation  (#777)

* Import realm from mobile directory instead of directly importing it from shared

* Finalize realm usage for desktop, mobile & test environments

* Disable realm analytics reports

* Fix failing tests and warnings for mobile

* Use detectOpenHandles argument for jest tests

* Force exit mocha tests

* Fix incorrect refs & add realm initialisation setup for desktop

* Show desktop window only after persisted state has been restored

* Send payload only if provided

* Shared: Rebuild realm after installing dependencies (#842)

* Remove undefined i18next translate function from progressSteps

* Update prepateTransferArray implementation to accept addressData as an array instead of an object

* Minor fixes and updates

- Remove manual state rehydration from src/desktop/src/index.js
- Pass in theme object to UnitInfoModal
- Fix JSDocs for addCustomNodeSuccess action creator
- Fix notificationFn trigger in syncAccount
- Relocate mapNormalisedTransactions util

* Always find transaction hashes diff from transactions with own addresses

* Update UI for migration screen

* Assign index & meta to account object during migration

* Use buildNumber for detecting & triggering redux->realm migration

* Shared: Ignore chownr vulnerability in Snyk

* Desktop: Realm Database implementation Desktop fixes (#874)

* Desktop related fixes:
- Fix balance setting in `Balance` and `Sidebar` components
- Fix latest address retrieval
- Fix notification function
- Fix List component transaction list retrieval

* Remove `reverse` from account address list

* Mobile: Resolve lint errors

* Revert 5291972 and fix eslint config (see eslint/eslint#11231)

* Fix failing tests for libs/iota/accounts

* Fix checksum for latestAddressObject & add a separate constant for latestAddressBalance

* Fix attachAndFormatAddresses util implementation

* Mobile: Fix migration step strings

* Mobile: Update prop types

* Shared: Fix documentation for delete and addNodes

* Remove hash as a primary key from Transaction schema

* Add realm-object-server/ to gitignore

* Bump realm to v2.21.1

* Update Transaction schema

- Add attachmentTimestamp
- Add attachmentTimestampLowerBound
- Add attachmentTimestampUpperBound
- Add obsoleteTag

* Minor fixes

- Map correct persistence to normalised transactions
- Fix parameters for constructBundleFromTransactions util

* Minor fixes

- Make completedMigration a required prop in Login & Migration component
- Make sure missing properties like completedMigration are correctly mapped to redux store on entry

* Include version check on app entry

* Minor fixes and updates

- Update method description for realm Wallet class method updateLatest
- Rename setMigrationStatus action creator to setRealmMigrationStatus

* Desktop: Realm Database - remove redux persist settings dependency (#877)

* Update tray application state sync and initialisation

* Update Proxy settings to use separate electronSettings entry

* Shared: Fix periodically failing sortTransactionTrytesArray test (#878)

* Shared: Fix periodically failing sortTransactionTrytesArray test

* Shared: Make recommended changes

* Remove unnecessary assert statements

* Fix skipped tests for #isNodeHealthy

* Fix skipped tests

* Update build number check realm migration detection

* Update build number to 40 for migration detection check

* Add missing getCustomNodesFromState state selector

* Pass nodes array in correct format to quorum methods

* Migrate accountIndex property for account from AsyncStorage to realm

* Remove primary key (address) from AddressSchema

* Fix invalid bundle construction for failed transactions

* Preserve local spend status before updating account data in realm

* Refactor #getFullAddressHistory tests

* Make sure we fetch persisted account indexes from realm

* Check for undefined addressData prop before updating address data in realm

* Realm data encryption (#1018)

* Add base setup for realm data encryption

* Pass #getEncryptionKeyPromise when storage is reinitialised

* Store realm encryption key in keychain

* Initialise realm instance with encryption key in tests

* Store realm encryption key in keychain

* Address comments

- Remove base64-js
- Perform Uint8Array to string conversions with vanilla JS

* Skip realm encryption key to be reset on password change

* Simplify #getEncryptionKey implementation

* Update build number to 41 for migration detection check

* Mobile: Fix notification icon touch radius

* Include isRetryingFailedTransaction in modalProps when modalProps are updated

* Move manual bundle construction implementation (for failed transactions) in constructBundlesFromTransactions

* Mobile: Fix iPhone X modal visual bug

* Mobile Release 0.4.1 (41) (#1029)

* Mobile: Bump build number to 41

* Mobile: Bump Realm migration versioning

* Shared: Only rebuild Realm on Debian

* Correctly assign new account name in realm storage (#1045)

* Update isFailedTransaction prop when modal props are updated (#1046)

* Mobile: Add retry button, error log and change node to Realm migration (#1041)

* Mobile: Add ability to change node and retry during migration

* Mobile: Address comments

* Mobile: Fix notification button import and padding

* Mobile: Disable iOS pop gesture

* Mobile Release 0.6.1 (42) (#1048)

* Mobile: Bump build no to 42

* Mobile: Update realm migration versioning

* Realm Database implementation desktop bugfixes (#1025)

* - Fix Realm storage path
- Add missing wallet reset triggers
- Fix address component prop use
- Remove failed bundle hash action

* Update Realm path for test environment

* - Remove Realm instance init from Tray application
- Keep Realm encryption key on keychain initialisation

* Focus wallet window after initial store update

* Add missing Windows required dependency

* Desktop: Create Migration component to migrate data (#857)

* Desktop: Create Migration component to migrate data

* Desktop: Add 'history' to PropTypes

* Desktop: Document getAllStorageKeys

* - Fix Realm storage path
- Add missing wallet reset triggers
- Fix address component prop use
- Remove failed bundle hash action

* Update Realm path for test environment

* - Remove Realm instance init from Tray application
- Keep Realm encryption key on keychain initialisation

* Focus wallet window after initial store update

* Add missing Windows required dependency

* Move Migration to `ui/global`

* Migration bugfixes

* Desktop: Fix off-by-one mistake on Migration component

* Code review fixes

* Fix Wallet reset functionallity

* Fix account duplication on account rename operation (#1077)

Related issue: #1066

* Fix invalid address data issue (#1089)

Interrupting new account onboarding (on loading screen) leads wallet to throw continuous exceptions. The reason for exceptions was missing "completed" property in realm schema. This commit fixes the issue and also adds realm migration from schema version 0 to latest schema.

* Mobile: Readd react-native-translucent-moddal (#1083)

* Add migration retry and node change functionality (#1094)

* Desktop: Realm implementation fixes (#1096)

* - Exclude unnecessary realm package contents in builds
- Fix unique seed check to exclude Realm key
- Fix account snapshot transition missing addresses

* Missing tag build error fix

* Desktop: Updated Entangled node use (#1095)

* Implement new Entangled node bindings

* Update shrinkwrap file

* Mobile: Link translucent modal

* Merge branch 'develop' into feature/realm

* develop:
  Bump react from 16.8.1 to 16.8.2 in /src/desktop (#1075)
  Bump @ledgerhq/hw-transport-node-hid in /src/desktop (#1082)
  [Security] Bump braces from 1.8.5 to 2.3.2 in /src/desktop (#1079)
  Bump i18next from 15.0.2 to 15.0.4 in /src/desktop (#1072)
  Bump react-dom from 16.8.1 to 16.8.2 in /src/desktop (#1076)
  Desktop Ledger app update (#1059)

# Conflicts:
#	src/desktop/npm-shrinkwrap.json
#	src/desktop/package.json
#	src/shared/actions/transfers.js

* Fix desktop transition `Cannot read property 'type' of undefined` error

* Update shrinkwrap file

* - Fix receive closes automatically on Ledger account (#1101)

- Fix unable to cancel refreshing history without Ledger connected
- Fix onboarding seed not available after failed initial account fetch

* Shared: Fix migration when app is first installed (#1098)
cvarley100 added a commit that referenced this pull request Feb 26, 2019
* Mobile: Fix bar colours

* Mobile: Add new receive page UI

* Mobile: Clear timeouts on unmount

* Show desktop window only after persisted state has been restored

* Send payload only if provided

* 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: Fix account name opacity during certain tasks

* Mobile: Adjust chart animations

* Mobile: Adjust chart timeframe order

* Shared: Rebuild realm after installing dependencies (#842)

* Remove undefined i18next translate function from progressSteps

* Mobile: Replace seed and password usage with global instance

* Mobile: Add ability to force GC on iOS

* Mobile: Work on forced garbage collection for Android

* Mobile: Link Android GarbageCollector

* Update prepateTransferArray implementation to accept addressData as an array instead of an object

* Minor fixes and updates

- Remove manual state rehydration from src/desktop/src/index.js
- Pass in theme object to UnitInfoModal
- Fix JSDocs for addCustomNodeSuccess action creator
- Fix notificationFn trigger in syncAccount
- Relocate mapNormalisedTransactions util

* Always find transaction hashes diff from transactions with own addresses

* Update UI for migration screen

* Assign index & meta to account object during migration

* Use buildNumber for detecting & triggering redux->realm migration

* Shared: Ignore chownr vulnerability in Snyk

* Desktop: Realm Database implementation Desktop fixes (#874)

* Desktop related fixes:
- Fix balance setting in `Balance` and `Sidebar` components
- Fix latest address retrieval
- Fix notification function
- Fix List component transaction list retrieval

* Remove `reverse` from account address list

* Mobile: Resolve lint errors

* Revert 5291972 and fix eslint config (see eslint/eslint#11231)

* Fix failing tests for libs/iota/accounts

* Fix checksum for latestAddressObject & add a separate constant for latestAddressBalance

* Fix attachAndFormatAddresses util implementation

* Mobile: Fix migration step strings

* Mobile: Update prop types

* Shared: Fix documentation for delete and addNodes

* Remove hash as a primary key from Transaction schema

* Add realm-object-server/ to gitignore

* Bump realm to v2.21.1

* Update Transaction schema

- Add attachmentTimestamp
- Add attachmentTimestampLowerBound
- Add attachmentTimestampUpperBound
- Add obsoleteTag

* Minor fixes

- Map correct persistence to normalised transactions
- Fix parameters for constructBundleFromTransactions util

* Minor fixes

- Make completedMigration a required prop in Login & Migration component
- Make sure missing properties like completedMigration are correctly mapped to redux store on entry

* Include version check on app entry

* Minor fixes and updates

- Update method description for realm Wallet class method updateLatest
- Rename setMigrationStatus action creator to setRealmMigrationStatus

* Desktop: Realm Database - remove redux persist settings dependency (#877)

* Update tray application state sync and initialisation

* Update Proxy settings to use separate electronSettings entry

* Shared: Fix periodically failing sortTransactionTrytesArray test (#878)

* Shared: Fix periodically failing sortTransactionTrytesArray test

* Shared: Make recommended changes

* Remove unnecessary assert statements

* Mobile: Use delete operator instead of nulling out secret references

* Mobile: Move seed storage to byte array, update secret handling, store seed against account name hash

* Mobile: Use secure method of inactivity logout

* Mobile: Fix password fields error

* Mobile: Remove password field from redux

* Mobile: Do not pass seed to redux when adding additional seed

* Fix skipped tests for #isNodeHealthy

* Fix skipped tests

* Update build number check realm migration detection

* Update build number to 40 for migration detection check

* Add missing getCustomNodesFromState state selector

* Pass nodes array in correct format to quorum methods

* Migrate accountIndex property for account from AsyncStorage to realm

* Remove primary key (address) from AddressSchema

* Fix invalid bundle construction for failed transactions

* Preserve local spend status before updating account data in realm

* Refactor #getFullAddressHistory tests

* Make sure we fetch persisted account indexes from realm

* Check for undefined addressData prop before updating address data in realm

* Realm data encryption (#1018)

* Add base setup for realm data encryption

* Pass #getEncryptionKeyPromise when storage is reinitialised

* Store realm encryption key in keychain

* Initialise realm instance with encryption key in tests

* Store realm encryption key in keychain

* Address comments

- Remove base64-js
- Perform Uint8Array to string conversions with vanilla JS

* Skip realm encryption key to be reset on password change

* Simplify #getEncryptionKey implementation

* Update build number to 41 for migration detection check

* Mobile: Fix notification icon touch radius

* Include isRetryingFailedTransaction in modalProps when modalProps are updated

* Move manual bundle construction implementation (for failed transactions) in constructBundlesFromTransactions

* Mobile: Fix iPhone X modal visual bug

* Mobile Release 0.4.1 (41) (#1029)

* Mobile: Bump build number to 41

* Mobile: Bump Realm migration versioning

* Shared: Only rebuild Realm on Debian

* Correctly assign new account name in realm storage (#1045)

* Update isFailedTransaction prop when modal props are updated (#1046)

* Mobile: Add retry button, error log and change node to Realm migration (#1041)

* Mobile: Add ability to change node and retry during migration

* Mobile: Address comments

* Mobile: Fix notification button import and padding

* Mobile: Disable iOS pop gesture

* Mobile Release 0.6.1 (42) (#1048)

* Mobile: Bump build no to 42

* Mobile: Update realm migration versioning

* Mobile: Add logout HOC. Full logout after 30 minutes inactivity

* Realm Database implementation desktop bugfixes (#1025)

* - Fix Realm storage path
- Add missing wallet reset triggers
- Fix address component prop use
- Remove failed bundle hash action

* Update Realm path for test environment

* - Remove Realm instance init from Tray application
- Keep Realm encryption key on keychain initialisation

* Focus wallet window after initial store update

* Add missing Windows required dependency

* Mobile: Add new Entangled trit methods and intergrate Android

* Mobile: Use correct bundle hash encoding for native signatures in Android

* Mobile: Remove unused imports

* Mobile: Update password/seed handling by text inputs

* Mobile: Update text input handling of secrets

* Mobile: Fix QR Scan

* Mobile: Fix text inputs and SeedVault

* Mobile: Fix view seed

* Mobile: Fix write seed down

* Desktop: Create Migration component to migrate data (#857)

* Desktop: Create Migration component to migrate data

* Desktop: Add 'history' to PropTypes

* Desktop: Document getAllStorageKeys

* - Fix Realm storage path
- Add missing wallet reset triggers
- Fix address component prop use
- Remove failed bundle hash action

* Update Realm path for test environment

* - Remove Realm instance init from Tray application
- Keep Realm encryption key on keychain initialisation

* Focus wallet window after initial store update

* Add missing Windows required dependency

* Move Migration to `ui/global`

* Migration bugfixes

* Desktop: Fix off-by-one mistake on Migration component

* Code review fixes

* Fix Wallet reset functionallity

* Mobile: SeedVault, ViewSeed and reentry fixes

* Mobile: Store seed as basic trit array

* Mobile/iOS: Rebuild Entangled with new bindings

Ref: rajivshah3/entangled@5a11ee1

* Mobile: Add seed storage migration and update hashing

* Mobile: Remove garbage collector

* Mobile: Remove gc comments and unnecessary null outs

* Mobile: Fix isUniqueSeed

* Mobile: Fix wallet reset

* Mobile: Fix empty text input issues

* Mobile: Fix prop warning

* Mobile: Fix seed reentry

* Batched proof-of-work (#1071)

* Rebuild entangled android

Commit used: iotaledger/entangled@84f7446
PR: iotaledger/entangled#810

* Add batched proof-of-work methods in EntangledAndroid native module

* Integrate entangled batched proof-of-work methods

* Fix failing tests

* Shared: Update comment

* Mobile: Clear reset timeout

* Mobile: Update gitignore

* Fix account duplication on account rename operation (#1077)

Related issue: #1066

* Mobile: Reorder seed storage check on login

* Mobile: Readd react-native-translucent-moddal (#1083)

* Mobile: Fix up migration

* Mobile/iOS: Rebuild Entangled with new bindings

* Mobile/iOS: Update EntangledIOS RCT_EXPORT_METHODS

* Shared: Update config

* Mobile: Fix migration

* Mobile: Add ios-specific hashing method

* Mobile: Fix seed migration detection

* Fix invalid address data issue (#1089)

Interrupting new account onboarding (on loading screen) leads wallet to throw continuous exceptions. The reason for exceptions was missing "completed" property in realm schema. This commit fixes the issue and also adds realm migration from schema version 0 to latest schema.

* Fix invalid bundle issue on zero value transaction with bundle size > 1 (#1093)

* Integrate native signing (android)

* Mobile: Link translucent modal

* Mobile: Link translucent modal library

* Mobile: Fix failing test

* Mobile: Fix transaction history account mismatch

* Update rn-nodeify

* Add @iota/signing to yarn resolutions

* Mobile: Fix promotion/retry

* Shared: Fix migration when app is first installed (#1098)

* Link @iota/signing iOS

* Mobile: Fix wallet reset crash

* Minor updates

* Use prepareTransfersAsync method in promoteTransaction

* Mobile/iOS: Fix code signing

* Update @iota/core

* Mobile/Android: Rebuild Entangled library (#1109)

Ref: iotaledger/entangled@e63422b

* Mobile: Fix bundle storage order (#1108)

* Desktop: Bump entangled-node to fix failing CI

* New translations translation.json (German)

* New translations translation.json (Polish)

* New translations translation.json (Polish)

* Mobile/iOS: Fix bugs in Entangled methods (#1100)

* Mobile/iOS: Fix multi-address generation

* Shared: Fix migration when app is first installed

* Mobile/iOS: Create trit array conversion utils, fix address gen bugs

* Mobile/iOS: Remove unnecessary printf statements

* Mobile/iOS: Fix memory leaks in multi-address generation

* Mobile/iOS: Fix signature generation bugs

* Mobile/iOS: Rebuild EntangledKit framework

Ref: rajivshah3/entangled@f894cd8

* Mobile/iOS: Fix single-address generation bugs

* Mobile/Android: Remove libc++_shared.so and libjsc.so

* Shared: Revert gitignore edits

* Mobile: Fix qr message input

* Mobile: Remove unnecessary deletes and add necessary deletes

* Resolve conflicts

* Mobile: Temporarily convert to trytes for checksum

* Mobile: Fix lockfile

* New translations translation.json (Czech)

* New translations translation.json (Czech)

* New translations translation.json (Czech)

* New translations translation.json (Czech)

* New translations translation.json (Czech)

* New translations translation.json (Czech)

* New translations translation.json (Czech)

* New translations translation.json (Czech)

* New translations translation.json (Czech)

* New translations translation.json (Czech)

* New translations translation.json (Czech)

* New translations translation.json (Czech)

* New translations translation.json (Slovak)

* New translations translation.json (Slovak)

* New translations translation.json (Slovak)

* New translations translation.json (Slovak)

* New translations translation.json (Slovak)

* New translations translation.json (Slovak)

* New translations translation.json (Chinese Simplified)

* Fix invalid mnemonic issue occurring on realm initialization (#1113)

* Mobile: Increase seed migration timeout to 7.5s

* Mobile: Fix empty password checks

* Mobile: Add additional seed reentry check

* Mobile: Bump versioning to 0.6.2

* Mobile/iOS: Fix code signing

* Shared, Mobile: Bump @iota/signing and other packages to 1.0.0-alpha.a09e7908

* Mobile: Patch Buffer.prototype.slice to prevent Android crash

* Mobile: Bump build numbers for alpha release 0.6.2 (45)

* Mobile/Android: Fix HTTP connection timeout

Ref: facebook/react-native@695784a

* Shared: Revert lockfile changes

* Bump build numbers for alpha release 0.6.2 (46)

* Mobile: Use Uint8 constructor in hashing

* Bump build numbers for alpha release 0.6.2 (47)

* New translations translation.json (Czech)

* New translations translation.json (Czech)

* New translations translation.json (Lithuanian)

* Mobile: Replace QR lib (#1119)

* Fix invalid mnemonic issue occurring on realm initialization

* Resolve conflicts

* Update @iota/core to latest  (#1118)

* Fix invalid mnemonic issue occurring on realm initialization

* Update @iota/core to latest

* Update yarn.lock (#1120)

* Fix invalid mnemonic issue occurring on realm initialization

* Update yarn.lock file

* Mobile: Fix change password alert trigger

* Mobile: Bump build no to 48 (#1121)

* Mobile: Fix iOS QR codes

* Shared: Pass native signing function to prepareTransfers (#1123)

* Shared: Update prepareTransfers to accept native signature method

* Mobile: Unlink @iota/signing

* Shared: Update @iota/core

* Mobile: Fix main application

* Mobile: Fix function call

* Shared: Do not store invalid bundles constructed with local PoW (#1122)

* Shared: Delete bundles created with local PoW that fail validation checks

* Shared: Fix error message check

* Mobile: Bump build no to 49 (#1126)

* Shared, Mobile: Bump iota.lib.js to iotaledger/iota.js@eb27c18

* Mobile: Remove unused qrcode patch

* Mobile/Android: Rebuild Entangled libs with API level 19 (#1138)

* Mobile/Android: Rebuild Entangled libs with API level 19

* Remove unnecessary linker flags

* Desktop: Revert shrinkwrap changes

* Shared: Add null default param
cvarley100 added a commit that referenced this pull request Apr 8, 2019
* 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: Fix account name opacity during certain tasks

* Mobile: Adjust chart animations

* Mobile: Adjust chart timeframe order

* Shared: Rebuild realm after installing dependencies (#842)

* Remove undefined i18next translate function from progressSteps

* Mobile: Replace seed and password usage with global instance

* Mobile: Add ability to force GC on iOS

* Mobile: Work on forced garbage collection for Android

* Mobile: Link Android GarbageCollector

* Update prepateTransferArray implementation to accept addressData as an array instead of an object

* Minor fixes and updates

- Remove manual state rehydration from src/desktop/src/index.js
- Pass in theme object to UnitInfoModal
- Fix JSDocs for addCustomNodeSuccess action creator
- Fix notificationFn trigger in syncAccount
- Relocate mapNormalisedTransactions util

* Always find transaction hashes diff from transactions with own addresses

* Update UI for migration screen

* Assign index & meta to account object during migration

* Use buildNumber for detecting & triggering redux->realm migration

* Shared: Ignore chownr vulnerability in Snyk

* Desktop: Realm Database implementation Desktop fixes (#874)

* Desktop related fixes:
- Fix balance setting in `Balance` and `Sidebar` components
- Fix latest address retrieval
- Fix notification function
- Fix List component transaction list retrieval

* Remove `reverse` from account address list

* Mobile: Resolve lint errors

* Revert 5291972 and fix eslint config (see eslint/eslint#11231)

* Fix failing tests for libs/iota/accounts

* Fix checksum for latestAddressObject & add a separate constant for latestAddressBalance

* Fix attachAndFormatAddresses util implementation

* Mobile: Fix migration step strings

* Mobile: Update prop types

* Shared: Fix documentation for delete and addNodes

* Remove hash as a primary key from Transaction schema

* Add realm-object-server/ to gitignore

* Bump realm to v2.21.1

* Update Transaction schema

- Add attachmentTimestamp
- Add attachmentTimestampLowerBound
- Add attachmentTimestampUpperBound
- Add obsoleteTag

* Minor fixes

- Map correct persistence to normalised transactions
- Fix parameters for constructBundleFromTransactions util

* Minor fixes

- Make completedMigration a required prop in Login & Migration component
- Make sure missing properties like completedMigration are correctly mapped to redux store on entry

* Include version check on app entry

* Minor fixes and updates

- Update method description for realm Wallet class method updateLatest
- Rename setMigrationStatus action creator to setRealmMigrationStatus

* Desktop: Realm Database - remove redux persist settings dependency (#877)

* Update tray application state sync and initialisation

* Update Proxy settings to use separate electronSettings entry

* Shared: Fix periodically failing sortTransactionTrytesArray test (#878)

* Shared: Fix periodically failing sortTransactionTrytesArray test

* Shared: Make recommended changes

* Remove unnecessary assert statements

* Mobile: Use delete operator instead of nulling out secret references

* Mobile: Move seed storage to byte array, update secret handling, store seed against account name hash

* Mobile: Use secure method of inactivity logout

* Mobile: Fix password fields error

* Mobile: Remove password field from redux

* Mobile: Do not pass seed to redux when adding additional seed

* Fix skipped tests for #isNodeHealthy

* Fix skipped tests

* Update build number check realm migration detection

* Update build number to 40 for migration detection check

* Add missing getCustomNodesFromState state selector

* Pass nodes array in correct format to quorum methods

* Migrate accountIndex property for account from AsyncStorage to realm

* Remove primary key (address) from AddressSchema

* Fix invalid bundle construction for failed transactions

* Preserve local spend status before updating account data in realm

* Refactor #getFullAddressHistory tests

* Make sure we fetch persisted account indexes from realm

* Check for undefined addressData prop before updating address data in realm

* Realm data encryption (#1018)

* Add base setup for realm data encryption

* Pass #getEncryptionKeyPromise when storage is reinitialised

* Store realm encryption key in keychain

* Initialise realm instance with encryption key in tests

* Store realm encryption key in keychain

* Address comments

- Remove base64-js
- Perform Uint8Array to string conversions with vanilla JS

* Skip realm encryption key to be reset on password change

* Simplify #getEncryptionKey implementation

* Update build number to 41 for migration detection check

* Mobile: Fix notification icon touch radius

* Include isRetryingFailedTransaction in modalProps when modalProps are updated

* Move manual bundle construction implementation (for failed transactions) in constructBundlesFromTransactions

* Mobile: Fix iPhone X modal visual bug

* Mobile Release 0.4.1 (41) (#1029)

* Mobile: Bump build number to 41

* Mobile: Bump Realm migration versioning

* Shared: Only rebuild Realm on Debian

* Correctly assign new account name in realm storage (#1045)

* Update isFailedTransaction prop when modal props are updated (#1046)

* Mobile: Add retry button, error log and change node to Realm migration (#1041)

* Mobile: Add ability to change node and retry during migration

* Mobile: Address comments

* Mobile: Fix notification button import and padding

* Mobile: Disable iOS pop gesture

* Mobile Release 0.6.1 (42) (#1048)

* Mobile: Bump build no to 42

* Mobile: Update realm migration versioning

* Mobile: Add logout HOC. Full logout after 30 minutes inactivity

* Realm Database implementation desktop bugfixes (#1025)

* - Fix Realm storage path
- Add missing wallet reset triggers
- Fix address component prop use
- Remove failed bundle hash action

* Update Realm path for test environment

* - Remove Realm instance init from Tray application
- Keep Realm encryption key on keychain initialisation

* Focus wallet window after initial store update

* Add missing Windows required dependency

* Mobile: Add new Entangled trit methods and intergrate Android

* Mobile: Use correct bundle hash encoding for native signatures in Android

* Mobile: Remove unused imports

* Mobile: Update password/seed handling by text inputs

* Mobile: Update text input handling of secrets

* Mobile: Fix QR Scan

* Mobile: Fix text inputs and SeedVault

* Mobile: Fix view seed

* Mobile: Fix write seed down

* Desktop: Create Migration component to migrate data (#857)

* Desktop: Create Migration component to migrate data

* Desktop: Add 'history' to PropTypes

* Desktop: Document getAllStorageKeys

* - Fix Realm storage path
- Add missing wallet reset triggers
- Fix address component prop use
- Remove failed bundle hash action

* Update Realm path for test environment

* - Remove Realm instance init from Tray application
- Keep Realm encryption key on keychain initialisation

* Focus wallet window after initial store update

* Add missing Windows required dependency

* Move Migration to `ui/global`

* Migration bugfixes

* Desktop: Fix off-by-one mistake on Migration component

* Code review fixes

* Fix Wallet reset functionallity

* Mobile: SeedVault, ViewSeed and reentry fixes

* Mobile: Store seed as basic trit array

* Mobile/iOS: Rebuild Entangled with new bindings

Ref: rajivshah3/entangled@5a11ee1

* Mobile: Add seed storage migration and update hashing

* Mobile: Remove garbage collector

* Mobile: Remove gc comments and unnecessary null outs

* Mobile: Fix isUniqueSeed

* Mobile: Fix wallet reset

* Mobile: Fix empty text input issues

* Mobile: Fix prop warning

* Mobile: Fix seed reentry

* Batched proof-of-work (#1071)

* Rebuild entangled android

Commit used: iotaledger/entangled@84f7446
PR: iotaledger/entangled#810

* Add batched proof-of-work methods in EntangledAndroid native module

* Integrate entangled batched proof-of-work methods

* Fix failing tests

* Shared: Update comment

* Mobile: Clear reset timeout

* Mobile: Update gitignore

* Fix account duplication on account rename operation (#1077)

Related issue: #1066

* Mobile: Reorder seed storage check on login

* Mobile: Readd react-native-translucent-moddal (#1083)

* Mobile: Fix up migration

* Mobile/iOS: Rebuild Entangled with new bindings

* Mobile/iOS: Update EntangledIOS RCT_EXPORT_METHODS

* Shared: Update config

* Mobile: Fix migration

* Mobile: Add ios-specific hashing method

* Mobile: Fix seed migration detection

* Fix invalid address data issue (#1089)

Interrupting new account onboarding (on loading screen) leads wallet to throw continuous exceptions. The reason for exceptions was missing "completed" property in realm schema. This commit fixes the issue and also adds realm migration from schema version 0 to latest schema.

* Fix invalid bundle issue on zero value transaction with bundle size > 1 (#1093)

* Integrate native signing (android)

* Mobile: Link translucent modal

* Mobile: Link translucent modal library

* Mobile: Fix failing test

* Mobile: Fix transaction history account mismatch

* Update rn-nodeify

* Add @iota/signing to yarn resolutions

* Mobile: Fix promotion/retry

* Shared: Fix migration when app is first installed (#1098)

* Link @iota/signing iOS

* Mobile: Fix wallet reset crash

* Minor updates

* Use prepareTransfersAsync method in promoteTransaction

* Mobile/iOS: Fix code signing

* Update @iota/core

* Mobile/Android: Rebuild Entangled library (#1109)

Ref: iotaledger/entangled@e63422b

* Mobile: Fix bundle storage order (#1108)

* Desktop: Bump entangled-node to fix failing CI

* New translations translation.json (German)

* New translations translation.json (Polish)

* New translations translation.json (Polish)

* Mobile/iOS: Fix bugs in Entangled methods (#1100)

* Mobile/iOS: Fix multi-address generation

* Shared: Fix migration when app is first installed

* Mobile/iOS: Create trit array conversion utils, fix address gen bugs

* Mobile/iOS: Remove unnecessary printf statements

* Mobile/iOS: Fix memory leaks in multi-address generation

* Mobile/iOS: Fix signature generation bugs

* Mobile/iOS: Rebuild EntangledKit framework

Ref: rajivshah3/entangled@f894cd8

* Mobile/iOS: Fix single-address generation bugs

* Mobile/Android: Remove libc++_shared.so and libjsc.so

* Shared: Revert gitignore edits

* Mobile: Fix qr message input

* Mobile: Remove unnecessary deletes and add necessary deletes

* Resolve conflicts

* Mobile: Temporarily convert to trytes for checksum

* Mobile: Fix lockfile

* New translations translation.json (Czech)

* New translations translation.json (Czech)

* New translations translation.json (Czech)

* New translations translation.json (Czech)

* New translations translation.json (Czech)

* New translations translation.json (Czech)

* New translations translation.json (Czech)

* New translations translation.json (Czech)

* New translations translation.json (Czech)

* New translations translation.json (Czech)

* New translations translation.json (Czech)

* New translations translation.json (Czech)

* New translations translation.json (Slovak)

* New translations translation.json (Slovak)

* New translations translation.json (Slovak)

* New translations translation.json (Slovak)

* New translations translation.json (Slovak)

* New translations translation.json (Slovak)

* New translations translation.json (Chinese Simplified)

* Fix invalid mnemonic issue occurring on realm initialization (#1113)

* Mobile: Increase seed migration timeout to 7.5s

* Mobile: Fix empty password checks

* Mobile: Add additional seed reentry check

* Mobile: Bump versioning to 0.6.2

* Mobile/iOS: Fix code signing

* Shared, Mobile: Bump @iota/signing and other packages to 1.0.0-alpha.a09e7908

* Mobile: Patch Buffer.prototype.slice to prevent Android crash

* Mobile: Bump build numbers for alpha release 0.6.2 (45)

* Mobile/Android: Fix HTTP connection timeout

Ref: facebook/react-native@695784a

* Shared: Revert lockfile changes

* Bump build numbers for alpha release 0.6.2 (46)

* Mobile: Use Uint8 constructor in hashing

* Bump build numbers for alpha release 0.6.2 (47)

* New translations translation.json (Czech)

* New translations translation.json (Czech)

* New translations translation.json (Lithuanian)

* Mobile: Replace QR lib (#1119)

* Fix invalid mnemonic issue occurring on realm initialization

* Resolve conflicts

* Update @iota/core to latest  (#1118)

* Fix invalid mnemonic issue occurring on realm initialization

* Update @iota/core to latest

* Update yarn.lock (#1120)

* Fix invalid mnemonic issue occurring on realm initialization

* Update yarn.lock file

* Mobile: Fix change password alert trigger

* Mobile: Bump build no to 48 (#1121)

* Mobile: Fix iOS QR codes

* Shared: Pass native signing function to prepareTransfers (#1123)

* Shared: Update prepareTransfers to accept native signature method

* Mobile: Unlink @iota/signing

* Shared: Update @iota/core

* Mobile: Fix main application

* Mobile: Fix function call

* Shared: Do not store invalid bundles constructed with local PoW (#1122)

* Shared: Delete bundles created with local PoW that fail validation checks

* Shared: Fix error message check

* Mobile: Bump build no to 49 (#1126)

* Shared, Mobile: Bump iota.lib.js to iotaledger/iota.js@eb27c18

* Mobile: Remove unused qrcode patch

* Mobile/Android: Rebuild Entangled libs with API level 19 (#1138)

* Mobile/Android: Rebuild Entangled libs with API level 19

* Remove unnecessary linker flags

* Desktop: Revert shrinkwrap changes

* Shared: Add null default param

* Mobile: Reenable deep linking

* Mobile: Move deep linking to HOC

* Mobile: Remove unnecessary bind

* Shared: Rename deep link methods/vars

* Shared: Add deep linking setting

* Shared: Add ddeep linking settings and mobile UI

* Mobile: Clear previous deep link request if deep linking is not enabled

* Mobile: Update font weighting

* Shared: Revert shrinkwrap changes

* Update src/mobile/src/ui/views/wallet/DeepLinking.js

Co-Authored-By: cvarley100 <cvarley100@gmail.com>

* Mobile: Update deeplink HOC
@cvarley100 cvarley100 mentioned this pull request May 7, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
C - Mobile T - Enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants