dffcaa113b
Marty, 2026-09-16: a purchase must never wait on a sponsor who has not linked a wallet / switched on payouts. /api/sponsor and /me now walk the site's sponsor line upward to the first upline that is activated with payouts on (not on the no-payout list) and the buy proceeds under them; nobody activated -> the catch position (#1). The buyer sees a one-line notice and carries on; admin gets a heads-up. When the position is created on-chain (MemberActivated), sponsorSyncOnEvent re-points the buyer's stored sponsor to whoever was paid (#1 included), so the referral leaves the skipped sponsor's line for good, then sends the pointed notices: the skipped sponsor(s) are told they lost this referral permanently and how to switch on payouts; the sponsor who was paid is told the referral is theirs for good and to coach the one who missed it (teach-forward). Admin lookup: GET /api/admin/sponsor-resolve?ref=. Only a transient chain error still pauses a buy. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>