Skip to content

Commit

Permalink
Merge pull request #5584 from bithyve/dev
Browse files Browse the repository at this point in the history
release v1.2.19
  • Loading branch information
cakesoft-utkarsh authored Nov 13, 2024
2 parents 6aef053 + 308f522 commit f71aa1e
Show file tree
Hide file tree
Showing 22 changed files with 64 additions and 309 deletions.
4 changes: 2 additions & 2 deletions android/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -86,8 +86,8 @@ android {
applicationId "io.hexawallet.keeper"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 413
versionName "1.2.18"
versionCode 415
versionName "1.2.19"
missingDimensionStrategy 'react-native-camera', 'general'
missingDimensionStrategy 'store', 'play'
multiDexEnabled true
Expand Down
28 changes: 14 additions & 14 deletions ios/hexa_keeper.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -796,8 +796,8 @@
);
PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE = "cc28f9e0-ec33-42fe-8e22-38f1ba23923b";
PROVISIONING_PROFILE_SPECIFIER = "Keeper Distribution";
PROVISIONING_PROFILE = "dcc403d2-5657-4b83-a081-42585d31ea59";
PROVISIONING_PROFILE_SPECIFIER = "Keeper Development";
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/hexa_keeper.app/hexa_keeper";
};
name = Release;
Expand All @@ -811,7 +811,7 @@
CODE_SIGN_ENTITLEMENTS = hexa_keeper/hexa_keeper.entitlements;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 413;
CURRENT_PROJECT_VERSION = 415;
DEVELOPMENT_TEAM = Y5TCB759QL;
ENABLE_BITCODE = NO;
HEADER_SEARCH_PATHS = (
Expand Down Expand Up @@ -912,7 +912,7 @@
"$(inherited)",
"\"$(SRCROOT)\"",
);
MARKETING_VERSION = 1.2.18;
MARKETING_VERSION = 1.2.19;
OTHER_LDFLAGS = (
"$(inherited)",
"-ObjC",
Expand All @@ -936,7 +936,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 = 413;
CURRENT_PROJECT_VERSION = 415;
DEVELOPMENT_TEAM = Y5TCB759QL;
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = Y5TCB759QL;
HEADER_SEARCH_PATHS = (
Expand Down Expand Up @@ -1037,16 +1037,16 @@
"$(inherited)",
"\"$(SRCROOT)\"",
);
MARKETING_VERSION = 1.2.18;
MARKETING_VERSION = 1.2.19;
OTHER_LDFLAGS = (
"$(inherited)",
"-ObjC",
"-lc++",
);
PRODUCT_BUNDLE_IDENTIFIER = io.hexawallet.keeper;
PRODUCT_NAME = hexa_keeper;
PROVISIONING_PROFILE = "cc28f9e0-ec33-42fe-8e22-38f1ba23923b";
PROVISIONING_PROFILE_SPECIFIER = "Keeper Distribution";
PROVISIONING_PROFILE = "dcc403d2-5657-4b83-a081-42585d31ea59";
PROVISIONING_PROFILE_SPECIFIER = "Keeper Development";
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "Keeper Distribution";
SWIFT_OBJC_BRIDGING_HEADER = "whirlpool/hexa_keeper-Bridging-Header.h";
SWIFT_VERSION = 5.0;
Expand Down Expand Up @@ -1192,7 +1192,7 @@
CODE_SIGN_ENTITLEMENTS = hexa_keeper_dev.entitlements;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 413;
CURRENT_PROJECT_VERSION = 415;
DEVELOPMENT_TEAM = Y5TCB759QL;
ENABLE_BITCODE = NO;
HEADER_SEARCH_PATHS = (
Expand Down Expand Up @@ -1294,7 +1294,7 @@
"$(PROJECT_DIR)",
"\"$(SRCROOT)\"",
);
MARKETING_VERSION = 1.2.18;
MARKETING_VERSION = 1.2.19;
OTHER_LDFLAGS = (
"$(inherited)",
"-ObjC",
Expand All @@ -1320,7 +1320,7 @@
CODE_SIGN_ENTITLEMENTS = hexa_keeper_dev.entitlements;
CODE_SIGN_IDENTITY = "Apple Distribution";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
CURRENT_PROJECT_VERSION = 413;
CURRENT_PROJECT_VERSION = 415;
DEVELOPMENT_TEAM = Y5TCB759QL;
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = Y5TCB759QL;
HEADER_SEARCH_PATHS = (
Expand Down Expand Up @@ -1422,16 +1422,16 @@
"$(PROJECT_DIR)",
"\"$(SRCROOT)\"",
);
MARKETING_VERSION = 1.2.18;
MARKETING_VERSION = 1.2.19;
OTHER_LDFLAGS = (
"$(inherited)",
"-ObjC",
"-lc++",
);
PRODUCT_BUNDLE_IDENTIFIER = io.hexawallet.hexakeeper.dev;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE = "cc28f9e0-ec33-42fe-8e22-38f1ba23923b";
PROVISIONING_PROFILE_SPECIFIER = "Keeper Distribution";
PROVISIONING_PROFILE = "dcc403d2-5657-4b83-a081-42585d31ea59";
PROVISIONING_PROFILE_SPECIFIER = "Keeper Development";
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "Keeper Development";
SWIFT_OBJC_BRIDGING_HEADER = "whirlpool/hexa_keeper-Bridging-Header.h";
SWIFT_OBJC_INTERFACE_HEADER_NAME = "hexa_keeper-Swift.h";
Expand Down
2 changes: 1 addition & 1 deletion ios/hexa_keeper/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
</dict>
</array>
<key>CFBundleVersion</key>
<string>413</string>
<string>415</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>NFCReaderUsageDescription</key>
Expand Down
2 changes: 1 addition & 1 deletion ios/hexa_keeperTests/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,6 @@
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>413</string>
<string>415</string>
</dict>
</plist>
2 changes: 1 addition & 1 deletion ios/hexa_keeper_dev-Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
</dict>
</array>
<key>CFBundleVersion</key>
<string>413</string>
<string>415</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>NFCReaderUsageDescription</key>
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "hexa_keeper",
"version": "1.2.18",
"version": "1.2.19",
"private": true,
"scripts": {
"ios": "react-native run-ios",
Expand Down
4 changes: 2 additions & 2 deletions src/context/Localization/language/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -558,7 +558,7 @@
"Desc2of3": "2-of-3 Multi-key",
"CollaborativeWalletCreated": "A 2 of 3 collaborative wallet will be created",
"WalletCreated": "Wallet Created Successfully!",
"CollaborativeWalletSubtitle": "A collaborative with three App Keys on three separate devices.",
"CollaborativeWalletSubtitle": "You have successfully created a collaborative wallet with three app keys on three separate devices.",
"CollaborativeWalletDesc": "You should ensure you have a copy of the wallet configuration file for this vault",
"highCustom": "Network fee is more than 10% of the amount being sent. Consider using custom fee option.",
"highWait": "Network fee is 10% higher than usual. If not urgent, consider waiting for the fee to go down.",
Expand Down Expand Up @@ -1055,7 +1055,7 @@
"ramp": {
"byProceedRampParagraph": "By proceeding, you understand that Ramp will process the payment and transfer for the purchased bitcoin",
"bitcoinTransfer": "Bitcoin will be transferred to",
"addressForRamp": "Address for ramp transactions",
"addressForRamp": "Address for Ramp transactions",
"buyBitcoinRamp": "Buy bitcoin with Ramp",
"buyBitcoinRampSubTitle": "Ramp enables BTC purchases using Apple Pay, Debit/Credit card, Bank Transfer and open banking where available payment methods available may vary based on your country"
},
Expand Down
4 changes: 2 additions & 2 deletions src/context/Localization/language/es.json
Original file line number Diff line number Diff line change
Expand Up @@ -558,7 +558,7 @@
"Desc2of3": "2-of-3 Multi-key",
"CollaborativeWalletCreated": "A 2 of 3 collaborative wallet will be created",
"WalletCreated": "Wallet Created Successfully!",
"CollaborativeWalletSubtitle": "A collaborative with three App Keys on three separate devices.",
"CollaborativeWalletSubtitle": "You have successfully created a collaborative wallet with three app keys on three separate devices.",
"CollaborativeWalletDesc": "You should ensure you have a copy of the wallet configuration file for this vault",
"highCustom": "Network fee is more than 10% of the amount being sent. Consider using custom fee option.",
"highWait": "Network fee is 10% higher than usual. If not urgent, consider waiting for the fee to go down.",
Expand Down Expand Up @@ -1052,7 +1052,7 @@
"ramp": {
"byProceedRampParagraph": "By proceeding, you understand that Ramp will process the payment and transfer for the purchased bitcoin",
"bitcoinTransfer": "Bitcoin will be transferred to",
"addressForRamp": "Address for ramp transactions",
"addressForRamp": "Address for Ramp transactions",
"buyBitcoinRamp": "Buy bitcoin with Ramp",
"buyBitcoinRampSubTitle": "Ramp enables BTC purchases using Apple Pay, Debit/Credit card, Bank Transfer and open banking where available payment methods available may vary based on your country"
},
Expand Down
12 changes: 11 additions & 1 deletion src/hardware/tapsigner/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,7 @@ export const changePin = async (card: CKTapCard, oldCVC: string, newCVC: string)

export const signWithTapsigner = async (
card: CKTapCard,
cardMfp: string,
inputsToSign: {
digest: string;
subPath: string;
Expand All @@ -161,6 +162,14 @@ export const signWithTapsigner = async (
const status = await card.first_look();
const isLegit = await card.certificate_check();
if (isLegit) {
if (cardMfp) {
const xfp = (await card.get_xfp(cvc)).toString('hex').toUpperCase();
if (xfp !== cardMfp.toUpperCase()) {
throw Error(
'Wrong TAPSIGNER used, please ensure you use the same one slected for signing.'
);
}
}
try {
if (status.path) {
if (status.is_testnet !== isTestnet) {
Expand All @@ -175,7 +184,6 @@ export const signWithTapsigner = async (
}
return inputsToSign;
}
Alert.alert('Please set up card before signing!');
throw Error('Please set up card before signing!');
} catch (e) {
captureError(e);
Expand Down Expand Up @@ -205,6 +213,8 @@ export const handleTapsignerError = (error, navigation) => {
errorMessage = 'Something went wrong, please try again!';
} else if (error.toString() === 'Error' || error.toString() === '[Error]') {
errorMessage = 'Operation cancelled. Please try again.';
} else {
errorMessage = error?.message || null;
}

if (errorMessage) {
Expand Down
3 changes: 3 additions & 0 deletions src/hooks/useConfigReocvery.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import { CommonActions, useNavigation } from '@react-navigation/native';
import { resetRealyVaultState } from 'src/store/reducers/bhr';
import { generateVaultId } from 'src/services/wallets/factories/VaultFactory';
import TickIcon from 'src/assets/images/icon_tick.svg';
import ToastErrorIcon from 'src/assets/images/toast_error.svg';
import useToastMessage from './useToastMessage';
import useVault from './useVault';

Expand Down Expand Up @@ -105,6 +106,8 @@ const useConfigRecovery = () => {
setRecoveryLoading(false);
recoveryError.failed = true;
recoveryError.message = err;
showToast(err.message ? err.message : err.toString(), <ToastErrorIcon />);
navigation.goBack();
}
};

Expand Down
2 changes: 0 additions & 2 deletions src/navigation/Navigator.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,6 @@ import UnlockTapsigner from 'src/screens/SigningDevices/UnlockTapsigner';
import ChangeTapsignerPin from 'src/screens/SigningDevices/ChangeTapsignerPin';
import UTXOSelection from 'src/screens/Send/UTXOSelection';
import VaultSetup from 'src/screens/Vault/VaultSetup';
import NFCScanner from 'src/screens/Vault/NFCScanner';
import PrivacyAndDisplay from 'src/screens/AppSettings/PrivacyAndDisplay';
import NetworkSetting from 'src/screens/AppSettings/NetworkSetting';
import VaultCreationOptions from 'src/screens/Vault/VaultCreationOptions';
Expand Down Expand Up @@ -298,7 +297,6 @@ function AppStack() {
options={{ gestureEnabled: false }}
/>
<Stack.Screen name="AssignSignerType" component={AssignSignerType} />
<Stack.Screen name="NFCScanner" component={NFCScanner} />
<Stack.Screen name="AddWallet" component={AddWallet} />
<Stack.Screen name="ManageSigners" component={ManageSigners} />
<Stack.Screen name="BuyBitcoin" component={BuyBitcoinScreen} />
Expand Down
1 change: 0 additions & 1 deletion src/navigation/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,6 @@ export type AppStackParams = {
SigningDeviceConfigRecovery: undefined;
MixProgress: undefined;
AssignSignerType: undefined;
NFCScanner: undefined;
AddWallet: undefined;
CanaryWallets: undefined;
AssistedKeys: undefined;
Expand Down
4 changes: 2 additions & 2 deletions src/screens/BuyBitcoin/BuyBitcoinScreen.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ function BuyBitcoinScreen({ route }) {
const { colorMode } = useColorMode();
const { currencyCode } = useAppSelector((state) => state.settings);
const { translations } = useContext(LocalizationContext);
const { common } = translations;
const { common, ramp: rampTranslations } = translations;

const { wallet } = route.params;
const receivingAddress = wallet.specs.receivingAddress;
Expand Down Expand Up @@ -86,7 +86,7 @@ function BuyBitcoinScreen({ route }) {

<Box style={styles.toWalletWrapper} backgroundColor={`${colorMode}.seashellWhite`}>
<Text fontSize={13} color={`${colorMode}.primaryText`}>
Address for ramp transactions
{rampTranslations.addressForRamp}
</Text>
<Box style={styles.iconContainer}>
<HexagonIcon
Expand Down
13 changes: 8 additions & 5 deletions src/screens/NFCChannel/ShareWithNfc.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ function ShareWithNfc({
sendConfirmationRouteParams,
tnxDetails,
fileName,
useNdef = false,
}: {
data: string;
signer?: Signer;
Expand All @@ -43,6 +44,7 @@ function ShareWithNfc({
sendConfirmationRouteParams?: SendConfirmationRouteParams;
tnxDetails?: tnxDetailsProps;
fileName?: string;
useNdef?: boolean; // For hardware wallets interactions
}) {
const { session } = useContext(HCESessionContext);
const navigation = useNavigation<any>();
Expand All @@ -53,17 +55,15 @@ function ShareWithNfc({
const cleanUp = () => {
setVisible(false);
Vibration.cancel();
if (isAndroid) {
if (isAndroid && !useNdef) {
NFC.stopTagSession(session);
}
};
useEffect(() => {
const unsubDisconnect = session.on(HCESession.Events.HCE_STATE_DISCONNECTED, () => {
cleanUp();
});
const unsubRead = session.on(HCESession.Events.HCE_STATE_READ, () => {
showToast('Cosigner details shared successfully', <TickIcon />);
});
const unsubRead = session.on(HCESession.Events.HCE_STATE_READ, () => {});
return () => {
cleanUp();
unsubRead();
Expand All @@ -76,7 +76,10 @@ function ShareWithNfc({

const shareWithNFC = async () => {
try {
if (isIos) {
if (isIos || useNdef) {
if (!isIos) {
setVisible(true);
}
Vibration.vibrate([700, 50, 100, 50], true);
const enc = NFC.encodeTextRecord(data);
await NFC.send([NfcTech.Ndef], enc);
Expand Down
2 changes: 1 addition & 1 deletion src/screens/QRScreens/RegisterWithChannel.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@ function RegisterWithChannel() {
<ScreenWrapper backgroundcolor={`${colorMode}.primaryBackground`}>
<KeeperHeader
title="Register with Keeper Desktop App"
subtitle={`Please download the Bitcoin Keeper desktop app from our website: ${KEEPER_WEBSITE_BASE_URL} to register this signer.`}
subtitle={`Please download the Bitcoin Keeper desktop app from our website: ${KEEPER_WEBSITE_BASE_URL}/desktop to register this signer.`}
/>
<Box style={styles.qrcontainer}>
<ScanAndInstruct onBarCodeRead={onBarCodeRead} />
Expand Down
2 changes: 1 addition & 1 deletion src/screens/QRScreens/RegisterWithQR.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ function RegisterWithQR({ route, navigation }: any) {
)}
</Box>
<Box style={styles.centerBottom}>
<ShareWithNfc data={walletConfig} signer={signer} />
<ShareWithNfc data={walletConfig} signer={signer} useNdef />
</Box>
<Buttons
primaryText="Confirm Registration"
Expand Down
4 changes: 2 additions & 2 deletions src/screens/Recovery/SigningDeviceConfigRecovery.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -144,10 +144,10 @@ function SigningDeviceConfigRecovery({ navigation }) {
borderBottomRadius={last ? 15 : 0}
>
<Box style={styles.walletMapContainer}>
<Box style={styles.walletMapWrapper}>{SDIcons(type).Icon}</Box>
<Box style={styles.walletMapWrapper}>{SDIcons(type, colorMode === 'dark').Icon}</Box>
<Box backgroundColor={`${colorMode}.divider`} style={styles.divider} />
<Box style={styles.walletMapLogoWrapper}>
{SDIcons(type).Logo}
{SDIcons(type, colorMode === 'dark').Logo}
<Text color={`${colorMode}.inActiveMsg`} style={styles.messageText}>
{message}
</Text>
Expand Down
6 changes: 3 additions & 3 deletions src/screens/SignTransaction/SignerModals.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -906,7 +906,7 @@ function SignerModals({
setLedgerModal(false);
}}
title="Get your Ledger Ready"
subTitle={`Please download the Bitcoin Keeper desktop app from our website: ${KEEPER_WEBSITE_BASE_URL} to connect with Ledger.`}
subTitle={`Please download the Bitcoin Keeper desktop app from our website: ${KEEPER_WEBSITE_BASE_URL}/desktop to connect with Ledger.`}
textColor={`${colorMode}.primaryText`}
Content={() => <LedgerContent />}
buttonText="Proceed"
Expand Down Expand Up @@ -1147,7 +1147,7 @@ function SignerModals({
setTrezorModal(false);
}}
title="Keep Trezor Ready"
subTitle={`Please download the Bitcoin Keeper desktop app from our website: ${KEEPER_WEBSITE_BASE_URL} to connect with Trezor.`}
subTitle={`Please download the Bitcoin Keeper desktop app from our website: ${KEEPER_WEBSITE_BASE_URL}/desktop to connect with Trezor.`}
textColor={`${colorMode}.primaryText`}
Content={() => <TrezorContent />}
buttonText="Proceed"
Expand All @@ -1164,7 +1164,7 @@ function SignerModals({
setBitbox02Modal(false);
}}
title="Keep BitBox02 Ready"
subTitle={`Please download the Bitcoin Keeper desktop app from our website: ${KEEPER_WEBSITE_BASE_URL} to connect with BitBox02.`}
subTitle={`Please download the Bitcoin Keeper desktop app from our website: ${KEEPER_WEBSITE_BASE_URL}/desktop to connect with BitBox02.`}
textColor={`${colorMode}.primaryText`}
Content={() => <BitBox02Content />}
buttonText="Proceed"
Expand Down
Loading

0 comments on commit f71aa1e

Please sign in to comment.