src/app/TransactionProgressModal.tsx implements a comprehensive transaction-progress modal: a build/sign/submit/confirm timeline (via TransactionStepTimeline), and seven distinct, well-written error mappings (USER_REJECTED, INSUFFICIENT_BALANCE, NETWORK_CONGESTION, RPC_TIMEOUT, SLIPPAGE_EXCEEDED, CONTRACT_REVERTED, UNKNOWN_ERROR) each with tailored copy and recovery actions. A repo-wide search shows its only consumer is src/app/ModalTester.tsx — a component-preview/testing sandbox — not any of the real transaction flows (commitment creation, fund, settle, early-exit, dispute) which instead each roll their own simpler, ad hoc loading/error state (e.g. CommitmentCreatedModal's local fundStep state machine has none of these seven error categories). This means the well-built, specific error recovery guidance this component provides (e.g. distinguishing a user-rejected signature from network congestion from a reverted contract) never actually reaches a user in production. Acceptance criteria: wire TransactionProgressModal into at least the create/fund and settle/early-exit flows in place of their current ad hoc state handling, or if it was superseded by a different pattern, remove it to avoid contributors building against a dead-end component.
src/app/TransactionProgressModal.tsx implements a comprehensive transaction-progress modal: a build/sign/submit/confirm timeline (via
TransactionStepTimeline), and seven distinct, well-written error mappings (USER_REJECTED,INSUFFICIENT_BALANCE,NETWORK_CONGESTION,RPC_TIMEOUT,SLIPPAGE_EXCEEDED,CONTRACT_REVERTED,UNKNOWN_ERROR) each with tailored copy and recovery actions. A repo-wide search shows its only consumer issrc/app/ModalTester.tsx— a component-preview/testing sandbox — not any of the real transaction flows (commitment creation, fund, settle, early-exit, dispute) which instead each roll their own simpler, ad hoc loading/error state (e.g.CommitmentCreatedModal's localfundStepstate machine has none of these seven error categories). This means the well-built, specific error recovery guidance this component provides (e.g. distinguishing a user-rejected signature from network congestion from a reverted contract) never actually reaches a user in production. Acceptance criteria: wireTransactionProgressModalinto at least the create/fund and settle/early-exit flows in place of their current ad hoc state handling, or if it was superseded by a different pattern, remove it to avoid contributors building against a dead-end component.