Описание изменений
This commit is contained in:
30
.cursor/.gitignore
vendored
Normal file
30
.cursor/.gitignore
vendored
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
# Игнорировать всю директорию .cursor
|
||||||
|
.cursor/
|
||||||
|
|
||||||
|
# Но не игнорировать директорию rules
|
||||||
|
!.cursor/rules/
|
||||||
|
|
||||||
|
# Игнорировать временные файлы в директории rules
|
||||||
|
.cursor/rules/*.tmp
|
||||||
|
.cursor/rules/*.temp
|
||||||
|
|
||||||
|
# Игнорировать логи и кэш
|
||||||
|
.cursor/logs/
|
||||||
|
.cursor/cache/
|
||||||
|
|
||||||
|
# Игнорировать файлы настроек, которые могут содержать личные данные
|
||||||
|
.cursor/settings.json
|
||||||
|
.cursor/user-settings.json
|
||||||
|
.cursor/credentials.json
|
||||||
|
|
||||||
|
# Игнорировать историю и другие пользовательские данные
|
||||||
|
.cursor/history/
|
||||||
|
.cursor/user-data/
|
||||||
|
|
||||||
|
# Игнорировать файлы состояния
|
||||||
|
.cursor/state/
|
||||||
|
.cursor/*.state
|
||||||
|
|
||||||
|
# Игнорировать бэкапы
|
||||||
|
.cursor/backups/
|
||||||
|
.cursor/*.bak
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
---
|
|
||||||
description: >
|
|
||||||
Это правило предназначено для управления поведением AI в проекте HB3A.
|
|
||||||
Оно учитывает специфику работы с различными каналами аутентификации и управления ролями.
|
|
||||||
globs:
|
|
||||||
- '**/*.js' # Применять ко всем JavaScript файлам
|
|
||||||
- '**/*.vue' # Применять ко всем Vue файлам
|
|
||||||
- '!node_modules/**' # Исключить node_modules
|
|
||||||
---
|
|
||||||
|
|
||||||
# Правила для проекта HB3A
|
|
||||||
|
|
||||||
- Учитывайте мультиканальную архитектуру аутентификации (веб, Telegram, Email).
|
|
||||||
- Проверяйте наличие токенов управления на балансе крипто кошелька для определения роли пользователя.
|
|
||||||
- Обеспечивайте безопасность данных, включая защиту от атак повторного воспроизведения и подделки подписей.
|
|
||||||
- Поддерживайте обновленную модель ролей: администратор и клиент, с соответствующими правами и возможностями.
|
|
||||||
- Учитывайте дорожную карту разработки и текущие этапы проекта при предложении новых функций или изменений.
|
|
||||||
|
|
||||||
# Ссылки на файлы
|
|
||||||
|
|
||||||
- @file ../services/auth-service.js
|
|
||||||
- @file ../routes/auth.js
|
|
||||||
- @file ../middleware/auth.js
|
|
||||||
|
|
||||||
# Дополнительные указания
|
|
||||||
|
|
||||||
- Используйте комментарии для объяснения сложных участков кода.
|
|
||||||
- Предлагайте оптимизации, если код можно улучшить по производительности или безопасности.
|
|
||||||
- Объясняйте концепции простым и понятным языком, особенно для новичков.
|
|
||||||
59
.cursor/rules/user.mdc
Normal file
59
.cursor/rules/user.mdc
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
---
|
||||||
|
description: Это правило предназначено для управления поведением AI в зависимости от возможностей пользователя. Оно определяет, как AI должен реагировать на команды и запросы пользователя.
|
||||||
|
globs: - '**/*.js' # Применять ко всем JavaScript файлам - '**/*.vue' # Применять ко всем Vue файлам - '!node_modules/**' # Исключить node_modules
|
||||||
|
---
|
||||||
|
# Правила для взаимодействия с пользователем
|
||||||
|
|
||||||
|
## Общение
|
||||||
|
- AI должен поддерживать общение на русском языке.
|
||||||
|
- AI должен предоставлять четкие и понятные ответы на вопросы.
|
||||||
|
|
||||||
|
## Работа с кодом
|
||||||
|
- Пользователь может копировать и вставлять команды в терминал или готовый код в файлы.
|
||||||
|
- AI должен предоставлять код в удобном для копирования формате.
|
||||||
|
- AI должен предлагать оптимизации и улучшения кода.
|
||||||
|
|
||||||
|
## Управление проектом
|
||||||
|
- Пользователь может создавать директории и папки.
|
||||||
|
- AI должен помогать в организации структуры проекта и предлагать лучшие практики.
|
||||||
|
- Пользователь может устанавливать программы и компоненты на локальном устройстве или в облаке.
|
||||||
|
- AI должен предоставлять рекомендации по установке и настройке необходимых инструментов.
|
||||||
|
|
||||||
|
## Работа с API
|
||||||
|
- Пользователь может создавать API ключи в сервисах.
|
||||||
|
- AI должен объяснять процесс создания и использования API ключей.
|
||||||
|
- AI должен предлагать примеры использования API в коде.
|
||||||
|
|
||||||
|
## Тестирование и отладка
|
||||||
|
- Пользователь может тестировать приложение в браузере.
|
||||||
|
- AI должен предоставлять советы по тестированию и отладке приложения.
|
||||||
|
- AI должен напоминать о заданиях и этапах дорожной карты разработки.
|
||||||
|
|
||||||
|
## Взаимодействие
|
||||||
|
- Пользователь может задавать и отвечать на вопросы.
|
||||||
|
- AI должен быть готов к взаимодействию и предоставлению информации по запросу.
|
||||||
|
- AI должен учитывать контекст предыдущих взаимодействий для более точных ответов.
|
||||||
|
|
||||||
|
## Обработка ошибок
|
||||||
|
- AI должен предоставлять четкие сообщения об ошибках и рекомендации по их устранению.
|
||||||
|
- AI должен предлагать отладочные шаги для выявления и исправления проблем в коде.
|
||||||
|
|
||||||
|
## Поддержка технологий
|
||||||
|
- AI должен учитывать, что пользователь работает с Vue.js, JavaScript и другими технологиями.
|
||||||
|
- AI должен предлагать решения и примеры, специфичные для используемых технологий.
|
||||||
|
|
||||||
|
## Настройка окружения
|
||||||
|
- AI должен предоставлять рекомендации по настройке локального и облачного окружения.
|
||||||
|
- AI должен объяснять, как устанавливать и настраивать необходимые зависимости и инструменты.
|
||||||
|
|
||||||
|
## Управление версиями
|
||||||
|
- AI должен напоминать о необходимости коммитить изменения и создавать ветки в Git.
|
||||||
|
- AI должен предлагать советы по разрешению конфликтов при слиянии веток.
|
||||||
|
|
||||||
|
## Обратная связь
|
||||||
|
- AI должен запрашивать обратную связь о своих ответах и рекомендациях.
|
||||||
|
- AI должен использовать полученную обратную связь для улучшения своих ответов в будущем.
|
||||||
|
|
||||||
|
# Дополнительные указания
|
||||||
|
- AI должен адаптироваться к стилю общения пользователя и предоставлять информацию в удобном формате.
|
||||||
|
- AI должен быть проактивным в предложениях по улучшению рабочего процесса пользователя.
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
---
|
|
||||||
description: >
|
|
||||||
Это правило предназначено для управления поведением AI при работе с компонентами Vue.js.
|
|
||||||
Оно учитывает специфику работы с Vue и помогает поддерживать единообразие в проекте.
|
|
||||||
globs:
|
|
||||||
- '**/*.vue' # Применять ко всем Vue файлам
|
|
||||||
- '!node_modules/**' # Исключить node_modules
|
|
||||||
---
|
|
||||||
|
|
||||||
# Правила для компонентов Vue.js
|
|
||||||
|
|
||||||
- Следуйте соглашениям об именовании компонентов (PascalCase для имен файлов и компонентов).
|
|
||||||
- Используйте шаблоны, скрипты и стили в одном файле для каждого компонента.
|
|
||||||
- Обеспечивайте реактивность данных с помощью Vue Composition API или Options API.
|
|
||||||
- Используйте директивы Vue (v-if, v-for, v-bind и т.д.) для управления отображением.
|
|
||||||
- Поддерживайте чистоту и читаемость кода, используя комментарии для сложных участков.
|
|
||||||
|
|
||||||
# Ссылки на файлы
|
|
||||||
|
|
||||||
- @file ../components/ExampleComponent.vue
|
|
||||||
- @file ../views/ExampleView.vue
|
|
||||||
|
|
||||||
# Дополнительные указания
|
|
||||||
|
|
||||||
- Объясняйте концепции Vue.js простым и понятным языком.
|
|
||||||
- Предлагайте оптимизации, если код можно улучшить по производительности или безопасности.
|
|
||||||
- Учитывайте лучшие практики Vue.js при предложении изменений.
|
|
||||||
56
backend/.gitignore
vendored
56
backend/.gitignore
vendored
@@ -1,33 +1,45 @@
|
|||||||
# Dependency directories
|
# Зависимости
|
||||||
node_modules/
|
node_modules/
|
||||||
|
yarn-error.log
|
||||||
|
|
||||||
# Environment files
|
# Переменные окружения
|
||||||
.env
|
.env
|
||||||
.env.local
|
.env.local
|
||||||
.env.*.local
|
.env.development
|
||||||
|
.env.test
|
||||||
|
.env.production
|
||||||
|
|
||||||
# Hardhat files
|
# Логи
|
||||||
|
logs/*
|
||||||
|
!logs/.gitkeep
|
||||||
|
|
||||||
|
# Кэш и временные файлы
|
||||||
|
.cache/
|
||||||
cache/
|
cache/
|
||||||
|
dist/
|
||||||
|
build/
|
||||||
|
tmp/
|
||||||
|
temp/
|
||||||
|
|
||||||
|
# Артефакты Hardhat
|
||||||
artifacts/
|
artifacts/
|
||||||
|
cache/
|
||||||
|
typechain/
|
||||||
|
typechain-types/
|
||||||
|
|
||||||
# Log files
|
# Файлы покрытия кода
|
||||||
npm-debug.log*
|
|
||||||
yarn-debug.log*
|
|
||||||
yarn-error.log*
|
|
||||||
|
|
||||||
# Editor directories and files
|
|
||||||
.idea/
|
|
||||||
.vscode/
|
|
||||||
*.suo
|
|
||||||
*.ntvs*
|
|
||||||
*.njsproj
|
|
||||||
*.sln
|
|
||||||
*.sw?
|
|
||||||
|
|
||||||
# Coverage directory used by tools like istanbul
|
|
||||||
coverage/
|
coverage/
|
||||||
coverage.json
|
coverage.json
|
||||||
|
|
||||||
# Sessions directory
|
# Файлы IDE
|
||||||
sessions/
|
.idea/
|
||||||
data/sessions/
|
.vscode/
|
||||||
|
*.sublime-project
|
||||||
|
*.sublime-workspace
|
||||||
|
|
||||||
|
# Системные файлы
|
||||||
|
.DS_Store
|
||||||
|
Thumbs.db
|
||||||
|
|
||||||
|
# Файлы сессий
|
||||||
|
sessions/
|
||||||
@@ -119,3 +119,13 @@
|
|||||||
{"level":"info","message":"User 13 with address 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b: admin=false","timestamp":"2025-03-06T18:30:01.749Z"}
|
{"level":"info","message":"User 13 with address 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b: admin=false","timestamp":"2025-03-06T18:30:01.749Z"}
|
||||||
{"level":"info","message":"Updated user 13 with address 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b: admin=false","timestamp":"2025-03-06T18:30:01.749Z"}
|
{"level":"info","message":"Updated user 13 with address 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b: admin=false","timestamp":"2025-03-06T18:30:01.749Z"}
|
||||||
{"level":"info","message":"Token check completed","timestamp":"2025-03-06T18:30:01.749Z"}
|
{"level":"info","message":"Token check completed","timestamp":"2025-03-06T18:30:01.749Z"}
|
||||||
|
{"level":"info","message":"Running scheduled token balance check","timestamp":"2025-03-07T11:00:00.391Z"}
|
||||||
|
{"level":"info","message":"Checking tokens for 2 users","timestamp":"2025-03-07T11:00:00.419Z"}
|
||||||
|
{"level":"error","message":"Error checking admin token: execution reverted: \"No active token\" (action=\"call\", data=\"0x08c379a00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000f4e6f2061637469766520746f6b656e0000000000000000000000000000000000\", reason=\"No active token\", transaction={ \"data\": \"0xa0d7823e0000000000000000000000000000000000000000000000000000000000000000\", \"to\": \"0xF352c498cF0857F472dC473E4Dd39551E79B1063\" }, invocation=null, revert={ \"args\": [ \"No active token\" ], \"name\": \"Error\", \"signature\": \"Error(string)\" }, code=CALL_EXCEPTION, version=6.13.5)","timestamp":"2025-03-07T11:00:01.373Z"}
|
||||||
|
{"level":"info","message":"Updated role for user 10 to user","timestamp":"2025-03-07T11:00:01.379Z"}
|
||||||
|
{"level":"info","message":"User 10 with address 0x0000000000000000000000000000000000000000: admin=false","timestamp":"2025-03-07T11:00:01.379Z"}
|
||||||
|
{"level":"info","message":"Updated user 10 with address 0x0000000000000000000000000000000000000000: admin=false","timestamp":"2025-03-07T11:00:01.379Z"}
|
||||||
|
{"level":"info","message":"Updated role for user 13 to user","timestamp":"2025-03-07T11:00:01.577Z"}
|
||||||
|
{"level":"info","message":"User 13 with address 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b: admin=false","timestamp":"2025-03-07T11:00:01.578Z"}
|
||||||
|
{"level":"info","message":"Updated user 13 with address 0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b: admin=false","timestamp":"2025-03-07T11:00:01.578Z"}
|
||||||
|
{"level":"info","message":"Token check completed","timestamp":"2025-03-07T11:00:01.578Z"}
|
||||||
|
|||||||
@@ -44,3 +44,4 @@
|
|||||||
{"level":"error","message":"Error checking admin token: execution reverted: \"No active token\" (action=\"call\", data=\"0x08c379a00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000f4e6f2061637469766520746f6b656e0000000000000000000000000000000000\", reason=\"No active token\", transaction={ \"data\": \"0xa0d7823e0000000000000000000000000a98c54327253bb51f99c8218e5a7a01933d5f57\", \"to\": \"0xF352c498cF0857F472dC473E4Dd39551E79B1063\" }, invocation=null, revert={ \"args\": [ \"No active token\" ], \"name\": \"Error\", \"signature\": \"Error(string)\" }, code=CALL_EXCEPTION, version=6.13.5)","timestamp":"2025-03-06T18:23:11.848Z"}
|
{"level":"error","message":"Error checking admin token: execution reverted: \"No active token\" (action=\"call\", data=\"0x08c379a00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000f4e6f2061637469766520746f6b656e0000000000000000000000000000000000\", reason=\"No active token\", transaction={ \"data\": \"0xa0d7823e0000000000000000000000000a98c54327253bb51f99c8218e5a7a01933d5f57\", \"to\": \"0xF352c498cF0857F472dC473E4Dd39551E79B1063\" }, invocation=null, revert={ \"args\": [ \"No active token\" ], \"name\": \"Error\", \"signature\": \"Error(string)\" }, code=CALL_EXCEPTION, version=6.13.5)","timestamp":"2025-03-06T18:23:11.848Z"}
|
||||||
{"level":"error","message":"Error checking admin token: execution reverted: \"No active token\" (action=\"call\", data=\"0x08c379a00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000f4e6f2061637469766520746f6b656e0000000000000000000000000000000000\", reason=\"No active token\", transaction={ \"data\": \"0xa0d7823e0000000000000000000000000a98c54327253bb51f99c8218e5a7a01933d5f57\", \"to\": \"0xF352c498cF0857F472dC473E4Dd39551E79B1063\" }, invocation=null, revert={ \"args\": [ \"No active token\" ], \"name\": \"Error\", \"signature\": \"Error(string)\" }, code=CALL_EXCEPTION, version=6.13.5)","timestamp":"2025-03-06T18:23:12.075Z"}
|
{"level":"error","message":"Error checking admin token: execution reverted: \"No active token\" (action=\"call\", data=\"0x08c379a00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000f4e6f2061637469766520746f6b656e0000000000000000000000000000000000\", reason=\"No active token\", transaction={ \"data\": \"0xa0d7823e0000000000000000000000000a98c54327253bb51f99c8218e5a7a01933d5f57\", \"to\": \"0xF352c498cF0857F472dC473E4Dd39551E79B1063\" }, invocation=null, revert={ \"args\": [ \"No active token\" ], \"name\": \"Error\", \"signature\": \"Error(string)\" }, code=CALL_EXCEPTION, version=6.13.5)","timestamp":"2025-03-06T18:23:12.075Z"}
|
||||||
{"level":"error","message":"Error checking admin token: execution reverted: \"No active token\" (action=\"call\", data=\"0x08c379a00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000f4e6f2061637469766520746f6b656e0000000000000000000000000000000000\", reason=\"No active token\", transaction={ \"data\": \"0xa0d7823e0000000000000000000000000000000000000000000000000000000000000000\", \"to\": \"0xF352c498cF0857F472dC473E4Dd39551E79B1063\" }, invocation=null, revert={ \"args\": [ \"No active token\" ], \"name\": \"Error\", \"signature\": \"Error(string)\" }, code=CALL_EXCEPTION, version=6.13.5)","timestamp":"2025-03-06T18:30:01.179Z"}
|
{"level":"error","message":"Error checking admin token: execution reverted: \"No active token\" (action=\"call\", data=\"0x08c379a00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000f4e6f2061637469766520746f6b656e0000000000000000000000000000000000\", reason=\"No active token\", transaction={ \"data\": \"0xa0d7823e0000000000000000000000000000000000000000000000000000000000000000\", \"to\": \"0xF352c498cF0857F472dC473E4Dd39551E79B1063\" }, invocation=null, revert={ \"args\": [ \"No active token\" ], \"name\": \"Error\", \"signature\": \"Error(string)\" }, code=CALL_EXCEPTION, version=6.13.5)","timestamp":"2025-03-06T18:30:01.179Z"}
|
||||||
|
{"level":"error","message":"Error checking admin token: execution reverted: \"No active token\" (action=\"call\", data=\"0x08c379a00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000f4e6f2061637469766520746f6b656e0000000000000000000000000000000000\", reason=\"No active token\", transaction={ \"data\": \"0xa0d7823e0000000000000000000000000000000000000000000000000000000000000000\", \"to\": \"0xF352c498cF0857F472dC473E4Dd39551E79B1063\" }, invocation=null, revert={ \"args\": [ \"No active token\" ], \"name\": \"Error\", \"signature\": \"Error(string)\" }, code=CALL_EXCEPTION, version=6.13.5)","timestamp":"2025-03-07T11:00:01.373Z"}
|
||||||
|
|||||||
47
frontend/.gitignore
vendored
47
frontend/.gitignore
vendored
@@ -1,4 +1,45 @@
|
|||||||
node_modules
|
# Зависимости
|
||||||
dist
|
node_modules/
|
||||||
|
yarn-error.log
|
||||||
|
|
||||||
|
# Переменные окружения
|
||||||
.env
|
.env
|
||||||
.env.local
|
.env.local
|
||||||
|
.env.development
|
||||||
|
.env.test
|
||||||
|
.env.production
|
||||||
|
|
||||||
|
# Сборка
|
||||||
|
dist/
|
||||||
|
dist-ssr/
|
||||||
|
build/
|
||||||
|
|
||||||
|
# Кэш
|
||||||
|
.cache/
|
||||||
|
.temp/
|
||||||
|
.vite/
|
||||||
|
|
||||||
|
# Логи
|
||||||
|
logs/
|
||||||
|
*.log
|
||||||
|
npm-debug.log*
|
||||||
|
yarn-debug.log*
|
||||||
|
yarn-error.log*
|
||||||
|
pnpm-debug.log*
|
||||||
|
|
||||||
|
# Файлы IDE
|
||||||
|
.idea/
|
||||||
|
.vscode/*
|
||||||
|
!.vscode/extensions.json
|
||||||
|
*.suo
|
||||||
|
*.ntvs*
|
||||||
|
*.njsproj
|
||||||
|
*.sln
|
||||||
|
*.sw?
|
||||||
|
|
||||||
|
# Системные файлы
|
||||||
|
.DS_Store
|
||||||
|
Thumbs.db
|
||||||
|
|
||||||
|
# Локальные файлы
|
||||||
|
*.local
|
||||||
Reference in New Issue
Block a user