EDEN 100.9.7 — Static Validation Report

Baseline: paladium-single-bot-100.9.6-final.zip
Release: 100.9.7

Implemented:
- Plain product titles and Toman-first product pricing with automatic coin equivalent.
- Single checkout path with direct invoice for the unpaid remainder when wallet balance is insufficient.
- Direct deep links for file/folder products, packs, and membership products.
- Discount codes by percent/fixed Toman amount, product scope, user scope, and date window.
- Web payment result page and per-user payment tracking-code lookup in bot.
- Explicit admin user search; removed implicit profile opening on numeric chat messages.
- NextPay IRT currency, UUID trans_id validation, callback URL normalization, richer API diagnostics.
- Internal invoice launch URL on the EDEN domain; the server reads a stored pending invoice and issues an HTTP 302 redirect to the official gateway URL built from its stored authority.
- If a verified purchase cannot be completed (for example, membership invite creation fails), the verified amount is converted to wallet coins instead of silently being lost.

Validation:
- PHP syntax lint: all 75 PHP files passed.
- update.json parsed; 172 paths checked with no missing or duplicate entries.
- ZIP integrity checked with unzip -t.
- Pure helper checks verified Toman-to-coin conversion (500000 Toman -> 500 coins at 1000 Toman/coin).
- Launch URL helper checked for preserving callback URL query parameters while switching to wallet=pay and adding the stored invoice ID.
- Product deep-link helper checked.
- Static check confirmed NextPay endpoints match official docs: token, payment/{trans_id}, verify; payment buttons use the new internal launch route and redirect only from a stored pending invoice.

Limitations:
- No live Telegram API, production database, or real bank/NextPay transaction was performed.
- A 404 from NextPay's payment URL can only be conclusively diagnosed with the fresh trans_id and API response from that transaction. The documented URL format is correct; a stale token from an older invoice should not be reused.
