Memo preflight: validate memoless asset eligibility
Context (Incident Follow-up)
This issue is created in reaction to the recent memoless / direct-Asgard deposit incident discussed in THORChain Discord (InstaSwap user case, Feb 25–27, 2026): https://discord.com/channels/838986635756044328/1476157453736476703
Related follow-up issues from the same incident:
- #2773 - Quote API: enforce memoless eligibility
- #2777 - EVM direct Asgard ERC20 deposits: add safe auto-refund
Problem
/thorchain/memo/check/{asset}/{amount} preflight currently does not fail early on memoless-ineligible assets.
Integrators can pass preflight and still produce non-executable memoless deposits.
Proposal
- Extend preflight logic to include the same memoless asset eligibility checks used by execution path.
- Return explicit error for ineligible assets (e.g. ERC20 source asset in memoless mode).
Acceptance Criteria
- Preflight fails for ineligible memoless source assets.
- Preflight passes for eligible gas assets.
- Tests cover both paths and prevent regression.
Edited by ZlyDevMaya