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:

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