From c9c97a5034db8d89e11be6deaa30206426fa6f87 Mon Sep 17 00:00:00 2001 From: Kevin Sullivan Date: Fri, 18 Jun 2021 15:53:32 -0700 Subject: [PATCH] prettier --- src/App.js | 9 +- src/actions.js | 328 +++++++++--------- src/actions/account.js | 66 ++-- src/actions/hwWallet.js | 54 ++- src/actions/language.js | 36 +- src/actions/pools.js | 64 ++-- src/actions/tokenInfo.js | 102 +++--- src/actions/utxo.js | 34 +- src/actions/voting.js | 93 +++-- .../Catalyst/CatalystBackupCheckModal.js | 5 +- src/components/Catalyst/Step2.js | 9 +- src/components/Catalyst/Step5.js | 11 +- src/components/Catalyst/Step6.js | 14 +- src/components/Common/AddressEntry.js | 6 +- .../Common/FingerprintScreenBase.js | 22 +- src/components/Common/LanguageListItem.js | 6 +- src/components/Common/LanguagePicker.js | 8 +- src/components/Common/MultiAsset/AssetList.js | 44 +-- src/components/Common/PinInput.js | 11 +- src/components/Common/PinRegistrationForm.js | 85 ++--- .../Delegation/DelegationConfirmation.js | 173 ++++----- src/components/Delegation/StakeByIdScreen.js | 121 +++---- src/components/Delegation/StakingCenter.js | 9 +- src/components/Delegation/StakingDashboard.js | 75 ++-- .../dashboard/DelegatedStakepoolInfo.js | 49 +-- .../FirstRun/AcceptTermsOfServiceScreen.js | 56 +-- src/components/FirstRun/CustomPinScreen.js | 17 +- .../FirstRun/LanguagePickerScreen.js | 16 +- src/components/Ledger/DeviceItem.js | 18 +- src/components/Ledger/LedgerConnect.js | 24 +- src/components/Login/CustomPinLogin.js | 42 +-- src/components/MaintenanceScreen.js | 9 +- src/components/Receive/AddressView.js | 124 +++---- src/components/Send/AddressReaderQR.js | 14 +- src/components/Send/AmountField.js | 20 +- src/components/Send/BiometricAuthScreen.js | 74 ++-- src/components/Send/ConfirmScreen.js | 217 ++++++------ src/components/Send/SendScreen.js | 33 +- .../Settings/ApplicationSettingsScreen.js | 105 +++--- .../Settings/BiometricsLinkScreen.js | 54 +-- .../Settings/ChangeCustomPinScreen.js | 63 ++-- .../Settings/ChangeLanguageScreen.js | 14 +- .../Settings/ChangePasswordScreen.js | 27 +- src/components/Settings/ChangeWalletName.js | 23 +- src/components/Settings/RemoveWalletScreen.js | 10 +- src/components/Settings/SettingsItems.js | 6 +- src/components/Settings/SupportScreen.js | 5 +- .../Settings/ToggleEasyConfirmatioScreen.js | 56 ++- .../Settings/WalletSettingsScreen.js | 38 +- src/components/Transfer/TransferSummary.js | 26 +- src/components/TxHistory/TxDetails.js | 64 ++-- src/components/TxHistory/TxHistory.js | 18 +- src/components/TxHistory/TxHistoryListItem.js | 6 +- src/components/UiKit/Checkbox.js | 5 +- src/components/UiKit/Link.js | 5 +- src/components/UiKit/Modal.js | 9 +- src/components/UiKit/ValidatedTextInput.js | 9 +- src/components/UiKit/WarningBanner.js | 8 +- .../ConnectNanoX/CheckNanoXScreen.js | 19 +- .../ConnectNanoX/ConnectNanoXScreen.js | 48 +-- .../ConnectNanoX/SaveNanoXScreen.js | 56 ++- .../CreateWallet/CreateWalletScreen.js | 33 +- .../MnemonicBackupImportanceModal.js | 12 +- .../CreateWallet/MnemonicCheckScreen.js | 91 +++-- .../CreateWallet/MnemonicExplanationModal.js | 9 +- .../CreateWallet/MnemonicShowScreen.js | 46 +-- .../WalletInit/PasswordStrengthIndicator.js | 3 +- .../ImportReadOnlyWalletScreen.js | 28 +- .../RestoreWallet/RestoreWalletScreen.js | 30 +- .../RestoreWallet/SaveReadOnlyWalletScreen.js | 105 +++--- .../RestoreWallet/VerifyRestoredWallet.js | 16 +- .../WalletInit/RestoreWallet/WalletAddress.js | 38 +- .../RestoreWallet/WalletCredentialsScreen.js | 62 ++-- src/components/WalletInit/WalletForm.js | 14 +- .../WalletInit/WalletFreshInitScreen.js | 20 +- src/components/WalletInit/WalletInitScreen.js | 87 ++--- src/components/WalletInit/WalletNameForm.js | 19 +- .../WalletSelection/WalletSelectionScreen.js | 81 ++--- src/config/networks.js | 21 +- src/crypto/Wallet.js | 5 +- src/crypto/byron/util.test.js | 3 +- src/crypto/commonUtils.js | 4 +- src/crypto/shelley/ShelleyWallet.js | 91 ++--- src/crypto/shelley/catalystUtils.js | 6 +- src/crypto/shelley/catalystUtils.test.js | 3 +- src/crypto/shelley/chain.js | 20 +- src/crypto/shelley/delegationUtils.js | 6 +- src/crypto/shelley/ledgerUtils.js | 15 +- src/crypto/shelley/plate.js | 10 +- src/crypto/shelley/transactions.js | 216 ++++++------ src/crypto/shelley/transactions.test.js | 130 ++++--- src/crypto/shelley/utils.js | 10 +- src/crypto/walletManager.js | 6 +- src/i18n/global-messages.js | 5 +- src/selectors.js | 267 +++++++------- src/utils/utils.js | 11 +- 96 files changed, 2173 insertions(+), 2122 deletions(-) diff --git a/src/App.js b/src/App.js index e2553f0925..86f5af8488 100644 --- a/src/App.js +++ b/src/App.js @@ -56,12 +56,9 @@ const App = (_props, _context) => { export default injectIntl( compose( - connect( - () => ({}), - { - initApp, - }, - ), + connect(() => ({}), { + initApp, + }), onDidMount(({initApp}) => initApp()), )(App), ) diff --git a/src/actions.js b/src/actions.js index 62fc862c07..e93e46df03 100644 --- a/src/actions.js +++ b/src/actions.js @@ -70,33 +70,31 @@ const updateCrashlytics = (fieldName: AppSettingsKey, value: any) => { handler && handler() } -export const setAppSettingField = ( - fieldName: AppSettingsKey, - value: any, -) => async (dispatch: Dispatch) => { - await writeAppSettings(fieldName, value) +export const setAppSettingField = + (fieldName: AppSettingsKey, value: any) => + async (dispatch: Dispatch) => { + await writeAppSettings(fieldName, value) - dispatch({ - path: ['appSettings', fieldName], - payload: value, - type: 'SET_APP_SETTING_FIELD', - reducer: (state, payload) => payload, - }) - updateCrashlytics(fieldName, value) -} + dispatch({ + path: ['appSettings', fieldName], + payload: value, + type: 'SET_APP_SETTING_FIELD', + reducer: (state, payload) => payload, + }) + updateCrashlytics(fieldName, value) + } -export const clearAppSettingField = (fieldName: AppSettingsKey) => async ( - dispatch: Dispatch, -) => { - await removeAppSettings(fieldName) - updateCrashlytics(fieldName, null) - dispatch({ - path: ['appSettings', fieldName], - payload: null, - type: 'REMOVE_APP_SETTING_FIELD', - reducer: (state, payload) => payload, - }) -} +export const clearAppSettingField = + (fieldName: AppSettingsKey) => async (dispatch: Dispatch) => { + await removeAppSettings(fieldName) + updateCrashlytics(fieldName, null) + dispatch({ + path: ['appSettings', fieldName], + payload: null, + type: 'REMOVE_APP_SETTING_FIELD', + reducer: (state, payload) => payload, + }) + } export const setEasyConfirmation = (enable: boolean) => ({ path: ['wallet', 'isEasyConfirmationEnabled'], @@ -136,21 +134,19 @@ const reloadAppSettings = () => async (dispatch: Dispatch) => { } } -export const encryptAndStoreCustomPin = (pin: string) => async ( - dispatch: Dispatch, - getState: () => State, -) => { - const state = getState() - const installationId = state.appSettings.installationId - if (installationId == null) { - throw new AppSettingsError(APP_SETTINGS_KEYS.INSTALLATION_ID) - } +export const encryptAndStoreCustomPin = + (pin: string) => async (dispatch: Dispatch, getState: () => State) => { + const state = getState() + const installationId = state.appSettings.installationId + if (installationId == null) { + throw new AppSettingsError(APP_SETTINGS_KEYS.INSTALLATION_ID) + } - const customPinHash = await encryptCustomPin(installationId, pin) - await dispatch( - setAppSettingField(APP_SETTINGS_KEYS.CUSTOM_PIN_HASH, customPinHash), - ) -} + const customPinHash = await encryptCustomPin(installationId, pin) + await dispatch( + setAppSettingField(APP_SETTINGS_KEYS.CUSTOM_PIN_HASH, customPinHash), + ) + } export const removeCustomPin = () => async (dispatch: Dispatch) => { await dispatch(clearAppSettingField(APP_SETTINGS_KEYS.CUSTOM_PIN_HASH)) @@ -160,43 +156,41 @@ export const acceptAndSaveTos = () => async (dispatch: Dispatch) => { await dispatch(setAppSettingField(APP_SETTINGS_KEYS.ACCEPTED_TOS, true)) } -const initInstallationId = () => async ( - dispatch: Dispatch, - getState: any, -): Promise => { - let installationId = installationIdSelector(getState()) - if (installationId != null) { +const initInstallationId = + () => + async (dispatch: Dispatch, getState: any): Promise => { + let installationId = installationIdSelector(getState()) + if (installationId != null) { + return installationId + } + + installationId = uuid.v4() + + await dispatch( + setAppSettingField(APP_SETTINGS_KEYS.INSTALLATION_ID, installationId), + ) + return installationId } - installationId = uuid.v4() - - await dispatch( - setAppSettingField(APP_SETTINGS_KEYS.INSTALLATION_ID, installationId), - ) +export const updateVersion = + () => + async (dispatch: Dispatch, getState: any): Promise => { + let currentVersion = currentVersionSelector(getState()) + Logger.debug('current version from state', currentVersion) + if (currentVersion != null && currentVersion === DeviceInfo.getVersion()) { + return currentVersion + } - return installationId -} + currentVersion = DeviceInfo.getVersion() -export const updateVersion = () => async ( - dispatch: Dispatch, - getState: any, -): Promise => { - let currentVersion = currentVersionSelector(getState()) - Logger.debug('current version from state', currentVersion) - if (currentVersion != null && currentVersion === DeviceInfo.getVersion()) { + await dispatch( + setAppSettingField(APP_SETTINGS_KEYS.CURRENT_VERSION, currentVersion), + ) + Logger.debug('updated version', currentVersion) return currentVersion } - currentVersion = DeviceInfo.getVersion() - - await dispatch( - setAppSettingField(APP_SETTINGS_KEYS.CURRENT_VERSION, currentVersion), - ) - Logger.debug('updated version', currentVersion) - return currentVersion -} - export const closeWallet = () => async (_dispatch: Dispatch) => { await walletManager.closeWallet() } @@ -227,15 +221,14 @@ export const logout = () => async (dispatch: Dispatch) => { dispatch(signout()) } -const _setServerStatus = (serverStatus: ServerStatusCache) => ( - dispatch: Dispatch, -) => - dispatch({ - path: ['serverStatus'], - payload: serverStatus, - type: 'SET_SERVER_STATUS', - reducer: (state, payload) => payload, - }) +const _setServerStatus = + (serverStatus: ServerStatusCache) => (dispatch: Dispatch) => + dispatch({ + path: ['serverStatus'], + payload: serverStatus, + type: 'SET_SERVER_STATUS', + reducer: (state, payload) => payload, + }) export const initApp = () => async (dispatch: Dispatch, getState: any) => { try { @@ -381,60 +374,61 @@ export const setupHooks = () => (dispatch: Dispatch) => { ) } -export const generateNewReceiveAddress = () => async ( - _dispatch: Dispatch, -) => { - return await walletManager.generateNewUiReceiveAddress() -} +export const generateNewReceiveAddress = + () => async (_dispatch: Dispatch) => { + return await walletManager.generateNewUiReceiveAddress() + } -export const generateNewReceiveAddressIfNeeded = () => async ( - _dispatch: Dispatch, -) => { - return await walletManager.generateNewUiReceiveAddressIfNeeded() -} +export const generateNewReceiveAddressIfNeeded = + () => async (_dispatch: Dispatch) => { + return await walletManager.generateNewUiReceiveAddressIfNeeded() + } -export const changeWalletName = (newName: string) => async ( - dispatch: Dispatch, -) => { - await walletManager.rename(newName) - dispatch(updateWallets()) -} +export const changeWalletName = + (newName: string) => async (dispatch: Dispatch) => { + await walletManager.rename(newName) + dispatch(updateWallets()) + } -export const createWallet = ( - name: string, - mnemonic: string, - password: string, - networkId: NetworkId, - implementationId: WalletImplementationId, -) => async (dispatch: Dispatch) => { - await walletManager.createWallet( - name, - mnemonic, - password, - networkId, - implementationId, - ) - dispatch(updateWallets()) -} +export const createWallet = + ( + name: string, + mnemonic: string, + password: string, + networkId: NetworkId, + implementationId: WalletImplementationId, + ) => + async (dispatch: Dispatch) => { + await walletManager.createWallet( + name, + mnemonic, + password, + networkId, + implementationId, + ) + dispatch(updateWallets()) + } -export const createWalletWithBip44Account = ( - name: string, - bip44AccountPublic: string, - networkId: NetworkId, - implementationId: WalletImplementationId, - hwDeviceInfo: ?HWDeviceInfo, - readOnly: boolean, -) => async (dispatch: Dispatch) => { - await walletManager.createWalletWithBip44Account( - name, - bip44AccountPublic, - networkId, - implementationId, - hwDeviceInfo, - readOnly, - ) - dispatch(updateWallets()) -} +export const createWalletWithBip44Account = + ( + name: string, + bip44AccountPublic: string, + networkId: NetworkId, + implementationId: WalletImplementationId, + hwDeviceInfo: ?HWDeviceInfo, + readOnly: boolean, + ) => + async (dispatch: Dispatch) => { + await walletManager.createWalletWithBip44Account( + name, + bip44AccountPublic, + networkId, + implementationId, + hwDeviceInfo, + readOnly, + ) + dispatch(updateWallets()) + } export const removeCurrentWallet = () => async (dispatch: Dispatch) => { await walletManager.removeCurrentWallet() @@ -517,35 +511,33 @@ export const showConfirmationDialog = ( noButton: intl.formatMessage(dialog.noButton), }) -export const setSystemAuth = (enable: boolean) => async ( - dispatch: Dispatch, - getState: any, -) => { - const canBeDisabled = walletManager.canBiometricsSignInBeDisabled() +export const setSystemAuth = + (enable: boolean) => async (dispatch: Dispatch, getState: any) => { + const canBeDisabled = walletManager.canBiometricsSignInBeDisabled() - if (!enable && !canBeDisabled) { - throw new Error( - 'Can not disable system auth without disabling easy confirmation.', - ) - } + if (!enable && !canBeDisabled) { + throw new Error( + 'Can not disable system auth without disabling easy confirmation.', + ) + } - await dispatch( - setAppSettingField(APP_SETTINGS_KEYS.SYSTEM_AUTH_ENABLED, enable), - ) + await dispatch( + setAppSettingField(APP_SETTINGS_KEYS.SYSTEM_AUTH_ENABLED, enable), + ) - const installationId = installationIdSelector(getState()) - if (installationId == null) { - throw new Error('Installation id is not defined') - } + const installationId = installationIdSelector(getState()) + if (installationId == null) { + throw new Error('Installation id is not defined') + } - if (enable) { - await recreateAppSignInKeys(installationId) + if (enable) { + await recreateAppSignInKeys(installationId) - await dispatch(removeCustomPin()) - } else { - await removeAppSignInKeys(installationId) + await dispatch(removeCustomPin()) + } else { + await removeAppSignInKeys(installationId) + } } -} export const handleGeneralError = async ( message: string, @@ -556,29 +548,27 @@ export const handleGeneralError = async ( await showErrorDialog(errorMessages.generalError, intl, {message}) } -export const submitSignedTx = (signedTx: string) => async ( - dispatch: Dispatch, -) => { - Logger.info('submitting tx...') - await walletManager.submitTransaction(signedTx) +export const submitSignedTx = + (signedTx: string) => async (dispatch: Dispatch) => { + Logger.info('submitting tx...') + await walletManager.submitTransaction(signedTx) - dispatch(updateHistory()) -} + dispatch(updateHistory()) + } // note: eslint doesn't like polymorphic types /* eslint-disable indent */ -export const submitTransaction = ( - signRequest: ISignRequest, - decryptedKey: string, -) => async (dispatch: Dispatch) => { - const {encodedTx} = await walletManager.signTx(signRequest, decryptedKey) - Logger.info( - 'submitTransaction::encodedTx', - Buffer.from(encodedTx).toString('hex'), - ) - const signedTxBase64 = Buffer.from(encodedTx).toString('base64') - await dispatch(submitSignedTx(signedTxBase64)) -} +export const submitTransaction = + (signRequest: ISignRequest, decryptedKey: string) => + async (dispatch: Dispatch) => { + const {encodedTx} = await walletManager.signTx(signRequest, decryptedKey) + Logger.info( + 'submitTransaction::encodedTx', + Buffer.from(encodedTx).toString('hex'), + ) + const signedTxBase64 = Buffer.from(encodedTx).toString('base64') + await dispatch(submitSignedTx(signedTxBase64)) + } /* eslint-enable indent */ export const checkForFlawedWallets = () => async (dispatch: Dispatch) => { diff --git a/src/actions/account.js b/src/actions/account.js index afe7f32d42..3e10f46625 100644 --- a/src/actions/account.js +++ b/src/actions/account.js @@ -73,30 +73,28 @@ const _setLastError = (error) => ({ reducer: (state, error) => error, }) -export const fetchAccountState = () => async ( - dispatch: Dispatch, - getState: () => State, -) => { - if (getState().accountState.isFetching) { - return - } - dispatch(_clearAccountState()) - dispatch(_startFetching()) - try { - const status = await walletManager.getDelegationStatus() - Logger.debug('account actions::getDelegationStatus', status) - dispatch(_setAccountPool(status.poolKeyHash)) - dispatch(_setAccountDelegationStatus(status.isRegistered)) +export const fetchAccountState = + () => async (dispatch: Dispatch, getState: () => State) => { + if (getState().accountState.isFetching) { + return + } + dispatch(_clearAccountState()) + dispatch(_startFetching()) + try { + const status = await walletManager.getDelegationStatus() + Logger.debug('account actions::getDelegationStatus', status) + dispatch(_setAccountPool(status.poolKeyHash)) + dispatch(_setAccountDelegationStatus(status.isRegistered)) - const accountStateResp = await walletManager.fetchAccountState() - const accountState = ObjectValues(accountStateResp)[0] - const value = accountState?.remainingAmount || '0' + const accountStateResp = await walletManager.fetchAccountState() + const accountState = ObjectValues(accountStateResp)[0] + const value = accountState?.remainingAmount || '0' - const utxos = getState().balance.utxos - if (utxos != null) { - const utxosForKey = await walletManager.getAllUtxosForKey(utxos) - // prettier-ignore - const amountToDelegate = + const utxos = getState().balance.utxos + if (utxos != null) { + const utxosForKey = await walletManager.getAllUtxosForKey(utxos) + // prettier-ignore + const amountToDelegate = (utxosForKey != null && status.isRegistered) ? utxosForKey .map((utxo) => utxo.amount) @@ -105,19 +103,21 @@ export const fetchAccountState = () => async ( new BigNumber(0), ) : BigNumber(0) - dispatch( - _setAccountTotalDelegated(amountToDelegate.plus(new BigNumber(value))), - ) + dispatch( + _setAccountTotalDelegated( + amountToDelegate.plus(new BigNumber(value)), + ), + ) + } + dispatch(_setAccountValue(new BigNumber(value))) + dispatch(_setLastError(null)) + } catch (err) { + Logger.warn(err) + dispatch(_setLastError(err)) + } finally { + dispatch(_endFetching()) } - dispatch(_setAccountValue(new BigNumber(value))) - dispatch(_setLastError(null)) - } catch (err) { - Logger.warn(err) - dispatch(_setLastError(err)) - } finally { - dispatch(_endFetching()) } -} export const clearAccountState = () => (dispatch: Dispatch) => { dispatch(_clearAccountState()) diff --git a/src/actions/hwWallet.js b/src/actions/hwWallet.js index 7c0a0d3e86..74380bdee5 100644 --- a/src/actions/hwWallet.js +++ b/src/actions/hwWallet.js @@ -18,36 +18,32 @@ const _saveHW = (hwDeviceInfo) => ({ type: 'SAVE_HW', }) -export const saveHW = (hwDeviceInfo: HWDeviceInfo) => ( - dispatch: Dispatch, -) => { - dispatch(_saveHW(hwDeviceInfo)) -} +export const saveHW = + (hwDeviceInfo: HWDeviceInfo) => (dispatch: Dispatch) => { + dispatch(_saveHW(hwDeviceInfo)) + } -export const setLedgerDeviceId = (deviceId: DeviceId) => ( - dispatch: Dispatch, - getState: () => State, -) => { - Logger.debug('setting deviceId', deviceId) - const state = getState() - const hwDeviceInfo = hwDeviceInfoSelector(state) - if (hwDeviceInfo == null || hwDeviceInfo.hwFeatures == null) { - throw new NoDeviceInfoError() +export const setLedgerDeviceId = + (deviceId: DeviceId) => (dispatch: Dispatch, getState: () => State) => { + Logger.debug('setting deviceId', deviceId) + const state = getState() + const hwDeviceInfo = hwDeviceInfoSelector(state) + if (hwDeviceInfo == null || hwDeviceInfo.hwFeatures == null) { + throw new NoDeviceInfoError() + } + hwDeviceInfo.hwFeatures.deviceId = deviceId + dispatch(_saveHW(hwDeviceInfo)) } - hwDeviceInfo.hwFeatures.deviceId = deviceId - dispatch(_saveHW(hwDeviceInfo)) -} -export const setLedgerDeviceObj = (deviceObj: DeviceObj) => ( - dispatch: Dispatch, - getState: () => State, -) => { - Logger.debug('setting deviceObj', deviceObj) - const state = getState() - const hwDeviceInfo = hwDeviceInfoSelector(state) - if (hwDeviceInfo == null || hwDeviceInfo.hwFeatures == null) { - throw new NoDeviceInfoError() +export const setLedgerDeviceObj = + (deviceObj: DeviceObj) => + (dispatch: Dispatch, getState: () => State) => { + Logger.debug('setting deviceObj', deviceObj) + const state = getState() + const hwDeviceInfo = hwDeviceInfoSelector(state) + if (hwDeviceInfo == null || hwDeviceInfo.hwFeatures == null) { + throw new NoDeviceInfoError() + } + hwDeviceInfo.hwFeatures.deviceObj = deviceObj + dispatch(_saveHW(hwDeviceInfo)) } - hwDeviceInfo.hwFeatures.deviceObj = deviceObj - dispatch(_saveHW(hwDeviceInfo)) -} diff --git a/src/actions/language.js b/src/actions/language.js index 21ae79843f..69d409fb38 100644 --- a/src/actions/language.js +++ b/src/actions/language.js @@ -9,17 +9,16 @@ import {type Dispatch} from 'redux' import {setLanguage} from '../i18n' -export const changeLanguage = (languageCode: string) => ( - dispatch: Dispatch, -) => { - setLanguage(languageCode) - dispatch({ - path: ['appSettings', 'languageCode'], - payload: languageCode, - reducer: (state, languageCode) => languageCode, - type: 'CHANGE_LANGUAGE', - }) -} +export const changeLanguage = + (languageCode: string) => (dispatch: Dispatch) => { + setLanguage(languageCode) + dispatch({ + path: ['appSettings', 'languageCode'], + payload: languageCode, + reducer: (state, languageCode) => languageCode, + type: 'CHANGE_LANGUAGE', + }) + } export const changeTOSLanguage = (tos: string) => (dispatch: Dispatch) => { dispatch({ @@ -30,15 +29,14 @@ export const changeTOSLanguage = (tos: string) => (dispatch: Dispatch) => { }) } -export const changeAndSaveLanguage = (languageCode: string) => async ( - dispatch: Dispatch, -) => { - await writeAppSettings(APP_SETTINGS_KEYS.LANG, languageCode) - const tos = await loadTOS(languageCode) +export const changeAndSaveLanguage = + (languageCode: string) => async (dispatch: Dispatch) => { + await writeAppSettings(APP_SETTINGS_KEYS.LANG, languageCode) + const tos = await loadTOS(languageCode) - dispatch(changeTOSLanguage(tos)) - dispatch(changeLanguage(languageCode)) -} + dispatch(changeTOSLanguage(tos)) + dispatch(changeLanguage(languageCode)) + } export default { changeAndSaveLanguage, diff --git a/src/actions/pools.js b/src/actions/pools.js index 999a85a3a5..2cd31f6d32 100644 --- a/src/actions/pools.js +++ b/src/actions/pools.js @@ -48,40 +48,38 @@ const _setLastError = (error) => ({ reducer: (state, error) => error, }) -export const fetchPoolInfo = () => async ( - dispatch: Dispatch, - getState: () => State, -) => { - if (getState().poolInfo.isFetching) { - return - } else if (getState().accountState.poolOperator == null) { +export const fetchPoolInfo = + () => async (dispatch: Dispatch, getState: () => State) => { + if (getState().poolInfo.isFetching) { + return + } else if (getState().accountState.poolOperator == null) { + dispatch(_clearPoolInfo()) + return + } dispatch(_clearPoolInfo()) - return - } - dispatch(_clearPoolInfo()) - dispatch(_startFetching()) - try { - const poolOperator = getState().accountState.poolOperator - if (poolOperator == null) { - throw new Error( - 'fetchPoolInfo::poolOperator is null, should never happen', + dispatch(_startFetching()) + try { + const poolOperator = getState().accountState.poolOperator + if (poolOperator == null) { + throw new Error( + 'fetchPoolInfo::poolOperator is null, should never happen', + ) + } + const poolInfoResp: PoolInfoResponse = await walletManager.fetchPoolInfo( + ({ + poolIds: [poolOperator], + }: PoolInfoRequest), ) + const poolInfo = Object.keys(poolInfoResp).map( + (key) => poolInfoResp[key], + )[0] + if (poolInfo.error != null) throw new Error(poolInfo.error) + dispatch(_setPoolInfo(poolInfo)) + dispatch(_setLastError(null)) + } catch (err) { + Logger.warn(err) + dispatch(_setLastError(err)) + } finally { + dispatch(_endFetching()) } - const poolInfoResp: PoolInfoResponse = await walletManager.fetchPoolInfo( - ({ - poolIds: [poolOperator], - }: PoolInfoRequest), - ) - const poolInfo = Object.keys(poolInfoResp).map( - (key) => poolInfoResp[key], - )[0] - if (poolInfo.error != null) throw new Error(poolInfo.error) - dispatch(_setPoolInfo(poolInfo)) - dispatch(_setLastError(null)) - } catch (err) { - Logger.warn(err) - dispatch(_setLastError(err)) - } finally { - dispatch(_endFetching()) } -} diff --git a/src/actions/tokenInfo.js b/src/actions/tokenInfo.js index b48583d6ae..69e70995f8 100644 --- a/src/actions/tokenInfo.js +++ b/src/actions/tokenInfo.js @@ -39,61 +39,59 @@ const _setLastError = (error) => ({ reducer: (state, error) => error, }) -export const fetchTokenInfo = () => async ( - dispatch: Dispatch, - getState: () => State, -) => { - const state = getState() - if (state.tokenInfo.isFetching) { - return - } - dispatch(_setTokenInfo(availableAssetsSelector(state))) - dispatch(_startFetching()) - try { - const availableAssets: Dict = availableAssetsSelector(state) - const assetsBalance: MultiToken = tokenBalanceSelector(state) +export const fetchTokenInfo = + () => async (dispatch: Dispatch, getState: () => State) => { + const state = getState() + if (state.tokenInfo.isFetching) { + return + } + dispatch(_setTokenInfo(availableAssetsSelector(state))) + dispatch(_startFetching()) + try { + const availableAssets: Dict = availableAssetsSelector(state) + const assetsBalance: MultiToken = tokenBalanceSelector(state) - // subject -> identifier - const subjectDict = ObjectValues(availableAssets) - .filter((asset) => { - const assetValue = assetsBalance.get(asset.identifier) - return assetValue && assetValue.gt(0) - }) - .reduce((acc, curr: Token): Dict => { - if (curr.identifier === '') return acc - acc[`${curr.metadata.policyId}${curr.metadata.assetName}`] = - curr.identifier - return acc - }, ({}: Dict)) + // subject -> identifier + const subjectDict = ObjectValues(availableAssets) + .filter((asset) => { + const assetValue = assetsBalance.get(asset.identifier) + return assetValue && assetValue.gt(0) + }) + .reduce((acc, curr: Token): Dict => { + if (curr.identifier === '') return acc + acc[`${curr.metadata.policyId}${curr.metadata.assetName}`] = + curr.identifier + return acc + }, ({}: Dict)) - const tokenIds = Object.keys(subjectDict) - const tokenInfo: TokenInfoResponse = await walletManager.fetchTokenInfo( - ({ - tokenIds, - }: TokenInfoRequest), - ) + const tokenIds = Object.keys(subjectDict) + const tokenInfo: TokenInfoResponse = await walletManager.fetchTokenInfo( + ({ + tokenIds, + }: TokenInfoRequest), + ) - const tokens = {...availableAssets} - for (const key of Object.keys(tokenInfo)) { - const _token = tokens[subjectDict[key]] - const newInfo = tokenInfo[key] - if (newInfo == null) continue - tokens[subjectDict[key]] = { - ..._token, - metadata: { - ..._token.metadata, - longName: newInfo.name || null, - numberOfDecimals: newInfo.decimals || 0, - }, + const tokens = {...availableAssets} + for (const key of Object.keys(tokenInfo)) { + const _token = tokens[subjectDict[key]] + const newInfo = tokenInfo[key] + if (newInfo == null) continue + tokens[subjectDict[key]] = { + ..._token, + metadata: { + ..._token.metadata, + longName: newInfo.name || null, + numberOfDecimals: newInfo.decimals || 0, + }, + } } + Logger.info('saving token info in state....', tokens) + dispatch(_setTokenInfo(tokens)) + dispatch(_setLastError(null)) + } catch (err) { + Logger.warn('actions:tokenInfo::fetchTokenInfo', err) + dispatch(_setLastError(err)) + } finally { + dispatch(_endFetching()) } - Logger.info('saving token info in state....', tokens) - dispatch(_setTokenInfo(tokens)) - dispatch(_setLastError(null)) - } catch (err) { - Logger.warn('actions:tokenInfo::fetchTokenInfo', err) - dispatch(_setLastError(err)) - } finally { - dispatch(_endFetching()) } -} diff --git a/src/actions/utxo.js b/src/actions/utxo.js index 459237ab54..6e6f2b64f1 100644 --- a/src/actions/utxo.js +++ b/src/actions/utxo.js @@ -42,26 +42,24 @@ const _setLastError = (error) => ({ reducer: (state, error) => error, }) -export const fetchUTXOs = () => async ( - dispatch: Dispatch, - getState: () => State, -) => { - if (getState().balance.isFetching) { - return - } +export const fetchUTXOs = + () => async (dispatch: Dispatch, getState: () => State) => { + if (getState().balance.isFetching) { + return + } - dispatch(_startFetching()) - dispatch(_clearUTXOs()) - try { - const utxos = await walletManager.fetchUTXOs() - dispatch(_setUTXOs(utxos)) - dispatch(_setLastError(null)) - } catch (err) { - dispatch(_setLastError(err)) - } finally { - dispatch(_endFetching()) + dispatch(_startFetching()) + dispatch(_clearUTXOs()) + try { + const utxos = await walletManager.fetchUTXOs() + dispatch(_setUTXOs(utxos)) + dispatch(_setLastError(null)) + } catch (err) { + dispatch(_setLastError(err)) + } finally { + dispatch(_endFetching()) + } } -} export const clearUTXOs = () => (dispatch: Dispatch) => { dispatch(_clearUTXOs()) diff --git a/src/actions/voting.js b/src/actions/voting.js index 9b0cc60c97..29f04b3194 100644 --- a/src/actions/voting.js +++ b/src/actions/voting.js @@ -25,57 +25,54 @@ const _setUnSignedTx = (unSignedTx) => ({ reducer: (state, value) => value, }) -export const generateVotingKeys = () => async ( - dispatch: Dispatch, - _getState: () => State, -) => { - Logger.debug('voting actions::generateVotingKeys') - let pin - if (CONFIG.DEBUG.PREFILL_FORMS) { - if (!__DEV__) throw new Error('using debug data in non-dev env') - pin = CONFIG.DEBUG.CATALYST_PIN - } else { - pin = cryptoRandomString({length: 4, type: 'numeric'}) - } +export const generateVotingKeys = + () => async (dispatch: Dispatch, _getState: () => State) => { + Logger.debug('voting actions::generateVotingKeys') + let pin + if (CONFIG.DEBUG.PREFILL_FORMS) { + if (!__DEV__) throw new Error('using debug data in non-dev env') + pin = CONFIG.DEBUG.CATALYST_PIN + } else { + pin = cryptoRandomString({length: 4, type: 'numeric'}) + } - const pinArray = pin.split('').map(Number) + const pinArray = pin.split('').map(Number) - const passBuff = Buffer.from(pinArray) - const rootKey = await generatePrivateKeyForCatalyst() - const catalystEncryptedPrivateKey = await encryptWithPassword( - passBuff, - await (await rootKey.to_raw_key()).as_bytes(), - ) + const passBuff = Buffer.from(pinArray) + const rootKey = await generatePrivateKeyForCatalyst() + const catalystEncryptedPrivateKey = await encryptWithPassword( + passBuff, + await (await rootKey.to_raw_key()).as_bytes(), + ) - await dispatch( - _setCatalystKeys({ - pin: pinArray, - encryptedKey: catalystEncryptedPrivateKey, - catalystPrivateKey: Buffer.from( - await (await rootKey.to_raw_key()).as_bytes(), - ).toString('hex'), - }), - ) -} + await dispatch( + _setCatalystKeys({ + pin: pinArray, + encryptedKey: catalystEncryptedPrivateKey, + catalystPrivateKey: Buffer.from( + await (await rootKey.to_raw_key()).as_bytes(), + ).toString('hex'), + }), + ) + } -export const generateVotingTransaction = ( - decryptedKey: string, - utxos: Array, -) => async (dispatch: Dispatch, getState: () => State) => { - Logger.debug('voting actions::generateVotingTransaction') - const catalystPrivateKey: ?string = getState().voting.catalystPrivateKey - const serverTime: Date | void = getState().serverStatus.serverTime +export const generateVotingTransaction = + (decryptedKey: string, utxos: Array) => + async (dispatch: Dispatch, getState: () => State) => { + Logger.debug('voting actions::generateVotingTransaction') + const catalystPrivateKey: ?string = getState().voting.catalystPrivateKey + const serverTime: Date | void = getState().serverStatus.serverTime - if (catalystPrivateKey) { - const signRequest = await walletManager.createVotingRegTx( - utxos, - catalystPrivateKey, - decryptedKey, - serverTime, - ) - dispatch(_setUnSignedTx(signRequest)) - } else { - // should never happen - throw new Error('Catalyst private key empty, should never happen') + if (catalystPrivateKey) { + const signRequest = await walletManager.createVotingRegTx( + utxos, + catalystPrivateKey, + decryptedKey, + serverTime, + ) + dispatch(_setUnSignedTx(signRequest)) + } else { + // should never happen + throw new Error('Catalyst private key empty, should never happen') + } } -} diff --git a/src/components/Catalyst/CatalystBackupCheckModal.js b/src/components/Catalyst/CatalystBackupCheckModal.js index 380be6a47d..1fb1a730e5 100644 --- a/src/components/Catalyst/CatalystBackupCheckModal.js +++ b/src/components/Catalyst/CatalystBackupCheckModal.js @@ -44,9 +44,8 @@ const CatalystBackupCheckModal = ({ }: Props) => { const [acceptedPin, setAcceptedPin] = useState(false) const [acceptedQrCode, setAcceptedQrCode] = useState(false) - const [acceptedConsequences, setAcceptedConsequences] = useState( - false, - ) + const [acceptedConsequences, setAcceptedConsequences] = + useState(false) return ( diff --git a/src/components/Catalyst/Step2.js b/src/components/Catalyst/Step2.js index acc14cdbf7..bc1b0b6f11 100644 --- a/src/components/Catalyst/Step2.js +++ b/src/components/Catalyst/Step2.js @@ -48,12 +48,9 @@ type HOCProps = { const Step2 = ({intl, pin, navigation}: Props & HOCProps) => { const [countDown, setCountDown] = useState(5) - useEffect( - () => { - countDown > 0 && setTimeout(() => setCountDown(countDown - 1), 1000) - }, - [countDown], - ) + useEffect(() => { + countDown > 0 && setTimeout(() => setCountDown(countDown - 1), 1000) + }, [countDown]) const pinCards = ( diff --git a/src/components/Catalyst/Step5.js b/src/components/Catalyst/Step5.js index 6036e160b4..d37265b7fb 100644 --- a/src/components/Catalyst/Step5.js +++ b/src/components/Catalyst/Step5.js @@ -202,11 +202,12 @@ const Step5 = ({ {intl.formatMessage(messages.subTitle)} - {/* eslint-disable indent */ - isEasyConfirmationEnabled - ? intl.formatMessage(messages.bioAuthDescription) - : intl.formatMessage(messages.description) - /* eslint-enable indent */ + { + /* eslint-disable indent */ + isEasyConfirmationEnabled + ? intl.formatMessage(messages.bioAuthDescription) + : intl.formatMessage(messages.description) + /* eslint-enable indent */ } { const [countDown, setCountDown] = useState(5) - useEffect( - () => { - countDown > 0 && setTimeout(() => setCountDown(countDown - 1), 1000) - }, - [countDown], - ) + useEffect(() => { + countDown > 0 && setTimeout(() => setCountDown(countDown - 1), 1000) + }, [countDown]) - const [showBackupWarningModal, setShowBackupWarningModal] = useState( - false, - ) + const [showBackupWarningModal, setShowBackupWarningModal] = + useState(false) if (Platform.OS === 'android') { useFocusEffect( diff --git a/src/components/Common/AddressEntry.js b/src/components/Common/AddressEntry.js index cd295b5968..f684f8a6ba 100644 --- a/src/components/Common/AddressEntry.js +++ b/src/components/Common/AddressEntry.js @@ -18,8 +18,10 @@ type Props = { } const AddressEntry: ComponentType = withHandlers({ - onPress: ({address, explorerForAddress}) => () => - Linking.openURL(explorerForAddress(address)), + onPress: + ({address, explorerForAddress}) => + () => + Linking.openURL(explorerForAddress(address)), })(({address, onPress}: Props) => { return ( diff --git a/src/components/Common/FingerprintScreenBase.js b/src/components/Common/FingerprintScreenBase.js index 3de30c4a8d..21644b37f0 100644 --- a/src/components/Common/FingerprintScreenBase.js +++ b/src/components/Common/FingerprintScreenBase.js @@ -71,16 +71,16 @@ const FingerprintScreenBase = ({ ) : null} - {/* eslint-disable indent */ - addWelcomeMessage === true && - intl != null && ( + { + /* eslint-disable indent */ + addWelcomeMessage === true && intl != null && ( {intl.formatMessage(messages.welcomeMessage)} ) - /* eslint-enable indent */ + /* eslint-enable indent */ } {showImage === true && ( @@ -114,12 +114,14 @@ export default (compose( showImage: false, }, { - shouldShowImage: () => (sdk: number): {showImage: boolean} => { - // note(v-almonacid): the decrypt with biometrics prompt only appears - // for API level >= 28 - const showImage = Platform.OS === 'android' && sdk < 28 - return {showImage} - }, + shouldShowImage: + () => + (sdk: number): {showImage: boolean} => { + // note(v-almonacid): the decrypt with biometrics prompt only appears + // for API level >= 28 + const showImage = Platform.OS === 'android' && sdk < 28 + return {showImage} + }, }, ), onDidMount(({shouldShowImage}) => diff --git a/src/components/Common/LanguageListItem.js b/src/components/Common/LanguageListItem.js index 1acbab6da9..33c3e66b2d 100644 --- a/src/components/Common/LanguageListItem.js +++ b/src/components/Common/LanguageListItem.js @@ -33,6 +33,8 @@ type ExternalProps = { } export default (withHandlers({ - handleSelectLanguage: ({selectLanguage, languageCode}) => () => - selectLanguage(languageCode), + handleSelectLanguage: + ({selectLanguage, languageCode}) => + () => + selectLanguage(languageCode), })(LanguageListItem): ComponentType) diff --git a/src/components/Common/LanguagePicker.js b/src/components/Common/LanguagePicker.js index 2d7c7b573d..7b47cd1f6e 100644 --- a/src/components/Common/LanguagePicker.js +++ b/src/components/Common/LanguagePicker.js @@ -239,9 +239,9 @@ export const LanguagePicker = ({ )} /> - {/* eslint-disable indent */ - languageCode !== 'en-US' && - languageCode !== 'ja-JP' && ( + { + /* eslint-disable indent */ + languageCode !== 'en-US' && languageCode !== 'ja-JP' && ( {intl.formatMessage(messages.contributors) !== '_' ? ( @@ -256,7 +256,7 @@ export const LanguagePicker = ({ )} ) - /* eslint-enable indent */ + /* eslint-enable indent */ }