Skip to content

Conversation

@DRadmir
Copy link
Contributor

@DRadmir DRadmir commented Nov 11, 2025

Summary

Added transfer execution status UI that displays at the bottom of the screen during transaction sending.

Key changes:

  • Created TransferStateService (actor) to manage transfer executions across the app
  • Created TransferStatePresenter (@observable) to expose execution state to UI
  • Added TransferExecutionView that shows transfer progress
  • Displays execution status with priority: error > executing > success
  • Auto-dismisses after 2 seconds on success
  • Added retry flow for failed transfers
  • New executeAsync method for perpetual and swap transactions (iOS 26.0+)

Close: #1268

Known issue: https://developer.apple.com/forums/thread/803428?answerId=861715022#861715022

Screenshots

Simulator.Screen.Recording.-.iPhone.17.Pro.-.2025-11-13.at.12.15.31.mov
Simulator.Screen.Recording.-.iPhone.17.Pro.-.2025-11-13.at.12.16.31.mov

TODO

  • Testing
  • Unit tests

Introduces TransferExecution, ExecutionState, and ConfirmTransferPresentation types to track and present transfer execution states. Adds TransferStateService and TransferStatePresenter for managing and presenting ongoing and past transfer executions. Integrates a bottom accessory view in MainTabView to display transfer execution status, and updates navigation, view models, and services to support the new flow. Refactors transfer confirmation presentation and error handling, and updates related tests and test kits.
…ability-to-close-confirm-screen-and-show-toast-for-transaction

# Conflicts:
#	Features/Transfer/Sources/ViewModels/ConfirmTransferSceneViewModel.swift
Refactored TransferStateService to make its public methods async for better concurrency handling. Updated usages and tests to accommodate async API. Added comprehensive unit tests for TransferStateService, and fixed ConfirmTransferSceneViewModelTests to use the correct mock data structure.
Updated tabViewBottomAccessoryIfAvailable to accept an isVisible parameter, allowing conditional display of the accessory view. MainTabView now passes visibility based on transferStatePresenter.executions.
@DRadmir DRadmir marked this pull request as ready for review November 13, 2025 07:55
@DRadmir DRadmir self-assigned this Nov 14, 2025
…ability-to-close-confirm-screen-and-show-toast-for-transaction

# Conflicts:
#	Gem/Services/ServicesFactory.swift
Added .navigationBarTitleDisplayMode(.inline) to AssetScene to ensure the navigation title is displayed in inline mode for improved UI consistency.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add ability to close confirm screen and show toast for transaction

2 participants