Files
pezkuwi-wallet-android/app/src/main/res/navigation/split_screen_nav_graph.xml
T
pezkuwichain 52e5645409 Split Bridge into input and dedicated execution screens, matching Swap
The single-screen design (amount input + live balance validation + submit
+ destination-wait, all in one ViewModel) was structurally fragile: the
live origin-balance observer and the amount-vs-balance validation ran in
the same reactive scope as execution, so a real successful transfer could
flash a false "insufficient balance" error the instant the balance dropped
post-submission. Patching that race (clearing the field, then an isExecuting
flag) kept fixing symptoms without addressing why the class of bug existed:
the app's own Swap flow avoids it entirely by keeping amount entry and
execution as separate screens/ViewModels, so validation code for the input
screen simply doesn't exist on the execution screen.

BridgeExecutionViewModel/Fragment now own the actual submit + destination-
wait, reached by navigating with a BridgeExecutionPayload once
BridgeViewModel.swapClicked() re-validates amount against the latest known
balance/reserve - a real confirmation gate, not just a UI button-disabled
look the domain layer never itself checked. A single BridgeExecutionState
sealed class (SubmittingOrigin/OriginFailed/WaitingForDestination/
DestinationConfirmed/DestinationPendingReview) replaces what used to be six
independently-updated LiveData flags that had to be kept in sync by hand.

Also fixed two real bugs found via live device testing with real funds:
- BridgeMultisigConstants.POLKADOT_USDT_ASSET_ID was 1 (the wallet's own
  chains.json ordinal for USDT on Polkadot Asset Hub) instead of 1984 (the
  real on-chain Assets pallet id, confirmed directly against the chain).
  getPolkadotUsdtReserve() queried asset 1, which the multisig has never
  held anything at, so the wUSDT->USDT reserve check always reported 0
  USDT available regardless of the multisig's real (and growing) holdings.
- The deposit-wait label's text was static XML, never updated on the
  success path - a genuinely completed bridge (destination balance
  confirmed, checkmark shown) still read "Waiting for confirmation..."
  forever, indistinguishable from actually being stuck. The new execution
  screen's label is driven by BridgeExecutionState instead.
2026-07-15 16:12:03 -07:00

