From 830e4892a3533095401e7b9eb2aa8bba67a16722 Mon Sep 17 00:00:00 2001 From: akshay8551 Date: Fri, 6 Oct 2023 10:49:28 +0530 Subject: [PATCH 01/11] Alignment in goggle pixel 6 #3135 --- src/components/AppNumPad/KeyPadView.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/AppNumPad/KeyPadView.tsx b/src/components/AppNumPad/KeyPadView.tsx index 40bf6e8e1..8c7fba9f4 100644 --- a/src/components/AppNumPad/KeyPadView.tsx +++ b/src/components/AppNumPad/KeyPadView.tsx @@ -36,7 +36,7 @@ const KeyPadView: React.FC = ({ onPressNumber('8')} keyColor={keyColor} /> onPressNumber('9')} keyColor={keyColor} /> - + From 51af80ad324f28297e5e30e8430a2d39e40cd4ba Mon Sep 17 00:00:00 2001 From: akshay8551 Date: Fri, 6 Oct 2023 10:50:01 +0530 Subject: [PATCH 02/11] minor --- src/screens/LoginScreen/Login.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/screens/LoginScreen/Login.tsx b/src/screens/LoginScreen/Login.tsx index 5b27817f3..7bc8a4337 100644 --- a/src/screens/LoginScreen/Login.tsx +++ b/src/screens/LoginScreen/Login.tsx @@ -35,7 +35,7 @@ import { credsAuth } from 'src/store/sagaActions/login'; import { credsAuthenticated, setRecepitVerificationError } from 'src/store/reducers/login'; import KeyPadView from 'src/components/AppNumPad/KeyPadView'; import FogotPassword from './components/FogotPassword'; -import { increasePinFailAttempts, resetPinFailAttempts } from 'src/store/reducers/storage'; +import { resetPinFailAttempts } from 'src/store/reducers/storage'; import { LocalizationContext } from 'src/context/Localization/LocContext'; const TIMEOUT = 60; From b64889c90b9cd7072f2dd1f63120090939c32eda Mon Sep 17 00:00:00 2001 From: akshay8551 Date: Fri, 6 Oct 2023 11:32:51 +0530 Subject: [PATCH 03/11] Resolved - #3234 --- src/screens/HomeScreen/WalletsScreen.tsx | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/screens/HomeScreen/WalletsScreen.tsx b/src/screens/HomeScreen/WalletsScreen.tsx index 6cef12a63..c6a00e0f6 100644 --- a/src/screens/HomeScreen/WalletsScreen.tsx +++ b/src/screens/HomeScreen/WalletsScreen.tsx @@ -119,8 +119,8 @@ function WalletItem({ onPress={() => { isCollaborativeWallet ? navigation.navigate('VaultDetails', { - collaborativeWalletId: item.collaborativeWalletId, - }) + collaborativeWalletId: item.collaborativeWalletId, + }) : navigation.navigate('WalletDetails', { walletId: item.id, walletIndex }); }} > @@ -498,7 +498,7 @@ const WalletsScreen = ({ navigation }) => { - Add a new Wallet or Import one + Add a new wallet, import it, or create a collaborative wallet. @@ -522,7 +522,7 @@ const WalletsScreen = ({ navigation }) => { {}} + close={() => { }} visible={recepitVerificationFailed} title="Failed to validate your subscription" subTitle="Do you want to downgrade to Pleb and continue?" @@ -685,7 +685,7 @@ const styles = StyleSheet.create({ alignItems: 'flex-start', }, addNewWallTextWrapper: { - width: '30%', + width: '50%', justifyContent: 'center', }, addNewWallText: { From c3bbf2a9f635ed2b267869585b388f0a0a994752 Mon Sep 17 00:00:00 2001 From: akshay8551 Date: Mon, 9 Oct 2023 11:59:10 +0530 Subject: [PATCH 04/11] Designed - Appropriate animation for different asset #2937 --- src/components/BounceLoader.tsx | 54 +++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 src/components/BounceLoader.tsx diff --git a/src/components/BounceLoader.tsx b/src/components/BounceLoader.tsx new file mode 100644 index 000000000..60f6a8dc8 --- /dev/null +++ b/src/components/BounceLoader.tsx @@ -0,0 +1,54 @@ +import React, { useEffect } from 'react' +import { StyleSheet, Animated, EasingFunction, Easing } from 'react-native' +import { Box } from 'native-base' + +const BounceLoader = () => { + let opacity = new Animated.Value(0); + + Animated.loop( + Animated.spring(opacity, { + toValue: 2, + friction: 4, + tension: 25, + useNativeDriver: true + }) + ).start(); + + const bounce = opacity.interpolate({ + inputRange: [1, 2, 3], + outputRange: [1, 6, 2] + }) + const bounce1 = opacity.interpolate({ + inputRange: [1, 3, 4], + outputRange: [2, 7, 3] + }) + const bounce2 = opacity.interpolate({ + inputRange: [1, 4, 5], + outputRange: [2, 8, 4] + }) + const bounce3 = opacity.interpolate({ + inputRange: [1, 5, 6], + outputRange: [2, 9, 5] + }) + return ( + + + + + + + ) +} +const styles = StyleSheet.create({ + container: { + flexDirection: 'row' + }, + ball: { + width: 8, + height: 8, + borderRadius: 10, + backgroundColor: '#6B9B92', + marginHorizontal: 3 + }, +}) +export default BounceLoader \ No newline at end of file From f6d219c01e0ba91d332e5763ada384a6163c1499 Mon Sep 17 00:00:00 2001 From: akshay8551 Date: Mon, 9 Oct 2023 11:59:54 +0530 Subject: [PATCH 05/11] Import - animation for different asset component #2937 --- src/screens/LoginScreen/Login.tsx | 27 ++++++++++++----- .../NewKeeperAppScreen/NewKeeperAppScreen.tsx | 30 ++++++++++++++++--- 2 files changed, 46 insertions(+), 11 deletions(-) diff --git a/src/screens/LoginScreen/Login.tsx b/src/screens/LoginScreen/Login.tsx index 7bc8a4337..5abef1717 100644 --- a/src/screens/LoginScreen/Login.tsx +++ b/src/screens/LoginScreen/Login.tsx @@ -37,6 +37,7 @@ import KeyPadView from 'src/components/AppNumPad/KeyPadView'; import FogotPassword from './components/FogotPassword'; import { resetPinFailAttempts } from 'src/store/reducers/storage'; import { LocalizationContext } from 'src/context/Localization/LocContext'; +import BounceLoader from 'src/components/BounceLoader'; const TIMEOUT = 60; const RNBiometrics = new ReactNativeBiometrics(); @@ -301,12 +302,19 @@ function LoginScreen({ navigation, route }) { {modelMessage} {modelButtonText === null ? ( - - This step will take a few seconds. You would be able to proceed soon - + + + + This step will take a few seconds. You would be able to proceed soon + + + + + + ) : null} ); @@ -648,8 +656,13 @@ const styles = StyleSheet.create({ modalMessageText: { fontSize: 13, letterSpacing: 0.65, - width: wp(275), + // width: wp(275), }, + modalMessageWrapper: { + flexDirection: 'row', + width: '100%', + alignItems: 'center' + } }); export default LoginScreen; diff --git a/src/screens/NewKeeperAppScreen/NewKeeperAppScreen.tsx b/src/screens/NewKeeperAppScreen/NewKeeperAppScreen.tsx index 0e99d123b..db94f38a1 100644 --- a/src/screens/NewKeeperAppScreen/NewKeeperAppScreen.tsx +++ b/src/screens/NewKeeperAppScreen/NewKeeperAppScreen.tsx @@ -20,6 +20,7 @@ import LoadingAnimation from 'src/components/Loader'; import { updateFCMTokens } from 'src/store/sagaActions/notifications'; import Fonts from 'src/constants/Fonts'; import { KEEPER_WEBSITE_BASE_URL } from 'src/core/config'; +import BounceLoader from 'src/components/BounceLoader'; export function Tile({ title, subTitle, onPress, Icon = null, loading = false }) { const { colorMode } = useColorMode(); @@ -142,13 +143,20 @@ function NewKeeperApp({ navigation }: { navigation }) { - + {getSignUpModalContent().message} {!appCreated ? ( - - This step will take a few seconds. You would be able to proceed soon - + + + + This step will take a few seconds. You would be able to proceed soon + + + + + + ) : null} ); @@ -318,6 +326,20 @@ const styles = StyleSheet.create({ flexDirection: 'row', flexWrap: 'wrap', }, + modalMessageWrapper: { + flexDirection: 'row', + width: '100%', + alignItems: 'center' + }, + modalMessageText: { + fontSize: 13, + letterSpacing: 0.65, + paddingTop: 5 + }, + contentText: { + fontSize: 13, + letterSpacing: 0.65, + } }); export default NewKeeperApp; From 8f72b7657c70c0e19679ef232f9aac367bda49a1 Mon Sep 17 00:00:00 2001 From: akshay8551 Date: Mon, 9 Oct 2023 12:00:41 +0530 Subject: [PATCH 06/11] minor --- src/components/BounceLoader.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/BounceLoader.tsx b/src/components/BounceLoader.tsx index 60f6a8dc8..a943e8b5b 100644 --- a/src/components/BounceLoader.tsx +++ b/src/components/BounceLoader.tsx @@ -1,5 +1,5 @@ -import React, { useEffect } from 'react' -import { StyleSheet, Animated, EasingFunction, Easing } from 'react-native' +import React from 'react' +import { StyleSheet, Animated } from 'react-native' import { Box } from 'native-base' const BounceLoader = () => { From 7fb99659348091827bce6a8fcaeedc854b77ca4b Mon Sep 17 00:00:00 2001 From: akshay8551 Date: Wed, 11 Oct 2023 09:46:57 +0530 Subject: [PATCH 07/11] Resolved - QR not readable in Dark Mode #3292 --- src/navigation/themes.js | 2 ++ src/screens/Recieve/ReceiveScreen.tsx | 9 ++++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/navigation/themes.js b/src/navigation/themes.js index ce0c42e1f..5b17d4e86 100644 --- a/src/navigation/themes.js +++ b/src/navigation/themes.js @@ -62,6 +62,7 @@ export const customTheme = extendTheme({ modalWhiteButton: Colors.White, modalGreenLearnMore: Colors.CastelGreenDark, greenButtonBackground: Colors.ForestGreen, + qrBorderColor: Colors.LightYellow, coffeeBackground: Colors.Coffee, yellowButtonBackground: Colors.MacaroniAndCheese, yellowButtonTextColor: Colors.Coffee, @@ -121,6 +122,7 @@ export const customTheme = extendTheme({ modalWhiteButton: Colors.pantoneGreenDark, modalGreenLearnMore: Colors.LightYellowDark, greenButtonBackground: Colors.ForestGreenDark, + qrBorderColor: Colors.White, coffeeBackground: Colors.CoffeeDark, yellowButtonBackground: Colors.LightYellowDark, yellowButtonTextColor: Colors.White, diff --git a/src/screens/Recieve/ReceiveScreen.tsx b/src/screens/Recieve/ReceiveScreen.tsx index ee6245cb6..2e5ccd18f 100644 --- a/src/screens/Recieve/ReceiveScreen.tsx +++ b/src/screens/Recieve/ReceiveScreen.tsx @@ -109,7 +109,7 @@ function ReceiveScreen({ route }: { route }) { return ( - + Date: Wed, 11 Oct 2023 10:37:52 +0530 Subject: [PATCH 08/11] Resolved - Import wallet #2425 --- src/screens/HomeScreen/WalletsScreen.tsx | 8 ++++++++ src/screens/WalletDetails/WalletDetails.tsx | 3 ++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/screens/HomeScreen/WalletsScreen.tsx b/src/screens/HomeScreen/WalletsScreen.tsx index c6a00e0f6..3b7acc5a3 100644 --- a/src/screens/HomeScreen/WalletsScreen.tsx +++ b/src/screens/HomeScreen/WalletsScreen.tsx @@ -214,6 +214,9 @@ function WalletTile({ wallet, balances, isWhirlpoolWallet, hideAmounts, isCollab )} + {wallet?.type === 'IMPORTED' ? + Imported wallet + : null} {wallet?.presentationData?.name} @@ -627,6 +630,11 @@ const styles = StyleSheet.create({ fontSize: 13, }, walletName: { + letterSpacing: 0.2, + fontSize: 14, + fontWeight: '400', + }, + walletType: { letterSpacing: 0.2, fontSize: 11, fontWeight: '400', diff --git a/src/screens/WalletDetails/WalletDetails.tsx b/src/screens/WalletDetails/WalletDetails.tsx index 714234403..a10833afa 100644 --- a/src/screens/WalletDetails/WalletDetails.tsx +++ b/src/screens/WalletDetails/WalletDetails.tsx @@ -70,6 +70,7 @@ function WalletDetails({ route }) { }, } = wallet; + const walletType = idx(wallet, (_) => _.type) || 'DEFAULT' const receivingAddress = idx(wallet, (_) => _.specs.receivingAddress) || ''; const balance = idx(wallet, (_) => _.specs.balances.confirmed) || 0; const presentationName = idx(wallet, (_) => _.presentationData.name) || ''; @@ -121,7 +122,7 @@ function WalletDetails({ route }) { {name} - {description} + {walletType === 'IMPORTED' ? 'Imported wallet' : description} From 5799f123f78e27f99342f6d3f17c6f8727f0f96d Mon Sep 17 00:00:00 2001 From: Pratyaksh Chandra Date: Fri, 13 Oct 2023 14:55:28 +0200 Subject: [PATCH 09/11] Enter seed screen fix --- src/screens/Recovery/EnterSeedScreen.tsx | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/screens/Recovery/EnterSeedScreen.tsx b/src/screens/Recovery/EnterSeedScreen.tsx index cc4ca5250..f5d6c8342 100644 --- a/src/screens/Recovery/EnterSeedScreen.tsx +++ b/src/screens/Recovery/EnterSeedScreen.tsx @@ -228,11 +228,10 @@ function EnterSeedScreen({ route }) { }; const onPressNextSeedReocvery = async () => { - if (true) { - if (true) { - const seedWord = 'orbit human gun end sock lava rare owner analyst warm pupil moral'; + if (isSeedFilled(6)) { + if (isSeedFilled(12)) { + const seedWord = getSeedWord(); setRecoveryLoading(true); - dispatch(getAppImage(seedWord)); } else { ref.current.scrollToIndex({ index: 5, animated: true }); From 37551f5fe2bd19fdf5dc152709dd1bef2c032ae2 Mon Sep 17 00:00:00 2001 From: shashank Date: Wed, 18 Oct 2023 17:20:44 +0200 Subject: [PATCH 10/11] node reconnect fix while sync --- src/services/electrum/client.ts | 2 +- src/store/sagas/network.ts | 6 +++--- src/store/sagas/wallets.ts | 13 +++++++++++-- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/services/electrum/client.ts b/src/services/electrum/client.ts index fe4d88907..d116a04fa 100644 --- a/src/services/electrum/client.ts +++ b/src/services/electrum/client.ts @@ -42,7 +42,7 @@ const ELECTRUM_CLIENT_DEFAULTS = { activePeer: null, }; -let ELECTRUM_CLIENT: { +export let ELECTRUM_CLIENT: { electrumClient: any; isClientConnected: boolean; currentPeerIndex: number; diff --git a/src/store/sagas/network.ts b/src/store/sagas/network.ts index 1521f57e4..a02cf4d80 100644 --- a/src/store/sagas/network.ts +++ b/src/store/sagas/network.ts @@ -19,7 +19,7 @@ import { createWatcher } from '../utilities'; import { fetchFeeRates } from '../sagaActions/send_and_receive'; import { CONNECT_TO_NODE } from '../sagaActions/network'; -function* connectToNodeWorker() { +export function* connectToNodeWorker() { try { console.log('Connecting to node...'); yield put(electrumClientConnectionInitiated()); @@ -38,9 +38,9 @@ function* connectToNodeWorker() { yield put(setDefaultNodesSaved(true)); } - const defaultNodes = yield call(dbManager.getCollection, RealmSchema.DefaultNodeConnect); + const defaultNodes = + config.NETWORK_TYPE === NetworkType.TESTNET ? predefinedTestnetNodes : predefinedMainnetNodes; const privateNodes = yield call(dbManager.getCollection, RealmSchema.NodeConnect); - ElectrumClient.setActivePeer(defaultNodes, privateNodes); const { connected, connectedTo, error } = yield call(ElectrumClient.connect); if (connected) { diff --git a/src/store/sagas/wallets.ts b/src/store/sagas/wallets.ts index 648fc26ef..55fd4a800 100644 --- a/src/store/sagas/wallets.ts +++ b/src/store/sagas/wallets.ts @@ -52,7 +52,8 @@ import { getJSONFromRealmObject } from 'src/storage/realm/utils'; import { generateKey, hash256 } from 'src/services/operations/encryption'; import { uaiType } from 'src/models/interfaces/Uai'; import { captureError } from 'src/services/sentry'; -import { +import ElectrumClient, { + ELECTRUM_CLIENT, ELECTRUM_NOT_CONNECTED_ERR, ELECTRUM_NOT_CONNECTED_ERR_TOR, } from 'src/services/electrum/client'; @@ -780,6 +781,10 @@ function* refreshWalletsWorker({ }) { const { wallets, options } = payload; try { + if (!ELECTRUM_CLIENT.isClientConnected) { + const { connected, connectedTo, error } = yield call(ElectrumClient.connect); + } + yield put(setSyncing({ wallets, isSyncing: true })); const { synchedWallets }: { synchedWallets: (Wallet | Vault)[] } = yield call( syncWalletsWorker, @@ -825,7 +830,11 @@ function* refreshWalletsWorker({ yield put(setNetBalance(netBalance)); } catch (err) { if ([ELECTRUM_NOT_CONNECTED_ERR, ELECTRUM_NOT_CONNECTED_ERR_TOR].includes(err?.message)) - yield put(setElectrumNotConnectedErr(err?.message)); + yield put( + setElectrumNotConnectedErr( + 'Network error: please check your network/ node connection and try again' + ) + ); else captureError(err); } finally { yield put(setSyncing({ wallets, isSyncing: false })); From 87bcde74549f477bce297ca4cd565d10c2dfb712 Mon Sep 17 00:00:00 2001 From: shashank Date: Wed, 18 Oct 2023 17:24:57 +0200 Subject: [PATCH 11/11] build v1.1.7(258) --- android/app/build.gradle | 4 ++-- ios/hexa_keeper.xcodeproj/project.pbxproj | 16 ++++++++-------- package.json | 2 +- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/android/app/build.gradle b/android/app/build.gradle index 1a390ed00..2eea56c61 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -85,8 +85,8 @@ android { applicationId "io.hexawallet.keeper" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 257 - versionName "1.1.6" + versionCode 258 + versionName "1.1.7" missingDimensionStrategy 'react-native-camera', 'general' missingDimensionStrategy 'store', 'play' multiDexEnabled true diff --git a/ios/hexa_keeper.xcodeproj/project.pbxproj b/ios/hexa_keeper.xcodeproj/project.pbxproj index 910082239..c6d610782 100644 --- a/ios/hexa_keeper.xcodeproj/project.pbxproj +++ b/ios/hexa_keeper.xcodeproj/project.pbxproj @@ -783,7 +783,7 @@ CODE_SIGN_ENTITLEMENTS = hexa_keeper/hexa_keeper.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 257; + CURRENT_PROJECT_VERSION = 258; DEVELOPMENT_TEAM = Y5TCB759QL; ENABLE_BITCODE = NO; HEADER_SEARCH_PATHS = ( @@ -891,7 +891,7 @@ "$(inherited)", "\"$(SRCROOT)\"", ); - MARKETING_VERSION = 1.1.6; + MARKETING_VERSION = 1.1.7; OTHER_LDFLAGS = ( "$(inherited)", "-ObjC", @@ -915,7 +915,7 @@ CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = hexa_keeper/hexa_keeper.entitlements; CODE_SIGN_IDENTITY = "Apple Distribution: Bithyve UK Ltd (Y5TCB759QL)"; - CURRENT_PROJECT_VERSION = 257; + CURRENT_PROJECT_VERSION = 258; DEVELOPMENT_TEAM = Y5TCB759QL; HEADER_SEARCH_PATHS = ( "$(inherited)", @@ -1022,7 +1022,7 @@ "$(inherited)", "\"$(SRCROOT)\"", ); - MARKETING_VERSION = 1.1.6; + MARKETING_VERSION = 1.1.7; OTHER_LDFLAGS = ( "$(inherited)", "-ObjC", @@ -1176,7 +1176,7 @@ CODE_SIGN_ENTITLEMENTS = hexa_keeper_dev.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 257; + CURRENT_PROJECT_VERSION = 258; DEVELOPMENT_TEAM = Y5TCB759QL; ENABLE_BITCODE = NO; HEADER_SEARCH_PATHS = ( @@ -1285,7 +1285,7 @@ "$(PROJECT_DIR)", "\"$(SRCROOT)\"", ); - MARKETING_VERSION = 1.1.6; + MARKETING_VERSION = 1.1.7; OTHER_LDFLAGS = ( "$(inherited)", "-ObjC", @@ -1310,7 +1310,7 @@ CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = hexa_keeper_dev.entitlements; CODE_SIGN_IDENTITY = "Apple Distribution"; - CURRENT_PROJECT_VERSION = 257; + CURRENT_PROJECT_VERSION = 258; DEVELOPMENT_TEAM = Y5TCB759QL; HEADER_SEARCH_PATHS = ( "$(inherited)", @@ -1418,7 +1418,7 @@ "$(PROJECT_DIR)", "\"$(SRCROOT)\"", ); - MARKETING_VERSION = 1.1.6; + MARKETING_VERSION = 1.1.7; OTHER_LDFLAGS = ( "$(inherited)", "-ObjC", diff --git a/package.json b/package.json index e5c10589a..18cc9c9ab 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "hexa_keeper", - "version": "1.1.6", + "version": "1.1.7", "private": true, "scripts": { "ios": "react-native run-ios",