diff --git a/apps/wallet-mobile/.storybook/storybook.requires.js b/apps/wallet-mobile/.storybook/storybook.requires.js
index 21011eaba6..41fde2e017 100644
--- a/apps/wallet-mobile/.storybook/storybook.requires.js
+++ b/apps/wallet-mobile/.storybook/storybook.requires.js
@@ -185,24 +185,24 @@ 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/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/ConfirmTx/FailedTx/FailedTxScreen.stories.tsx": require("../src/features/Settings/useCases/changeWalletSettings/ManageCollateral/ConfirmTx/FailedTx/FailedTxScreen.stories.tsx"),
+ "./src/features/Settings/useCases/changeWalletSettings/ManageCollateral/ConfirmTx/SubmittedTx/SubmittedTxScreen.stories.tsx": require("../src/features/Settings/useCases/changeWalletSettings/ManageCollateral/ConfirmTx/SubmittedTx/SubmittedTxScreen.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"),
@@ -241,10 +241,9 @@ 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"),
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 c1d3857a7f..2fcf6cc04d 100644
--- a/apps/wallet-mobile/src/WalletNavigator.tsx
+++ b/apps/wallet-mobile/src/WalletNavigator.tsx
@@ -26,8 +26,8 @@ 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'
diff --git a/apps/wallet-mobile/src/YoroiApp.tsx b/apps/wallet-mobile/src/YoroiApp.tsx
index 7b35f285ea..77cca77d45 100644
--- a/apps/wallet-mobile/src/YoroiApp.tsx
+++ b/apps/wallet-mobile/src/YoroiApp.tsx
@@ -8,7 +8,7 @@ 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'
@@ -18,7 +18,7 @@ import {BrowserProvider} from './features/Discover/common/BrowserProvider'
import {notificationManager} from './features/Notifications/useCases/common/notification-manager'
import {PortfolioTokenActivityProvider} from './features/Portfolio/common/PortfolioTokenActivityProvider'
import {ReviewTxProvider} from './features/ReviewTx/common/ReviewTxProvider'
-import {CurrencyProvider} from './features/Settings/Currency/CurrencyContext'
+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'
@@ -34,7 +34,6 @@ import {PoolTransitionProvider} from './legacy/Staking/PoolTransition/PoolTransi
import {useThemeStorageMaker} from './yoroi-wallets/hooks'
enableScreens(true)
-enableFreeze(true)
if (disableLogbox) {
LogBox.ignoreAllLogs()
diff --git a/apps/wallet-mobile/src/features/ReviewTx/common/Divider.tsx b/apps/wallet-mobile/src/components/Divider/Divider.tsx
similarity index 92%
rename from apps/wallet-mobile/src/features/ReviewTx/common/Divider.tsx
rename to apps/wallet-mobile/src/components/Divider/Divider.tsx
index 1733930fda..d87afd1b14 100644
--- a/apps/wallet-mobile/src/features/ReviewTx/common/Divider.tsx
+++ b/apps/wallet-mobile/src/components/Divider/Divider.tsx
@@ -2,7 +2,7 @@ import {SpacingSize, useTheme} from '@yoroi/theme'
import * as React from 'react'
import {StyleSheet, View} from 'react-native'
-import {Space} from '../../../components/Space/Space'
+import {Space} from '../Space/Space'
export const Divider = ({verticalSpace = 'none'}: {verticalSpace?: SpacingSize}) => {
const {styles} = useStyles()
diff --git a/apps/wallet-mobile/src/components/HideableText/HideableText.stories.tsx b/apps/wallet-mobile/src/components/HideableText/HideableText.stories.tsx
index 1146d2ac55..429f85b291 100644
--- a/apps/wallet-mobile/src/components/HideableText/HideableText.stories.tsx
+++ b/apps/wallet-mobile/src/components/HideableText/HideableText.stories.tsx
@@ -3,7 +3,7 @@ import React from 'react'
import {StyleSheet} from 'react-native'
import {SafeAreaView} from 'react-native-safe-area-context'
-import {usePrivacyMode} from '../../features/Settings/PrivacyMode/PrivacyMode'
+import {usePrivacyMode} from '../../features/Settings/useCases/changeAppSettings/PrivacyMode/PrivacyMode'
import {Button} from '../Button/Button'
import {Spacer} from '../Spacer/Spacer'
import {Text} from '../Text'
diff --git a/apps/wallet-mobile/src/components/HideableText/HideableText.tsx b/apps/wallet-mobile/src/components/HideableText/HideableText.tsx
index 17ddc8a7be..d87d04021b 100644
--- a/apps/wallet-mobile/src/components/HideableText/HideableText.tsx
+++ b/apps/wallet-mobile/src/components/HideableText/HideableText.tsx
@@ -1,7 +1,7 @@
import React from 'react'
import {TextProps} from 'react-native'
-import {usePrivacyMode} from '../../features/Settings/PrivacyMode/PrivacyMode'
+import {usePrivacyMode} from '../../features/Settings/useCases/changeAppSettings/PrivacyMode/PrivacyMode'
import {Text} from '../Text'
type Props = TextProps & {
diff --git a/apps/wallet-mobile/src/components/PairedBalance/PairedBalance.tsx b/apps/wallet-mobile/src/components/PairedBalance/PairedBalance.tsx
index e5a450f392..6a15669aeb 100644
--- a/apps/wallet-mobile/src/components/PairedBalance/PairedBalance.tsx
+++ b/apps/wallet-mobile/src/components/PairedBalance/PairedBalance.tsx
@@ -7,8 +7,8 @@ import {StyleSheet, Text, TextStyle} from 'react-native'
import {usePortfolio} from '../../features/Portfolio/common/PortfolioProvider'
import {usePortfolioTokenActivity} from '../../features/Portfolio/common/PortfolioTokenActivityProvider'
-import {useCurrencyPairing} from '../../features/Settings/Currency/CurrencyContext'
-import {usePrivacyMode} from '../../features/Settings/PrivacyMode/PrivacyMode'
+import {useCurrencyPairing} from '../../features/Settings/useCases/changeAppSettings/Currency/CurrencyContext'
+import {usePrivacyMode} from '../../features/Settings/useCases/changeAppSettings/PrivacyMode/PrivacyMode'
import {useWalletManager} from '../../features/WalletManager/context/WalletManagerProvider'
import {CurrencySymbol} from '../../yoroi-wallets/types/other'
import {Boundary, ResetError, ResetErrorRef} from '../Boundary/Boundary'
diff --git a/apps/wallet-mobile/src/features/Discover/DiscoverNavigator.tsx b/apps/wallet-mobile/src/features/Discover/DiscoverNavigator.tsx
index aca6bcf848..1b16ebd52f 100644
--- a/apps/wallet-mobile/src/features/Discover/DiscoverNavigator.tsx
+++ b/apps/wallet-mobile/src/features/Discover/DiscoverNavigator.tsx
@@ -7,7 +7,7 @@ import {ErrorBoundary} from 'react-error-boundary'
import {LoadingBoundary} from '../../components/Boundary/Boundary'
import {SomethingWentWrong} from '../../components/SomethingWentWrong/SomethingWentWrong'
import {defaultStackNavigationOptions, DiscoverRoutes} from '../../kernel/navigation'
-import {NetworkTag} from '../Settings/ChangeNetwork/NetworkTag'
+import {NetworkTag} from '../Settings/useCases/changeAppSettings/ChangeNetwork/NetworkTag'
import {BrowserNavigator} from './BrowserNavigator'
import {useStrings} from './common/useStrings'
import {ReviewTransaction} from './useCases/ReviewTransaction/ReviewTransaction'
diff --git a/apps/wallet-mobile/src/features/Discover/useCases/SelectDappFromList/SelectDappFromListScreen.tsx b/apps/wallet-mobile/src/features/Discover/useCases/SelectDappFromList/SelectDappFromListScreen.tsx
index 39a2ee4b6c..28aec24bdb 100644
--- a/apps/wallet-mobile/src/features/Discover/useCases/SelectDappFromList/SelectDappFromListScreen.tsx
+++ b/apps/wallet-mobile/src/features/Discover/useCases/SelectDappFromList/SelectDappFromListScreen.tsx
@@ -7,7 +7,7 @@ import {SimpleTab} from '../../../../components/SimpleTab/SimpleTab'
import {Spacer} from '../../../../components/Spacer/Spacer'
import {useMetrics} from '../../../../kernel/metrics/metricsManager'
import {useSearch, useSearchOnNavBar} from '../../../Search/SearchContext'
-import {NetworkTag} from '../../../Settings/ChangeNetwork/NetworkTag'
+import {NetworkTag} from '../../../Settings/useCases/changeAppSettings/ChangeNetwork/NetworkTag'
import {ChainDAppsWarning} from '../../common/ChainDAppsWarning'
import {getGoogleSearchItem} from '../../common/helpers'
import {useDAppsConnected} from '../../common/useDAppsConnected'
diff --git a/apps/wallet-mobile/src/features/Menu/Menu.tsx b/apps/wallet-mobile/src/features/Menu/Menu.tsx
index 590e375bfd..fdf416276d 100644
--- a/apps/wallet-mobile/src/features/Menu/Menu.tsx
+++ b/apps/wallet-mobile/src/features/Menu/Menu.tsx
@@ -19,7 +19,7 @@ import {usePrefetchStakingInfo} from '../../legacy/Dashboard/StakePoolInfos'
import {usePoolTransition} from '../../legacy/Staking/PoolTransition/usePoolTransition'
import {useCanVote} from '../RegisterCatalyst/common/hooks'
import {InsufficientFundsModal} from '../RegisterCatalyst/common/InsufficientFundsModal'
-import {NetworkTag} from '../Settings/ChangeNetwork/NetworkTag'
+import {NetworkTag} from '../Settings/useCases/changeAppSettings/ChangeNetwork/NetworkTag'
import {useIsGovernanceFeatureEnabled} from '../Staking/Governance/common/helpers'
import {useSelectedWallet} from '../WalletManager/common/hooks/useSelectedWallet'
diff --git a/apps/wallet-mobile/src/features/Portfolio/NftsNavigator.tsx b/apps/wallet-mobile/src/features/Portfolio/NftsNavigator.tsx
index 3c8323b85b..b7e3757c96 100644
--- a/apps/wallet-mobile/src/features/Portfolio/NftsNavigator.tsx
+++ b/apps/wallet-mobile/src/features/Portfolio/NftsNavigator.tsx
@@ -4,7 +4,7 @@ import React from 'react'
import {useMetrics} from '../../kernel/metrics/metricsManager'
import {defaultStackNavigationOptions, NftRoutes} from '../../kernel/navigation'
-import {NetworkTag} from '../Settings/ChangeNetwork/NetworkTag'
+import {NetworkTag} from '../Settings/useCases/changeAppSettings/ChangeNetwork/NetworkTag'
import {useStrings} from './common/hooks/useStrings'
import {MediaDetailsScreen} from './common/MediaDetailsScreen/MediaDetailsScreen'
import {ListMediaGalleryScreen} from './useCases/PortfolioTokensList/PortfolioWalletTokenList/ListMediaGalleryScreen/ListMediaGalleryScreen'
diff --git a/apps/wallet-mobile/src/features/Portfolio/PortfolioNavigator.tsx b/apps/wallet-mobile/src/features/Portfolio/PortfolioNavigator.tsx
index 9d934d67c0..78ab679ccc 100644
--- a/apps/wallet-mobile/src/features/Portfolio/PortfolioNavigator.tsx
+++ b/apps/wallet-mobile/src/features/Portfolio/PortfolioNavigator.tsx
@@ -5,7 +5,7 @@ import * as React from 'react'
import {Boundary} from '../../components/Boundary/Boundary'
import {defaultStackNavigationOptions, PortfolioRoutes} from '../../kernel/navigation'
import {SearchProvider} from '../Search/SearchContext'
-import {NetworkTag} from '../Settings/ChangeNetwork/NetworkTag'
+import {NetworkTag} from '../Settings/useCases/changeAppSettings/ChangeNetwork/NetworkTag'
import {TxDetails} from '../Transactions/useCases/TxDetails/TxDetails'
import {useStrings} from './common/hooks/useStrings'
import {PortfolioProvider} from './common/PortfolioProvider'
diff --git a/apps/wallet-mobile/src/features/Portfolio/common/TokenAmountItem/TokenAmountItem.tsx b/apps/wallet-mobile/src/features/Portfolio/common/TokenAmountItem/TokenAmountItem.tsx
index 53713bf733..987be00e51 100644
--- a/apps/wallet-mobile/src/features/Portfolio/common/TokenAmountItem/TokenAmountItem.tsx
+++ b/apps/wallet-mobile/src/features/Portfolio/common/TokenAmountItem/TokenAmountItem.tsx
@@ -8,7 +8,7 @@ import {Icon} from '../../../../components/Icon'
import {PairedBalance} from '../../../../components/PairedBalance/PairedBalance'
import {Spacer} from '../../../../components/Spacer/Spacer'
import {Text} from '../../../../components/Text'
-import {usePrivacyMode} from '../../../Settings/PrivacyMode/PrivacyMode'
+import {usePrivacyMode} from '../../../Settings/useCases/changeAppSettings/PrivacyMode/PrivacyMode'
import {usePriceImpactRiskTheme} from '../../../Swap/common/helpers'
import {SwapPriceImpactRisk} from '../../../Swap/common/types'
import {TokenInfoIcon} from './TokenInfoIcon'
diff --git a/apps/wallet-mobile/src/features/Portfolio/common/hooks/useGetPortfolioTokenChart.ts b/apps/wallet-mobile/src/features/Portfolio/common/hooks/useGetPortfolioTokenChart.ts
index af3b08f03e..23bf03f74c 100644
--- a/apps/wallet-mobile/src/features/Portfolio/common/hooks/useGetPortfolioTokenChart.ts
+++ b/apps/wallet-mobile/src/features/Portfolio/common/hooks/useGetPortfolioTokenChart.ts
@@ -8,7 +8,7 @@ import {features} from '../../../../kernel/features'
import {useLanguage} from '../../../../kernel/i18n'
import {logger} from '../../../../kernel/logger/logger'
import {fetchPtPriceActivity} from '../../../../yoroi-wallets/cardano/usePrimaryTokenActivity'
-import {useCurrencyPairing} from '../../../Settings/Currency/CurrencyContext'
+import {useCurrencyPairing} from '../../../Settings/useCases/changeAppSettings/Currency/CurrencyContext'
import {useSelectedNetwork} from '../../../WalletManager/common/hooks/useSelectedNetwork'
import {useSelectedWallet} from '../../../WalletManager/common/hooks/useSelectedWallet'
import {networkConfigs} from '../../../WalletManager/network-manager/network-manager'
diff --git a/apps/wallet-mobile/src/features/Portfolio/useCases/PortfolioDashboard/BalanceCard/BalanceCard.tsx b/apps/wallet-mobile/src/features/Portfolio/useCases/PortfolioDashboard/BalanceCard/BalanceCard.tsx
index 3ae304e27e..b274a546c7 100644
--- a/apps/wallet-mobile/src/features/Portfolio/useCases/PortfolioDashboard/BalanceCard/BalanceCard.tsx
+++ b/apps/wallet-mobile/src/features/Portfolio/useCases/PortfolioDashboard/BalanceCard/BalanceCard.tsx
@@ -4,7 +4,7 @@ import * as React from 'react'
import {StyleSheet, View} from 'react-native'
import LinearGradient from 'react-native-linear-gradient'
-import {useCurrencyPairing} from '../../../../Settings/Currency/CurrencyContext'
+import {useCurrencyPairing} from '../../../../Settings/useCases/changeAppSettings/Currency/CurrencyContext'
import {useSelectedWallet} from '../../../../WalletManager/common/hooks/useSelectedWallet'
import {aggregatePrimaryAmount} from '../../../common/helpers/aggregatePrimaryAmount'
import {usePortfolioTokenActivity} from '../../../common/PortfolioTokenActivityProvider'
diff --git a/apps/wallet-mobile/src/features/Portfolio/useCases/PortfolioDashboard/BalanceCard/BalanceCardContent.tsx b/apps/wallet-mobile/src/features/Portfolio/useCases/PortfolioDashboard/BalanceCard/BalanceCardContent.tsx
index 7a65980aaf..0933854186 100644
--- a/apps/wallet-mobile/src/features/Portfolio/useCases/PortfolioDashboard/BalanceCard/BalanceCardContent.tsx
+++ b/apps/wallet-mobile/src/features/Portfolio/useCases/PortfolioDashboard/BalanceCard/BalanceCardContent.tsx
@@ -6,8 +6,8 @@ import {StyleSheet, Text, TouchableOpacity, View} from 'react-native'
import {PairedBalance} from '../../../../../components/PairedBalance/PairedBalance'
import {Spacer} from '../../../../../components/Spacer/Spacer'
-import {useCurrencyPairing} from '../../../../Settings/Currency/CurrencyContext'
-import {usePrivacyMode} from '../../../../Settings/PrivacyMode/PrivacyMode'
+import {useCurrencyPairing} from '../../../../Settings/useCases/changeAppSettings/Currency/CurrencyContext'
+import {usePrivacyMode} from '../../../../Settings/useCases/changeAppSettings/PrivacyMode/PrivacyMode'
import {formatPriceChange, priceChange} from '../../../common/helpers/priceChange'
import {useNavigateTo} from '../../../common/hooks/useNavigateTo'
import {PnlTag} from '../../../common/PnlTag/PnlTag'
diff --git a/apps/wallet-mobile/src/features/Portfolio/useCases/PortfolioDashboard/BalanceCard/Rate.tsx b/apps/wallet-mobile/src/features/Portfolio/useCases/PortfolioDashboard/BalanceCard/Rate.tsx
index 60db55acf8..c89411c969 100644
--- a/apps/wallet-mobile/src/features/Portfolio/useCases/PortfolioDashboard/BalanceCard/Rate.tsx
+++ b/apps/wallet-mobile/src/features/Portfolio/useCases/PortfolioDashboard/BalanceCard/Rate.tsx
@@ -2,7 +2,7 @@ import {useTheme} from '@yoroi/theme'
import * as React from 'react'
import {StyleSheet, Text} from 'react-native'
-import {useCurrencyPairing} from '../../../../Settings/Currency/CurrencyContext'
+import {useCurrencyPairing} from '../../../../Settings/useCases/changeAppSettings/Currency/CurrencyContext'
type Props = {rate: number; name: string}
export const Rate = ({rate, name}: Props) => {
diff --git a/apps/wallet-mobile/src/features/Portfolio/useCases/PortfolioDashboard/DashboardTokensList/DashboardTokenItem.tsx b/apps/wallet-mobile/src/features/Portfolio/useCases/PortfolioDashboard/DashboardTokensList/DashboardTokenItem.tsx
index db49a33b5f..6d3401bf3c 100644
--- a/apps/wallet-mobile/src/features/Portfolio/useCases/PortfolioDashboard/DashboardTokensList/DashboardTokenItem.tsx
+++ b/apps/wallet-mobile/src/features/Portfolio/useCases/PortfolioDashboard/DashboardTokensList/DashboardTokenItem.tsx
@@ -7,8 +7,8 @@ import {StyleSheet, Text, TouchableOpacity, View} from 'react-native'
import {PairedBalance} from '../../../../../components/PairedBalance/PairedBalance'
import {Spacer} from '../../../../../components/Spacer/Spacer'
-import {useCurrencyPairing} from '../../../../Settings/Currency/CurrencyContext'
-import {usePrivacyMode} from '../../../../Settings/PrivacyMode/PrivacyMode'
+import {useCurrencyPairing} from '../../../../Settings/useCases/changeAppSettings/Currency/CurrencyContext'
+import {usePrivacyMode} from '../../../../Settings/useCases/changeAppSettings/PrivacyMode/PrivacyMode'
import {formatPriceChange, priceChange} from '../../../common/helpers/priceChange'
import {useNavigateTo} from '../../../common/hooks/useNavigateTo'
import {PnlTag} from '../../../common/PnlTag/PnlTag'
diff --git a/apps/wallet-mobile/src/features/Portfolio/useCases/PortfolioTokenDetails/PortfolioTokenChart/TokenPerformance.tsx b/apps/wallet-mobile/src/features/Portfolio/useCases/PortfolioTokenDetails/PortfolioTokenChart/TokenPerformance.tsx
index b14eaef25b..04d66d481a 100644
--- a/apps/wallet-mobile/src/features/Portfolio/useCases/PortfolioTokenDetails/PortfolioTokenChart/TokenPerformance.tsx
+++ b/apps/wallet-mobile/src/features/Portfolio/useCases/PortfolioTokenDetails/PortfolioTokenChart/TokenPerformance.tsx
@@ -5,7 +5,7 @@ import {StyleSheet, View} from 'react-native'
import {Text} from '../../../../../components/Text'
import {Tooltip} from '../../../../../components/Tooltip/Tooltip'
-import {useCurrencyPairing} from '../../../../Settings/Currency/CurrencyContext'
+import {useCurrencyPairing} from '../../../../Settings/useCases/changeAppSettings/Currency/CurrencyContext'
import {formatPriceChange} from '../../../common/helpers/priceChange'
import {TOKEN_CHART_INTERVAL, TokenChartInterval} from '../../../common/hooks/useGetPortfolioTokenChart'
import {useStrings} from '../../../common/hooks/useStrings'
diff --git a/apps/wallet-mobile/src/features/Portfolio/useCases/PortfolioTokensList/PortfolioTokenListScreen.tsx b/apps/wallet-mobile/src/features/Portfolio/useCases/PortfolioTokensList/PortfolioTokenListScreen.tsx
index 684c305a1f..b12faf3bb2 100644
--- a/apps/wallet-mobile/src/features/Portfolio/useCases/PortfolioTokensList/PortfolioTokenListScreen.tsx
+++ b/apps/wallet-mobile/src/features/Portfolio/useCases/PortfolioTokensList/PortfolioTokenListScreen.tsx
@@ -6,7 +6,7 @@ import {SafeAreaView} from 'react-native-safe-area-context'
import {Tab, TabPanel, Tabs} from '../../../../components/Tabs/Tabs'
import {useMetrics} from '../../../../kernel/metrics/metricsManager'
import {useSearchOnNavBar} from '../../../Search/SearchContext'
-import {NetworkTag} from '../../../Settings/ChangeNetwork/NetworkTag'
+import {NetworkTag} from '../../../Settings/useCases/changeAppSettings/ChangeNetwork/NetworkTag'
import {useGetDAppsPortfolioBalance} from '../../common/hooks/useGetDAppsPortfolioBalance'
import {useStrings} from '../../common/hooks/useStrings'
import {PortfolioListTab, usePortfolio} from '../../common/PortfolioProvider'
diff --git a/apps/wallet-mobile/src/features/Portfolio/useCases/PortfolioTokensList/PortfolioWalletTokenList/ListMediaGalleryScreen/ListMediaGalleryScreen.tsx b/apps/wallet-mobile/src/features/Portfolio/useCases/PortfolioTokensList/PortfolioWalletTokenList/ListMediaGalleryScreen/ListMediaGalleryScreen.tsx
index f953cfeccb..7dafd5b684 100644
--- a/apps/wallet-mobile/src/features/Portfolio/useCases/PortfolioTokensList/PortfolioWalletTokenList/ListMediaGalleryScreen/ListMediaGalleryScreen.tsx
+++ b/apps/wallet-mobile/src/features/Portfolio/useCases/PortfolioTokensList/PortfolioWalletTokenList/ListMediaGalleryScreen/ListMediaGalleryScreen.tsx
@@ -9,7 +9,7 @@ import {SafeAreaView} from 'react-native-safe-area-context'
import {Space} from '../../../../../../components/Space/Space'
import {useMetrics} from '../../../../../../kernel/metrics/metricsManager'
import {useSearch, useSearchOnNavBar} from '../../../../../Search/SearchContext'
-import {NetworkTag} from '../../../../../Settings/ChangeNetwork/NetworkTag'
+import {NetworkTag} from '../../../../../Settings/useCases/changeAppSettings/ChangeNetwork/NetworkTag'
import {useSelectedWallet} from '../../../../../WalletManager/common/hooks/useSelectedWallet'
import {usePortfolioBalances} from '../../../../common/hooks/usePortfolioBalances'
import {useStrings} from '../../../../common/hooks/useStrings'
diff --git a/apps/wallet-mobile/src/features/Portfolio/useCases/PortfolioTokensList/PortfolioWalletTokenList/TokenBalanceItem.tsx b/apps/wallet-mobile/src/features/Portfolio/useCases/PortfolioTokensList/PortfolioWalletTokenList/TokenBalanceItem.tsx
index 43ae21f7d8..1c9cca4d84 100644
--- a/apps/wallet-mobile/src/features/Portfolio/useCases/PortfolioTokensList/PortfolioWalletTokenList/TokenBalanceItem.tsx
+++ b/apps/wallet-mobile/src/features/Portfolio/useCases/PortfolioTokensList/PortfolioWalletTokenList/TokenBalanceItem.tsx
@@ -6,8 +6,8 @@ import {StyleSheet, Text, TouchableOpacity, View} from 'react-native'
import {PairedBalance} from '../../../../../components/PairedBalance/PairedBalance'
import {Spacer} from '../../../../../components/Spacer/Spacer'
-import {useCurrencyPairing} from '../../../../Settings/Currency/CurrencyContext'
-import {usePrivacyMode} from '../../../../Settings/PrivacyMode/PrivacyMode'
+import {useCurrencyPairing} from '../../../../Settings/useCases/changeAppSettings/Currency/CurrencyContext'
+import {usePrivacyMode} from '../../../../Settings/useCases/changeAppSettings/PrivacyMode/PrivacyMode'
import {formatPriceChange, priceChange} from '../../../common/helpers/priceChange'
import {useNavigateTo} from '../../../common/hooks/useNavigateTo'
import {PnlTag} from '../../../common/PnlTag/PnlTag'
diff --git a/apps/wallet-mobile/src/features/Portfolio/useCases/PortfolioTokensList/TotalTokensValue/TokenValueBalance.tsx b/apps/wallet-mobile/src/features/Portfolio/useCases/PortfolioTokensList/TotalTokensValue/TokenValueBalance.tsx
index 0be7da56c9..909559e7ad 100644
--- a/apps/wallet-mobile/src/features/Portfolio/useCases/PortfolioTokensList/TotalTokensValue/TokenValueBalance.tsx
+++ b/apps/wallet-mobile/src/features/Portfolio/useCases/PortfolioTokensList/TotalTokensValue/TokenValueBalance.tsx
@@ -4,8 +4,8 @@ import {Portfolio} from '@yoroi/types'
import * as React from 'react'
import {StyleSheet, Text, View} from 'react-native'
-import {useCurrencyPairing} from '../../../../Settings/Currency/CurrencyContext'
-import {usePrivacyMode} from '../../../../Settings/PrivacyMode/PrivacyMode'
+import {useCurrencyPairing} from '../../../../Settings/useCases/changeAppSettings/Currency/CurrencyContext'
+import {usePrivacyMode} from '../../../../Settings/useCases/changeAppSettings/PrivacyMode/PrivacyMode'
import {SkeletonPrimaryToken} from './SkeletonPrimaryToken'
type Props = {
diff --git a/apps/wallet-mobile/src/features/Portfolio/useCases/PortfolioTokensList/TotalTokensValue/TokenValuePairedBalance.tsx b/apps/wallet-mobile/src/features/Portfolio/useCases/PortfolioTokensList/TotalTokensValue/TokenValuePairedBalance.tsx
index a32669d6c6..28fad6bca3 100644
--- a/apps/wallet-mobile/src/features/Portfolio/useCases/PortfolioTokensList/TotalTokensValue/TokenValuePairedBalance.tsx
+++ b/apps/wallet-mobile/src/features/Portfolio/useCases/PortfolioTokensList/TotalTokensValue/TokenValuePairedBalance.tsx
@@ -5,7 +5,7 @@ import * as React from 'react'
import {StyleSheet, Text} from 'react-native'
import {PairedBalance} from '../../../../../components/PairedBalance/PairedBalance'
-import {usePrivacyMode} from '../../../../Settings/PrivacyMode/PrivacyMode'
+import {usePrivacyMode} from '../../../../Settings/useCases/changeAppSettings/PrivacyMode/PrivacyMode'
import {SkeletonPairedToken} from './SkeletonPairedToken'
type Props = {
diff --git a/apps/wallet-mobile/src/features/Portfolio/useCases/PortfolioTokensList/TotalTokensValue/TotalTokensValueContent.tsx b/apps/wallet-mobile/src/features/Portfolio/useCases/PortfolioTokensList/TotalTokensValue/TotalTokensValueContent.tsx
index 18efd6bf30..619f8d5e10 100644
--- a/apps/wallet-mobile/src/features/Portfolio/useCases/PortfolioTokensList/TotalTokensValue/TotalTokensValueContent.tsx
+++ b/apps/wallet-mobile/src/features/Portfolio/useCases/PortfolioTokensList/TotalTokensValue/TotalTokensValueContent.tsx
@@ -6,8 +6,8 @@ import {StyleSheet, Text, TouchableOpacity, View} from 'react-native'
import {Icon} from '../../../../../components/Icon'
import {Spacer} from '../../../../../components/Spacer/Spacer'
import {Tooltip} from '../../../../../components/Tooltip/Tooltip'
-import {useCurrencyPairing} from '../../../../Settings/Currency/CurrencyContext'
-import {usePrivacyMode} from '../../../../Settings/PrivacyMode/PrivacyMode'
+import {useCurrencyPairing} from '../../../../Settings/useCases/changeAppSettings/Currency/CurrencyContext'
+import {usePrivacyMode} from '../../../../Settings/useCases/changeAppSettings/PrivacyMode/PrivacyMode'
import {formatPriceChange, priceChange} from '../../../common/helpers/priceChange'
import {useStrings} from '../../../common/hooks/useStrings'
import {PnlTag} from '../../../common/PnlTag/PnlTag'
diff --git a/apps/wallet-mobile/src/features/RegisterCatalyst/CatalystNavigator.tsx b/apps/wallet-mobile/src/features/RegisterCatalyst/CatalystNavigator.tsx
index ae20582593..de0fd14e4d 100644
--- a/apps/wallet-mobile/src/features/RegisterCatalyst/CatalystNavigator.tsx
+++ b/apps/wallet-mobile/src/features/RegisterCatalyst/CatalystNavigator.tsx
@@ -8,7 +8,6 @@ import {useIntl} from 'react-intl'
import {StyleSheet} from 'react-native'
import {Boundary} from '../../components/Boundary/Boundary'
-import {NetworkTag} from '../../features/Settings/ChangeNetwork/NetworkTag'
import globalMessages from '../../kernel/i18n/global-messages'
import {useMetrics} from '../../kernel/metrics/metricsManager'
import {
@@ -17,6 +16,7 @@ import {
VotingRegistrationRouteNavigation,
VotingRegistrationRoutes,
} from '../../kernel/navigation'
+import {NetworkTag} from '../Settings/useCases/changeAppSettings/ChangeNetwork/NetworkTag'
import {ConfirmPin} from './useCases/ConfirmPin/ConfirmPin'
import {ConfirmVotingTx} from './useCases/ConfirmVotingTx/ConfirmVotingTx'
import {DisplayPin} from './useCases/DisplayPin/DisplayPin'
diff --git a/apps/wallet-mobile/src/features/ReviewTx/common/Accordion.tsx b/apps/wallet-mobile/src/features/ReviewTx/common/Accordion.tsx
index 92e7bfb3ac..7256cff2d0 100644
--- a/apps/wallet-mobile/src/features/ReviewTx/common/Accordion.tsx
+++ b/apps/wallet-mobile/src/features/ReviewTx/common/Accordion.tsx
@@ -1,6 +1,6 @@
import {useTheme} from '@yoroi/theme'
import * as React from 'react'
-import {Animated, LayoutAnimation, StyleSheet, Text, TouchableOpacity, View} from 'react-native'
+import {Animated, Easing, StyleSheet, Text, TouchableOpacity, View} from 'react-native'
import {Icon} from '../../../components/Icon'
@@ -10,12 +10,12 @@ export const Accordion = ({label, children}: {label: string; children: React.Rea
const animatedHeight = React.useRef(new Animated.Value(0)).current
const toggleSection = () => {
- LayoutAnimation.configureNext(LayoutAnimation.Presets.easeInEaseOut)
setIsOpen(!isOpen)
Animated.timing(animatedHeight, {
toValue: isOpen ? 0 : 1,
duration: 300,
useNativeDriver: false,
+ easing: Easing.ease,
}).start()
}
diff --git a/apps/wallet-mobile/src/features/ReviewTx/common/CopiableText.tsx b/apps/wallet-mobile/src/features/ReviewTx/common/CopiableText.tsx
index 9d2865f4c1..45dea2a1e6 100644
--- a/apps/wallet-mobile/src/features/ReviewTx/common/CopiableText.tsx
+++ b/apps/wallet-mobile/src/features/ReviewTx/common/CopiableText.tsx
@@ -1,25 +1,40 @@
import {useTheme} from '@yoroi/theme'
import * as React from 'react'
-import {StyleSheet, TouchableOpacity, View} from 'react-native'
+import {StyleSheet, TouchableOpacity, View, ViewStyle} from 'react-native'
import {useCopy} from '../../../components/Clipboard/ClipboardProvider'
import {Icon} from '../../../components/Icon'
-export const CopiableText = ({children, textToCopy}: {children: React.ReactNode; textToCopy: string}) => {
- const {styles, colors} = useStyles()
- const {copy} = useCopy()
+export const CopiableText = ({
+ children,
+ style,
+ textToCopy,
+}: {
+ children: React.ReactNode
+ style?: ViewStyle
+ textToCopy: string
+}) => {
+ const {styles} = useStyles()
return (
-
+
{children}
- copy({text: textToCopy})} activeOpacity={0.5}>
-
-
+
)
}
+export const CopyButton = ({textToCopy}: {textToCopy: string}) => {
+ const {colors} = useStyles()
+ const {copy} = useCopy()
+ return (
+ copy({text: textToCopy})} activeOpacity={0.5}>
+
+
+ )
+}
+
const useStyles = () => {
const {atoms, color} = useTheme()
const styles = StyleSheet.create({
diff --git a/apps/wallet-mobile/src/features/ReviewTx/common/ReviewTxProvider.tsx b/apps/wallet-mobile/src/features/ReviewTx/common/ReviewTxProvider.tsx
index 05dd6ec924..93f5632b61 100644
--- a/apps/wallet-mobile/src/features/ReviewTx/common/ReviewTxProvider.tsx
+++ b/apps/wallet-mobile/src/features/ReviewTx/common/ReviewTxProvider.tsx
@@ -24,6 +24,9 @@ export const ReviewTxProvider = ({
cborChanged: (cbor: ReviewTxState['cbor']) => dispatch({type: ReviewTxActionType.CborChanged, cbor}),
operationsChanged: (operations: ReviewTxState['operations']) =>
dispatch({type: ReviewTxActionType.OperationsChanged, operations}),
+ customReceiverTitleChanged: (customReceiverTitle: ReviewTxState['customReceiverTitle']) =>
+ dispatch({type: ReviewTxActionType.CustomReceiverTitleChanged, customReceiverTitle}),
+ detailsChanged: (details: ReviewTxState['details']) => dispatch({type: ReviewTxActionType.DetailsChanged, details}),
onSuccessChanged: (onSuccess: ReviewTxState['onSuccess']) =>
dispatch({type: ReviewTxActionType.OnSuccessChanged, onSuccess}),
onErrorChanged: (onError: ReviewTxState['onError']) => dispatch({type: ReviewTxActionType.OnErrorChanged, onError}),
@@ -55,6 +58,14 @@ const reviewTxReducer = (state: ReviewTxState, action: ReviewTxAction) => {
draft.operations = action.operations
break
+ case ReviewTxActionType.CustomReceiverTitleChanged:
+ draft.customReceiverTitle = action.customReceiverTitle
+ break
+
+ case ReviewTxActionType.DetailsChanged:
+ draft.details = action.details
+ break
+
case ReviewTxActionType.OnSuccessChanged:
draft.onSuccess = action.onSuccess
break
@@ -82,6 +93,14 @@ type ReviewTxAction =
type: ReviewTxActionType.OperationsChanged
operations: ReviewTxState['operations']
}
+ | {
+ type: ReviewTxActionType.CustomReceiverTitleChanged
+ customReceiverTitle: ReviewTxState['customReceiverTitle']
+ }
+ | {
+ type: ReviewTxActionType.DetailsChanged
+ details: ReviewTxState['details']
+ }
| {
type: ReviewTxActionType.OnSuccessChanged
onSuccess: ReviewTxState['onSuccess']
@@ -95,6 +114,8 @@ export type ReviewTxState = {
unsignedTx: YoroiUnsignedTx | null
cbor: string | null
operations: Array | null
+ customReceiverTitle: React.ReactNode | null
+ details: {title: string; component: React.ReactNode} | null
onSuccess: ((signedTx: YoroiSignedTx) => void) | null
onError: (() => void) | null
}
@@ -103,6 +124,8 @@ type ReviewTxActions = {
unsignedTxChanged: (unsignedTx: ReviewTxState['unsignedTx']) => void
cborChanged: (cbor: ReviewTxState['cbor']) => void
operationsChanged: (operations: ReviewTxState['operations']) => void
+ customReceiverTitleChanged: (customReceiverTitle: ReviewTxState['customReceiverTitle']) => void
+ detailsChanged: (details: ReviewTxState['details']) => void
onSuccessChanged: (onSuccess: ReviewTxState['onSuccess']) => void
onErrorChanged: (onError: ReviewTxState['onError']) => void
}
@@ -111,6 +134,8 @@ const defaultState: ReviewTxState = Object.freeze({
unsignedTx: null,
cbor: null,
operations: null,
+ customReceiverTitle: null,
+ details: null,
onSuccess: null,
onError: null,
})
@@ -124,6 +149,8 @@ const initialReviewTxContext: ReviewTxContext = {
unsignedTxChanged: missingInit,
cborChanged: missingInit,
operationsChanged: missingInit,
+ customReceiverTitleChanged: missingInit,
+ detailsChanged: missingInit,
onSuccessChanged: missingInit,
onErrorChanged: missingInit,
}
@@ -132,6 +159,8 @@ enum ReviewTxActionType {
UnsignedTxChanged = 'unsignedTxChanged',
CborChanged = 'cborChanged',
OperationsChanged = 'operationsChanged',
+ CustomReceiverTitleChanged = 'customReceiverTitleChanged',
+ DetailsChanged = 'detailsChanged',
OnSuccessChanged = 'onSuccessChanged',
OnErrorChanged = 'onErrorChanged',
}
diff --git a/apps/wallet-mobile/src/features/ReviewTx/common/hooks/useAddressType.tsx b/apps/wallet-mobile/src/features/ReviewTx/common/hooks/useAddressType.tsx
deleted file mode 100644
index 6e054df944..0000000000
--- a/apps/wallet-mobile/src/features/ReviewTx/common/hooks/useAddressType.tsx
+++ /dev/null
@@ -1,12 +0,0 @@
-import {useQuery} from 'react-query'
-
-import {getAddressType} from '../../../../yoroi-wallets/cardano/utils'
-
-export const useAddressType = (address: string) => {
- const query = useQuery(['useAddressType', address], () => getAddressType(address), {
- suspense: true,
- })
-
- if (query.data === undefined) throw new Error('invalid address type')
- return query.data
-}
diff --git a/apps/wallet-mobile/src/features/ReviewTx/common/hooks/useFormattedMetadata.tsx b/apps/wallet-mobile/src/features/ReviewTx/common/hooks/useFormattedMetadata.tsx
new file mode 100644
index 0000000000..7b67530d7c
--- /dev/null
+++ b/apps/wallet-mobile/src/features/ReviewTx/common/hooks/useFormattedMetadata.tsx
@@ -0,0 +1,13 @@
+import {YoroiUnsignedTx} from '../../../../yoroi-wallets/types/yoroi'
+import {TransactionBody} from '../types'
+
+export const formatMetadata = (unsignedTx: YoroiUnsignedTx, txBody: TransactionBody) => {
+ const hash = txBody.auxiliary_data_hash ?? null
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
+ const metadata = unsignedTx.metadata?.['674']?.['msg' as any] ?? null
+
+ return {
+ hash,
+ metadata: {msg: [JSON.parse(metadata)]},
+ }
+}
diff --git a/apps/wallet-mobile/src/features/ReviewTx/common/hooks/useFormattedTx.tsx b/apps/wallet-mobile/src/features/ReviewTx/common/hooks/useFormattedTx.tsx
index 7949d9541d..91ef9f2d30 100644
--- a/apps/wallet-mobile/src/features/ReviewTx/common/hooks/useFormattedTx.tsx
+++ b/apps/wallet-mobile/src/features/ReviewTx/common/hooks/useFormattedTx.tsx
@@ -1,10 +1,13 @@
-import {invalid, isNonNullable} from '@yoroi/common'
+// import {CredKind} from '@emurgo/csl-mobile-bridge'
+import {CredKind} from '@emurgo/cross-csl-core'
+import {isNonNullable} from '@yoroi/common'
import {infoExtractName} from '@yoroi/portfolio'
import {Portfolio} from '@yoroi/types'
import _ from 'lodash'
import {useQuery} from 'react-query'
import {YoroiWallet} from '../../../../yoroi-wallets/cardano/types'
+import {deriveRewardAddressFromAddress} from '../../../../yoroi-wallets/cardano/utils'
import {wrappedCsl} from '../../../../yoroi-wallets/cardano/wrappedCsl'
import {formatTokenWithText} from '../../../../yoroi-wallets/utils/format'
import {asQuantity} from '../../../../yoroi-wallets/utils/utils'
@@ -14,12 +17,13 @@ import {
FormattedFee,
FormattedInputs,
FormattedOutputs,
+ FormattedTx,
TransactionBody,
TransactionInputs,
TransactionOutputs,
} from '../types'
-export const useFormattedTx = (data: TransactionBody) => {
+export const useFormattedTx = (data: TransactionBody): FormattedTx => {
const {wallet} = useSelectedWallet()
const inputs = data?.inputs ?? []
@@ -93,10 +97,14 @@ const formatInputs = async (
inputs.map(async (input) => {
const receiveUTxO = getUtxoByTxIdAndIndex(wallet, input.transaction_id, input.index)
const address = receiveUTxO?.receiver
- const rewardAddress =
- address !== undefined ? await deriveRewardAddressFromAddress(address, wallet.networkManager.chainId) : null
const coin = receiveUTxO?.amount != null ? asQuantity(receiveUTxO.amount) : null
+ const addressKind = address != null ? await getAddressKind(address) : null
+ const rewardAddress =
+ address != null && addressKind === CredKind.Key
+ ? await deriveAddress(address, wallet.networkManager.chainId)
+ : null
+
const primaryAssets =
coin != null
? [
@@ -130,6 +138,7 @@ const formatInputs = async (
return {
assets: [...primaryAssets, ...multiAssets].filter(isNonNullable),
address,
+ addressKind: addressKind ?? null,
rewardAddress,
ownAddress: address != null && isOwnedAddress(wallet, address),
txIndex: input.index,
@@ -147,9 +156,12 @@ const formatOutputs = async (
return Promise.all(
outputs.map(async (output) => {
const address = output.address
- const rewardAddress = await deriveRewardAddressFromAddress(address, wallet.networkManager.chainId)
const coin = asQuantity(output.amount.coin)
+ const addressKind = await getAddressKind(address)
+ const rewardAddress =
+ addressKind === CredKind.Key ? await deriveAddress(address, wallet.networkManager.chainId) : null
+
const primaryAssets = [
{
tokenInfo: wallet.portfolioPrimaryTokenInfo,
@@ -183,6 +195,7 @@ const formatOutputs = async (
return {
assets,
address,
+ addressKind,
rewardAddress,
ownAddress: isOwnedAddress(wallet, address),
}
@@ -202,20 +215,21 @@ export const formatFee = (wallet: YoroiWallet, data: TransactionBody): Formatted
}
}
-export const deriveRewardAddressFromAddress = async (address: string, chainId: number): Promise => {
+const deriveAddress = async (address: string, chainId: number) => {
+ try {
+ return await deriveRewardAddressFromAddress(address, chainId)
+ } catch {
+ return null
+ }
+}
+
+const getAddressKind = async (addressBech32: string): Promise => {
const {csl, release} = wrappedCsl()
try {
- const result = await csl.Address.fromBech32(address)
- .then((address) => csl.BaseAddress.fromAddress(address))
- .then((baseAddress) => baseAddress?.stakeCred() ?? invalid('invalid base address'))
- .then((stakeCredential) => csl.RewardAddress.new(chainId, stakeCredential))
- .then((rewardAddress) => rewardAddress.toAddress())
- .then((rewardAddrAsAddress) => rewardAddrAsAddress.toBech32(undefined))
- .catch((error) => error)
-
- if (typeof result !== 'string') throw new Error('Its not possible to derive reward address')
- return result
+ const address = await csl.Address.fromBech32(addressBech32)
+ const addressKind = await (await address.paymentCred())?.kind()
+ return addressKind ?? null
} finally {
release()
}
diff --git a/apps/wallet-mobile/src/features/ReviewTx/common/hooks/useStrings.tsx b/apps/wallet-mobile/src/features/ReviewTx/common/hooks/useStrings.tsx
index 9914016ec2..b6e245d124 100644
--- a/apps/wallet-mobile/src/features/ReviewTx/common/hooks/useStrings.tsx
+++ b/apps/wallet-mobile/src/features/ReviewTx/common/hooks/useStrings.tsx
@@ -11,6 +11,9 @@ export const useStrings = () => {
title: intl.formatMessage(messages.title),
utxosTab: intl.formatMessage(messages.utxosTab),
overviewTab: intl.formatMessage(messages.overviewTab),
+ metadataTab: intl.formatMessage(messages.metadataTab),
+ metadataHash: intl.formatMessage(messages.metadataHash),
+ metadataJsonLabel: intl.formatMessage(messages.metadataJsonLabel),
walletLabel: intl.formatMessage(messages.walletLabel),
feeLabel: intl.formatMessage(messages.feeLabel),
myWalletLabel: intl.formatMessage(messages.myWalletLabel),
@@ -52,6 +55,18 @@ const messages = defineMessages({
id: 'txReview.tabLabel.overview',
defaultMessage: '!!!Overview',
},
+ metadataTab: {
+ id: 'txReview.tabLabel.metadataTab',
+ defaultMessage: '!!!Metadata',
+ },
+ metadataHash: {
+ id: 'txReview.metadata.metadataHash',
+ defaultMessage: '!!!Metadata hash',
+ },
+ metadataJsonLabel: {
+ id: 'txReview.metadata.metadataJsonLabel',
+ defaultMessage: '!!!Metadata',
+ },
walletLabel: {
id: 'txReview.overview.wallet',
defaultMessage: '!!!Wallet',
diff --git a/apps/wallet-mobile/src/features/ReviewTx/common/hooks/useTxBody.tsx b/apps/wallet-mobile/src/features/ReviewTx/common/hooks/useTxBody.tsx
index 9de33bb075..75588bd47a 100644
--- a/apps/wallet-mobile/src/features/ReviewTx/common/hooks/useTxBody.tsx
+++ b/apps/wallet-mobile/src/features/ReviewTx/common/hooks/useTxBody.tsx
@@ -2,8 +2,9 @@ import {useQuery} from 'react-query'
import {wrappedCsl} from '../../../../yoroi-wallets/cardano/wrappedCsl'
import {YoroiUnsignedTx} from '../../../../yoroi-wallets/types/yoroi'
+import {TransactionBody} from '../types'
-export const useTxBody = ({cbor, unsignedTx}: {cbor?: string; unsignedTx?: YoroiUnsignedTx}) => {
+export const useTxBody = ({cbor, unsignedTx}: {cbor?: string; unsignedTx?: YoroiUnsignedTx}): TransactionBody => {
const query = useQuery(
['useTxBody', cbor, unsignedTx],
async () => {
diff --git a/apps/wallet-mobile/src/features/ReviewTx/common/types.ts b/apps/wallet-mobile/src/features/ReviewTx/common/types.ts
index 45744a4cf6..74cb9b2451 100644
--- a/apps/wallet-mobile/src/features/ReviewTx/common/types.ts
+++ b/apps/wallet-mobile/src/features/ReviewTx/common/types.ts
@@ -3,6 +3,7 @@ import {
TransactionInputsJSON,
TransactionOutputsJSON,
} from '@emurgo/cardano-serialization-lib-nodejs'
+import {CredKind} from '@emurgo/cross-csl-core'
import {Balance, Portfolio} from '@yoroi/types'
export type TransactionBody = TransactionBodyJSON
@@ -18,6 +19,7 @@ export type FormattedInput = {
isPrimary: boolean
}>
address: string | undefined
+ addressKind: CredKind | null
rewardAddress: string | null
ownAddress: boolean
txIndex: number
@@ -35,6 +37,7 @@ export type FormattedOutput = {
isPrimary: boolean
}>
address: string
+ addressKind: CredKind | null
rewardAddress: string | null
ownAddress: boolean
}
@@ -54,3 +57,8 @@ export type FormattedTx = {
outputs: FormattedOutputs
fee: FormattedFee
}
+
+export type Metadata = {
+ json: string | null
+ hash: string | null
+}
diff --git a/apps/wallet-mobile/src/features/ReviewTx/useCases/ReviewTxScreen/Metadata/MetadataTab.tsx b/apps/wallet-mobile/src/features/ReviewTx/useCases/ReviewTxScreen/Metadata/MetadataTab.tsx
new file mode 100644
index 0000000000..c60e4d1c60
--- /dev/null
+++ b/apps/wallet-mobile/src/features/ReviewTx/useCases/ReviewTxScreen/Metadata/MetadataTab.tsx
@@ -0,0 +1,90 @@
+import {useTheme} from '@yoroi/theme'
+import * as React from 'react'
+import {StyleSheet, Text, View} from 'react-native'
+
+import {Space} from '../../../../../components/Space/Space'
+import {CopiableText, CopyButton} from '../../../common/CopiableText'
+import {useStrings} from '../../../common/hooks/useStrings'
+
+type Props = {
+ hash: string | null
+ metadata: {msg: Array} | null
+}
+
+export const MetadataTab = ({metadata, hash}: Props) => {
+ const {styles} = useStyles()
+ const strings = useStrings()
+
+ if (hash == null || metadata == null) return null
+
+ const metadataFormatted = JSON.stringify(metadata, null, 2)
+
+ return (
+
+
+
+
+ {strings.metadataHash}
+
+
+
+
+ {hash}
+
+
+
+
+
+
+
+ {strings.metadataJsonLabel}
+
+
+
+
+
+
+ {metadataFormatted}
+
+
+ )
+}
+
+const useStyles = () => {
+ const {atoms, color} = useTheme()
+ const styles = StyleSheet.create({
+ root: {
+ ...atoms.flex_1,
+ ...atoms.px_lg,
+ backgroundColor: color.bg_color_max,
+ },
+ title: {
+ ...atoms.flex_row,
+ ...atoms.justify_between,
+ },
+ label: {
+ ...atoms.body_2_md_regular,
+ color: color.text_gray_low,
+ },
+ text: {
+ ...atoms.text_right,
+ ...atoms.flex_1,
+ ...atoms.body_2_md_regular,
+ color: color.text_gray_medium,
+ },
+ hashContainer: {
+ ...atoms.flex_1,
+ },
+ metadata: {
+ backgroundColor: color.bg_color_min,
+ ...atoms.rounded_sm,
+ ...atoms.p_lg,
+ },
+ metadataLabel: {
+ ...atoms.body_1_lg_medium,
+ color: color.text_gray_medium,
+ },
+ })
+
+ return {styles} as const
+}
diff --git a/apps/wallet-mobile/src/features/ReviewTx/useCases/ReviewTxScreen/Overview/OverviewTab.tsx b/apps/wallet-mobile/src/features/ReviewTx/useCases/ReviewTxScreen/Overview/OverviewTab.tsx
index 92278d03ba..cd04aeeb68 100644
--- a/apps/wallet-mobile/src/features/ReviewTx/useCases/ReviewTxScreen/Overview/OverviewTab.tsx
+++ b/apps/wallet-mobile/src/features/ReviewTx/useCases/ReviewTxScreen/Overview/OverviewTab.tsx
@@ -1,11 +1,14 @@
// 🚧 TODO: grouping by staking address 🚧
+import {CredKind} from '@emurgo/cross-csl-core'
import {Blockies} from '@yoroi/identicon'
import {useTheme} from '@yoroi/theme'
import * as React from 'react'
import {Linking, StyleSheet, Text, TouchableOpacity, View} from 'react-native'
+import {Divider} from '../../../../../components/Divider/Divider'
import {Icon} from '../../../../../components/Icon'
+import {useModal} from '../../../../../components/Modal/ModalContext'
import {Space} from '../../../../../components/Space/Space'
import {formatTokenWithText} from '../../../../../yoroi-wallets/utils/format'
import {Quantities} from '../../../../../yoroi-wallets/utils/utils'
@@ -13,14 +16,20 @@ import {useSelectedWallet} from '../../../../WalletManager/common/hooks/useSelec
import {useWalletManager} from '../../../../WalletManager/context/WalletManagerProvider'
import {Accordion} from '../../../common/Accordion'
import {CopiableText} from '../../../common/CopiableText'
-import {Divider} from '../../../common/Divider'
-import {useAddressType} from '../../../common/hooks/useAddressType'
import {useStrings} from '../../../common/hooks/useStrings'
-import {ReviewTxState} from '../../../common/ReviewTxProvider'
+import {ReviewTxState, useReviewTx} from '../../../common/ReviewTxProvider'
import {TokenItem} from '../../../common/TokenItem'
import {FormattedOutputs, FormattedTx} from '../../../common/types'
-export const OverviewTab = ({tx, operations}: {tx: FormattedTx; operations: ReviewTxState['operations']}) => {
+export const OverviewTab = ({
+ tx,
+ operations,
+ details,
+}: {
+ tx: FormattedTx
+ operations: ReviewTxState['operations']
+ details: ReviewTxState['details']
+}) => {
const {styles} = useStyles()
const notOwnedOutputs = React.useMemo(() => tx.outputs.filter((output) => !output.ownAddress), [tx.outputs])
@@ -37,6 +46,8 @@ export const OverviewTab = ({tx, operations}: {tx: FormattedTx; operations: Revi
+
+
)
}
@@ -94,7 +105,7 @@ const SenderSection = ({
}) => {
const strings = useStrings()
const {styles} = useStyles()
- const address = ownedOutputs[0]?.rewardAddress ?? ownedOutputs[0]?.address
+ const address = ownedOutputs[0]?.rewardAddress ?? ownedOutputs[0]?.address ?? '-'
return (
@@ -172,24 +183,30 @@ const SenderSectionLabel = () => {
}
const ReceiverSection = ({notOwnedOutputs}: {notOwnedOutputs: FormattedOutputs}) => {
- const address = notOwnedOutputs[0]?.rewardAddress ?? notOwnedOutputs[0]?.address
+ const address = notOwnedOutputs[0]?.rewardAddress ?? notOwnedOutputs[0]?.address ?? '-'
const {styles} = useStyles()
const strings = useStrings()
- const addressType = useAddressType(address)
- const isScriptAddress = addressType === 'script'
+ const {customReceiverTitle} = useReviewTx()
return (
<>
- {isScriptAddress ? strings.receiveToScriptLabel : strings.receiveToLabel}:
+
+ {notOwnedOutputs[0]?.addressKind === CredKind.Script && customReceiverTitle == null
+ ? strings.receiveToScriptLabel
+ : strings.receiveToLabel}
+ :
+
-
-
- {address}
-
-
+ {customReceiverTitle ?? (
+
+
+ {address}
+
+
+ )}
>
)
@@ -221,6 +238,29 @@ const OperationsSection = ({operations}: {operations: ReviewTxState['operations'
)
}
+const Details = ({details}: {details: ReviewTxState['details']}) => {
+ const {openModal} = useModal()
+ const {styles} = useStyles()
+
+ if (details == null) return null
+
+ const handleOnPress = () => {
+ openModal(details.title ?? '', {details.component}, 550)
+ }
+
+ return (
+
+
+
+
+
+ {details?.title}
+
+
+
+ )
+}
+
const useStyles = () => {
const {atoms, color} = useTheme()
const styles = StyleSheet.create({
@@ -290,6 +330,18 @@ const useStyles = () => {
...atoms.body_2_md_regular,
color: color.text_gray_medium,
},
+ detailsRow: {
+ ...atoms.flex_1,
+ ...atoms.flex_row,
+ ...atoms.justify_end,
+ },
+ details: {
+ ...atoms.px_lg,
+ },
+ detailsButton: {
+ ...atoms.body_2_md_medium,
+ color: color.text_primary_medium,
+ },
})
const colors = {
diff --git a/apps/wallet-mobile/src/features/ReviewTx/useCases/ReviewTxScreen/ReviewTxScreen.tsx b/apps/wallet-mobile/src/features/ReviewTx/useCases/ReviewTxScreen/ReviewTxScreen.tsx
index 035dc332c2..9b0550327d 100644
--- a/apps/wallet-mobile/src/features/ReviewTx/useCases/ReviewTxScreen/ReviewTxScreen.tsx
+++ b/apps/wallet-mobile/src/features/ReviewTx/useCases/ReviewTxScreen/ReviewTxScreen.tsx
@@ -1,15 +1,28 @@
import {createMaterialTopTabNavigator, MaterialTopTabBarProps} from '@react-navigation/material-top-tabs'
import {useTheme} from '@yoroi/theme'
import * as React from 'react'
-import {FlatList, ScrollView, StyleSheet, Text, TouchableOpacity, TouchableOpacityProps, View} from 'react-native'
+import {
+ FlatList,
+ StyleProp,
+ StyleSheet,
+ Text,
+ TouchableOpacity,
+ TouchableOpacityProps,
+ View,
+ ViewStyle,
+} from 'react-native'
import {Button} from '../../../../components/Button/Button'
import {SafeArea} from '../../../../components/SafeArea'
+import {ScrollView} from '../../../../components/ScrollView/ScrollView'
+import {isEmptyString} from '../../../../kernel/utils'
+import {formatMetadata} from '../../common/hooks/useFormattedMetadata'
import {useFormattedTx} from '../../common/hooks/useFormattedTx'
import {useOnConfirm} from '../../common/hooks/useOnConfirm'
import {useStrings} from '../../common/hooks/useStrings'
import {useTxBody} from '../../common/hooks/useTxBody'
import {useReviewTx} from '../../common/ReviewTxProvider'
+import {MetadataTab} from './Metadata/MetadataTab'
import {OverviewTab} from './Overview/OverviewTab'
import {UTxOsTab} from './UTxOs/UTxOsTab'
@@ -18,7 +31,7 @@ const MaterialTab = createMaterialTopTabNavigator()
export const ReviewTxScreen = () => {
const {styles} = useStyles()
const strings = useStrings()
- const {unsignedTx, operations, onSuccess, onError} = useReviewTx()
+ const {unsignedTx, operations, details, onSuccess, onError} = useReviewTx()
if (unsignedTx === null) throw new Error('ReviewTxScreen: missing unsignedTx')
@@ -28,21 +41,27 @@ export const ReviewTxScreen = () => {
onError,
})
- // TODO: add cbor arguments
+ // TODO: apply cbor
const txBody = useTxBody({unsignedTx})
const formatedTx = useFormattedTx(txBody)
+ const formattedMetadata = formatMetadata(unsignedTx, txBody)
- const OverViewTabMemo = React.memo(() => )
- const UTxOsTabMemo = React.memo(() => )
+ const tabsData = [
+ [strings.overviewTab, 'overview'],
+ [strings.utxosTab, 'utxos'],
+ ]
+
+ if (!isEmptyString(formattedMetadata.hash) && formattedMetadata.metadata != null)
+ tabsData.push([strings.metadataTab, 'metadata'])
return (
-
+ }>
{() => (
/* TODO: make scrollview general to use button border */
-
+
)}
@@ -51,7 +70,16 @@ export const ReviewTxScreen = () => {
{() => (
/* TODO: make scrollview general to use button border */
-
+
+
+ )}
+
+
+
+ {() => (
+ /* TODO: make scrollview general to use button border */
+
+
)}
@@ -64,16 +92,12 @@ export const ReviewTxScreen = () => {
)
}
-const TabBar = ({navigation, state}: MaterialTopTabBarProps) => {
+const TabBar = ({navigation, state, tabsData}: MaterialTopTabBarProps & {tabsData: Array>}) => {
const {styles} = useStyles()
- const strings = useStrings()
return (
(
navigation.navigate(key)} />
)}
@@ -105,9 +129,9 @@ export const Tab = ({
)
}
-const Actions = ({children}: {children: React.ReactNode}) => {
+const Actions = ({children, style}: {children: React.ReactNode; style?: StyleProp}) => {
const {styles} = useStyles()
- return {children}
+ return {children}
}
const useStyles = () => {
@@ -154,5 +178,8 @@ const useStyles = () => {
},
})
- return {styles} as const
+ const colors = {
+ lightGray: color.gray_200,
+ }
+ return {styles, colors} as const
}
diff --git a/apps/wallet-mobile/src/features/ReviewTx/useCases/ReviewTxScreen/UTxOs/UTxOsTab.tsx b/apps/wallet-mobile/src/features/ReviewTx/useCases/ReviewTxScreen/UTxOs/UTxOsTab.tsx
index 83861af94f..03c5811e9f 100644
--- a/apps/wallet-mobile/src/features/ReviewTx/useCases/ReviewTxScreen/UTxOs/UTxOsTab.tsx
+++ b/apps/wallet-mobile/src/features/ReviewTx/useCases/ReviewTxScreen/UTxOs/UTxOsTab.tsx
@@ -2,10 +2,10 @@ import {useTheme} from '@yoroi/theme'
import * as React from 'react'
import {StyleSheet, Text, View} from 'react-native'
+import {Divider} from '../../../../../components/Divider/Divider'
import {Space} from '../../../../../components/Space/Space'
import {Accordion} from '../../../common/Accordion'
import {CopiableText} from '../../../common/CopiableText'
-import {Divider} from '../../../common/Divider'
import {useStrings} from '../../../common/hooks/useStrings'
import {TokenItem} from '../../../common/TokenItem'
import {FormattedInput, FormattedInputs, FormattedOutput, FormattedOutputs, FormattedTx} from '../../../common/types'
diff --git a/apps/wallet-mobile/src/features/Settings/ApplicationSettings/index.ts b/apps/wallet-mobile/src/features/Settings/ApplicationSettings/index.ts
deleted file mode 100644
index 591971f428..0000000000
--- a/apps/wallet-mobile/src/features/Settings/ApplicationSettings/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from './ApplicationSettingsScreen'
diff --git a/apps/wallet-mobile/src/features/Settings/SettingsItems.tsx b/apps/wallet-mobile/src/features/Settings/SettingsItems.tsx
index 3c062c34bc..eba1b38cba 100644
--- a/apps/wallet-mobile/src/features/Settings/SettingsItems.tsx
+++ b/apps/wallet-mobile/src/features/Settings/SettingsItems.tsx
@@ -10,7 +10,7 @@ import {Text} from '../../components/Text'
import {isEmptyString} from '../../kernel/utils'
import {useCollateralInfo} from '../../yoroi-wallets/cardano/utxoManager/useCollateralInfo'
import {useSelectedWallet} from '../WalletManager/common/hooks/useSelectedWallet'
-import {usePrivacyMode} from './PrivacyMode/PrivacyMode'
+import {usePrivacyMode} from './useCases/changeAppSettings/PrivacyMode/PrivacyMode'
const Touchable = (props: TouchableOpacityProps) =>
diff --git a/apps/wallet-mobile/src/features/Settings/SettingsScreenNavigator.tsx b/apps/wallet-mobile/src/features/Settings/SettingsScreenNavigator.tsx
index 734bb47a56..8041fb2e52 100644
--- a/apps/wallet-mobile/src/features/Settings/SettingsScreenNavigator.tsx
+++ b/apps/wallet-mobile/src/features/Settings/SettingsScreenNavigator.tsx
@@ -18,26 +18,32 @@ import {
} from '../../kernel/navigation'
import {ChangePinScreen} from '../Auth/ChangePinScreen'
import {EnableLoginWithPin} from '../Auth/EnableLoginWithPin'
-import {About} from './About'
-import {ApplicationSettingsScreen} from './ApplicationSettings'
-import {ChangeLanguageScreen} from './ChangeLanguage'
-import {ChangeNetworkScreen, useHandleOpenNetworkNoticeModal} from './ChangeNetwork/ChangeNetworkScreen'
-import {NetworkTag} from './ChangeNetwork/NetworkTag'
-import {PreparingNetworkScreen} from './ChangeNetwork/PreparingNetworkScreen'
-import {ChangePasswordScreen} from './ChangePassword'
-import {ChangeThemeScreen} from './ChangeTheme/ChangeThemeScreen'
-import {ChangeCurrencyScreen} from './Currency/ChangeCurrencyScreen'
-import {DisableEasyConfirmationScreen, EnableEasyConfirmationScreen} from './EasyConfirmation'
-import {EnableLoginWithOsScreen} from './EnableLoginWithOs'
-import {ManageCollateralScreen} from './ManageCollateral'
-import {FailedTxScreen} from './ManageCollateral/ConfirmTx/FailedTx/FailedTxScreen'
-import {SubmittedTxScreen} from './ManageCollateral/ConfirmTx/SubmittedTx/SubmittedTxScreen'
-import {PrivacyPolicyScreen} from './PrivacyPolicy'
-import {RemoveWalletScreen} from './RemoveWallet'
-import {RenameWalletScreen} from './RenameWalletScreen/RenameWalletScreen'
-import {SystemLogScreen} from './SystemLogScreen/SystemLogScreen'
-import {TermsOfServiceScreen} from './TermsOfService'
-import {WalletSettingsScreen} from './WalletSettings'
+import {About} from './useCases/changeAppSettings/About'
+import {ApplicationSettingsScreen} from './useCases/changeAppSettings/ApplicationSettingsScreen'
+import {ChangeLanguageScreen} from './useCases/changeAppSettings/ChangeLanguage'
+import {
+ ChangeNetworkScreen,
+ useHandleOpenNetworkNoticeModal,
+} from './useCases/changeAppSettings/ChangeNetwork/ChangeNetworkScreen'
+import {NetworkTag} from './useCases/changeAppSettings/ChangeNetwork/NetworkTag'
+import {PreparingNetworkScreen} from './useCases/changeAppSettings/ChangeNetwork/PreparingNetworkScreen'
+import {ChangeThemeScreen} from './useCases/changeAppSettings/ChangeTheme/ChangeThemeScreen'
+import {ChangeCurrencyScreen} from './useCases/changeAppSettings/Currency/ChangeCurrencyScreen'
+import {EnableLoginWithOsScreen} from './useCases/changeAppSettings/EnableLoginWithOs'
+import {PrivacyPolicyScreen} from './useCases/changeAppSettings/PrivacyPolicy'
+import {SystemLogScreen} from './useCases/changeAppSettings/SystemLogScreen/SystemLogScreen'
+import {TermsOfServiceScreen} from './useCases/changeAppSettings/TermsOfService'
+import {ChangePasswordScreen} from './useCases/changeWalletSettings/ChangePassword'
+import {
+ DisableEasyConfirmationScreen,
+ EnableEasyConfirmationScreen,
+} from './useCases/changeWalletSettings/EasyConfirmation'
+import {ManageCollateralScreen} from './useCases/changeWalletSettings/ManageCollateral'
+import {FailedTxScreen} from './useCases/changeWalletSettings/ManageCollateral/ConfirmTx/FailedTx/FailedTxScreen'
+import {SubmittedTxScreen} from './useCases/changeWalletSettings/ManageCollateral/ConfirmTx/SubmittedTx/SubmittedTxScreen'
+import {RemoveWalletScreen} from './useCases/changeWalletSettings/RemoveWallet'
+import {RenameWalletScreen} from './useCases/changeWalletSettings/RenameWalletScreen/RenameWalletScreen'
+import {WalletSettingsScreen} from './useCases/changeWalletSettings/WalletSettingsScreen'
const Stack = createStackNavigator()
export const SettingsScreenNavigator = () => {
diff --git a/apps/wallet-mobile/src/features/Settings/WalletSettings/index.ts b/apps/wallet-mobile/src/features/Settings/WalletSettings/index.ts
deleted file mode 100644
index 48fb908a1b..0000000000
--- a/apps/wallet-mobile/src/features/Settings/WalletSettings/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from './WalletSettingsScreen'
diff --git a/apps/wallet-mobile/src/features/Settings/index.ts b/apps/wallet-mobile/src/features/Settings/index.ts
deleted file mode 100644
index edf6dd1000..0000000000
--- a/apps/wallet-mobile/src/features/Settings/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from './SettingsScreenNavigator'
diff --git a/apps/wallet-mobile/src/features/Settings/About/About.stories.tsx b/apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/About/About.stories.tsx
similarity index 60%
rename from apps/wallet-mobile/src/features/Settings/About/About.stories.tsx
rename to apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/About/About.stories.tsx
index 652e144ca9..bb7a67f2a9 100644
--- a/apps/wallet-mobile/src/features/Settings/About/About.stories.tsx
+++ b/apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/About/About.stories.tsx
@@ -1,8 +1,8 @@
import {storiesOf} from '@storybook/react-native'
import React from 'react'
-import {mocks} from '../../../yoroi-wallets/mocks/wallet'
-import {WalletManagerProviderMock} from '../../../yoroi-wallets/mocks/WalletManagerProviderMock'
+import {mocks} from '../../../../../yoroi-wallets/mocks/wallet'
+import {WalletManagerProviderMock} from '../../../../../yoroi-wallets/mocks/WalletManagerProviderMock'
import {About} from './About'
storiesOf('About', module).add('Default', () => (
diff --git a/apps/wallet-mobile/src/features/Settings/About/About.tsx b/apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/About/About.tsx
similarity index 93%
rename from apps/wallet-mobile/src/features/Settings/About/About.tsx
rename to apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/About/About.tsx
index 20ba7e5a99..7327863168 100644
--- a/apps/wallet-mobile/src/features/Settings/About/About.tsx
+++ b/apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/About/About.tsx
@@ -4,10 +4,10 @@ import React from 'react'
import {defineMessages, useIntl} from 'react-intl'
import {Pressable, StyleSheet, TextProps, View, ViewProps} from 'react-native'
-import {Text} from '../../../components/Text'
-import {appInfo} from '../../../kernel/appInfo'
-import {commit} from '../../../kernel/env'
-import {SettingsRouteNavigation} from '../../../kernel/navigation'
+import {Text} from '../../../../../components/Text'
+import {appInfo} from '../../../../../kernel/appInfo'
+import {commit} from '../../../../../kernel/env'
+import {SettingsRouteNavigation} from '../../../../../kernel/navigation'
export const About = () => {
const strings = useStrings()
diff --git a/apps/wallet-mobile/src/features/Settings/About/index.ts b/apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/About/index.ts
similarity index 100%
rename from apps/wallet-mobile/src/features/Settings/About/index.ts
rename to apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/About/index.ts
diff --git a/apps/wallet-mobile/src/features/Settings/ApplicationSettings/ApplicationSettingsScreen.stories.tsx b/apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/ApplicationSettingsScreen.stories.tsx
similarity index 100%
rename from apps/wallet-mobile/src/features/Settings/ApplicationSettings/ApplicationSettingsScreen.stories.tsx
rename to apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/ApplicationSettingsScreen.stories.tsx
diff --git a/apps/wallet-mobile/src/features/Settings/ApplicationSettings/ApplicationSettingsScreen.tsx b/apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/ApplicationSettingsScreen.tsx
similarity index 92%
rename from apps/wallet-mobile/src/features/Settings/ApplicationSettings/ApplicationSettingsScreen.tsx
rename to apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/ApplicationSettingsScreen.tsx
index 7bed584873..5c40a0ee25 100644
--- a/apps/wallet-mobile/src/features/Settings/ApplicationSettings/ApplicationSettingsScreen.tsx
+++ b/apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/ApplicationSettingsScreen.tsx
@@ -5,22 +5,22 @@ import {defineMessages, useIntl} from 'react-intl'
import {Platform, ScrollView, StyleSheet} from 'react-native'
import {SafeAreaView} from 'react-native-safe-area-context'
-import {Icon} from '../../../components/Icon'
-import {Spacer} from '../../../components/Spacer/Spacer'
-import {isNightly, isProduction} from '../../../kernel/env'
-import {useLanguage} from '../../../kernel/i18n'
-import {themeNames} from '../../../kernel/i18n/global-messages'
-import {defaultLanguage} from '../../../kernel/i18n/languages'
-import {useCrashReports} from '../../../yoroi-wallets/hooks'
-import {useAuthSetting, useAuthWithOs, useIsAuthOsSupported} from '../../Auth/common/hooks'
-import {usePrivacyMode} from '../../Settings/PrivacyMode/PrivacyMode'
-import {useSelectedNetwork} from '../../WalletManager/common/hooks/useSelectedNetwork'
-import {networkConfigs} from '../../WalletManager/network-manager/network-manager'
-import {useNavigateTo} from '../common/navigation'
-import {SettingsSwitch} from '../common/SettingsSwitch'
-import {useCurrencyPairing} from '../Currency/CurrencyContext'
-import {useChangeScreenShareSetting, useScreenShareSettingEnabled} from '../ScreenShare'
-import {NavigatedSettingsItem, SettingsItem, SettingsSection} from '../SettingsItems'
+import {Icon} from '../../../../components/Icon'
+import {Spacer} from '../../../../components/Spacer/Spacer'
+import {isNightly, isProduction} from '../../../../kernel/env'
+import {useLanguage} from '../../../../kernel/i18n'
+import {themeNames} from '../../../../kernel/i18n/global-messages'
+import {defaultLanguage} from '../../../../kernel/i18n/languages'
+import {useCrashReports} from '../../../../yoroi-wallets/hooks'
+import {useAuthSetting, useAuthWithOs, useIsAuthOsSupported} from '../../../Auth/common/hooks'
+import {useSelectedNetwork} from '../../../WalletManager/common/hooks/useSelectedNetwork'
+import {networkConfigs} from '../../../WalletManager/network-manager/network-manager'
+import {useNavigateTo} from '../../common/navigation'
+import {SettingsSwitch} from '../../common/SettingsSwitch'
+import {NavigatedSettingsItem, SettingsItem, SettingsSection} from '../../SettingsItems'
+import {useCurrencyPairing} from './Currency/CurrencyContext'
+import {usePrivacyMode} from './PrivacyMode/PrivacyMode'
+import {useChangeScreenShareSetting, useScreenShareSettingEnabled} from './ScreenShare'
export const ApplicationSettingsScreen = () => {
const strings = useStrings()
diff --git a/apps/wallet-mobile/src/features/Settings/ChangeLanguage/ChangeLanguageScreen.stories.tsx b/apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/ChangeLanguage/ChangeLanguageScreen.stories.tsx
similarity index 81%
rename from apps/wallet-mobile/src/features/Settings/ChangeLanguage/ChangeLanguageScreen.stories.tsx
rename to apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/ChangeLanguage/ChangeLanguageScreen.stories.tsx
index cda007dc2c..3242c37249 100644
--- a/apps/wallet-mobile/src/features/Settings/ChangeLanguage/ChangeLanguageScreen.stories.tsx
+++ b/apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/ChangeLanguage/ChangeLanguageScreen.stories.tsx
@@ -1,7 +1,7 @@
import {storiesOf} from '@storybook/react-native'
import React from 'react'
-import {SafeAreaInsets} from '../../../../.storybook/decorators'
+import {SafeAreaInsets} from '../../../../../../.storybook/decorators'
import {ChangeLanguageScreen} from './ChangeLanguageScreen'
storiesOf('ChangeLanguageScreen', module).add('Default', () => (
diff --git a/apps/wallet-mobile/src/features/Settings/ChangeLanguage/ChangeLanguageScreen.tsx b/apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/ChangeLanguage/ChangeLanguageScreen.tsx
similarity index 87%
rename from apps/wallet-mobile/src/features/Settings/ChangeLanguage/ChangeLanguageScreen.tsx
rename to apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/ChangeLanguage/ChangeLanguageScreen.tsx
index cee65c07af..3410d05100 100644
--- a/apps/wallet-mobile/src/features/Settings/ChangeLanguage/ChangeLanguageScreen.tsx
+++ b/apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/ChangeLanguage/ChangeLanguageScreen.tsx
@@ -3,7 +3,7 @@ import React from 'react'
import {StyleSheet} from 'react-native'
import {SafeAreaView} from 'react-native-safe-area-context'
-import {LanguagePicker} from '../../../components/LanguagePicker/LanguagePicker'
+import {LanguagePicker} from '../../../../../components/LanguagePicker/LanguagePicker'
export const ChangeLanguageScreen = () => {
const styles = useStyles()
diff --git a/apps/wallet-mobile/src/features/Settings/ChangeLanguage/index.ts b/apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/ChangeLanguage/index.ts
similarity index 100%
rename from apps/wallet-mobile/src/features/Settings/ChangeLanguage/index.ts
rename to apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/ChangeLanguage/index.ts
diff --git a/apps/wallet-mobile/src/features/Settings/ChangeNetwork/ChangeNetworkScreen.stories.tsx b/apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/ChangeNetwork/ChangeNetworkScreen.stories.tsx
similarity index 81%
rename from apps/wallet-mobile/src/features/Settings/ChangeNetwork/ChangeNetworkScreen.stories.tsx
rename to apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/ChangeNetwork/ChangeNetworkScreen.stories.tsx
index 3e945b8309..3c1ff775e0 100644
--- a/apps/wallet-mobile/src/features/Settings/ChangeNetwork/ChangeNetworkScreen.stories.tsx
+++ b/apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/ChangeNetwork/ChangeNetworkScreen.stories.tsx
@@ -1,7 +1,7 @@
import {storiesOf} from '@storybook/react-native'
import React from 'react'
-import {SafeAreaInsets} from '../../../../.storybook/decorators'
+import {SafeAreaInsets} from '../../../../../../.storybook/decorators'
import {ChangeNetworkScreen} from './ChangeNetworkScreen'
storiesOf('ChangeNetworkScreen', module).add('Default', () => (
diff --git a/apps/wallet-mobile/src/features/Settings/ChangeNetwork/ChangeNetworkScreen.tsx b/apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/ChangeNetwork/ChangeNetworkScreen.tsx
similarity index 90%
rename from apps/wallet-mobile/src/features/Settings/ChangeNetwork/ChangeNetworkScreen.tsx
rename to apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/ChangeNetwork/ChangeNetworkScreen.tsx
index b6e455d8f9..d9cbdd3a9d 100644
--- a/apps/wallet-mobile/src/features/Settings/ChangeNetwork/ChangeNetworkScreen.tsx
+++ b/apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/ChangeNetwork/ChangeNetworkScreen.tsx
@@ -5,12 +5,12 @@ import {Platform, StyleSheet, Text, View} from 'react-native'
import {SafeAreaView} from 'react-native-safe-area-context'
import {UseMutationOptions, useQuery, UseQueryOptions} from 'react-query'
-import {Boundary} from '../../../components/Boundary/Boundary'
-import {Button} from '../../../components/Button/Button'
-import {useModal} from '../../../components/Modal/ModalContext'
-import {Space} from '../../../components/Space/Space'
-import {Spacer} from '../../../components/Spacer/Spacer'
-import {time} from '../../../kernel/constants'
+import {Boundary} from '../../../../../components/Boundary/Boundary'
+import {Button} from '../../../../../components/Button/Button'
+import {useModal} from '../../../../../components/Modal/ModalContext'
+import {Space} from '../../../../../components/Space/Space'
+import {Spacer} from '../../../../../components/Spacer/Spacer'
+import {time} from '../../../../../kernel/constants'
import {NetworkPickerList} from './NetworkPickerList'
import {useStrings} from './strings'
diff --git a/apps/wallet-mobile/src/features/Settings/ChangeNetwork/NetworkPickerItem.tsx b/apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/ChangeNetwork/NetworkPickerItem.tsx
similarity index 95%
rename from apps/wallet-mobile/src/features/Settings/ChangeNetwork/NetworkPickerItem.tsx
rename to apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/ChangeNetwork/NetworkPickerItem.tsx
index 29aa18aee6..a7aaea24ed 100644
--- a/apps/wallet-mobile/src/features/Settings/ChangeNetwork/NetworkPickerItem.tsx
+++ b/apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/ChangeNetwork/NetworkPickerItem.tsx
@@ -3,8 +3,8 @@ import {Chain, Network} from '@yoroi/types'
import React from 'react'
import {StyleSheet, TouchableOpacity, View} from 'react-native'
-import {Icon} from '../../../components/Icon'
-import {Text} from '../../../components/Text'
+import {Icon} from '../../../../../components/Icon'
+import {Text} from '../../../../../components/Text'
type Props = {
name: Readonly
diff --git a/apps/wallet-mobile/src/features/Settings/ChangeNetwork/NetworkPickerList.tsx b/apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/ChangeNetwork/NetworkPickerList.tsx
similarity index 75%
rename from apps/wallet-mobile/src/features/Settings/ChangeNetwork/NetworkPickerList.tsx
rename to apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/ChangeNetwork/NetworkPickerList.tsx
index 420e76cfc8..bd2019a48e 100644
--- a/apps/wallet-mobile/src/features/Settings/ChangeNetwork/NetworkPickerList.tsx
+++ b/apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/ChangeNetwork/NetworkPickerList.tsx
@@ -4,13 +4,13 @@ import {freeze} from 'immer'
import React from 'react'
import {FlatList, StyleSheet} from 'react-native'
-import {useMetrics} from '../../../kernel/metrics/metricsManager'
-import {availableNetworks} from '../../WalletManager/common/constants'
-import {useSelectedNetwork} from '../../WalletManager/common/hooks/useSelectedNetwork'
-import {useAutomaticWalletOpener} from '../../WalletManager/context/AutomaticWalletOpeningProvider'
-import {useWalletManager} from '../../WalletManager/context/WalletManagerProvider'
-import {networkConfigs} from '../../WalletManager/network-manager/network-manager'
-import {useNavigateTo} from '../common/navigation'
+import {useMetrics} from '../../../../../kernel/metrics/metricsManager'
+import {availableNetworks} from '../../../../WalletManager/common/constants'
+import {useSelectedNetwork} from '../../../../WalletManager/common/hooks/useSelectedNetwork'
+import {useAutomaticWalletOpener} from '../../../../WalletManager/context/AutomaticWalletOpeningProvider'
+import {useWalletManager} from '../../../../WalletManager/context/WalletManagerProvider'
+import {networkConfigs} from '../../../../WalletManager/network-manager/network-manager'
+import {useNavigateTo} from '../../../common/navigation'
import {NetworkPickerItem} from './NetworkPickerItem'
export const NetworkPickerList = () => {
diff --git a/apps/wallet-mobile/src/features/Settings/ChangeNetwork/NetworkTag.tsx b/apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/ChangeNetwork/NetworkTag.tsx
similarity index 87%
rename from apps/wallet-mobile/src/features/Settings/ChangeNetwork/NetworkTag.tsx
rename to apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/ChangeNetwork/NetworkTag.tsx
index ab25f38163..8bca4700af 100644
--- a/apps/wallet-mobile/src/features/Settings/ChangeNetwork/NetworkTag.tsx
+++ b/apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/ChangeNetwork/NetworkTag.tsx
@@ -3,15 +3,15 @@ import {Chain} from '@yoroi/types'
import * as React from 'react'
import {StyleSheet, Text, TextStyle, TouchableOpacity, useWindowDimensions, View, ViewStyle} from 'react-native'
-import {Button, ButtonType} from '../../../components/Button/Button'
-import {useModal} from '../../../components/Modal/ModalContext'
-import {Space} from '../../../components/Space/Space'
-import {Spacer} from '../../../components/Spacer/Spacer'
-import {useMetrics} from '../../../kernel/metrics/metricsManager'
-import {useWalletNavigation} from '../../../kernel/navigation'
-import {availableNetworks} from '../../WalletManager/common/constants'
-import {useWalletManager} from '../../WalletManager/context/WalletManagerProvider'
-import {networkConfigs} from '../../WalletManager/network-manager/network-manager'
+import {Button, ButtonType} from '../../../../../components/Button/Button'
+import {useModal} from '../../../../../components/Modal/ModalContext'
+import {Space} from '../../../../../components/Space/Space'
+import {Spacer} from '../../../../../components/Spacer/Spacer'
+import {useMetrics} from '../../../../../kernel/metrics/metricsManager'
+import {useWalletNavigation} from '../../../../../kernel/navigation'
+import {availableNetworks} from '../../../../WalletManager/common/constants'
+import {useWalletManager} from '../../../../WalletManager/context/WalletManagerProvider'
+import {networkConfigs} from '../../../../WalletManager/network-manager/network-manager'
import {useStrings} from './strings'
export const NetworkTag = ({
diff --git a/apps/wallet-mobile/src/features/Settings/ChangeNetwork/PreparingNetworkScreen.tsx b/apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/ChangeNetwork/PreparingNetworkScreen.tsx
similarity index 95%
rename from apps/wallet-mobile/src/features/Settings/ChangeNetwork/PreparingNetworkScreen.tsx
rename to apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/ChangeNetwork/PreparingNetworkScreen.tsx
index c8ce1576dd..b825b4ca32 100644
--- a/apps/wallet-mobile/src/features/Settings/ChangeNetwork/PreparingNetworkScreen.tsx
+++ b/apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/ChangeNetwork/PreparingNetworkScreen.tsx
@@ -6,7 +6,7 @@ import {StyleSheet, Text} from 'react-native'
import {SafeAreaView} from 'react-native-safe-area-context'
import {z} from 'zod'
-import {SettingsStackRoutes, useParams} from '../../../kernel/navigation'
+import {SettingsStackRoutes, useParams} from '../../../../../kernel/navigation'
import {useStrings} from './strings'
import {useLaunchRouteAfterSyncing} from './useLaunchRouteAfterSyncing'
diff --git a/apps/wallet-mobile/src/features/Settings/ChangeNetwork/strings.ts b/apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/ChangeNetwork/strings.ts
similarity index 97%
rename from apps/wallet-mobile/src/features/Settings/ChangeNetwork/strings.ts
rename to apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/ChangeNetwork/strings.ts
index 4f7df6ca6f..29cbabff9f 100644
--- a/apps/wallet-mobile/src/features/Settings/ChangeNetwork/strings.ts
+++ b/apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/ChangeNetwork/strings.ts
@@ -1,6 +1,6 @@
import {defineMessages, useIntl} from 'react-intl'
-import globalMessages from '../../../kernel/i18n/global-messages'
+import globalMessages from '../../../../../kernel/i18n/global-messages'
export const useStrings = () => {
const intl = useIntl()
diff --git a/apps/wallet-mobile/src/features/Settings/ChangeNetwork/useLaunchRouteAfterSyncing.tsx b/apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/ChangeNetwork/useLaunchRouteAfterSyncing.tsx
similarity index 82%
rename from apps/wallet-mobile/src/features/Settings/ChangeNetwork/useLaunchRouteAfterSyncing.tsx
rename to apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/ChangeNetwork/useLaunchRouteAfterSyncing.tsx
index 9e1ace44f4..74b3fbb66a 100644
--- a/apps/wallet-mobile/src/features/Settings/ChangeNetwork/useLaunchRouteAfterSyncing.tsx
+++ b/apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/ChangeNetwork/useLaunchRouteAfterSyncing.tsx
@@ -1,8 +1,8 @@
import {Chain} from '@yoroi/types'
import * as React from 'react'
-import {useWalletNavigation} from '../../../kernel/navigation'
-import {useWalletManager} from '../../WalletManager/context/WalletManagerProvider'
+import {useWalletNavigation} from '../../../../../kernel/navigation'
+import {useWalletManager} from '../../../../WalletManager/context/WalletManagerProvider'
export function useLaunchRouteAfterSyncing({selectedNetwork}: {selectedNetwork: Chain.SupportedNetworks}) {
const walletNavigation = useWalletNavigation()
diff --git a/apps/wallet-mobile/src/features/Settings/ChangeTheme/ChangeThemeScreen.stories.tsx b/apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/ChangeTheme/ChangeThemeScreen.stories.tsx
similarity index 80%
rename from apps/wallet-mobile/src/features/Settings/ChangeTheme/ChangeThemeScreen.stories.tsx
rename to apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/ChangeTheme/ChangeThemeScreen.stories.tsx
index 78752e79a1..d5d5979c25 100644
--- a/apps/wallet-mobile/src/features/Settings/ChangeTheme/ChangeThemeScreen.stories.tsx
+++ b/apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/ChangeTheme/ChangeThemeScreen.stories.tsx
@@ -1,7 +1,7 @@
import {storiesOf} from '@storybook/react-native'
import React from 'react'
-import {SafeAreaInsets} from '../../../../.storybook/decorators'
+import {SafeAreaInsets} from '../../../../../../.storybook/decorators'
import {ChangeThemeScreen} from './ChangeThemeScreen'
storiesOf('ChangeThemeScreen', module).add('Default', () => (
diff --git a/apps/wallet-mobile/src/features/Settings/ChangeTheme/ChangeThemeScreen.tsx b/apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/ChangeTheme/ChangeThemeScreen.tsx
similarity index 90%
rename from apps/wallet-mobile/src/features/Settings/ChangeTheme/ChangeThemeScreen.tsx
rename to apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/ChangeTheme/ChangeThemeScreen.tsx
index d482b8fcfa..af0d7a3a9f 100644
--- a/apps/wallet-mobile/src/features/Settings/ChangeTheme/ChangeThemeScreen.tsx
+++ b/apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/ChangeTheme/ChangeThemeScreen.tsx
@@ -3,7 +3,7 @@ import React from 'react'
import {StyleSheet} from 'react-native'
import {SafeAreaView} from 'react-native-safe-area-context'
-import {Boundary} from '../../../components/Boundary/Boundary'
+import {Boundary} from '../../../../../components/Boundary/Boundary'
import {ThemePickerList} from './ThemePickerList'
export const ChangeThemeScreen = () => {
diff --git a/apps/wallet-mobile/src/features/Settings/ChangeTheme/ThemePickerItem.tsx b/apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/ChangeTheme/ThemePickerItem.tsx
similarity index 90%
rename from apps/wallet-mobile/src/features/Settings/ChangeTheme/ThemePickerItem.tsx
rename to apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/ChangeTheme/ThemePickerItem.tsx
index ccd02c9e5e..337e58a73f 100644
--- a/apps/wallet-mobile/src/features/Settings/ChangeTheme/ThemePickerItem.tsx
+++ b/apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/ChangeTheme/ThemePickerItem.tsx
@@ -3,10 +3,10 @@ import React from 'react'
import {useIntl} from 'react-intl'
import {StyleSheet, TouchableOpacity, View} from 'react-native'
-import {Icon} from '../../../components/Icon'
-import {Text} from '../../../components/Text'
-import {themeNames} from '../../../kernel/i18n/global-messages'
-import {useThemeStorageMaker} from '../../../yoroi-wallets/hooks'
+import {Icon} from '../../../../../components/Icon'
+import {Text} from '../../../../../components/Text'
+import {themeNames} from '../../../../../kernel/i18n/global-messages'
+import {useThemeStorageMaker} from '../../../../../yoroi-wallets/hooks'
type Props = {
title: SupportedThemes
diff --git a/apps/wallet-mobile/src/features/Settings/ChangeTheme/ThemePickerList.tsx b/apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/ChangeTheme/ThemePickerList.tsx
similarity index 91%
rename from apps/wallet-mobile/src/features/Settings/ChangeTheme/ThemePickerList.tsx
rename to apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/ChangeTheme/ThemePickerList.tsx
index 99bf925c17..f510fd7679 100644
--- a/apps/wallet-mobile/src/features/Settings/ChangeTheme/ThemePickerList.tsx
+++ b/apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/ChangeTheme/ThemePickerList.tsx
@@ -2,7 +2,7 @@ import {useTheme} from '@yoroi/theme'
import React from 'react'
import {FlatList, StyleSheet} from 'react-native'
-import {useThemeStorageMaker} from '../../../yoroi-wallets/hooks'
+import {useThemeStorageMaker} from '../../../../../yoroi-wallets/hooks'
import {ThemePickerItem} from './ThemePickerItem'
export const ThemePickerList = () => {
diff --git a/apps/wallet-mobile/src/features/Settings/Currency/ChangeCurrencyScreen.stories.tsx b/apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/Currency/ChangeCurrencyScreen.stories.tsx
similarity index 100%
rename from apps/wallet-mobile/src/features/Settings/Currency/ChangeCurrencyScreen.stories.tsx
rename to apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/Currency/ChangeCurrencyScreen.stories.tsx
diff --git a/apps/wallet-mobile/src/features/Settings/Currency/ChangeCurrencyScreen.tsx b/apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/Currency/ChangeCurrencyScreen.tsx
similarity index 90%
rename from apps/wallet-mobile/src/features/Settings/Currency/ChangeCurrencyScreen.tsx
rename to apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/Currency/ChangeCurrencyScreen.tsx
index f975176689..1c2adc9137 100644
--- a/apps/wallet-mobile/src/features/Settings/Currency/ChangeCurrencyScreen.tsx
+++ b/apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/Currency/ChangeCurrencyScreen.tsx
@@ -3,7 +3,7 @@ import React from 'react'
import {StyleSheet} from 'react-native'
import {SafeAreaView} from 'react-native-safe-area-context'
-import {Boundary} from '../../../components/Boundary/Boundary'
+import {Boundary} from '../../../../../components/Boundary/Boundary'
import {CurrencyPickerList} from './CurrencyPickerList'
export const ChangeCurrencyScreen = () => {
diff --git a/apps/wallet-mobile/src/features/Settings/Currency/CurrencyContext.tsx b/apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/Currency/CurrencyContext.tsx
similarity index 91%
rename from apps/wallet-mobile/src/features/Settings/Currency/CurrencyContext.tsx
rename to apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/Currency/CurrencyContext.tsx
index 2f86e763fc..c6f8a481ec 100644
--- a/apps/wallet-mobile/src/features/Settings/Currency/CurrencyContext.tsx
+++ b/apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/Currency/CurrencyContext.tsx
@@ -2,9 +2,9 @@ import {parseSafe, useAsyncStorage} from '@yoroi/common'
import React from 'react'
import {useMutation, UseMutationOptions, useQuery, useQueryClient} from 'react-query'
-import {configCurrencies, supportedCurrencies} from '../../../kernel/constants'
-import {usePrimaryTokenActivity} from '../../../yoroi-wallets/cardano/usePrimaryTokenActivity'
-import {ConfigCurrencies, CurrencySymbol} from '../../../yoroi-wallets/types/other'
+import {configCurrencies, supportedCurrencies} from '../../../../../kernel/constants'
+import {usePrimaryTokenActivity} from '../../../../../yoroi-wallets/cardano/usePrimaryTokenActivity'
+import {ConfigCurrencies, CurrencySymbol} from '../../../../../yoroi-wallets/types/other'
const CurrencyContext = React.createContext(undefined)
export const CurrencyProvider = ({children}: {children: React.ReactNode}) => {
diff --git a/apps/wallet-mobile/src/features/Settings/Currency/CurrencyPickerItem.tsx b/apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/Currency/CurrencyPickerItem.tsx
similarity index 91%
rename from apps/wallet-mobile/src/features/Settings/Currency/CurrencyPickerItem.tsx
rename to apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/Currency/CurrencyPickerItem.tsx
index ce1bcf6366..124187ccf3 100644
--- a/apps/wallet-mobile/src/features/Settings/Currency/CurrencyPickerItem.tsx
+++ b/apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/Currency/CurrencyPickerItem.tsx
@@ -3,10 +3,10 @@ import React from 'react'
import {useIntl} from 'react-intl'
import {StyleSheet, TouchableOpacity, View} from 'react-native'
-import {Icon} from '../../../components/Icon'
-import {Text} from '../../../components/Text'
-import {currencyNames} from '../../../kernel/i18n/global-messages'
-import {CurrencySymbol} from '../../../yoroi-wallets/types/other'
+import {Icon} from '../../../../../components/Icon'
+import {Text} from '../../../../../components/Text'
+import {currencyNames} from '../../../../../kernel/i18n/global-messages'
+import {CurrencySymbol} from '../../../../../yoroi-wallets/types/other'
type Props = {
nativeName: string
diff --git a/apps/wallet-mobile/src/features/Settings/Currency/CurrencyPickerList.tsx b/apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/Currency/CurrencyPickerList.tsx
similarity index 92%
rename from apps/wallet-mobile/src/features/Settings/Currency/CurrencyPickerList.tsx
rename to apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/Currency/CurrencyPickerList.tsx
index eaa76c9ed4..25be483e59 100644
--- a/apps/wallet-mobile/src/features/Settings/Currency/CurrencyPickerList.tsx
+++ b/apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/Currency/CurrencyPickerList.tsx
@@ -1,7 +1,7 @@
import React from 'react'
import {FlatList, StyleSheet} from 'react-native'
-import {CurrencySymbol} from '../../../yoroi-wallets/types/other'
+import {CurrencySymbol} from '../../../../../yoroi-wallets/types/other'
import {useCurrencyPairing} from './CurrencyContext'
import {CurrencyPickerItem} from './CurrencyPickerItem'
diff --git a/apps/wallet-mobile/src/features/Settings/EnableLoginWithOs/EnableLoginWithOsScreen.stories.tsx b/apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/EnableLoginWithOs/EnableLoginWithOsScreen.stories.tsx
similarity index 100%
rename from apps/wallet-mobile/src/features/Settings/EnableLoginWithOs/EnableLoginWithOsScreen.stories.tsx
rename to apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/EnableLoginWithOs/EnableLoginWithOsScreen.stories.tsx
diff --git a/apps/wallet-mobile/src/features/Settings/EnableLoginWithOs/EnableLoginWithOsScreen.tsx b/apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/EnableLoginWithOs/EnableLoginWithOsScreen.tsx
similarity index 87%
rename from apps/wallet-mobile/src/features/Settings/EnableLoginWithOs/EnableLoginWithOsScreen.tsx
rename to apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/EnableLoginWithOs/EnableLoginWithOsScreen.tsx
index 7030a376ef..0f8e7b06c4 100644
--- a/apps/wallet-mobile/src/features/Settings/EnableLoginWithOs/EnableLoginWithOsScreen.tsx
+++ b/apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/EnableLoginWithOs/EnableLoginWithOsScreen.tsx
@@ -2,10 +2,10 @@ import {useNavigation} from '@react-navigation/native'
import React from 'react'
import {defineMessages, useIntl} from 'react-intl'
-import {Button, ButtonType} from '../../../components/Button/Button'
-import globalMessages from '../../../kernel/i18n/global-messages'
-import {useEnableAuthWithOs} from '../../Auth/common/hooks'
-import {OsAuthScreen} from '../../Auth/OsAuthScreen/OsAuthScreen'
+import {Button, ButtonType} from '../../../../../components/Button/Button'
+import globalMessages from '../../../../../kernel/i18n/global-messages'
+import {useEnableAuthWithOs} from '../../../../Auth/common/hooks'
+import {OsAuthScreen} from '../../../../Auth/OsAuthScreen/OsAuthScreen'
export const EnableLoginWithOsScreen = () => {
const strings = useStrings()
diff --git a/apps/wallet-mobile/src/features/Settings/EnableLoginWithOs/index.ts b/apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/EnableLoginWithOs/index.ts
similarity index 100%
rename from apps/wallet-mobile/src/features/Settings/EnableLoginWithOs/index.ts
rename to apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/EnableLoginWithOs/index.ts
diff --git a/apps/wallet-mobile/src/features/Settings/PrivacyMode/PrivacyMode.tsx b/apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/PrivacyMode/PrivacyMode.tsx
similarity index 100%
rename from apps/wallet-mobile/src/features/Settings/PrivacyMode/PrivacyMode.tsx
rename to apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/PrivacyMode/PrivacyMode.tsx
diff --git a/apps/wallet-mobile/src/features/Settings/PrivacyPolicy/PrivacyPolicyScreen.stories.tsx b/apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/PrivacyPolicy/PrivacyPolicyScreen.stories.tsx
similarity index 100%
rename from apps/wallet-mobile/src/features/Settings/PrivacyPolicy/PrivacyPolicyScreen.stories.tsx
rename to apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/PrivacyPolicy/PrivacyPolicyScreen.stories.tsx
diff --git a/apps/wallet-mobile/src/features/Settings/PrivacyPolicy/PrivacyPolicyScreen.tsx b/apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/PrivacyPolicy/PrivacyPolicyScreen.tsx
similarity index 85%
rename from apps/wallet-mobile/src/features/Settings/PrivacyPolicy/PrivacyPolicyScreen.tsx
rename to apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/PrivacyPolicy/PrivacyPolicyScreen.tsx
index 2ba3cb65d2..62897c09be 100644
--- a/apps/wallet-mobile/src/features/Settings/PrivacyPolicy/PrivacyPolicyScreen.tsx
+++ b/apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/PrivacyPolicy/PrivacyPolicyScreen.tsx
@@ -3,8 +3,8 @@ import React from 'react'
import {ScrollView, StyleSheet} from 'react-native'
import {SafeAreaView} from 'react-native-safe-area-context'
-import {useLanguage} from '../../../kernel/i18n'
-import {PrivacyPolicy} from '../../Legal/PrivacyPolicy/PrivacyPolicy'
+import {useLanguage} from '../../../../../kernel/i18n'
+import {PrivacyPolicy} from '../../../../Legal/PrivacyPolicy/PrivacyPolicy'
export const PrivacyPolicyScreen = () => {
const styles = useStyles()
diff --git a/apps/wallet-mobile/src/features/Settings/PrivacyPolicy/index.ts b/apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/PrivacyPolicy/index.ts
similarity index 100%
rename from apps/wallet-mobile/src/features/Settings/PrivacyPolicy/index.ts
rename to apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/PrivacyPolicy/index.ts
diff --git a/apps/wallet-mobile/src/features/Settings/ScreenShare/ScreenShare.ts b/apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/ScreenShare/ScreenShare.ts
similarity index 100%
rename from apps/wallet-mobile/src/features/Settings/ScreenShare/ScreenShare.ts
rename to apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/ScreenShare/ScreenShare.ts
diff --git a/apps/wallet-mobile/src/features/Settings/ScreenShare/index.ts b/apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/ScreenShare/index.ts
similarity index 100%
rename from apps/wallet-mobile/src/features/Settings/ScreenShare/index.ts
rename to apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/ScreenShare/index.ts
diff --git a/apps/wallet-mobile/src/features/Settings/SystemLogScreen/SystemLogScreen.stories.tsx b/apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/SystemLogScreen/SystemLogScreen.stories.tsx
similarity index 64%
rename from apps/wallet-mobile/src/features/Settings/SystemLogScreen/SystemLogScreen.stories.tsx
rename to apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/SystemLogScreen/SystemLogScreen.stories.tsx
index de7305e202..359bdb1056 100644
--- a/apps/wallet-mobile/src/features/Settings/SystemLogScreen/SystemLogScreen.stories.tsx
+++ b/apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/SystemLogScreen/SystemLogScreen.stories.tsx
@@ -1,8 +1,8 @@
import {storiesOf} from '@storybook/react-native'
import React from 'react'
-import {mocks} from '../../../yoroi-wallets/mocks/wallet'
-import {WalletManagerProviderMock} from '../../../yoroi-wallets/mocks/WalletManagerProviderMock'
+import {mocks} from '../../../../../yoroi-wallets/mocks/wallet'
+import {WalletManagerProviderMock} from '../../../../../yoroi-wallets/mocks/WalletManagerProviderMock'
import {SystemLogScreen} from './SystemLogScreen'
storiesOf('Settings SystemLogScreen', module).add('initial', () => (
diff --git a/apps/wallet-mobile/src/features/Settings/SystemLogScreen/SystemLogScreen.tsx b/apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/SystemLogScreen/SystemLogScreen.tsx
similarity index 92%
rename from apps/wallet-mobile/src/features/Settings/SystemLogScreen/SystemLogScreen.tsx
rename to apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/SystemLogScreen/SystemLogScreen.tsx
index 35b4c7c63b..4df81dd4c7 100644
--- a/apps/wallet-mobile/src/features/Settings/SystemLogScreen/SystemLogScreen.tsx
+++ b/apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/SystemLogScreen/SystemLogScreen.tsx
@@ -3,9 +3,9 @@ import {App} from '@yoroi/types'
import React from 'react'
import {ScrollView, StyleSheet, TextProps, View} from 'react-native'
-import {Space} from '../../../components/Space/Space'
-import {Text} from '../../../components/Text'
-import {logger} from '../../../kernel/logger/logger'
+import {Space} from '../../../../../components/Space/Space'
+import {Text} from '../../../../../components/Text'
+import {logger} from '../../../../../kernel/logger/logger'
export const SystemLogScreen = () => {
const styles = useStyles()
diff --git a/apps/wallet-mobile/src/features/Settings/TermsOfService/TermsOfServiceScreen.stories.tsx b/apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/TermsOfService/TermsOfServiceScreen.stories.tsx
similarity index 100%
rename from apps/wallet-mobile/src/features/Settings/TermsOfService/TermsOfServiceScreen.stories.tsx
rename to apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/TermsOfService/TermsOfServiceScreen.stories.tsx
diff --git a/apps/wallet-mobile/src/features/Settings/TermsOfService/TermsOfServiceScreen.tsx b/apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/TermsOfService/TermsOfServiceScreen.tsx
similarity index 85%
rename from apps/wallet-mobile/src/features/Settings/TermsOfService/TermsOfServiceScreen.tsx
rename to apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/TermsOfService/TermsOfServiceScreen.tsx
index 9045774937..d065dfaace 100644
--- a/apps/wallet-mobile/src/features/Settings/TermsOfService/TermsOfServiceScreen.tsx
+++ b/apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/TermsOfService/TermsOfServiceScreen.tsx
@@ -3,8 +3,8 @@ import React from 'react'
import {ScrollView, StyleSheet} from 'react-native'
import {SafeAreaView} from 'react-native-safe-area-context'
-import {useLanguage} from '../../../kernel/i18n'
-import {TermsOfService} from '../../Legal/TermsOfService/TermsOfService'
+import {useLanguage} from '../../../../../kernel/i18n'
+import {TermsOfService} from '../../../../Legal/TermsOfService/TermsOfService'
export const TermsOfServiceScreen = () => {
const styles = useStyles()
diff --git a/apps/wallet-mobile/src/features/Settings/TermsOfService/index.ts b/apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/TermsOfService/index.ts
similarity index 100%
rename from apps/wallet-mobile/src/features/Settings/TermsOfService/index.ts
rename to apps/wallet-mobile/src/features/Settings/useCases/changeAppSettings/TermsOfService/index.ts
diff --git a/apps/wallet-mobile/src/features/Settings/ChangePassword/ChangePasswordScreen.stories.tsx b/apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/ChangePassword/ChangePasswordScreen.stories.tsx
similarity index 60%
rename from apps/wallet-mobile/src/features/Settings/ChangePassword/ChangePasswordScreen.stories.tsx
rename to apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/ChangePassword/ChangePasswordScreen.stories.tsx
index f49233db00..73a2c60535 100644
--- a/apps/wallet-mobile/src/features/Settings/ChangePassword/ChangePasswordScreen.stories.tsx
+++ b/apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/ChangePassword/ChangePasswordScreen.stories.tsx
@@ -1,9 +1,9 @@
import {storiesOf} from '@storybook/react-native'
import React from 'react'
-import {YoroiWallet} from '../../../yoroi-wallets/cardano/types'
-import {mocks} from '../../../yoroi-wallets/mocks/wallet'
-import {WalletManagerProviderMock} from '../../../yoroi-wallets/mocks/WalletManagerProviderMock'
+import {YoroiWallet} from '../../../../../yoroi-wallets/cardano/types'
+import {mocks} from '../../../../../yoroi-wallets/mocks/wallet'
+import {WalletManagerProviderMock} from '../../../../../yoroi-wallets/mocks/WalletManagerProviderMock'
import {ChangePasswordScreen} from './ChangePasswordScreen'
const wallet: YoroiWallet = {
diff --git a/apps/wallet-mobile/src/features/Settings/ChangePassword/ChangePasswordScreen.tsx b/apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/ChangePassword/ChangePasswordScreen.tsx
similarity index 91%
rename from apps/wallet-mobile/src/features/Settings/ChangePassword/ChangePasswordScreen.tsx
rename to apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/ChangePassword/ChangePasswordScreen.tsx
index 003c7dd713..0aa8f62bbd 100644
--- a/apps/wallet-mobile/src/features/Settings/ChangePassword/ChangePasswordScreen.tsx
+++ b/apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/ChangePassword/ChangePasswordScreen.tsx
@@ -6,14 +6,14 @@ import {ScrollView, StyleSheet, TextInput as RNTextInput, View, ViewProps} from
import {SafeAreaView} from 'react-native-safe-area-context'
import {MutationOptions, useMutation} from 'react-query'
-import {Button} from '../../../components/Button/Button'
-import {KeyboardAvoidingView} from '../../../components/KeyboardAvoidingView/KeyboardAvoidingView'
-import {Checkmark, TextInput} from '../../../components/TextInput/TextInput'
-import {errorMessages} from '../../../kernel/i18n/global-messages'
-import {YoroiWallet} from '../../../yoroi-wallets/cardano/types'
-import {REQUIRED_PASSWORD_LENGTH, validatePassword} from '../../../yoroi-wallets/utils/validators'
-import {useSelectedWallet} from '../../WalletManager/common/hooks/useSelectedWallet'
-import {useWalletManager} from '../../WalletManager/context/WalletManagerProvider'
+import {Button} from '../../../../../components/Button/Button'
+import {KeyboardAvoidingView} from '../../../../../components/KeyboardAvoidingView/KeyboardAvoidingView'
+import {Checkmark, TextInput} from '../../../../../components/TextInput/TextInput'
+import {errorMessages} from '../../../../../kernel/i18n/global-messages'
+import {YoroiWallet} from '../../../../../yoroi-wallets/cardano/types'
+import {REQUIRED_PASSWORD_LENGTH, validatePassword} from '../../../../../yoroi-wallets/utils/validators'
+import {useSelectedWallet} from '../../../../WalletManager/common/hooks/useSelectedWallet'
+import {useWalletManager} from '../../../../WalletManager/context/WalletManagerProvider'
export const ChangePasswordScreen = () => {
const strings = useStrings()
diff --git a/apps/wallet-mobile/src/features/Settings/ChangePassword/index.ts b/apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/ChangePassword/index.ts
similarity index 100%
rename from apps/wallet-mobile/src/features/Settings/ChangePassword/index.ts
rename to apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/ChangePassword/index.ts
diff --git a/apps/wallet-mobile/src/features/Settings/EasyConfirmation/DisableEasyConfirmationScreen.tsx b/apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/EasyConfirmation/DisableEasyConfirmationScreen.tsx
similarity index 87%
rename from apps/wallet-mobile/src/features/Settings/EasyConfirmation/DisableEasyConfirmationScreen.tsx
rename to apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/EasyConfirmation/DisableEasyConfirmationScreen.tsx
index cc9b3c57cf..de5bf4cbef 100644
--- a/apps/wallet-mobile/src/features/Settings/EasyConfirmation/DisableEasyConfirmationScreen.tsx
+++ b/apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/EasyConfirmation/DisableEasyConfirmationScreen.tsx
@@ -5,10 +5,10 @@ import {defineMessages, useIntl} from 'react-intl'
import {StyleSheet, View} from 'react-native'
import {SafeAreaView} from 'react-native-safe-area-context'
-import {Button} from '../../../components/Button/Button'
-import {Text} from '../../../components/Text'
-import {useSelectedWallet} from '../../WalletManager/common/hooks/useSelectedWallet'
-import {useWalletManager} from '../../WalletManager/context/WalletManagerProvider'
+import {Button} from '../../../../../components/Button/Button'
+import {Text} from '../../../../../components/Text'
+import {useSelectedWallet} from '../../../../WalletManager/common/hooks/useSelectedWallet'
+import {useWalletManager} from '../../../../WalletManager/context/WalletManagerProvider'
export const DisableEasyConfirmationScreen = () => {
const strings = useStrings()
diff --git a/apps/wallet-mobile/src/features/Settings/EasyConfirmation/EasyConfirmationScreen.stories.tsx b/apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/EasyConfirmation/EasyConfirmationScreen.stories.tsx
similarity index 80%
rename from apps/wallet-mobile/src/features/Settings/EasyConfirmation/EasyConfirmationScreen.stories.tsx
rename to apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/EasyConfirmation/EasyConfirmationScreen.stories.tsx
index a02891616c..087f164379 100644
--- a/apps/wallet-mobile/src/features/Settings/EasyConfirmation/EasyConfirmationScreen.stories.tsx
+++ b/apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/EasyConfirmation/EasyConfirmationScreen.stories.tsx
@@ -2,12 +2,12 @@ import {storiesOf} from '@storybook/react-native'
import {Chain} from '@yoroi/types'
import React from 'react'
-import {rootStorage} from '../../../kernel/storage/rootStorage'
-import {mocks} from '../../../yoroi-wallets/mocks/wallet'
-import {buildPortfolioTokenManagers} from '../../Portfolio/common/helpers/build-token-managers'
-import {WalletManagerProvider} from '../../WalletManager/context/WalletManagerProvider'
-import {buildNetworkManagers} from '../../WalletManager/network-manager/network-manager'
-import {WalletManager} from '../../WalletManager/wallet-manager'
+import {rootStorage} from '../../../../../kernel/storage/rootStorage'
+import {mocks} from '../../../../../yoroi-wallets/mocks/wallet'
+import {buildPortfolioTokenManagers} from '../../../../Portfolio/common/helpers/build-token-managers'
+import {WalletManagerProvider} from '../../../../WalletManager/context/WalletManagerProvider'
+import {buildNetworkManagers} from '../../../../WalletManager/network-manager/network-manager'
+import {WalletManager} from '../../../../WalletManager/wallet-manager'
import {DisableEasyConfirmationScreen} from './DisableEasyConfirmationScreen'
import {EnableEasyConfirmationScreen} from './EnableEasyConfirmationScreen'
diff --git a/apps/wallet-mobile/src/features/Settings/EasyConfirmation/EnableEasyConfirmationScreen.tsx b/apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/EasyConfirmation/EnableEasyConfirmationScreen.tsx
similarity index 84%
rename from apps/wallet-mobile/src/features/Settings/EasyConfirmation/EnableEasyConfirmationScreen.tsx
rename to apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/EasyConfirmation/EnableEasyConfirmationScreen.tsx
index 99740f3ff2..0df9376a66 100644
--- a/apps/wallet-mobile/src/features/Settings/EasyConfirmation/EnableEasyConfirmationScreen.tsx
+++ b/apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/EasyConfirmation/EnableEasyConfirmationScreen.tsx
@@ -6,16 +6,16 @@ import {defineMessages, useIntl} from 'react-intl'
import {ScrollView, StyleSheet, View, ViewProps} from 'react-native'
import {SafeAreaView} from 'react-native-safe-area-context'
-import {Button} from '../../../components/Button/Button'
-import {KeyboardAvoidingView} from '../../../components/KeyboardAvoidingView/KeyboardAvoidingView'
-import {LoadingOverlay} from '../../../components/LoadingOverlay/LoadingOverlay'
-import {Text} from '../../../components/Text'
-import {TextInput} from '../../../components/TextInput/TextInput'
-import {showErrorDialog} from '../../../kernel/dialogs'
-import {errorMessages} from '../../../kernel/i18n/global-messages'
-import {isEmptyString} from '../../../kernel/utils'
-import {useEnableEasyConfirmation} from '../../Auth/common/useEnableEasyConfirmation'
-import {useSelectedWallet} from '../../WalletManager/common/hooks/useSelectedWallet'
+import {Button} from '../../../../../components/Button/Button'
+import {KeyboardAvoidingView} from '../../../../../components/KeyboardAvoidingView/KeyboardAvoidingView'
+import {LoadingOverlay} from '../../../../../components/LoadingOverlay/LoadingOverlay'
+import {Text} from '../../../../../components/Text'
+import {TextInput} from '../../../../../components/TextInput/TextInput'
+import {showErrorDialog} from '../../../../../kernel/dialogs'
+import {errorMessages} from '../../../../../kernel/i18n/global-messages'
+import {isEmptyString} from '../../../../../kernel/utils'
+import {useEnableEasyConfirmation} from '../../../../Auth/common/useEnableEasyConfirmation'
+import {useSelectedWallet} from '../../../../WalletManager/common/hooks/useSelectedWallet'
export const EnableEasyConfirmationScreen = () => {
const intl = useIntl()
diff --git a/apps/wallet-mobile/src/features/Settings/EasyConfirmation/index.ts b/apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/EasyConfirmation/index.ts
similarity index 100%
rename from apps/wallet-mobile/src/features/Settings/EasyConfirmation/index.ts
rename to apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/EasyConfirmation/index.ts
diff --git a/apps/wallet-mobile/src/features/Settings/ManageCollateral/CollateralInfoModal.tsx b/apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/ManageCollateral/CollateralInfoModal.tsx
similarity index 100%
rename from apps/wallet-mobile/src/features/Settings/ManageCollateral/CollateralInfoModal.tsx
rename to apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/ManageCollateral/CollateralInfoModal.tsx
diff --git a/apps/wallet-mobile/src/features/Settings/ManageCollateral/ConfirmTx/FailedTx/FailedTxImage.tsx b/apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/ManageCollateral/ConfirmTx/FailedTx/FailedTxImage.tsx
similarity index 100%
rename from apps/wallet-mobile/src/features/Settings/ManageCollateral/ConfirmTx/FailedTx/FailedTxImage.tsx
rename to apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/ManageCollateral/ConfirmTx/FailedTx/FailedTxImage.tsx
diff --git a/apps/wallet-mobile/src/features/Settings/ManageCollateral/ConfirmTx/FailedTx/FailedTxScreen.stories.tsx b/apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/ManageCollateral/ConfirmTx/FailedTx/FailedTxScreen.stories.tsx
similarity index 100%
rename from apps/wallet-mobile/src/features/Settings/ManageCollateral/ConfirmTx/FailedTx/FailedTxScreen.stories.tsx
rename to apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/ManageCollateral/ConfirmTx/FailedTx/FailedTxScreen.stories.tsx
diff --git a/apps/wallet-mobile/src/features/Settings/ManageCollateral/ConfirmTx/FailedTx/FailedTxScreen.tsx b/apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/ManageCollateral/ConfirmTx/FailedTx/FailedTxScreen.tsx
similarity index 79%
rename from apps/wallet-mobile/src/features/Settings/ManageCollateral/ConfirmTx/FailedTx/FailedTxScreen.tsx
rename to apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/ManageCollateral/ConfirmTx/FailedTx/FailedTxScreen.tsx
index 669a3d070e..a7b33ed5f0 100644
--- a/apps/wallet-mobile/src/features/Settings/ManageCollateral/ConfirmTx/FailedTx/FailedTxScreen.tsx
+++ b/apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/ManageCollateral/ConfirmTx/FailedTx/FailedTxScreen.tsx
@@ -3,11 +3,11 @@ import {useTheme} from '@yoroi/theme'
import React from 'react'
import {StyleSheet} from 'react-native'
-import {Button} from '../../../../../components/Button/Button'
-import {SafeArea} from '../../../../../components/SafeArea'
-import {Spacer} from '../../../../../components/Spacer/Spacer'
-import {Text} from '../../../../../components/Text'
-import {useStrings} from '../../../../Send/common/strings'
+import {Button} from '../../../../../../../components/Button/Button'
+import {SafeArea} from '../../../../../../../components/SafeArea'
+import {Spacer} from '../../../../../../../components/Spacer/Spacer'
+import {Text} from '../../../../../../../components/Text'
+import {useStrings} from '../../../../../../Send/common/strings'
import {FailedTxImage} from './FailedTxImage'
export const FailedTxScreen = () => {
diff --git a/apps/wallet-mobile/src/features/Settings/ManageCollateral/ConfirmTx/SubmittedTx/SubmittedTxImage.tsx b/apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/ManageCollateral/ConfirmTx/SubmittedTx/SubmittedTxImage.tsx
similarity index 100%
rename from apps/wallet-mobile/src/features/Settings/ManageCollateral/ConfirmTx/SubmittedTx/SubmittedTxImage.tsx
rename to apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/ManageCollateral/ConfirmTx/SubmittedTx/SubmittedTxImage.tsx
diff --git a/apps/wallet-mobile/src/features/Settings/ManageCollateral/ConfirmTx/SubmittedTx/SubmittedTxScreen.stories.tsx b/apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/ManageCollateral/ConfirmTx/SubmittedTx/SubmittedTxScreen.stories.tsx
similarity index 100%
rename from apps/wallet-mobile/src/features/Settings/ManageCollateral/ConfirmTx/SubmittedTx/SubmittedTxScreen.stories.tsx
rename to apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/ManageCollateral/ConfirmTx/SubmittedTx/SubmittedTxScreen.stories.tsx
diff --git a/apps/wallet-mobile/src/features/Settings/ManageCollateral/ConfirmTx/SubmittedTx/SubmittedTxScreen.tsx b/apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/ManageCollateral/ConfirmTx/SubmittedTx/SubmittedTxScreen.tsx
similarity index 79%
rename from apps/wallet-mobile/src/features/Settings/ManageCollateral/ConfirmTx/SubmittedTx/SubmittedTxScreen.tsx
rename to apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/ManageCollateral/ConfirmTx/SubmittedTx/SubmittedTxScreen.tsx
index 49077bb6d7..79c6de3550 100644
--- a/apps/wallet-mobile/src/features/Settings/ManageCollateral/ConfirmTx/SubmittedTx/SubmittedTxScreen.tsx
+++ b/apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/ManageCollateral/ConfirmTx/SubmittedTx/SubmittedTxScreen.tsx
@@ -2,12 +2,12 @@ import {useTheme} from '@yoroi/theme'
import React from 'react'
import {StyleSheet} from 'react-native'
-import {Button} from '../../../../../components/Button/Button'
-import {SafeArea} from '../../../../../components/SafeArea'
-import {Spacer} from '../../../../../components/Spacer/Spacer'
-import {Text} from '../../../../../components/Text'
-import {useBlockGoBack, useWalletNavigation} from '../../../../../kernel/navigation'
-import {useStrings} from '../../../../Send/common/strings'
+import {Button} from '../../../../../../../components/Button/Button'
+import {SafeArea} from '../../../../../../../components/SafeArea'
+import {Spacer} from '../../../../../../../components/Spacer/Spacer'
+import {Text} from '../../../../../../../components/Text'
+import {useBlockGoBack, useWalletNavigation} from '../../../../../../../kernel/navigation'
+import {useStrings} from '../../../../../../Send/common/strings'
import {SubmittedTxImage} from './SubmittedTxImage'
export const SubmittedTxScreen = () => {
diff --git a/apps/wallet-mobile/src/features/Settings/ManageCollateral/InitialCollateralInfoModal.tsx b/apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/ManageCollateral/InitialCollateralInfoModal.tsx
similarity index 90%
rename from apps/wallet-mobile/src/features/Settings/ManageCollateral/InitialCollateralInfoModal.tsx
rename to apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/ManageCollateral/InitialCollateralInfoModal.tsx
index 4c98f2a468..ee27819993 100644
--- a/apps/wallet-mobile/src/features/Settings/ManageCollateral/InitialCollateralInfoModal.tsx
+++ b/apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/ManageCollateral/InitialCollateralInfoModal.tsx
@@ -2,8 +2,8 @@ import {useTheme} from '@yoroi/theme'
import * as React from 'react'
import {StyleSheet, Text, View} from 'react-native'
-import {Button} from '../../../components/Button/Button'
-import {Space} from '../../../components/Space/Space'
+import {Button} from '../../../../../components/Button/Button'
+import {Space} from '../../../../../components/Space/Space'
import {InfoModalIllustration} from './illustrations/InfoModalIllustration'
import {useStrings} from './strings'
diff --git a/apps/wallet-mobile/src/features/Settings/ManageCollateral/ManageCollateralScreen.stories.tsx b/apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/ManageCollateral/ManageCollateralScreen.stories.tsx
similarity index 90%
rename from apps/wallet-mobile/src/features/Settings/ManageCollateral/ManageCollateralScreen.stories.tsx
rename to apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/ManageCollateral/ManageCollateralScreen.stories.tsx
index cd7a86c129..abf31a11c2 100644
--- a/apps/wallet-mobile/src/features/Settings/ManageCollateral/ManageCollateralScreen.stories.tsx
+++ b/apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/ManageCollateral/ManageCollateralScreen.stories.tsx
@@ -3,9 +3,9 @@ import {TransferProvider} from '@yoroi/transfer'
import React from 'react'
import {StyleSheet, View} from 'react-native'
-import {YoroiWallet} from '../../../yoroi-wallets/cardano/types'
-import {mocks} from '../../../yoroi-wallets/mocks/wallet'
-import {WalletManagerProviderMock} from '../../../yoroi-wallets/mocks/WalletManagerProviderMock'
+import {YoroiWallet} from '../../../../../yoroi-wallets/cardano/types'
+import {mocks} from '../../../../../yoroi-wallets/mocks/wallet'
+import {WalletManagerProviderMock} from '../../../../../yoroi-wallets/mocks/WalletManagerProviderMock'
import {ManageCollateralScreen} from './ManageCollateralScreen'
const styles = StyleSheet.create({
diff --git a/apps/wallet-mobile/src/features/Settings/ManageCollateral/ManageCollateralScreen.tsx b/apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/ManageCollateral/ManageCollateralScreen.tsx
similarity index 82%
rename from apps/wallet-mobile/src/features/Settings/ManageCollateral/ManageCollateralScreen.tsx
rename to apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/ManageCollateral/ManageCollateralScreen.tsx
index 4b98258c15..43c60efae2 100644
--- a/apps/wallet-mobile/src/features/Settings/ManageCollateral/ManageCollateralScreen.tsx
+++ b/apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/ManageCollateral/ManageCollateralScreen.tsx
@@ -16,26 +16,26 @@ import {
import {SafeAreaView} from 'react-native-safe-area-context'
import {useMutation} from 'react-query'
-import {Button} from '../../../components/Button/Button'
-import {CopyButton} from '../../../components/CopyButton'
-import {ErrorPanel} from '../../../components/ErrorPanel/ErrorPanel'
-import {Icon} from '../../../components/Icon'
-import {Info} from '../../../components/Icon/Info'
-import {useModal} from '../../../components/Modal/ModalContext'
-import {Space} from '../../../components/Space/Space'
-import {Spacer} from '../../../components/Spacer/Spacer'
-import {Text} from '../../../components/Text'
-import {SettingsStackRoutes, useUnsafeParams, useWalletNavigation} from '../../../kernel/navigation'
-import {useCollateralInfo} from '../../../yoroi-wallets/cardano/utxoManager/useCollateralInfo'
-import {useSetCollateralId} from '../../../yoroi-wallets/cardano/utxoManager/useSetCollateralId'
-import {collateralConfig, utxosMaker} from '../../../yoroi-wallets/cardano/utxoManager/utxos'
-import {useBalances} from '../../../yoroi-wallets/hooks'
-import {RawUtxo} from '../../../yoroi-wallets/types/other'
-import {YoroiEntry, YoroiSignedTx} from '../../../yoroi-wallets/types/yoroi'
-import {Amounts, asQuantity, Quantities} from '../../../yoroi-wallets/utils/utils'
-import {TokenAmountItem} from '../../Portfolio/common/TokenAmountItem/TokenAmountItem'
-import {useReviewTx} from '../../ReviewTx/common/ReviewTxProvider'
-import {useSelectedWallet} from '../../WalletManager/common/hooks/useSelectedWallet'
+import {Button} from '../../../../../components/Button/Button'
+import {CopyButton} from '../../../../../components/CopyButton'
+import {ErrorPanel} from '../../../../../components/ErrorPanel/ErrorPanel'
+import {Icon} from '../../../../../components/Icon'
+import {Info} from '../../../../../components/Icon/Info'
+import {useModal} from '../../../../../components/Modal/ModalContext'
+import {Space} from '../../../../../components/Space/Space'
+import {Spacer} from '../../../../../components/Spacer/Spacer'
+import {Text} from '../../../../../components/Text'
+import {SettingsStackRoutes, useUnsafeParams, useWalletNavigation} from '../../../../../kernel/navigation'
+import {useCollateralInfo} from '../../../../../yoroi-wallets/cardano/utxoManager/useCollateralInfo'
+import {useSetCollateralId} from '../../../../../yoroi-wallets/cardano/utxoManager/useSetCollateralId'
+import {collateralConfig, utxosMaker} from '../../../../../yoroi-wallets/cardano/utxoManager/utxos'
+import {useBalances} from '../../../../../yoroi-wallets/hooks'
+import {RawUtxo} from '../../../../../yoroi-wallets/types/other'
+import {YoroiEntry, YoroiSignedTx} from '../../../../../yoroi-wallets/types/yoroi'
+import {Amounts, asQuantity, Quantities} from '../../../../../yoroi-wallets/utils/utils'
+import {TokenAmountItem} from '../../../../Portfolio/common/TokenAmountItem/TokenAmountItem'
+import {useReviewTx} from '../../../../ReviewTx/common/ReviewTxProvider'
+import {useSelectedWallet} from '../../../../WalletManager/common/hooks/useSelectedWallet'
import {CollateralInfoModal} from './CollateralInfoModal'
import {createCollateralEntry} from './helpers'
import {InitialCollateralInfoModal} from './InitialCollateralInfoModal'
@@ -263,13 +263,19 @@ const useStyles = () => {
backgroundColor: color.bg_color_max,
...atoms.flex_1,
...atoms.px_lg,
+ ...atoms.flex_1,
+ ...atoms.px_lg,
},
amountItem: {
...atoms.flex_row,
...atoms.justify_between,
...atoms.align_center,
+ ...atoms.flex_row,
+ ...atoms.justify_between,
+ ...atoms.align_center,
},
heading: {
+ ...atoms.flex_1,
...atoms.flex_1,
alignSelf: 'center',
},
@@ -288,4 +294,5 @@ const useStyles = () => {
}
return {styles, colors} as const
+ return {styles, colors} as const
}
diff --git a/apps/wallet-mobile/src/features/Settings/ManageCollateral/helpers.ts b/apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/ManageCollateral/helpers.ts
similarity index 65%
rename from apps/wallet-mobile/src/features/Settings/ManageCollateral/helpers.ts
rename to apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/ManageCollateral/helpers.ts
index 12f900b725..1fab6ccead 100644
--- a/apps/wallet-mobile/src/features/Settings/ManageCollateral/helpers.ts
+++ b/apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/ManageCollateral/helpers.ts
@@ -1,6 +1,6 @@
-import {YoroiWallet} from '../../../yoroi-wallets/cardano/types'
-import {collateralConfig} from '../../../yoroi-wallets/cardano/utxoManager/utxos'
-import {YoroiEntry} from '../../../yoroi-wallets/types/yoroi'
+import {YoroiWallet} from '../../../../../yoroi-wallets/cardano/types'
+import {collateralConfig} from '../../../../../yoroi-wallets/cardano/utxoManager/utxos'
+import {YoroiEntry} from '../../../../../yoroi-wallets/types/yoroi'
const getCollateralAddress = (wallet: YoroiWallet) => {
return wallet.externalAddresses[0]
diff --git a/apps/wallet-mobile/src/features/Settings/ManageCollateral/illustrations/InfoModalIllustration.tsx b/apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/ManageCollateral/illustrations/InfoModalIllustration.tsx
similarity index 100%
rename from apps/wallet-mobile/src/features/Settings/ManageCollateral/illustrations/InfoModalIllustration.tsx
rename to apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/ManageCollateral/illustrations/InfoModalIllustration.tsx
diff --git a/apps/wallet-mobile/src/features/Settings/ManageCollateral/index.ts b/apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/ManageCollateral/index.ts
similarity index 100%
rename from apps/wallet-mobile/src/features/Settings/ManageCollateral/index.ts
rename to apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/ManageCollateral/index.ts
diff --git a/apps/wallet-mobile/src/features/Settings/ManageCollateral/navigation.ts b/apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/ManageCollateral/navigation.ts
similarity index 85%
rename from apps/wallet-mobile/src/features/Settings/ManageCollateral/navigation.ts
rename to apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/ManageCollateral/navigation.ts
index 025d6151d2..c8fd73b7a7 100644
--- a/apps/wallet-mobile/src/features/Settings/ManageCollateral/navigation.ts
+++ b/apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/ManageCollateral/navigation.ts
@@ -1,7 +1,7 @@
import {useNavigation} from '@react-navigation/native'
import {useRef} from 'react'
-import {SettingsRouteNavigation} from '../../../kernel/navigation'
+import {SettingsRouteNavigation} from '../../../../../kernel/navigation'
export const useNavigateTo = () => {
const navigation = useNavigation()
diff --git a/apps/wallet-mobile/src/features/Settings/ManageCollateral/strings.ts b/apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/ManageCollateral/strings.ts
similarity index 100%
rename from apps/wallet-mobile/src/features/Settings/ManageCollateral/strings.ts
rename to apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/ManageCollateral/strings.ts
diff --git a/apps/wallet-mobile/src/features/Settings/RemoveWallet/RemoveWalletScreen.stories.tsx b/apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/RemoveWallet/RemoveWalletScreen.stories.tsx
similarity index 64%
rename from apps/wallet-mobile/src/features/Settings/RemoveWallet/RemoveWalletScreen.stories.tsx
rename to apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/RemoveWallet/RemoveWalletScreen.stories.tsx
index 7fafd3a287..b15b3e5cca 100644
--- a/apps/wallet-mobile/src/features/Settings/RemoveWallet/RemoveWalletScreen.stories.tsx
+++ b/apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/RemoveWallet/RemoveWalletScreen.stories.tsx
@@ -1,8 +1,8 @@
import {storiesOf} from '@storybook/react-native'
import React from 'react'
-import {mocks} from '../../../yoroi-wallets/mocks/wallet'
-import {WalletManagerProviderMock} from '../../../yoroi-wallets/mocks/WalletManagerProviderMock'
+import {mocks} from '../../../../../yoroi-wallets/mocks/wallet'
+import {WalletManagerProviderMock} from '../../../../../yoroi-wallets/mocks/WalletManagerProviderMock'
import {RemoveWalletScreen} from './RemoveWalletScreen'
storiesOf('RemoveWalletScreen', module).add('Default', () => (
diff --git a/apps/wallet-mobile/src/features/Settings/RemoveWallet/RemoveWalletScreen.tsx b/apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/RemoveWallet/RemoveWalletScreen.tsx
similarity index 89%
rename from apps/wallet-mobile/src/features/Settings/RemoveWallet/RemoveWalletScreen.tsx
rename to apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/RemoveWallet/RemoveWalletScreen.tsx
index 401298ff96..807c29861c 100644
--- a/apps/wallet-mobile/src/features/Settings/RemoveWallet/RemoveWalletScreen.tsx
+++ b/apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/RemoveWallet/RemoveWalletScreen.tsx
@@ -4,15 +4,15 @@ import {defineMessages, useIntl} from 'react-intl'
import {InteractionManager, ScrollView, StyleSheet, View, ViewProps} from 'react-native'
import {SafeAreaView} from 'react-native-safe-area-context'
-import {Button} from '../../../components/Button/Button'
-import {Checkbox} from '../../../components/Checkbox/Checkbox'
-import {KeyboardAvoidingView} from '../../../components/KeyboardAvoidingView/KeyboardAvoidingView'
-import {Spacer} from '../../../components/Spacer/Spacer'
-import {Text} from '../../../components/Text'
-import {Checkmark, TextInput, TextInputProps} from '../../../components/TextInput/TextInput'
-import {useWalletNavigation} from '../../../kernel/navigation'
-import {useSelectedWallet} from '../../WalletManager/common/hooks/useSelectedWallet'
-import {useWalletManager} from '../../WalletManager/context/WalletManagerProvider'
+import {Button} from '../../../../../components/Button/Button'
+import {Checkbox} from '../../../../../components/Checkbox/Checkbox'
+import {KeyboardAvoidingView} from '../../../../../components/KeyboardAvoidingView/KeyboardAvoidingView'
+import {Spacer} from '../../../../../components/Spacer/Spacer'
+import {Text} from '../../../../../components/Text'
+import {Checkmark, TextInput, TextInputProps} from '../../../../../components/TextInput/TextInput'
+import {useWalletNavigation} from '../../../../../kernel/navigation'
+import {useSelectedWallet} from '../../../../WalletManager/common/hooks/useSelectedWallet'
+import {useWalletManager} from '../../../../WalletManager/context/WalletManagerProvider'
export const RemoveWalletScreen = () => {
const strings = useStrings()
diff --git a/apps/wallet-mobile/src/features/Settings/RemoveWallet/index.ts b/apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/RemoveWallet/index.ts
similarity index 100%
rename from apps/wallet-mobile/src/features/Settings/RemoveWallet/index.ts
rename to apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/RemoveWallet/index.ts
diff --git a/apps/wallet-mobile/src/features/Settings/RenameWalletScreen/RenameWalletScreen.stories.tsx b/apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/RenameWalletScreen/RenameWalletScreen.stories.tsx
similarity index 64%
rename from apps/wallet-mobile/src/features/Settings/RenameWalletScreen/RenameWalletScreen.stories.tsx
rename to apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/RenameWalletScreen/RenameWalletScreen.stories.tsx
index 186f7ff5cc..8fb0211a36 100644
--- a/apps/wallet-mobile/src/features/Settings/RenameWalletScreen/RenameWalletScreen.stories.tsx
+++ b/apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/RenameWalletScreen/RenameWalletScreen.stories.tsx
@@ -1,8 +1,8 @@
import {storiesOf} from '@storybook/react-native'
import React from 'react'
-import {mocks} from '../../../yoroi-wallets/mocks/wallet'
-import {WalletManagerProviderMock} from '../../../yoroi-wallets/mocks/WalletManagerProviderMock'
+import {mocks} from '../../../../../yoroi-wallets/mocks/wallet'
+import {WalletManagerProviderMock} from '../../../../../yoroi-wallets/mocks/WalletManagerProviderMock'
import {RenameWalletScreen} from './RenameWalletScreen'
storiesOf('RenameWallet', module).add('Default', () => (
diff --git a/apps/wallet-mobile/src/features/Settings/RenameWalletScreen/RenameWalletScreen.tsx b/apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/RenameWalletScreen/RenameWalletScreen.tsx
similarity index 82%
rename from apps/wallet-mobile/src/features/Settings/RenameWalletScreen/RenameWalletScreen.tsx
rename to apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/RenameWalletScreen/RenameWalletScreen.tsx
index a0029b57fe..f6e47b2199 100644
--- a/apps/wallet-mobile/src/features/Settings/RenameWalletScreen/RenameWalletScreen.tsx
+++ b/apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/RenameWalletScreen/RenameWalletScreen.tsx
@@ -5,15 +5,15 @@ import {defineMessages, useIntl} from 'react-intl'
import {ScrollView, StyleSheet, View} from 'react-native'
import {SafeAreaView} from 'react-native-safe-area-context'
-import {Button} from '../../../components/Button/Button'
-import {KeyboardAvoidingView} from '../../../components/KeyboardAvoidingView/KeyboardAvoidingView'
-import {Spacer} from '../../../components/Spacer/Spacer'
-import {TextInput} from '../../../components/TextInput/TextInput'
-import globalMessages from '../../../kernel/i18n/global-messages'
-import {isEmptyString} from '../../../kernel/utils'
-import {getWalletNameError} from '../../../yoroi-wallets/utils/validators'
-import {useSelectedWallet} from '../../WalletManager/common/hooks/useSelectedWallet'
-import {useWalletManager} from '../../WalletManager/context/WalletManagerProvider'
+import {Button} from '../../../../../components/Button/Button'
+import {KeyboardAvoidingView} from '../../../../../components/KeyboardAvoidingView/KeyboardAvoidingView'
+import {Spacer} from '../../../../../components/Spacer/Spacer'
+import {TextInput} from '../../../../../components/TextInput/TextInput'
+import globalMessages from '../../../../../kernel/i18n/global-messages'
+import {isEmptyString} from '../../../../../kernel/utils'
+import {getWalletNameError} from '../../../../../yoroi-wallets/utils/validators'
+import {useSelectedWallet} from '../../../../WalletManager/common/hooks/useSelectedWallet'
+import {useWalletManager} from '../../../../WalletManager/context/WalletManagerProvider'
export const RenameWalletScreen = () => {
const strings = useStrings()
diff --git a/apps/wallet-mobile/src/features/Settings/WalletSettings/WalletSettingsScreen.stories.tsx b/apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/WalletSettingsScreen.stories.tsx
similarity index 66%
rename from apps/wallet-mobile/src/features/Settings/WalletSettings/WalletSettingsScreen.stories.tsx
rename to apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/WalletSettingsScreen.stories.tsx
index 16fc925be8..c46755c4b6 100644
--- a/apps/wallet-mobile/src/features/Settings/WalletSettings/WalletSettingsScreen.stories.tsx
+++ b/apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/WalletSettingsScreen.stories.tsx
@@ -1,8 +1,8 @@
import {storiesOf} from '@storybook/react-native'
import React from 'react'
-import {mocks} from '../../../yoroi-wallets/mocks/wallet'
-import {WalletManagerProviderMock} from '../../../yoroi-wallets/mocks/WalletManagerProviderMock'
+import {mocks} from '../../../../yoroi-wallets/mocks/wallet'
+import {WalletManagerProviderMock} from '../../../../yoroi-wallets/mocks/WalletManagerProviderMock'
import {WalletSettingsScreen} from './WalletSettingsScreen'
storiesOf('WalletSettingsScreen', module).add('Default', () => (
diff --git a/apps/wallet-mobile/src/features/Settings/WalletSettings/WalletSettingsScreen.tsx b/apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/WalletSettingsScreen.tsx
similarity index 92%
rename from apps/wallet-mobile/src/features/Settings/WalletSettings/WalletSettingsScreen.tsx
rename to apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/WalletSettingsScreen.tsx
index 652a3e7429..ac252a3229 100644
--- a/apps/wallet-mobile/src/features/Settings/WalletSettings/WalletSettingsScreen.tsx
+++ b/apps/wallet-mobile/src/features/Settings/useCases/changeWalletSettings/WalletSettingsScreen.tsx
@@ -7,25 +7,25 @@ import {defineMessages, useIntl} from 'react-intl'
import {ScrollView, StyleSheet} from 'react-native'
import {SafeAreaView} from 'react-native-safe-area-context'
-import {Icon} from '../../../components/Icon'
-import {Spacer} from '../../../components/Spacer/Spacer'
-import {DIALOG_BUTTONS, showConfirmationDialog} from '../../../kernel/dialogs'
-import {confirmationMessages} from '../../../kernel/i18n/global-messages'
-import {SettingsRouteNavigation, useWalletNavigation} from '../../../kernel/navigation'
-import {useResync} from '../../../yoroi-wallets/hooks'
-import {useAuth} from '../../Auth/AuthProvider'
-import {useAuthSetting} from '../../Auth/common/hooks'
-import {useAddressMode} from '../../WalletManager/common/hooks/useAddressMode'
-import {useSelectedWallet} from '../../WalletManager/common/hooks/useSelectedWallet'
-import {useNavigateTo} from '../common/navigation'
-import {SettingsSwitch} from '../common/SettingsSwitch'
+import {Icon} from '../../../../components/Icon'
+import {Spacer} from '../../../../components/Spacer/Spacer'
+import {DIALOG_BUTTONS, showConfirmationDialog} from '../../../../kernel/dialogs'
+import {confirmationMessages} from '../../../../kernel/i18n/global-messages'
+import {SettingsRouteNavigation, useWalletNavigation} from '../../../../kernel/navigation'
+import {useResync} from '../../../../yoroi-wallets/hooks'
+import {useAuth} from '../../../Auth/AuthProvider'
+import {useAuthSetting} from '../../../Auth/common/hooks'
+import {useAddressMode} from '../../../WalletManager/common/hooks/useAddressMode'
+import {useSelectedWallet} from '../../../WalletManager/common/hooks/useSelectedWallet'
+import {useNavigateTo} from '../../common/navigation'
+import {SettingsSwitch} from '../../common/SettingsSwitch'
import {
NavigatedSettingsItem,
SettingsBuildItem,
SettingsCollateralItem,
SettingsItem,
SettingsSection,
-} from '../SettingsItems'
+} from '../../SettingsItems'
export const WalletSettingsScreen = () => {
const intl = useIntl()
diff --git a/apps/wallet-mobile/src/features/SetupWallet/SetupWalletNavigator.tsx b/apps/wallet-mobile/src/features/SetupWallet/SetupWalletNavigator.tsx
index a74e50c70e..8fe12c83e6 100644
--- a/apps/wallet-mobile/src/features/SetupWallet/SetupWalletNavigator.tsx
+++ b/apps/wallet-mobile/src/features/SetupWallet/SetupWalletNavigator.tsx
@@ -4,7 +4,7 @@ import * as React from 'react'
import {defineMessages, useIntl} from 'react-intl'
import {defaultStackNavigationOptions, WalletInitRoutes} from '../../kernel/navigation'
-import {NetworkTag} from '../Settings/ChangeNetwork/NetworkTag'
+import {NetworkTag} from '../Settings/useCases/changeAppSettings/ChangeNetwork/NetworkTag'
import {PreparingWalletScreen} from './common/PreparingWalletScreen/PreparingWalletScreen'
import {ImportReadOnlyWalletScreen} from './legacy/ImportReadOnlyWallet/ImportReadOnlyWalletScreen'
import {SaveReadOnlyWalletScreen} from './legacy/SaveReadOnlyWallet/SaveReadOnlyWalletScreen'
diff --git a/apps/wallet-mobile/src/features/Staking/Governance/GovernanceNavigator.tsx b/apps/wallet-mobile/src/features/Staking/Governance/GovernanceNavigator.tsx
index f607901544..5df15e523e 100644
--- a/apps/wallet-mobile/src/features/Staking/Governance/GovernanceNavigator.tsx
+++ b/apps/wallet-mobile/src/features/Staking/Governance/GovernanceNavigator.tsx
@@ -4,7 +4,7 @@ import React from 'react'
import {SafeArea} from '../../../components/SafeArea'
import {defaultStackNavigationOptions} from '../../../kernel/navigation'
-import {NetworkTag} from '../../Settings/ChangeNetwork/NetworkTag'
+import {NetworkTag} from '../../Settings/useCases/changeAppSettings/ChangeNetwork/NetworkTag'
import {useGovernanceManagerMaker} from './common/helpers'
import {NavigationStack} from './common/navigation'
import {useStrings} from './common/strings'
diff --git a/apps/wallet-mobile/src/features/Swap/common/navigation.ts b/apps/wallet-mobile/src/features/Swap/common/navigation.ts
index 93d89633e8..813aa4a5b0 100644
--- a/apps/wallet-mobile/src/features/Swap/common/navigation.ts
+++ b/apps/wallet-mobile/src/features/Swap/common/navigation.ts
@@ -13,7 +13,7 @@ export const useNavigateTo = () => {
selectBuyToken: () => swapNavigation.navigate('swap-select-buy-token'),
selectSellToken: () => swapNavigation.navigate('swap-select-sell-token'),
startSwap: () => swapNavigation.navigate('swap-start-swap', {screen: 'token-swap'}),
- confirmTx: () => swapNavigation.navigate('swap-confirm-tx'),
+ reviewSwap: () => swapNavigation.navigate('swap-review'),
submittedTx: (txId: string) => swapNavigation.navigate('swap-submitted-tx', {txId}),
failedTx: () => swapNavigation.navigate('swap-failed-tx'),
swapOpenOrders: () =>
diff --git a/apps/wallet-mobile/src/features/Swap/common/strings.ts b/apps/wallet-mobile/src/features/Swap/common/strings.ts
index 8be4f262bd..2fc173ebbb 100644
--- a/apps/wallet-mobile/src/features/Swap/common/strings.ts
+++ b/apps/wallet-mobile/src/features/Swap/common/strings.ts
@@ -7,6 +7,7 @@ export const useStrings = () => {
return {
swapTitle: intl.formatMessage(messages.swapTitle),
+ swapDetailsTitle: intl.formatMessage(messages.swapDetailsTitle),
tokenSwap: intl.formatMessage(messages.tokenSwap),
orderSwap: intl.formatMessage(messages.orderSwap),
dex: intl.formatMessage(messages.dex),
@@ -56,7 +57,7 @@ export const useStrings = () => {
spendingPassword: intl.formatMessage(messages.spendingPassword),
sign: intl.formatMessage(messages.sign),
searchTokens: intl.formatMessage(messages.searchTokens),
- confirm: intl.formatMessage(messages.confirm),
+ next: intl.formatMessage(messages.next),
chooseConnectionMethod: intl.formatMessage(messages.chooseConnectionMethod),
selecteAssetTitle: intl.formatMessage(messages.selectAssetTitle),
tokens: (qty: number) => intl.formatMessage(globalMessages.tokens, {qty}),
@@ -178,6 +179,10 @@ const messages = defineMessages({
id: 'swap.swapScreen.swapTitle',
defaultMessage: '!!!Swap',
},
+ swapDetailsTitle: {
+ id: 'swap.swapScreen.swapDetailsTitle',
+ defaultMessage: '!!!Swap details',
+ },
tokenSwap: {
id: 'swap.swapScreen.tokenSwapTab',
defaultMessage: '!!!Token swap',
@@ -299,7 +304,7 @@ const messages = defineMessages({
},
swapLiqProvFee: {
id: 'swap.swapScreen.swapLiqProvFee',
- defaultMessage: '!!!Liq. prov. fee',
+ defaultMessage: '!!!Liquidity provider fee',
},
swapLiquidityFeeInfo: {
id: 'swap.swapScreen.swapLiquidityFeeInfo',
@@ -573,9 +578,9 @@ const messages = defineMessages({
id: 'components.send.selectasset.title',
defaultMessage: '!!!Select asset',
},
- confirm: {
- id: 'components.send.confirmscreen.confirmButton',
- defaultMessage: '!!!Confirm',
+ next: {
+ id: 'global.next',
+ defaultMessage: '!!!Next',
},
assignCollateral: {
id: 'components.send.confirmscreen.assignCollateral',
diff --git a/apps/wallet-mobile/src/features/Swap/useCases/ConfirmTxScreen/ConfirmTx.tsx b/apps/wallet-mobile/src/features/Swap/useCases/ConfirmTxScreen/ConfirmTx.tsx
deleted file mode 100644
index 6db51ff690..0000000000
--- a/apps/wallet-mobile/src/features/Swap/useCases/ConfirmTxScreen/ConfirmTx.tsx
+++ /dev/null
@@ -1,41 +0,0 @@
-import React from 'react'
-import {ErrorBoundary} from 'react-error-boundary'
-
-import {ModalError} from '../../../../components/ModalError/ModalError'
-import {YoroiWallet} from '../../../../yoroi-wallets/cardano/types'
-import {YoroiSignedTx, YoroiUnsignedTx} from '../../../../yoroi-wallets/types/yoroi'
-import {useSelectedWallet} from '../../../WalletManager/common/hooks/useSelectedWallet'
-import {ConfirmTxWithHW} from './ConfirmTxWithHW'
-import {ConfirmTxWithPassword} from './ConfirmTxWithPassword'
-
-type Props = {
- wallet: YoroiWallet
- unsignedTx: YoroiUnsignedTx
- onCancel: () => void
- onSuccess: (signedTx: YoroiSignedTx) => void
-}
-
-export const ConfirmTx = ({wallet, onSuccess, onCancel, unsignedTx}: Props) => {
- const {meta} = useSelectedWallet()
- return meta.isHW ? (
- (
-
- )}
- >
-
-
- ) : (
-
- )
-}
diff --git a/apps/wallet-mobile/src/features/Swap/useCases/ConfirmTxScreen/ConfirmTxScreen.stories.tsx b/apps/wallet-mobile/src/features/Swap/useCases/ConfirmTxScreen/ConfirmTxScreen.stories.tsx
deleted file mode 100644
index 5236d812dd..0000000000
--- a/apps/wallet-mobile/src/features/Swap/useCases/ConfirmTxScreen/ConfirmTxScreen.stories.tsx
+++ /dev/null
@@ -1,107 +0,0 @@
-import {storiesOf} from '@storybook/react-native'
-import {mockSwapManager, mockSwapStateDefault, orderMocks, SwapProvider} from '@yoroi/swap'
-import React from 'react'
-
-import {rootStorage} from '../../../../kernel/storage/rootStorage'
-import {mocks as walletMocks} from '../../../../yoroi-wallets/mocks/wallet'
-import {WalletManagerProviderMock} from '../../../../yoroi-wallets/mocks/WalletManagerProviderMock'
-import {buildPortfolioTokenManagers} from '../../../Portfolio/common/helpers/build-token-managers'
-import {WalletManagerProvider} from '../../../WalletManager/context/WalletManagerProvider'
-import {buildNetworkManagers} from '../../../WalletManager/network-manager/network-manager'
-import {WalletManager} from '../../../WalletManager/wallet-manager'
-import {mocks} from '../../common/mocks'
-import {SwapFormProvider} from '../../common/SwapFormProvider'
-import {ConfirmTxScreen} from './ConfirmTxScreen'
-
-// TODO: should be mocked
-const {tokenManagers} = buildPortfolioTokenManagers()
-const networkManagers = buildNetworkManagers({tokenManagers})
-const walletManager = new WalletManager({
- rootStorage,
- networkManagers,
-})
-
-storiesOf('Swap ConfirmTxScreen', module) //
- .add('swap confirm tx: with password', () => {
- return
- })
- .add('swap confirm tx: with os', () => {
- return
- })
- .add('swap confirm tx: with hw', () => {
- return
- })
-
-const ConfirmTxWithPasswordScreen = () => {
- return (
-
-
-
-
-
-
-
- )
-}
-const ConfirmTxWithOSScreen = () => {
- return (
-
-
-
-
-
-
-
-
-
- )
-}
-const ConfirmTxWithHWScreen = () => {
- return (
-
-
-
-
-
-
-
- )
-}
-
-const calculation = orderMocks.mockedOrderCalculations1[0]
diff --git a/apps/wallet-mobile/src/features/Swap/useCases/ConfirmTxScreen/ConfirmTxWithHW.tsx b/apps/wallet-mobile/src/features/Swap/useCases/ConfirmTxScreen/ConfirmTxWithHW.tsx
deleted file mode 100644
index a962da3a2c..0000000000
--- a/apps/wallet-mobile/src/features/Swap/useCases/ConfirmTxScreen/ConfirmTxWithHW.tsx
+++ /dev/null
@@ -1,104 +0,0 @@
-import {useTheme} from '@yoroi/theme'
-import {HW} from '@yoroi/types'
-import React, {useState} from 'react'
-import {ScrollView, StyleSheet, View} from 'react-native'
-
-import {Text} from '../../../../components/Text'
-import {LedgerConnect} from '../../../../legacy/HW'
-import {YoroiWallet} from '../../../../yoroi-wallets/cardano/types'
-import {useSignWithHwAndSubmitTx} from '../../../../yoroi-wallets/hooks'
-import {withBLE, withUSB} from '../../../../yoroi-wallets/hw/hwWallet'
-import {YoroiSignedTx, YoroiUnsignedTx} from '../../../../yoroi-wallets/types/yoroi'
-import {useSelectedWallet} from '../../../WalletManager/common/hooks/useSelectedWallet'
-import {useWalletManager} from '../../../WalletManager/context/WalletManagerProvider'
-import {ActivityIndicator} from '../../common/ConfirmRawTx/ActivityIndicator'
-import {useStrings} from '../../common/strings'
-import {LedgerTransportSwitch} from './LedgerTransportSwitch'
-
-type Props = {
- wallet: YoroiWallet
- unsignedTx: YoroiUnsignedTx
- onCancel?: () => void
- onSuccess: (signedTx: YoroiSignedTx) => void
-}
-
-type TransportType = 'USB' | 'BLE'
-type Step = 'select-transport' | 'connect-transport' | 'loading'
-
-export const ConfirmTxWithHW = ({onSuccess, wallet, unsignedTx}: Props) => {
- const styles = useStyles()
- const {meta} = useSelectedWallet()
- const {walletManager} = useWalletManager()
- const [transportType, setTransportType] = React.useState('USB')
- const [step, setStep] = useState('select-transport')
- const strings = useStrings()
-
- const {signAndSubmitTx} = useSignWithHwAndSubmitTx(
- {wallet}, //
- {signTx: {onSuccess}},
- )
-
- const onSelectTransport = (transportType: TransportType) => {
- setTransportType(transportType)
- setStep('connect-transport')
- }
-
- const onConnectBLE = (deviceId: string) => {
- setStep('loading')
- const hwDeviceInfo = withBLE(meta, deviceId)
- walletManager.updateWalletHWDeviceInfo(meta.id, hwDeviceInfo)
- signAndSubmitTx({unsignedTx, useUSB: false, hwDeviceInfo})
- }
-
- const onConnectUSB = (deviceObj: HW.DeviceObj) => {
- setStep('loading')
- const hwDeviceInfo = withUSB(meta, deviceObj)
- walletManager.updateWalletHWDeviceInfo(meta.id, hwDeviceInfo)
- signAndSubmitTx({unsignedTx, useUSB: true, hwDeviceInfo})
- }
-
- if (step === 'select-transport') {
- return (
- onSelectTransport('BLE')}
- onSelectUSB={() => onSelectTransport('USB')}
- />
- )
- }
-
- if (step === 'connect-transport') {
- return (
-
-
-
- )
- }
-
- return (
-
-
-
- {strings.continueOnLedger}
-
- )
-}
-
-const useStyles = () => {
- const {color, atoms} = useTheme()
- const styles = StyleSheet.create({
- container: {
- ...atoms.flex_1,
- ...atoms.align_center,
- ...atoms.justify_center,
- ...atoms.gap_2xl,
- ...atoms.px_lg,
- },
- text: {
- ...atoms.body_1_lg_regular,
- ...atoms.text_center,
- color: color.text_gray_medium,
- },
- })
-
- return styles
-}
diff --git a/apps/wallet-mobile/src/features/Swap/useCases/ConfirmTxScreen/ConfirmTxWithPassword.tsx b/apps/wallet-mobile/src/features/Swap/useCases/ConfirmTxScreen/ConfirmTxWithPassword.tsx
deleted file mode 100644
index 9f587b995f..0000000000
--- a/apps/wallet-mobile/src/features/Swap/useCases/ConfirmTxScreen/ConfirmTxWithPassword.tsx
+++ /dev/null
@@ -1,74 +0,0 @@
-import {App} from '@yoroi/types'
-import React from 'react'
-
-import {YoroiWallet} from '../../../../yoroi-wallets/cardano/types'
-import {useSignWithPasswordAndSubmitTx} from '../../../../yoroi-wallets/hooks'
-import {YoroiSignedTx, YoroiUnsignedTx} from '../../../../yoroi-wallets/types/yoroi'
-import {ConfirmWithSpendingPassword} from '../../common/ConfirmWithSpendingPassword'
-import {ErrorData} from '../../common/ConfirmWithSpendingPassword/ConfirmWithSpendingPassword'
-import {useStrings} from '../../common/strings'
-
-type Props = {
- wallet: YoroiWallet
- unsignedTx: YoroiUnsignedTx
- onSuccess: (signedTx: YoroiSignedTx) => void
- onCancel?: () => void
-}
-
-export const ConfirmTxWithPassword = ({wallet, onSuccess, unsignedTx}: Props) => {
- const [errorData, setErrorData] = React.useState({
- errorMessage: '',
- errorLogs: '',
- })
- const strings = useStrings()
- const signedTxRef = React.useRef(undefined)
-
- const {signAndSubmitTx, isLoading} = useSignWithPasswordAndSubmitTx(
- {wallet}, //
- {
- submitTx: {onSuccess: () => signedTxRef.current && onSuccess(signedTxRef.current)},
- signTx: {
- onSuccess: (signedTx) => {
- signedTxRef.current = signedTx
- },
- },
- },
- )
-
- const showError = ({errorMessage, errorLogs}: ErrorData) => {
- setErrorData({
- errorMessage,
- errorLogs,
- })
- }
-
- const onConfirm = async (password: string) => {
- try {
- const rootKey = await wallet.encryptedStorage.xpriv.read(password)
- if (rootKey !== undefined) {
- signAndSubmitTx({unsignedTx, password})
- }
- } catch (err) {
- if (err instanceof App.Errors.WrongPassword) {
- showError({
- errorMessage: strings.incorrectPasswordTitle,
- errorLogs: strings.incorrectPasswordMessage,
- })
- } else {
- showError({
- errorMessage: strings.generalTxErrorMessage,
- errorLogs: err,
- })
- }
- }
- }
-
- return (
- 0 ? new Error(errorData.errorMessage) : undefined}
- onPasswordChange={() => setErrorData({errorMessage: '', errorLogs: ''})}
- />
- )
-}
diff --git a/apps/wallet-mobile/src/features/Swap/useCases/ConfirmTxScreen/ConfirmTxScreen.tsx b/apps/wallet-mobile/src/features/Swap/useCases/ReviewSwap/ReviewSwap.tsx
similarity index 58%
rename from apps/wallet-mobile/src/features/Swap/useCases/ConfirmTxScreen/ConfirmTxScreen.tsx
rename to apps/wallet-mobile/src/features/Swap/useCases/ReviewSwap/ReviewSwap.tsx
index 7a6d3281a8..2aeda6fe03 100644
--- a/apps/wallet-mobile/src/features/Swap/useCases/ConfirmTxScreen/ConfirmTxScreen.tsx
+++ b/apps/wallet-mobile/src/features/Swap/useCases/ReviewSwap/ReviewSwap.tsx
@@ -1,5 +1,6 @@
-import {useSwap} from '@yoroi/swap'
+import {getPoolUrlByProvider, useSwap} from '@yoroi/swap'
import {useTheme} from '@yoroi/theme'
+import {capitalize} from 'lodash'
import React from 'react'
import {InteractionManager, StyleSheet, useWindowDimensions, View, ViewProps} from 'react-native'
import {ScrollView} from 'react-native-gesture-handler'
@@ -7,32 +8,29 @@ import {SafeAreaView} from 'react-native-safe-area-context'
import {Button} from '../../../../components/Button/Button'
import {KeyboardAvoidingView} from '../../../../components/KeyboardAvoidingView/KeyboardAvoidingView'
-import {LoadingOverlay} from '../../../../components/LoadingOverlay/LoadingOverlay'
-import {useModal} from '../../../../components/Modal/ModalContext'
-import {Spacer} from '../../../../components/Spacer/Spacer'
import {useMetrics} from '../../../../kernel/metrics/metricsManager'
-import {useSignAndSubmitTx} from '../../../../yoroi-wallets/hooks'
+import {useWalletNavigation} from '../../../../kernel/navigation'
import {YoroiSignedTx} from '../../../../yoroi-wallets/types/yoroi'
import {asQuantity, Quantities} from '../../../../yoroi-wallets/utils/utils'
-import {useAuthOsWithEasyConfirmation} from '../../../Auth/common/hooks'
-import {useSelectedWallet} from '../../../WalletManager/common/hooks/useSelectedWallet'
+import {useReviewTx} from '../../../ReviewTx/common/ReviewTxProvider'
+import {LiquidityPool} from '../../common/LiquidityPool/LiquidityPool'
import {useNavigateTo} from '../../common/navigation'
+import {PoolIcon} from '../../common/PoolIcon/PoolIcon'
import {useStrings} from '../../common/strings'
-import {ConfirmTx} from './ConfirmTx'
import {TransactionSummary} from './TransactionSummary'
const BOTTOM_ACTION_SECTION = 220
-export const ConfirmTxScreen = () => {
+export const ReviewSwap = () => {
const [contentHeight, setContentHeight] = React.useState(0)
const strings = useStrings()
const styles = useStyles()
- const {wallet, meta} = useSelectedWallet()
const navigate = useNavigateTo()
const {track} = useMetrics()
- const {openModal, closeModal} = useModal()
const {height: deviceHeight} = useWindowDimensions()
- const signedTxRef = React.useRef(null)
+ const {navigateToTxReview} = useWalletNavigation()
+ const {unsignedTxChanged, onSuccessChanged, onErrorChanged, customReceiverTitleChanged, detailsChanged} =
+ useReviewTx()
const {unsignedTx, orderData} = useSwap()
const sellTokenInfo = orderData.amounts.sell?.info
@@ -45,11 +43,6 @@ export const ConfirmTxScreen = () => {
const couldReceiveNoAssets = Quantities.isZero(minReceived)
- const {authWithOs, isLoading: authenticating} = useAuthOsWithEasyConfirmation(
- {id: wallet.id},
- {onSuccess: (rootKey) => signAndSubmitTx({unsignedTx, rootKey})},
- )
-
const trackSwapOrderSubmitted = () => {
if (orderData.selectedPoolCalculation === undefined) return
track.swapOrderSubmitted({
@@ -72,38 +65,38 @@ export const ConfirmTxScreen = () => {
})
}
- const {signAndSubmitTx, isLoading: processingTx} = useSignAndSubmitTx(
- {wallet},
- {
- signTx: {
- useErrorBoundary: true,
- onSuccess: (signedTx) => {
- signedTxRef.current = signedTx
- },
- },
- submitTx: {
- onSuccess: () => {
- trackSwapOrderSubmitted()
- navigate.submittedTx(signedTxRef.current?.signedTx.id ?? '')
- },
- onError: () => {
- navigate.failedTx()
- },
- useErrorBoundary: true,
- },
- },
- )
+ const onSwapTxError = () => {
+ navigate.failedTx()
+ }
- const onPasswordTxSuccess = (signedTx: YoroiSignedTx) => {
+ const onSwapTxSuccess = (signedTx: YoroiSignedTx) => {
trackSwapOrderSubmitted()
- closeModal()
InteractionManager.runAfterInteractions(() => {
navigate.submittedTx(signedTx.signedTx.id)
})
}
- const txIsLoading = authenticating || processingTx
- const isButtonDisabled = txIsLoading || couldReceiveNoAssets
+ const onNext = () => {
+ let liquidityPool: React.ReactNode = null
+ if (orderData.selectedPoolCalculation) {
+ const poolIcon =
+ const poolProviderFormatted = capitalize(orderData.selectedPoolCalculation.pool.provider)
+ const poolUrl = getPoolUrlByProvider(orderData.selectedPoolCalculation.pool.provider)
+
+ liquidityPool = (
+
+ )
+ }
+
+ if (liquidityPool != null) customReceiverTitleChanged(liquidityPool)
+ detailsChanged({component: , title: strings.swapDetailsTitle})
+ unsignedTxChanged(unsignedTx)
+ onSuccessChanged(onSwapTxSuccess)
+ onErrorChanged(onSwapTxError)
+ navigateToTxReview()
+ }
+
+ const isButtonDisabled = couldReceiveNoAssets
return (
@@ -116,12 +109,10 @@ export const ConfirmTxScreen = () => {
setContentHeight(height + BOTTOM_ACTION_SECTION)
}}
>
-
+
-
-
{
...(deviceHeight < contentHeight && styles.actionBorder),
}}
>
-
)
@@ -168,28 +135,21 @@ const useStyles = () => {
const {color, atoms} = useTheme()
const styles = StyleSheet.create({
root: {
- flex: 1,
+ ...atoms.flex_1,
+ ...atoms.pt_lg,
backgroundColor: color.bg_color_max,
- paddingTop: 16,
},
container: {
- flex: 1,
+ ...atoms.flex_1,
+ ...atoms.justify_between,
backgroundColor: color.bg_color_max,
- display: 'flex',
- flexDirection: 'column',
- justifyContent: 'space-between',
},
actions: {
- padding: 16,
+ ...atoms.p_lg,
backgroundColor: color.bg_color_max,
},
- modalContent: {
- flex: 1,
- alignSelf: 'stretch',
- ...atoms.px_lg,
- },
scroll: {
- paddingHorizontal: 16,
+ ...atoms.px_lg,
},
actionBorder: {
borderTopWidth: 1,
diff --git a/apps/wallet-mobile/src/features/Swap/useCases/ConfirmTxScreen/TransactionSummary.stories.tsx b/apps/wallet-mobile/src/features/Swap/useCases/ReviewSwap/TransactionSummary.stories.tsx
similarity index 90%
rename from apps/wallet-mobile/src/features/Swap/useCases/ConfirmTxScreen/TransactionSummary.stories.tsx
rename to apps/wallet-mobile/src/features/Swap/useCases/ReviewSwap/TransactionSummary.stories.tsx
index 68d0f74e02..bb19718039 100644
--- a/apps/wallet-mobile/src/features/Swap/useCases/ConfirmTxScreen/TransactionSummary.stories.tsx
+++ b/apps/wallet-mobile/src/features/Swap/useCases/ReviewSwap/TransactionSummary.stories.tsx
@@ -1,6 +1,7 @@
import {storiesOf} from '@storybook/react-native'
import {tokenInfoMocks} from '@yoroi/portfolio'
-import {mockSwapManager, mockSwapStateDefault, orderMocks, SwapOrderCalculation, SwapProvider} from '@yoroi/swap'
+import {mockSwapManager, mockSwapStateDefault, orderMocks, SwapProvider} from '@yoroi/swap'
+import {Swap} from '@yoroi/types'
import React from 'react'
import {StyleSheet, View} from 'react-native'
@@ -33,21 +34,23 @@ storiesOf('TransactionSummary', module) //
)
})
-const TxSummary = ({calculation}: {calculation: SwapOrderCalculation}) => {
+const TxSummary = ({calculation}: {calculation: Swap.OrderCalculation}) => {
+ const orderData = {...mocks.confirmTx.orderData, selectedPoolCalculation: calculation}
+
return (
-
+
diff --git a/apps/wallet-mobile/src/features/Swap/useCases/ConfirmTxScreen/TransactionSummary.tsx b/apps/wallet-mobile/src/features/Swap/useCases/ReviewSwap/TransactionSummary.tsx
similarity index 63%
rename from apps/wallet-mobile/src/features/Swap/useCases/ConfirmTxScreen/TransactionSummary.tsx
rename to apps/wallet-mobile/src/features/Swap/useCases/ReviewSwap/TransactionSummary.tsx
index 337274187b..9fd4a027c6 100644
--- a/apps/wallet-mobile/src/features/Swap/useCases/ConfirmTxScreen/TransactionSummary.tsx
+++ b/apps/wallet-mobile/src/features/Swap/useCases/ReviewSwap/TransactionSummary.tsx
@@ -1,14 +1,12 @@
-import {getPoolUrlByProvider, useSwap} from '@yoroi/swap'
+import {getPoolUrlByProvider, SwapState} from '@yoroi/swap'
import {useTheme} from '@yoroi/theme'
import {capitalize} from 'lodash'
import React from 'react'
-import {StyleSheet, TouchableOpacity, View} from 'react-native'
-import LinearGradient from 'react-native-linear-gradient'
+import {StyleSheet, View} from 'react-native'
+import {Divider} from '../../../../components/Divider/Divider'
import {Icon} from '../../../../components/Icon'
-import {useModal} from '../../../../components/Modal/ModalContext'
-import {PairedBalance} from '../../../../components/PairedBalance/PairedBalance'
-import {Spacer} from '../../../../components/Spacer/Spacer'
+import {Space} from '../../../../components/Space/Space'
import {Text} from '../../../../components/Text'
import {asQuantity, Quantities} from '../../../../yoroi-wallets/utils/utils'
import {TokenAmountItem} from '../../../Portfolio/common/TokenAmountItem/TokenAmountItem'
@@ -19,18 +17,15 @@ import {LiquidityPool} from '../../common/LiquidityPool/LiquidityPool'
import {PoolIcon} from '../../common/PoolIcon/PoolIcon'
import {useStrings} from '../../common/strings'
import {useSwapForm} from '../../common/SwapFormProvider'
-import {SwapInfoLink} from '../../common/SwapInfoLink/SwapInfoLink'
-export const TransactionSummary = () => {
+export const TransactionSummary = ({orderData}: {orderData: SwapState['orderData']}) => {
const strings = useStrings()
- const {styles, colors} = useStyles()
+ const {styles} = useStyles()
const {wallet} = useSelectedWallet()
- const {orderData} = useSwap()
const {
limitPrice: {displayValue: limitDisplayValue},
} = useSwapForm()
const {amounts, selectedPoolCalculation: calculation, type} = orderData
- const {openModal} = useModal()
// should never happen
if (!calculation || !amounts.buy || !amounts.sell) throw new Error('No selected pool calculation/amounts found')
@@ -52,15 +47,7 @@ export const TransactionSummary = () => {
const tokenToSellName = sellTokenInfo.ticker ?? sellTokenInfo.name
const tokenToBuyName = buyTokenInfo.ticker ?? buyTokenInfo.name
- const isSellPrimary = amounts.sell.info.id === wallet.portfolioPrimaryTokenInfo.id
- // Quantities.zero case would only happen on an API error where the price in Ada of Ada were missing
- const total = isSellPrimary ? calculation.ptTotalValueSpent?.quantity ?? 0n : amounts.sell.quantity
-
- const formattedSellText = `${Quantities.format(
- asQuantity(total.toString()),
- sellTokenInfo.decimals,
- )} ${tokenToSellName}`
const formattedFeeText = `${Quantities.format(
asQuantity((cost.batcherFee.quantity + cost.frontendFeeInfo.fee.quantity).toString()),
wallet.portfolioPrimaryTokenInfo.decimals,
@@ -88,36 +75,15 @@ export const TransactionSummary = () => {
label: strings.dex.toUpperCase(),
value: ,
},
- {
- label: strings.swapMinAdaTitle,
- value: {minAdaInfoValue},
- },
- {
- label: strings.swapFeesTitle,
- value: {formattedFeeText},
- },
- {
- label: strings.swapLiqProvFee,
- value: {liqFeeQuantityFormatted},
- },
- {
- label: strings.swapMinReceivedTitle,
- value: (
-
- {minReceivedInfoValue}
-
- ),
- },
{
label: `${capitalize(type)} ${strings.price}`,
value: {priceInfoValue},
- info: type === 'market' ? strings.marketPriceInfo : strings.limitPriceInfo,
},
{
label: strings.priceImpact,
value:
priceImpactRisk === 'none' ? (
- <1%
+ <1%
) : (
@@ -137,90 +103,33 @@ export const TransactionSummary = () => {
),
- info: strings.priceImpactInfo,
warning: priceImpactRisk === 'high',
hidden: orderData.type === 'limit',
},
+ {
+ label: strings.swapMinAdaTitle,
+ value: {minAdaInfoValue},
+ },
+ {
+ label: strings.swapFeesTitle,
+ value: {formattedFeeText},
+ },
+ {
+ label: strings.swapLiqProvFee,
+ value: {liqFeeQuantityFormatted},
+ },
+ {
+ label: strings.swapMinReceivedTitle,
+ value: (
+
+ {minReceivedInfoValue}
+
+ ),
+ },
]
return (
-
- {strings.total}
-
-
- {formattedSellText}
-
- {!isSellPrimary && (
- <>
-
-
- {formattedFeeText}
- >
- )}
-
- {!!calculation.ptTotalValueSpent && (
- <>
-
-
-
- >
- )}
-
-
-
-
-
- {feesInfo.map((orderInfo) => {
- if (orderInfo?.hidden) {
- return null
- }
- return (
-
-
-
-
-
- {orderInfo.label}
-
-
-
- {orderInfo.info != undefined && (
- {
- openModal(
- orderInfo.label,
-
- {orderInfo.info}
-
-
-
-
-
-
- ,
- )
- }}
- >
-
-
- )}
-
-
- {orderInfo.value}
-
-
- )
- })}
-
-
-
{(priceImpactRisk === 'moderate' || priceImpactRisk === 'high') && type === 'market' && (
{priceImpactRisk === 'moderate' && }
@@ -239,17 +148,41 @@ export const TransactionSummary = () => {
)}
-
+
{strings.swapFrom}
-
+
{strings.swapTo}
+
+
+
+ {strings.swapDetailsTitle}
+
+ {feesInfo.map((orderInfo) => {
+ if (orderInfo?.hidden) {
+ return null
+ }
+
+ return (
+
+
+
+
+
+ {orderInfo.label}
+
+
+ {orderInfo.value}
+
+
+ )
+ })}
)
}
@@ -258,49 +191,30 @@ const useStyles = () => {
const {atoms, color} = useTheme()
const styles = StyleSheet.create({
priceImpactRiskContainer: {
- flex: 1,
- flexDirection: 'column',
- justifyContent: 'flex-end',
- alignItems: 'flex-end',
+ ...atoms.flex_1,
+ ...atoms.justify_end,
+ ...atoms.align_end,
},
priceImpactRiskText: {
...atoms.body_2_md_regular,
},
- alignRight: {
- textAlign: 'right',
- },
- card: {
- flexDirection: 'row',
- justifyContent: 'space-between',
- alignItems: 'flex-start',
- padding: 16,
- borderRadius: 8,
- },
- cardText: {
- fontSize: 18,
- color: color.white_static,
+ priceImpactLowRiskText: {
+ color: color.secondary_600,
},
- cardTextValue: {
- ...atoms.heading_4_medium,
- lineHeight: 22,
- textAlign: 'right',
- },
- pairedText: {
- fontSize: 14,
- color: color.white_static,
- opacity: 0.75,
+ alignRight: {
+ ...atoms.text_right,
},
flexBetween: {
- flexDirection: 'row',
- justifyContent: 'space-between',
- alignItems: 'flex-start',
+ ...atoms.flex_row,
+ ...atoms.justify_between,
+ ...atoms.align_start,
},
flex: {
- flexDirection: 'row',
- alignItems: 'center',
+ ...atoms.flex_row,
+ ...atoms.align_center,
},
text: {
- textAlign: 'left',
+ ...atoms.text_left,
...atoms.body_1_lg_regular,
color: color.gray_900,
},
@@ -310,41 +224,31 @@ const useStyles = () => {
amountItemLabel: {
fontSize: 12,
color: color.gray_900,
- paddingBottom: 8,
- },
- modalContent: {
- justifyContent: 'space-between',
- flex: 1,
- ...atoms.px_lg,
- },
- modalText: {
- ...atoms.body_1_lg_regular,
- color: color.gray_900,
+ ...atoms.pb_sm,
},
orderValueContainer: {
- flexDirection: 'row',
- alignItems: 'flex-end',
- justifyContent: 'flex-end',
- paddingLeft: 8,
- flex: 1,
+ ...atoms.flex_row,
+ ...atoms.align_end,
+ ...atoms.justify_end,
+ ...atoms.pl_sm,
+ ...atoms.flex_1,
},
banner: {
- paddingVertical: 12,
- paddingHorizontal: 16,
- borderRadius: 8,
- gap: 8,
+ ...atoms.py_md,
+ ...atoms.px_lg,
+ ...atoms.rounded_sm,
+ ...atoms.gap_sm,
},
bannerText: {
- fontSize: 14,
- lineHeight: 22,
+ ...atoms.body_2_md_regular,
color: color.gray_900,
},
bold: {
...atoms.body_2_md_medium,
},
- total: {
- flexDirection: 'column',
- alignItems: 'flex-end',
+ detailsTitle: {
+ ...atoms.body_1_lg_medium,
+ color: color.text_gray_medium,
},
})
diff --git a/apps/wallet-mobile/src/features/Swap/useCases/StartOrderSwapScreen/CreateOrder/StartSwapOrderScreen.tsx b/apps/wallet-mobile/src/features/Swap/useCases/StartOrderSwapScreen/CreateOrder/StartSwapOrderScreen.tsx
index 83748dad30..6485c9d1e0 100644
--- a/apps/wallet-mobile/src/features/Swap/useCases/StartOrderSwapScreen/CreateOrder/StartSwapOrderScreen.tsx
+++ b/apps/wallet-mobile/src/features/Swap/useCases/StartOrderSwapScreen/CreateOrder/StartSwapOrderScreen.tsx
@@ -194,7 +194,7 @@ export const StartSwapOrderScreen = () => {
),
})
- navigateTo.confirmTx()
+ navigateTo.reviewSwap()
}
const createSwapOrder = (orderData: Swap.CreateOrderData) => {
diff --git a/apps/wallet-mobile/src/features/Swap/useCases/StartOrderSwapScreen/ListOrders/OpenOrders.tsx b/apps/wallet-mobile/src/features/Swap/useCases/StartOrderSwapScreen/ListOrders/OpenOrders.tsx
index ead8c75e44..6c4f796678 100644
--- a/apps/wallet-mobile/src/features/Swap/useCases/StartOrderSwapScreen/ListOrders/OpenOrders.tsx
+++ b/apps/wallet-mobile/src/features/Swap/useCases/StartOrderSwapScreen/ListOrders/OpenOrders.tsx
@@ -34,7 +34,7 @@ import {useTransactionInfos} from '../../../../../yoroi-wallets/hooks'
import {usePortfolioTokenInfos} from '../../../../Portfolio/common/hooks/usePortfolioTokenInfos'
import {TokenInfoIcon} from '../../../../Portfolio/common/TokenAmountItem/TokenInfoIcon'
import {useSearch} from '../../../../Search/SearchContext'
-import {getCollateralAmountInLovelace} from '../../../../Settings/ManageCollateral/helpers'
+import {getCollateralAmountInLovelace} from '../../../../Settings/useCases/changeWalletSettings/ManageCollateral/helpers'
import {useSelectedWallet} from '../../../../WalletManager/common/hooks/useSelectedWallet'
import {ConfirmRawTx} from '../../../common/ConfirmRawTx/ConfirmRawTx'
import {Counter} from '../../../common/Counter/Counter'
diff --git a/apps/wallet-mobile/src/features/Swap/useCases/index.ts b/apps/wallet-mobile/src/features/Swap/useCases/index.ts
index dd252fe940..285bb7163c 100644
--- a/apps/wallet-mobile/src/features/Swap/useCases/index.ts
+++ b/apps/wallet-mobile/src/features/Swap/useCases/index.ts
@@ -1,4 +1,3 @@
-export * from './ConfirmTxScreen/ConfirmTxScreen'
export * from './ConfirmTxScreen/ShowFailedTxScreen/ShowFailedTxScreen'
export * from './ConfirmTxScreen/ShowSubmittedTxScreen/ShowSubmittedTxScreen'
export * from './StartOrderSwapScreen/CreateOrder/EditPool/SelectPoolFromListScreen/SelectPoolFromListScreen'
diff --git a/apps/wallet-mobile/src/features/Transactions/TxHistoryNavigator.tsx b/apps/wallet-mobile/src/features/Transactions/TxHistoryNavigator.tsx
index 5e49b3da57..f776390702 100644
--- a/apps/wallet-mobile/src/features/Transactions/TxHistoryNavigator.tsx
+++ b/apps/wallet-mobile/src/features/Transactions/TxHistoryNavigator.tsx
@@ -36,15 +36,15 @@ import {SelectTokenFromListScreen} from '../Send/useCases/ListAmountsToSend/AddT
import {EditAmountScreen} from '../Send/useCases/ListAmountsToSend/EditAmount/EditAmountScreen'
import {ListAmountsToSendScreen} from '../Send/useCases/ListAmountsToSend/ListAmountsToSendScreen'
import {StartMultiTokenTxScreen} from '../Send/useCases/StartMultiTokenTx/StartMultiTokenTxScreen'
-import {NetworkTag} from '../Settings/ChangeNetwork/NetworkTag'
+import {NetworkTag} from '../Settings/useCases/changeAppSettings/ChangeNetwork/NetworkTag'
import {SwapTabNavigator} from '../Swap/SwapNavigator'
import {
- ConfirmTxScreen as ConfirmTxSwapScreen,
EditSlippageScreen,
SelectPoolFromListScreen,
ShowFailedTxScreen as FailedTxSwapScreen,
ShowSubmittedTxScreen as SubmittedTxSwapScreen,
} from '../Swap/useCases'
+import {ReviewSwap} from '../Swap/useCases/ReviewSwap/ReviewSwap'
import {ShowPreprodNoticeScreen} from '../Swap/useCases/ShowPreprodNoticeScreen/ShowPreprodNoticeScreen'
import {ShowSanchoNoticeScreen} from '../Swap/useCases/ShowSanchoNoticeScreen/ShowSanchoNoticeScreen'
import {SelectBuyTokenFromListScreen} from '../Swap/useCases/StartOrderSwapScreen/CreateOrder/EditBuyAmount/SelectBuyTokenFromListScreen/SelectBuyTokenFromListScreen'
@@ -242,10 +242,10 @@ export const TxHistoryNavigator = () => {
/>
@@ -421,6 +421,10 @@ const messages = defineMessages({
id: 'swap.swapScreen.swapTo',
defaultMessage: '!!!Swap to',
},
+ reviewSwapTitle: {
+ id: 'swap.review.title',
+ defaultMessage: '!!!Swap review',
+ },
slippageTolerance: {
id: 'swap.swapScreen.slippageTolerance',
defaultMessage: '!!!Slippage Tolerance',
@@ -500,6 +504,7 @@ const useStrings = () => {
return {
claimShowSuccess: intl.formatMessage(messages.claimShowSuccessTitle),
confirmationTransaction: intl.formatMessage(messages.confirmationTransaction),
+ reviewSwapTitle: intl.formatMessage(messages.reviewSwapTitle),
confirmTitle: intl.formatMessage(messages.confirmTitle),
describeSelectedAddressTitle: intl.formatMessage(messages.describeSelectedAddressTitle),
editAmountTitle: intl.formatMessage(messages.editAmountTitle),
diff --git a/apps/wallet-mobile/src/features/Transactions/useCases/TxDetails/AssetList.tsx b/apps/wallet-mobile/src/features/Transactions/useCases/TxDetails/AssetList.tsx
index 969633161f..78426426e7 100644
--- a/apps/wallet-mobile/src/features/Transactions/useCases/TxDetails/AssetList.tsx
+++ b/apps/wallet-mobile/src/features/Transactions/useCases/TxDetails/AssetList.tsx
@@ -10,7 +10,7 @@ import {isEmptyString} from '../../../../kernel/utils'
import {CardanoTypes} from '../../../../yoroi-wallets/cardano/types'
import {formatTokenAmount} from '../../../../yoroi-wallets/utils/format'
import {asQuantity} from '../../../../yoroi-wallets/utils/utils'
-import {usePrivacyMode} from '../../../Settings/PrivacyMode/PrivacyMode'
+import {usePrivacyMode} from '../../../Settings/useCases/changeAppSettings/PrivacyMode/PrivacyMode'
import {useSelectedWallet} from '../../../WalletManager/common/hooks/useSelectedWallet'
import {useStrings} from '../../common/strings'
import {useAssetListStyles} from './AssetListTransaction.style'
diff --git a/apps/wallet-mobile/src/features/Transactions/useCases/TxDetails/TxDetails.tsx b/apps/wallet-mobile/src/features/Transactions/useCases/TxDetails/TxDetails.tsx
index b0f9dcc120..e6fb7b2aa1 100644
--- a/apps/wallet-mobile/src/features/Transactions/useCases/TxDetails/TxDetails.tsx
+++ b/apps/wallet-mobile/src/features/Transactions/useCases/TxDetails/TxDetails.tsx
@@ -35,7 +35,7 @@ import {useTransactionInfos} from '../../../../yoroi-wallets/hooks'
import {TransactionInfo} from '../../../../yoroi-wallets/types/other'
import {formatDateAndTime, formatTokenWithSymbol} from '../../../../yoroi-wallets/utils/format'
import {asQuantity} from '../../../../yoroi-wallets/utils/utils'
-import {usePrivacyMode} from '../../../Settings/PrivacyMode/PrivacyMode'
+import {usePrivacyMode} from '../../../Settings/useCases/changeAppSettings/PrivacyMode/PrivacyMode'
import {useBestBlock} from '../../../WalletManager/common/hooks/useBestBlock'
import {useSelectedWallet} from '../../../WalletManager/common/hooks/useSelectedWallet'
import {useWalletManager} from '../../../WalletManager/context/WalletManagerProvider'
diff --git a/apps/wallet-mobile/src/features/Transactions/useCases/TxHistory/BalanceBanner.tsx b/apps/wallet-mobile/src/features/Transactions/useCases/TxHistory/BalanceBanner.tsx
index 37df545414..7855e05d08 100644
--- a/apps/wallet-mobile/src/features/Transactions/useCases/TxHistory/BalanceBanner.tsx
+++ b/apps/wallet-mobile/src/features/Transactions/useCases/TxHistory/BalanceBanner.tsx
@@ -9,7 +9,7 @@ import {Icon} from '../../../../components/Icon'
import {PairedBalance} from '../../../../components/PairedBalance/PairedBalance'
import {Spacer} from '../../../../components/Spacer/Spacer'
import {usePortfolioPrimaryBalance} from '../../../Portfolio/common/hooks/usePortfolioPrimaryBalance'
-import {usePrivacyMode} from '../../../Settings/PrivacyMode/PrivacyMode'
+import {usePrivacyMode} from '../../../Settings/useCases/changeAppSettings/PrivacyMode/PrivacyMode'
import {useSelectedWallet} from '../../../WalletManager/common/hooks/useSelectedWallet'
export const BalanceBanner = React.forwardRef((_, ref) => {
diff --git a/apps/wallet-mobile/src/features/Transactions/useCases/TxHistory/LockedDeposit.tsx b/apps/wallet-mobile/src/features/Transactions/useCases/TxHistory/LockedDeposit.tsx
index 9b69a7c132..62e970d484 100644
--- a/apps/wallet-mobile/src/features/Transactions/useCases/TxHistory/LockedDeposit.tsx
+++ b/apps/wallet-mobile/src/features/Transactions/useCases/TxHistory/LockedDeposit.tsx
@@ -6,7 +6,7 @@ import {StyleSheet, View} from 'react-native'
import {Spacer} from '../../../../components/Spacer/Spacer'
import {Text} from '../../../../components/Text'
import {usePortfolioPrimaryBreakdown} from '../../../Portfolio/common/hooks/usePortfolioPrimaryBreakdown'
-import {usePrivacyMode} from '../../../Settings/PrivacyMode/PrivacyMode'
+import {usePrivacyMode} from '../../../Settings/useCases/changeAppSettings/PrivacyMode/PrivacyMode'
import {useSelectedWallet} from '../../../WalletManager/common/hooks/useSelectedWallet'
import {useStrings} from '../../common/strings'
diff --git a/apps/wallet-mobile/src/features/Transactions/useCases/TxList/TxListItem.tsx b/apps/wallet-mobile/src/features/Transactions/useCases/TxList/TxListItem.tsx
index b57e275003..abdb2cce1f 100644
--- a/apps/wallet-mobile/src/features/Transactions/useCases/TxList/TxListItem.tsx
+++ b/apps/wallet-mobile/src/features/Transactions/useCases/TxList/TxListItem.tsx
@@ -24,8 +24,8 @@ import {
formatTokenInteger,
} from '../../../../yoroi-wallets/utils/format'
import {asQuantity} from '../../../../yoroi-wallets/utils/utils'
-import {useCurrencyPairing} from '../../../Settings/Currency/CurrencyContext'
-import {usePrivacyMode} from '../../../Settings/PrivacyMode/PrivacyMode'
+import {useCurrencyPairing} from '../../../Settings/useCases/changeAppSettings/Currency/CurrencyContext'
+import {usePrivacyMode} from '../../../Settings/useCases/changeAppSettings/PrivacyMode/PrivacyMode'
import {useSelectedWallet} from '../../../WalletManager/common/hooks/useSelectedWallet'
import {useStrings} from '../../common/strings'
import {useTxFilter} from './TxFilterProvider'
diff --git a/apps/wallet-mobile/src/features/WalletManager/useCases/SelectWalletFromListScreen/AggregatedBalance.tsx b/apps/wallet-mobile/src/features/WalletManager/useCases/SelectWalletFromListScreen/AggregatedBalance.tsx
index 6578a1f888..fe36c0911c 100644
--- a/apps/wallet-mobile/src/features/WalletManager/useCases/SelectWalletFromListScreen/AggregatedBalance.tsx
+++ b/apps/wallet-mobile/src/features/WalletManager/useCases/SelectWalletFromListScreen/AggregatedBalance.tsx
@@ -10,7 +10,7 @@ import {usePortfolioTokenActivity} from '../../../Portfolio/common/PortfolioToke
import {BalanceCardContent} from '../../../Portfolio/useCases/PortfolioDashboard/BalanceCard/BalanceCardContent'
import {BalanceCardSkeleton} from '../../../Portfolio/useCases/PortfolioDashboard/BalanceCard/BalanceCardSkeleton'
import {BalanceHeaderCard} from '../../../Portfolio/useCases/PortfolioDashboard/BalanceCard/BalanceHeaderCard'
-import {useCurrencyPairing} from '../../../Settings/Currency/CurrencyContext'
+import {useCurrencyPairing} from '../../../Settings/useCases/changeAppSettings/Currency/CurrencyContext'
import {useSelectedNetwork} from '../../common/hooks/useSelectedNetwork'
export const AggregatedBalance = () => {
diff --git a/apps/wallet-mobile/src/hooks/useAllowScreenShot.tsx b/apps/wallet-mobile/src/hooks/useAllowScreenShot.tsx
index e5b2cac85d..2b26590120 100644
--- a/apps/wallet-mobile/src/hooks/useAllowScreenShot.tsx
+++ b/apps/wallet-mobile/src/hooks/useAllowScreenShot.tsx
@@ -6,7 +6,7 @@ import {Platform} from 'react-native'
import {
changeScreenShareNativeSettingOnAndroid,
useScreenShareSettingEnabled,
-} from '../features/Settings/ScreenShare/ScreenShare'
+} from '../features/Settings/useCases/changeAppSettings/ScreenShare/ScreenShare'
export const useAllowScreenshot = () => {
const {data: screenShareSettingEnabled} = useScreenShareSettingEnabled()
diff --git a/apps/wallet-mobile/src/kernel/config.ts b/apps/wallet-mobile/src/kernel/config.ts
index 461c08071c..8a814b441e 100644
--- a/apps/wallet-mobile/src/kernel/config.ts
+++ b/apps/wallet-mobile/src/kernel/config.ts
@@ -12,4 +12,4 @@ export const governaceAfterBlock = freeze({
export const agreementDate = 1691967600000
-export const loggerLevel: App.Logger.Level = isDev ? App.Logger.Level.Debug : App.Logger.Level.Warn
+export const loggerLevel: App.Logger.Level = isDev ? App.Logger.Level.Log : App.Logger.Level.Warn
diff --git a/apps/wallet-mobile/src/kernel/i18n/locales/en-US.json b/apps/wallet-mobile/src/kernel/i18n/locales/en-US.json
index ad8c99b4a8..28cf5c2bcc 100644
--- a/apps/wallet-mobile/src/kernel/i18n/locales/en-US.json
+++ b/apps/wallet-mobile/src/kernel/i18n/locales/en-US.json
@@ -1041,7 +1041,9 @@
"swap.swapScreen.swapMinReceived": "Minimum amount of assets you can get because of the slippage tolerance.",
"swap.swapScreen.swapMinReceivedTitle": "Min Received",
"swap.swapScreen.swapTitle": "Swap",
+ "swap.swapScreen.swapDetailsTitle": "Swap details",
"swap.swapScreen.swapTo": "Swap to",
+ "swap.review.title": "Swap review",
"swap.swapScreen.tokenSwapTab": "Asset swap",
"swap.swapScreen.transactionDisplay": "In a few minutes, your transactions will be displayed both in the list of transaction and Open swap orders",
"swap.swapScreen.transactionSigned": "Transaction submitted",
@@ -1229,6 +1231,7 @@
"portfolio.portfolioTokensDetailScreen.detailsOn": "Details on",
"txReview.tabLabel.utxos": "UTxOs",
"txReview.tabLabel.overview": "Overview",
+ "txReview.tabLabel.metadataTab": "Metadata",
"txReview.overview.wallet": "Wallet",
"txReview.fee": "Fee",
"txReview.overview.myWalletLabel": "Your Wallet",
@@ -1239,6 +1242,8 @@
"txReview.utxos.utxosOutputsLabel": "Outputs",
"txReview.utxos.utxosYourAddressLabel": "Your address",
"txReview.utxos.utxosForeignAddressLabel": "Foreign address",
+ "txReview.metadata.metadataHash": "Metadata hash",
+ "txReview.metadata.metadataJsonLabel": "Metadata",
"txReview.title": "Transaction Review",
"txReview.confirm": "Confirm",
"txReview.tokenDetails.overViewTab.title": "Overview",
diff --git a/apps/wallet-mobile/src/kernel/navigation.tsx b/apps/wallet-mobile/src/kernel/navigation.tsx
index 91029e84c5..3769f9e1d3 100644
--- a/apps/wallet-mobile/src/kernel/navigation.tsx
+++ b/apps/wallet-mobile/src/kernel/navigation.tsx
@@ -178,7 +178,7 @@ type ClaimRoutes = {
type SwapTokenRoutes = {
'swap-start-swap': NavigatorScreenParams
- 'swap-confirm-tx': undefined
+ 'swap-review': undefined
'swap-select-sell-token': undefined
'swap-select-buy-token': undefined
'swap-edit-slippage': undefined
diff --git a/apps/wallet-mobile/src/legacy/Dashboard/DashboardNavigator.tsx b/apps/wallet-mobile/src/legacy/Dashboard/DashboardNavigator.tsx
index 96760da7bf..9e579faaa1 100644
--- a/apps/wallet-mobile/src/legacy/Dashboard/DashboardNavigator.tsx
+++ b/apps/wallet-mobile/src/legacy/Dashboard/DashboardNavigator.tsx
@@ -5,7 +5,7 @@ import {useTheme} from '@yoroi/theme'
import React from 'react'
import {defineMessages, useIntl} from 'react-intl'
-import {NetworkTag} from '../../features/Settings/ChangeNetwork/NetworkTag'
+import {NetworkTag} from '../../features/Settings/useCases/changeAppSettings/ChangeNetwork/NetworkTag'
import {useGovernanceManagerMaker} from '../../features/Staking/Governance/common/helpers'
import {useSelectedWallet} from '../../features/WalletManager/common/hooks/useSelectedWallet'
import {DashboardRoutes, defaultStackNavigationOptions} from '../../kernel/navigation'
diff --git a/apps/wallet-mobile/src/legacy/Dashboard/UserSummary.tsx b/apps/wallet-mobile/src/legacy/Dashboard/UserSummary.tsx
index 87535c2fed..0f121bb7e9 100644
--- a/apps/wallet-mobile/src/legacy/Dashboard/UserSummary.tsx
+++ b/apps/wallet-mobile/src/legacy/Dashboard/UserSummary.tsx
@@ -9,7 +9,7 @@ import {Icon} from '../../components/Icon'
import {Space} from '../../components/Space/Space'
import {Text} from '../../components/Text'
import {TitledCard} from '../../components/TitledCard'
-import {usePrivacyMode} from '../../features/Settings/PrivacyMode/PrivacyMode'
+import {usePrivacyMode} from '../../features/Settings/useCases/changeAppSettings/PrivacyMode/PrivacyMode'
import {useSelectedWallet} from '../../features/WalletManager/common/hooks/useSelectedWallet'
import globalMessages from '../../kernel/i18n/global-messages'
import {formatAdaWithText} from '../../yoroi-wallets/utils/format'
diff --git a/apps/wallet-mobile/src/yoroi-wallets/cardano/cip30/cip30.test.ts b/apps/wallet-mobile/src/yoroi-wallets/cardano/cip30/cip30.test.ts
index 06ea9e9790..ce03da0a48 100644
--- a/apps/wallet-mobile/src/yoroi-wallets/cardano/cip30/cip30.test.ts
+++ b/apps/wallet-mobile/src/yoroi-wallets/cardano/cip30/cip30.test.ts
@@ -23,6 +23,7 @@ describe('cip30ExtensionMaker', () => {
})
it('should support getBalance', async () => {
+ console.log('test-1')
const cip30 = cip30ExtensionMaker(mocks.wallet, mocks.walletMeta)
const result = await cip30.getBalance()
expect(result).toBeDefined()
diff --git a/apps/wallet-mobile/src/yoroi-wallets/cardano/utils.ts b/apps/wallet-mobile/src/yoroi-wallets/cardano/utils.ts
index 226323f31c..442a33630b 100644
--- a/apps/wallet-mobile/src/yoroi-wallets/cardano/utils.ts
+++ b/apps/wallet-mobile/src/yoroi-wallets/cardano/utils.ts
@@ -1,5 +1,6 @@
/* eslint-disable no-empty */
import {SendToken} from '@emurgo/yoroi-lib'
+import {invalid} from '@yoroi/common'
import {Balance, Chain, Portfolio, Wallet} from '@yoroi/types'
import {BigNumber} from 'bignumber.js'
import {Buffer} from 'buffer'
@@ -13,7 +14,7 @@ import {toAssetNameHex, toPolicyId} from './api/utils'
import {withMinAmounts} from './getMinAmounts'
import {MultiToken} from './MultiToken'
import {CardanoTypes} from './types'
-import {wrappedCsl as getCSL} from './wrappedCsl'
+import {wrappedCsl as getCSL, wrappedCsl} from './wrappedCsl'
export const deriveRewardAddressHex = async (
accountPubKeyHex: string,
@@ -31,44 +32,22 @@ export const deriveRewardAddressHex = async (
return result
}
-export const getAddressType = async (address: string) => {
- const isKeyAddress = await getIsAddressKeyBech32Format(address)
- if (isKeyAddress) return 'key'
+export const deriveRewardAddressFromAddress = async (address: string, chainId: number): Promise => {
+ const {csl, release} = wrappedCsl()
- const isScriptAddress = await getIsAddressScriptBech32Format(address)
- if (isScriptAddress) return 'script'
-
- const isRewardAddress = await getIsRewardAddressBech32Format(address)
- if (isRewardAddress) return 'reward'
-
- throw new Error('invalid address format')
-}
-
-const getIsAddressKeyBech32Format = async (address: string): Promise => {
- try {
- await CardanoMobile.Ed25519KeyHash.fromBech32(address)
- return true
- } catch {
- return false
- }
-}
-
-const getIsAddressScriptBech32Format = async (address: string): Promise => {
try {
- await CardanoMobile.ScriptHash.fromBech32(address)
- return true
- } catch {
- return false
- }
-}
-
-const getIsRewardAddressBech32Format = async (addressBech32: string): Promise => {
- try {
- const address = await CardanoMobile.Address.fromBech32(addressBech32)
- await CardanoMobile.RewardAddress.fromAddress(address)
- return true
- } catch {
- return false
+ const result = await csl.Address.fromBech32(address)
+ .then((address) => csl.BaseAddress.fromAddress(address))
+ .then((baseAddress) => baseAddress?.stakeCred() ?? invalid('invalid base address'))
+ .then((stakeCredential) => csl.RewardAddress.new(chainId, stakeCredential))
+ .then((rewardAddress) => rewardAddress.toAddress())
+ .then((rewardAddrAsAddress) => rewardAddrAsAddress.toBech32(undefined))
+ .catch((error) => error)
+
+ if (typeof result !== 'string') throw new Error('Its not possible to derive reward address')
+ return result
+ } finally {
+ release()
}
}
diff --git a/apps/wallet-mobile/translations/messages/src/WalletNavigator.json b/apps/wallet-mobile/translations/messages/src/WalletNavigator.json
index ce9df7a0e8..c439bb525b 100644
--- a/apps/wallet-mobile/translations/messages/src/WalletNavigator.json
+++ b/apps/wallet-mobile/translations/messages/src/WalletNavigator.json
@@ -6,12 +6,12 @@
"start": {
"line": 306,
"column": 22,
- "index": 10668
+ "index": 10719
},
"end": {
"line": 309,
"column": 3,
- "index": 10771
+ "index": 10822
}
},
{
@@ -21,12 +21,12 @@
"start": {
"line": 310,
"column": 14,
- "index": 10787
+ "index": 10838
},
"end": {
"line": 313,
"column": 3,
- "index": 10886
+ "index": 10937
}
},
{
@@ -36,12 +36,12 @@
"start": {
"line": 314,
"column": 17,
- "index": 10905
+ "index": 10956
},
"end": {
"line": 317,
"column": 3,
- "index": 11010
+ "index": 11061
}
},
{
@@ -51,12 +51,12 @@
"start": {
"line": 318,
"column": 19,
- "index": 11031
+ "index": 11082
},
"end": {
"line": 321,
"column": 3,
- "index": 11128
+ "index": 11179
}
},
{
@@ -66,12 +66,12 @@
"start": {
"line": 322,
"column": 18,
- "index": 11148
+ "index": 11199
},
"end": {
"line": 325,
"column": 3,
- "index": 11243
+ "index": 11294
}
},
{
@@ -81,12 +81,12 @@
"start": {
"line": 326,
"column": 16,
- "index": 11261
+ "index": 11312
},
"end": {
"line": 329,
"column": 3,
- "index": 11359
+ "index": 11410
}
},
{
@@ -96,12 +96,12 @@
"start": {
"line": 330,
"column": 17,
- "index": 11378
+ "index": 11429
},
"end": {
"line": 333,
"column": 3,
- "index": 11443
+ "index": 11494
}
},
{
@@ -111,12 +111,12 @@
"start": {
"line": 334,
"column": 14,
- "index": 11459
+ "index": 11510
},
"end": {
"line": 337,
"column": 3,
- "index": 11553
+ "index": 11604
}
},
{
@@ -126,12 +126,12 @@
"start": {
"line": 338,
"column": 14,
- "index": 11569
+ "index": 11620
},
"end": {
"line": 341,
"column": 3,
- "index": 11621
+ "index": 11672
}
},
{
@@ -141,12 +141,12 @@
"start": {
"line": 342,
"column": 18,
- "index": 11641
+ "index": 11692
},
"end": {
"line": 345,
"column": 3,
- "index": 11730
+ "index": 11781
}
},
{
@@ -156,12 +156,12 @@
"start": {
"line": 346,
"column": 31,
- "index": 11763
+ "index": 11814
},
"end": {
"line": 349,
"column": 3,
- "index": 11872
+ "index": 11923
}
},
{
@@ -171,12 +171,12 @@
"start": {
"line": 350,
"column": 19,
- "index": 11893
+ "index": 11944
},
"end": {
"line": 353,
"column": 3,
- "index": 11962
+ "index": 12013
}
}
]
\ No newline at end of file
diff --git a/apps/wallet-mobile/translations/messages/src/components/PairedBalance/PairedBalance.json b/apps/wallet-mobile/translations/messages/src/components/PairedBalance/PairedBalance.json
index 33ff0e463c..c44d9ccf9b 100644
--- a/apps/wallet-mobile/translations/messages/src/components/PairedBalance/PairedBalance.json
+++ b/apps/wallet-mobile/translations/messages/src/components/PairedBalance/PairedBalance.json
@@ -6,12 +6,12 @@
"start": {
"line": 107,
"column": 22,
- "index": 3609
+ "index": 3663
},
"end": {
"line": 110,
"column": 3,
- "index": 3741
+ "index": 3795
}
}
]
\ No newline at end of file
diff --git a/apps/wallet-mobile/translations/messages/src/features/ReviewTx/common/hooks/useStrings.json b/apps/wallet-mobile/translations/messages/src/features/ReviewTx/common/hooks/useStrings.json
index f7ec21070a..fdeb1cc006 100644
--- a/apps/wallet-mobile/translations/messages/src/features/ReviewTx/common/hooks/useStrings.json
+++ b/apps/wallet-mobile/translations/messages/src/features/ReviewTx/common/hooks/useStrings.json
@@ -4,14 +4,14 @@
"defaultMessage": "!!!Confirm",
"file": "src/features/ReviewTx/common/hooks/useStrings.tsx",
"start": {
- "line": 39,
+ "line": 42,
"column": 11,
- "index": 1785
+ "index": 1976
},
"end": {
- "line": 42,
+ "line": 45,
"column": 3,
- "index": 1852
+ "index": 2043
}
},
{
@@ -19,14 +19,14 @@
"defaultMessage": "!!!UTxOs",
"file": "src/features/ReviewTx/common/hooks/useStrings.tsx",
"start": {
- "line": 43,
+ "line": 46,
"column": 9,
- "index": 1863
+ "index": 2054
},
"end": {
- "line": 46,
+ "line": 49,
"column": 3,
- "index": 1926
+ "index": 2117
}
},
{
@@ -34,14 +34,14 @@
"defaultMessage": "!!!UTxOs",
"file": "src/features/ReviewTx/common/hooks/useStrings.tsx",
"start": {
- "line": 47,
+ "line": 50,
"column": 12,
- "index": 1940
+ "index": 2131
},
"end": {
- "line": 50,
+ "line": 53,
"column": 3,
- "index": 2012
+ "index": 2203
}
},
{
@@ -49,14 +49,59 @@
"defaultMessage": "!!!Overview",
"file": "src/features/ReviewTx/common/hooks/useStrings.tsx",
"start": {
- "line": 51,
+ "line": 54,
"column": 15,
- "index": 2029
+ "index": 2220
},
"end": {
- "line": 54,
+ "line": 57,
+ "column": 3,
+ "index": 2298
+ }
+ },
+ {
+ "id": "txReview.tabLabel.metadataTab",
+ "defaultMessage": "!!!Metadata",
+ "file": "src/features/ReviewTx/common/hooks/useStrings.tsx",
+ "start": {
+ "line": 58,
+ "column": 15,
+ "index": 2315
+ },
+ "end": {
+ "line": 61,
+ "column": 3,
+ "index": 2396
+ }
+ },
+ {
+ "id": "txReview.metadata.metadataHash",
+ "defaultMessage": "!!!Metadata hash",
+ "file": "src/features/ReviewTx/common/hooks/useStrings.tsx",
+ "start": {
+ "line": 62,
+ "column": 16,
+ "index": 2414
+ },
+ "end": {
+ "line": 65,
+ "column": 3,
+ "index": 2501
+ }
+ },
+ {
+ "id": "txReview.metadata.metadataJsonLabel",
+ "defaultMessage": "!!!Metadata",
+ "file": "src/features/ReviewTx/common/hooks/useStrings.tsx",
+ "start": {
+ "line": 66,
+ "column": 21,
+ "index": 2524
+ },
+ "end": {
+ "line": 69,
"column": 3,
- "index": 2107
+ "index": 2611
}
},
{
@@ -64,14 +109,14 @@
"defaultMessage": "!!!Wallet",
"file": "src/features/ReviewTx/common/hooks/useStrings.tsx",
"start": {
- "line": 55,
+ "line": 70,
"column": 15,
- "index": 2124
+ "index": 2628
},
"end": {
- "line": 58,
+ "line": 73,
"column": 3,
- "index": 2198
+ "index": 2702
}
},
{
@@ -79,14 +124,14 @@
"defaultMessage": "!!!Fee",
"file": "src/features/ReviewTx/common/hooks/useStrings.tsx",
"start": {
- "line": 59,
+ "line": 74,
"column": 12,
- "index": 2212
+ "index": 2716
},
"end": {
- "line": 62,
+ "line": 77,
"column": 3,
- "index": 2271
+ "index": 2775
}
},
{
@@ -94,14 +139,14 @@
"defaultMessage": "!!!Your Wallet",
"file": "src/features/ReviewTx/common/hooks/useStrings.tsx",
"start": {
- "line": 63,
+ "line": 78,
"column": 17,
- "index": 2290
+ "index": 2794
},
"end": {
- "line": 66,
+ "line": 81,
"column": 3,
- "index": 2376
+ "index": 2880
}
},
{
@@ -109,14 +154,14 @@
"defaultMessage": "!!!Send",
"file": "src/features/ReviewTx/common/hooks/useStrings.tsx",
"start": {
- "line": 67,
+ "line": 82,
"column": 13,
- "index": 2391
+ "index": 2895
},
"end": {
- "line": 70,
+ "line": 85,
"column": 3,
- "index": 2466
+ "index": 2970
}
},
{
@@ -124,14 +169,14 @@
"defaultMessage": "!!!To",
"file": "src/features/ReviewTx/common/hooks/useStrings.tsx",
"start": {
- "line": 71,
+ "line": 86,
"column": 18,
- "index": 2486
+ "index": 2990
},
"end": {
- "line": 74,
+ "line": 89,
"column": 3,
- "index": 2564
+ "index": 3068
}
},
{
@@ -139,14 +184,14 @@
"defaultMessage": "!!!To script",
"file": "src/features/ReviewTx/common/hooks/useStrings.tsx",
"start": {
- "line": 75,
+ "line": 90,
"column": 24,
- "index": 2590
+ "index": 3094
},
"end": {
- "line": 78,
+ "line": 93,
"column": 3,
- "index": 2681
+ "index": 3185
}
},
{
@@ -154,14 +199,14 @@
"defaultMessage": "!!!Inputs",
"file": "src/features/ReviewTx/common/hooks/useStrings.tsx",
"start": {
- "line": 79,
+ "line": 94,
"column": 20,
- "index": 2703
+ "index": 3207
},
"end": {
- "line": 82,
+ "line": 97,
"column": 3,
- "index": 2784
+ "index": 3288
}
},
{
@@ -169,14 +214,14 @@
"defaultMessage": "!!!Outputs",
"file": "src/features/ReviewTx/common/hooks/useStrings.tsx",
"start": {
- "line": 83,
+ "line": 98,
"column": 21,
- "index": 2807
+ "index": 3311
},
"end": {
- "line": 86,
+ "line": 101,
"column": 3,
- "index": 2890
+ "index": 3394
}
},
{
@@ -184,14 +229,14 @@
"defaultMessage": "!!!Your address",
"file": "src/features/ReviewTx/common/hooks/useStrings.tsx",
"start": {
- "line": 87,
+ "line": 102,
"column": 25,
- "index": 2917
+ "index": 3421
},
"end": {
- "line": 90,
+ "line": 105,
"column": 3,
- "index": 3009
+ "index": 3513
}
},
{
@@ -199,14 +244,14 @@
"defaultMessage": "!!!Foreign address",
"file": "src/features/ReviewTx/common/hooks/useStrings.tsx",
"start": {
- "line": 91,
+ "line": 106,
"column": 28,
- "index": 3039
+ "index": 3543
},
"end": {
- "line": 94,
+ "line": 109,
"column": 3,
- "index": 3137
+ "index": 3641
}
},
{
@@ -214,14 +259,14 @@
"defaultMessage": "!!!Overview",
"file": "src/features/ReviewTx/common/hooks/useStrings.tsx",
"start": {
- "line": 95,
+ "line": 110,
"column": 12,
- "index": 3151
+ "index": 3655
},
"end": {
- "line": 98,
+ "line": 113,
"column": 3,
- "index": 3242
+ "index": 3746
}
},
{
@@ -229,14 +274,14 @@
"defaultMessage": "!!!JSON",
"file": "src/features/ReviewTx/common/hooks/useStrings.tsx",
"start": {
- "line": 99,
+ "line": 114,
"column": 8,
- "index": 3252
+ "index": 3756
},
"end": {
- "line": 102,
+ "line": 117,
"column": 3,
- "index": 3335
+ "index": 3839
}
},
{
@@ -244,14 +289,14 @@
"defaultMessage": "!!!Metadata",
"file": "src/features/ReviewTx/common/hooks/useStrings.tsx",
"start": {
- "line": 103,
+ "line": 118,
"column": 12,
- "index": 3349
+ "index": 3853
},
"end": {
- "line": 106,
+ "line": 121,
"column": 3,
- "index": 3439
+ "index": 3943
}
},
{
@@ -259,14 +304,14 @@
"defaultMessage": "!!!Policy ID",
"file": "src/features/ReviewTx/common/hooks/useStrings.tsx",
"start": {
- "line": 107,
+ "line": 122,
"column": 12,
- "index": 3453
+ "index": 3957
},
"end": {
- "line": 110,
+ "line": 125,
"column": 3,
- "index": 3542
+ "index": 4046
}
},
{
@@ -274,14 +319,14 @@
"defaultMessage": "!!!Fingerprint",
"file": "src/features/ReviewTx/common/hooks/useStrings.tsx",
"start": {
- "line": 111,
+ "line": 126,
"column": 15,
- "index": 3559
+ "index": 4063
},
"end": {
- "line": 114,
+ "line": 129,
"column": 3,
- "index": 3653
+ "index": 4157
}
},
{
@@ -289,14 +334,14 @@
"defaultMessage": "!!!Name",
"file": "src/features/ReviewTx/common/hooks/useStrings.tsx",
"start": {
- "line": 115,
+ "line": 130,
"column": 8,
- "index": 3663
+ "index": 4167
},
"end": {
- "line": 118,
+ "line": 133,
"column": 3,
- "index": 3755
+ "index": 4259
}
},
{
@@ -304,14 +349,14 @@
"defaultMessage": "!!!Token Supply",
"file": "src/features/ReviewTx/common/hooks/useStrings.tsx",
"start": {
- "line": 119,
+ "line": 134,
"column": 15,
- "index": 3772
+ "index": 4276
},
"end": {
- "line": 122,
+ "line": 137,
"column": 3,
- "index": 3879
+ "index": 4383
}
},
{
@@ -319,14 +364,14 @@
"defaultMessage": "!!!Symbol",
"file": "src/features/ReviewTx/common/hooks/useStrings.tsx",
"start": {
- "line": 123,
+ "line": 138,
"column": 10,
- "index": 3891
+ "index": 4395
},
"end": {
- "line": 126,
+ "line": 141,
"column": 3,
- "index": 3987
+ "index": 4491
}
},
{
@@ -334,14 +379,14 @@
"defaultMessage": "!!!Description",
"file": "src/features/ReviewTx/common/hooks/useStrings.tsx",
"start": {
- "line": 127,
+ "line": 142,
"column": 15,
- "index": 4004
+ "index": 4508
},
"end": {
- "line": 130,
+ "line": 145,
"column": 3,
- "index": 4110
+ "index": 4614
}
},
{
@@ -349,14 +394,14 @@
"defaultMessage": "!!!Details on",
"file": "src/features/ReviewTx/common/hooks/useStrings.tsx",
"start": {
- "line": 131,
+ "line": 146,
"column": 11,
- "index": 4123
+ "index": 4627
},
"end": {
- "line": 134,
+ "line": 149,
"column": 3,
- "index": 4224
+ "index": 4728
}
},
{
@@ -364,14 +409,14 @@
"defaultMessage": "!!!Asset Details",
"file": "src/features/ReviewTx/common/hooks/useStrings.tsx",
"start": {
- "line": 135,
+ "line": 150,
"column": 21,
- "index": 4247
+ "index": 4751
},
"end": {
- "line": 138,
+ "line": 153,
"column": 3,
- "index": 4331
+ "index": 4835
}
}
]
\ No newline at end of file
diff --git a/apps/wallet-mobile/translations/messages/src/features/Settings/ApplicationSettings/ApplicationSettingsScreen.json b/apps/wallet-mobile/translations/messages/src/features/Settings/ApplicationSettings/ApplicationSettingsScreen.json
index 74e1f83c6b..36a1856b3a 100644
--- a/apps/wallet-mobile/translations/messages/src/features/Settings/ApplicationSettings/ApplicationSettingsScreen.json
+++ b/apps/wallet-mobile/translations/messages/src/features/Settings/ApplicationSettings/ApplicationSettingsScreen.json
@@ -6,12 +6,12 @@
"start": {
"line": 261,
"column": 11,
- "index": 9358
+ "index": 9388
},
"end": {
"line": 264,
"column": 3,
- "index": 9468
+ "index": 9498
}
},
{
@@ -21,12 +21,12 @@
"start": {
"line": 265,
"column": 21,
- "index": 9491
+ "index": 9521
},
"end": {
"line": 268,
"column": 3,
- "index": 9624
+ "index": 9654
}
},
{
@@ -36,12 +36,12 @@
"start": {
"line": 269,
"column": 18,
- "index": 9644
+ "index": 9674
},
"end": {
"line": 272,
"column": 3,
- "index": 9756
+ "index": 9786
}
},
{
@@ -51,12 +51,12 @@
"start": {
"line": 273,
"column": 15,
- "index": 9773
+ "index": 9803
},
"end": {
"line": 276,
"column": 3,
- "index": 9879
+ "index": 9909
}
},
{
@@ -66,12 +66,12 @@
"start": {
"line": 277,
"column": 22,
- "index": 9903
+ "index": 9933
},
"end": {
"line": 280,
"column": 3,
- "index": 10024
+ "index": 10054
}
},
{
@@ -81,12 +81,12 @@
"start": {
"line": 281,
"column": 9,
- "index": 10035
+ "index": 10065
},
"end": {
"line": 284,
"column": 3,
- "index": 10135
+ "index": 10165
}
},
{
@@ -96,12 +96,12 @@
"start": {
"line": 285,
"column": 18,
- "index": 10155
+ "index": 10185
},
"end": {
"line": 288,
"column": 3,
- "index": 10282
+ "index": 10312
}
},
{
@@ -111,12 +111,12 @@
"start": {
"line": 289,
"column": 13,
- "index": 10297
+ "index": 10327
},
"end": {
"line": 292,
"column": 3,
- "index": 10406
+ "index": 10436
}
},
{
@@ -126,12 +126,12 @@
"start": {
"line": 293,
"column": 15,
- "index": 10423
+ "index": 10453
},
"end": {
"line": 296,
"column": 3,
- "index": 10536
+ "index": 10566
}
},
{
@@ -141,12 +141,12 @@
"start": {
"line": 297,
"column": 19,
- "index": 10557
+ "index": 10587
},
"end": {
"line": 300,
"column": 3,
- "index": 10718
+ "index": 10748
}
},
{
@@ -156,12 +156,12 @@
"start": {
"line": 301,
"column": 20,
- "index": 10740
+ "index": 10770
},
"end": {
"line": 304,
"column": 3,
- "index": 10874
+ "index": 10904
}
},
{
@@ -171,12 +171,12 @@
"start": {
"line": 305,
"column": 24,
- "index": 10900
+ "index": 10930
},
"end": {
"line": 308,
"column": 3,
- "index": 11083
+ "index": 11113
}
},
{
@@ -186,12 +186,12 @@
"start": {
"line": 309,
"column": 18,
- "index": 11103
+ "index": 11133
},
"end": {
"line": 312,
"column": 3,
- "index": 11234
+ "index": 11264
}
},
{
@@ -201,12 +201,12 @@
"start": {
"line": 313,
"column": 22,
- "index": 11258
+ "index": 11288
},
"end": {
"line": 316,
"column": 3,
- "index": 11439
+ "index": 11469
}
},
{
@@ -216,12 +216,12 @@
"start": {
"line": 317,
"column": 13,
- "index": 11454
+ "index": 11484
},
"end": {
"line": 320,
"column": 3,
- "index": 11562
+ "index": 11592
}
},
{
@@ -231,12 +231,12 @@
"start": {
"line": 321,
"column": 17,
- "index": 11581
+ "index": 11611
},
"end": {
"line": 324,
"column": 3,
- "index": 11698
+ "index": 11728
}
},
{
@@ -246,12 +246,12 @@
"start": {
"line": 325,
"column": 17,
- "index": 11717
+ "index": 11747
},
"end": {
"line": 328,
"column": 3,
- "index": 11840
+ "index": 11870
}
},
{
@@ -261,12 +261,12 @@
"start": {
"line": 329,
"column": 21,
- "index": 11863
+ "index": 11893
},
"end": {
"line": 333,
"column": 3,
- "index": 12081
+ "index": 12111
}
},
{
@@ -276,12 +276,12 @@
"start": {
"line": 334,
"column": 11,
- "index": 12094
+ "index": 12124
},
"end": {
"line": 337,
"column": 3,
- "index": 12198
+ "index": 12228
}
}
]
\ No newline at end of file
diff --git a/apps/wallet-mobile/translations/messages/src/features/Settings/SettingsScreenNavigator.json b/apps/wallet-mobile/translations/messages/src/features/Settings/SettingsScreenNavigator.json
index 070d220f6c..31687f712a 100644
--- a/apps/wallet-mobile/translations/messages/src/features/Settings/SettingsScreenNavigator.json
+++ b/apps/wallet-mobile/translations/messages/src/features/Settings/SettingsScreenNavigator.json
@@ -4,14 +4,14 @@
"defaultMessage": "!!!Wallet",
"file": "src/features/Settings/SettingsScreenNavigator.tsx",
"start": {
- "line": 256,
+ "line": 262,
"column": 18,
- "index": 7773
+ "index": 8363
},
"end": {
- "line": 259,
+ "line": 265,
"column": 3,
- "index": 7871
+ "index": 8461
}
},
{
@@ -19,14 +19,14 @@
"defaultMessage": "!!!Application",
"file": "src/features/Settings/SettingsScreenNavigator.tsx",
"start": {
- "line": 260,
+ "line": 266,
"column": 15,
- "index": 7888
+ "index": 8478
},
"end": {
- "line": 263,
+ "line": 269,
"column": 3,
- "index": 7997
+ "index": 8587
}
},
{
@@ -34,14 +34,14 @@
"defaultMessage": "!!!Change PIN",
"file": "src/features/Settings/SettingsScreenNavigator.tsx",
"start": {
- "line": 264,
+ "line": 270,
"column": 24,
- "index": 8023
+ "index": 8613
},
"end": {
- "line": 267,
+ "line": 273,
"column": 3,
- "index": 8132
+ "index": 8722
}
},
{
@@ -49,14 +49,14 @@
"defaultMessage": "!!!Change spending password",
"file": "src/features/Settings/SettingsScreenNavigator.tsx",
"start": {
- "line": 268,
+ "line": 274,
"column": 23,
- "index": 8157
+ "index": 8747
},
"end": {
- "line": 271,
+ "line": 277,
"column": 3,
- "index": 8271
+ "index": 8861
}
},
{
@@ -64,14 +64,14 @@
"defaultMessage": "!!!Remove wallet",
"file": "src/features/Settings/SettingsScreenNavigator.tsx",
"start": {
- "line": 272,
+ "line": 278,
"column": 21,
- "index": 8294
+ "index": 8884
},
"end": {
- "line": 275,
+ "line": 281,
"column": 3,
- "index": 8395
+ "index": 8985
}
},
{
@@ -79,14 +79,14 @@
"defaultMessage": "!!!Terms of Service Agreement",
"file": "src/features/Settings/SettingsScreenNavigator.tsx",
"start": {
- "line": 276,
+ "line": 282,
"column": 23,
- "index": 8420
+ "index": 9010
},
"end": {
- "line": 279,
+ "line": 285,
"column": 3,
- "index": 8536
+ "index": 9126
}
},
{
@@ -94,14 +94,14 @@
"defaultMessage": "!!!Change wallet name",
"file": "src/features/Settings/SettingsScreenNavigator.tsx",
"start": {
- "line": 280,
+ "line": 286,
"column": 25,
- "index": 8563
+ "index": 9153
},
"end": {
- "line": 283,
+ "line": 289,
"column": 3,
- "index": 8667
+ "index": 9257
}
},
{
@@ -109,14 +109,14 @@
"defaultMessage": "!!!Support",
"file": "src/features/Settings/SettingsScreenNavigator.tsx",
"start": {
- "line": 284,
+ "line": 290,
"column": 16,
- "index": 8685
+ "index": 9275
},
"end": {
- "line": 287,
+ "line": 293,
"column": 3,
- "index": 8776
+ "index": 9366
}
},
{
@@ -124,14 +124,14 @@
"defaultMessage": "!!!Easy confirmation",
"file": "src/features/Settings/SettingsScreenNavigator.tsx",
"start": {
- "line": 288,
+ "line": 294,
"column": 31,
- "index": 8809
+ "index": 9399
},
"end": {
- "line": 291,
+ "line": 297,
"column": 3,
- "index": 8924
+ "index": 9514
}
},
{
@@ -139,14 +139,14 @@
"defaultMessage": "!!!Easy confirmation",
"file": "src/features/Settings/SettingsScreenNavigator.tsx",
"start": {
- "line": 292,
+ "line": 298,
"column": 32,
- "index": 8958
+ "index": 9548
},
"end": {
- "line": 295,
+ "line": 301,
"column": 3,
- "index": 9074
+ "index": 9664
}
},
{
@@ -154,14 +154,14 @@
"defaultMessage": "!!!Set PIN",
"file": "src/features/Settings/SettingsScreenNavigator.tsx",
"start": {
- "line": 296,
+ "line": 302,
"column": 18,
- "index": 9094
+ "index": 9684
},
"end": {
- "line": 299,
+ "line": 305,
"column": 3,
- "index": 9192
+ "index": 9782
}
},
{
@@ -169,14 +169,14 @@
"defaultMessage": "!!!Settings",
"file": "src/features/Settings/SettingsScreenNavigator.tsx",
"start": {
- "line": 300,
+ "line": 306,
"column": 17,
- "index": 9211
+ "index": 9801
},
"end": {
- "line": 303,
+ "line": 309,
"column": 3,
- "index": 9314
+ "index": 9904
}
},
{
@@ -184,14 +184,14 @@
"defaultMessage": "!!!Language",
"file": "src/features/Settings/SettingsScreenNavigator.tsx",
"start": {
- "line": 304,
+ "line": 310,
"column": 17,
- "index": 9333
+ "index": 9923
},
"end": {
- "line": 307,
+ "line": 313,
"column": 3,
- "index": 9431
+ "index": 10021
}
},
{
@@ -199,14 +199,14 @@
"defaultMessage": "!!!Theming",
"file": "src/features/Settings/SettingsScreenNavigator.tsx",
"start": {
- "line": 308,
+ "line": 314,
"column": 14,
- "index": 9447
+ "index": 10037
},
"end": {
- "line": 311,
+ "line": 317,
"column": 3,
- "index": 9541
+ "index": 10131
}
},
{
@@ -214,14 +214,14 @@
"defaultMessage": "!!!Network",
"file": "src/features/Settings/SettingsScreenNavigator.tsx",
"start": {
- "line": 312,
+ "line": 318,
"column": 16,
- "index": 9559
+ "index": 10149
},
"end": {
- "line": 315,
+ "line": 321,
"column": 3,
- "index": 9655
+ "index": 10245
}
},
{
@@ -229,14 +229,14 @@
"defaultMessage": "!!!App settings",
"file": "src/features/Settings/SettingsScreenNavigator.tsx",
"start": {
- "line": 316,
+ "line": 322,
"column": 20,
- "index": 9677
+ "index": 10267
},
"end": {
- "line": 319,
+ "line": 325,
"column": 3,
- "index": 9795
+ "index": 10385
}
},
{
@@ -244,14 +244,14 @@
"defaultMessage": "!!!About",
"file": "src/features/Settings/SettingsScreenNavigator.tsx",
"start": {
- "line": 320,
+ "line": 326,
"column": 14,
- "index": 9811
+ "index": 10401
},
"end": {
- "line": 323,
+ "line": 329,
"column": 3,
- "index": 9911
+ "index": 10501
}
},
{
@@ -259,14 +259,14 @@
"defaultMessage": "!!!Privacy Policy",
"file": "src/features/Settings/SettingsScreenNavigator.tsx",
"start": {
- "line": 324,
+ "line": 330,
"column": 22,
- "index": 9935
+ "index": 10525
},
"end": {
- "line": 327,
+ "line": 333,
"column": 3,
- "index": 10038
+ "index": 10628
}
},
{
@@ -274,14 +274,14 @@
"defaultMessage": "!!!Collateral",
"file": "src/features/Settings/SettingsScreenNavigator.tsx",
"start": {
- "line": 328,
+ "line": 334,
"column": 14,
- "index": 10054
+ "index": 10644
},
"end": {
- "line": 331,
+ "line": 337,
"column": 3,
- "index": 10125
+ "index": 10715
}
},
{
@@ -289,14 +289,14 @@
"defaultMessage": "!!!Log",
"file": "src/features/Settings/SettingsScreenNavigator.tsx",
"start": {
- "line": 332,
+ "line": 338,
"column": 18,
- "index": 10145
+ "index": 10735
},
"end": {
- "line": 335,
+ "line": 341,
"column": 3,
- "index": 10202
+ "index": 10792
}
}
]
\ No newline at end of file
diff --git a/apps/wallet-mobile/translations/messages/src/features/Settings/WalletSettings/WalletSettingsScreen.json b/apps/wallet-mobile/translations/messages/src/features/Settings/WalletSettings/WalletSettingsScreen.json
index 91a15ad429..f245bfae49 100644
--- a/apps/wallet-mobile/translations/messages/src/features/Settings/WalletSettings/WalletSettingsScreen.json
+++ b/apps/wallet-mobile/translations/messages/src/features/Settings/WalletSettings/WalletSettingsScreen.json
@@ -6,12 +6,12 @@
"start": {
"line": 214,
"column": 11,
- "index": 6741
+ "index": 6771
},
"end": {
"line": 217,
"column": 3,
- "index": 6839
+ "index": 6869
}
},
{
@@ -21,12 +21,12 @@
"start": {
"line": 218,
"column": 11,
- "index": 6852
+ "index": 6882
},
"end": {
"line": 221,
"column": 3,
- "index": 6950
+ "index": 6980
}
},
{
@@ -36,12 +36,12 @@
"start": {
"line": 222,
"column": 16,
- "index": 6968
+ "index": 6998
},
"end": {
"line": 225,
"column": 3,
- "index": 7077
+ "index": 7107
}
},
{
@@ -51,12 +51,12 @@
"start": {
"line": 226,
"column": 10,
- "index": 7089
+ "index": 7119
},
"end": {
"line": 229,
"column": 3,
- "index": 7185
+ "index": 7215
}
},
{
@@ -66,12 +66,12 @@
"start": {
"line": 230,
"column": 14,
- "index": 7201
+ "index": 7231
},
"end": {
"line": 233,
"column": 3,
- "index": 7306
+ "index": 7336
}
},
{
@@ -81,12 +81,12 @@
"start": {
"line": 234,
"column": 12,
- "index": 7320
+ "index": 7350
},
"end": {
"line": 237,
"column": 3,
- "index": 7420
+ "index": 7450
}
},
{
@@ -96,12 +96,12 @@
"start": {
"line": 238,
"column": 18,
- "index": 7440
+ "index": 7470
},
"end": {
"line": 241,
"column": 3,
- "index": 7562
+ "index": 7592
}
},
{
@@ -111,12 +111,12 @@
"start": {
"line": 242,
"column": 20,
- "index": 7584
+ "index": 7614
},
"end": {
"line": 245,
"column": 3,
- "index": 7713
+ "index": 7743
}
},
{
@@ -126,12 +126,12 @@
"start": {
"line": 246,
"column": 24,
- "index": 7739
+ "index": 7769
},
"end": {
"line": 249,
"column": 3,
- "index": 7901
+ "index": 7931
}
},
{
@@ -141,12 +141,12 @@
"start": {
"line": 250,
"column": 16,
- "index": 7919
+ "index": 7949
},
"end": {
"line": 253,
"column": 3,
- "index": 8028
+ "index": 8058
}
},
{
@@ -156,12 +156,12 @@
"start": {
"line": 254,
"column": 14,
- "index": 8044
+ "index": 8074
},
"end": {
"line": 257,
"column": 3,
- "index": 8115
+ "index": 8145
}
},
{
@@ -171,12 +171,12 @@
"start": {
"line": 258,
"column": 21,
- "index": 8138
+ "index": 8168
},
"end": {
"line": 261,
"column": 3,
- "index": 8224
+ "index": 8254
}
},
{
@@ -186,12 +186,12 @@
"start": {
"line": 262,
"column": 17,
- "index": 8243
+ "index": 8273
},
"end": {
"line": 265,
"column": 3,
- "index": 8321
+ "index": 8351
}
},
{
@@ -201,12 +201,12 @@
"start": {
"line": 266,
"column": 25,
- "index": 8348
+ "index": 8378
},
"end": {
"line": 269,
"column": 3,
- "index": 8479
+ "index": 8509
}
},
{
@@ -216,12 +216,12 @@
"start": {
"line": 271,
"column": 11,
- "index": 8540
+ "index": 8570
},
"end": {
"line": 274,
"column": 3,
- "index": 8606
+ "index": 8636
}
},
{
@@ -231,12 +231,12 @@
"start": {
"line": 275,
"column": 14,
- "index": 8622
+ "index": 8652
},
"end": {
"line": 278,
"column": 3,
- "index": 8728
+ "index": 8758
}
},
{
@@ -246,12 +246,12 @@
"start": {
"line": 279,
"column": 15,
- "index": 8745
+ "index": 8775
},
"end": {
"line": 282,
"column": 3,
- "index": 8856
+ "index": 8886
}
},
{
@@ -261,12 +261,12 @@
"start": {
"line": 283,
"column": 17,
- "index": 8875
+ "index": 8905
},
"end": {
"line": 286,
"column": 3,
- "index": 8990
+ "index": 9020
}
},
{
@@ -276,12 +276,12 @@
"start": {
"line": 287,
"column": 21,
- "index": 9013
+ "index": 9043
},
"end": {
"line": 290,
"column": 3,
- "index": 9133
+ "index": 9163
}
},
{
@@ -291,12 +291,12 @@
"start": {
"line": 291,
"column": 9,
- "index": 9144
+ "index": 9174
},
"end": {
"line": 294,
"column": 3,
- "index": 9238
+ "index": 9268
}
},
{
@@ -306,12 +306,12 @@
"start": {
"line": 295,
"column": 10,
- "index": 9250
+ "index": 9280
},
"end": {
"line": 298,
"column": 3,
- "index": 9352
+ "index": 9382
}
}
]
\ No newline at end of file
diff --git a/apps/wallet-mobile/translations/messages/src/features/Settings/useCases/changeAppSettings/About/About.json b/apps/wallet-mobile/translations/messages/src/features/Settings/useCases/changeAppSettings/About/About.json
new file mode 100644
index 0000000000..917c53445c
--- /dev/null
+++ b/apps/wallet-mobile/translations/messages/src/features/Settings/useCases/changeAppSettings/About/About.json
@@ -0,0 +1,107 @@
+[
+ {
+ "id": "global.currentVersion",
+ "defaultMessage": "!!!Current Version",
+ "file": "src/features/Settings/useCases/changeAppSettings/About/About.tsx",
+ "start": {
+ "line": 101,
+ "column": 18,
+ "index": 2616
+ },
+ "end": {
+ "line": 104,
+ "column": 3,
+ "index": 2696
+ }
+ },
+ {
+ "id": "global.commit",
+ "defaultMessage": "!!!Commit",
+ "file": "src/features/Settings/useCases/changeAppSettings/About/About.tsx",
+ "start": {
+ "line": 105,
+ "column": 10,
+ "index": 2708
+ },
+ "end": {
+ "line": 108,
+ "column": 3,
+ "index": 2771
+ }
+ },
+ {
+ "id": "global.network",
+ "defaultMessage": "!!!Network",
+ "file": "src/features/Settings/useCases/changeAppSettings/About/About.tsx",
+ "start": {
+ "line": 109,
+ "column": 11,
+ "index": 2784
+ },
+ "end": {
+ "line": 112,
+ "column": 3,
+ "index": 2849
+ }
+ },
+ {
+ "id": "components.settings.applicationsettingsscreen.walletType",
+ "defaultMessage": "!!!Wallet type",
+ "file": "src/features/Settings/useCases/changeAppSettings/About/About.tsx",
+ "start": {
+ "line": 113,
+ "column": 14,
+ "index": 2865
+ },
+ "end": {
+ "line": 116,
+ "column": 3,
+ "index": 2976
+ }
+ },
+ {
+ "id": "components.settings.walletsettingscreen.byronWallet",
+ "defaultMessage": "!!!Byron-era wallet",
+ "file": "src/features/Settings/useCases/changeAppSettings/About/About.tsx",
+ "start": {
+ "line": 117,
+ "column": 15,
+ "index": 2993
+ },
+ "end": {
+ "line": 120,
+ "column": 3,
+ "index": 3104
+ }
+ },
+ {
+ "id": "components.settings.walletsettingscreen.shelleyWallet",
+ "defaultMessage": "!!!Shelley-era wallet",
+ "file": "src/features/Settings/useCases/changeAppSettings/About/About.tsx",
+ "start": {
+ "line": 121,
+ "column": 17,
+ "index": 3123
+ },
+ "end": {
+ "line": 124,
+ "column": 3,
+ "index": 3238
+ }
+ },
+ {
+ "id": "components.settings.walletsettingscreen.unknownWalletType",
+ "defaultMessage": "!!!Unknown Wallet Type",
+ "file": "src/features/Settings/useCases/changeAppSettings/About/About.tsx",
+ "start": {
+ "line": 125,
+ "column": 21,
+ "index": 3261
+ },
+ "end": {
+ "line": 128,
+ "column": 3,
+ "index": 3381
+ }
+ }
+]
\ No newline at end of file
diff --git a/apps/wallet-mobile/translations/messages/src/features/Settings/useCases/changeAppSettings/ApplicationSettingsScreen.json b/apps/wallet-mobile/translations/messages/src/features/Settings/useCases/changeAppSettings/ApplicationSettingsScreen.json
new file mode 100644
index 0000000000..87bf1898bd
--- /dev/null
+++ b/apps/wallet-mobile/translations/messages/src/features/Settings/useCases/changeAppSettings/ApplicationSettingsScreen.json
@@ -0,0 +1,287 @@
+[
+ {
+ "id": "components.settings.applicationsettingsscreen.label.general",
+ "defaultMessage": "!!!General",
+ "file": "src/features/Settings/useCases/changeAppSettings/ApplicationSettingsScreen.tsx",
+ "start": {
+ "line": 261,
+ "column": 11,
+ "index": 9382
+ },
+ "end": {
+ "line": 264,
+ "column": 3,
+ "index": 9492
+ }
+ },
+ {
+ "id": "components.settings.applicationsettingsscreen.label.securityReporting",
+ "defaultMessage": "!!!Security & Reporting",
+ "file": "src/features/Settings/useCases/changeAppSettings/ApplicationSettingsScreen.tsx",
+ "start": {
+ "line": 265,
+ "column": 21,
+ "index": 9515
+ },
+ "end": {
+ "line": 268,
+ "column": 3,
+ "index": 9648
+ }
+ },
+ {
+ "id": "components.settings.applicationsettingsscreen.selectLanguage",
+ "defaultMessage": "!!!Language",
+ "file": "src/features/Settings/useCases/changeAppSettings/ApplicationSettingsScreen.tsx",
+ "start": {
+ "line": 269,
+ "column": 18,
+ "index": 9668
+ },
+ "end": {
+ "line": 272,
+ "column": 3,
+ "index": 9780
+ }
+ },
+ {
+ "id": "components.settings.applicationsettingsscreen.selectTheme",
+ "defaultMessage": "!!!Theme",
+ "file": "src/features/Settings/useCases/changeAppSettings/ApplicationSettingsScreen.tsx",
+ "start": {
+ "line": 273,
+ "column": 15,
+ "index": 9797
+ },
+ "end": {
+ "line": 276,
+ "column": 3,
+ "index": 9903
+ }
+ },
+ {
+ "id": "components.settings.applicationsettingsscreen.selectFiatCurrency",
+ "defaultMessage": "!!!Fiat Currency",
+ "file": "src/features/Settings/useCases/changeAppSettings/ApplicationSettingsScreen.tsx",
+ "start": {
+ "line": 277,
+ "column": 22,
+ "index": 9927
+ },
+ "end": {
+ "line": 280,
+ "column": 3,
+ "index": 10048
+ }
+ },
+ {
+ "id": "components.settings.applicationsettingsscreen.about",
+ "defaultMessage": "!!!About",
+ "file": "src/features/Settings/useCases/changeAppSettings/ApplicationSettingsScreen.tsx",
+ "start": {
+ "line": 281,
+ "column": 9,
+ "index": 10059
+ },
+ "end": {
+ "line": 284,
+ "column": 3,
+ "index": 10159
+ }
+ },
+ {
+ "id": "components.initialization.acepttermsofservicescreen.title",
+ "defaultMessage": "!!!Terms of Service Agreement",
+ "file": "src/features/Settings/useCases/changeAppSettings/ApplicationSettingsScreen.tsx",
+ "start": {
+ "line": 285,
+ "column": 18,
+ "index": 10179
+ },
+ "end": {
+ "line": 288,
+ "column": 3,
+ "index": 10306
+ }
+ },
+ {
+ "id": "components.settings.applicationsettingsscreen.changePin",
+ "defaultMessage": "!!!Change PIN",
+ "file": "src/features/Settings/useCases/changeAppSettings/ApplicationSettingsScreen.tsx",
+ "start": {
+ "line": 289,
+ "column": 13,
+ "index": 10321
+ },
+ "end": {
+ "line": 292,
+ "column": 3,
+ "index": 10430
+ }
+ },
+ {
+ "id": "components.settings.applicationsettingsscreen.privacyMode",
+ "defaultMessage": "!!!Hide balance",
+ "file": "src/features/Settings/useCases/changeAppSettings/ApplicationSettingsScreen.tsx",
+ "start": {
+ "line": 293,
+ "column": 15,
+ "index": 10447
+ },
+ "end": {
+ "line": 296,
+ "column": 3,
+ "index": 10560
+ }
+ },
+ {
+ "id": "components.settings.applicationsettingsscreen.privacyModeInfo",
+ "defaultMessage": "!!!This function will be applied to all wallets in your app",
+ "file": "src/features/Settings/useCases/changeAppSettings/ApplicationSettingsScreen.tsx",
+ "start": {
+ "line": 297,
+ "column": 19,
+ "index": 10581
+ },
+ "end": {
+ "line": 300,
+ "column": 3,
+ "index": 10742
+ }
+ },
+ {
+ "id": "components.settings.applicationsettingsscreen.biometricsSignIn",
+ "defaultMessage": "!!!Sign in with your biometrics",
+ "file": "src/features/Settings/useCases/changeAppSettings/ApplicationSettingsScreen.tsx",
+ "start": {
+ "line": 301,
+ "column": 20,
+ "index": 10764
+ },
+ "end": {
+ "line": 304,
+ "column": 3,
+ "index": 10898
+ }
+ },
+ {
+ "id": "components.settings.applicationsettingsscreen.biometricsSignInInfo",
+ "defaultMessage": "!!!Changes to this option will be reflected after restarting the application",
+ "file": "src/features/Settings/useCases/changeAppSettings/ApplicationSettingsScreen.tsx",
+ "start": {
+ "line": 305,
+ "column": 24,
+ "index": 10924
+ },
+ "end": {
+ "line": 308,
+ "column": 3,
+ "index": 11107
+ }
+ },
+ {
+ "id": "components.settings.applicationsettingsscreen.crashReporting",
+ "defaultMessage": "!!!Send crash report to Emurgo",
+ "file": "src/features/Settings/useCases/changeAppSettings/ApplicationSettingsScreen.tsx",
+ "start": {
+ "line": 309,
+ "column": 18,
+ "index": 11127
+ },
+ "end": {
+ "line": 312,
+ "column": 3,
+ "index": 11258
+ }
+ },
+ {
+ "id": "components.settings.applicationsettingsscreen.crashReportingInfo",
+ "defaultMessage": "!!!Changes to this option will be reflected after restarting the application",
+ "file": "src/features/Settings/useCases/changeAppSettings/ApplicationSettingsScreen.tsx",
+ "start": {
+ "line": 313,
+ "column": 22,
+ "index": 11282
+ },
+ "end": {
+ "line": 316,
+ "column": 3,
+ "index": 11463
+ }
+ },
+ {
+ "id": "components.settings.applicationsettingsscreen.analytics",
+ "defaultMessage": "!!!Analytics",
+ "file": "src/features/Settings/useCases/changeAppSettings/ApplicationSettingsScreen.tsx",
+ "start": {
+ "line": 317,
+ "column": 13,
+ "index": 11478
+ },
+ "end": {
+ "line": 320,
+ "column": 3,
+ "index": 11586
+ }
+ },
+ {
+ "id": "components.settings.applicationsettingsscreen.privacyPolicy",
+ "defaultMessage": "!!!Privacy Policy",
+ "file": "src/features/Settings/useCases/changeAppSettings/ApplicationSettingsScreen.tsx",
+ "start": {
+ "line": 321,
+ "column": 17,
+ "index": 11605
+ },
+ "end": {
+ "line": 324,
+ "column": 3,
+ "index": 11722
+ }
+ },
+ {
+ "id": "components.settings.applicationsettingsscreen.screenSharing",
+ "defaultMessage": "!!!Enable screensharing",
+ "file": "src/features/Settings/useCases/changeAppSettings/ApplicationSettingsScreen.tsx",
+ "start": {
+ "line": 325,
+ "column": 17,
+ "index": 11741
+ },
+ "end": {
+ "line": 328,
+ "column": 3,
+ "index": 11864
+ }
+ },
+ {
+ "id": "components.settings.applicationsettingsscreen.screenSharingInfo",
+ "defaultMessage": "!!!Changes to this option will enable you to make screenshots as well share your screen via third party apps",
+ "file": "src/features/Settings/useCases/changeAppSettings/ApplicationSettingsScreen.tsx",
+ "start": {
+ "line": 329,
+ "column": 21,
+ "index": 11887
+ },
+ "end": {
+ "line": 333,
+ "column": 3,
+ "index": 12105
+ }
+ },
+ {
+ "id": "components.settings.applicationsettingsscreen.network",
+ "defaultMessage": "!!!Network",
+ "file": "src/features/Settings/useCases/changeAppSettings/ApplicationSettingsScreen.tsx",
+ "start": {
+ "line": 334,
+ "column": 11,
+ "index": 12118
+ },
+ "end": {
+ "line": 337,
+ "column": 3,
+ "index": 12222
+ }
+ }
+]
\ No newline at end of file
diff --git a/apps/wallet-mobile/translations/messages/src/features/Settings/useCases/changeAppSettings/ChangeNetwork/strings.json b/apps/wallet-mobile/translations/messages/src/features/Settings/useCases/changeAppSettings/ChangeNetwork/strings.json
new file mode 100644
index 0000000000..ead5eeef8b
--- /dev/null
+++ b/apps/wallet-mobile/translations/messages/src/features/Settings/useCases/changeAppSettings/ChangeNetwork/strings.json
@@ -0,0 +1,122 @@
+[
+ {
+ "id": "components.settings.applicationsettingsscreen.network.notice.title",
+ "defaultMessage": "!!!What are the test networks?",
+ "file": "src/features/Settings/useCases/changeAppSettings/ChangeNetwork/strings.ts",
+ "start": {
+ "line": 23,
+ "column": 22,
+ "index": 967
+ },
+ "end": {
+ "line": 26,
+ "column": 3,
+ "index": 1104
+ }
+ },
+ {
+ "id": "components.settings.applicationsettingsscreen.network.notice.message",
+ "defaultMessage": "!!!The test networks serve as a platform for the community and developers to test products and experiments without risking real funds on the mainnet.",
+ "file": "src/features/Settings/useCases/changeAppSettings/ChangeNetwork/strings.ts",
+ "start": {
+ "line": 27,
+ "column": 24,
+ "index": 1130
+ },
+ "end": {
+ "line": 31,
+ "column": 3,
+ "index": 1394
+ }
+ },
+ {
+ "id": "components.settings.applicationsettingsscreen.network.notice.listTitle",
+ "defaultMessage": "!!!Key features of testnet coins:",
+ "file": "src/features/Settings/useCases/changeAppSettings/ChangeNetwork/strings.ts",
+ "start": {
+ "line": 32,
+ "column": 26,
+ "index": 1422
+ },
+ "end": {
+ "line": 35,
+ "column": 3,
+ "index": 1566
+ }
+ },
+ {
+ "id": "components.settings.applicationsettingsscreen.network.notice.list",
+ "defaultMessage": "!!! • Have no real value.\n • Are separate from the mainnet.\n • Cannot be sent to mainnet wallets.\n • Are easily obtainable from Cardano faucets.",
+ "file": "src/features/Settings/useCases/changeAppSettings/ChangeNetwork/strings.ts",
+ "start": {
+ "line": 36,
+ "column": 21,
+ "index": 1589
+ },
+ "end": {
+ "line": 40,
+ "column": 3,
+ "index": 1856
+ }
+ },
+ {
+ "id": "components.settings.applicationsettingsscreen.network.preparingNetworks",
+ "defaultMessage": "!!!Preparing network...",
+ "file": "src/features/Settings/useCases/changeAppSettings/ChangeNetwork/strings.ts",
+ "start": {
+ "line": 41,
+ "column": 20,
+ "index": 1878
+ },
+ "end": {
+ "line": 44,
+ "column": 3,
+ "index": 2013
+ }
+ },
+ {
+ "id": "components.settings.applicationsettingsscreen.network.notice.button",
+ "defaultMessage": "!!!I understand",
+ "file": "src/features/Settings/useCases/changeAppSettings/ChangeNetwork/strings.ts",
+ "start": {
+ "line": 45,
+ "column": 23,
+ "index": 2038
+ },
+ "end": {
+ "line": 48,
+ "column": 3,
+ "index": 2161
+ }
+ },
+ {
+ "id": "components.settings.applicationsettingsscreen.network.tag.modal.title",
+ "defaultMessage": "!!!Switch to Mainnet",
+ "file": "src/features/Settings/useCases/changeAppSettings/ChangeNetwork/strings.ts",
+ "start": {
+ "line": 49,
+ "column": 24,
+ "index": 2187
+ },
+ "end": {
+ "line": 52,
+ "column": 3,
+ "index": 2317
+ }
+ },
+ {
+ "id": "components.settings.applicationsettingsscreen.network.tag.modal.text",
+ "defaultMessage": "!!!Are you sure you want to switch back to the main Cardano Network?",
+ "file": "src/features/Settings/useCases/changeAppSettings/ChangeNetwork/strings.ts",
+ "start": {
+ "line": 53,
+ "column": 23,
+ "index": 2342
+ },
+ "end": {
+ "line": 56,
+ "column": 3,
+ "index": 2519
+ }
+ }
+]
\ No newline at end of file
diff --git a/apps/wallet-mobile/translations/messages/src/features/Settings/useCases/changeAppSettings/EnableLoginWithOs/EnableLoginWithOsScreen.json b/apps/wallet-mobile/translations/messages/src/features/Settings/useCases/changeAppSettings/EnableLoginWithOs/EnableLoginWithOsScreen.json
new file mode 100644
index 0000000000..51a155ad38
--- /dev/null
+++ b/apps/wallet-mobile/translations/messages/src/features/Settings/useCases/changeAppSettings/EnableLoginWithOs/EnableLoginWithOsScreen.json
@@ -0,0 +1,77 @@
+[
+ {
+ "id": "components.settings.biometricslinkscreen.notNowButton",
+ "defaultMessage": "!!!Not now",
+ "file": "src/features/Settings/useCases/changeAppSettings/EnableLoginWithOs/EnableLoginWithOsScreen.tsx",
+ "start": {
+ "line": 55,
+ "column": 16,
+ "index": 1669
+ },
+ "end": {
+ "line": 58,
+ "column": 3,
+ "index": 1773
+ }
+ },
+ {
+ "id": "components.settings.biometricslinkscreen.linkButton",
+ "defaultMessage": "!!!Link",
+ "file": "src/features/Settings/useCases/changeAppSettings/EnableLoginWithOs/EnableLoginWithOsScreen.tsx",
+ "start": {
+ "line": 59,
+ "column": 14,
+ "index": 1789
+ },
+ "end": {
+ "line": 62,
+ "column": 3,
+ "index": 1888
+ }
+ },
+ {
+ "id": "components.settings.biometricslinkscreen.heading",
+ "defaultMessage": "!!!Use your fingerprint",
+ "file": "src/features/Settings/useCases/changeAppSettings/EnableLoginWithOs/EnableLoginWithOsScreen.tsx",
+ "start": {
+ "line": 63,
+ "column": 11,
+ "index": 1901
+ },
+ "end": {
+ "line": 66,
+ "column": 3,
+ "index": 2013
+ }
+ },
+ {
+ "id": "components.settings.biometricslinkscreen.subHeading1",
+ "defaultMessage": "!!!for faster, easier access",
+ "file": "src/features/Settings/useCases/changeAppSettings/EnableLoginWithOs/EnableLoginWithOsScreen.tsx",
+ "start": {
+ "line": 67,
+ "column": 15,
+ "index": 2030
+ },
+ "end": {
+ "line": 70,
+ "column": 3,
+ "index": 2151
+ }
+ },
+ {
+ "id": "components.settings.biometricslinkscreen.subHeading2",
+ "defaultMessage": "!!!to your Yoroi wallet",
+ "file": "src/features/Settings/useCases/changeAppSettings/EnableLoginWithOs/EnableLoginWithOsScreen.tsx",
+ "start": {
+ "line": 71,
+ "column": 15,
+ "index": 2168
+ },
+ "end": {
+ "line": 74,
+ "column": 3,
+ "index": 2284
+ }
+ }
+]
\ No newline at end of file
diff --git a/apps/wallet-mobile/translations/messages/src/features/Settings/useCases/changeWalletSettings/ChangePassword/ChangePasswordScreen.json b/apps/wallet-mobile/translations/messages/src/features/Settings/useCases/changeWalletSettings/ChangePassword/ChangePasswordScreen.json
new file mode 100644
index 0000000000..b1c92cfe47
--- /dev/null
+++ b/apps/wallet-mobile/translations/messages/src/features/Settings/useCases/changeWalletSettings/ChangePassword/ChangePasswordScreen.json
@@ -0,0 +1,92 @@
+[
+ {
+ "id": "components.settings.changepasswordscreen.oldPasswordInputLabel",
+ "defaultMessage": "!!!Current password",
+ "file": "src/features/Settings/useCases/changeWalletSettings/ChangePassword/ChangePasswordScreen.tsx",
+ "start": {
+ "line": 115,
+ "column": 25,
+ "index": 4857
+ },
+ "end": {
+ "line": 118,
+ "column": 3,
+ "index": 4979
+ }
+ },
+ {
+ "id": "components.settings.changepasswordscreen.newPasswordInputLabel",
+ "defaultMessage": "!!!New password",
+ "file": "src/features/Settings/useCases/changeWalletSettings/ChangePassword/ChangePasswordScreen.tsx",
+ "start": {
+ "line": 119,
+ "column": 25,
+ "index": 5006
+ },
+ "end": {
+ "line": 122,
+ "column": 3,
+ "index": 5124
+ }
+ },
+ {
+ "id": "components.walletinit.createwallet.createwalletscreen.passwordLengthRequirement",
+ "defaultMessage": "!!!Minimum {requirePasswordLength} characters",
+ "file": "src/features/Settings/useCases/changeWalletSettings/ChangePassword/ChangePasswordScreen.tsx",
+ "start": {
+ "line": 123,
+ "column": 31,
+ "index": 5157
+ },
+ "end": {
+ "line": 126,
+ "column": 3,
+ "index": 5322
+ }
+ },
+ {
+ "id": "components.settings.changepasswordscreen.repeatPasswordInputLabel",
+ "defaultMessage": "!!!Repeat new password",
+ "file": "src/features/Settings/useCases/changeWalletSettings/ChangePassword/ChangePasswordScreen.tsx",
+ "start": {
+ "line": 127,
+ "column": 28,
+ "index": 5352
+ },
+ "end": {
+ "line": 130,
+ "column": 3,
+ "index": 5480
+ }
+ },
+ {
+ "id": "components.settings.changepasswordscreen.repeatPasswordInputNotMatchError",
+ "defaultMessage": "!!!Passwords do not match",
+ "file": "src/features/Settings/useCases/changeWalletSettings/ChangePassword/ChangePasswordScreen.tsx",
+ "start": {
+ "line": 131,
+ "column": 36,
+ "index": 5518
+ },
+ "end": {
+ "line": 134,
+ "column": 3,
+ "index": 5657
+ }
+ },
+ {
+ "id": "components.settings.changepasswordscreen.continueButton",
+ "defaultMessage": "!!!Change password",
+ "file": "src/features/Settings/useCases/changeWalletSettings/ChangePassword/ChangePasswordScreen.tsx",
+ "start": {
+ "line": 135,
+ "column": 18,
+ "index": 5677
+ },
+ "end": {
+ "line": 138,
+ "column": 3,
+ "index": 5791
+ }
+ }
+]
\ No newline at end of file
diff --git a/apps/wallet-mobile/translations/messages/src/features/Settings/useCases/changeWalletSettings/EasyConfirmation/DisableEasyConfirmationScreen.json b/apps/wallet-mobile/translations/messages/src/features/Settings/useCases/changeWalletSettings/EasyConfirmation/DisableEasyConfirmationScreen.json
new file mode 100644
index 0000000000..38b0bb4c23
--- /dev/null
+++ b/apps/wallet-mobile/translations/messages/src/features/Settings/useCases/changeWalletSettings/EasyConfirmation/DisableEasyConfirmationScreen.json
@@ -0,0 +1,32 @@
+[
+ {
+ "id": "components.settings.disableeasyconfirmationscreen.disableHeading",
+ "defaultMessage": "!!!By disabling this option you will be able to spend your assets only with your master password.",
+ "file": "src/features/Settings/useCases/changeWalletSettings/EasyConfirmation/DisableEasyConfirmationScreen.tsx",
+ "start": {
+ "line": 48,
+ "column": 18,
+ "index": 1554
+ },
+ "end": {
+ "line": 51,
+ "column": 3,
+ "index": 1756
+ }
+ },
+ {
+ "id": "components.settings.disableeasyconfirmationscreen.disableButton",
+ "defaultMessage": "!!!Disable",
+ "file": "src/features/Settings/useCases/changeWalletSettings/EasyConfirmation/DisableEasyConfirmationScreen.tsx",
+ "start": {
+ "line": 52,
+ "column": 17,
+ "index": 1775
+ },
+ "end": {
+ "line": 55,
+ "column": 3,
+ "index": 1889
+ }
+ }
+]
\ No newline at end of file
diff --git a/apps/wallet-mobile/translations/messages/src/features/Settings/useCases/changeWalletSettings/EasyConfirmation/EnableEasyConfirmationScreen.json b/apps/wallet-mobile/translations/messages/src/features/Settings/useCases/changeWalletSettings/EasyConfirmation/EnableEasyConfirmationScreen.json
new file mode 100644
index 0000000000..a5cc0bb4c8
--- /dev/null
+++ b/apps/wallet-mobile/translations/messages/src/features/Settings/useCases/changeWalletSettings/EasyConfirmation/EnableEasyConfirmationScreen.json
@@ -0,0 +1,62 @@
+[
+ {
+ "id": "components.settings.enableeasyconfirmationscreen.enableHeading",
+ "defaultMessage": "!!!This option will allow you to send transactions from your wallet just by confirming with fingerprint or face recognition with standard system fallback option. This makes your wallet less secure. This is a compromise between UX and security!",
+ "file": "src/features/Settings/useCases/changeWalletSettings/EasyConfirmation/EnableEasyConfirmationScreen.tsx",
+ "start": {
+ "line": 92,
+ "column": 17,
+ "index": 3287
+ },
+ "end": {
+ "line": 100,
+ "column": 3,
+ "index": 3683
+ }
+ },
+ {
+ "id": "components.settings.enableeasyconfirmationscreen.enableWarning",
+ "defaultMessage": "!!!Please remember your master password, as you may need it in case your biometrics data are removed from the device.",
+ "file": "src/features/Settings/useCases/changeWalletSettings/EasyConfirmation/EnableEasyConfirmationScreen.tsx",
+ "start": {
+ "line": 101,
+ "column": 17,
+ "index": 3702
+ },
+ "end": {
+ "line": 106,
+ "column": 3,
+ "index": 3939
+ }
+ },
+ {
+ "id": "components.settings.enableeasyconfirmationscreen.enableMasterPassword",
+ "defaultMessage": "!!!Master password",
+ "file": "src/features/Settings/useCases/changeWalletSettings/EasyConfirmation/EnableEasyConfirmationScreen.tsx",
+ "start": {
+ "line": 107,
+ "column": 22,
+ "index": 3963
+ },
+ "end": {
+ "line": 110,
+ "column": 3,
+ "index": 4091
+ }
+ },
+ {
+ "id": "components.settings.enableeasyconfirmationscreen.enableButton",
+ "defaultMessage": "!!!Enable",
+ "file": "src/features/Settings/useCases/changeWalletSettings/EasyConfirmation/EnableEasyConfirmationScreen.tsx",
+ "start": {
+ "line": 111,
+ "column": 16,
+ "index": 4109
+ },
+ "end": {
+ "line": 114,
+ "column": 3,
+ "index": 4220
+ }
+ }
+]
\ No newline at end of file
diff --git a/apps/wallet-mobile/translations/messages/src/features/Settings/useCases/changeWalletSettings/ManageCollateral/strings.json b/apps/wallet-mobile/translations/messages/src/features/Settings/useCases/changeWalletSettings/ManageCollateral/strings.json
new file mode 100644
index 0000000000..aa4df473f0
--- /dev/null
+++ b/apps/wallet-mobile/translations/messages/src/features/Settings/useCases/changeWalletSettings/ManageCollateral/strings.json
@@ -0,0 +1,197 @@
+[
+ {
+ "id": "components.settings.collateral.lockedAsCollateral",
+ "defaultMessage": "!!!Locked as collateral",
+ "file": "src/features/Settings/useCases/changeWalletSettings/ManageCollateral/strings.ts",
+ "start": {
+ "line": 23,
+ "column": 22,
+ "index": 1270
+ },
+ "end": {
+ "line": 26,
+ "column": 3,
+ "index": 1383
+ }
+ },
+ {
+ "id": "components.settings.collateral.removeCollateral",
+ "defaultMessage": "!!!If you want to return the amount locked as collateral to your balance press the remove icon",
+ "file": "src/features/Settings/useCases/changeWalletSettings/ManageCollateral/strings.ts",
+ "start": {
+ "line": 27,
+ "column": 20,
+ "index": 1405
+ },
+ "end": {
+ "line": 30,
+ "column": 3,
+ "index": 1587
+ }
+ },
+ {
+ "id": "components.settings.collateral.collateralSpent",
+ "defaultMessage": "!!!Your collateral is gone, please generate new collateral",
+ "file": "src/features/Settings/useCases/changeWalletSettings/ManageCollateral/strings.ts",
+ "start": {
+ "line": 31,
+ "column": 19,
+ "index": 1608
+ },
+ "end": {
+ "line": 34,
+ "column": 3,
+ "index": 1753
+ }
+ },
+ {
+ "id": "components.settings.collateral.generateCollateral",
+ "defaultMessage": "!!!Generate collateral",
+ "file": "src/features/Settings/useCases/changeWalletSettings/ManageCollateral/strings.ts",
+ "start": {
+ "line": 35,
+ "column": 22,
+ "index": 1777
+ },
+ "end": {
+ "line": 38,
+ "column": 3,
+ "index": 1889
+ }
+ },
+ {
+ "id": "components.settings.collateral.notEnoughFundsAlertTitle",
+ "defaultMessage": "!!!Not enough funds",
+ "file": "src/features/Settings/useCases/changeWalletSettings/ManageCollateral/strings.ts",
+ "start": {
+ "line": 39,
+ "column": 28,
+ "index": 1919
+ },
+ "end": {
+ "line": 42,
+ "column": 3,
+ "index": 2034
+ }
+ },
+ {
+ "id": "components.settings.collateral.notEnoughFundsAlertMessage",
+ "defaultMessage": "!!!We could not find enough funds in this wallet to create collateral.",
+ "file": "src/features/Settings/useCases/changeWalletSettings/ManageCollateral/strings.ts",
+ "start": {
+ "line": 43,
+ "column": 30,
+ "index": 2066
+ },
+ "end": {
+ "line": 46,
+ "column": 3,
+ "index": 2234
+ }
+ },
+ {
+ "id": "components.settings.collateral.notEnoughFundsAlertOK",
+ "defaultMessage": "!!!OK",
+ "file": "src/features/Settings/useCases/changeWalletSettings/ManageCollateral/strings.ts",
+ "start": {
+ "line": 47,
+ "column": 25,
+ "index": 2261
+ },
+ "end": {
+ "line": 50,
+ "column": 3,
+ "index": 2359
+ }
+ },
+ {
+ "id": "components.settings.collateral.collateralInfoModalLabel",
+ "defaultMessage": "!!!Collateral creation",
+ "file": "src/features/Settings/useCases/changeWalletSettings/ManageCollateral/strings.ts",
+ "start": {
+ "line": 51,
+ "column": 28,
+ "index": 2389
+ },
+ "end": {
+ "line": 54,
+ "column": 3,
+ "index": 2507
+ }
+ },
+ {
+ "id": "components.settings.collateral.collateralInfoModalTitle",
+ "defaultMessage": "!!!What is collateral?",
+ "file": "src/features/Settings/useCases/changeWalletSettings/ManageCollateral/strings.ts",
+ "start": {
+ "line": 55,
+ "column": 28,
+ "index": 2537
+ },
+ "end": {
+ "line": 58,
+ "column": 3,
+ "index": 2655
+ }
+ },
+ {
+ "id": "components.settings.collateral.collateralInfoModalText",
+ "defaultMessage": "!!!The collateral mechanism is an important feature that has been designed to ensure successful smart contract execution. It is used to guarantee that Cardano nodes are compensated for their work in case phase-2 validation fails.",
+ "file": "src/features/Settings/useCases/changeWalletSettings/ManageCollateral/strings.ts",
+ "start": {
+ "line": 59,
+ "column": 27,
+ "index": 2684
+ },
+ "end": {
+ "line": 63,
+ "column": 3,
+ "index": 3014
+ }
+ },
+ {
+ "id": "components.settings.collateral.initialCollateralInfoModalTitle",
+ "defaultMessage": "!!!Collateral creation",
+ "file": "src/features/Settings/useCases/changeWalletSettings/ManageCollateral/strings.ts",
+ "start": {
+ "line": 64,
+ "column": 35,
+ "index": 3051
+ },
+ "end": {
+ "line": 67,
+ "column": 3,
+ "index": 3176
+ }
+ },
+ {
+ "id": "components.settings.collateral.initialCollateralInfoModalText",
+ "defaultMessage": "!!!The collateral mechanism is designed to ensure smart contracts on Cardano execute successfully. It guarantees that nodes are compensated for their work if a contract fails during validation.",
+ "file": "src/features/Settings/useCases/changeWalletSettings/ManageCollateral/strings.ts",
+ "start": {
+ "line": 68,
+ "column": 34,
+ "index": 3212
+ },
+ "end": {
+ "line": 72,
+ "column": 3,
+ "index": 3513
+ }
+ },
+ {
+ "id": "components.settings.collateral.initialCollateralInfoModalButton",
+ "defaultMessage": "!!!Add collateral",
+ "file": "src/features/Settings/useCases/changeWalletSettings/ManageCollateral/strings.ts",
+ "start": {
+ "line": 73,
+ "column": 36,
+ "index": 3551
+ },
+ "end": {
+ "line": 76,
+ "column": 3,
+ "index": 3672
+ }
+ }
+]
\ No newline at end of file
diff --git a/apps/wallet-mobile/translations/messages/src/features/Settings/useCases/changeWalletSettings/RemoveWallet/RemoveWalletScreen.json b/apps/wallet-mobile/translations/messages/src/features/Settings/useCases/changeWalletSettings/RemoveWallet/RemoveWalletScreen.json
new file mode 100644
index 0000000000..0e0fd41374
--- /dev/null
+++ b/apps/wallet-mobile/translations/messages/src/features/Settings/useCases/changeWalletSettings/RemoveWallet/RemoveWalletScreen.json
@@ -0,0 +1,107 @@
+[
+ {
+ "id": "components.settings.removewalletscreen.descriptionParagraph1",
+ "defaultMessage": "!!!If you wish to permanently delete the wallet make sure you have written down the mnemonic.",
+ "file": "src/features/Settings/useCases/changeWalletSettings/RemoveWallet/RemoveWalletScreen.tsx",
+ "start": {
+ "line": 110,
+ "column": 25,
+ "index": 4019
+ },
+ "end": {
+ "line": 113,
+ "column": 3,
+ "index": 4213
+ }
+ },
+ {
+ "id": "components.settings.removewalletscreen.descriptionParagraph2",
+ "defaultMessage": "!!!To confirm this operation type the wallet name below.",
+ "file": "src/features/Settings/useCases/changeWalletSettings/RemoveWallet/RemoveWalletScreen.tsx",
+ "start": {
+ "line": 114,
+ "column": 25,
+ "index": 4240
+ },
+ "end": {
+ "line": 117,
+ "column": 3,
+ "index": 4397
+ }
+ },
+ {
+ "id": "components.settings.removewalletscreen.walletName",
+ "defaultMessage": "!!!Wallet name",
+ "file": "src/features/Settings/useCases/changeWalletSettings/RemoveWallet/RemoveWalletScreen.tsx",
+ "start": {
+ "line": 118,
+ "column": 14,
+ "index": 4413
+ },
+ "end": {
+ "line": 121,
+ "column": 3,
+ "index": 4517
+ }
+ },
+ {
+ "id": "components.settings.removewalletscreen.walletNameInput",
+ "defaultMessage": "!!!Wallet name",
+ "file": "src/features/Settings/useCases/changeWalletSettings/RemoveWallet/RemoveWalletScreen.tsx",
+ "start": {
+ "line": 122,
+ "column": 19,
+ "index": 4538
+ },
+ "end": {
+ "line": 125,
+ "column": 3,
+ "index": 4647
+ }
+ },
+ {
+ "id": "components.settings.removewalletscreen.walletNameMismatchError",
+ "defaultMessage": "!!!Wallet name does not match",
+ "file": "src/features/Settings/useCases/changeWalletSettings/RemoveWallet/RemoveWalletScreen.tsx",
+ "start": {
+ "line": 126,
+ "column": 27,
+ "index": 4676
+ },
+ "end": {
+ "line": 129,
+ "column": 3,
+ "index": 4808
+ }
+ },
+ {
+ "id": "components.settings.removewalletscreen.remove",
+ "defaultMessage": "!!!Remove wallet",
+ "file": "src/features/Settings/useCases/changeWalletSettings/RemoveWallet/RemoveWalletScreen.tsx",
+ "start": {
+ "line": 130,
+ "column": 10,
+ "index": 4820
+ },
+ "end": {
+ "line": 133,
+ "column": 3,
+ "index": 4922
+ }
+ },
+ {
+ "id": "components.settings.removewalletscreen.hasWrittenDownMnemonic",
+ "defaultMessage": "!!!I have written down mnemonic of this wallet and understand that I cannot recover the wallet without it.",
+ "file": "src/features/Settings/useCases/changeWalletSettings/RemoveWallet/RemoveWalletScreen.tsx",
+ "start": {
+ "line": 134,
+ "column": 26,
+ "index": 4950
+ },
+ "end": {
+ "line": 138,
+ "column": 3,
+ "index": 5164
+ }
+ }
+]
\ No newline at end of file
diff --git a/apps/wallet-mobile/translations/messages/src/features/Settings/useCases/changeWalletSettings/RenameWalletScreen/RenameWalletScreen.json b/apps/wallet-mobile/translations/messages/src/features/Settings/useCases/changeWalletSettings/RenameWalletScreen/RenameWalletScreen.json
new file mode 100644
index 0000000000..b5ca86d87b
--- /dev/null
+++ b/apps/wallet-mobile/translations/messages/src/features/Settings/useCases/changeWalletSettings/RenameWalletScreen/RenameWalletScreen.json
@@ -0,0 +1,32 @@
+[
+ {
+ "id": "components.settings.changewalletname.changeButton",
+ "defaultMessage": "!!!Change name",
+ "file": "src/features/Settings/useCases/changeWalletSettings/RenameWalletScreen/RenameWalletScreen.tsx",
+ "start": {
+ "line": 103,
+ "column": 16,
+ "index": 3350
+ },
+ "end": {
+ "line": 106,
+ "column": 3,
+ "index": 3454
+ }
+ },
+ {
+ "id": "components.settings.changewalletname.walletNameInputLabel",
+ "defaultMessage": "!!!Wallet name",
+ "file": "src/features/Settings/useCases/changeWalletSettings/RenameWalletScreen/RenameWalletScreen.tsx",
+ "start": {
+ "line": 107,
+ "column": 24,
+ "index": 3480
+ },
+ "end": {
+ "line": 110,
+ "column": 3,
+ "index": 3592
+ }
+ }
+]
\ No newline at end of file
diff --git a/apps/wallet-mobile/translations/messages/src/features/Settings/useCases/changeWalletSettings/SettingsScreenNavigator.json b/apps/wallet-mobile/translations/messages/src/features/Settings/useCases/changeWalletSettings/SettingsScreenNavigator.json
new file mode 100644
index 0000000000..cf42b784be
--- /dev/null
+++ b/apps/wallet-mobile/translations/messages/src/features/Settings/useCases/changeWalletSettings/SettingsScreenNavigator.json
@@ -0,0 +1,302 @@
+[
+ {
+ "id": "components.settings.walletsettingscreen.tabTitle",
+ "defaultMessage": "!!!Wallet",
+ "file": "src/features/Settings/useCases/changeWalletSettings/SettingsScreenNavigator.tsx",
+ "start": {
+ "line": 256,
+ "column": 18,
+ "index": 7895
+ },
+ "end": {
+ "line": 259,
+ "column": 3,
+ "index": 7993
+ }
+ },
+ {
+ "id": "components.settings.applicationsettingsscreen.tabTitle",
+ "defaultMessage": "!!!Application",
+ "file": "src/features/Settings/useCases/changeWalletSettings/SettingsScreenNavigator.tsx",
+ "start": {
+ "line": 260,
+ "column": 15,
+ "index": 8010
+ },
+ "end": {
+ "line": 263,
+ "column": 3,
+ "index": 8119
+ }
+ },
+ {
+ "id": "components.settings.applicationsettingsscreen.changePin",
+ "defaultMessage": "!!!Change PIN",
+ "file": "src/features/Settings/useCases/changeWalletSettings/SettingsScreenNavigator.tsx",
+ "start": {
+ "line": 264,
+ "column": 24,
+ "index": 8145
+ },
+ "end": {
+ "line": 267,
+ "column": 3,
+ "index": 8254
+ }
+ },
+ {
+ "id": "components.settings.changepasswordscreen.title",
+ "defaultMessage": "!!!Change spending password",
+ "file": "src/features/Settings/useCases/changeWalletSettings/SettingsScreenNavigator.tsx",
+ "start": {
+ "line": 268,
+ "column": 23,
+ "index": 8279
+ },
+ "end": {
+ "line": 271,
+ "column": 3,
+ "index": 8393
+ }
+ },
+ {
+ "id": "components.settings.removewalletscreen.title",
+ "defaultMessage": "!!!Remove wallet",
+ "file": "src/features/Settings/useCases/changeWalletSettings/SettingsScreenNavigator.tsx",
+ "start": {
+ "line": 272,
+ "column": 21,
+ "index": 8416
+ },
+ "end": {
+ "line": 275,
+ "column": 3,
+ "index": 8517
+ }
+ },
+ {
+ "id": "components.settings.termsofservicescreen.title",
+ "defaultMessage": "!!!Terms of Service Agreement",
+ "file": "src/features/Settings/useCases/changeWalletSettings/SettingsScreenNavigator.tsx",
+ "start": {
+ "line": 276,
+ "column": 23,
+ "index": 8542
+ },
+ "end": {
+ "line": 279,
+ "column": 3,
+ "index": 8658
+ }
+ },
+ {
+ "id": "components.settings.changewalletname.title",
+ "defaultMessage": "!!!Change wallet name",
+ "file": "src/features/Settings/useCases/changeWalletSettings/SettingsScreenNavigator.tsx",
+ "start": {
+ "line": 280,
+ "column": 25,
+ "index": 8685
+ },
+ "end": {
+ "line": 283,
+ "column": 3,
+ "index": 8789
+ }
+ },
+ {
+ "id": "components.settings.settingsscreen.title",
+ "defaultMessage": "!!!Support",
+ "file": "src/features/Settings/useCases/changeWalletSettings/SettingsScreenNavigator.tsx",
+ "start": {
+ "line": 284,
+ "column": 16,
+ "index": 8807
+ },
+ "end": {
+ "line": 287,
+ "column": 3,
+ "index": 8898
+ }
+ },
+ {
+ "id": "components.settings.enableeasyconfirmationscreen.title",
+ "defaultMessage": "!!!Easy confirmation",
+ "file": "src/features/Settings/useCases/changeWalletSettings/SettingsScreenNavigator.tsx",
+ "start": {
+ "line": 288,
+ "column": 31,
+ "index": 8931
+ },
+ "end": {
+ "line": 291,
+ "column": 3,
+ "index": 9046
+ }
+ },
+ {
+ "id": "components.settings.disableeasyconfirmationscreen.title",
+ "defaultMessage": "!!!Easy confirmation",
+ "file": "src/features/Settings/useCases/changeWalletSettings/SettingsScreenNavigator.tsx",
+ "start": {
+ "line": 292,
+ "column": 32,
+ "index": 9080
+ },
+ "end": {
+ "line": 295,
+ "column": 3,
+ "index": 9196
+ }
+ },
+ {
+ "id": "components.initialization.custompinscreen.title",
+ "defaultMessage": "!!!Set PIN",
+ "file": "src/features/Settings/useCases/changeWalletSettings/SettingsScreenNavigator.tsx",
+ "start": {
+ "line": 296,
+ "column": 18,
+ "index": 9216
+ },
+ "end": {
+ "line": 299,
+ "column": 3,
+ "index": 9314
+ }
+ },
+ {
+ "id": "components.settings.applicationsettingsscreen.title",
+ "defaultMessage": "!!!Settings",
+ "file": "src/features/Settings/useCases/changeWalletSettings/SettingsScreenNavigator.tsx",
+ "start": {
+ "line": 300,
+ "column": 17,
+ "index": 9333
+ },
+ "end": {
+ "line": 303,
+ "column": 3,
+ "index": 9436
+ }
+ },
+ {
+ "id": "components.settings.changelanguagescreen.title",
+ "defaultMessage": "!!!Language",
+ "file": "src/features/Settings/useCases/changeWalletSettings/SettingsScreenNavigator.tsx",
+ "start": {
+ "line": 304,
+ "column": 17,
+ "index": 9455
+ },
+ "end": {
+ "line": 307,
+ "column": 3,
+ "index": 9553
+ }
+ },
+ {
+ "id": "components.settings.changeThemescreen.title",
+ "defaultMessage": "!!!Theming",
+ "file": "src/features/Settings/useCases/changeWalletSettings/SettingsScreenNavigator.tsx",
+ "start": {
+ "line": 308,
+ "column": 14,
+ "index": 9569
+ },
+ "end": {
+ "line": 311,
+ "column": 3,
+ "index": 9663
+ }
+ },
+ {
+ "id": "components.settings.changeNetworkScreen.title",
+ "defaultMessage": "!!!Network",
+ "file": "src/features/Settings/useCases/changeWalletSettings/SettingsScreenNavigator.tsx",
+ "start": {
+ "line": 312,
+ "column": 16,
+ "index": 9681
+ },
+ "end": {
+ "line": 315,
+ "column": 3,
+ "index": 9777
+ }
+ },
+ {
+ "id": "components.settings.applicationsettingsscreen.appSettingsTitle",
+ "defaultMessage": "!!!App settings",
+ "file": "src/features/Settings/useCases/changeWalletSettings/SettingsScreenNavigator.tsx",
+ "start": {
+ "line": 316,
+ "column": 20,
+ "index": 9799
+ },
+ "end": {
+ "line": 319,
+ "column": 3,
+ "index": 9917
+ }
+ },
+ {
+ "id": "components.settings.applicationsettingsscreen.about",
+ "defaultMessage": "!!!About",
+ "file": "src/features/Settings/useCases/changeWalletSettings/SettingsScreenNavigator.tsx",
+ "start": {
+ "line": 320,
+ "column": 14,
+ "index": 9933
+ },
+ "end": {
+ "line": 323,
+ "column": 3,
+ "index": 10033
+ }
+ },
+ {
+ "id": "components.settings.privacypolicyscreen.title",
+ "defaultMessage": "!!!Privacy Policy",
+ "file": "src/features/Settings/useCases/changeWalletSettings/SettingsScreenNavigator.tsx",
+ "start": {
+ "line": 324,
+ "column": 22,
+ "index": 10057
+ },
+ "end": {
+ "line": 327,
+ "column": 3,
+ "index": 10160
+ }
+ },
+ {
+ "id": "global.collateral",
+ "defaultMessage": "!!!Collateral",
+ "file": "src/features/Settings/useCases/changeWalletSettings/SettingsScreenNavigator.tsx",
+ "start": {
+ "line": 328,
+ "column": 14,
+ "index": 10176
+ },
+ "end": {
+ "line": 331,
+ "column": 3,
+ "index": 10247
+ }
+ },
+ {
+ "id": "global.log",
+ "defaultMessage": "!!!Log",
+ "file": "src/features/Settings/useCases/changeWalletSettings/SettingsScreenNavigator.tsx",
+ "start": {
+ "line": 332,
+ "column": 18,
+ "index": 10267
+ },
+ "end": {
+ "line": 335,
+ "column": 3,
+ "index": 10324
+ }
+ }
+]
\ No newline at end of file
diff --git a/apps/wallet-mobile/translations/messages/src/features/Settings/useCases/changeWalletSettings/WalletSettingsScreen.json b/apps/wallet-mobile/translations/messages/src/features/Settings/useCases/changeWalletSettings/WalletSettingsScreen.json
new file mode 100644
index 0000000000..30115fdaed
--- /dev/null
+++ b/apps/wallet-mobile/translations/messages/src/features/Settings/useCases/changeWalletSettings/WalletSettingsScreen.json
@@ -0,0 +1,317 @@
+[
+ {
+ "id": "components.settings.walletsettingscreen.general",
+ "defaultMessage": "!!!General",
+ "file": "src/features/Settings/useCases/changeWalletSettings/WalletSettingsScreen.tsx",
+ "start": {
+ "line": 214,
+ "column": 11,
+ "index": 6780
+ },
+ "end": {
+ "line": 217,
+ "column": 3,
+ "index": 6878
+ }
+ },
+ {
+ "id": "components.settings.walletsettingscreen.actions",
+ "defaultMessage": "!!!Actions",
+ "file": "src/features/Settings/useCases/changeWalletSettings/WalletSettingsScreen.tsx",
+ "start": {
+ "line": 218,
+ "column": 11,
+ "index": 6891
+ },
+ "end": {
+ "line": 221,
+ "column": 3,
+ "index": 6989
+ }
+ },
+ {
+ "id": "components.settings.walletsettingscreen.switchWallet",
+ "defaultMessage": "!!!Switch wallet",
+ "file": "src/features/Settings/useCases/changeWalletSettings/WalletSettingsScreen.tsx",
+ "start": {
+ "line": 222,
+ "column": 16,
+ "index": 7007
+ },
+ "end": {
+ "line": 225,
+ "column": 3,
+ "index": 7116
+ }
+ },
+ {
+ "id": "components.settings.walletsettingscreen.logout",
+ "defaultMessage": "!!!Logout",
+ "file": "src/features/Settings/useCases/changeWalletSettings/WalletSettingsScreen.tsx",
+ "start": {
+ "line": 226,
+ "column": 10,
+ "index": 7128
+ },
+ "end": {
+ "line": 229,
+ "column": 3,
+ "index": 7224
+ }
+ },
+ {
+ "id": "components.settings.walletsettingscreen.walletName",
+ "defaultMessage": "!!!Wallet name",
+ "file": "src/features/Settings/useCases/changeWalletSettings/WalletSettingsScreen.tsx",
+ "start": {
+ "line": 230,
+ "column": 14,
+ "index": 7240
+ },
+ "end": {
+ "line": 233,
+ "column": 3,
+ "index": 7345
+ }
+ },
+ {
+ "id": "components.settings.walletsettingscreen.security",
+ "defaultMessage": "!!!Security",
+ "file": "src/features/Settings/useCases/changeWalletSettings/WalletSettingsScreen.tsx",
+ "start": {
+ "line": 234,
+ "column": 12,
+ "index": 7359
+ },
+ "end": {
+ "line": 237,
+ "column": 3,
+ "index": 7459
+ }
+ },
+ {
+ "id": "components.settings.walletsettingscreen.changePassword",
+ "defaultMessage": "!!!Change spending password",
+ "file": "src/features/Settings/useCases/changeWalletSettings/WalletSettingsScreen.tsx",
+ "start": {
+ "line": 238,
+ "column": 18,
+ "index": 7479
+ },
+ "end": {
+ "line": 241,
+ "column": 3,
+ "index": 7601
+ }
+ },
+ {
+ "id": "components.settings.walletsettingscreen.easyConfirmation",
+ "defaultMessage": "!!!Easy transaction confirmation",
+ "file": "src/features/Settings/useCases/changeWalletSettings/WalletSettingsScreen.tsx",
+ "start": {
+ "line": 242,
+ "column": 20,
+ "index": 7623
+ },
+ "end": {
+ "line": 245,
+ "column": 3,
+ "index": 7752
+ }
+ },
+ {
+ "id": "components.settings.walletsettingscreen.easyConfirmationInfo",
+ "defaultMessage": "!!!Skip the password and approve transactions with biometrics",
+ "file": "src/features/Settings/useCases/changeWalletSettings/WalletSettingsScreen.tsx",
+ "start": {
+ "line": 246,
+ "column": 24,
+ "index": 7778
+ },
+ "end": {
+ "line": 249,
+ "column": 3,
+ "index": 7940
+ }
+ },
+ {
+ "id": "components.settings.walletsettingscreen.removeWallet",
+ "defaultMessage": "!!!Remove wallet",
+ "file": "src/features/Settings/useCases/changeWalletSettings/WalletSettingsScreen.tsx",
+ "start": {
+ "line": 250,
+ "column": 16,
+ "index": 7958
+ },
+ "end": {
+ "line": 253,
+ "column": 3,
+ "index": 8067
+ }
+ },
+ {
+ "id": "global.collateral",
+ "defaultMessage": "!!!Collateral",
+ "file": "src/features/Settings/useCases/changeWalletSettings/WalletSettingsScreen.tsx",
+ "start": {
+ "line": 254,
+ "column": 14,
+ "index": 8083
+ },
+ "end": {
+ "line": 257,
+ "column": 3,
+ "index": 8154
+ }
+ },
+ {
+ "id": "global.multipleAddresses",
+ "defaultMessage": "!!!Multiple addresses",
+ "file": "src/features/Settings/useCases/changeWalletSettings/WalletSettingsScreen.tsx",
+ "start": {
+ "line": 258,
+ "column": 21,
+ "index": 8177
+ },
+ "end": {
+ "line": 261,
+ "column": 3,
+ "index": 8263
+ }
+ },
+ {
+ "id": "global.singleAddress",
+ "defaultMessage": "!!!Single address",
+ "file": "src/features/Settings/useCases/changeWalletSettings/WalletSettingsScreen.tsx",
+ "start": {
+ "line": 262,
+ "column": 17,
+ "index": 8282
+ },
+ "end": {
+ "line": 265,
+ "column": 3,
+ "index": 8360
+ }
+ },
+ {
+ "id": "global.multipleAddressesInfo",
+ "defaultMessage": "!!!By enabling this you can operate with more wallet addresses",
+ "file": "src/features/Settings/useCases/changeWalletSettings/WalletSettingsScreen.tsx",
+ "start": {
+ "line": 266,
+ "column": 25,
+ "index": 8387
+ },
+ "end": {
+ "line": 269,
+ "column": 3,
+ "index": 8518
+ }
+ },
+ {
+ "id": "global.network",
+ "defaultMessage": "!!!Network:",
+ "file": "src/features/Settings/useCases/changeWalletSettings/WalletSettingsScreen.tsx",
+ "start": {
+ "line": 271,
+ "column": 11,
+ "index": 8579
+ },
+ "end": {
+ "line": 274,
+ "column": 3,
+ "index": 8645
+ }
+ },
+ {
+ "id": "components.settings.walletsettingscreen.walletType",
+ "defaultMessage": "!!!Wallet type:",
+ "file": "src/features/Settings/useCases/changeWalletSettings/WalletSettingsScreen.tsx",
+ "start": {
+ "line": 275,
+ "column": 14,
+ "index": 8661
+ },
+ "end": {
+ "line": 278,
+ "column": 3,
+ "index": 8767
+ }
+ },
+ {
+ "id": "components.settings.walletsettingscreen.byronWallet",
+ "defaultMessage": "!!!Byron-era wallet",
+ "file": "src/features/Settings/useCases/changeWalletSettings/WalletSettingsScreen.tsx",
+ "start": {
+ "line": 279,
+ "column": 15,
+ "index": 8784
+ },
+ "end": {
+ "line": 282,
+ "column": 3,
+ "index": 8895
+ }
+ },
+ {
+ "id": "components.settings.walletsettingscreen.shelleyWallet",
+ "defaultMessage": "!!!Shelley-era wallet",
+ "file": "src/features/Settings/useCases/changeWalletSettings/WalletSettingsScreen.tsx",
+ "start": {
+ "line": 283,
+ "column": 17,
+ "index": 8914
+ },
+ "end": {
+ "line": 286,
+ "column": 3,
+ "index": 9029
+ }
+ },
+ {
+ "id": "components.settings.walletsettingscreen.unknownWalletType",
+ "defaultMessage": "!!!Unknown Wallet Type",
+ "file": "src/features/Settings/useCases/changeWalletSettings/WalletSettingsScreen.tsx",
+ "start": {
+ "line": 287,
+ "column": 21,
+ "index": 9052
+ },
+ "end": {
+ "line": 290,
+ "column": 3,
+ "index": 9172
+ }
+ },
+ {
+ "id": "components.settings.walletsettingscreen.about",
+ "defaultMessage": "!!!About",
+ "file": "src/features/Settings/useCases/changeWalletSettings/WalletSettingsScreen.tsx",
+ "start": {
+ "line": 291,
+ "column": 9,
+ "index": 9183
+ },
+ "end": {
+ "line": 294,
+ "column": 3,
+ "index": 9277
+ }
+ },
+ {
+ "id": "components.settings.walletsettingscreen.resyncWallet",
+ "defaultMessage": "!!!Resync",
+ "file": "src/features/Settings/useCases/changeWalletSettings/WalletSettingsScreen.tsx",
+ "start": {
+ "line": 295,
+ "column": 10,
+ "index": 9289
+ },
+ "end": {
+ "line": 298,
+ "column": 3,
+ "index": 9391
+ }
+ }
+]
\ No newline at end of file
diff --git a/apps/wallet-mobile/translations/messages/src/features/SetupWallet/SetupWalletNavigator.json b/apps/wallet-mobile/translations/messages/src/features/SetupWallet/SetupWalletNavigator.json
index deb5017b21..7d3438ed72 100644
--- a/apps/wallet-mobile/translations/messages/src/features/SetupWallet/SetupWalletNavigator.json
+++ b/apps/wallet-mobile/translations/messages/src/features/SetupWallet/SetupWalletNavigator.json
@@ -6,12 +6,12 @@
"start": {
"line": 138,
"column": 21,
- "index": 4870
+ "index": 4897
},
"end": {
"line": 141,
"column": 3,
- "index": 4972
+ "index": 4999
}
},
{
@@ -21,12 +21,12 @@
"start": {
"line": 142,
"column": 21,
- "index": 4995
+ "index": 5022
},
"end": {
"line": 145,
"column": 3,
- "index": 5111
+ "index": 5138
}
},
{
@@ -36,12 +36,12 @@
"start": {
"line": 146,
"column": 22,
- "index": 5135
+ "index": 5162
},
"end": {
"line": 149,
"column": 3,
- "index": 5254
+ "index": 5281
}
},
{
@@ -51,12 +51,12 @@
"start": {
"line": 150,
"column": 23,
- "index": 5279
+ "index": 5306
},
"end": {
"line": 153,
"column": 3,
- "index": 5393
+ "index": 5420
}
},
{
@@ -66,12 +66,12 @@
"start": {
"line": 154,
"column": 27,
- "index": 5422
+ "index": 5449
},
"end": {
"line": 157,
"column": 3,
- "index": 5541
+ "index": 5568
}
},
{
@@ -81,12 +81,12 @@
"start": {
"line": 158,
"column": 21,
- "index": 5564
+ "index": 5591
},
"end": {
"line": 161,
"column": 3,
- "index": 5682
+ "index": 5709
}
},
{
@@ -96,12 +96,12 @@
"start": {
"line": 162,
"column": 22,
- "index": 5706
+ "index": 5733
},
"end": {
"line": 165,
"column": 3,
- "index": 5825
+ "index": 5852
}
},
{
@@ -111,12 +111,12 @@
"start": {
"line": 166,
"column": 29,
- "index": 5856
+ "index": 5883
},
"end": {
"line": 169,
"column": 3,
- "index": 5970
+ "index": 5997
}
},
{
@@ -126,12 +126,12 @@
"start": {
"line": 170,
"column": 26,
- "index": 5998
+ "index": 6025
},
"end": {
"line": 173,
"column": 3,
- "index": 6125
+ "index": 6152
}
},
{
@@ -141,12 +141,12 @@
"start": {
"line": 174,
"column": 21,
- "index": 6148
+ "index": 6175
},
"end": {
"line": 177,
"column": 3,
- "index": 6274
+ "index": 6301
}
},
{
@@ -156,12 +156,12 @@
"start": {
"line": 178,
"column": 19,
- "index": 6295
+ "index": 6322
},
"end": {
"line": 181,
"column": 3,
- "index": 6419
+ "index": 6446
}
},
{
@@ -171,12 +171,12 @@
"start": {
"line": 182,
"column": 18,
- "index": 6439
+ "index": 6466
},
"end": {
"line": 185,
"column": 3,
- "index": 6562
+ "index": 6589
}
}
]
\ No newline at end of file
diff --git a/apps/wallet-mobile/translations/messages/src/features/Swap/common/strings.json b/apps/wallet-mobile/translations/messages/src/features/Swap/common/strings.json
index 3313b2a553..6b455f1c70 100644
--- a/apps/wallet-mobile/translations/messages/src/features/Swap/common/strings.json
+++ b/apps/wallet-mobile/translations/messages/src/features/Swap/common/strings.json
@@ -4,14 +4,14 @@
"defaultMessage": "!!!Swap fees include the following:\n • Matchmaker Fee\n • Frontend Fee\n • Liquidity Provider Fee",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 169,
+ "line": 170,
"column": 12,
- "index": 11024
+ "index": 11087
},
"end": {
- "line": 172,
+ "line": 173,
"column": 3,
- "index": 11187
+ "index": 11250
}
},
{
@@ -19,14 +19,14 @@
"defaultMessage": "!!!Incorrect password.",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 173,
+ "line": 174,
"column": 24,
- "index": 11213
+ "index": 11276
},
"end": {
- "line": 176,
+ "line": 177,
"column": 3,
- "index": 11322
+ "index": 11385
}
},
{
@@ -34,14 +34,29 @@
"defaultMessage": "!!!Swap",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 177,
+ "line": 178,
"column": 13,
- "index": 11337
+ "index": 11400
+ },
+ "end": {
+ "line": 181,
+ "column": 3,
+ "index": 11473
+ }
+ },
+ {
+ "id": "swap.swapScreen.swapDetailsTitle",
+ "defaultMessage": "!!!Swap details",
+ "file": "src/features/Swap/common/strings.ts",
+ "start": {
+ "line": 182,
+ "column": 20,
+ "index": 11495
},
"end": {
- "line": 180,
+ "line": 185,
"column": 3,
- "index": 11410
+ "index": 11583
}
},
{
@@ -49,14 +64,14 @@
"defaultMessage": "!!!Token swap",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 181,
+ "line": 186,
"column": 13,
- "index": 11425
+ "index": 11598
},
"end": {
- "line": 184,
+ "line": 189,
"column": 3,
- "index": 11507
+ "index": 11680
}
},
{
@@ -64,14 +79,14 @@
"defaultMessage": "!!!Orders",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 185,
+ "line": 190,
"column": 13,
- "index": 11522
+ "index": 11695
},
"end": {
- "line": 188,
+ "line": 193,
"column": 3,
- "index": 11601
+ "index": 11774
}
},
{
@@ -79,14 +94,14 @@
"defaultMessage": "!!!Market Button",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 189,
+ "line": 194,
"column": 16,
- "index": 11619
+ "index": 11792
},
"end": {
- "line": 192,
+ "line": 197,
"column": 3,
- "index": 11704
+ "index": 11877
}
},
{
@@ -94,14 +109,14 @@
"defaultMessage": "!!!Limit",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 193,
+ "line": 198,
"column": 15,
- "index": 11721
+ "index": 11894
},
"end": {
- "line": 196,
+ "line": 201,
"column": 3,
- "index": 11797
+ "index": 11970
}
},
{
@@ -109,14 +124,14 @@
"defaultMessage": "!!!Swap from",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 197,
+ "line": 202,
"column": 12,
- "index": 11811
+ "index": 11984
},
"end": {
- "line": 200,
+ "line": 205,
"column": 3,
- "index": 11888
+ "index": 12061
}
},
{
@@ -124,14 +139,14 @@
"defaultMessage": "!!!Swap to",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 201,
+ "line": 206,
"column": 10,
- "index": 11900
+ "index": 12073
},
"end": {
- "line": 204,
+ "line": 209,
"column": 3,
- "index": 11973
+ "index": 12146
}
},
{
@@ -139,14 +154,14 @@
"defaultMessage": "!!!Current Balance",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 205,
+ "line": 210,
"column": 18,
- "index": 11993
+ "index": 12166
},
"end": {
- "line": 208,
+ "line": 213,
"column": 3,
- "index": 12082
+ "index": 12255
}
},
{
@@ -154,14 +169,14 @@
"defaultMessage": "!!!Balance",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 209,
+ "line": 214,
"column": 11,
- "index": 12095
+ "index": 12268
},
"end": {
- "line": 212,
+ "line": 217,
"column": 3,
- "index": 12169
+ "index": 12342
}
},
{
@@ -169,14 +184,14 @@
"defaultMessage": "!!!Select Token",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 213,
+ "line": 218,
"column": 15,
- "index": 12186
+ "index": 12359
},
"end": {
- "line": 216,
+ "line": 221,
"column": 3,
- "index": 12269
+ "index": 12442
}
},
{
@@ -184,14 +199,14 @@
"defaultMessage": "!!!Market Price",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 217,
+ "line": 222,
"column": 15,
- "index": 12286
+ "index": 12459
},
"end": {
- "line": 220,
+ "line": 225,
"column": 3,
- "index": 12369
+ "index": 12542
}
},
{
@@ -199,14 +214,14 @@
"defaultMessage": "!!!Market price is the best price available on the market among several DEXes that lets you buy or sell an asset instantly.",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 221,
+ "line": 226,
"column": 19,
- "index": 12390
+ "index": 12563
},
"end": {
- "line": 225,
+ "line": 230,
"column": 3,
- "index": 12591
+ "index": 12764
}
},
{
@@ -214,14 +229,14 @@
"defaultMessage": "!!!Limit price in a DEX is a specific pre-set price at which you can trade an asset. Unlike market orders, which execute immediately at the current market price, limit orders are set to execute only when the market reaches the trader's specified price.",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 226,
+ "line": 231,
"column": 18,
- "index": 12611
+ "index": 12784
},
"end": {
- "line": 230,
+ "line": 235,
"column": 3,
- "index": 12940
+ "index": 13113
}
},
{
@@ -229,14 +244,14 @@
"defaultMessage": "!!!Limit Price",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 231,
+ "line": 236,
"column": 14,
- "index": 12956
+ "index": 13129
},
"end": {
- "line": 234,
+ "line": 239,
"column": 3,
- "index": 13037
+ "index": 13210
}
},
{
@@ -244,14 +259,14 @@
"defaultMessage": "!!!Slippage Tolerance",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 235,
+ "line": 240,
"column": 21,
- "index": 13060
+ "index": 13233
},
"end": {
- "line": 238,
+ "line": 243,
"column": 3,
- "index": 13155
+ "index": 13328
}
},
{
@@ -259,14 +274,14 @@
"defaultMessage": "!!!Slippage must be a number between 0 and 75 and have up to 1 decimal",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 239,
+ "line": 244,
"column": 26,
- "index": 13183
+ "index": 13356
},
"end": {
- "line": 242,
+ "line": 247,
"column": 3,
- "index": 13332
+ "index": 13505
}
},
{
@@ -274,14 +289,14 @@
"defaultMessage": "!!!Slippage Tolerance Info",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 243,
+ "line": 248,
"column": 25,
- "index": 13359
+ "index": 13532
},
"end": {
- "line": 246,
+ "line": 251,
"column": 3,
- "index": 13463
+ "index": 13636
}
},
{
@@ -289,14 +304,14 @@
"defaultMessage": "!!!Verified by {pool}",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 247,
+ "line": 252,
"column": 14,
- "index": 13479
+ "index": 13652
},
"end": {
- "line": 250,
+ "line": 255,
"column": 3,
- "index": 13567
+ "index": 13740
}
},
{
@@ -304,14 +319,14 @@
"defaultMessage": "!!!This asset is in my portfolio",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 251,
+ "line": 256,
"column": 12,
- "index": 13581
+ "index": 13754
},
"end": {
- "line": 254,
+ "line": 259,
"column": 3,
- "index": 13678
+ "index": 13851
}
},
{
@@ -319,14 +334,14 @@
"defaultMessage": "!!!Slippage tolerance is set as a percentage of the total swap value.",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 255,
+ "line": 260,
"column": 16,
- "index": 13696
+ "index": 13869
},
"end": {
- "line": 258,
+ "line": 263,
"column": 3,
- "index": 13834
+ "index": 14007
}
},
{
@@ -334,14 +349,14 @@
"defaultMessage": "!!!(auto)",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 259,
+ "line": 264,
"column": 12,
- "index": 13848
+ "index": 14021
},
"end": {
- "line": 262,
+ "line": 267,
"column": 3,
- "index": 13922
+ "index": 14095
}
},
{
@@ -349,14 +364,14 @@
"defaultMessage": "!!!change dex",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 263,
+ "line": 268,
"column": 14,
- "index": 13938
+ "index": 14111
},
"end": {
- "line": 266,
+ "line": 271,
"column": 3,
- "index": 14018
+ "index": 14191
}
},
{
@@ -364,14 +379,14 @@
"defaultMessage": "!!!Min-ADA is the minimum ADA amount required to be contained when holding or sending Cardano native assets.",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 267,
+ "line": 272,
"column": 14,
- "index": 14034
+ "index": 14207
},
"end": {
- "line": 271,
+ "line": 276,
"column": 3,
- "index": 14215
+ "index": 14388
}
},
{
@@ -379,14 +394,14 @@
"defaultMessage": "!!!Min ADA",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 272,
+ "line": 277,
"column": 19,
- "index": 14236
+ "index": 14409
},
"end": {
- "line": 275,
+ "line": 280,
"column": 3,
- "index": 14318
+ "index": 14491
}
},
{
@@ -394,14 +409,14 @@
"defaultMessage": "!!!Swap is not available on testnet",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 276,
+ "line": 281,
"column": 22,
- "index": 14342
+ "index": 14515
},
"end": {
- "line": 279,
+ "line": 284,
"column": 3,
- "index": 14452
+ "index": 14625
}
},
{
@@ -409,14 +424,14 @@
"defaultMessage": "!!!Switch to mainnet if you want to use the feature and swap real tokens",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 280,
+ "line": 285,
"column": 21,
- "index": 14475
+ "index": 14648
},
"end": {
- "line": 283,
+ "line": 288,
"column": 3,
- "index": 14621
+ "index": 14794
}
},
{
@@ -424,14 +439,14 @@
"defaultMessage": "!!!Swap is not available on sanchonet",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 284,
+ "line": 289,
"column": 21,
- "index": 14644
+ "index": 14817
},
"end": {
- "line": 287,
+ "line": 292,
"column": 3,
- "index": 14755
+ "index": 14928
}
},
{
@@ -439,14 +454,14 @@
"defaultMessage": "!!!Switch to mainnet if you want to use the feature and swap real tokens",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 288,
+ "line": 293,
"column": 20,
- "index": 14777
+ "index": 14950
},
"end": {
- "line": 291,
+ "line": 296,
"column": 3,
- "index": 14922
+ "index": 15095
}
},
{
@@ -454,14 +469,14 @@
"defaultMessage": "!!!Fees",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 292,
+ "line": 297,
"column": 17,
- "index": 14941
+ "index": 15114
},
"end": {
- "line": 295,
+ "line": 300,
"column": 3,
- "index": 15018
+ "index": 15191
}
},
{
@@ -469,29 +484,29 @@
"defaultMessage": "!!!Liquidity provider fee",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 296,
+ "line": 301,
"column": 20,
- "index": 15040
+ "index": 15213
},
"end": {
- "line": 299,
+ "line": 304,
"column": 3,
- "index": 15138
+ "index": 15311
}
},
{
"id": "swap.swapScreen.swapLiqProvFee",
- "defaultMessage": "!!!Liq. prov. fee",
+ "defaultMessage": "!!!Liquidity provider fee",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 300,
+ "line": 305,
"column": 18,
- "index": 15158
+ "index": 15331
},
"end": {
- "line": 303,
+ "line": 308,
"column": 3,
- "index": 15246
+ "index": 15427
}
},
{
@@ -499,14 +514,14 @@
"defaultMessage": "!!!Liquidity provider fee is a fixed {fee}% operational fee from the whole transaction volume, that is taken to support DEX “liquidity” allowing traders to buy and sell assets on the decentralized Cardano network.",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 304,
+ "line": 309,
"column": 24,
- "index": 15272
+ "index": 15453
},
"end": {
- "line": 308,
+ "line": 313,
"column": 3,
- "index": 15575
+ "index": 15756
}
},
{
@@ -514,14 +529,14 @@
"defaultMessage": "!!!Minimum amount of assets you can get because of the slippage tolerance.",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 309,
+ "line": 314,
"column": 19,
- "index": 15596
+ "index": 15777
},
"end": {
- "line": 312,
+ "line": 317,
"column": 3,
- "index": 15742
+ "index": 15923
}
},
{
@@ -529,14 +544,14 @@
"defaultMessage": "!!!Min Received",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 313,
+ "line": 318,
"column": 24,
- "index": 15768
+ "index": 15949
},
"end": {
- "line": 316,
+ "line": 321,
"column": 3,
- "index": 15860
+ "index": 16041
}
},
{
@@ -544,14 +559,14 @@
"defaultMessage": "!!!Enter a value from 0% to 75%. You can also enter up to 1 decimal",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 317,
+ "line": 322,
"column": 17,
- "index": 15879
+ "index": 16060
},
"end": {
- "line": 320,
+ "line": 325,
"column": 3,
- "index": 16016
+ "index": 16197
}
},
{
@@ -559,14 +574,14 @@
"defaultMessage": "!!!{pool} verification",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 321,
+ "line": 326,
"column": 20,
- "index": 16038
+ "index": 16219
},
"end": {
- "line": 324,
+ "line": 329,
"column": 3,
- "index": 16133
+ "index": 16314
}
},
{
@@ -574,14 +589,14 @@
"defaultMessage": "!!!Volume, 24h",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 325,
+ "line": 330,
"column": 10,
- "index": 16145
+ "index": 16326
},
"end": {
- "line": 328,
+ "line": 333,
"column": 3,
- "index": 16222
+ "index": 16403
}
},
{
@@ -589,14 +604,14 @@
"defaultMessage": "!!!Cardano projects that list their own tokens can apply for an additional {pool} verification. This verification is a manual validation that {pool} team performs with the help of Cardano Foundation.",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 329,
+ "line": 334,
"column": 24,
- "index": 16248
+ "index": 16429
},
"end": {
- "line": 333,
+ "line": 338,
"column": 3,
- "index": 16530
+ "index": 16711
}
},
{
@@ -604,14 +619,14 @@
"defaultMessage": "!!! Price",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 334,
+ "line": 339,
"column": 9,
- "index": 16541
+ "index": 16722
},
"end": {
- "line": 337,
+ "line": 342,
"column": 3,
- "index": 16603
+ "index": 16784
}
},
{
@@ -619,14 +634,14 @@
"defaultMessage": "!!!No assets found for this pair",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 338,
+ "line": 343,
"column": 17,
- "index": 16622
+ "index": 16803
},
"end": {
- "line": 341,
+ "line": 346,
"column": 3,
- "index": 16724
+ "index": 16905
}
},
{
@@ -634,14 +649,14 @@
"defaultMessage": "!!!No assets found for \"{search}\"",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 342,
+ "line": 347,
"column": 20,
- "index": 16746
+ "index": 16927
},
"end": {
- "line": 345,
+ "line": 350,
"column": 3,
- "index": 16852
+ "index": 17033
}
},
{
@@ -649,14 +664,14 @@
"defaultMessage": "!!!Each verified tokens gets",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 346,
+ "line": 351,
"column": 21,
- "index": 16875
+ "index": 17056
},
"end": {
- "line": 349,
+ "line": 354,
"column": 3,
- "index": 16977
+ "index": 17158
}
},
{
@@ -664,14 +679,14 @@
"defaultMessage": "!!!verified badge",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 350,
+ "line": 355,
"column": 17,
- "index": 16996
+ "index": 17177
},
"end": {
- "line": 353,
+ "line": 358,
"column": 3,
- "index": 17083
+ "index": 17264
}
},
{
@@ -679,14 +694,14 @@
"defaultMessage": "!!!Open orders",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 354,
+ "line": 359,
"column": 14,
- "index": 17099
+ "index": 17280
},
"end": {
- "line": 357,
+ "line": 362,
"column": 3,
- "index": 17180
+ "index": 17361
}
},
{
@@ -694,14 +709,14 @@
"defaultMessage": "!!!Completed orders",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 358,
+ "line": 363,
"column": 19,
- "index": 17201
+ "index": 17382
},
"end": {
- "line": 361,
+ "line": 366,
"column": 3,
- "index": 17292
+ "index": 17473
}
},
{
@@ -709,14 +724,14 @@
"defaultMessage": "!!!TVL",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 362,
+ "line": 367,
"column": 7,
- "index": 17301
+ "index": 17482
},
"end": {
- "line": 365,
+ "line": 370,
"column": 3,
- "index": 17367
+ "index": 17548
}
},
{
@@ -724,14 +739,14 @@
"defaultMessage": "!!! Dex Fee",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 366,
+ "line": 371,
"column": 11,
- "index": 17380
+ "index": 17561
},
"end": {
- "line": 369,
+ "line": 374,
"column": 3,
- "index": 17455
+ "index": 17636
}
},
{
@@ -739,14 +754,14 @@
"defaultMessage": "!!! Batcher Fee",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 370,
+ "line": 375,
"column": 14,
- "index": 17471
+ "index": 17652
},
"end": {
- "line": 373,
+ "line": 378,
"column": 3,
- "index": 17553
+ "index": 17734
}
},
{
@@ -754,14 +769,14 @@
"defaultMessage": "!!!Limit price",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 374,
+ "line": 379,
"column": 26,
- "index": 17581
+ "index": 17762
},
"end": {
- "line": 377,
+ "line": 382,
"column": 3,
- "index": 17674
+ "index": 17855
}
},
{
@@ -769,14 +784,14 @@
"defaultMessage": "!!!Are you sure you want to proceed this order with the limit price that is 10% or more higher than the\nmarket price?",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 378,
+ "line": 383,
"column": 32,
- "index": 17708
+ "index": 17889
},
"end": {
- "line": 383,
+ "line": 388,
"column": 3,
- "index": 17928
+ "index": 18109
}
},
{
@@ -784,14 +799,14 @@
"defaultMessage": "!!!Your limit price",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 384,
+ "line": 389,
"column": 30,
- "index": 17960
+ "index": 18141
},
"end": {
- "line": 387,
+ "line": 392,
"column": 3,
- "index": 18062
+ "index": 18243
}
},
{
@@ -799,14 +814,14 @@
"defaultMessage": "!!!Market price",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 388,
+ "line": 393,
"column": 32,
- "index": 18096
+ "index": 18277
},
"end": {
- "line": 391,
+ "line": 396,
"column": 3,
- "index": 18196
+ "index": 18377
}
},
{
@@ -814,14 +829,14 @@
"defaultMessage": "!!!Back",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 392,
+ "line": 397,
"column": 25,
- "index": 18223
+ "index": 18404
},
"end": {
- "line": 395,
+ "line": 400,
"column": 3,
- "index": 18308
+ "index": 18489
}
},
{
@@ -829,14 +844,14 @@
"defaultMessage": "!!!Swap",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 396,
+ "line": 401,
"column": 28,
- "index": 18338
+ "index": 18519
},
"end": {
- "line": 399,
+ "line": 404,
"column": 3,
- "index": 18426
+ "index": 18607
}
},
{
@@ -844,14 +859,14 @@
"defaultMessage": "!!!Transaction submitted",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 400,
+ "line": 405,
"column": 21,
- "index": 18449
+ "index": 18630
},
"end": {
- "line": 403,
+ "line": 408,
"column": 3,
- "index": 18547
+ "index": 18728
}
},
{
@@ -859,14 +874,14 @@
"defaultMessage": "!!!Your transactions will be displayed both in the list of transaction and Open swap orders",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 404,
+ "line": 409,
"column": 22,
- "index": 18571
+ "index": 18752
},
"end": {
- "line": 407,
+ "line": 412,
"column": 3,
- "index": 18737
+ "index": 18918
}
},
{
@@ -874,14 +889,14 @@
"defaultMessage": "!!! dex",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 408,
+ "line": 413,
"column": 7,
- "index": 18746
+ "index": 18927
},
"end": {
- "line": 411,
+ "line": 416,
"column": 3,
- "index": 18813
+ "index": 18994
}
},
{
@@ -889,14 +904,14 @@
"defaultMessage": "!!!see on explorer",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 412,
+ "line": 417,
"column": 17,
- "index": 18832
+ "index": 19013
},
"end": {
- "line": 415,
+ "line": 420,
"column": 3,
- "index": 18920
+ "index": 19101
}
},
{
@@ -904,14 +919,14 @@
"defaultMessage": "!!!Asset",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 416,
+ "line": 421,
"column": 9,
- "index": 18931
+ "index": 19112
},
"end": {
- "line": 419,
+ "line": 424,
"column": 3,
- "index": 19004
+ "index": 19185
}
},
{
@@ -919,14 +934,14 @@
"defaultMessage": "!!!Clear",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 420,
+ "line": 425,
"column": 9,
- "index": 19015
+ "index": 19196
},
"end": {
- "line": 423,
+ "line": 428,
"column": 3,
- "index": 19076
+ "index": 19257
}
},
{
@@ -934,14 +949,14 @@
"defaultMessage": "!!!Sign transaction",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 424,
+ "line": 429,
"column": 19,
- "index": 19097
+ "index": 19278
},
"end": {
- "line": 427,
+ "line": 432,
"column": 3,
- "index": 19179
+ "index": 19360
}
},
{
@@ -949,14 +964,14 @@
"defaultMessage": "!!!Spending Password",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 428,
+ "line": 433,
"column": 20,
- "index": 19201
+ "index": 19382
},
"end": {
- "line": 431,
+ "line": 436,
"column": 3,
- "index": 19285
+ "index": 19466
}
},
{
@@ -964,14 +979,14 @@
"defaultMessage": "!!!Enter spending password to sign this transaction",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 432,
+ "line": 437,
"column": 25,
- "index": 19312
+ "index": 19493
},
"end": {
- "line": 435,
+ "line": 440,
"column": 3,
- "index": 19432
+ "index": 19613
}
},
{
@@ -979,14 +994,14 @@
"defaultMessage": "!!!Sign",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 436,
+ "line": 441,
"column": 8,
- "index": 19442
+ "index": 19623
},
"end": {
- "line": 439,
+ "line": 444,
"column": 3,
- "index": 19501
+ "index": 19682
}
},
{
@@ -994,14 +1009,14 @@
"defaultMessage": "!!!Swap",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 440,
+ "line": 445,
"column": 14,
- "index": 19517
+ "index": 19698
},
"end": {
- "line": 443,
+ "line": 448,
"column": 3,
- "index": 19576
+ "index": 19757
}
},
{
@@ -1009,14 +1024,14 @@
"defaultMessage": "!!!completed orders",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 444,
+ "line": 449,
"column": 23,
- "index": 19601
+ "index": 19782
},
"end": {
- "line": 447,
+ "line": 452,
"column": 3,
- "index": 19686
+ "index": 19867
}
},
{
@@ -1024,14 +1039,14 @@
"defaultMessage": "!!!open orders",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 448,
+ "line": 453,
"column": 18,
- "index": 19706
+ "index": 19887
},
"end": {
- "line": 451,
+ "line": 456,
"column": 3,
- "index": 19781
+ "index": 19962
}
},
{
@@ -1039,14 +1054,14 @@
"defaultMessage": "!!!Confirm order cancellation",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 452,
+ "line": 457,
"column": 24,
- "index": 19807
+ "index": 19988
},
"end": {
- "line": 455,
+ "line": 460,
"column": 3,
- "index": 19904
+ "index": 20085
}
},
{
@@ -1054,14 +1069,14 @@
"defaultMessage": "!!!Cancel order",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 456,
+ "line": 461,
"column": 29,
- "index": 19935
+ "index": 20116
},
"end": {
- "line": 459,
+ "line": 464,
"column": 3,
- "index": 20022
+ "index": 20203
}
},
{
@@ -1069,14 +1084,14 @@
"defaultMessage": "!!!Are you sure you want to cancel this order?",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 460,
+ "line": 465,
"column": 31,
- "index": 20055
+ "index": 20236
},
"end": {
- "line": 463,
+ "line": 468,
"column": 3,
- "index": 20176
+ "index": 20357
}
},
{
@@ -1084,14 +1099,14 @@
"defaultMessage": "!!!Learn more about swap orders in Yoroi",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 464,
+ "line": 469,
"column": 23,
- "index": 20201
+ "index": 20382
},
"end": {
- "line": 467,
+ "line": 472,
"column": 3,
- "index": 20308
+ "index": 20489
}
},
{
@@ -1099,14 +1114,14 @@
"defaultMessage": "!!!Asset price",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 468,
+ "line": 473,
"column": 29,
- "index": 20339
+ "index": 20520
},
"end": {
- "line": 471,
+ "line": 476,
"column": 3,
- "index": 20426
+ "index": 20607
}
},
{
@@ -1114,14 +1129,14 @@
"defaultMessage": "!!!Asset amount",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 472,
+ "line": 477,
"column": 30,
- "index": 20458
+ "index": 20639
},
"end": {
- "line": 475,
+ "line": 480,
"column": 3,
- "index": 20547
+ "index": 20728
}
},
{
@@ -1129,14 +1144,14 @@
"defaultMessage": "!!!Total returned",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 476,
+ "line": 481,
"column": 32,
- "index": 20581
+ "index": 20762
},
"end": {
- "line": 479,
+ "line": 484,
"column": 3,
- "index": 20674
+ "index": 20855
}
},
{
@@ -1144,14 +1159,14 @@
"defaultMessage": "!!!Cancellation Fee",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 480,
+ "line": 485,
"column": 34,
- "index": 20710
+ "index": 20891
},
"end": {
- "line": 483,
+ "line": 488,
"column": 3,
- "index": 20807
+ "index": 20988
}
},
{
@@ -1159,14 +1174,14 @@
"defaultMessage": "!!!Confirm",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 484,
+ "line": 489,
"column": 26,
- "index": 20835
+ "index": 21016
},
"end": {
- "line": 487,
+ "line": 492,
"column": 3,
- "index": 20915
+ "index": 21096
}
},
{
@@ -1174,14 +1189,14 @@
"defaultMessage": "!!!Back",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 488,
+ "line": 493,
"column": 23,
- "index": 20940
+ "index": 21121
},
"end": {
- "line": 491,
+ "line": 496,
"column": 3,
- "index": 21014
+ "index": 21195
}
},
{
@@ -1189,14 +1204,14 @@
"defaultMessage": "!!!Total",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 492,
+ "line": 497,
"column": 19,
- "index": 21035
+ "index": 21216
},
"end": {
- "line": 495,
+ "line": 500,
"column": 3,
- "index": 21105
+ "index": 21286
}
},
{
@@ -1204,14 +1219,14 @@
"defaultMessage": "!!!Liquidity Pool",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 496,
+ "line": 501,
"column": 27,
- "index": 21134
+ "index": 21315
},
"end": {
- "line": 499,
+ "line": 504,
"column": 3,
- "index": 21221
+ "index": 21402
}
},
{
@@ -1219,14 +1234,14 @@
"defaultMessage": "!!!Time Created",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 500,
+ "line": 505,
"column": 25,
- "index": 21248
+ "index": 21429
},
"end": {
- "line": 503,
+ "line": 508,
"column": 3,
- "index": 21331
+ "index": 21512
}
},
{
@@ -1234,14 +1249,14 @@
"defaultMessage": "!!!Time Completed",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 504,
+ "line": 509,
"column": 27,
- "index": 21360
+ "index": 21541
},
"end": {
- "line": 507,
+ "line": 512,
"column": 3,
- "index": 21447
+ "index": 21628
}
},
{
@@ -1249,14 +1264,14 @@
"defaultMessage": "!!!Transaction ID",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 508,
+ "line": 513,
"column": 18,
- "index": 21467
+ "index": 21648
},
"end": {
- "line": 511,
+ "line": 516,
"column": 3,
- "index": 21545
+ "index": 21726
}
},
{
@@ -1264,14 +1279,14 @@
"defaultMessage": "!!!Choose Connection Method",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 512,
+ "line": 517,
"column": 26,
- "index": 21573
+ "index": 21754
},
"end": {
- "line": 515,
+ "line": 520,
"column": 3,
- "index": 21691
+ "index": 21872
}
},
{
@@ -1279,14 +1294,14 @@
"defaultMessage": "!!!Choose this option if you want to connect to a Ledger Nano model X or S using an on-the-go USB cable adaptor:",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 516,
+ "line": 521,
"column": 18,
- "index": 21711
+ "index": 21892
},
"end": {
- "line": 521,
+ "line": 526,
"column": 3,
- "index": 21940
+ "index": 22121
}
},
{
@@ -1294,14 +1309,14 @@
"defaultMessage": "!!!Connect with USB",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 522,
+ "line": 527,
"column": 13,
- "index": 21955
+ "index": 22136
},
"end": {
- "line": 525,
+ "line": 530,
"column": 3,
- "index": 22069
+ "index": 22250
}
},
{
@@ -1309,14 +1324,14 @@
"defaultMessage": "!!! USB connection is blocked by iOS devices",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 526,
+ "line": 531,
"column": 26,
- "index": 22097
+ "index": 22278
},
"end": {
- "line": 529,
+ "line": 534,
"column": 3,
- "index": 22249
+ "index": 22430
}
},
{
@@ -1324,14 +1339,14 @@
"defaultMessage": "!!!Choose this option if you want to connect to a Ledger Nano model X through Bluetooth:",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 530,
+ "line": 535,
"column": 24,
- "index": 22275
+ "index": 22456
},
"end": {
- "line": 533,
+ "line": 538,
"column": 3,
- "index": 22469
+ "index": 22650
}
},
{
@@ -1339,14 +1354,14 @@
"defaultMessage": "!!!Connect with Bluetooth",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 534,
+ "line": 539,
"column": 19,
- "index": 22490
+ "index": 22671
},
"end": {
- "line": 537,
+ "line": 542,
"column": 3,
- "index": 22616
+ "index": 22797
}
},
{
@@ -1354,14 +1369,14 @@
"defaultMessage": "!!!Connect with Bluetooth",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 538,
+ "line": 543,
"column": 18,
- "index": 22636
+ "index": 22817
},
"end": {
- "line": 541,
+ "line": 546,
"column": 3,
- "index": 22746
+ "index": 22927
}
},
{
@@ -1369,14 +1384,14 @@
"defaultMessage": "!!!Service unavailable",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 542,
+ "line": 547,
"column": 22,
- "index": 22770
+ "index": 22951
},
"end": {
- "line": 545,
+ "line": 550,
"column": 3,
- "index": 22864
+ "index": 23045
}
},
{
@@ -1384,14 +1399,14 @@
"defaultMessage": "!!!The server is temporarily busy due to maintenance downtime or capacity problems",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 546,
+ "line": 551,
"column": 26,
- "index": 22892
+ "index": 23073
},
"end": {
- "line": 549,
+ "line": 554,
"column": 3,
- "index": 23050
+ "index": 23231
}
},
{
@@ -1399,14 +1414,14 @@
"defaultMessage": "!!!GO TO transactions",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 550,
+ "line": 555,
"column": 20,
- "index": 23072
+ "index": 23253
},
"end": {
- "line": 553,
+ "line": 558,
"column": 3,
- "index": 23178
+ "index": 23359
}
},
{
@@ -1414,14 +1429,14 @@
"defaultMessage": "!!!You have",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 556,
+ "line": 561,
"column": 11,
- "index": 23237
+ "index": 23418
},
"end": {
- "line": 559,
+ "line": 564,
"column": 3,
- "index": 23332
+ "index": 23513
}
},
{
@@ -1429,14 +1444,14 @@
"defaultMessage": "!!!No assets found",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 560,
+ "line": 565,
"column": 12,
- "index": 23346
+ "index": 23527
},
"end": {
- "line": 563,
+ "line": 568,
"column": 3,
- "index": 23449
+ "index": 23630
}
},
{
@@ -1444,14 +1459,14 @@
"defaultMessage": "!!!found",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 564,
+ "line": 569,
"column": 9,
- "index": 23460
+ "index": 23641
},
"end": {
- "line": 567,
+ "line": 572,
"column": 3,
- "index": 23550
+ "index": 23731
}
},
{
@@ -1459,14 +1474,14 @@
"defaultMessage": "!!!Search tokens",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 568,
+ "line": 573,
"column": 16,
- "index": 23568
+ "index": 23749
},
"end": {
- "line": 571,
+ "line": 576,
"column": 3,
- "index": 23664
+ "index": 23845
}
},
{
@@ -1474,29 +1489,29 @@
"defaultMessage": "!!!Select asset",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 572,
+ "line": 577,
"column": 20,
- "index": 23686
+ "index": 23867
},
"end": {
- "line": 575,
+ "line": 580,
"column": 3,
- "index": 23775
+ "index": 23956
}
},
{
- "id": "components.send.confirmscreen.confirmButton",
- "defaultMessage": "!!!Confirm",
+ "id": "global.next",
+ "defaultMessage": "!!!Next",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 576,
- "column": 11,
- "index": 23788
+ "line": 581,
+ "column": 8,
+ "index": 23966
},
"end": {
- "line": 579,
+ "line": 584,
"column": 3,
- "index": 23882
+ "index": 24025
}
},
{
@@ -1504,14 +1519,14 @@
"defaultMessage": "!!!Generate",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 580,
+ "line": 585,
"column": 20,
- "index": 23904
+ "index": 24047
},
"end": {
- "line": 583,
+ "line": 588,
"column": 3,
- "index": 24002
+ "index": 24145
}
},
{
@@ -1519,14 +1534,14 @@
"defaultMessage": "!!!Collateral not found",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 584,
+ "line": 589,
"column": 22,
- "index": 24026
+ "index": 24169
},
"end": {
- "line": 587,
+ "line": 592,
"column": 3,
- "index": 24138
+ "index": 24281
}
},
{
@@ -1534,14 +1549,14 @@
"defaultMessage": "!!!To continue with this action, you need to generate a collateral",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 588,
+ "line": 593,
"column": 22,
- "index": 24162
+ "index": 24305
},
"end": {
- "line": 591,
+ "line": 596,
"column": 3,
- "index": 24317
+ "index": 24460
}
},
{
@@ -1549,14 +1564,14 @@
"defaultMessage": "!!!Pending Collateral UTxO",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 592,
+ "line": 597,
"column": 28,
- "index": 24347
+ "index": 24490
},
"end": {
- "line": 595,
+ "line": 600,
"column": 3,
- "index": 24468
+ "index": 24611
}
},
{
@@ -1564,14 +1579,14 @@
"defaultMessage": "!!!The collateral UTxO transaction you've submitted is currently in the processing stage, and it may require a few minutes to complete. Please refresh your interface and attempt the action again shortly",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 596,
+ "line": 601,
"column": 23,
- "index": 24493
+ "index": 24636
},
"end": {
- "line": 600,
+ "line": 605,
"column": 3,
- "index": 24791
+ "index": 24934
}
},
{
@@ -1579,14 +1594,14 @@
"defaultMessage": "!!!Transaction failed",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 601,
+ "line": 606,
"column": 17,
- "index": 24810
+ "index": 24953
},
"end": {
- "line": 604,
+ "line": 609,
"column": 3,
- "index": 24912
+ "index": 25055
}
},
{
@@ -1594,14 +1609,14 @@
"defaultMessage": "!!!Your transaction has not been processed properly due to technical issues",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 605,
+ "line": 610,
"column": 16,
- "index": 24930
+ "index": 25073
},
"end": {
- "line": 608,
+ "line": 613,
"column": 3,
- "index": 25085
+ "index": 25228
}
},
{
@@ -1609,14 +1624,14 @@
"defaultMessage": "!!!Try again",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 609,
+ "line": 614,
"column": 18,
- "index": 25105
+ "index": 25248
},
"end": {
- "line": 612,
+ "line": 617,
"column": 3,
- "index": 25199
+ "index": 25342
}
},
{
@@ -1624,14 +1639,14 @@
"defaultMessage": "!!!Not enough balance",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 613,
+ "line": 618,
"column": 20,
- "index": 25221
+ "index": 25364
},
"end": {
- "line": 616,
+ "line": 621,
"column": 3,
- "index": 25315
+ "index": 25458
}
},
{
@@ -1639,14 +1654,14 @@
"defaultMessage": "!!!Not enough supply in the pool",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 617,
+ "line": 622,
"column": 19,
- "index": 25336
+ "index": 25479
},
"end": {
- "line": 620,
+ "line": 625,
"column": 3,
- "index": 25440
+ "index": 25583
}
},
{
@@ -1654,14 +1669,14 @@
"defaultMessage": "!!!Not enough balance, please consider the fees",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 621,
+ "line": 626,
"column": 23,
- "index": 25465
+ "index": 25608
},
"end": {
- "line": 624,
+ "line": 629,
"column": 3,
- "index": 25588
+ "index": 25731
}
},
{
@@ -1669,14 +1684,14 @@
"defaultMessage": "!!! This pair is not available in any liquidity pool",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 625,
+ "line": 630,
"column": 10,
- "index": 25600
+ "index": 25743
},
"end": {
- "line": 628,
+ "line": 633,
"column": 3,
- "index": 25715
+ "index": 25858
}
},
{
@@ -1684,14 +1699,14 @@
"defaultMessage": "!!!Continue on Ledger",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 629,
+ "line": 634,
"column": 20,
- "index": 25737
+ "index": 25880
},
"end": {
- "line": 632,
+ "line": 637,
"column": 3,
- "index": 25837
+ "index": 25980
}
},
{
@@ -1699,14 +1714,14 @@
"defaultMessage": "!!!Continue",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 633,
+ "line": 638,
"column": 12,
- "index": 25851
+ "index": 25994
},
"end": {
- "line": 636,
+ "line": 641,
"column": 3,
- "index": 25954
+ "index": 26097
}
},
{
@@ -1714,14 +1729,14 @@
"defaultMessage": "!!!Slippage Warning",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 637,
+ "line": 642,
"column": 24,
- "index": 25980
+ "index": 26123
},
"end": {
- "line": 640,
+ "line": 645,
"column": 3,
- "index": 26074
+ "index": 26217
}
},
{
@@ -1729,14 +1744,14 @@
"defaultMessage": "!!!Are you sure you want to proceed this order with the current slippage tolerance? It could result in receiving no assets.",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 641,
+ "line": 646,
"column": 23,
- "index": 26099
+ "index": 26242
},
"end": {
- "line": 645,
+ "line": 650,
"column": 3,
- "index": 26302
+ "index": 26445
}
},
{
@@ -1744,14 +1759,14 @@
"defaultMessage": "!!!Your slippage tolerance",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 646,
+ "line": 651,
"column": 31,
- "index": 26335
+ "index": 26478
},
"end": {
- "line": 649,
+ "line": 654,
"column": 3,
- "index": 26428
+ "index": 26571
}
},
{
@@ -1759,14 +1774,14 @@
"defaultMessage": "!!!Increase the amount to proceed or change slippage tolerance to 0%",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 650,
+ "line": 655,
"column": 31,
- "index": 26461
+ "index": 26604
},
"end": {
- "line": 653,
+ "line": 658,
"column": 3,
- "index": 26596
+ "index": 26739
}
},
{
@@ -1774,14 +1789,14 @@
"defaultMessage": "!!!No orders available yet",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 654,
+ "line": 659,
"column": 19,
- "index": 26617
+ "index": 26760
},
"end": {
- "line": 657,
+ "line": 662,
"column": 3,
- "index": 26715
+ "index": 26858
}
},
{
@@ -1789,14 +1804,14 @@
"defaultMessage": "!!!Start doing SWAP to see your open orders here",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 658,
+ "line": 663,
"column": 22,
- "index": 26739
+ "index": 26882
},
"end": {
- "line": 661,
+ "line": 666,
"column": 3,
- "index": 26862
+ "index": 27005
}
},
{
@@ -1804,14 +1819,14 @@
"defaultMessage": "!!!No orders completed yet",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 662,
+ "line": 667,
"column": 24,
- "index": 26888
+ "index": 27031
},
"end": {
- "line": 665,
+ "line": 670,
"column": 3,
- "index": 26991
+ "index": 27134
}
},
{
@@ -1819,14 +1834,14 @@
"defaultMessage": "!!!No orders found for",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 666,
+ "line": 671,
"column": 30,
- "index": 27023
+ "index": 27166
},
"end": {
- "line": 669,
+ "line": 674,
"column": 3,
- "index": 27128
+ "index": 27271
}
},
{
@@ -1834,14 +1849,14 @@
"defaultMessage": "!!!No orders found for",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 670,
+ "line": 675,
"column": 25,
- "index": 27155
+ "index": 27298
},
"end": {
- "line": 673,
+ "line": 678,
"column": 3,
- "index": 27255
+ "index": 27398
}
},
{
@@ -1849,14 +1864,14 @@
"defaultMessage": "!!!Price Impact",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 674,
+ "line": 679,
"column": 15,
- "index": 27272
+ "index": 27415
},
"end": {
- "line": 677,
+ "line": 682,
"column": 3,
- "index": 27355
+ "index": 27498
}
},
{
@@ -1864,14 +1879,14 @@
"defaultMessage": "!!!Price impact over {riskValue}%",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 678,
+ "line": 683,
"column": 23,
- "index": 27380
+ "index": 27523
},
"end": {
- "line": 681,
+ "line": 686,
"column": 3,
- "index": 27489
+ "index": 27632
}
},
{
@@ -1879,14 +1894,14 @@
"defaultMessage": "!!!may cause a significant loss of funds. Please bear this in mind and proceed with an extra caution.",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 682,
+ "line": 687,
"column": 30,
- "index": 27521
+ "index": 27664
},
"end": {
- "line": 686,
+ "line": 691,
"column": 3,
- "index": 27711
+ "index": 27854
}
},
{
@@ -1894,14 +1909,14 @@
"defaultMessage": "!!!may cause a difference in the amount you actually receive. Consider this at your own risk.",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 687,
+ "line": 692,
"column": 34,
- "index": 27747
+ "index": 27890
},
"end": {
- "line": 690,
+ "line": 695,
"column": 3,
- "index": 27927
+ "index": 28070
}
},
{
@@ -1909,14 +1924,14 @@
"defaultMessage": "!!!Price impact is a difference between the actual market price and your price due to trade size.",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 691,
+ "line": 696,
"column": 19,
- "index": 27948
+ "index": 28091
},
"end": {
- "line": 694,
+ "line": 699,
"column": 3,
- "index": 28117
+ "index": 28260
}
},
{
@@ -1924,14 +1939,14 @@
"defaultMessage": "!!Warning",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 695,
+ "line": 700,
"column": 11,
- "index": 28130
+ "index": 28273
},
"end": {
- "line": 698,
+ "line": 703,
"column": 3,
- "index": 28224
+ "index": 28367
}
},
{
@@ -1939,14 +1954,14 @@
"defaultMessage": "!!!Back to swap orders",
"file": "src/features/Swap/common/strings.ts",
"start": {
- "line": 699,
+ "line": 704,
"column": 20,
- "index": 28246
+ "index": 28389
},
"end": {
- "line": 702,
+ "line": 707,
"column": 3,
- "index": 28341
+ "index": 28484
}
}
]
\ No newline at end of file
diff --git a/apps/wallet-mobile/translations/messages/src/features/Transactions/TxHistoryNavigator.json b/apps/wallet-mobile/translations/messages/src/features/Transactions/TxHistoryNavigator.json
index cb695ac224..b3bc604f57 100644
--- a/apps/wallet-mobile/translations/messages/src/features/Transactions/TxHistoryNavigator.json
+++ b/apps/wallet-mobile/translations/messages/src/features/Transactions/TxHistoryNavigator.json
@@ -6,12 +6,12 @@
"start": {
"line": 404,
"column": 16,
- "index": 14797
+ "index": 14827
},
"end": {
"line": 407,
"column": 3,
- "index": 14886
+ "index": 14916
}
},
{
@@ -21,12 +21,12 @@
"start": {
"line": 408,
"column": 32,
- "index": 14920
+ "index": 14950
},
"end": {
"line": 411,
"column": 3,
- "index": 15033
+ "index": 15063
}
},
{
@@ -36,12 +36,12 @@
"start": {
"line": 412,
"column": 13,
- "index": 15048
+ "index": 15078
},
"end": {
"line": 415,
"column": 3,
- "index": 15121
+ "index": 15151
}
},
{
@@ -51,12 +51,12 @@
"start": {
"line": 416,
"column": 17,
- "index": 15140
+ "index": 15170
},
"end": {
"line": 419,
"column": 3,
- "index": 15217
+ "index": 15247
}
},
{
@@ -66,12 +66,27 @@
"start": {
"line": 420,
"column": 15,
- "index": 15234
+ "index": 15264
},
"end": {
"line": 423,
"column": 3,
- "index": 15307
+ "index": 15337
+ }
+ },
+ {
+ "id": "swap.review.title",
+ "defaultMessage": "!!!Swap review",
+ "file": "src/features/Transactions/TxHistoryNavigator.tsx",
+ "start": {
+ "line": 424,
+ "column": 19,
+ "index": 15358
+ },
+ "end": {
+ "line": 427,
+ "column": 3,
+ "index": 15430
}
},
{
@@ -79,14 +94,14 @@
"defaultMessage": "!!!Slippage Tolerance",
"file": "src/features/Transactions/TxHistoryNavigator.tsx",
"start": {
- "line": 424,
+ "line": 428,
"column": 21,
- "index": 15330
+ "index": 15453
},
"end": {
- "line": 427,
+ "line": 431,
"column": 3,
- "index": 15425
+ "index": 15548
}
},
{
@@ -94,14 +109,14 @@
"defaultMessage": "!!!Select pool",
"file": "src/features/Transactions/TxHistoryNavigator.tsx",
"start": {
- "line": 428,
+ "line": 432,
"column": 14,
- "index": 15441
+ "index": 15564
},
"end": {
- "line": 431,
+ "line": 435,
"column": 3,
- "index": 15522
+ "index": 15645
}
},
{
@@ -109,14 +124,14 @@
"defaultMessage": "!!!Send",
"file": "src/features/Transactions/TxHistoryNavigator.tsx",
"start": {
- "line": 432,
+ "line": 436,
"column": 13,
- "index": 15537
+ "index": 15660
},
"end": {
- "line": 435,
+ "line": 439,
"column": 3,
- "index": 15617
+ "index": 15740
}
},
{
@@ -124,14 +139,14 @@
"defaultMessage": "!!!Scan QR code address",
"file": "src/features/Transactions/TxHistoryNavigator.tsx",
"start": {
- "line": 436,
+ "line": 440,
"column": 18,
- "index": 15637
+ "index": 15760
},
"end": {
- "line": 439,
+ "line": 443,
"column": 3,
- "index": 15738
+ "index": 15861
}
},
{
@@ -139,14 +154,14 @@
"defaultMessage": "!!!Select asset",
"file": "src/features/Transactions/TxHistoryNavigator.tsx",
"start": {
- "line": 440,
+ "line": 444,
"column": 20,
- "index": 15760
+ "index": 15883
},
"end": {
- "line": 443,
+ "line": 447,
"column": 3,
- "index": 15849
+ "index": 15972
}
},
{
@@ -154,14 +169,14 @@
"defaultMessage": "!!!Assets added",
"file": "src/features/Transactions/TxHistoryNavigator.tsx",
"start": {
- "line": 444,
+ "line": 448,
"column": 26,
- "index": 15877
+ "index": 16000
},
"end": {
- "line": 447,
+ "line": 451,
"column": 3,
- "index": 15978
+ "index": 16101
}
},
{
@@ -169,14 +184,14 @@
"defaultMessage": "!!!Edit amount",
"file": "src/features/Transactions/TxHistoryNavigator.tsx",
"start": {
- "line": 448,
+ "line": 452,
"column": 19,
- "index": 15999
+ "index": 16122
},
"end": {
- "line": 451,
+ "line": 455,
"column": 3,
- "index": 16092
+ "index": 16215
}
},
{
@@ -184,14 +199,14 @@
"defaultMessage": "!!!Confirm",
"file": "src/features/Transactions/TxHistoryNavigator.tsx",
"start": {
- "line": 452,
+ "line": 456,
"column": 16,
- "index": 16110
+ "index": 16233
},
"end": {
- "line": 455,
+ "line": 459,
"column": 3,
- "index": 16196
+ "index": 16319
}
},
{
@@ -199,14 +214,14 @@
"defaultMessage": "!!!Share this address to receive payments. To protect your privacy, new addresses are generated automatically once you use them.",
"file": "src/features/Transactions/TxHistoryNavigator.tsx",
"start": {
- "line": 456,
+ "line": 460,
"column": 19,
- "index": 16217
+ "index": 16340
},
"end": {
- "line": 462,
+ "line": 466,
"column": 3,
- "index": 16455
+ "index": 16578
}
},
{
@@ -214,14 +229,14 @@
"defaultMessage": "!!!Confirm transaction",
"file": "src/features/Transactions/TxHistoryNavigator.tsx",
"start": {
- "line": 463,
+ "line": 467,
"column": 27,
- "index": 16484
+ "index": 16607
},
"end": {
- "line": 466,
+ "line": 470,
"column": 3,
- "index": 16577
+ "index": 16700
}
},
{
@@ -229,14 +244,14 @@
"defaultMessage": "!!!Please scan a QR code",
"file": "src/features/Transactions/TxHistoryNavigator.tsx",
"start": {
- "line": 467,
+ "line": 471,
"column": 13,
- "index": 16592
+ "index": 16715
},
"end": {
- "line": 470,
+ "line": 474,
"column": 3,
- "index": 16667
+ "index": 16790
}
},
{
@@ -244,14 +259,14 @@
"defaultMessage": "!!!Success",
"file": "src/features/Transactions/TxHistoryNavigator.tsx",
"start": {
- "line": 471,
+ "line": 475,
"column": 25,
- "index": 16694
+ "index": 16817
},
"end": {
- "line": 474,
+ "line": 478,
"column": 3,
- "index": 16768
+ "index": 16891
}
},
{
@@ -259,14 +274,14 @@
"defaultMessage": "!!!Request specific amount",
"file": "src/features/Transactions/TxHistoryNavigator.tsx",
"start": {
- "line": 475,
+ "line": 479,
"column": 18,
- "index": 16788
+ "index": 16911
},
"end": {
- "line": 478,
+ "line": 482,
"column": 3,
- "index": 16902
+ "index": 17025
}
},
{
@@ -274,14 +289,14 @@
"defaultMessage": "!!!Buy/Sell ADA",
"file": "src/features/Transactions/TxHistoryNavigator.tsx",
"start": {
- "line": 479,
+ "line": 483,
"column": 28,
- "index": 16932
+ "index": 17055
},
"end": {
- "line": 482,
+ "line": 486,
"column": 3,
- "index": 17028
+ "index": 17151
}
},
{
@@ -289,14 +304,14 @@
"defaultMessage": "!!!Buy provider",
"file": "src/features/Transactions/TxHistoryNavigator.tsx",
"start": {
- "line": 483,
+ "line": 487,
"column": 29,
- "index": 17059
+ "index": 17182
},
"end": {
- "line": 486,
+ "line": 490,
"column": 3,
- "index": 17167
+ "index": 17290
}
},
{
@@ -304,14 +319,14 @@
"defaultMessage": "!!!Sell provider",
"file": "src/features/Transactions/TxHistoryNavigator.tsx",
"start": {
- "line": 487,
+ "line": 491,
"column": 30,
- "index": 17199
+ "index": 17322
},
"end": {
- "line": 490,
+ "line": 494,
"column": 3,
- "index": 17309
+ "index": 17432
}
},
{
@@ -319,14 +334,14 @@
"defaultMessage": "!!!Tx Details",
"file": "src/features/Transactions/TxHistoryNavigator.tsx",
"start": {
- "line": 491,
+ "line": 495,
"column": 18,
- "index": 17329
+ "index": 17452
},
"end": {
- "line": 494,
+ "line": 498,
"column": 3,
- "index": 17423
+ "index": 17546
}
}
]
\ No newline at end of file
diff --git a/apps/wallet-mobile/translations/messages/src/legacy/Dashboard/DashboardNavigator.json b/apps/wallet-mobile/translations/messages/src/legacy/Dashboard/DashboardNavigator.json
index 9198d0e581..7f80182884 100644
--- a/apps/wallet-mobile/translations/messages/src/legacy/Dashboard/DashboardNavigator.json
+++ b/apps/wallet-mobile/translations/messages/src/legacy/Dashboard/DashboardNavigator.json
@@ -6,12 +6,12 @@
"start": {
"line": 64,
"column": 9,
- "index": 2065
+ "index": 2092
},
"end": {
"line": 67,
"column": 3,
- "index": 2153
+ "index": 2180
}
}
]
\ No newline at end of file
diff --git a/apps/wallet-mobile/translations/messages/src/legacy/Dashboard/UserSummary.json b/apps/wallet-mobile/translations/messages/src/legacy/Dashboard/UserSummary.json
index 64526f1453..05af0bc668 100644
--- a/apps/wallet-mobile/translations/messages/src/legacy/Dashboard/UserSummary.json
+++ b/apps/wallet-mobile/translations/messages/src/legacy/Dashboard/UserSummary.json
@@ -6,12 +6,12 @@
"start": {
"line": 163,
"column": 9,
- "index": 4877
+ "index": 4904
},
"end": {
"line": 166,
"column": 3,
- "index": 4979
+ "index": 5006
}
},
{
@@ -21,12 +21,12 @@
"start": {
"line": 167,
"column": 16,
- "index": 4997
+ "index": 5024
},
"end": {
"line": 170,
"column": 3,
- "index": 5107
+ "index": 5134
}
},
{
@@ -36,12 +36,12 @@
"start": {
"line": 171,
"column": 18,
- "index": 5127
+ "index": 5154
},
"end": {
"line": 174,
"column": 3,
- "index": 5241
+ "index": 5268
}
},
{
@@ -51,12 +51,12 @@
"start": {
"line": 175,
"column": 23,
- "index": 5266
+ "index": 5293
},
"end": {
"line": 178,
"column": 3,
- "index": 5378
+ "index": 5405
}
}
]
\ No newline at end of file
diff --git a/packages/swap/src/helpers/mocks.ts b/packages/swap/src/helpers/mocks.ts
index 3db7dcc3aa..9c20429af8 100644
--- a/packages/swap/src/helpers/mocks.ts
+++ b/packages/swap/src/helpers/mocks.ts
@@ -1,6 +1,5 @@
import {Swap} from '@yoroi/types'
-import {SwapOrderCalculation} from '../types'
import {tokenInfoMocks} from '../tokenInfo.mocks'
const mockedPools1: Swap.Pool[] = [
@@ -600,7 +599,7 @@ const mockedPools8: Swap.Pool[] = [
},
]
-const mockedOrderCalculations1: SwapOrderCalculation[] = [
+const mockedOrderCalculations1: Swap.OrderCalculation[] = [
{
order: {
side: 'sell',
@@ -1197,7 +1196,7 @@ const mockedOrderCalculations1: SwapOrderCalculation[] = [
},
]
-const mockedOrderCalculations2: SwapOrderCalculation[] = [
+const mockedOrderCalculations2: Swap.OrderCalculation[] = [
{
order: {
side: 'buy',
diff --git a/packages/swap/src/helpers/orders/factories/makeOrderCalculations.test.ts b/packages/swap/src/helpers/orders/factories/makeOrderCalculations.test.ts
index 75513cd923..c72fb6bff7 100644
--- a/packages/swap/src/helpers/orders/factories/makeOrderCalculations.test.ts
+++ b/packages/swap/src/helpers/orders/factories/makeOrderCalculations.test.ts
@@ -3,7 +3,6 @@ import {AppApi} from '@yoroi/api'
import {makeOrderCalculations} from './makeOrderCalculations'
import {mocks} from '../../mocks'
-import {SwapOrderCalculation} from '../../../types'
import {SwapState} from '../../../translators/reactjs/state/state'
import {tokenInfoMocks} from '../../../tokenInfo.mocks'
@@ -40,7 +39,7 @@ describe('makeOrderCalculations', () => {
frontendFeeTiers,
})
- expect(calculations[0]).toStrictEqual({
+ expect(calculations[0]).toStrictEqual({
order: {
side: 'sell',
slippage: 0,
@@ -150,9 +149,9 @@ describe('makeOrderCalculations', () => {
side: 'sell',
frontendFeeTiers,
})
- const calculation: SwapOrderCalculation = calculations[0]!
+ const calculation: Swap.OrderCalculation = calculations[0]!
- expect(calculation).toStrictEqual({
+ expect(calculation).toStrictEqual({
order: {
side: 'sell',
slippage: 0,
@@ -231,7 +230,7 @@ describe('makeOrderCalculations', () => {
priceImpact: '0.3379136660',
},
pool: pools[0],
- } as SwapOrderCalculation)
+ } as Swap.OrderCalculation)
})
it('should calculate all fees and amounts correctly (case 3, buy B)', () => {
const pool = mocks.mockedPools5[0] as Swap.Pool
@@ -262,9 +261,9 @@ describe('makeOrderCalculations', () => {
side: 'buy',
frontendFeeTiers,
})
- const calculation: SwapOrderCalculation = calculations[0]!
+ const calculation: Swap.OrderCalculation = calculations[0]!
- expect(calculation).toStrictEqual({
+ expect(calculation).toStrictEqual({
order: {
side: 'buy',
slippage: 0,
@@ -343,7 +342,7 @@ describe('makeOrderCalculations', () => {
priceImpact: '0.3379136754',
},
pool: pool,
- } as SwapOrderCalculation)
+ } as Swap.OrderCalculation)
})
it('should calculate all fees and amounts correctly (case 4, buy A, reversed case 3) ', () => {
const pool = mocks.mockedPools5[1] as Swap.Pool
@@ -374,9 +373,9 @@ describe('makeOrderCalculations', () => {
side: 'buy',
frontendFeeTiers,
})
- const calculation: SwapOrderCalculation = calculations[0]!
+ const calculation: Swap.OrderCalculation = calculations[0]!
- expect(calculation).toStrictEqual({
+ expect(calculation).toStrictEqual({
order: {
side: 'buy',
slippage: 0,
@@ -455,7 +454,7 @@ describe('makeOrderCalculations', () => {
priceImpact: '0.3379136754',
},
pool: pool,
- } as SwapOrderCalculation)
+ } as Swap.OrderCalculation)
})
it('should calculate all fees and amounts correctly (case 5, with slippage)', () => {
const pool = mocks.mockedPools5[2] as Swap.Pool
@@ -562,7 +561,7 @@ describe('makeOrderCalculations', () => {
priceImpact: '1.0000000000',
},
pool: pools[0],
- } as SwapOrderCalculation)
+ } as Swap.OrderCalculation)
})
it('should calculate all fees and amounts correctly (case 6, zero supply)', () => {
const pool = mocks.mockedPools5[3] as Swap.Pool
@@ -667,7 +666,7 @@ describe('makeOrderCalculations', () => {
priceImpact: '0.0000000000',
},
pool: pools[0],
- } as SwapOrderCalculation)
+ } as Swap.OrderCalculation)
})
it('should calculate all fees and amounts correctly (case 7, sell A, not enough supply)', () => {
const pool = mocks.mockedPools5[4] as Swap.Pool
@@ -773,7 +772,7 @@ describe('makeOrderCalculations', () => {
priceImpact: '-100.0000000000',
},
pool: pools[0],
- } as SwapOrderCalculation)
+ } as Swap.OrderCalculation)
})
it('should calculate all fees and amounts correctly (case 8, buy A, not enough supply)', () => {
const pool = mocks.mockedPools5[4] as Swap.Pool
@@ -879,7 +878,7 @@ describe('makeOrderCalculations', () => {
priceImpact: '-99.0000000000',
},
pool: pools[0],
- } as SwapOrderCalculation)
+ } as Swap.OrderCalculation)
})
it('should calculate all fees and amounts correctly (case 9, sell A, A supply is zero)', () => {
const pool = mocks.mockedPools5[5] as Swap.Pool
@@ -985,7 +984,7 @@ describe('makeOrderCalculations', () => {
priceImpact: '0.0000000000',
},
pool: pools[0],
- } as SwapOrderCalculation)
+ } as Swap.OrderCalculation)
})
it('should calculate all fees and amounts correctly (case 10, sell A, B supply is zero)', () => {
const pool = mocks.mockedPools5[6] as Swap.Pool
@@ -1091,7 +1090,7 @@ describe('makeOrderCalculations', () => {
priceImpact: '0.0000000000',
},
pool: pools[0],
- } as SwapOrderCalculation)
+ } as Swap.OrderCalculation)
})
it('should calculate all fees and amounts correctly (case 11, buy A, A supply is zero)', () => {
const pool = mocks.mockedPools5[5] as Swap.Pool
@@ -1194,7 +1193,7 @@ describe('makeOrderCalculations', () => {
priceImpact: '0.0000000000',
},
pool: pools[0],
- } as SwapOrderCalculation)
+ } as Swap.OrderCalculation)
})
it('should calculate all fees and amounts correctly (case 12, buy A, B supply is zero)', () => {
const pool = mocks.mockedPools5[6] as Swap.Pool
@@ -1300,7 +1299,7 @@ describe('makeOrderCalculations', () => {
priceImpact: '0.0000000000',
},
pool: pools[0],
- } as SwapOrderCalculation)
+ } as Swap.OrderCalculation)
})
it('should calculate all fees and amounts correctly (case 13, sell B, B supply is zero)', () => {
const pool = mocks.mockedPools5[6] as Swap.Pool
@@ -1406,7 +1405,7 @@ describe('makeOrderCalculations', () => {
priceImpact: '0.0000000000',
},
pool: pools[0],
- } as SwapOrderCalculation)
+ } as Swap.OrderCalculation)
})
it('should calculate all fees and amounts correctly (case 14, sell B, A supply is zero)', () => {
const pool = mocks.mockedPools5[5] as Swap.Pool
@@ -1512,7 +1511,7 @@ describe('makeOrderCalculations', () => {
priceImpact: '0.0000000000',
},
pool: pools[0],
- } as SwapOrderCalculation)
+ } as Swap.OrderCalculation)
})
it('should calculate all fees and amounts correctly (case 15, buy B, B supply is zero)', () => {
const pool = mocks.mockedPools5[6] as Swap.Pool
@@ -1615,7 +1614,7 @@ describe('makeOrderCalculations', () => {
priceImpact: '0.0000000000',
},
pool: pools[0],
- } as SwapOrderCalculation)
+ } as Swap.OrderCalculation)
})
it('should calculate all fees and amounts correctly (case 16, buy B, A supply is zero)', () => {
const pool = mocks.mockedPools5[5] as Swap.Pool
@@ -1721,7 +1720,7 @@ describe('makeOrderCalculations', () => {
priceImpact: '0.0000000000',
},
pool: pools[0],
- } as SwapOrderCalculation)
+ } as Swap.OrderCalculation)
})
it('should calculate all fees and amounts correctly (case 17, buy A, limit price)', () => {
const pool = mocks.mockedPools5[7] as Swap.Pool
@@ -1752,8 +1751,8 @@ describe('makeOrderCalculations', () => {
side: 'buy',
frontendFeeTiers,
})
- const calculation: SwapOrderCalculation = calculations[0]!
- expect(calculation).toStrictEqual({
+ const calculation: Swap.OrderCalculation = calculations[0]!
+ expect(calculation).toStrictEqual({
order: {
side: 'buy',
slippage: 0,
@@ -1827,7 +1826,7 @@ describe('makeOrderCalculations', () => {
priceImpact: '100.0000000000',
},
pool: pools[0],
- } as SwapOrderCalculation)
+ } as Swap.OrderCalculation)
})
it('should calculate all fees and amounts correctly (case 18, sell A, limit price)', () => {
const pool = mocks.mockedPools5[7] as Swap.Pool
@@ -1858,8 +1857,8 @@ describe('makeOrderCalculations', () => {
side: 'sell',
frontendFeeTiers,
})
- const calculation: SwapOrderCalculation = calculations[0]!
- expect(calculation).toStrictEqual({
+ const calculation: Swap.OrderCalculation = calculations[0]!
+ expect(calculation).toStrictEqual({
order: {
side: 'sell',
slippage: 0,
@@ -1933,7 +1932,7 @@ describe('makeOrderCalculations', () => {
priceImpact: '100.0000000000',
},
pool: pools[0],
- } as SwapOrderCalculation)
+ } as Swap.OrderCalculation)
})
it('should calculate all fees and amounts correctly (case 19, buy B, limit price)', () => {
const pool = mocks.mockedPools5[7] as Swap.Pool
@@ -1964,8 +1963,8 @@ describe('makeOrderCalculations', () => {
side: 'buy',
frontendFeeTiers,
})
- const calculation: SwapOrderCalculation = calculations[0]!
- expect(calculation).toStrictEqual({
+ const calculation: Swap.OrderCalculation = calculations[0]!
+ expect(calculation).toStrictEqual({
order: {
side: 'buy',
slippage: 0,
@@ -2039,7 +2038,7 @@ describe('makeOrderCalculations', () => {
priceImpact: '100.0000000000',
},
pool: pools[0],
- } as SwapOrderCalculation)
+ } as Swap.OrderCalculation)
})
it('should calculate all fees and amounts correctly (case 20, sell B, limit price)', () => {
const pool = mocks.mockedPools5[7] as Swap.Pool
@@ -2070,8 +2069,8 @@ describe('makeOrderCalculations', () => {
side: 'sell',
frontendFeeTiers,
})
- const calculation: SwapOrderCalculation = calculations[0]!
- expect(calculation).toStrictEqual({
+ const calculation: Swap.OrderCalculation = calculations[0]!
+ expect(calculation).toStrictEqual({
order: {
side: 'sell',
slippage: 0,
@@ -2145,7 +2144,7 @@ describe('makeOrderCalculations', () => {
priceImpact: '100.0000000000',
},
pool: pools[0],
- } as SwapOrderCalculation)
+ } as Swap.OrderCalculation)
})
it('should calculate all fees and amounts correctly (case 21, no FEF test)', () => {
const pool = mocks.mockedPools5[7] as Swap.Pool
@@ -2176,8 +2175,8 @@ describe('makeOrderCalculations', () => {
side: 'sell',
frontendFeeTiers,
})
- const calculation: SwapOrderCalculation = calculations[0]!
- expect(calculation).toStrictEqual({
+ const calculation: Swap.OrderCalculation = calculations[0]!
+ expect(calculation).toStrictEqual({
order: {
side: 'sell',
slippage: 0,
@@ -2251,7 +2250,7 @@ describe('makeOrderCalculations', () => {
priceImpact: '0.0000000000',
},
pool: pools[0],
- } as SwapOrderCalculation)
+ } as Swap.OrderCalculation)
})
it('should calculate all fees and amounts correctly (case 22, full FEF test)', () => {
const pool = mocks.mockedPools5[7] as Swap.Pool
@@ -2285,8 +2284,8 @@ describe('makeOrderCalculations', () => {
side: 'sell',
frontendFeeTiers,
})
- const calculation: SwapOrderCalculation = calculations[0]!
- expect(calculation).toStrictEqual({
+ const calculation: Swap.OrderCalculation = calculations[0]!
+ expect(calculation).toStrictEqual({
order: {
side: 'sell',
slippage: 0,
@@ -2368,7 +2367,7 @@ describe('makeOrderCalculations', () => {
priceImpact: '0.0000000000',
},
pool: pools[0],
- } as SwapOrderCalculation)
+ } as Swap.OrderCalculation)
})
it('should calculate all fees and amounts correctly (case 23, discount 1 FEF test)', () => {
const pool = mocks.mockedPools5[7] as Swap.Pool
@@ -2402,8 +2401,8 @@ describe('makeOrderCalculations', () => {
side: 'sell',
frontendFeeTiers,
})
- const calculation: SwapOrderCalculation = calculations[0]!
- expect(calculation).toStrictEqual({
+ const calculation: Swap.OrderCalculation = calculations[0]!
+ expect(calculation).toStrictEqual({
order: {
side: 'sell',
slippage: 0,
@@ -2485,7 +2484,7 @@ describe('makeOrderCalculations', () => {
priceImpact: '0.0000000000',
},
pool: pools[0],
- } as SwapOrderCalculation)
+ } as Swap.OrderCalculation)
})
it('should calculate all fees and amounts correctly (case 24, discount 2 FEF test)', () => {
const pool = mocks.mockedPools5[7] as Swap.Pool
@@ -2519,8 +2518,8 @@ describe('makeOrderCalculations', () => {
side: 'sell',
frontendFeeTiers,
})
- const calculation: SwapOrderCalculation = calculations[0]!
- expect(calculation).toStrictEqual({
+ const calculation: Swap.OrderCalculation = calculations[0]!
+ expect(calculation).toStrictEqual({
order: {
side: 'sell',
slippage: 0,
@@ -2602,7 +2601,7 @@ describe('makeOrderCalculations', () => {
priceImpact: '0.0000000000',
},
pool: pools[0],
- } as SwapOrderCalculation)
+ } as Swap.OrderCalculation)
})
it('should calculate all fees and amounts correctly (case 25, zero sell)', () => {
const pool = mocks.mockedPools5[7] as Swap.Pool
@@ -2636,8 +2635,8 @@ describe('makeOrderCalculations', () => {
side: 'sell',
frontendFeeTiers,
})
- const calculation: SwapOrderCalculation = calculations[0]!
- expect(calculation).toStrictEqual({
+ const calculation: Swap.OrderCalculation = calculations[0]!
+ expect(calculation).toStrictEqual({
order: {
side: 'sell',
slippage: 0,
@@ -2711,7 +2710,7 @@ describe('makeOrderCalculations', () => {
priceImpact: '-100.0000000000',
},
pool: pools[0],
- } as SwapOrderCalculation)
+ } as Swap.OrderCalculation)
})
it('should calculate all fees and amounts correctly (case 26, zero buy)', () => {
const pool = mocks.mockedPools5[7] as Swap.Pool
@@ -2745,8 +2744,8 @@ describe('makeOrderCalculations', () => {
side: 'buy',
frontendFeeTiers,
})
- const calculation: SwapOrderCalculation = calculations[0]!
- expect(calculation).toStrictEqual({
+ const calculation: Swap.OrderCalculation = calculations[0]!
+ expect(calculation).toStrictEqual({
order: {
side: 'buy',
slippage: 0,
@@ -2820,7 +2819,7 @@ describe('makeOrderCalculations', () => {
priceImpact: '-100.0000000000',
},
pool: pools[0],
- } as SwapOrderCalculation)
+ } as Swap.OrderCalculation)
})
it('should calculate all fees and amounts correctly (case 27, zero pt sell side)', () => {
const pool: Swap.Pool = mocks.mockedPools7[1]!
@@ -2853,7 +2852,7 @@ describe('makeOrderCalculations', () => {
side: 'buy',
frontendFeeTiers,
})
- const expectedCalculation: SwapOrderCalculation = {
+ const expectedCalculation: Swap.OrderCalculation = {
order: {
side: 'buy',
slippage: 0,
@@ -2961,7 +2960,7 @@ describe('makeOrderCalculations', () => {
side: 'sell',
frontendFeeTiers,
})
- const expectedCalculation: SwapOrderCalculation = {
+ const expectedCalculation: Swap.OrderCalculation = {
order: {
side: 'sell',
slippage: 0,
@@ -3069,7 +3068,7 @@ describe('makeOrderCalculations', () => {
side: 'sell',
frontendFeeTiers,
})
- const expectedCalculation: SwapOrderCalculation = {
+ const expectedCalculation: Swap.OrderCalculation = {
order: {
side: 'sell',
slippage: 0,
@@ -3177,7 +3176,7 @@ describe('makeOrderCalculations', () => {
side: 'sell',
frontendFeeTiers,
})
- const expectedCalculation: SwapOrderCalculation = {
+ const expectedCalculation: Swap.OrderCalculation = {
order: {
side: 'sell',
slippage: 0,
@@ -3285,7 +3284,7 @@ describe('makeOrderCalculations', () => {
side: 'buy',
frontendFeeTiers,
})
- const expectedCalculation: SwapOrderCalculation = {
+ const expectedCalculation: Swap.OrderCalculation = {
order: {
side: 'buy',
slippage: 0,
@@ -3393,7 +3392,7 @@ describe('makeOrderCalculations', () => {
side: 'buy',
frontendFeeTiers,
})
- const expectedCalculation: SwapOrderCalculation = {
+ const expectedCalculation: Swap.OrderCalculation = {
order: {
side: 'buy',
slippage: 0,
diff --git a/packages/swap/src/helpers/orders/factories/makeOrderCalculations.ts b/packages/swap/src/helpers/orders/factories/makeOrderCalculations.ts
index a413057d1f..e875dde2f6 100644
--- a/packages/swap/src/helpers/orders/factories/makeOrderCalculations.ts
+++ b/packages/swap/src/helpers/orders/factories/makeOrderCalculations.ts
@@ -1,13 +1,11 @@
-import {App, Portfolio, Swap} from '@yoroi/types'
+import {Portfolio, Swap} from '@yoroi/types'
import {BigNumber} from 'bignumber.js'
-import {SwapState} from '../../../translators/reactjs/state/state'
import {getQuantityWithSlippage} from '../amounts/getQuantityWithSlippage'
import {getLiquidityProviderFee} from '../costs/getLiquidityProviderFee'
import {getFrontendFee} from '../costs/getFrontendFee'
import {getMarketPrice} from '../../prices/getMarketPrice'
import {getBuyAmount} from '../amounts/getBuyAmount'
import {getSellAmount} from '../amounts/getSellAmount'
-import {SwapOrderCalculation} from '../../../types'
export const makeOrderCalculations = ({
orderType,
@@ -20,27 +18,13 @@ export const makeOrderCalculations = ({
frontendFeeTiers,
tokens,
priceDecimals = 10,
-}: Readonly<{
- orderType: Swap.OrderType
- amounts: {
- sell?: Portfolio.Token.Amount
- buy?: Portfolio.Token.Amount
- }
- limitPrice?: string
- pools: ReadonlyArray
- lpTokenHeld?: Portfolio.Token.Amount
- slippage: number
- side?: 'buy' | 'sell'
- frontendFeeTiers: ReadonlyArray
- tokens: SwapState['orderData']['tokens']
- priceDecimals?: number
-}>): Array => {
+}: Swap.MakeOrderCalculation): Array => {
if (!amounts.sell || !amounts.buy || !tokens.ptInfo) return []
const isLimit = orderType === 'limit'
const maybeLimitPrice = isLimit ? new BigNumber(limitPrice ?? 0) : undefined
- const calculations = pools.map((pool) => {
+ const calculations = pools.map((pool) => {
const buy =
side === 'sell'
? getBuyAmount(
@@ -197,7 +181,7 @@ export const makeOrderCalculations = ({
info: tokens.ptInfo!,
}
- const result: SwapOrderCalculation = {
+ const result: Swap.OrderCalculation = {
order: {
side,
slippage,
diff --git a/packages/swap/src/helpers/pools/getBestPoolCalculation.test.ts b/packages/swap/src/helpers/pools/getBestPoolCalculation.test.ts
index 4528586e02..7b9312ed39 100644
--- a/packages/swap/src/helpers/pools/getBestPoolCalculation.test.ts
+++ b/packages/swap/src/helpers/pools/getBestPoolCalculation.test.ts
@@ -1,5 +1,5 @@
+import {Swap} from '@yoroi/types'
import {tokenInfoMocks} from '../../tokenInfo.mocks'
-import {SwapOrderCalculation} from '../../types'
import {mocks} from '../mocks'
import {getBestPoolCalculation} from './getBestPoolCalculation'
@@ -13,7 +13,7 @@ describe('getBestPoolCalculation', () => {
})
it('should skip no supply pools', () => {
- const calculations: ReadonlyArray = [
+ const calculations: Array = [
{
order: {
side: 'buy',
diff --git a/packages/swap/src/helpers/pools/getBestPoolCalculation.ts b/packages/swap/src/helpers/pools/getBestPoolCalculation.ts
index f069ad3c90..909d14cb99 100644
--- a/packages/swap/src/helpers/pools/getBestPoolCalculation.ts
+++ b/packages/swap/src/helpers/pools/getBestPoolCalculation.ts
@@ -1,14 +1,14 @@
+import {Swap} from '@yoroi/types'
import BigNumber from 'bignumber.js'
-import {SwapOrderCalculation} from '../../types'
export const getBestPoolCalculation = (
- calculations: ReadonlyArray,
-): SwapOrderCalculation | undefined => {
+ calculations: Array,
+): Swap.OrderCalculation | undefined => {
return calculations.reduce(
(
- best: SwapOrderCalculation | undefined,
+ best: Swap.OrderCalculation | undefined,
current,
- ): SwapOrderCalculation | undefined => {
+ ): Swap.OrderCalculation | undefined => {
if (!current.hasSupply) return best
if (best === undefined) return current
diff --git a/packages/swap/src/index.ts b/packages/swap/src/index.ts
index 7d07aaa91b..c66df66340 100644
--- a/packages/swap/src/index.ts
+++ b/packages/swap/src/index.ts
@@ -45,9 +45,6 @@ export {useSwapTokensOnlyVerified} from './translators/reactjs/hooks/useSwapToke
export {useSwap} from './translators/reactjs/hooks/useSwap'
export {supportedProviders, milkTokenId} from './translators/constants'
-// types
-export * from './types'
-
// factories
export {swapApiMaker} from './adapters/api-maker'
export {swapManagerMaker} from './manager'
diff --git a/packages/swap/src/manager.mocks.ts b/packages/swap/src/manager.mocks.ts
index 60f2f3bcc9..ceda6e3202 100644
--- a/packages/swap/src/manager.mocks.ts
+++ b/packages/swap/src/manager.mocks.ts
@@ -1,6 +1,9 @@
import {Portfolio, Swap} from '@yoroi/types'
import {apiMocks} from './adapters/openswap-api/api.mocks'
import {tokenInfoMocks} from '@yoroi/portfolio'
+import {makeOrderCalculations} from './helpers/orders/factories/makeOrderCalculations'
+import {getBestPoolCalculation} from './helpers/pools/getBestPoolCalculation'
+import {selectedPoolCalculationSelector} from './translators/reactjs/state/selectors/selectedPoolCalculationSelector'
const loading = () => new Promise(() => {})
const unknownError = () => Promise.reject(new Error('Unknown error'))
@@ -208,6 +211,9 @@ export const mockSwapManager: Swap.Manager = {
primaryTokenInfo: tokenInfoMocks.primaryETH,
aggregatorTokenId: undefined,
frontendFeeTiers: [] as const,
+ makeOrderCalculations,
+ getBestPoolCalculation,
+ selectedPoolCalculationSelector,
} as const
export const mockSwapManagerDefault: Swap.Manager = {
@@ -241,4 +247,7 @@ export const mockSwapManagerDefault: Swap.Manager = {
frontendFeeTiers: [] as const,
aggregatorTokenId: undefined,
aggregator: 'muesliswap',
+ makeOrderCalculations,
+ getBestPoolCalculation,
+ selectedPoolCalculationSelector,
} as const
diff --git a/packages/swap/src/manager.ts b/packages/swap/src/manager.ts
index 779df62ec2..0153b69cdc 100644
--- a/packages/swap/src/manager.ts
+++ b/packages/swap/src/manager.ts
@@ -1,4 +1,7 @@
import {App, Portfolio, Swap} from '@yoroi/types'
+import {makeOrderCalculations} from './helpers/orders/factories/makeOrderCalculations'
+import {getBestPoolCalculation} from './helpers/pools/getBestPoolCalculation'
+import {selectedPoolCalculationSelector} from './translators/reactjs/state/selectors/selectedPoolCalculationSelector'
export const swapManagerMaker = ({
swapStorage,
@@ -67,5 +70,8 @@ export const swapManagerMaker = ({
frontendFeeTiers,
aggregator,
aggregatorTokenId,
+ makeOrderCalculations,
+ getBestPoolCalculation,
+ selectedPoolCalculationSelector,
} as const
}
diff --git a/packages/swap/src/translators/reactjs/state/selectors/selectedPoolCalculationSelector.test.ts b/packages/swap/src/translators/reactjs/state/selectors/selectedPoolCalculationSelector.test.ts
index b73593c105..8a2b6f3f69 100644
--- a/packages/swap/src/translators/reactjs/state/selectors/selectedPoolCalculationSelector.test.ts
+++ b/packages/swap/src/translators/reactjs/state/selectors/selectedPoolCalculationSelector.test.ts
@@ -1,21 +1,18 @@
-import {SwapOrderCalculation} from '../../../../types'
-import {SwapState} from '../state' // adjust the import path
-import {mockSwapStateDefault} from '../state.mocks'
+import {Swap} from '@yoroi/types'
import {selectedPoolCalculationSelector} from './selectedPoolCalculationSelector'
describe('selectedPoolCalculationSelector', () => {
it('should return the best pool from calculations when type is limit and selectedPoolId matches', () => {
- const orderData: SwapState['orderData'] = {
- ...mockSwapStateDefault.orderData,
- type: 'limit',
+ const orderData = {
+ type: 'limit' as Swap.OrderType,
selectedPoolId: '1',
calculations: [
- {pool: {poolId: '1'}} as SwapOrderCalculation,
- {pool: {poolId: '2'}} as SwapOrderCalculation,
+ {pool: {poolId: '1'}} as Swap.OrderCalculation,
+ {pool: {poolId: '2'}} as Swap.OrderCalculation,
],
bestPoolCalculation: {
pool: {poolId: '3'},
- } as SwapOrderCalculation,
+ } as Swap.OrderCalculation,
}
const selected = selectedPoolCalculationSelector(orderData)
@@ -23,15 +20,14 @@ describe('selectedPoolCalculationSelector', () => {
})
it('should return the state bestPoolCalculation when no match is found in calculations', () => {
- const orderData: SwapState['orderData'] = {
- ...mockSwapStateDefault.orderData,
- type: 'limit',
+ const orderData = {
+ type: 'limit' as Swap.OrderType,
selectedPoolId: '3',
calculations: [
- {pool: {poolId: '1'}} as SwapOrderCalculation,
- {pool: {poolId: '2'}} as SwapOrderCalculation,
+ {pool: {poolId: '1'}} as Swap.OrderCalculation,
+ {pool: {poolId: '2'}} as Swap.OrderCalculation,
],
- bestPoolCalculation: {pool: {poolId: '3'}} as SwapOrderCalculation,
+ bestPoolCalculation: {pool: {poolId: '3'}} as Swap.OrderCalculation,
}
const selected = selectedPoolCalculationSelector(orderData)
@@ -39,15 +35,14 @@ describe('selectedPoolCalculationSelector', () => {
})
it('should return state bestPool when type is market', () => {
- const orderData: SwapState['orderData'] = {
- ...mockSwapStateDefault.orderData,
- type: 'market',
+ const orderData = {
+ type: 'market' as Swap.OrderType,
selectedPoolId: '1',
calculations: [
- {pool: {poolId: '1'}} as SwapOrderCalculation,
- {pool: {poolId: '2'}} as SwapOrderCalculation,
+ {pool: {poolId: '1'}} as Swap.OrderCalculation,
+ {pool: {poolId: '2'}} as Swap.OrderCalculation,
],
- bestPoolCalculation: {pool: {poolId: '3'}} as SwapOrderCalculation,
+ bestPoolCalculation: {pool: {poolId: '3'}} as Swap.OrderCalculation,
}
const selected = selectedPoolCalculationSelector(orderData)
@@ -55,15 +50,14 @@ describe('selectedPoolCalculationSelector', () => {
})
it('should return the the current bestPoolCalculation when no selectedPoolId', () => {
- const orderData: SwapState['orderData'] = {
- ...mockSwapStateDefault.orderData,
- type: 'limit',
+ const orderData = {
+ type: 'limit' as Swap.OrderType,
selectedPoolId: undefined,
calculations: [
- {pool: {poolId: '1'}} as SwapOrderCalculation,
- {pool: {poolId: '2'}} as SwapOrderCalculation,
+ {pool: {poolId: '1'}} as Swap.OrderCalculation,
+ {pool: {poolId: '2'}} as Swap.OrderCalculation,
],
- bestPoolCalculation: {pool: {poolId: '3'}} as SwapOrderCalculation,
+ bestPoolCalculation: {pool: {poolId: '3'}} as Swap.OrderCalculation,
}
const selected = selectedPoolCalculationSelector(orderData)
diff --git a/packages/swap/src/translators/reactjs/state/selectors/selectedPoolCalculationSelector.ts b/packages/swap/src/translators/reactjs/state/selectors/selectedPoolCalculationSelector.ts
index ae32960e71..15f7856ac6 100644
--- a/packages/swap/src/translators/reactjs/state/selectors/selectedPoolCalculationSelector.ts
+++ b/packages/swap/src/translators/reactjs/state/selectors/selectedPoolCalculationSelector.ts
@@ -1,11 +1,17 @@
-import {SwapOrderCalculation} from '../../../../types'
-import {SwapState} from '../state'
+import {Swap} from '@yoroi/types'
-export const selectedPoolCalculationSelector = (
- orderData: SwapState['orderData'],
-): SwapOrderCalculation | undefined => {
- const {type, selectedPoolId, calculations, bestPoolCalculation} = orderData
- let calculation: SwapOrderCalculation | undefined
+export const selectedPoolCalculationSelector = ({
+ type,
+ selectedPoolId,
+ calculations,
+ bestPoolCalculation,
+}: {
+ type: Swap.OrderType
+ selectedPoolId?: string
+ calculations: Array
+ bestPoolCalculation?: Swap.OrderCalculation
+}): Swap.OrderCalculation | undefined => {
+ let calculation: Swap.OrderCalculation | undefined
// can only select a pool if is a limit order type
// otherwise will return the current state value for it
diff --git a/packages/swap/src/translators/reactjs/state/state.ts b/packages/swap/src/translators/reactjs/state/state.ts
index 8d16215ca2..8267d3b93e 100644
--- a/packages/swap/src/translators/reactjs/state/state.ts
+++ b/packages/swap/src/translators/reactjs/state/state.ts
@@ -4,7 +4,6 @@ import {freeze, produce} from 'immer'
import {makeOrderCalculations} from '../../../helpers/orders/factories/makeOrderCalculations'
import {selectedPoolCalculationSelector} from './selectors/selectedPoolCalculationSelector'
import {getBestPoolCalculation} from '../../../helpers/pools/getBestPoolCalculation'
-import {SwapOrderCalculation} from '../../../types'
export type SwapState = Readonly<{
orderData: {
@@ -19,7 +18,7 @@ export type SwapState = Readonly<{
// when limit can manually select a pool
selectedPoolId?: string
- selectedPoolCalculation?: SwapOrderCalculation
+ selectedPoolCalculation?: Swap.OrderCalculation
slippage: number
@@ -36,8 +35,8 @@ export type SwapState = Readonly<{
pools: ReadonlyArray
// derivaded data
- calculations: ReadonlyArray
- bestPoolCalculation?: SwapOrderCalculation
+ calculations: ReadonlyArray
+ bestPoolCalculation?: Swap.OrderCalculation
}
unsignedTx: any
}>
@@ -248,7 +247,12 @@ const orderReducer = (
draft.orderData.calculations,
)
draft.orderData.selectedPoolCalculation =
- selectedPoolCalculationSelector(draft.orderData)
+ selectedPoolCalculationSelector({
+ type: draft.orderData.type,
+ selectedPoolId: draft.orderData.selectedPoolId,
+ calculations: draft.orderData.calculations,
+ bestPoolCalculation: draft.orderData.bestPoolCalculation,
+ })
if (
!draft.orderData.amounts.buy ||
@@ -279,7 +283,12 @@ const orderReducer = (
draft.orderData.selectedPoolId = action.poolId
draft.orderData.selectedPoolCalculation =
- selectedPoolCalculationSelector(draft.orderData)
+ selectedPoolCalculationSelector({
+ type: draft.orderData.type,
+ selectedPoolId: draft.orderData.selectedPoolId,
+ calculations: draft.orderData.calculations,
+ bestPoolCalculation: draft.orderData.bestPoolCalculation,
+ })
if (
!draft.orderData.amounts.sell ||
@@ -316,7 +325,12 @@ const orderReducer = (
draft.orderData.calculations,
)
draft.orderData.selectedPoolCalculation =
- selectedPoolCalculationSelector(draft.orderData)
+ selectedPoolCalculationSelector({
+ type: draft.orderData.type,
+ selectedPoolId: draft.orderData.selectedPoolId,
+ calculations: draft.orderData.calculations,
+ bestPoolCalculation: draft.orderData.bestPoolCalculation,
+ })
break
// when switching and the type is limit can end up with weird amounts
@@ -347,7 +361,12 @@ const orderReducer = (
draft.orderData.calculations,
)
draft.orderData.selectedPoolCalculation =
- selectedPoolCalculationSelector(draft.orderData)
+ selectedPoolCalculationSelector({
+ type: draft.orderData.type,
+ selectedPoolId: draft.orderData.selectedPoolId,
+ calculations: draft.orderData.calculations,
+ bestPoolCalculation: draft.orderData.bestPoolCalculation,
+ })
if (
!draft.orderData.amounts.buy ||
@@ -396,7 +415,12 @@ const orderReducer = (
draft.orderData.calculations,
)
draft.orderData.selectedPoolCalculation =
- selectedPoolCalculationSelector(draft.orderData)
+ selectedPoolCalculationSelector({
+ type: draft.orderData.type,
+ selectedPoolId: draft.orderData.selectedPoolId,
+ calculations: draft.orderData.calculations,
+ bestPoolCalculation: draft.orderData.bestPoolCalculation,
+ })
draft.orderData.limitPrice =
state.orderData.type === 'limit'
@@ -428,7 +452,12 @@ const orderReducer = (
draft.orderData.calculations,
)
draft.orderData.selectedPoolCalculation =
- selectedPoolCalculationSelector(draft.orderData)
+ selectedPoolCalculationSelector({
+ type: draft.orderData.type,
+ selectedPoolId: draft.orderData.selectedPoolId,
+ calculations: draft.orderData.calculations,
+ bestPoolCalculation: draft.orderData.bestPoolCalculation,
+ })
if (
!draft.orderData.amounts.buy ||
@@ -465,7 +494,12 @@ const orderReducer = (
draft.orderData.calculations,
)
draft.orderData.selectedPoolCalculation =
- selectedPoolCalculationSelector(draft.orderData)
+ selectedPoolCalculationSelector({
+ type: draft.orderData.type,
+ selectedPoolId: draft.orderData.selectedPoolId,
+ calculations: draft.orderData.calculations,
+ bestPoolCalculation: draft.orderData.bestPoolCalculation,
+ })
if (
!draft.orderData.selectedPoolCalculation ||
@@ -501,7 +535,12 @@ const orderReducer = (
draft.orderData.calculations,
)
draft.orderData.selectedPoolCalculation =
- selectedPoolCalculationSelector(draft.orderData)
+ selectedPoolCalculationSelector({
+ type: draft.orderData.type,
+ selectedPoolId: draft.orderData.selectedPoolId,
+ calculations: draft.orderData.calculations,
+ bestPoolCalculation: draft.orderData.bestPoolCalculation,
+ })
if (
!draft.orderData.selectedPoolCalculation ||
@@ -600,7 +639,12 @@ const orderReducer = (
draft.orderData.calculations,
)
draft.orderData.selectedPoolCalculation =
- selectedPoolCalculationSelector(draft.orderData)
+ selectedPoolCalculationSelector({
+ type: draft.orderData.type,
+ selectedPoolId: draft.orderData.selectedPoolId,
+ calculations: draft.orderData.calculations,
+ bestPoolCalculation: draft.orderData.bestPoolCalculation,
+ })
if (
!draft.orderData.selectedPoolCalculation ||
@@ -633,7 +677,12 @@ const orderReducer = (
draft.orderData.calculations,
)
draft.orderData.selectedPoolCalculation =
- selectedPoolCalculationSelector(draft.orderData)
+ selectedPoolCalculationSelector({
+ type: draft.orderData.type,
+ selectedPoolId: draft.orderData.selectedPoolId,
+ calculations: draft.orderData.calculations,
+ bestPoolCalculation: draft.orderData.bestPoolCalculation,
+ })
if (
!draft.orderData.amounts.buy ||
@@ -666,7 +715,12 @@ const orderReducer = (
draft.orderData.calculations,
)
draft.orderData.selectedPoolCalculation =
- selectedPoolCalculationSelector(draft.orderData)
+ selectedPoolCalculationSelector({
+ type: draft.orderData.type,
+ selectedPoolId: draft.orderData.selectedPoolId,
+ calculations: draft.orderData.calculations,
+ bestPoolCalculation: draft.orderData.bestPoolCalculation,
+ })
draft.orderData.limitPrice = undefined
draft.orderData.selectedPoolId = undefined
diff --git a/packages/types/src/index.ts b/packages/types/src/index.ts
index 021ba15cf1..8f738b91ab 100644
--- a/packages/types/src/index.ts
+++ b/packages/types/src/index.ts
@@ -270,6 +270,10 @@ import {
NotificationTransactionReceivedEvent,
NotificationTrigger,
} from './notifications/manager'
+import {
+ SwapMakeOrderCalculation,
+ SwapOrderCalculation,
+} from './swap/calculations'
export namespace App {
export namespace Errors {
@@ -358,6 +362,10 @@ export namespace Swap {
export type SupportedProvider = SwapSupportedProvider
export type Storage = SwapStorage
+
+ export type MakeOrderCalculation = SwapMakeOrderCalculation
+
+ export type OrderCalculation = SwapOrderCalculation
}
export namespace Balance {
diff --git a/packages/swap/src/types.ts b/packages/types/src/swap/calculations.ts
similarity index 66%
rename from packages/swap/src/types.ts
rename to packages/types/src/swap/calculations.ts
index 2f471a3a5a..25513f6708 100644
--- a/packages/swap/src/types.ts
+++ b/packages/types/src/swap/calculations.ts
@@ -1,4 +1,23 @@
-import {App, Portfolio, Swap} from '@yoroi/types'
+import {App, Portfolio, Swap} from '..'
+
+export type SwapMakeOrderCalculation = Readonly<{
+ orderType: Swap.OrderType
+ amounts: {
+ sell?: Portfolio.Token.Amount
+ buy?: Portfolio.Token.Amount
+ }
+ limitPrice?: string
+ pools: ReadonlyArray
+ lpTokenHeld?: Portfolio.Token.Amount
+ slippage: number
+ side?: 'buy' | 'sell'
+ frontendFeeTiers: ReadonlyArray
+ tokens: {
+ ptInfo?: Portfolio.Token.Info
+ priceDenomination: number
+ }
+ priceDecimals?: number
+}>
export type SwapOrderCalculation = Readonly<{
order: {
diff --git a/packages/types/src/swap/manager.ts b/packages/types/src/swap/manager.ts
index 85861f1cf3..9d1a41a9b8 100644
--- a/packages/types/src/swap/manager.ts
+++ b/packages/types/src/swap/manager.ts
@@ -3,6 +3,8 @@ import {PortfolioTokenInfo} from '../portfolio/info'
import {PortfolioTokenId} from '../portfolio/token'
import {SwapAggregator} from './aggregator'
import {SwapApi} from './api'
+import {SwapMakeOrderCalculation, SwapOrderCalculation} from './calculations'
+import {SwapOrderType} from './order'
import {SwapPoolProvider} from './pool'
import {SwapStorage} from './storage'
@@ -37,4 +39,16 @@ export type SwapManager = Readonly<{
aggregator: SwapAggregator
aggregatorTokenId?: PortfolioTokenId
frontendFeeTiers: ReadonlyArray
+ makeOrderCalculations(
+ args: SwapMakeOrderCalculation,
+ ): Array
+ getBestPoolCalculation(
+ calculations: Array,
+ ): SwapOrderCalculation | undefined
+ selectedPoolCalculationSelector(args: {
+ type: SwapOrderType
+ selectedPoolId?: string
+ calculations: Array
+ bestPoolCalculation?: SwapOrderCalculation
+ }): SwapOrderCalculation | undefined
}>