diff --git a/App.tsx b/App.tsx
index 24c65cd6..db382903 100644
--- a/App.tsx
+++ b/App.tsx
@@ -285,6 +285,7 @@ import PushNotificationManager, {
import {initializeFirebase} from './db/initializeFirebase';
import {ChannelOpenFeeInformation} from './app/components/admin/homeComponents/receiveBitcoin';
import {GestureHandlerRootView} from 'react-native-gesture-handler';
+import GetThemeColors from './app/hooks/themeColors';
const Stack = createNativeStackNavigator();
@@ -320,7 +321,8 @@ function ResetStack(): JSX.Element | null {
const [isLoggedIn, setIsLoggedIn] = useState(false);
const [isloaded, setIsLoaded] = useState(false);
- const {setDeepLinkContent} = useGlobalContextProvider();
+ const {setDeepLinkContent, theme} = useGlobalContextProvider();
+ const {backgroundColor} = GetThemeColors();
// Memoize handleDeepLink
const handleDeepLink = useCallback(
@@ -382,7 +384,19 @@ function ResetStack(): JSX.Element | null {
return ;
}
return (
-
+
-
- */}
+ {/*
+ /> */}
-
+ /> */}
-
+ /> */}
+
@@ -28,6 +28,7 @@
android:name="com.google.firebase.messaging.default_notification_icon"
android:resource="@drawable/ic_stat_ic_notification" />
diff --git a/app/assets/icons/arrow-small-left-white.png b/app/assets/icons/arrow-small-left-white.png
index 7a9424ac..88fad4d1 100644
Binary files a/app/assets/icons/arrow-small-left-white.png and b/app/assets/icons/arrow-small-left-white.png differ
diff --git a/app/assets/icons/arrow-small-left.png b/app/assets/icons/arrow-small-left.png
index fd80e198..f1705bab 100644
Binary files a/app/assets/icons/arrow-small-left.png and b/app/assets/icons/arrow-small-left.png differ
diff --git a/app/components/admin/homeComponents/apps/chatGPT/chatGPTHome.js b/app/components/admin/homeComponents/apps/chatGPT/chatGPTHome.js
index d0e836ac..a11fac65 100644
--- a/app/components/admin/homeComponents/apps/chatGPT/chatGPTHome.js
+++ b/app/components/admin/homeComponents/apps/chatGPT/chatGPTHome.js
@@ -188,17 +188,15 @@ export default function ChatGPTHome(props) {
})
}
style={{
- marginLeft: 'auto',
- marginRight: 'auto',
- flexDirection: 'row',
- alignItems: 'center',
+ ...styles.switchModel,
+ backgroundColor: backgroundOffset,
}}>
@@ -547,14 +545,26 @@ const styles = StyleSheet.create({
flexDirection: 'row',
alignItems: 'center',
justifyContent: 'space-between',
+ marginBottom: 15,
...CENTER,
},
+ switchModel: {
+ marginLeft: 'auto',
+ marginRight: 'auto',
+ flexDirection: 'row',
+ alignItems: 'center',
+ paddingHorizontal: 10,
+ paddingVertical: 5,
+ borderRadius: 8,
+ },
topBarText: {
fontSize: SIZES.large,
+ marginRight: 5,
},
topBarIcon: {
- width: 30,
- height: 30,
+ transform: [{rotate: '270deg'}],
+ width: 20,
+ height: 20,
},
noChatHistoryImgContainer: {
diff --git a/app/components/admin/homeComponents/apps/giftCards/giftCardsPage.js b/app/components/admin/homeComponents/apps/giftCards/giftCardsPage.js
index bce0bd86..7c5a6994 100644
--- a/app/components/admin/homeComponents/apps/giftCards/giftCardsPage.js
+++ b/app/components/admin/homeComponents/apps/giftCards/giftCardsPage.js
@@ -184,6 +184,11 @@ export default function GiftCardPage() {
{filteredGiftCards.length === 0 || errorMessage ? (
{pinnedContacts}
@@ -256,6 +258,7 @@ function PinnedContactElement(props) {
const contact = props.contact;
const publicKey = getPublicKey(contactsPrivateKey);
const navigate = useNavigation();
+ const dimenions = useWindowDimensions();
return (
{
@@ -276,7 +279,12 @@ function PinnedContactElement(props) {
navigate,
)
}>
-
+
-
+
15
- ? contact.name.slice(0, 13) + '...'
- : contact.name ||
- contact.uniqueName.slice(0, 13) +
- `${contact.uniqueName.length > 15 ? '...' : ''}`
- }
+ content={!!contact.name.length ? contact.name : contact.uniqueName}
/>
{contact.unlookedTransactions != 0 && (
15
- ? `${contact.name.slice(0, 15)}...`
- : contact.name
- : contact.uniqueName.length > 15
- ? `${contact.uniqueName.slice(0, 15)}...`
- : contact.uniqueName
+ !!contact.name.length ? contact.name : contact.uniqueName
}
/>
{contact.unlookedTransactions != 0 && (
@@ -419,7 +425,7 @@ export function ContactElement(props) {
style={[
styles.hasNotification,
{
- marginRight: 'auto',
+ marginRight: 5,
backgroundColor:
darkModeType && theme
? COLORS.darkModeText
@@ -428,7 +434,11 @@ export function ContactElement(props) {
]}
/>
)}
-
+
{contactElements}
@@ -166,26 +167,21 @@ export default function ChooseContactHalfModal() {
/>
-
+
25
- ? `${contact.name.slice(0, 25)}...`
- : contact.name
- : contact.uniqueName.length > 25
- ? `${contact.uniqueName.slice(0, 25)}...`
- : contact.uniqueName
+ !!contact.name.length ? contact.name : contact.uniqueName
}
/>
diff --git a/app/components/admin/homeComponents/contacts/internalComponents/contactsTransactions.js b/app/components/admin/homeComponents/contacts/internalComponents/contactsTransactions.js
index 1bcf4a00..d6331138 100644
--- a/app/components/admin/homeComponents/contacts/internalComponents/contactsTransactions.js
+++ b/app/components/admin/homeComponents/contacts/internalComponents/contactsTransactions.js
@@ -34,6 +34,7 @@ import {
SATSPERBITCOIN,
} from '../../../../../constants/math';
import {assetIDS} from '../../../../../functions/liquidWallet/assetIDS';
+import {ThemeText} from '../../../../../functions/CustomElements';
export default function ContactsTransactionItem(props) {
const transaction = props.transaction;
@@ -703,32 +704,33 @@ function ConfirmedOrSentTransaction({
resizeMode="contain"
/> */}
-
-
- {txParsed.isDeclined
- ? 'Declined'
- : txParsed.isRequest && txParsed.isRedeemed
- ? 'Paid request'
- : paymentDescription.length > 15
- ? paymentDescription.slice(0, 15) + '...'
- : paymentDescription
- ? paymentDescription
- : props.transaction.wasSent
- ? `${
- props.transaction.data?.isRequest ? 'Payment request' : 'Sent'
- }`
- : `${
- props.transaction.data?.isRequest
- ? 'Received payment request'
- : 'Received'
- }`}
-
+
+
diff --git a/app/components/admin/homeComponents/sendBitcoin/components/feeInfo.js b/app/components/admin/homeComponents/sendBitcoin/components/feeInfo.js
index e0fa8eb2..8959a111 100644
--- a/app/components/admin/homeComponents/sendBitcoin/components/feeInfo.js
+++ b/app/components/admin/homeComponents/sendBitcoin/components/feeInfo.js
@@ -15,8 +15,8 @@ export default function SendTransactionFeeInfo({
canSendPayment,
convertedSendAmount,
sendingAmount,
+ canUseEcash,
}) {
- console.log(swapFee, 'TEST');
const {masterInfoObject, nodeInformation, minMaxLiquidSwapAmounts} =
useGlobalContextProvider();
//options
@@ -35,13 +35,28 @@ export default function SendTransactionFeeInfo({
/>
{isLightningPayment ? (
canUseLightning ? (
-
) : (
- //
)
) : canUseLiquid ? (
- <>
- {canSendPayment && convertedSendAmount >= 1000 ? (
-
- ) : (
-
+
- ) : // = 1000
- // ? `Liquid transaction fee of ${formatBalanceAmount(
- // numberConverter(
- // liquidTxFee,
- // masterInfoObject.userBalanceDenomination,
- // nodeInformation,
- // masterInfoObject.userBalanceDenomination != 'fiat' ? 0 : 2,
- // ),
- // )} ${
- // masterInfoObject.userBalanceDenomination != 'fiat'
- // ? 'sats'
- // : nodeInformation.fiatStats.coin
- // }`
- // : ''
- // }
- // />
- canUseLightning ? (
+ />
+ ) : (
- ) : (
- //
- ''
)}
);
diff --git a/app/components/admin/homeComponents/sendBitcoin/functions/decodeSendAdress.js b/app/components/admin/homeComponents/sendBitcoin/functions/decodeSendAdress.js
index 8b945fe5..27d91019 100644
--- a/app/components/admin/homeComponents/sendBitcoin/functions/decodeSendAdress.js
+++ b/app/components/admin/homeComponents/sendBitcoin/functions/decodeSendAdress.js
@@ -90,19 +90,15 @@ export default async function decodeSendAddress({
input = await parseInput(btcAdress);
}
- if (input.type != InputTypeVariant.LN_URL_PAY) {
+ if (input.type === InputTypeVariant.BOLT11) {
const currentTime = Math.floor(Date.now() / 1000);
const expirationTime = input.invoice.timestamp + input.invoice.expiry;
const isExpired = currentTime > expirationTime;
- console.log(isExpired, 'IS EXPIRED');
if (isExpired) {
navigate.navigate('ErrorScreen', {
errorMessage: 'Invoice is expired',
customNavigator: () => goBackFunction(),
});
- // Alert.alert('Invoice is expired', '', [
- // {text: 'Ok', onPress: () => goBackFunction()},
- // ]);
return;
}
}
@@ -214,22 +210,15 @@ async function setupLNPage({
errorMessage: 'LNURL successfully authenticated',
customNavigator: () => goBackFunction(),
});
- // Alert.alert('LNURL successfully authenticated', '', [
- // {text: 'Ok', onPress: () => goBackFunction()},
- // ]);
} else {
navigate.navigate('ErrorScreen', {
errorMessage: 'Failed to authenticate LNURL',
customNavigator: () => goBackFunction(),
});
- // Alert.alert('Failed to authenticate LNURL', '', [
- // {text: 'Ok', onPress: () => goBackFunction()},
- // ]);
}
return;
} else if (input.type === InputTypeVariant.LN_URL_PAY) {
const amountMsat = input.data.minSendable;
- console.log(input.data);
setSendingAmount(
`${
@@ -346,20 +335,12 @@ async function setupLNPage({
}
setSendingAmount(!input.invoice.amountMsat ? '' : input.invoice.amountMsat);
setPaymentInfo(input);
-
- // setTimeout(() => {
- // setIsLoading(false);
- // }, 1000);
} catch (err) {
navigate.navigate('ErrorScreen', {
errorMessage: 'Not a valid Address',
customNavigator: () => goBackFunction(),
});
- // Alert.alert(
- // 'Not a valid LN Address',
- // 'Please try again with a bolt 11 address',
- // [{text: 'Ok', onPress: () => goBackFunction()}],
- // );
+
console.log(err);
}
}
diff --git a/app/constants/index.js b/app/constants/index.js
index c4cd5d2e..7f37c8e9 100644
--- a/app/constants/index.js
+++ b/app/constants/index.js
@@ -32,6 +32,8 @@ const ECASH_KEYSET_STORAGE = 'ECASH_KEYSET_STORAGE';
const BREEZ_WORKING_DIR_KEY = 'BREEZ_WORKING_DIR';
const QUICK_PAY_STORAGE_KEY = 'FAST_PAY_SETTINGS';
+const BLITZ_DEFAULT_PAYMENT_DESCRIPTION = 'Blitz Wallet';
+
const CHATGPT_INPUT_COST = 10 / 1000000;
const CHATGPT_OUTPUT_COST = 30 / 1000000;
@@ -67,4 +69,5 @@ export {
ECASH_KEYSET_STORAGE,
BREEZ_WORKING_DIR_KEY,
QUICK_PAY_STORAGE_KEY,
+ BLITZ_DEFAULT_PAYMENT_DESCRIPTION,
};
diff --git a/app/functions/CustomElements/textTheme.js b/app/functions/CustomElements/textTheme.js
index 196aaba5..4c2c76cf 100644
--- a/app/functions/CustomElements/textTheme.js
+++ b/app/functions/CustomElements/textTheme.js
@@ -2,10 +2,18 @@ import {Text, View} from 'react-native';
import {useGlobalContextProvider} from '../../../context-store/context';
import {COLORS, FONT, SIZES} from '../../constants';
-export default function ThemeText({content, styles, reversed}) {
+export default function ThemeText({
+ content,
+ styles,
+ reversed,
+ CustomEllipsizeMode,
+ CustomNumberOfLines,
+}) {
const {theme} = useGlobalContextProvider();
return (
-
-
- {props.isFailedPayment
- ? t('transactionLabelText.failed')
- : props.userBalanceDenomination === 'hidden'
- ? '*****'
- : props.isLiquidPayment
- ? transaction.type === 'outgoing'
- ? t('constants.sent')
- : t('constants.received')
- : !transaction.description
- ? transaction.paymentType === 'sent'
- ? t('constants.sent')
- : t('constants.received')
- : transaction.metadata?.includes('usedAppStore')
- ? `${t('constants.store')} - ${
- transaction.metadata?.split('"')[5]
- }`
- : transaction.description.includes('bwrfd')
- ? t('constants.faucet')
- : transaction.description.length > 12
- ? transaction.description.slice(0, 12) + '...'
- : transaction.description}
-
+
+
setTimeout(resolve, 5000));
+ await new Promise(resolve => setTimeout(resolve, 2000));
}
} catch (err) {
console.error('Directory Creation Error:', err);
diff --git a/app/functions/eCash/index.js b/app/functions/eCash/index.js
index 425bdfa1..ae93d9ae 100644
--- a/app/functions/eCash/index.js
+++ b/app/functions/eCash/index.js
@@ -15,6 +15,7 @@ import {
encriptMessage,
} from '../messaging/encodingAndDecodingMessages';
import {sumProofsValue} from './proofs';
+import {BLITZ_DEFAULT_PAYMENT_DESCRIPTION} from '../../constants';
const wallets = {};
@@ -34,7 +35,7 @@ async function getECashInvoice({amount, mintURL, descriptoin}) {
const mintQuote = await wallet.createMintQuote(
amount,
- descriptoin || 'No description',
+ descriptoin || BLITZ_DEFAULT_PAYMENT_DESCRIPTION,
);
localStoredQuotes.push(mintQuote);
setLocalStorageItem('ecashQuotes', JSON.stringify(localStoredQuotes));
@@ -176,13 +177,6 @@ export async function cleanEcashWalletState(currentMint) {
const usableProofs = currentMint.proofs;
const spentProofs = await wallet.checkProofsStates(usableProofs);
- console.log(spentProofs, spentProofs.length);
-
- console.log(
- usableProofs.filter((proof, index) => {
- return spentProofs[index].state === CheckStateEnum.SPENT;
- }),
- );
return usableProofs.filter((proof, index) => {
return spentProofs[index].state === CheckStateEnum.SPENT;
diff --git a/app/functions/receiveBitcoin/addressGenerationNew.js b/app/functions/receiveBitcoin/addressGenerationNew.js
index 38bd7ae2..263a230b 100644
--- a/app/functions/receiveBitcoin/addressGenerationNew.js
+++ b/app/functions/receiveBitcoin/addressGenerationNew.js
@@ -18,6 +18,7 @@ import {
setLocalStorageItem,
} from '../localStorage';
import {isMoreThan40MinOld} from '../rotateAddressDateChecker';
+import {BLITZ_DEFAULT_PAYMENT_DESCRIPTION} from '../../constants';
export async function initializeAddressProcess(wolletInfo) {
const {setAddressState, selectedRecieveOption, bitcoinWSSRef} = wolletInfo;
@@ -171,7 +172,7 @@ async function generateLightningAddress(wolletInfo) {
) {
const invoice = await receivePayment({
amountMsat: receivingAmount * 1000,
- description: description || '',
+ description: description || BLITZ_DEFAULT_PAYMENT_DESCRIPTION,
});
if (invoice) {
setAddressState(prev => {
@@ -230,7 +231,7 @@ async function generateLightningAddress(wolletInfo) {
} else {
const invoice = await receivePayment({
amountMsat: receivingAmount * 1000,
- description: description || '',
+ description: description || BLITZ_DEFAULT_PAYMENT_DESCRIPTION,
});
setAddressState(prev => {
return {
diff --git a/context-store/eCash.js b/context-store/eCash.js
index ef948075..4ccf568e 100644
--- a/context-store/eCash.js
+++ b/context-store/eCash.js
@@ -115,12 +115,11 @@ export const GlobaleCashVariables = ({children}) => {
};
useEffect(() => {
- if (ecashTransactions.length == 0) return;
-
- console.log(parsedEcashInformation, 'IN CLEAN FUNCTION ');
+ if (eCashBalance == 0) return;
+ console.log('IN CLEAN EACASH FUNCTION');
cleanWallet();
- }, [ecashTransactions]);
+ }, [eCashBalance]);
const cleanWallet = async () => {
try {
@@ -129,12 +128,9 @@ export const GlobaleCashVariables = ({children}) => {
const newList = await Promise.all(
parsedEcashInformation.map(async mint => {
const usedProofs = await cleanEcashWalletState(mint);
- console.log(usedProofs, 'USED PROOFS');
const availableProofs = removeProofs(usedProofs, mint.proofs);
- console.log(availableProofs, 'AVAILABLE PROOFS');
-
if (usedProofs.length > 0) {
doesNeedToUpdate = true;
}
@@ -463,7 +459,7 @@ export const GlobaleCashVariables = ({children}) => {
const formattedEcashTx = formatEcashTx({
time: Date.now(),
amount: eCashPaymentInformation.quote.amount,
- fee: realFee,
+ fee: realFee < 0 ? 0 : realFee,
paymentType: 'sent',
preImage: payResponse.payment_preimage,
});
@@ -507,6 +503,8 @@ export const GlobaleCashVariables = ({children}) => {
}, 2000);
}
} catch (err) {
+ const newProofs = removeProofs(walletProofsToDelete, globalProofTracker);
+ globalProofTracker = newProofs;
setEcashPaymentInformation({
quote: null,
invoice: null,
@@ -514,7 +512,7 @@ export const GlobaleCashVariables = ({children}) => {
});
saveNewEcashInformation({
transactions: currentMint.transactions,
- proofs: [...globalProofTracker, ...returnChangeGlobal],
+ proofs: [...globalProofTracker, ...returnChangeGlobal, ...proofs],
});
if (eCashPaymentInformation.isAutoChannelRebalance || !eCashNavigate)
return;
diff --git a/context-store/notificationManager.js b/context-store/notificationManager.js
index 8d8d7e49..34b1ce68 100644
--- a/context-store/notificationManager.js
+++ b/context-store/notificationManager.js
@@ -23,8 +23,11 @@ import {addDataToCollection} from '../db';
import * as Device from 'expo-device';
import {useGlobalContextProvider} from './context';
import * as Crypto from 'react-native-quick-crypto';
+
import * as TaskManager from 'expo-task-manager';
+import messaging from '@react-native-firebase/messaging';
+
const PushNotificationManager = ({children}) => {
const {didGetToHomepage, masterInfoObject} = useGlobalContextProvider();
@@ -35,15 +38,19 @@ const PushNotificationManager = ({children}) => {
if (!didGetToHomepage || didRunRef.current) return;
didRunRef.current = true;
async function initNotification() {
+ console.log('IN INITIALIIZATION FUNCTION');
const {status} = await Notifications.requestPermissionsAsync();
+ console.log('AFTER STATUS FUNCTION', status);
if (status !== 'granted') {
console.log('Notification permission denied');
return;
}
if (Platform.OS === 'ios') Notifications.setBadgeCountAsync(0);
+ console.log('BEFROE REGISTER NOTIFICATION');
const deviceToken = await registerForPushNotificationsAsync();
+ console.log(deviceToken, 'DEVICE TOKEN');
if (deviceToken) {
await checkAndSavePushNotificationToDatabase(deviceToken);
} else {
@@ -52,6 +59,7 @@ const PushNotificationManager = ({children}) => {
registerNotificationHandlers();
}
+ console.log('BEFORE INIFIALIZATION FUNCTION CALL');
initNotification();
}, [didGetToHomepage]);
@@ -193,51 +201,53 @@ const PushNotificationManager = ({children}) => {
};
async function registerForPushNotificationsAsync() {
- let token;
-
- if (Platform.OS === 'android') {
- await Notifications.setNotificationChannelAsync(
- 'blitzWalletNotifications',
- {
- name: 'blitzWalletNotifications',
- importance: Notifications.AndroidImportance.MAX,
- vibrationPattern: [0, 250, 250, 250],
- lightColor: '#FF231F7C',
- },
- );
- }
-
- if (Device.isDevice) {
- const {status: existingStatus} = await Notifications.getPermissionsAsync();
- let finalStatus = existingStatus;
- if (existingStatus !== 'granted') {
- const {status} = await Notifications.requestPermissionsAsync();
- finalStatus = status;
- }
- if (finalStatus !== 'granted') {
- // Alert.alert('Failed to get push token for push notification!');
- return;
+ try {
+ if (Platform.OS === 'android') {
+ await Notifications.setNotificationChannelAsync(
+ 'blitzWalletNotifications',
+ {
+ name: 'blitzWalletNotifications',
+ importance: Notifications.AndroidImportance.MAX,
+ vibrationPattern: [0, 250, 250, 250],
+ lightColor: '#FF231F7C',
+ },
+ );
}
- try {
- const projectId = process.env.EXPO_PROJECT_ID;
- if (!projectId) {
- throw new Error('Project ID not found');
+
+ if (Device.isDevice) {
+ const permissionsResult = await Notifications.getPermissionsAsync();
+
+ let finalStatus = permissionsResult.status;
+
+ if (finalStatus !== 'granted') {
+ const requestResult = await Notifications.requestPermissionsAsync();
+
+ finalStatus = requestResult.status;
+ }
+
+ if (finalStatus !== 'granted') {
+ console.log('PERMISSIONS NOT GRANTED');
+ return false;
+ }
+
+ let options = {
+ projectId: process.env.EXPO_PROJECT_ID,
+ };
+ if (Platform.OS === 'ios') {
+ const token = await messaging().getAPNSToken();
+ options.devicePushToken = {type: 'ios', data: token};
}
- token = (
- await Notifications.getExpoPushTokenAsync({
- projectId: process.env.EXPO_PROJECT_ID,
- })
- ).data;
- console.log(token, 'PUSH TOKEN');
- } catch (e) {
- token = false;
- // Alert.alert('Not able to create push token', `${e}`);
+
+ const pushToken = await Notifications.getExpoPushTokenAsync(options);
+
+ return pushToken.data;
+ } else {
+ Alert.alert('Must use physical device for Push Notifications');
}
- } else {
- Alert.alert('Must use physical device for Push Notifications');
+ } catch (err) {
+ console.error('UNEXPECTED ERROR IN FUNCTION', err);
+ return false;
}
-
- return token;
}
// Define the task name
diff --git a/ios/BlitzWallet.xcodeproj/project.pbxproj b/ios/BlitzWallet.xcodeproj/project.pbxproj
index 1a2dbe33..830e3a12 100644
--- a/ios/BlitzWallet.xcodeproj/project.pbxproj
+++ b/ios/BlitzWallet.xcodeproj/project.pbxproj
@@ -439,8 +439,6 @@
Base,
);
mainGroup = 83CBB9F61A601CBA00E9B192;
- packageReferences = (
- );
productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */;
projectDirPath = "";
projectRoot = "";
@@ -818,7 +816,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = BlitzWallet/BlitzWallet.entitlements;
- CURRENT_PROJECT_VERSION = 13;
+ CURRENT_PROJECT_VERSION = 14;
DEVELOPMENT_TEAM = 38WX44YTA6;
ENABLE_BITCODE = NO;
INFOPLIST_FILE = BlitzWallet/Info.plist;
@@ -828,7 +826,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
- MARKETING_VERSION = 3.0.1;
+ MARKETING_VERSION = 3.0.2;
OTHER_LDFLAGS = (
"$(inherited)",
"-ObjC",
@@ -856,7 +854,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = BlitzWallet/BlitzWallet.entitlements;
- CURRENT_PROJECT_VERSION = 13;
+ CURRENT_PROJECT_VERSION = 14;
DEVELOPMENT_TEAM = 38WX44YTA6;
INFOPLIST_FILE = BlitzWallet/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = "Blitz Wallet";
@@ -865,7 +863,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
- MARKETING_VERSION = 3.0.1;
+ MARKETING_VERSION = 3.0.2;
OTHER_LDFLAGS = (
"$(inherited)",
"-ObjC",
diff --git a/ios/BlitzWallet/BlitzWallet.entitlements b/ios/BlitzWallet/BlitzWallet.entitlements
index 4c129892..039f2899 100644
--- a/ios/BlitzWallet/BlitzWallet.entitlements
+++ b/ios/BlitzWallet/BlitzWallet.entitlements
@@ -3,7 +3,7 @@
aps-environment
- development
+ production
com.apple.developer.associated-domains
applinks:blitz-wallet.com
diff --git a/ios/Podfile.lock b/ios/Podfile.lock
index 399b2896..8e05d18d 100644
--- a/ios/Podfile.lock
+++ b/ios/Podfile.lock
@@ -1245,13 +1245,16 @@ PODS:
- Firebase/Firestore (11.5.0):
- Firebase/CoreOnly
- FirebaseFirestore (~> 11.5.0)
+ - Firebase/Messaging (11.5.0):
+ - Firebase/CoreOnly
+ - FirebaseMessaging (~> 11.5.0)
- FirebaseAppCheck (11.5.0):
- AppCheckCore (~> 11.0)
- FirebaseAppCheckInterop (~> 11.0)
- FirebaseCore (= 11.5)
- GoogleUtilities/Environment (~> 8.0)
- GoogleUtilities/UserDefaults (~> 8.0)
- - FirebaseAppCheckInterop (11.5.0)
+ - FirebaseAppCheckInterop (11.6.0)
- FirebaseAuth (11.5.0):
- FirebaseAppCheckInterop (~> 11.0)
- FirebaseAuthInterop (~> 11.0)
@@ -1261,7 +1264,7 @@ PODS:
- GoogleUtilities/Environment (~> 8.0)
- GTMSessionFetcher/Core (< 5.0, >= 3.4)
- RecaptchaInterop (~> 100.0)
- - FirebaseAuthInterop (11.5.0)
+ - FirebaseAuthInterop (11.6.0)
- FirebaseCore (11.5.0):
- FirebaseCoreInternal (= 11.5)
- GoogleUtilities/Environment (~> 8.0)
@@ -1290,9 +1293,26 @@ PODS:
- gRPC-Core (~> 1.65.0)
- leveldb-library (~> 1.22)
- nanopb (~> 3.30910.0)
- - FirebaseSharedSwift (11.5.0)
+ - FirebaseInstallations (11.5.0):
+ - FirebaseCore (= 11.5)
+ - GoogleUtilities/Environment (~> 8.0)
+ - GoogleUtilities/UserDefaults (~> 8.0)
+ - PromisesObjC (~> 2.4)
+ - FirebaseMessaging (11.5.0):
+ - FirebaseCore (= 11.5)
+ - FirebaseInstallations (~> 11.0)
+ - GoogleDataTransport (~> 10.0)
+ - GoogleUtilities/AppDelegateSwizzler (~> 8.0)
+ - GoogleUtilities/Environment (~> 8.0)
+ - GoogleUtilities/Reachability (~> 8.0)
+ - GoogleUtilities/UserDefaults (~> 8.0)
+ - nanopb (~> 3.30910.0)
+ - FirebaseSharedSwift (11.6.0)
- fmt (9.1.0)
- glog (0.3.5)
+ - GoogleDataTransport (10.1.0):
+ - nanopb (~> 3.30910.0)
+ - PromisesObjC (~> 2.4)
- GoogleUtilities/AppDelegateSwizzler (8.0.2):
- GoogleUtilities/Environment
- GoogleUtilities/Logger
@@ -3096,6 +3116,11 @@ PODS:
- Firebase/Firestore (= 11.5.0)
- React-Core
- RNFBApp
+ - RNFBMessaging (21.6.1):
+ - Firebase/Messaging (= 11.5.0)
+ - FirebaseCoreExtension
+ - React-Core
+ - RNFBApp
- RNGestureHandler (2.19.0):
- DoubleConversion
- glog
@@ -3327,6 +3352,7 @@ DEPENDENCIES:
- "RNFBAppCheck (from `../node_modules/@react-native-firebase/app-check`)"
- "RNFBAuth (from `../node_modules/@react-native-firebase/auth`)"
- "RNFBFirestore (from `../node_modules/@react-native-firebase/firestore`)"
+ - "RNFBMessaging (from `../node_modules/@react-native-firebase/messaging`)"
- RNGestureHandler (from `../node_modules/react-native-gesture-handler`)
- RNReanimated (from `../node_modules/react-native-reanimated`)
- RNScreens (from `../node_modules/react-native-screens`)
@@ -3352,7 +3378,10 @@ SPEC REPOS:
- FirebaseCoreInternal
- FirebaseFirestore
- FirebaseFirestoreInternal
+ - FirebaseInstallations
+ - FirebaseMessaging
- FirebaseSharedSwift
+ - GoogleDataTransport
- GoogleUtilities
- "gRPC-C++"
- gRPC-Core
@@ -3573,6 +3602,8 @@ EXTERNAL SOURCES:
:path: "../node_modules/@react-native-firebase/auth"
RNFBFirestore:
:path: "../node_modules/@react-native-firebase/firestore"
+ RNFBMessaging:
+ :path: "../node_modules/@react-native-firebase/messaging"
RNGestureHandler:
:path: "../node_modules/react-native-gesture-handler"
RNReanimated:
@@ -3621,17 +3652,20 @@ SPEC CHECKSUMS:
FBLazyVector: 38bb611218305c3bc61803e287b8a81c6f63b619
Firebase: 7a56fe4f56b5ab81b86a6822f5b8f909ae6fc7e2
FirebaseAppCheck: 1c4adb8028cc5ec6a8d3d10f18b60293cddc45a4
- FirebaseAppCheckInterop: d265d9f4484e7ec1c591086408840fdd383d1213
+ FirebaseAppCheckInterop: 347aa09a805219a31249b58fc956888e9fcb314b
FirebaseAuth: d8ad770642af39d1be932094be5f5230efb0ea74
- FirebaseAuthInterop: 1219bee9b23e6ebe84c256a0d95adab53d11c331
+ FirebaseAuthInterop: a919d415797d23b7bfe195a04f322b86c65020ef
FirebaseCore: 93abc05437f8064cd2bc0a53b768fb0bc5a1d006
FirebaseCoreExtension: ddb2eb987f736b714d30f6386795b52c4670439e
FirebaseCoreInternal: f47dd28ae7782e6a4738aad3106071a8fe0af604
FirebaseFirestore: 3f59cb7b6f62b362886743d4c92e83a66b5e0a5d
FirebaseFirestoreInternal: d8d71a7f27834573404834172886183f1cd48c3d
- FirebaseSharedSwift: 302ac5967857ad7e7388b15382d705b8c8d892aa
+ FirebaseInstallations: d8063d302a426d114ac531cd82b1e335a0565745
+ FirebaseMessaging: 9f4e42053241bd45ce8565c881bfdd9c1df2f7da
+ FirebaseSharedSwift: a4e5dfca3e210633bb3a3dfb94176c019211948b
fmt: 4c2741a687cc09f0634a2e2c72a838b99f1ff120
glog: 69ef571f3de08433d766d614c73a9838a06bf7eb
+ GoogleDataTransport: aae35b7ea0c09004c3797d53c8c41f66f219d6a7
GoogleUtilities: 26a3abef001b6533cf678d3eb38fd3f614b7872d
"gRPC-C++": 2fa52b3141e7789a28a737f251e0c45b4cb20a87
gRPC-Core: a27c294d6149e1c39a7d173527119cfbc3375ce4
@@ -3719,6 +3753,7 @@ SPEC CHECKSUMS:
RNFBAppCheck: 4786f8d5c8eb7bf00588248c59d08d99ad8aadb8
RNFBAuth: 15a007eecd6ba7b9e52b45e2b41cdf6fe9f13968
RNFBFirestore: 6db2eb460dd774c0a28210fcee2c80a4afbd54dc
+ RNFBMessaging: dd213f66f36b249f9ab035efe24dc2a3ede8f8c5
RNGestureHandler: f81137aeaf7a060c491d0a43af0f5ef6a8867250
RNReanimated: 588d6037ed5b6aed59f0a1d08f163efce125d0cb
RNScreens: de55b9d7de8a017d1588dcb70415492d0b0597c2
diff --git a/package.json b/package.json
index f4979926..8249ecdc 100644
--- a/package.json
+++ b/package.json
@@ -25,6 +25,7 @@
"@react-native-firebase/app-check": "^21.6.1",
"@react-native-firebase/auth": "^21.6.1",
"@react-native-firebase/firestore": "^21.6.1",
+ "@react-native-firebase/messaging": "^21.6.1",
"@react-native-voice/voice": "^3.2.4",
"@react-navigation/bottom-tabs": "^6.6.1",
"@react-navigation/drawer": "^6.7.2",
diff --git a/yarn.lock b/yarn.lock
index 0a6e1baf..021019ce 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -3832,6 +3832,19 @@ __metadata:
languageName: node
linkType: hard
+"@react-native-firebase/messaging@npm:^21.6.1":
+ version: 21.6.1
+ resolution: "@react-native-firebase/messaging@npm:21.6.1"
+ peerDependencies:
+ "@react-native-firebase/app": 21.6.1
+ expo: ">=47.0.0"
+ peerDependenciesMeta:
+ expo:
+ optional: true
+ checksum: a187acb8573807790eef9ae47281a5c241b7234075d14030969f62923fd536dacc43c194cd05d9e6fb2b09400f8fc86f50baf8bdfc6cae5da60322f0ce4a2f2a
+ languageName: node
+ linkType: hard
+
"@react-native-voice/voice@npm:^3.2.4":
version: 3.2.4
resolution: "@react-native-voice/voice@npm:3.2.4"
@@ -5011,6 +5024,7 @@ __metadata:
"@react-native-firebase/app-check": ^21.6.1
"@react-native-firebase/auth": ^21.6.1
"@react-native-firebase/firestore": ^21.6.1
+ "@react-native-firebase/messaging": ^21.6.1
"@react-native-voice/voice": ^3.2.4
"@react-native/babel-preset": 0.75.2
"@react-native/eslint-config": 0.75.2