Rewrite monitor.py so it operates entirely through the cardano_checkout.store.InvoiceStore Protocol — no more SQLAlchemy imports, no more CardanoPayment / PlatformConfig coupling. Same behavioural shape: same Koios URL, same 15s check cadence, same 2% confirm / overpay tolerances, same 3-reprice cap. Rewrite scheduler.py as a reusable InvoiceScheduler dataclass that wires two APScheduler jobs (check_pending every 15s, reprice_expired every 60s) against a consumer-supplied store. The subscription + grace-period jobs are TradeCraft-specific and get lifted into tradecraft_compat.py verbatim so TradeCraft can still import them during the migration window without any code change. Add InMemoryStore reference implementation to store.py — used by the test suite and handy for local dev / ephemeral workflows. Bump version to 0.2.0-dev.
47 lines
1.4 KiB
TOML
47 lines
1.4 KiB
TOML
[build-system]
|
|
requires = ["setuptools>=68", "wheel"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
[project]
|
|
name = "cardano-checkout"
|
|
version = "0.2.0.dev0"
|
|
description = "Merchant-side Cardano payments SDK + NFT cert-of-authenticity minting (zero-custody)"
|
|
readme = "README.md"
|
|
requires-python = ">=3.10"
|
|
license = {text = "Apache-2.0"}
|
|
authors = [
|
|
{name = "Sulkta Coop"},
|
|
]
|
|
keywords = ["cardano", "payments", "nft", "checkout", "blockchain", "ada", "pycardano"]
|
|
classifiers = [
|
|
"Development Status :: 3 - Alpha",
|
|
"Intended Audience :: Developers",
|
|
"License :: OSI Approved :: Apache Software License",
|
|
"Programming Language :: Python :: 3",
|
|
"Programming Language :: Python :: 3 :: Only",
|
|
"Programming Language :: Python :: 3.10",
|
|
"Programming Language :: Python :: 3.11",
|
|
"Programming Language :: Python :: 3.12",
|
|
"Topic :: Office/Business :: Financial",
|
|
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
]
|
|
dependencies = [
|
|
"pycardano>=0.11.0",
|
|
"httpx>=0.27",
|
|
"apscheduler>=3.10",
|
|
]
|
|
|
|
[project.optional-dependencies]
|
|
sqlalchemy = ["sqlalchemy>=2.0"]
|
|
test = ["pytest>=7", "pytest-asyncio>=0.23"]
|
|
dev = ["pytest>=7", "pytest-asyncio>=0.23", "ruff", "mypy"]
|
|
|
|
[project.urls]
|
|
Repository = "http://192.168.0.5:3001/Sulkta-Coop/cardano-checkout-py"
|
|
|
|
[tool.setuptools.packages.find]
|
|
include = ["cardano_checkout*"]
|
|
|
|
[tool.pytest.ini_options]
|
|
asyncio_mode = "auto"
|
|
testpaths = ["tests"]
|