diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 62dba22579..7ed8b7a608 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -2,7 +2,4 @@ ##### Ticket -YOMO- - -> [!NOTE] -> Please create the ticket if missing it. +YV- diff --git a/.github/workflows/wallet-mobile-gitlab.yml b/.github/workflows/wallet-mobile-gitlab.yml deleted file mode 100644 index f6e6e5d2bf..0000000000 --- a/.github/workflows/wallet-mobile-gitlab.yml +++ /dev/null @@ -1,17 +0,0 @@ -name: wallet-mobile-gitlab - -on: push - -jobs: - Build_Request: - name: Request building the app - runs-on: ubuntu-latest - steps: - - name: Get branch name - run: echo "branch_name=$(echo ${GITHUB_REF_NAME})" >> $GITHUB_OUTPUT - id: get_branch_name - - - name: Trigger GitLab CI - run: | - echo Branch name is ${{ steps.get_branch_name.outputs.branch_name }} - curl --request POST --form token=${{ secrets.GITLAB_TOKEN }} --form ref=main --form "variables[BUILD_BRANCH]=${{ steps.get_branch_name.outputs.branch_name }}" ${{ secrets.GITLAB_API_PIPELINE }} > response.json \ No newline at end of file diff --git a/apps/wallet-mobile/.storybook/storybook.requires.js b/apps/wallet-mobile/.storybook/storybook.requires.js index 7046d09d9b..89604e728f 100644 --- a/apps/wallet-mobile/.storybook/storybook.requires.js +++ b/apps/wallet-mobile/.storybook/storybook.requires.js @@ -88,6 +88,7 @@ const getStories = () => { "./src/components/PairedBalance/PairedBalance.stories.tsx": require("../src/components/PairedBalance/PairedBalance.stories.tsx"), "./src/components/PressableIcon/PressableIcon.stories.tsx": require("../src/components/PressableIcon/PressableIcon.stories.tsx"), "./src/components/ShareQRCodeCard/ShareQRCodeCard.stories.tsx": require("../src/components/ShareQRCodeCard/ShareQRCodeCard.stories.tsx"), + "./src/components/SimpleTab/SimpleTab.stories.tsx": require("../src/components/SimpleTab/SimpleTab.stories.tsx"), "./src/components/SomethingWentWrong/SomethingWentWrong.stories.tsx": require("../src/components/SomethingWentWrong/SomethingWentWrong.stories.tsx"), "./src/components/StepperProgress/StepperProgress.stories.tsx": require("../src/components/StepperProgress/StepperProgress.stories.tsx"), "./src/components/TextInput/TextInput.stories.tsx": require("../src/components/TextInput/TextInput.stories.tsx"), @@ -117,11 +118,9 @@ const getStories = () => { "./src/features/Discover/useCases/BrowseDapp/BrowserTabsBar.stories.tsx": require("../src/features/Discover/useCases/BrowseDapp/BrowserTabsBar.stories.tsx"), "./src/features/Discover/useCases/BrowseDapp/BrowserToolbar.stories.tsx": require("../src/features/Discover/useCases/BrowseDapp/BrowserToolbar.stories.tsx"), "./src/features/Discover/useCases/BrowseDapp/WebViewItem.stories.tsx": require("../src/features/Discover/useCases/BrowseDapp/WebViewItem.stories.tsx"), - "./src/features/Discover/useCases/ReviewTransaction/ReviewTransaction.stories.tsx": require("../src/features/Discover/useCases/ReviewTransaction/ReviewTransaction.stories.tsx"), "./src/features/Discover/useCases/SearchDappInBrowser/SearchDappInBrowserScreen.stories.tsx": require("../src/features/Discover/useCases/SearchDappInBrowser/SearchDappInBrowserScreen.stories.tsx"), "./src/features/Discover/useCases/SelectDappFromList/CountDAppsAvailable/CountDAppsAvailable.stories.tsx": require("../src/features/Discover/useCases/SelectDappFromList/CountDAppsAvailable/CountDAppsAvailable.stories.tsx"), "./src/features/Discover/useCases/SelectDappFromList/CountDAppsConnected/CountDAppsConnected.stories.tsx": require("../src/features/Discover/useCases/SelectDappFromList/CountDAppsConnected/CountDAppsConnected.stories.tsx"), - "./src/features/Discover/useCases/SelectDappFromList/DAppExplorerTabItem/DAppExplorerTabItem.stories.tsx": require("../src/features/Discover/useCases/SelectDappFromList/DAppExplorerTabItem/DAppExplorerTabItem.stories.tsx"), "./src/features/Discover/useCases/SelectDappFromList/DAppListItem/DAppItemSkeleton.stories.tsx": require("../src/features/Discover/useCases/SelectDappFromList/DAppListItem/DAppItemSkeleton.stories.tsx"), "./src/features/Discover/useCases/SelectDappFromList/DAppListItem/DAppListItem.stories.tsx": require("../src/features/Discover/useCases/SelectDappFromList/DAppListItem/DAppListItem.stories.tsx"), "./src/features/Discover/useCases/SelectDappFromList/DAppTypes/DAppTypes.stories.tsx": require("../src/features/Discover/useCases/SelectDappFromList/DAppTypes/DAppTypes.stories.tsx"), @@ -134,7 +133,6 @@ const getStories = () => { "./src/features/Exchange/common/ShowBuyBanner/BuyBannerBig.stories.tsx": require("../src/features/Exchange/common/ShowBuyBanner/BuyBannerBig.stories.tsx"), "./src/features/Exchange/common/ShowBuyBanner/BuyBannerSmall.stories.tsx": require("../src/features/Exchange/common/ShowBuyBanner/BuyBannerSmall.stories.tsx"), "./src/features/Exchange/common/ShowBuyBanner/PreprodFaucetBanner.stories.tsx": require("../src/features/Exchange/common/ShowBuyBanner/PreprodFaucetBanner.stories.tsx"), - "./src/features/Exchange/common/ShowBuyBanner/SanchonetFaucetBanner.stories.tsx": require("../src/features/Exchange/common/ShowBuyBanner/SanchonetFaucetBanner.stories.tsx"), "./src/features/Exchange/common/ShowBuyBanner/ShowBuyBanner.stories.tsx": require("../src/features/Exchange/common/ShowBuyBanner/ShowBuyBanner.stories.tsx"), "./src/features/Exchange/useCases/CreateExchangeOrderScreen/CreateExchangeOrderScreen.stories.tsx": require("../src/features/Exchange/useCases/CreateExchangeOrderScreen/CreateExchangeOrderScreen.stories.tsx"), "./src/features/Exchange/useCases/CreateExchangeOrderScreen/EditAmount/EditAmount.stories.tsx": require("../src/features/Exchange/useCases/CreateExchangeOrderScreen/EditAmount/EditAmount.stories.tsx"), @@ -166,16 +164,13 @@ const getStories = () => { "./src/features/Receive/common/ShareDetailsCard/ShareDetailsCard.stories.tsx": require("../src/features/Receive/common/ShareDetailsCard/ShareDetailsCard.stories.tsx"), "./src/features/Receive/common/SingleOrMultipleAddressesModal/SingleOrMultipleAddressesModal.stories.tsx": require("../src/features/Receive/common/SingleOrMultipleAddressesModal/SingleOrMultipleAddressesModal.stories.tsx"), "./src/features/Receive/common/SmallAddressCard/SmallAddressCard.stories.tsx": require("../src/features/Receive/common/SmallAddressCard/SmallAddressCard.stories.tsx"), - "./src/features/RegisterCatalyst/useCases/ConfirmVotingTx/ConfirmVotingTx.stories.tsx": require("../src/features/RegisterCatalyst/useCases/ConfirmVotingTx/ConfirmVotingTx.stories.tsx"), "./src/features/RegisterCatalyst/useCases/ShowQrCode/ShowQrCode.stories.tsx": require("../src/features/RegisterCatalyst/useCases/ShowQrCode/ShowQrCode.stories.tsx"), + "./src/features/ReviewTx/useCases/ReviewTxScreen/ReviewTx/ReviewTx.stories.tsx": require("../src/features/ReviewTx/useCases/ReviewTxScreen/ReviewTx/ReviewTx.stories.tsx"), "./src/features/Scan/illustrations/Ilustrations.stories.tsx": require("../src/features/Scan/illustrations/Ilustrations.stories.tsx"), "./src/features/Scan/useCases/ScanCodeScreen.stories.tsx": require("../src/features/Scan/useCases/ScanCodeScreen.stories.tsx"), "./src/features/Scan/useCases/ShowCameraPermissionDeniedScreen/OpenDeviceAppSettingsButton.stories.tsx": require("../src/features/Scan/useCases/ShowCameraPermissionDeniedScreen/OpenDeviceAppSettingsButton.stories.tsx"), "./src/features/Scan/useCases/ShowCameraPermissionDeniedScreen/ShowCameraPermissionDeniedScreen.stories.tsx": require("../src/features/Scan/useCases/ShowCameraPermissionDeniedScreen/ShowCameraPermissionDeniedScreen.stories.tsx"), "./src/features/Send/common/ButtonGroup/ButtonGroup.stories.tsx": require("../src/features/Send/common/ButtonGroup/ButtonGroup.stories.tsx"), - "./src/features/Send/useCases/ConfirmTx/ConfirmTxScreen.stories.tsx": require("../src/features/Send/useCases/ConfirmTx/ConfirmTxScreen.stories.tsx"), - "./src/features/Send/useCases/ConfirmTx/FailedTx/FailedTxScreen.stories.tsx": require("../src/features/Send/useCases/ConfirmTx/FailedTx/FailedTxScreen.stories.tsx"), - "./src/features/Send/useCases/ConfirmTx/SubmittedTx/SubmittedTxScreen.stories.tsx": require("../src/features/Send/useCases/ConfirmTx/SubmittedTx/SubmittedTxScreen.stories.tsx"), "./src/features/Send/useCases/ListAmountsToSend/AddToken/AddToken.stories.tsx": require("../src/features/Send/useCases/ListAmountsToSend/AddToken/AddToken.stories.tsx"), "./src/features/Send/useCases/ListAmountsToSend/AddToken/SelectTokenFromListScreen.stories.tsx": require("../src/features/Send/useCases/ListAmountsToSend/AddToken/SelectTokenFromListScreen.stories.tsx"), "./src/features/Send/useCases/ListAmountsToSend/AddToken/Show/MaxAmountsPerTx.stories.tsx": require("../src/features/Send/useCases/ListAmountsToSend/AddToken/Show/MaxAmountsPerTx.stories.tsx"), @@ -186,25 +181,22 @@ const getStories = () => { "./src/features/Send/useCases/StartMultiTokenTx/NotifySupportedNameServers/NotifySupportedNameServers.stories.tsx": require("../src/features/Send/useCases/StartMultiTokenTx/NotifySupportedNameServers/NotifySupportedNameServers.stories.tsx"), "./src/features/Send/useCases/StartMultiTokenTx/SelectNameServer/SelectNameServer.stories.tsx": require("../src/features/Send/useCases/StartMultiTokenTx/SelectNameServer/SelectNameServer.stories.tsx"), "./src/features/Send/useCases/StartMultiTokenTx/StartMultiTokenTxScreen.stories.tsx": require("../src/features/Send/useCases/StartMultiTokenTx/StartMultiTokenTxScreen.stories.tsx"), - "./src/features/Settings/About/About.stories.tsx": require("../src/features/Settings/About/About.stories.tsx"), - "./src/features/Settings/ApplicationSettings/ApplicationSettingsScreen.stories.tsx": require("../src/features/Settings/ApplicationSettings/ApplicationSettingsScreen.stories.tsx"), - "./src/features/Settings/ChangeLanguage/ChangeLanguageScreen.stories.tsx": require("../src/features/Settings/ChangeLanguage/ChangeLanguageScreen.stories.tsx"), - "./src/features/Settings/ChangeNetwork/ChangeNetworkScreen.stories.tsx": require("../src/features/Settings/ChangeNetwork/ChangeNetworkScreen.stories.tsx"), - "./src/features/Settings/ChangePassword/ChangePasswordScreen.stories.tsx": require("../src/features/Settings/ChangePassword/ChangePasswordScreen.stories.tsx"), - "./src/features/Settings/ChangeTheme/ChangeThemeScreen.stories.tsx": require("../src/features/Settings/ChangeTheme/ChangeThemeScreen.stories.tsx"), - "./src/features/Settings/Currency/ChangeCurrencyScreen.stories.tsx": require("../src/features/Settings/Currency/ChangeCurrencyScreen.stories.tsx"), - "./src/features/Settings/EasyConfirmation/EasyConfirmationScreen.stories.tsx": require("../src/features/Settings/EasyConfirmation/EasyConfirmationScreen.stories.tsx"), - "./src/features/Settings/EnableLoginWithOs/EnableLoginWithOsScreen.stories.tsx": require("../src/features/Settings/EnableLoginWithOs/EnableLoginWithOsScreen.stories.tsx"), - "./src/features/Settings/ManageCollateral/ConfirmTx/ConfirmTxScreen.stories.tsx": require("../src/features/Settings/ManageCollateral/ConfirmTx/ConfirmTxScreen.stories.tsx"), - "./src/features/Settings/ManageCollateral/ConfirmTx/FailedTx/FailedTxScreen.stories.tsx": require("../src/features/Settings/ManageCollateral/ConfirmTx/FailedTx/FailedTxScreen.stories.tsx"), - "./src/features/Settings/ManageCollateral/ConfirmTx/SubmittedTx/SubmittedTxScreen.stories.tsx": require("../src/features/Settings/ManageCollateral/ConfirmTx/SubmittedTx/SubmittedTxScreen.stories.tsx"), - "./src/features/Settings/ManageCollateral/ManageCollateralScreen.stories.tsx": require("../src/features/Settings/ManageCollateral/ManageCollateralScreen.stories.tsx"), - "./src/features/Settings/PrivacyPolicy/PrivacyPolicyScreen.stories.tsx": require("../src/features/Settings/PrivacyPolicy/PrivacyPolicyScreen.stories.tsx"), - "./src/features/Settings/RemoveWallet/RemoveWalletScreen.stories.tsx": require("../src/features/Settings/RemoveWallet/RemoveWalletScreen.stories.tsx"), - "./src/features/Settings/RenameWalletScreen/RenameWalletScreen.stories.tsx": require("../src/features/Settings/RenameWalletScreen/RenameWalletScreen.stories.tsx"), - "./src/features/Settings/SystemLogScreen/SystemLogScreen.stories.tsx": require("../src/features/Settings/SystemLogScreen/SystemLogScreen.stories.tsx"), - "./src/features/Settings/TermsOfService/TermsOfServiceScreen.stories.tsx": require("../src/features/Settings/TermsOfService/TermsOfServiceScreen.stories.tsx"), - "./src/features/Settings/WalletSettings/WalletSettingsScreen.stories.tsx": require("../src/features/Settings/WalletSettings/WalletSettingsScreen.stories.tsx"), + "./src/features/Settings/useCases/changeAppSettings/About/About.stories.tsx": require("../src/features/Settings/useCases/changeAppSettings/About/About.stories.tsx"), + "./src/features/Settings/useCases/changeAppSettings/ApplicationSettingsScreen.stories.tsx": require("../src/features/Settings/useCases/changeAppSettings/ApplicationSettingsScreen.stories.tsx"), + "./src/features/Settings/useCases/changeAppSettings/ChangeLanguage/ChangeLanguageScreen.stories.tsx": require("../src/features/Settings/useCases/changeAppSettings/ChangeLanguage/ChangeLanguageScreen.stories.tsx"), + "./src/features/Settings/useCases/changeAppSettings/ChangeNetwork/ChangeNetworkScreen.stories.tsx": require("../src/features/Settings/useCases/changeAppSettings/ChangeNetwork/ChangeNetworkScreen.stories.tsx"), + "./src/features/Settings/useCases/changeAppSettings/ChangeTheme/ChangeThemeScreen.stories.tsx": require("../src/features/Settings/useCases/changeAppSettings/ChangeTheme/ChangeThemeScreen.stories.tsx"), + "./src/features/Settings/useCases/changeAppSettings/Currency/ChangeCurrencyScreen.stories.tsx": require("../src/features/Settings/useCases/changeAppSettings/Currency/ChangeCurrencyScreen.stories.tsx"), + "./src/features/Settings/useCases/changeAppSettings/EnableLoginWithOs/EnableLoginWithOsScreen.stories.tsx": require("../src/features/Settings/useCases/changeAppSettings/EnableLoginWithOs/EnableLoginWithOsScreen.stories.tsx"), + "./src/features/Settings/useCases/changeAppSettings/PrivacyPolicy/PrivacyPolicyScreen.stories.tsx": require("../src/features/Settings/useCases/changeAppSettings/PrivacyPolicy/PrivacyPolicyScreen.stories.tsx"), + "./src/features/Settings/useCases/changeAppSettings/SystemLogScreen/SystemLogScreen.stories.tsx": require("../src/features/Settings/useCases/changeAppSettings/SystemLogScreen/SystemLogScreen.stories.tsx"), + "./src/features/Settings/useCases/changeAppSettings/TermsOfService/TermsOfServiceScreen.stories.tsx": require("../src/features/Settings/useCases/changeAppSettings/TermsOfService/TermsOfServiceScreen.stories.tsx"), + "./src/features/Settings/useCases/changeWalletSettings/ChangePassword/ChangePasswordScreen.stories.tsx": require("../src/features/Settings/useCases/changeWalletSettings/ChangePassword/ChangePasswordScreen.stories.tsx"), + "./src/features/Settings/useCases/changeWalletSettings/EasyConfirmation/EasyConfirmationScreen.stories.tsx": require("../src/features/Settings/useCases/changeWalletSettings/EasyConfirmation/EasyConfirmationScreen.stories.tsx"), + "./src/features/Settings/useCases/changeWalletSettings/ManageCollateral/ManageCollateralScreen.stories.tsx": require("../src/features/Settings/useCases/changeWalletSettings/ManageCollateral/ManageCollateralScreen.stories.tsx"), + "./src/features/Settings/useCases/changeWalletSettings/RemoveWallet/RemoveWalletScreen.stories.tsx": require("../src/features/Settings/useCases/changeWalletSettings/RemoveWallet/RemoveWalletScreen.stories.tsx"), + "./src/features/Settings/useCases/changeWalletSettings/RenameWalletScreen/RenameWalletScreen.stories.tsx": require("../src/features/Settings/useCases/changeWalletSettings/RenameWalletScreen/RenameWalletScreen.stories.tsx"), + "./src/features/Settings/useCases/changeWalletSettings/WalletSettingsScreen.stories.tsx": require("../src/features/Settings/useCases/changeWalletSettings/WalletSettingsScreen.stories.tsx"), "./src/features/SetupWallet/common/ButtonCard/ButtonCard.stories.tsx": require("../src/features/SetupWallet/common/ButtonCard/ButtonCard.stories.tsx"), "./src/features/SetupWallet/common/CardAboutPhrase/CardAboutPhrase.stories.tsx": require("../src/features/SetupWallet/common/CardAboutPhrase/CardAboutPhrase.stories.tsx"), "./src/features/SetupWallet/common/LearnMoreButton/LearnMoreButton.stories.tsx": require("../src/features/SetupWallet/common/LearnMoreButton/LearnMoreButton.stories.tsx"), @@ -229,13 +221,10 @@ const getStories = () => { "./src/features/Staking/Governance/common/Action/Action.stories.tsx": require("../src/features/Staking/Governance/common/Action/Action.stories.tsx"), "./src/features/Staking/Governance/common/LearnMoreLink/LearnMoreLink.stories.tsx": require("../src/features/Staking/Governance/common/LearnMoreLink/LearnMoreLink.stories.tsx"), "./src/features/Staking/Governance/useCases/ChangeVote/ChangeVoteScreen.stories.tsx": require("../src/features/Staking/Governance/useCases/ChangeVote/ChangeVoteScreen.stories.tsx"), - "./src/features/Staking/Governance/useCases/ConfirmTx/ConfirmTxScreen.stories.tsx": require("../src/features/Staking/Governance/useCases/ConfirmTx/ConfirmTxScreen.stories.tsx"), "./src/features/Staking/Governance/useCases/EnterDrepIdModal/EnterDrepIdModal.stories.tsx": require("../src/features/Staking/Governance/useCases/EnterDrepIdModal/EnterDrepIdModal.stories.tsx"), - "./src/features/Staking/Governance/useCases/FailedTx/FailedTxScreen.stories.tsx": require("../src/features/Staking/Governance/useCases/FailedTx/FailedTxScreen.stories.tsx"), "./src/features/Staking/Governance/useCases/Home/HomeScreen.stories.tsx": require("../src/features/Staking/Governance/useCases/Home/HomeScreen.stories.tsx"), "./src/features/Staking/Governance/useCases/NoFunds/NoFundsScreen.stories.tsx": require("../src/features/Staking/Governance/useCases/NoFunds/NoFundsScreen.stories.tsx"), "./src/features/Staking/Governance/useCases/NotSupportedCardanoAppVersion/NotSupportedCardanoAppVersion.stories.tsx": require("../src/features/Staking/Governance/useCases/NotSupportedCardanoAppVersion/NotSupportedCardanoAppVersion.stories.tsx"), - "./src/features/Staking/Governance/useCases/SuccessTx/SuccessTxScreen.stories.tsx": require("../src/features/Staking/Governance/useCases/SuccessTx/SuccessTxScreen.stories.tsx"), "./src/features/Swap/common/AmountCard/AmountCard.stories.tsx": require("../src/features/Swap/common/AmountCard/AmountCard.stories.tsx"), "./src/features/Swap/common/ButtonGroup/ButtonGroup.stories.tsx": require("../src/features/Swap/common/ButtonGroup/ButtonGroup.stories.tsx"), "./src/features/Swap/common/ConfirmRawTx/ConfirmRawTx.stories.tsx": require("../src/features/Swap/common/ConfirmRawTx/ConfirmRawTx.stories.tsx"), @@ -243,12 +232,8 @@ const getStories = () => { "./src/features/Swap/common/LiquidityPool/LiquidityPool.stories.tsx": require("../src/features/Swap/common/LiquidityPool/LiquidityPool.stories.tsx"), "./src/features/Swap/common/SelectPool/SelectPoolFromList/SelectPoolFromList.stories.tsx": require("../src/features/Swap/common/SelectPool/SelectPoolFromList/SelectPoolFromList.stories.tsx"), "./src/features/Swap/common/ServiceUnavailable/ServiceUnavailable.stories.tsx": require("../src/features/Swap/common/ServiceUnavailable/ServiceUnavailable.stories.tsx"), - "./src/features/Swap/useCases/ConfirmTxScreen/ConfirmTxScreen.stories.tsx": require("../src/features/Swap/useCases/ConfirmTxScreen/ConfirmTxScreen.stories.tsx"), - "./src/features/Swap/useCases/ConfirmTxScreen/ShowFailedTxScreen/ShowFailedTxScreen.stories.tsx": require("../src/features/Swap/useCases/ConfirmTxScreen/ShowFailedTxScreen/ShowFailedTxScreen.stories.tsx"), - "./src/features/Swap/useCases/ConfirmTxScreen/ShowSubmittedTxScreen/ShowSubmittedTxScreen.stories.tsx": require("../src/features/Swap/useCases/ConfirmTxScreen/ShowSubmittedTxScreen/ShowSubmittedTxScreen.stories.tsx"), - "./src/features/Swap/useCases/ConfirmTxScreen/TransactionSummary.stories.tsx": require("../src/features/Swap/useCases/ConfirmTxScreen/TransactionSummary.stories.tsx"), + "./src/features/Swap/useCases/ReviewSwap/TransactionSummary.stories.tsx": require("../src/features/Swap/useCases/ReviewSwap/TransactionSummary.stories.tsx"), "./src/features/Swap/useCases/ShowPreprodNoticeScreen/ShowPreprodNoticeScreen.stories.tsx": require("../src/features/Swap/useCases/ShowPreprodNoticeScreen/ShowPreprodNoticeScreen.stories.tsx"), - "./src/features/Swap/useCases/ShowSanchoNoticeScreen/ShowSanchoNoticeScreen.stories.tsx": require("../src/features/Swap/useCases/ShowSanchoNoticeScreen/ShowSanchoNoticeScreen.stories.tsx"), "./src/features/Swap/useCases/StartOrderSwapScreen/CreateOrder/Actions/AmountActions/AmountActions.stories.tsx": require("../src/features/Swap/useCases/StartOrderSwapScreen/CreateOrder/Actions/AmountActions/AmountActions.stories.tsx"), "./src/features/Swap/useCases/StartOrderSwapScreen/CreateOrder/Actions/AmountActions/ResetQuantities.stories.tsx": require("../src/features/Swap/useCases/StartOrderSwapScreen/CreateOrder/Actions/AmountActions/ResetQuantities.stories.tsx"), "./src/features/Swap/useCases/StartOrderSwapScreen/CreateOrder/Actions/AmountActions/SwitchTokens.stories.tsx": require("../src/features/Swap/useCases/StartOrderSwapScreen/CreateOrder/Actions/AmountActions/SwitchTokens.stories.tsx"), @@ -290,8 +275,6 @@ const getStories = () => { "./src/legacy/HW/LedgerConnect/DeviceItem/DeviceItem.stories.tsx": require("../src/legacy/HW/LedgerConnect/DeviceItem/DeviceItem.stories.tsx"), "./src/legacy/HW/LedgerConnect/LedgerConnect.stories.tsx": require("../src/legacy/HW/LedgerConnect/LedgerConnect.stories.tsx"), "./src/legacy/HW/LedgerTransportSwitchModal/LedgerTransportSwitchModal.stories.tsx": require("../src/legacy/HW/LedgerTransportSwitchModal/LedgerTransportSwitchModal.stories.tsx"), - "./src/legacy/Staking/DelegationConfirmation/DelegationConfirmation.stories.tsx": require("../src/legacy/Staking/DelegationConfirmation/DelegationConfirmation.stories.tsx"), - "./src/legacy/Staking/FailedTx/FailedTxScreen.stories.tsx": require("../src/legacy/Staking/FailedTx/FailedTxScreen.stories.tsx"), "./src/legacy/Staking/PoolDetails/PoolDetailScreen.stories.tsx": require("../src/legacy/Staking/PoolDetails/PoolDetailScreen.stories.tsx"), "./src/legacy/Staking/PoolTransition/PoolTransitionModal.stories.tsx": require("../src/legacy/Staking/PoolTransition/PoolTransitionModal.stories.tsx"), "./src/legacy/Staking/StakingCenter/StakingCenter.stories.tsx": require("../src/legacy/Staking/StakingCenter/StakingCenter.stories.tsx"), diff --git a/apps/wallet-mobile/android/app/build.gradle b/apps/wallet-mobile/android/app/build.gradle index b0b3dd52f7..5aa9e6050d 100644 --- a/apps/wallet-mobile/android/app/build.gradle +++ b/apps/wallet-mobile/android/app/build.gradle @@ -108,8 +108,8 @@ android { applicationId "com.emurgo" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion - versionName "5.0.2" - versionCode 738 + versionName "5.2.0" + versionCode 753 testBuildType System.getProperty('testBuildType', 'debug') testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner' } @@ -217,6 +217,8 @@ dependencies { exclude group:'com.squareup.okhttp3', module:'okhttp' } + implementation project(':react-native-notifications') + debugImplementation("com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}") if (hermesEnabled.toBoolean()) { implementation("com.facebook.react:hermes-android") diff --git a/apps/wallet-mobile/android/app/src/dev/AndroidManifest.xml b/apps/wallet-mobile/android/app/src/dev/AndroidManifest.xml index 4b185bc159..b443da27ad 100644 --- a/apps/wallet-mobile/android/app/src/dev/AndroidManifest.xml +++ b/apps/wallet-mobile/android/app/src/dev/AndroidManifest.xml @@ -3,6 +3,7 @@ xmlns:tools="http://schemas.android.com/tools"> + + diff --git a/apps/wallet-mobile/android/app/src/main/java/com/emurgo/MainApplication.java b/apps/wallet-mobile/android/app/src/main/java/com/emurgo/MainApplication.java index 15068c7e37..88dfe9af15 100644 --- a/apps/wallet-mobile/android/app/src/main/java/com/emurgo/MainApplication.java +++ b/apps/wallet-mobile/android/app/src/main/java/com/emurgo/MainApplication.java @@ -2,6 +2,7 @@ import android.content.res.Configuration; import expo.modules.ApplicationLifecycleDispatcher; import expo.modules.ReactNativeHostWrapper; +import com.wix.reactnativenotifications.RNNotificationsPackage; import android.app.Application; import com.facebook.react.PackageList; diff --git a/apps/wallet-mobile/android/settings.gradle b/apps/wallet-mobile/android/settings.gradle index f9ab1cbddf..927140d6f2 100644 --- a/apps/wallet-mobile/android/settings.gradle +++ b/apps/wallet-mobile/android/settings.gradle @@ -4,4 +4,7 @@ include ':app' includeBuild('../../../node_modules/react-native-gradle-plugin') apply from: new File(["node", "--print", "require.resolve('expo/package.json')"].execute(null, rootDir).text.trim(), "../scripts/autolinking.gradle") -useExpoModules() \ No newline at end of file +useExpoModules() + +include ':react-native-notifications' +project(':react-native-notifications').projectDir = new File(rootProject.projectDir, '../../../node_modules/@jamsinclair/react-native-notifications/lib/android/app') \ No newline at end of file diff --git a/apps/wallet-mobile/app.json b/apps/wallet-mobile/app.json index cae303456c..09cea4ba2c 100644 --- a/apps/wallet-mobile/app.json +++ b/apps/wallet-mobile/app.json @@ -8,6 +8,16 @@ "sentry-expo" ], "sdkVersion": "48.0.0", - "entryPoint": ".vscode/exponentIndex.js" + "entryPoint": ".vscode/exponentIndex.js", + "ios": { + "infoPlist": { + "UIBackgroundModes": ["fetch", "remote-notification"] + }, + "expo-build-properties": { + "ios": { + "deploymentTarget": "14.0" + } + } + } } -} \ No newline at end of file +} diff --git a/apps/wallet-mobile/fastlane/Matchfile b/apps/wallet-mobile/fastlane/Matchfile index 62e45f6a2d..9288fd9d32 100644 --- a/apps/wallet-mobile/fastlane/Matchfile +++ b/apps/wallet-mobile/fastlane/Matchfile @@ -1,4 +1,4 @@ -git_url("git@github.com:Emurgo/yoroi-certs.git") +git_url("git@github.com:Emurgo/yoroi-certificates.git") storage_mode("git") diff --git a/apps/wallet-mobile/ios/Podfile b/apps/wallet-mobile/ios/Podfile index 60d6d70081..bf837145f4 100644 --- a/apps/wallet-mobile/ios/Podfile +++ b/apps/wallet-mobile/ios/Podfile @@ -2,7 +2,7 @@ require File.join(File.dirname(`node --print "require.resolve('expo/package.json require_relative '../../../node_modules/react-native/scripts/react_native_pods' require_relative '../../../node_modules/@react-native-community/cli-platform-ios/native_modules' -platform :ios, '13.0' +platform :ios, '14.0' prepare_react_native_project! # If you are using a `react-native-flipper` your iOS build will fail when `NO_FLIPPER=1` is set. diff --git a/apps/wallet-mobile/ios/Podfile.lock b/apps/wallet-mobile/ios/Podfile.lock index f094a30104..ae5aa705ef 100644 --- a/apps/wallet-mobile/ios/Podfile.lock +++ b/apps/wallet-mobile/ios/Podfile.lock @@ -25,6 +25,8 @@ PODS: - React-Core - Expo (48.0.20): - ExpoModulesCore + - ExpoBackgroundFetch (11.8.1): + - ExpoModulesCore - ExpoBlur (12.9.2): - ExpoModulesCore - ExpoDevice (5.4.0): @@ -43,6 +45,9 @@ PODS: - ReactCommon/turbomodule/core - ExpoSystemUI (2.2.1): - ExpoModulesCore + - EXTaskManager (11.7.3): + - ExpoModulesCore + - UMAppLoader - FBLazyVector (0.71.14) - FBReactNativeSpec (0.71.14): - RCT-Folly (= 2021.07.22.00) @@ -354,13 +359,15 @@ PODS: - react-native-config/App (= 1.5.1) - react-native-config/App (1.5.1): - React-Core - - react-native-haskell-shelley (6.1.0-beta.1): + - react-native-haskell-shelley (7.1.0): - React - react-native-message_signing-library (1.0.4): - React - react-native-mmkv (2.11.0): - MMKV (>= 1.2.13) - React-Core + - react-native-notifications (5.1.1): + - React-Core - react-native-pager-view (6.2.0): - React-Core - react-native-quick-base64 (2.0.6): @@ -537,6 +544,7 @@ PODS: - Sentry/HybridSDK (8.9.3): - SentryPrivate (= 8.9.3) - SentryPrivate (8.9.3) + - UMAppLoader (4.5.1) - Yoga (1.14.0) - ZXingObjC/Core (3.6.9) - ZXingObjC/OneD (3.6.9): @@ -557,12 +565,14 @@ DEPENDENCIES: - EXFont (from `../../../node_modules/expo-font/ios`) - EXImageLoader (from `../../../node_modules/expo-image-loader/ios`) - Expo (from `../../../node_modules/expo`) + - ExpoBackgroundFetch (from `../../../node_modules/expo-background-fetch/ios`) - ExpoBlur (from `../../../node_modules/expo-blur/ios`) - ExpoDevice (from `../../../node_modules/expo-device/ios`) - ExpoImage (from `../../../node_modules/expo-image/ios`) - ExpoKeepAwake (from `../../../node_modules/expo-keep-awake/ios`) - ExpoModulesCore (from `../../../node_modules/expo-modules-core`) - ExpoSystemUI (from `../../../node_modules/expo-system-ui/ios`) + - EXTaskManager (from `../../../node_modules/expo-task-manager/ios`) - FBLazyVector (from `../../../node_modules/react-native/Libraries/FBLazyVector`) - FBReactNativeSpec (from `../../../node_modules/react-native/React/FBReactNativeSpec`) - glog (from `../../../node_modules/react-native/third-party-podspecs/glog.podspec`) @@ -595,6 +605,7 @@ DEPENDENCIES: - "react-native-haskell-shelley (from `../../../node_modules/@emurgo/csl-mobile-bridge`)" - "react-native-message_signing-library (from `../../../node_modules/@emurgo/msl-mobile-bridge`)" - react-native-mmkv (from `../../../node_modules/react-native-mmkv`) + - "react-native-notifications (from `../../../node_modules/@jamsinclair/react-native-notifications`)" - react-native-pager-view (from `../../../node_modules/react-native-pager-view`) - react-native-quick-base64 (from `../../../node_modules/react-native-quick-base64`) - react-native-randombytes (from `../../../node_modules/react-native-randombytes`) @@ -632,6 +643,7 @@ DEPENDENCIES: - "RNSentry (from `../../../node_modules/@sentry/react-native`)" - RNShare (from `../../../node_modules/react-native-share`) - RNSVG (from `../../../node_modules/react-native-svg`) + - UMAppLoader (from `../../../node_modules/unimodules-app-loader/ios`) - Yoga (from `../../../node_modules/react-native/ReactCommon/yoga`) SPEC REPOS: @@ -678,6 +690,8 @@ EXTERNAL SOURCES: :path: "../../../node_modules/expo-image-loader/ios" Expo: :path: "../../../node_modules/expo" + ExpoBackgroundFetch: + :path: "../../../node_modules/expo-background-fetch/ios" ExpoBlur: :path: "../../../node_modules/expo-blur/ios" ExpoDevice: @@ -690,6 +704,8 @@ EXTERNAL SOURCES: :path: "../../../node_modules/expo-modules-core" ExpoSystemUI: :path: "../../../node_modules/expo-system-ui/ios" + EXTaskManager: + :path: "../../../node_modules/expo-task-manager/ios" FBLazyVector: :path: "../../../node_modules/react-native/Libraries/FBLazyVector" FBReactNativeSpec: @@ -750,6 +766,8 @@ EXTERNAL SOURCES: :path: "../../../node_modules/@emurgo/msl-mobile-bridge" react-native-mmkv: :path: "../../../node_modules/react-native-mmkv" + react-native-notifications: + :path: "../../../node_modules/@jamsinclair/react-native-notifications" react-native-pager-view: :path: "../../../node_modules/react-native-pager-view" react-native-quick-base64: @@ -824,6 +842,8 @@ EXTERNAL SOURCES: :path: "../../../node_modules/react-native-share" RNSVG: :path: "../../../node_modules/react-native-svg" + UMAppLoader: + :path: "../../../node_modules/unimodules-app-loader/ios" Yoga: :path: "../../../node_modules/react-native/ReactCommon/yoga" @@ -840,12 +860,14 @@ SPEC CHECKSUMS: EXFont: 6ea3800df746be7233208d80fe379b8ed74f4272 EXImageLoader: fd053169a8ee932dd83bf1fe5487a50c26d27c2b Expo: b7d2843b0a0027d0ce76121a63085764355a16ed + ExpoBackgroundFetch: 80d41ec15c6cce0bafb5d2326b8e85f42152eba7 ExpoBlur: e832d874bd94afc0645daddbd3162ec1ce172080 ExpoDevice: 1c1b0c9cad96c292c1de73948649cfd654b2b3c0 ExpoImage: bf714e0101812ccbbd1a4fdbfd34905feeefd9f5 ExpoKeepAwake: 69f5f627670d62318410392d03e0b5db0f85759a ExpoModulesCore: 653958063a301098b541ae4dfed1ac0b98db607b ExpoSystemUI: 0be5173ee2a7c01e9abc44f56d879a1eaaa16527 + EXTaskManager: 07d427a5213dd275c13b6b6c07bba35a672e6698 FBLazyVector: 12ea01e587c9594e7b144e1bfc86ac4d9ac28fde FBReactNativeSpec: faca7d16c37626ca5780a87adef703817722fe61 fmt: ff9d55029c625d3757ed641535fd4a75fedc7ce9 @@ -882,9 +904,10 @@ SPEC CHECKSUMS: react-native-background-timer: 17ea5e06803401a379ebf1f20505b793ac44d0fe react-native-ble-plx: f10240444452dfb2d2a13a0e4f58d7783e92d76e react-native-config: 86038147314e2e6d10ea9972022aa171e6b1d4d8 - react-native-haskell-shelley: f3eaa102ff7b60063a4aff8bd36d23cb4de49c2e + react-native-haskell-shelley: d69d9b9a7122067b9ee36b76c78c6436d4fc1aba react-native-message_signing-library: 040317fed382be05d79e2ecbe5852d1a20ce68df react-native-mmkv: e97c0c79403fb94577e5d902ab1ebd42b0715b43 + react-native-notifications: 985b8e492eeceeaf697aa3f08a1ad30b76a21d9f react-native-pager-view: 0ccb8bf60e2ebd38b1f3669fa3650ecce81db2df react-native-quick-base64: 62290829c619fbabca4c41cfec75ae759d08fc1c react-native-randombytes: b6677f7d495c27e9ee0dbd77ebc97b3c59173729 @@ -928,9 +951,10 @@ SPEC CHECKSUMS: SDWebImageWebPCoder: 295a6573c512f54ad2dd58098e64e17dcf008499 Sentry: 97161cac725da1ecbe77d1445bf8a61c1e5667f1 SentryPrivate: 9a76def09fb08f9501997b8df946e8097947b94f + UMAppLoader: 79d3ee6aa2447a1fe2e8b0d07acf2de106e55b58 Yoga: e71803b4c1fff832ccf9b92541e00f9b873119b9 ZXingObjC: 8898711ab495761b2dbbdec76d90164a6d7e14c5 -PODFILE CHECKSUM: 31f344d67f1a9c35e34eb202e3cdfeb4907367e8 +PODFILE CHECKSUM: 09a3c8236b8655c1bc6f4dd9d56c009f5bdf0939 COCOAPODS: 1.15.2 diff --git a/apps/wallet-mobile/ios/nightly.plist b/apps/wallet-mobile/ios/nightly.plist index 6bb41a517e..374af2bfb8 100644 --- a/apps/wallet-mobile/ios/nightly.plist +++ b/apps/wallet-mobile/ios/nightly.plist @@ -17,11 +17,11 @@ CFBundlePackageType APPL CFBundleShortVersionString - 5.0.2 + 5.2.0 CFBundleSignature ???? CFBundleVersion - 625 + 640 ITSAppUsesNonExemptEncryption LSApplicationCategoryType diff --git a/apps/wallet-mobile/ios/yoroi.xcodeproj/project.pbxproj b/apps/wallet-mobile/ios/yoroi.xcodeproj/project.pbxproj index 35787d399b..022f92534e 100644 --- a/apps/wallet-mobile/ios/yoroi.xcodeproj/project.pbxproj +++ b/apps/wallet-mobile/ios/yoroi.xcodeproj/project.pbxproj @@ -761,7 +761,7 @@ "$(inherited)", ); INFOPLIST_FILE = yoroiTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -802,7 +802,7 @@ "DEVELOPMENT_TEAM[sdk=iphoneos*]" = F8NVT2G2L4; ENVFILE = "$(PODS_ROOT)/../../.env"; INFOPLIST_FILE = yoroiTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -839,13 +839,14 @@ CODE_SIGN_ENTITLEMENTS = yoroi/yoroi.entitlements; CODE_SIGN_IDENTITY = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 625; + CURRENT_PROJECT_VERSION = 640; DEVELOPMENT_TEAM = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = F8NVT2G2L4; ENABLE_BITCODE = NO; ENVFILE = "$(PODS_ROOT)/../../.env"; INFOPLIST_FILE = yoroi/Info.plist; INFOPLIST_KEY_CFBundleDisplayName = Yoroi; + IPHONEOS_DEPLOYMENT_TARGET = 15.6; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -884,12 +885,13 @@ CODE_SIGN_ENTITLEMENTS = yoroi/yoroi.entitlements; CODE_SIGN_IDENTITY = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 625; + CURRENT_PROJECT_VERSION = 640; DEVELOPMENT_TEAM = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = F8NVT2G2L4; ENVFILE = "$(PODS_ROOT)/../../.env.production"; INFOPLIST_FILE = yoroi/Info.plist; INFOPLIST_KEY_CFBundleDisplayName = Yoroi; + IPHONEOS_DEPLOYMENT_TARGET = 15.6; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -968,7 +970,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = ( /usr/lib/swift, "$(inherited)", @@ -1042,7 +1044,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = ( /usr/lib/swift, "$(inherited)", @@ -1079,13 +1081,14 @@ CODE_SIGN_ENTITLEMENTS = nightly.entitlements; CODE_SIGN_IDENTITY = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 625; + CURRENT_PROJECT_VERSION = 640; DEVELOPMENT_TEAM = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = F8NVT2G2L4; ENABLE_BITCODE = NO; ENVFILE = "$(PODS_ROOT)/../../.env.nightly"; INFOPLIST_FILE = nightly.plist; INFOPLIST_KEY_CFBundleDisplayName = "Yoroi Nightly"; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -1124,12 +1127,13 @@ CODE_SIGN_ENTITLEMENTS = nightly.entitlements; CODE_SIGN_IDENTITY = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 625; + CURRENT_PROJECT_VERSION = 640; DEVELOPMENT_TEAM = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = F8NVT2G2L4; ENVFILE = "$(PODS_ROOT)/../../.env.nightly"; INFOPLIST_FILE = nightly.plist; INFOPLIST_KEY_CFBundleDisplayName = "Yoroi Nightly"; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", diff --git a/apps/wallet-mobile/ios/yoroi.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/apps/wallet-mobile/ios/yoroi.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000000..919434a625 --- /dev/null +++ b/apps/wallet-mobile/ios/yoroi.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/apps/wallet-mobile/ios/yoroi/AppDelegate.mm b/apps/wallet-mobile/ios/yoroi/AppDelegate.mm index 46777d340f..ceb7b7d1ee 100644 --- a/apps/wallet-mobile/ios/yoroi/AppDelegate.mm +++ b/apps/wallet-mobile/ios/yoroi/AppDelegate.mm @@ -1,6 +1,7 @@ #import #import "AppDelegate.h" #import "RNBootSplash.h" +#import "RNNotifications.h" #import @@ -16,6 +17,7 @@ - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:( // react-native-bootsplash UIView *rootView = self.window.rootViewController.view; [RNBootSplash initWithStoryboard:@"BootSplash" rootView:rootView]; + [RNNotifications startMonitorNotifications]; return [super application:application didFinishLaunchingWithOptions:launchOptions]; } @@ -53,4 +55,17 @@ - (BOOL)application:(UIApplication *)application continueUserActivity:(nonnull N continueUserActivity:userActivity restorationHandler:restorationHandler]; } + +- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken { + [RNNotifications didRegisterForRemoteNotificationsWithDeviceToken:deviceToken]; +} + +- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error { + [RNNotifications didFailToRegisterForRemoteNotificationsWithError:error]; +} + +- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler { + [RNNotifications didReceiveBackgroundNotification:userInfo withCompletionHandler:completionHandler]; +} + @end diff --git a/apps/wallet-mobile/ios/yoroi/Info.plist b/apps/wallet-mobile/ios/yoroi/Info.plist index 9f9955f86c..1b29e23a76 100644 --- a/apps/wallet-mobile/ios/yoroi/Info.plist +++ b/apps/wallet-mobile/ios/yoroi/Info.plist @@ -17,7 +17,7 @@ CFBundlePackageType APPL CFBundleShortVersionString - 5.0.2 + 5.2.0 CFBundleSignature ???? CFBundleURLTypes @@ -34,7 +34,7 @@ CFBundleVersion - 625 + 640 ITSAppUsesNonExemptEncryption LSApplicationCategoryType @@ -107,5 +107,9 @@ Light UIViewControllerBasedStatusBarAppearance + UIBackgroundModes + + fetch + diff --git a/apps/wallet-mobile/ios/yoroiTests/Info.plist b/apps/wallet-mobile/ios/yoroiTests/Info.plist index 1c2cd6c190..9195f915ad 100644 --- a/apps/wallet-mobile/ios/yoroiTests/Info.plist +++ b/apps/wallet-mobile/ios/yoroiTests/Info.plist @@ -15,10 +15,10 @@ CFBundlePackageType BNDL CFBundleShortVersionString - 5.0.2 + 5.2.0 CFBundleSignature ???? CFBundleVersion - 625 + 640 diff --git a/apps/wallet-mobile/package.json b/apps/wallet-mobile/package.json index 727ca7819e..498bb35d7f 100644 --- a/apps/wallet-mobile/package.json +++ b/apps/wallet-mobile/package.json @@ -1,6 +1,6 @@ { "name": "@yoroi/wallet-mobile", - "version": "5.0.2", + "version": "5.2.0", "private": true, "scripts": { "android-bundle": "react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res", @@ -95,13 +95,13 @@ "@cardano-foundation/ledgerjs-hw-app-cardano": "^7.1.3", "@emurgo/cip14-js": "^3.0.1", "@emurgo/cip4-js": "1.0.7", - "@emurgo/cross-csl-core": "^5.1.0-beta.1", - "@emurgo/cross-csl-mobile": "^5.1.0-beta.1", + "@emurgo/cross-csl-core": "^6.1.0", + "@emurgo/cross-csl-mobile": "^6.1.0", "@emurgo/cross-msl-mobile": "^1.0.1", - "@emurgo/csl-mobile-bridge": "6.1.0-beta.1", + "@emurgo/csl-mobile-bridge": "^7.1.0", "@emurgo/msl-mobile-bridge": "^1.0.4", "@emurgo/react-native-hid": "5.15.8", - "@emurgo/yoroi-lib": "^1.2.1", + "@emurgo/yoroi-lib": "^2.2.3", "@formatjs/intl-datetimeformat": "^6.7.0", "@formatjs/intl-getcanonicallocales": "^2.1.0", "@formatjs/intl-locale": "^3.2.1", @@ -109,6 +109,7 @@ "@formatjs/intl-pluralrules": "^5.2.1", "@formatjs/intl-relativetimeformat": "^11.2.1", "@gorhom/bottom-sheet": "^4", + "@jamsinclair/react-native-notifications": "^5.1.1", "@ledgerhq/react-native-hw-transport-ble": "6.27.3", "@react-native-async-storage/async-storage": "^1.19.3", "@react-native-community/clipboard": "^1.5.1", @@ -124,13 +125,14 @@ "@shopify/flash-list": "^1.4.1", "@types/bip39": "^3.0.0", "@types/pbkdf2": "^3.1.2", - "@yoroi/api": "^1.5.2", + "@yoroi/api": "1.5.3", "@yoroi/claim": "1.0.0", "@yoroi/common": "^1.5.4", "@yoroi/exchange": "^2.1.1", "@yoroi/explorers": "^1.0.2", "@yoroi/identicon": "^1.0.1", "@yoroi/links": "^1.5.7", + "@yoroi/notifications": "^1.0.0", "@yoroi/portfolio": "1.0.3", "@yoroi/resolver": "^2.0.6", "@yoroi/setup-wallet": "^1.0.1", @@ -139,7 +141,6 @@ "@yoroi/theme": "^2.0.0", "@yoroi/transfer": "^1.0.1", "add": "2.0.6", - "assert": "^2.0.0", "axios": "^1.5.0", "base-64": "^1.0.0", "bignumber.js": "^9.0.1", @@ -153,6 +154,7 @@ "crypto-random-string": "3.3.0", "d3-shape": "^3.2.0", "expo": ">=48.0.0-0 <49.0.0", + "expo-background-fetch": "^11.8.1", "expo-barcode-scanner": "~12.3.2", "expo-blur": "12.9.2", "expo-camera": "^13.2.1", @@ -160,6 +162,7 @@ "expo-image": "1.3.0", "expo-status-bar": "~1.4.4", "expo-system-ui": "~2.2.1", + "expo-task-manager": "11.7.3", "immer": "^10.0.2", "jsc-android": "241213.1.0", "lodash": "^4.17.21", @@ -225,8 +228,8 @@ "@babel/preset-env": "^7.20.0", "@babel/preset-react": "^7.16.7", "@babel/runtime": "^7.20.0", - "@emurgo/cardano-serialization-lib-nodejs": "~12.1.0-beta.1", - "@emurgo/cross-csl-nodejs": "^5.1.0-beta.1", + "@emurgo/cardano-serialization-lib-nodejs": "^13.1.0", + "@emurgo/cross-csl-nodejs": "^6.1.0", "@emurgo/cross-msl-nodejs": "^1.0.0", "@formatjs/cli": "^6.1.0", "@formatjs/ts-transformer": "^3.13.0", @@ -260,7 +263,7 @@ "@types/uuid": "^8.3.4", "@typescript-eslint/eslint-plugin": "^5.0.0", "@typescript-eslint/parser": "^5.32.0", - "@yoroi/types": "1.5.8", + "@yoroi/types": "1.5.9", "babel-eslint": "^10.1.0", "babel-jest": "^29.2.1", "babel-loader": "8.2.2", diff --git a/apps/wallet-mobile/src/AppNavigator.tsx b/apps/wallet-mobile/src/AppNavigator.tsx index 216dc554f3..b8f09c03f2 100644 --- a/apps/wallet-mobile/src/AppNavigator.tsx +++ b/apps/wallet-mobile/src/AppNavigator.tsx @@ -32,11 +32,14 @@ import { useShowDarkThemeAnnouncementScreen, } from './features/Initialization/DarkThemeAnnouncement/DarkThemeAnnouncement' import {useDeepLinkWatcher} from './features/Links/common/useDeepLinkWatcher' +import {useInitNotifications} from './features/Notifications/useCases/common/hooks' +import {NotificationsDevScreen} from './features/Notifications/useCases/NotificationsDevScreen' import {SearchProvider} from './features/Search/SearchContext' import {SetupWalletNavigator} from './features/SetupWallet/SetupWalletNavigator' import {useHasWallets} from './features/WalletManager/common/hooks/useHasWallets' import {useStatusBar} from './hooks/useStatusBar' import {agreementDate} from './kernel/config' +import {features} from './kernel/features' import {AppRoutes, defaultStackNavigationOptions} from './kernel/navigation' import {WalletNavigator} from './WalletNavigator' @@ -52,6 +55,7 @@ const changeNavigationBarColor = (colorScheme: 'default-dark' | 'default-light', } export const AppNavigator = () => { + useInitNotifications({enabled: features.notifications}) useDeepLinkWatcher() const strings = useStrings() const [routeName, setRouteName] = React.useState() @@ -216,6 +220,8 @@ export const AppNavigator = () => { + + )} diff --git a/apps/wallet-mobile/src/InitApp.tsx b/apps/wallet-mobile/src/InitApp.tsx index cbda481e8a..e0c8b7e3e7 100644 --- a/apps/wallet-mobile/src/InitApp.tsx +++ b/apps/wallet-mobile/src/InitApp.tsx @@ -5,7 +5,7 @@ import {Platform, UIManager} from 'react-native' import uuid from 'uuid' import {AppNavigator} from './AppNavigator' -import {useInitScreenShare} from './features/Settings/ScreenShare' +import {useInitScreenShare} from './features/Settings/useCases/changeAppSettings/ScreenShare' import {useWalletManager} from './features/WalletManager/context/WalletManagerProvider' import {storageVersionMaker} from './kernel/storage/migrations/storageVersion' diff --git a/apps/wallet-mobile/src/WalletNavigator.tsx b/apps/wallet-mobile/src/WalletNavigator.tsx index b67c47d16a..2fcf6cc04d 100644 --- a/apps/wallet-mobile/src/WalletNavigator.tsx +++ b/apps/wallet-mobile/src/WalletNavigator.tsx @@ -24,9 +24,10 @@ import {useLinksShowActionResult} from './features/Links/common/useLinksShowActi import {MenuNavigator} from './features/Menu/Menu' import {PortfolioNavigator} from './features/Portfolio/PortfolioNavigator' import {CatalystNavigator} from './features/RegisterCatalyst/CatalystNavigator' +import {ReviewTxNavigator} from './features/ReviewTx/ReviewTxNavigator' import {SearchProvider} from './features/Search/SearchContext' -import {SettingsScreenNavigator} from './features/Settings' -import {NetworkTag} from './features/Settings/ChangeNetwork/NetworkTag' +import {SettingsScreenNavigator} from './features/Settings/SettingsScreenNavigator' +import {NetworkTag} from './features/Settings/useCases/changeAppSettings/ChangeNetwork/NetworkTag' import {SetupWalletNavigator} from './features/SetupWallet/SetupWalletNavigator' import {GovernanceNavigator} from './features/Staking/Governance/GovernanceNavigator' import {SwapFormProvider} from './features/Swap/common/SwapFormProvider' @@ -258,6 +259,8 @@ export const WalletNavigator = () => { + + { divider: color.gray_200, } - return {colors, styles} + return {colors, styles} as const } const messages = defineMessages({ diff --git a/apps/wallet-mobile/src/YoroiApp.tsx b/apps/wallet-mobile/src/YoroiApp.tsx index fc98586531..6bebd5f46a 100644 --- a/apps/wallet-mobile/src/YoroiApp.tsx +++ b/apps/wallet-mobile/src/YoroiApp.tsx @@ -1,21 +1,26 @@ import {AsyncStorageProvider} from '@yoroi/common' import {LinksProvider} from '@yoroi/links' +import {NotificationProvider} from '@yoroi/notifications' import {SetupWalletProvider} from '@yoroi/setup-wallet' +import {catalystApiMaker, catalystManagerMaker, CatalystProvider} from '@yoroi/staking' import {ThemeProvider} from '@yoroi/theme' import {TransferProvider} from '@yoroi/transfer' import React from 'react' import {LogBox, StyleSheet} from 'react-native' import * as RNP from 'react-native-paper' import {initialWindowMetrics, SafeAreaProvider} from 'react-native-safe-area-context' -import {enableFreeze, enableScreens} from 'react-native-screens' +import {enableScreens} from 'react-native-screens' import {QueryClientProvider} from 'react-query' import {LoadingBoundary} from './components/Boundary/Boundary' +import {ClipboardProvider} from './components/Clipboard/ClipboardProvider' import {ErrorBoundary} from './components/ErrorBoundary/ErrorBoundary' import {AuthProvider} from './features/Auth/AuthProvider' import {BrowserProvider} from './features/Discover/common/BrowserProvider' +import {notificationManager} from './features/Notifications/useCases/common/notification-manager' import {PortfolioTokenActivityProvider} from './features/Portfolio/common/PortfolioTokenActivityProvider' -import {CurrencyProvider} from './features/Settings/Currency/CurrencyContext' +import {ReviewTxProvider} from './features/ReviewTx/common/ReviewTxProvider' +import {CurrencyProvider} from './features/Settings/useCases/changeAppSettings/Currency/CurrencyContext' import {AutomaticWalletOpenerProvider} from './features/WalletManager/context/AutomaticWalletOpeningProvider' import {WalletManagerProvider} from './features/WalletManager/context/WalletManagerProvider' import {walletManager} from './features/WalletManager/wallet-manager' @@ -31,13 +36,16 @@ import {PoolTransitionProvider} from './legacy/Staking/PoolTransition/PoolTransi import {useThemeStorageMaker} from './yoroi-wallets/hooks' enableScreens(true) -enableFreeze(true) if (disableLogbox) { LogBox.ignoreAllLogs() } else { LogBox.ignoreLogs(['Require cycle:']) } +const catalystApi = catalystApiMaker() +const catalystManager = catalystManagerMaker({ + api: catalystApi, +}) const metricsManager = makeMetricsManager() @@ -50,37 +58,45 @@ const Yoroi = () => { return ( - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ) diff --git a/apps/wallet-mobile/src/components/Analytics/Analytics.tsx b/apps/wallet-mobile/src/components/Analytics/Analytics.tsx index 1f580b428f..0e433a0a40 100644 --- a/apps/wallet-mobile/src/components/Analytics/Analytics.tsx +++ b/apps/wallet-mobile/src/components/Analytics/Analytics.tsx @@ -4,12 +4,12 @@ import {defineMessages, useIntl} from 'react-intl' import {StyleSheet, TextStyle, TouchableOpacity, useWindowDimensions, View} from 'react-native' import {ScrollView} from 'react-native-gesture-handler' -import {Button} from '../../components/Button/Button' import {Spacer} from '../../components/Spacer/Spacer' import {Text} from '../../components/Text' import {YoroiLogo} from '../../components/YoroiLogo/YoroiLogo' import {SettingsSwitch} from '../../features/Settings/common/SettingsSwitch' import {useMetrics} from '../../kernel/metrics/metricsManager' +import {Button, ButtonType} from '../Button/Button' import {AnalyticsImage} from './AnalyticsImage' type Props = { @@ -64,15 +64,13 @@ const Notice = ({onClose, onReadMore}: {onClose?: () => void; onReadMore?: () =>