1448 lines
60 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/split_screen_nav_graph"
app:startDestination="@id/mainFragment">
<include app:graph="@navigation/import_nav_graph" />
<include app:graph="@navigation/onboarding_nav_graph" />
<include app:graph="@navigation/start_swap_nav_graph" />
<include app:graph="@navigation/manage_tokens_graph" />
<include app:graph="@navigation/sign_parity_signer_graph" />
<include app:graph="@navigation/sign_ledger_nav_graph" />
<include app:graph="@navigation/add_ledger_chain_account_graph" />
<include app:graph="@navigation/referendum_details_graph" />
<include app:graph="@navigation/referendum_unlock_graph" />
<include app:graph="@navigation/delegation_nav_graph" />
<include app:graph="@navigation/your_delegations_nav_graph" />
<include app:graph="@navigation/referenda_search_graph" />
<include app:graph="@navigation/wallet_connect_nav_graph" />
<include app:graph="@navigation/external_sign_graph" />
<include app:graph="@navigation/staking_main_graph" />
<include app:graph="@navigation/push_settings_graph" />
<include app:graph="@navigation/cloud_backup_settings_graph" />
<include app:graph="@navigation/manual_backup_graph" />
<include app:graph="@navigation/import_wallet_options_nav_graph" />
<include app:graph="@navigation/create_wallet_nav_graph" />
<include app:graph="@navigation/network_management_graph" />
<include app:graph="@navigation/tinder_gov_graph" />
<include app:graph="@navigation/select_swap_token_nav_graph" />
<include app:graph="@navigation/nova_card_graph" />
<include app:graph="@navigation/mnemonic_nav_graph" />
<include app:graph="@navigation/multisig_pending_operations_graph" />
<include app:graph="@navigation/add_evm_account_generic_ledger_graph" />
<include app:graph="@navigation/multisig_operation_details_graph" />
<include app:graph="@navigation/gifts_nav_graph" />
<action
android:id="@+id/action_returnToMainScreen"
app:destination="@id/mainFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit"
app:popUpTo="@id/mainFragment"
app:popUpToInclusive="true" />
<action
android:id="@+id/action_importWalletOptionsFragment"
app:destination="@id/import_wallet_options_nav_graph"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/open_pincode_check"
app:destination="@+id/pincodeFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/action_open_send"
app:destination="@id/selectSendFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/action_open_receive"
app:destination="@id/receiveFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/open_transfer_detail"
app:destination="@id/transferDetailFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/open_reward_detail"
app:destination="@id/rewardDetailFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/open_pool_reward_detail"
app:destination="@id/poolRewardDetailFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/open_swap_detail"
app:destination="@id/swapDetailFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/open_extrinsic_detail"
app:destination="@id/extrinsicDetailFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/action_open_onboarding"
app:destination="@+id/onboarding_nav_graph"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/action_open_create_new_wallet"
app:destination="@+id/create_wallet_nav_graph"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/action_return_to_wallet"
app:destination="@id/mainFragment"
app:enterAnim="@anim/fragment_close_enter"
app:exitAnim="@anim/fragment_close_exit"
app:launchSingleTop="true"
app:popEnterAnim="@anim/fragment_open_enter"
app:popExitAnim="@anim/fragment_open_exit"
app:popUpTo="@id/split_screen_nav_graph" />
<action
android:id="@+id/action_export_seed"
app:destination="@id/exportSeedFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/action_export_json"
app:destination="@id/exportJsonPasswordFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/action_open_switch_wallet"
app:destination="@id/switchWalletFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/action_open_select_address"
app:destination="@id/selectAddressFragment" />
<action
android:id="@+id/action_open_select_single_wallet"
app:destination="@id/selectSingleWalletFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/action_open_select_multiple_wallets"
app:destination="@id/selectMultipleWalletsFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/action_open_accounts"
app:destination="@id/accountsFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/action_open_account_details"
app:destination="@id/walletDetailsFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/action_openClaimGiftFragment"
app:destination="@id/claimGiftFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/action_import_nav_graph"
app:destination="@id/import_nav_graph"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/action_open_sign_parity_signer"
app:destination="@id/sign_parity_signer_graph"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/action_open_sign_ledger"
app:destination="@id/sign_ledger_nav_graph"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/action_open_referendum_details"
app:destination="@id/referendum_details_graph"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/action_open_scanWalletConnect"
app:destination="@id/walletConnectScanFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/action_open_select_wallet"
app:destination="@id/selectWalletFragment" />
<action
android:id="@+id/action_open_approve_wallet_connect_session"
app:destination="@id/walletConnectApproveSessionFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/action_open_referenda_search"
app:destination="@id/referenda_search_graph"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/action_open_referenda_filters"
app:destination="@id/referendaFiltersFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/open_validator_details"
app:destination="@id/validatorDetailsFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/action_open_swapSetupAmount"
app:destination="@id/start_swap_nav_graph"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/action_open_novaCard"
app:destination="@id/nova_card_graph"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/action_open_pushNotificationsWelcome"
app:destination="@id/pushNotificationsWelcomeFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/action_open_pushNotificationsSettings"
app:destination="@id/push_settings_graph"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/action_open_cloudBackupSettings"
app:destination="@id/cloud_backup_settings_graph"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/action_open_manualBackupSelectWallet"
app:destination="@id/manual_backup_graph"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/action_scan_seed"
app:destination="@id/scanSeedFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/action_open_networkManagement"
app:destination="@id/network_management_graph"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/action_open_select_governance_tracks"
app:destination="@id/selectGovernanceTracks"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/action_openTinderGovCards"
app:destination="@id/tinder_gov_graph"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/action_open_dapp_favorites"
app:destination="@id/dappFavorites"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/action_onboarding"
app:destination="@id/onboarding_nav_graph"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/action_tradeProvidersFragment"
app:destination="@id/tradeProvidersFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/action_open_topUpAddress"
app:destination="@id/topUpAddressFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/action_open_multisigCreatedDialog"
app:destination="@id/multisigCreatedDialog" />
<action
android:id="@+id/action_multisigOperationDetailsFragment"
app:destination="@id/multisig_operation_details_graph"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/action_open_gifts"
app:destination="@id/gifts_nav_graph"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<fragment
android:id="@+id/mainFragment"
android:name="io.novafoundation.nova.app.root.presentation.main.MainFragment"
android:label="fragment_profile"
tools:layout="@layout/fragment_main">
<action
android:id="@+id/action_mainFragment_to_nodesFragment"
app:destination="@id/nodesFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/action_mainFragment_to_balanceDetailFragment"
app:destination="@id/balanceDetailFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/action_mainFragment_to_languagesFragment"
app:destination="@id/languagesFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/action_mainFragment_to_appearanceFragment"
app:destination="@id/appearanceFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/action_mainFragment_to_currenciesFragment"
app:destination="@id/selectCurrencyFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/action_change_pin_code"
app:destination="@id/pincodeFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/action_mainFragment_to_crowdloanContributeFragment"
app:destination="@id/crowdloanContributeFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/action_mainFragment_to_moonbeamCrowdloanTermsFragment"
app:destination="@id/moonbeamCrowdloanTermsFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/action_mainFragment_to_userContributionsGraph"
app:destination="@+id/crowdloan_contributions_graph"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/action_mainFragment_to_nfts_nav_graph"
app:destination="@id/nfts_nav_graph"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/action_mainFragment_to_authorizedDAppsFragment"
app:destination="@id/authorizedDAppsFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/action_mainFragment_to_assetSearchFragment"
app:destination="@id/assetSearchFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/action_mainFragment_to_manageTokensGraph"
app:destination="@id/manage_tokens_graph"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/action_mainFragment_to_governanceLocksOverview"
app:destination="@id/referendum_unlock_graph"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/action_mainFragment_to_delegation"
app:destination="@id/delegation_nav_graph"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/action_mainFragment_to_your_delegation"
app:destination="@id/your_delegations_nav_graph"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/action_mainFragment_to_walletConnectGraph"
app:destination="@id/wallet_connect_nav_graph"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/action_mainFragment_to_stakingGraph"
app:destination="@id/staking_main_graph"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/action_mainFragment_to_startStackingLanding"
app:destination="@id/start_staking_nav_graph"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/action_mainFragment_to_sendFlow"
app:destination="@id/sendFlowFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/action_mainFragment_to_receiveFlow"
app:destination="@id/receiveFlowFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/action_mainFragment_to_buyFlow"
app:destination="@id/buyFlowFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/action_mainFragment_to_sellFlow"
app:destination="@id/sellFlowFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/action_mainFragment_to_bridgeFlow"
app:destination="@id/bridgeFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/action_mainFragment_to_swapFlow"
app:destination="@id/select_swap_token_nav_graph"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/action_mainFragment_to_multisigPendingOperationsFlow"
app:destination="@id/multisig_pending_operations_graph"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
</fragment>
<fragment
android:id="@+id/accountsFragment"
android:name="io.novafoundation.nova.feature_account_impl.presentation.account.management.WalletManagmentFragment"
android:label="AccountsFragment"
tools:layout="@layout/fragment_accounts">
<action
android:id="@+id/action_walletManagment_to_welcome"
app:destination="@id/onboarding_nav_graph"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit"
app:popUpTo="@id/mainFragment"
app:popUpToInclusive="true" />
</fragment>
<include app:graph="@navigation/start_staking_nav_graph" />
<dialog
android:id="@+id/delegatedAccountUpdatesFragment"
android:name="io.novafoundation.nova.feature_account_impl.presentation.account.list.delegationUpdates.DelegatedAccountUpdatesBottomSheet"
android:label="DelegatedAccountUpdatesBottomSheet"
tools:layout="@layout/bottom_sheet_delegated_account_updates" />
<dialog
android:id="@+id/switchWalletFragment"
android:name="io.novafoundation.nova.feature_account_impl.presentation.account.list.switching.SwitchWalletFragment"
android:label="SwitchWalletFragment"
tools:layout="@layout/bottom_sheet_dynamic_list">
<action
android:id="@+id/action_switchWalletFragment_to_delegatedAccountUpdates"
app:destination="@id/delegatedAccountUpdatesFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
</dialog>
<dialog
android:id="@+id/selectAddressFragment"
android:name="io.novafoundation.nova.feature_account_impl.presentation.account.list.selectAddress.SelectAddressBottomSheet"
android:label="SelectAddressFragment"
tools:layout="@layout/bottom_sheet_dynamic_list" />
<fragment
android:id="@+id/selectMultipleWalletsFragment"
android:name="io.novafoundation.nova.feature_account_impl.presentation.account.list.multipleSelecting.SelectMultipleWalletsFragment"
android:label="SelectMultipleWalletsFragment"
tools:layout="@layout/fragment_select_multiple_wallets" />
<fragment
android:id="@+id/nodesFragment"
android:name="io.novafoundation.nova.feature_account_impl.presentation.node.list.NodesFragment"
android:label="NodesFragment"
tools:layout="@layout/fragment_nodes">
<action
android:id="@+id/action_nodesFragment_to_nodeDetailsFragment"
app:destination="@id/nodeDetailsFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/action_nodesFragment_to_addNodeFragment"
app:destination="@id/addNodeFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/action_nodes_to_onboarding"
app:destination="@+id/onboarding_nav_graph"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
</fragment>
<fragment
android:id="@+id/nodeDetailsFragment"
android:name="io.novafoundation.nova.feature_account_impl.presentation.node.details.NodeDetailsFragment"
android:label="NodeDetailsFragment"
tools:layout="@layout/fragment_node_details" />
<fragment
android:id="@+id/addNodeFragment"
android:name="io.novafoundation.nova.feature_account_impl.presentation.node.add.AddNodeFragment"
android:label="AddNodeFragment"
tools:layout="@layout/fragment_node_add" />
<fragment
android:id="@+id/selectCurrencyFragment"
android:name="io.novafoundation.nova.feature_currency_impl.presentation.currency.SelectCurrencyFragment"
android:label="SelectCurrensyFragment"
tools:layout="@layout/fragment_select_currency" />
<fragment
android:id="@+id/languagesFragment"
android:name="io.novafoundation.nova.feature_account_impl.presentation.language.LanguagesFragment"
android:label="LanguagesFragment"
tools:layout="@layout/fragment_languages" />
<fragment
android:id="@+id/appearanceFragment"
android:name="io.novafoundation.nova.feature_settings_impl.presentation.assetIcons.AppearanceFragment"
android:label="AppearanceFragment"
tools:layout="@layout/fragment_appearance" />
<fragment
android:id="@+id/walletDetailsFragment"
android:name="io.novafoundation.nova.feature_account_impl.presentation.account.details.WalletDetailsFragment"
android:label="WalletDetailsFragment"
tools:layout="@layout/fragment_wallet_details">
<action
android:id="@+id/action_accountDetailsFragment_to_mnemonic_nav_graph"
app:destination="@id/mnemonic_nav_graph"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/action_accountDetailsFragment_to_changeWatchAccountFragment"
app:destination="@id/changeWatchAccountFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/action_accountDetailsFragment_to_addLedgerAccountGraph"
app:destination="@id/add_ledger_chain_account_graph"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/action_accountDetailsFragment_to_addEvmAccountGenericLedgerGraph"
app:destination="@id/add_evm_account_generic_ledger_graph"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
</fragment>
<fragment
android:id="@+id/changeWatchAccountFragment"
android:name="io.novafoundation.nova.feature_account_impl.presentation.watchOnly.change.ChangeWatchAccountFragment"
android:label="ChangeWatchAccountFragment"
tools:layout="@layout/fragment_change_watch_wallet" />
<action
android:id="@+id/action_open_mnemonic_nav_graph"
app:destination="@id/mnemonic_nav_graph"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<fragment
android:id="@+id/balanceDetailFragment"
android:name="io.novafoundation.nova.feature_assets.presentation.balance.detail.BalanceDetailFragment"
android:label="BalanceDetailFragment"
tools:layout="@layout/fragment_balance_detail">
<action
android:id="@+id/action_balanceDetailFragment_to_balanceDetailFragment"
app:destination="@id/balanceDetailFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit"
app:popUpTo="@id/balanceDetailFragment"
app:popUpToInclusive="true" />
</fragment>
<fragment
android:id="@+id/transferDetailFragment"
android:name="io.novafoundation.nova.feature_assets.presentation.transaction.detail.transfer.TransferDetailFragment"
android:label="TransferDetailFragment"
tools:layout="@layout/fragment_transfer_details" />
<fragment
android:id="@+id/extrinsicDetailFragment"
android:name="io.novafoundation.nova.feature_assets.presentation.transaction.detail.extrinsic.ExtrinsicDetailFragment"
android:label="ExtrinsicDetailFragment"
tools:layout="@layout/fragment_extrinsic_details" />
<fragment
android:id="@+id/rewardDetailFragment"
android:name="io.novafoundation.nova.feature_assets.presentation.transaction.detail.reward.direct.RewardDetailFragment"
android:label="RewardDetailFragment"
tools:layout="@layout/fragment_reward_slash_details" />
<fragment
android:id="@+id/poolRewardDetailFragment"
android:name="io.novafoundation.nova.feature_assets.presentation.transaction.detail.reward.pool.PoolRewardDetailFragment"
android:label="PoolRewardDetailFragment"
tools:layout="@layout/fragment_pool_reward_details" />
<fragment
android:id="@+id/receiveFragment"
android:name="io.novafoundation.nova.feature_assets.presentation.receive.ReceiveFragment"
android:label="ReceiveFragment"
tools:layout="@layout/fragment_receive" />
<fragment
android:id="@+id/selectSendFragment"
android:name="io.novafoundation.nova.feature_assets.presentation.send.amount.SelectSendFragment"
android:label="ChooseAmountFragment"
tools:layout="@layout/fragment_select_send">
<action
android:id="@+id/action_chooseAmountFragment_to_confirmTransferFragment"
app:destination="@id/confirmTransferFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
</fragment>
<action
android:id="@+id/action_mainFragment_to_filterFragment"
app:destination="@id/transactionHistoryFilterFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<fragment
android:id="@+id/transactionHistoryFilterFragment"
android:name="io.novafoundation.nova.feature_assets.presentation.transaction.filter.TransactionHistoryFilterFragment"
android:label="TransactionHistoryFilterFragment" />
<fragment
android:id="@+id/confirmTransferFragment"
android:name="io.novafoundation.nova.feature_assets.presentation.send.confirm.ConfirmSendFragment"
android:label="ConfirmTransferFragment"
tools:layout="@layout/fragment_confirm_send">
<action
android:id="@+id/action_confirmTransferFragment_to_balanceDetailFragment"
app:destination="@+id/balanceDetailFragment"
app:enterAnim="@anim/fragment_close_enter"
app:exitAnim="@anim/fragment_close_exit"
app:popEnterAnim="@anim/fragment_open_enter"
app:popExitAnim="@anim/fragment_open_exit"
app:popUpTo="@id/mainFragment" />
<action
android:id="@+id/action_close_send_flow"
app:enterAnim="@anim/fragment_close_enter"
app:exitAnim="@anim/fragment_close_exit"
app:popEnterAnim="@anim/fragment_open_enter"
app:popExitAnim="@anim/fragment_open_exit"
app:popUpTo="@id/selectSendFragment"
app:popUpToInclusive="true" />
</fragment>
<fragment
android:id="@+id/advancedEncryptionFragment"
android:name="io.novafoundation.nova.feature_account_impl.presentation.account.advancedEncryption.AdvancedEncryptionFragment"
android:label="AdvancedEncryptionFragment"
tools:layout="@layout/fragment_advanced_encryption" />
<action
android:id="@+id/action_open_advancedEncryptionFragment"
app:destination="@+id/advancedEncryptionFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<fragment
android:id="@+id/exportSeedFragment"
android:name="io.novafoundation.nova.feature_account_impl.presentation.exporting.seed.ExportSeedFragment"
android:label="ExportSeedFragment"
tools:layout="@layout/fragment_export_seed" />
<fragment
android:id="@+id/exportJsonPasswordFragment"
android:name="io.novafoundation.nova.feature_account_impl.presentation.exporting.json.ExportJsonFragment"
android:label="ExportJsonPasswordFragment"
tools:layout="@layout/fragment_export_json_password">
<action
android:id="@+id/finish_export_flow"
app:enterAnim="@anim/fragment_close_enter"
app:exitAnim="@anim/fragment_close_exit"
app:popEnterAnim="@anim/fragment_open_enter"
app:popExitAnim="@anim/fragment_open_exit"
app:popUpTo="@+id/exportJsonPasswordFragment"
app:popUpToInclusive="true" />
</fragment>
<fragment
android:id="@+id/pincodeFragment"
android:name="io.novafoundation.nova.feature_account_impl.presentation.pincode.PincodeFragment"
android:label="fragment_pincode"
tools:layout="@layout/fragment_pincode" />
<action
android:id="@+id/back_to_main"
app:enterAnim="@anim/fragment_close_enter"
app:exitAnim="@anim/fragment_close_exit"
app:popEnterAnim="@anim/fragment_open_enter"
app:popExitAnim="@anim/fragment_open_exit"
app:popUpTo="@id/mainFragment" />
<fragment
android:id="@+id/crowdloanContributeFragment"
android:name="io.novafoundation.nova.feature_crowdloan_impl.presentation.contribute.select.CrowdloanContributeFragment"
android:label="CrowdloanContributeFragment"
tools:layout="@layout/fragment_contribute">
<action
android:id="@+id/action_crowdloanContributeFragment_to_confirmContributeFragment"
app:destination="@id/confirmContributeFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/action_crowdloanContributeFragment_to_customContributeFragment"
app:destination="@id/customContributeFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
</fragment>
<fragment
android:id="@+id/confirmContributeFragment"
android:name="io.novafoundation.nova.feature_crowdloan_impl.presentation.contribute.confirm.ConfirmContributeFragment"
android:label="ConfirmContributeFragment"
tools:layout="@layout/fragment_contribute_confirm" />
<fragment
android:id="@+id/customContributeFragment"
android:name="io.novafoundation.nova.feature_crowdloan_impl.presentation.contribute.custom.CustomContributeFragment"
android:label="CustomContributeFragment"
tools:layout="@layout/fragment_custom_contribute" />
<fragment
android:id="@+id/moonbeamCrowdloanTermsFragment"
android:name="io.novafoundation.nova.feature_crowdloan_impl.presentation.contribute.custom.moonbeam.terms.MoonbeamCrowdloanTermsFragment"
android:label="MoonbeamCrowdloanTermsFragment"
tools:layout="@layout/fragment_moonbeam_terms">
<action
android:id="@+id/action_moonbeamCrowdloanTermsFragment_to_crowdloanContributeFragment"
app:destination="@id/crowdloanContributeFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit"
app:popUpTo="@id/mainFragment" />
</fragment>
<include app:graph="@navigation/crowdloan_contributions_graph" />
<include app:graph="@navigation/dapp_search_graph" />
<include app:graph="@navigation/nfts_nav_graph" />
<fragment
android:id="@+id/authorizedDAppsFragment"
android:name="io.novafoundation.nova.feature_dapp_impl.presentation.authorizedDApps.AuthorizedDAppsFragment"
android:label="AuthorizedDAppsFragment"
tools:layout="@layout/fragment_authorized_dapps" />
<fragment
android:id="@+id/referendaFiltersFragment"
android:name="io.novafoundation.nova.feature_governance_impl.presentation.referenda.filters.ReferendaFiltersFragment"
android:label="ReferendaFiltersFragment" />
<fragment
android:id="@+id/assetSearchFragment"
android:name="io.novafoundation.nova.feature_assets.presentation.balance.search.AssetSearchFragment"
android:label="AssetSearchFragment">
<action
android:id="@+id/action_assetSearchFragment_to_balanceDetailFragment"
app:destination="@id/balanceDetailFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit"
app:popUpTo="@id/mainFragment" />
</fragment>
<fragment
android:id="@+id/stakingPeriods"
android:name="io.novafoundation.nova.feature_staking_impl.presentation.period.StakingPeriodFragment"
android:label="StakingPeriodFragment" />
<fragment
android:id="@+id/sendFlowFragment"
android:name="io.novafoundation.nova.feature_assets.presentation.send.flow.asset.AssetSendFlowFragment"
android:label="AssetSendFlowFragment">
<action
android:id="@+id/action_sendFlow_to_buyFlow"
app:destination="@id/buyFlowFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit"
app:popUpTo="@id/mainFragment" />
<action
android:id="@+id/action_sendFlow_to_sendFlowNetwork"
app:destination="@id/sendFlowNetworkFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit"
app:popUpTo="@id/sendFlowFragment"
app:popUpToInclusive="true" />
<action
android:id="@+id/action_sendFlow_to_send"
app:destination="@id/selectSendFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit"
app:popUpTo="@+id/sendFlowFragment"
app:popUpToInclusive="true" />
</fragment>
<fragment
android:id="@+id/receiveFlowFragment"
android:name="io.novafoundation.nova.feature_assets.presentation.receive.flow.asset.AssetReceiveFlowFragment"
android:label="AssetReceiveFlowFragment">
<action
android:id="@+id/action_receiveFlow_to_receiveFlowNetwork"
app:destination="@id/receiveFlowNetworkFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit"
app:popUpTo="@+id/receiveFlowFragment"
app:popUpToInclusive="true" />
<action
android:id="@+id/action_receiveFlow_to_receive"
app:destination="@id/receiveFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit"
app:popUpTo="@+id/receiveFlowFragment"
app:popUpToInclusive="true" />
</fragment>
<fragment
android:id="@+id/buyFlowFragment"
android:name="io.novafoundation.nova.feature_assets.presentation.trade.buy.flow.asset.AssetBuyFlowFragment"
android:label="AssetBuyFlowFragment">
<action
android:id="@+id/action_buyFlow_to_buyFlowNetwork"
app:destination="@id/buyFlowNetworkFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit"
app:popUpTo="@+id/buyFlowFragment"
app:popUpToInclusive="true" />
<action
android:id="@+id/action_buyFlow_to_tradeProvidersFragment"
app:destination="@id/tradeProvidersFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit"
app:popUpTo="@+id/buyFlowFragment"
app:popUpToInclusive="true" />
</fragment>
<fragment
android:id="@+id/sellFlowFragment"
android:name="io.novafoundation.nova.feature_assets.presentation.trade.sell.flow.asset.AssetSellFlowFragment"
android:label="AssetSellFlowFragment">
<action
android:id="@+id/action_sellFlow_to_sellFlowNetwork"
app:destination="@id/sellFlowNetworkFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit"
app:popUpTo="@+id/sellFlowFragment"
app:popUpToInclusive="true" />
<action
android:id="@+id/action_sellFlow_to_tradeProvidersFragment"
app:destination="@id/tradeProvidersFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit"
app:popUpTo="@+id/sellFlowFragment"
app:popUpToInclusive="true" />
</fragment>
<fragment
android:id="@+id/bridgeFragment"
android:name="io.novafoundation.nova.feature_assets.presentation.bridge.BridgeFragment"
android:label="BridgeFragment">
<action
android:id="@+id/action_bridge_to_sendFlow"
app:destination="@id/sendFlowFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
<action
android:id="@+id/action_bridge_to_execution"
app:destination="@id/bridgeExecutionFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
</fragment>
<fragment
android:id="@+id/bridgeExecutionFragment"
android:name="io.novafoundation.nova.feature_assets.presentation.bridge.execution.BridgeExecutionFragment"
android:label="BridgeExecutionFragment"
tools:layout="@layout/fragment_bridge_execution" />
<fragment
android:id="@+id/tradeProvidersFragment"
android:name="io.novafoundation.nova.feature_assets.presentation.trade.provider.TradeProviderListFragment"
android:label="TradeProviderListFragment">
<action
android:id="@+id/action_tradeWebFragment"
app:destination="@id/tradeWebFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit"
app:popUpTo="@+id/tradeProvidersFragment"
app:popUpToInclusive="true" />
</fragment>
<fragment
android:id="@+id/tradeWebFragment"
android:name="io.novafoundation.nova.feature_assets.presentation.trade.webInterface.TradeWebFragment"
android:label="TradeWebFragment">
<action
android:id="@+id/action_tradeWebFragment_to_balanceDetailFragment"
app:destination="@+id/balanceDetailFragment"
app:enterAnim="@anim/fragment_close_enter"
app:exitAnim="@anim/fragment_close_exit"
app:popEnterAnim="@anim/fragment_open_enter"
app:popExitAnim="@anim/fragment_open_exit"
app:popUpTo="@id/tradeWebFragment"
app:popUpToInclusive="true" />
<action
android:id="@+id/action_finishTradeOperation"
app:enterAnim="@anim/fragment_close_enter"
app:exitAnim="@anim/fragment_close_exit"
app:popEnterAnim="@anim/fragment_open_enter"
app:popExitAnim="@anim/fragment_open_exit"
app:popUpTo="@id/tradeWebFragment"
app:popUpToInclusive="true" />
</fragment>
<fragment
android:id="@+id/sendFlowNetworkFragment"
android:name="io.novafoundation.nova.feature_assets.presentation.send.flow.network.NetworkSendFlowFragment"
android:label="NetworkSendFlowFragment">
<action
android:id="@+id/action_sendFlowNetwork_to_send"
app:destination="@id/selectSendFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit"
app:popUpTo="@+id/sendFlowNetworkFragment"
app:popUpToInclusive="true" />
</fragment>
<fragment
android:id="@+id/receiveFlowNetworkFragment"
android:name="io.novafoundation.nova.feature_assets.presentation.receive.flow.network.NetworkReceiveFlowFragment"
android:label="NetworkReceiveFlowFragment">
<action
android:id="@+id/action_receiveFlowNetwork_to_send"
app:destination="@id/selectSendFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit"
app:popUpTo="@+id/receiveFlowNetworkFragment"
app:popUpToInclusive="true" />
<action
android:id="@+id/action_receiveFlowNetwork_to_receive"
app:destination="@id/receiveFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit"
app:popUpTo="@+id/receiveFlowNetworkFragment"
app:popUpToInclusive="true" />
</fragment>
<fragment
android:id="@+id/buyFlowNetworkFragment"
android:name="io.novafoundation.nova.feature_assets.presentation.trade.buy.flow.network.NetworkBuyFlowFragment"
android:label="NetworkBuyFlowFragment">
<action
android:id="@+id/action_buyFlowNetworks_to_tradeProvidersFragment"
app:destination="@id/tradeProvidersFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit"
app:popUpTo="@+id/buyFlowNetworkFragment"
app:popUpToInclusive="true" />
</fragment>
<fragment
android:id="@+id/sellFlowNetworkFragment"
android:name="io.novafoundation.nova.feature_assets.presentation.trade.sell.flow.network.NetworkSellFlowFragment"
android:label="NetworkBuyFlowFragment">
<action
android:id="@+id/action_sellFlowNetworks_to_tradeProvidersFragment"
app:destination="@id/tradeProvidersFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit"
app:popUpTo="@+id/sellFlowNetworkFragment"
app:popUpToInclusive="true" />
</fragment>
<fragment
android:id="@+id/walletConnectScanFragment"
android:name="io.novafoundation.nova.feature_wallet_connect_impl.presentation.scan.WalletConnectScanFragment"
android:label="WalletConnectScanFragment" />
<dialog
android:id="@+id/selectWalletFragment"
android:name="io.novafoundation.nova.feature_account_impl.presentation.mixin.selectWallet.SelectWalletFragment"
android:label="SelectWalletFragment" />
<fragment
android:id="@+id/walletConnectApproveSessionFragment"
android:name="io.novafoundation.nova.feature_wallet_connect_impl.presentation.sessions.approve.WalletConnectApproveSessionFragment"
android:label="WalletConnectApproveSessionFragment" />
<fragment
android:id="@+id/validatorDetailsFragment"
android:name="io.novafoundation.nova.feature_staking_impl.presentation.validators.details.ValidatorDetailsFragment"
android:label="validatorDetailsFragment"
tools:layout="@layout/fragment_validator_details" />
<fragment
android:id="@+id/swapDetailFragment"
android:name="io.novafoundation.nova.feature_assets.presentation.transaction.detail.swap.SwapDetailFragment"
android:label="SwapDetailFragment" />
<fragment
android:id="@+id/pushNotificationsWelcomeFragment"
android:name="io.novafoundation.nova.feature_push_notifications.presentation.welcome.PushWelcomeFragment"
android:label="fragment_profile"
tools:layout="@layout/fragment_push_welcome">
<action
android:id="@+id/action_pushWelcome_to_pushSettings"
app:destination="@id/push_settings_graph"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit"
app:popUpTo="@id/mainFragment" />
</fragment>
<fragment
android:id="@+id/selectGovernanceTracks"
android:name="io.novafoundation.nova.feature_governance_impl.presentation.tracks.select.governanceTracks.SelectGovernanceTracksFragment"
android:label="SelectGovernanceTracksFragment"
tools:layout="@layout/fragment_select_tracks" />
<fragment
android:id="@+id/dappFavorites"
android:name="io.novafoundation.nova.feature_dapp_impl.presentation.favorites.DappFavoritesFragment"
android:label="fragment_favorites"
tools:layout="@layout/fragment_favorites_dapp" />
<fragment
android:id="@+id/topUpAddressFragment"
android:name="io.novafoundation.nova.feature_assets.presentation.topup.TopUpAddressFragment"
android:label="fragment_top_up"
app:useAdd="true"
tools:layout="@layout/fragment_top_up_address">
<action
android:id="@+id/action_finishTopUpFlow"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit"
app:popUpTo="@id/topUpAddressFragment"
app:popUpToInclusive="true" />
</fragment>
<dialog
android:id="@+id/multisigCreatedDialog"
android:name="io.novafoundation.nova.feature_multisig_operations.presentation.created.MultisigCreatedBottomSheet"
android:label="MultisigCreatedBottomSheet">
<action
android:id="@+id/action_multisigCreatedDialog_to_multisigPendingOperationsFlow"
app:destination="@id/multisig_pending_operations_graph"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit"
app:popUpTo="@+id/multisigCreatedDialog"
app:popUpToInclusive="true" />
</dialog>
<fragment
android:id="@+id/selectSingleWalletFragment"
android:name="io.novafoundation.nova.feature_account_impl.presentation.account.list.singleSelecting.SelectSingleWalletFragment"
android:label="SelectSingleWalletFragment"
tools:layout="@layout/fragment_select_single_wallet" />
<fragment
android:id="@+id/claimGiftFragment"
android:name="io.novafoundation.nova.feature_gift_impl.presentation.claim.ClaimGiftFragment"
android:label="ClaimGiftFragment"
tools:layout="@layout/fragment_claim_gift" />
<fragment
android:id="@+id/scanSeedFragment"
android:name="io.novafoundation.nova.feature_account_impl.presentation.seedScan.ScanSeedFragment"
android:label="ScanSeedFragment" />
</navigation>