Skip to content

Latest commit

 

History

History
21 lines (13 loc) · 4.76 KB

TODO_00.md

File metadata and controls

21 lines (13 loc) · 4.76 KB

Prompt:

Я маю телеграм міні апп @Codebase, в dashboard реалізована кнопка поставити лайк проекту. Я хочу реалізувати смарт контракт на мові програмування tact для тон протоколу щоб в блокчейні зберігати кількість поставлених лайків. Я хочу щоб виклик функцій запису до блокчену інкременту кількості лайків здійснювалась на бекенді в апі ендпоінті на next js. Реалізуй щоб оплата за транщакцію була за рахунок користувача з приєднаним гаманцем в тма. Також переконайся що реалізація інкременту по кліку на лайк відбувається за найкращими принципами реакт. Реалізуй виклики функцій самртконтракту з бекенду а коремому апі. Смарт контракт повинен також реалізовувати функцію для прийому фондів криптовалюти тон та реалізувати перевірки чи користувач є адміном щоб здійснювати вивід накопичених фондів на адресу адміна, також реалізуй функцію для перевірки чи користувач вже поставив лайк. в інтерфейсі дащборду показуй загальну кількість лайків.

Enhanced Prompt:

Розроби інтеграцію кнопки лайку для проектів у міні-апі @Codebase, що автоматично записує кількість лайків у блокчейн TON через смарт-контракт, написаний на мові Func. Виконай наступне:

 1. **Інкремент лайків через Next.js API**: Реалізуй API ендпоінт на Next.js, який викликає функцію смарт-контракту для запису інкременту лайків. Транзакції здійснюються від імені користувача з підключеним гаманцем TON у Telegram міні-апі. Переконайся, що інкремент відбувається за найкращими принципами React — з використанням `useEffect` для синхронізації даних при оновленні, а також з оптимізацією повторних рендерів компоненту лайків.

 2. **Оплата транзакції користувачем**: Реалізуй механізм, щоб транзакція до блокчейну покривалася користувачем із приєднаним гаманцем в Telegram міні-апі. Валидація гаманця користувача для підключення до контракту здійснюється через Next.js API.

 3. **Перевірка наявності лайка**: Перед інкрементом лайків смарт-контракт повинен перевірити, чи користувач вже поставив лайк. У разі дублювання функція не повинна повторно збільшувати кількість лайків. У backend API додай функціонал, що виконує запит до смарт-контракту і повертає відповідь, чи користувач вже лайкнув.

 4. **Прийом і виведення фондів**: Смарт-контракт повинен мати функції для:
    - прийому внесків в TON;
    - виведення накопичених коштів тільки адміністратором. Реалізуй перевірку прав адміністратора для безпеки операцій.

 5. **Синхронізація з dashboard**: В интерфейсі dashboard відображай загальну кількість лайків у реальному часі. Використовуй підхід, що мінімізує завантаження (наприклад, `useSWR` або підписки на оновлення через WebSockets для автоматичного оновлення кількості лайків при зміні). Впевнись, що зміни в кількості лайків відображаються без перезавантаження сторінки.