GenLayer project boilerplate: структура и настройка

Редакция OdiRouter

GenLayer project boilerplate — это сторонний пример на GitHub для сценария использования GenLayer. Его README посвящен интеллектуальному контракту для ставок на футбол, прямым тестам с моками веб-запросов и LLM, интеграционным тестам на базе Studio, скрипту развертывания на TypeScript и фронтенду на Next.js. Это руководство основано на файлах репозитория, полученных из 2026-08-19. В нем OdiRouter не описывается как интеграция, партнер, встроенный сервис или лицо, поддерживающее проект. OdiRouter — лишь независимый домен публикации: https://odirouter.ai/.

Что находится в репозитории

README делит проект на несколько рабочих частей:

  • contracts/ содержит интеллектуальные контракты на Python. Основной пример находится в contracts/football_bets.py.

  • tests/direct/ содержит быстрые тесты в памяти. В них используются моки веб-запросов и LLM, поэтому GenLayer Studio для этого режима не нужен.

  • tests/integration/ содержит сквозные тесты, которым нужен GenLayer Studio.

  • frontend/ — это приложение Next.js 15 на TypeScript с TanStack Query и Radix UI.

  • deploy/ содержит скрипт развертывания на TypeScript.

  • gltest.config.yaml описывает записи localnet и studionet, путь к контрактам и файл окружения.

  • pyproject.toml задает конфигурацию pytest и маркер integration.

  • package.json задает рабочее пространство фронтенда, команды dev, build, start, lint, deploy и зависимость genlayer-js ^1.1.8.

Такое решение позволяет независимо менять контракт, интерфейсную часть и сценарий, сохраняя при этом быстрые и интеграционные проверки.

Подготовка окружения

README указывает Python 3.12 или более новую версию, а также глобально установленный GenLayer CLI:

python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
npm install -g genlayer

Для интеграционных тестов и развертывания нужен GenLayer Studio: локальная установка или размещенный Studio, на который ссылается README. Точный URL-адрес и доступность среды необходимо проверить перед запуском. Репозиторий также содержит переменные фронтенда в frontend/.env.example, включая URL RPC, идентификатор сети и адрес развернутого контракта.

Проверки перед развертыванием

Сначала запустите линтер контрактов:

genvm-lint check contracts/football_bets.py

Затем выполните прямые тесты:

pytest tests/direct/ -v

README описывает API прямого доступа, используемый тестами: direct_deploy, direct_vm.sender, mock_web, mock_llm, expect_revert и clear_mocks. Эти имена относятся к тестовой среде репозитория. Перед переносом кода в другой проект проверьте версии пакетов и актуальную документацию.

Интеграционные тесты запускаются через gltest и требуют Studio:

gltest tests/integration/ -v -s

Быстрый цикл проверки выполняется без Studio, а сетевой сценарий проверяется отдельно. Не следует выдавать скорость, надежность или результаты этих тестов за универсальные бенчмарки: README не публикует независимые показатели производительности.

Контракт и текущие имена API

contracts/football_bets.py использует TreeMap для ставок и очков, декораторы @gl.public.write и @gl.public.view, а также gl.nondet.web.render и gl.nondet.exec_prompt при проверке результата матча. Результат обрабатывается через gl.eq_principle.strict_eq. Это конкретный пример из репозитория, а не полный список возможностей GenLayer.

Сценарий deploy/deployScript.ts читает байты contracts/football_bets.py, вызывает client.initializeConsensusSmartContract(), затем client.deployContract() и ждет получения через client.waitForTransactionReceipt(). В файле явно импортируются GenLayerClient, TransactionHash, TransactionStatus, DecodedDeployData, GenLayerChain и localnet из genlayer-js. Эти имена следует сменить с установленной областью SDK перед изменением сценария.

Где расширять проект

Для нового сценария использования обычно нужно изменить четыре области:

  1. Создайте контракт в contracts/ и закройте его прямыми тестами. Сохраните отдельные имитационные объекты для внешних веб-данных и LLM, если контракт их использует.

  2. Добавьте интеграционные сценарии в tests/integration/, чтобы проверять поведение через Studio.

  3. Обновите deploy/deployScript.ts, если изменились файл контракта или аргументы развертывания.

  4. Обновите типизированную оболочку контракта и хуки в frontend/lib/contracts/ и frontend/lib/hooks/, а адрес и параметры RPC храните в .env.

gltest.config.yaml и pyproject.toml остаются точками настройки запуска тестов. Такой путь расширения соответствует структуре текущего репозитория и не предполагает скрытых API.

Что проверить перед использованием

Репозиторий является примером, а не гарантией готовности системы к эксплуатации. Перед началом работы проверьте текущие версии GenLayer CLI, genlayer-js, пакетов Python и Studio. Не делайте выводов о сетевой экономике, гарантиях, совместимости, стоимости или производительности на основании одного шаблонного проекта. В этой публикации нет подтверждения встроенной интеграции с OdiRouter, партнерства или одобрения.

Источники

#GenLayer project boilerplate#GenLayer интеллектуальный контракт#GenLayer настройка#GenLayer шаблонный код#genlayer-js