Введение
В этом руководстве описан процесс разработки с помощью AI для создания интерфейса обмена токенов в Solana. Его ключевая особенность — панель, которая отображает наиболее часто используемые пользователем торговые пары и позволяет выбрать любую из них одним нажатием. Благодаря этому интерфейс становится персонализированным. В каждом разделе приведены точные использованные промпты, полученные от модели результаты и способы применения инструментария Helius AI. В этом руководстве используются следующие технологии:- интеграция кошелька Phantom
- DFlow для получения котировок и выполнения обменов
- Helius Sender для быстрой отправки транзакций
- Helius Enhanced Transactions для разбора транзакций
Итоговый результат

Personalized swap UI with recent pairs panel
Настройка
Перед началом установите плагин Helius для Claude Code. В Claude Code выполните следующие две команды по отдельности:Исходный промпт
Используйте этот промпт, чтобы за один раз определить весь интерфейс и его поведение:Prompt
Создай персонализированный интерфейс обмена токенов для Solana.Добавь интерфейс обмена токенов в привычном стиле: расположенный по центру блок с двумя элементами выбора токенов и кнопкой обмена.Справа от него отобрази список пар токенов, которые пользователь может выбирать напрямую. Рядом с названием каждого токена показывай его логотип.Чтобы сформировать список, сделай следующее: после подключения кошелька пользователем просмотри историю обменов и извлеки 10 последних торговых пар, которые он использовал. Отсортируй их по частоте обменов.
- основную структуру (блок обмена + боковая панель недавних пар)
- правило персонализации (история кошелька)
- стратегию ранжирования (частота недавнего использования)
Позвольте мне создать базовую структуру проекта. Я создам приложение на Vite + React + TypeScript с подключением кошелька Phantom, обменами через DFlow с использованием Helius Sender и историей обменов из Helius Wallet API.Это разумный стек:
- Vite + React + TypeScript для современного типобезопасного интерфейса
- Phantom для подключения кошелька и подписания
- DFlow для получения лучших котировок
- API Helius для истории кошелька
- Helius Sender для отправки транзакций
.env с нашим ключом API Helius. После этого мы запустили приложение с помощью npm run dev:

Initial version of the app
Отсутствующие недавние пары
После подключения кошелька мы заметили, что на панели недавних пар отсутствуют некоторые торговые пары, которые мы недавно обменивали. Поэтому мы попросили агента разобраться:Prompt
Пара Bonk / SOL не отображается в разделе недавних пар, хотя по ней недавно выполнялись обмены. Можешь проверить, почему?2BnyMbNYLjYorNwbPjhUBHSQBTbCTjuqouQwZiYY6auh
getTransactionHistory и parseTransactions.
Это позволило ему быстро обнаружить ошибку:
Код полагается исключительно на events.swap вместо анализа фактических переводов токенов.
Позвольте мне исправить извлечение истории обменов, чтобы напрямую использовать tokenTransfers и nativeTransfers.Агент исправил проблему, изменив способ определения торговых пар: теперь мы просто проверяем, какие токены были переведены на кошелек и с него в рамках транзакции. Теперь в приложении отображаются все наши торговые пары:

All trading pairs shown
Доработка интерфейса
Хотя общий дизайн приложения уже выглядит хорошо, компоновка интерфейса обмена все еще требует доработки:Prompt
Исправь дизайн блока выбора токенов:Размести элемент выбора токена справа.Сделай ширину поля ввода суммы гибкой, чтобы оно аккуратно помещалось в блоке.

New layout for the token selector box
Отображение котировки
Сейчас суммы токенов в интерфейсе обмена нужно задавать вручную. Это означает, что пользователь не видит, сколько токенов получит в результате. Было бы полезно автоматически заполнять поле суммы токенов на основе актуальной котировки DFlow.Prompt
Когда пользователь вводит сумму для одного токена, получи котировку и отобрази выходную сумму для другого токена.

Quote preview showing the output amount in the receive field
Добавление информации об обмене
После включения обмена в блокчейн пользователь не может проверить его в сети. Добавим эту возможность в интерфейс:Prompt
После успешного обмена выведи полную подпись транзакции. Также добавь ссылку на нее в обозревателе блокчейна.

Wallet confirmation popup during swap signing

Successful swap output with full signature and explorer link