Parent: #1212
Scope
- Make a valid incoming on-chain Paykit Payment Request actionable from its confirmation screen.
- Preserve the request amount, endpoint, contact context, and current acceptance ordering.
- Add regression coverage for the resolved incoming-request scan state.
Current behavior
The live marketplace journey opens the exact incoming request and resolves its canonical regtest endpoint. The confirmation screen shows the seller and 15,000 sats, but GRAB is disabled.
AppViewModel.onScanOnchain assigns the incoming request amount and validates it before navigating to SendRoute.Confirm, but does not persist isAmountInputValid = true. SwipeToConfirm therefore receives enabled = false and never calls onConfirm.
Observed with Payment Request 767ca32e-8f17-4763-9343-3b273f4fb699 against fixture commit ed03a32e.
Acceptance criteria
- A payable incoming on-chain request enables
GRAB on the confirmation screen.
- Swiping broadcasts exactly the request amount to the resolved endpoint.
- Invalid or unaffordable incoming requests remain blocked.
- Unit coverage exercises the resolved incoming on-chain request state before submission.
- The Pubky marketplace journey reaches mempool detection and one-block confirmation.
Parent: #1212
Scope
Current behavior
The live marketplace journey opens the exact incoming request and resolves its canonical regtest endpoint. The confirmation screen shows the seller and 15,000 sats, but
GRABis disabled.AppViewModel.onScanOnchainassigns the incoming request amount and validates it before navigating toSendRoute.Confirm, but does not persistisAmountInputValid = true.SwipeToConfirmtherefore receivesenabled = falseand never callsonConfirm.Observed with Payment Request
767ca32e-8f17-4763-9343-3b273f4fb699against fixture commited03a32e.Acceptance criteria
GRABon the confirmation screen.