mirror of
https://github.com/aljazceru/nutshell.git
synced 2025-12-24 12:04:21 +01:00
* fix keys * fix tests * backwards compatible api upgrade * upgrade seems to work * fix tests * add deprecated api functions * add more tests of backwards compat * add test serialization for nut00 * remove a redundant test * move mint and melt to new api * mypy works * CI: mypy --check-untyped-defs * add deprecated router * add hints and remove logs * fix tests * cleanup * use new mint and melt endpoints * tests passing? * fix mypy * make format * make format * make format * commit * errors gone * save * adjust the API * store quotes in db * make mypy happy * add fakewallet settings * remove LIGHTNING=True and pass quote id for melt * format * tests passing * add CoreLightningRestWallet * add macaroon loader * add correct config * preimage -> proof * move wallet.status() to cli.helpers.print_status() * remove statuses from tests * remove * make format * Use httpx in deprecated wallet * fix cln interface * create invoice before quote * internal transactions and deprecated api testing * fix tests * add deprecated API tests * fastapi type hints break things * fix duplicate wallet error * make format * update poetry in CI to 1.7.1 * precommit restore * remove bolt11 * oops * default poetry * store fee reserve for melt quotes and refactor melt() * works? * make format * test * finally * fix deprecated models * rename v1 endpoints to bolt11 * raise restore and check to v1, bump version to 0.15.0 * add version byte to keyset id * remove redundant fields in json * checks * generate bip32 keyset wip * migrate old keysets * load duplicate keys * duplicate old keysets * revert router changes * add deprecated /check and /restore endpoints * try except invalidate * parse unit from derivation path, adjust keyset id calculation with bytes * remove keyest id from functions again and rely on self.keyset_id * mosts tests work * mint loads multiple derivation paths * make format * properly print units * fix tests * wallet works with multiple units * add strike wallet and choose backend dynamically * fix mypy * add get_payment_quote to lightning backends * make format * fix startup * fix lnbitswallet * fix tests * LightningWallet -> LightningBackend * remove comments * make format * remove msat conversion * add Amount type * fix regtest * use melt_quote as argument for pay_invoice * test old api * fees in sats * fix deprecated fees * fixes * print balance correctly * internally index keyset response by int * add pydantic validation to input models * add timestamps to mint db * store timestamps for invoices, promises, proofs_used * fix wallet migration * rotate keys correctly for testing * remove print * update latest keyset * fix tests * fix test * make format * make format with correct black version * remove nsat and cheese * test against deprecated mint * fix tests? * actually use env var * mint run with env vars * moar test * cleanup * simplify tests, load all keys * try out testing with internal invoices * fix internal melt test * fix test * deprecated checkfees expects appropriate fees * adjust comment * drop lightning table * split migration for testing for now, remove it later * remove unused lightning table * skip_private_key -> skip_db_read * throw error on migration error * reorder * fix migrations * fix lnbits fee return value negative * fix typo * comments * add type * make format * split must use correct amount * fix tests * test deprecated api with internal/external melts * do not split if not necessary * refactor * fix test * make format with new black * cleanup and add comments * add quote state check endpoints * fix deprecated wallet response * split -> swap endpoint * make format * add expiry to quotes, get quote endpoints, and adjust to nut review comments * allow overpayment of melt * add lightning wallet tests * commiting to save * fix tests a bit * make format * remove comments * get mint info * check_spendable default False, and return payment quote checking id * make format * bump version in pyproject * update to /v1/checkstate * make format * fix mint api checks * return witness on /v1/checkstate * no failfast * try fail-fast: false in ci.yaml * fix db lookup * clean up literals
117 lines
2.4 KiB
TOML
117 lines
2.4 KiB
TOML
[tool.poetry]
|
|
name = "cashu"
|
|
version = "0.15.0"
|
|
description = "Ecash wallet and mint"
|
|
authors = ["calle <callebtc@protonmail.com>"]
|
|
license = "MIT"
|
|
|
|
[tool.poetry.dependencies]
|
|
python = "^3.8.1"
|
|
SQLAlchemy = "^1.3.24"
|
|
click = "^8.1.7"
|
|
pydantic = "^1.10.2"
|
|
bech32 = "^1.2.0"
|
|
fastapi = "^0.104.1"
|
|
environs = "^9.5.0"
|
|
uvicorn = "0.23.2"
|
|
loguru = "^0.7.0"
|
|
ecdsa = "^0.18.0"
|
|
bitstring = "^3.1.9"
|
|
secp256k1 = "^0.14.0"
|
|
sqlalchemy-aio = "^0.17.0"
|
|
h11 = "^0.14.0"
|
|
cryptography = "^41.0.3"
|
|
websocket-client = "^1.3.3"
|
|
pycryptodomex = "^3.16.0"
|
|
setuptools = "^68.1.2"
|
|
wheel = "^0.41.1"
|
|
importlib-metadata = "^6.8.0"
|
|
psycopg2-binary = { version = "^2.9.7", optional = true }
|
|
httpx = {extras = ["socks"], version = "^0.25.1"}
|
|
bip32 = "^3.4"
|
|
mnemonic = "^0.20"
|
|
bolt11 = "^2.0.5"
|
|
black = "23.11.0"
|
|
pre-commit = "^3.5.0"
|
|
|
|
[tool.poetry.extras]
|
|
pgsql = ["psycopg2-binary"]
|
|
|
|
[tool.poetry.group.dev.dependencies]
|
|
mypy = "^1.5.1"
|
|
black = "^23.11.0"
|
|
pytest-asyncio = "^0.21.1"
|
|
pytest-cov = "^4.0.0"
|
|
pytest = "^7.4.0"
|
|
ruff = "^0.0.284"
|
|
pre-commit = "^3.3.3"
|
|
fastapi-profiler = "^1.2.0"
|
|
|
|
[build-system]
|
|
requires = ["poetry-core>=1.0.0"]
|
|
build-backend = "poetry.core.masonry.api"
|
|
|
|
[tool.poetry.scripts]
|
|
mint = "cashu.mint.main:main"
|
|
cashu = "cashu.wallet.cli.cli:cli"
|
|
wallet-test = "tests.test_wallet:test"
|
|
|
|
|
|
[tool.black]
|
|
line-length = 88
|
|
|
|
# previously experimental-string-processing = true
|
|
# this should autoformat string properly but does not work
|
|
preview = true
|
|
|
|
|
|
[tool.ruff]
|
|
# Same as Black. but black has a 10% overflow rule
|
|
line-length = 150
|
|
|
|
# Enable pycodestyle (`E`) and Pyflakes (`F`) codes by default.
|
|
# (`I`) means isorting
|
|
select = ["E", "F", "I"]
|
|
ignore = []
|
|
|
|
# Allow autofix for all enabled rules (when `--fix`) is provided.
|
|
fixable = ["ALL"]
|
|
unfixable = []
|
|
|
|
# Exclude a variety of commonly ignored directories.
|
|
exclude = [
|
|
"cashu/nostr",
|
|
"cashu/core/bolt11.py",
|
|
".bzr",
|
|
".direnv",
|
|
".eggs",
|
|
".git",
|
|
".git-rewrite",
|
|
".hg",
|
|
".mypy_cache",
|
|
".nox",
|
|
".pants.d",
|
|
".pytype",
|
|
".ruff_cache",
|
|
".svn",
|
|
".tox",
|
|
".venv",
|
|
"__pypackages__",
|
|
"_build",
|
|
"buck-out",
|
|
"build",
|
|
"dist",
|
|
"node_modules",
|
|
"venv",
|
|
]
|
|
|
|
# Allow unused variables when underscore-prefixed.
|
|
dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$"
|
|
|
|
# Assume Python 3.8
|
|
# target-version = "py38"
|
|
|
|
[tool.ruff.mccabe]
|
|
# Unlike Flake8, default to a complexity level of 10.
|
|
max-complexity = 10
|