mirror of
https://github.com/hanzoai/bootnode.git
synced 2026-10-25 02:31:30 +00:00
Update K8s manifests (Ingress hosts, CRD API groups, CORS origins), ZAP schemas, pyproject.toml URLs, SDK docs import paths, e2e test emails, and K8s annotations to use the canonical bootno.de domain.
117 lines
2.8 KiB
TOML
117 lines
2.8 KiB
TOML
[project]
|
|
name = "bootnode"
|
|
version = "2.0.0"
|
|
description = "Blockchain Development Platform - Multi-chain RPC, Token API, NFT API, Smart Wallets, and more"
|
|
readme = "README.md"
|
|
license = { text = "BSD-3-Clause" }
|
|
requires-python = ">=3.12"
|
|
authors = [{ name = "Hanzo AI", email = "[email protected]" }]
|
|
keywords = ["blockchain", "ethereum", "web3", "rpc", "nft", "erc4337"]
|
|
classifiers = [
|
|
"Development Status :: 4 - Beta",
|
|
"Framework :: FastAPI",
|
|
"Intended Audience :: Developers",
|
|
"License :: OSI Approved :: BSD License",
|
|
"Programming Language :: Python :: 3.12",
|
|
"Programming Language :: Python :: 3.13",
|
|
"Topic :: Internet :: WWW/HTTP :: HTTP Servers",
|
|
]
|
|
|
|
dependencies = [
|
|
"fastapi>=0.115.0",
|
|
"uvicorn[standard]>=0.32.0",
|
|
"pydantic[email]>=2.10.0",
|
|
"pydantic-settings>=2.6.0",
|
|
"sqlalchemy[asyncio]>=2.0.36",
|
|
"asyncpg>=0.30.0",
|
|
"alembic>=1.14.0",
|
|
"redis>=5.2.0",
|
|
"httpx>=0.28.0",
|
|
"websockets>=14.0",
|
|
"web3>=7.6.0",
|
|
"eth-abi>=5.0.0",
|
|
"eth-account>=0.13.0",
|
|
"python-jose[cryptography]>=3.3.0",
|
|
"bcrypt>=4.0.0",
|
|
"pyjwt>=2.8.0",
|
|
"python-multipart>=0.0.18",
|
|
"orjson>=3.10.0",
|
|
"structlog>=24.4.0",
|
|
"tenacity>=9.0.0",
|
|
"cachetools>=5.5.0",
|
|
# DataStore (ClickHouse)
|
|
"aiochclient>=2.6.0",
|
|
# Message Queue (Redis-based, @hanzo/mq compatible)
|
|
"arq>=0.26.0",
|
|
# Infrastructure Management
|
|
"kubernetes>=31.0.0",
|
|
"pydo>=0.8.0",
|
|
"docker>=7.0.0",
|
|
# ZAP Protocol (native Cap'n Proto RPC)
|
|
"pycapnp>=2.0.0",
|
|
]
|
|
|
|
|
|
[project.optional-dependencies]
|
|
dev = [
|
|
"pytest>=8.3.0",
|
|
"pytest-asyncio>=0.24.0",
|
|
"pytest-cov>=6.0.0",
|
|
"httpx>=0.28.0",
|
|
"ruff>=0.8.0",
|
|
"mypy>=1.13.0",
|
|
"pre-commit>=4.0.0",
|
|
]
|
|
# Hanzo SDKs - not published to PyPI yet
|
|
# In K8s, the KMS operator injects secrets as env vars directly
|
|
# hanzo = [
|
|
# "hanzo-kms>=1.0.0",
|
|
# "hanzo-iam>=1.0.0",
|
|
# ]
|
|
|
|
[project.scripts]
|
|
bootnode = "bootnode.cli:main"
|
|
|
|
[project.urls]
|
|
Homepage = "https://bootno.de"
|
|
Documentation = "https://docs.bootno.de"
|
|
Repository = "https://github.com/hanzoai/bootnode"
|
|
|
|
[build-system]
|
|
requires = ["hatchling"]
|
|
build-backend = "hatchling.build"
|
|
|
|
[tool.hatch.build.targets.wheel]
|
|
packages = ["bootnode"]
|
|
|
|
[tool.ruff]
|
|
target-version = "py312"
|
|
line-length = 100
|
|
|
|
[tool.ruff.lint]
|
|
select = [
|
|
"E", # pycodestyle errors
|
|
"W", # pycodestyle warnings
|
|
"F", # pyflakes
|
|
"I", # isort
|
|
"B", # flake8-bugbear
|
|
"C4", # flake8-comprehensions
|
|
"UP", # pyupgrade
|
|
"ARG", # flake8-unused-arguments
|
|
"SIM", # flake8-simplify
|
|
]
|
|
ignore = ["E501", "B008", "B904"]
|
|
|
|
[tool.ruff.lint.isort]
|
|
known-first-party = ["bootnode"]
|
|
|
|
[tool.mypy]
|
|
python_version = "3.12"
|
|
strict = true
|
|
plugins = ["pydantic.mypy"]
|
|
|
|
[tool.pytest.ini_options]
|
|
asyncio_mode = "auto"
|
|
testpaths = ["tests"]
|
|
addopts = "-v --tb=short"
|