Commit Graph

96 Commits

Author SHA1 Message Date
callebtc
fa5193cd8f index on db and read spent proofs from db (#370)
* index on db and read spent proofs from db

* add benchmark for testing

* remove benchmark

* add option to disable cached secrets

* disable python 3.9 tests
2023-11-26 06:07:38 -03:00
callebtc
84cbeb6d30 fix proxy keys (#355)
* fix proxy keys

* fix all tests

* fix tor test
2023-11-09 17:03:45 -03:00
callebtc
0490f20932 Wallet: Lightning interface (#318)
* mint does not start yet

* fix import

* revert mint db migrations

* handle zero fee case

* cli: adjust fee message

* wallet: replace requests with httpx

* clean up

* rename http client decorator

* fix pending check in main, todo: TEST PROXIES WITH HTTPX

* fix up

* use httpx for nostr as well

* update packages to same versions as https://github.com/lnbits/lnbits/pull/1609/files

* fix proof deserialization

* check for string

* tests passing

* adjust wallet api tests

* lockfile

* add correct responses to Lightning interface and delete melt_id for proofs for which the payent has failed

* fix create_invoice checking_id response

* migrations atomic

* proofs are stored automatically when created

* make format

* use bolt11 lib

* stricter type checking

* add fee response to payments

* assert fees in test_melt

* test that mint_id and melt_id is stored correctly in proofs and proofs_used

* remove traces

* refactor: Lightning interface into own file and LedgerCrud with typing

* fix tests

* fix payment response

* rename variable
2023-10-21 14:38:16 +02:00
callebtc
744807b6f4 Remove P2SH (#341)
* remove p2sh

* Fix WalletAPI LockResponse
2023-10-13 21:41:54 +02:00
callebtc
64805e4a9a Bump to 0.14.0-rc1 (#329)
* bump to 0.14.0

* bump python version

* use python 3.10.4 in check workflow
2023-09-24 19:10:25 +02:00
dni ⚡
e374d32df7 [CHORE] updating dependencies, mainly fastapi (#302)
* [CHORE] updating dependencies, mainly fastapi

i updated all lib that i could. :) test seem to pass

downgrade uvicorn for mypy to pass

chore

fixup

formatting

* make flake8 didnt flake tests
2023-08-24 11:09:07 +02:00
dni ⚡
88393fa4c4 [DEV] add ruff and remove isort and flake (#300)
* [DEV] add ruff and remove isort and flake
- precommit
- workflow
- Makefile

updated black

* configure black to use default line-length

* reformat to 88 chars line-length

* fix ugly comments
2023-08-24 09:47:47 +02:00
dni ⚡
ca2b8e7bd6 [FEAT] add pre-commit (#294)
* add pre-commit

* precommit formatting
2023-07-29 11:14:48 +02:00
dni ⚡
e3ed00640f FEAT: Add flake8 (#267)
* init flake8

* exclude nostr client, and add ds_store to gitignore

* fix flake8 F811 issue, redefinition of unused variables

* add flake8 to workflow

* F401 unused imports

* F541 f-string is missing placeholders

* E501 line too long > 150 characters

* E722 no bare except

* E402 module level import not at top of file

* F405 no star imports

* E712 comparison to False should be 'if cond is False:'

* F841 local variable is assigned to but never used

* E266 too many leading '#' for block comment

* E265, E261

* E713 test for membership should be 'not in'

* E711, E741

E741 ambiguous variable name 'l'
E711 comparison to None should be 'if cond is None:'

* flake config

* isort

* refactor makefile flake8 usage

* reflaking the rebase

* black

* fix tests?

* black

* fix line lenght it test_cli

* sort out makefile

* fix strings

* reintroduce black-check

* reflake and mypy

* isort

* Update cashu/wallet/wallet.py

Co-authored-by: Angus Pearson <angus@toaster.cc>

* Update cashu/mint/ledger.py

Co-authored-by: Angus Pearson <angus@toaster.cc>

---------

Co-authored-by: Angus Pearson <angus@toaster.cc>
2023-07-28 18:42:16 +02:00
callebtc
b196c34427 [WIP] [NUTs] NUT-06 update: deprecate amount field in /split (#263)
* mint upgraded and still backwards compatible

* cleanup

* fix tests

* fix things

* add deprecated message to new struct

* fix test

* fix typo

* readd endpoint that got lost during merge

* version bump in pyproject.toml

* remove wallet backwards compatibility because it makes no sense

* comment for backwards compat

* fix comment
2023-07-25 11:13:20 +02:00
callebtc
0b2468914d Determinstic secrets / ecash restore (#131)
* first working version but some sats go missing

* back at it

* make format

* restore to main

* move mint database

* fix some tests

* make format

* remove old _construct_outputs we reintroduced in merge with main

* add type annotations

* add wallet private key to tests

* wallet: load proofs

* fix tests

* _generate_secrets with deterministic generation (temporary)

* allow wallet initialization with custom private key

* add pk to wallet api test

* mint scope=module

* remove private_key from test_wallet.py to see if it helps with the github tests

* readd private keys to tests

* workflow without env

* add more private key!

* readd env

* ledger scope session

* add default private key for testing

* generate private keys if not available

* testing

* its working!!!

* first iteration of bip32 working

* get mint info and add many type annotations

* tests

* fix tests with bip32

* restore from multiple mints

* disable profiler

* make format

* failed POST /mint do not increment secret counter

* store derivation path in each token

* fix tests

* refactor migrations so private keys can be generated by the wallet with .with_db() classmethod

* start fixing tests

* all tests passing except those that need to set a specific private key

* bip39 mnemonic to seed - with db but restore doesnt work yet with custom seed

* mnemonic restore works

* enter mnemonic in cli

* fix tests to use different mnemonic

* properly ask user for seed input

* tests: dont ask for inputs

* try to fix tests

* fix cashu -d

* fixing

* bump version and add more text to mnemonic enter

* add more comments

* add many more comments and type annotations in the wallet

* dont print generated mnemonic and dont wait for input

* fix test

* does this fix tests?

* sigh....

* make format

* do not restore from an initialized wallet

* fix mnemonics

* fix nitpicks

* print wallet name if nonstandard wallet

* fix merge error and remove comments

* poetry lock and requirements

* remove unused code

* fix tests

* mnemonic.lower() and add keyset id if not present for backwards compat

* edit comment
2023-07-24 13:42:56 +02:00
dni ⚡
c7dd582b56 FEAT: improve on workflows and makefile (#276)
* FEAT: improve on workflows and makefile

* update to poetry 1.5.1

* caching needs newer python task

quickfix
2023-07-18 00:13:39 +02:00
callebtc
84793fadca bump pyproject 0.12.3 (#278) 2023-07-08 22:54:44 +02:00
sihamon
786fbf2856 Allow to start wallet API by cashu --daemon (#243)
* Allow to start wallet API by cashu --daemon

* Provide access to wallet name via settings

* Make format

* Use flag is_eager for daemon option

* add setting api_host

---------

Co-authored-by: callebtc <93376500+callebtc@users.noreply.github.com>
2023-06-08 14:42:37 +02:00
callebtc
5f3f88c8ed [Mint] rewrite lnbits backend with httpx (#230)
* rewrite lnbits backend with httpx

* add httpx
2023-05-18 19:47:44 +02:00
callebtc
4088ab2876 Wallet REST API (#199)
* Add REST API for Cashu wallet

* Add simple way to start REST API server

* Add simple tests for wallet REST API

* Add TokenV3 to REST API

* Improve tests for wallet REST API

* Make format

* Remove unused import

* Rename nostr module for API

* Unify helper functions for CLI and API

* Make format

* Move error handling from helper functions to API

* Remove 'is_api' flag where possible

* Make format, cleanup, add comments

* Fix typo for burn also in API

* Improve error handling for API

* Add flag 'trust_new_mint' to receive command

To enable trusting or mistrusting unknown mints via API

* Allow selecting mint for sending from API

* Fix: set specific mint via API

* Fix: select mint with maximum balance via CLI

* Use different variables for mint_nr

* Allow selecting mint when sending via nostr via API

* Remove unnessecary 'is_api' flags from 'send_nostr'

* Remove HTTPException from nostr.py

* Allow selecting mint for sending with parameter also via CLI

* Allow trusting unknown mint for receiving also via CLI

* Make format

* Enable trusting unknown mint also when receiving via nostr

* Fix: wrong indentation of in receive function

* Use relative imports for wallet API

* Unify get_mint_wallet for CLI and API

* Unify send command for CLI and API

* Unify receive for CLI and API

* Catch errors in nostr via API

* Remove flag 'is_api' from verify_mints_tokenv2

* Remove cli_helpers left from last merge

* refactor cli selection

* load mint in nostr_send

* cleanup

* add cli_helpers.py

* legacy deserialization in cli

* make format

* clean up api response

* fix tests

* try pk

* verify mints in api

* try github tests

* Fix: verify_mints for API

* Uncomment verify_mints in receive of API

* update README

* Show mint url in pending

* clean up balance response

* fix test

* mint selection in api

* clean up API

* CLI: verify mint for receive -a

* clean up

* Rest -> REST

* Remove unused imports

---------

Co-authored-by: sihamon <sihamon@proton.me>
Co-authored-by: sihamon <126967444+sihamon@users.noreply.github.com>
2023-05-11 23:27:13 +02:00
calle
6b631111d1 Fix/ln unsuccessful payment (#159)
* throws error for unsuccessful payment so that wallets get error message

* bump to 0.11.2
2023-04-03 20:52:14 +02:00
calle
47f886487c nut-09 mint info (#155)
* nut-09 mint info

* bump to 0.11.1

* make format
2023-04-01 00:47:27 +02:00
callebtc
a673077005 bump to 0.11.0 2023-03-29 03:38:17 +02:00
calle
70828b59d5 NUT-08 Lightning fee return (#114)
* skeleton

* works

* comments

* docsctrings ledger.py

* bump version to 0.10.

* fixes mypy stuff

* make format

* remove unwanted changes
2023-03-16 01:28:33 +01:00
calle
2d3a29ad94 make format (#139) 2023-03-08 19:27:01 +01:00
calle
a2cdd002d8 cli logger refactor, poetry update (#125) 2023-03-05 03:29:55 +01:00
calle
fe802c00fe wallet: fix variable assignments (#124) 2023-03-05 03:16:28 +01:00
calle
46eeb2c36e Nostr-p2nip5 (#110)
* move cli

* set_requests decorator

* fix wrapper

* refactor nostr.py

* ignore coroutine unpack error

* nostr lib 0.8

* make format
2023-02-25 12:27:33 +01:00
calle
5ec2c3604e Nostr bech32 dm (#109)
* nostr: bech32 keys and remember last DM check

* cump to 0.9.2

* make format
2023-02-13 23:19:19 +01:00
calle
53aa73b7c7 Fix/multimind_redeem_unused_keysets (#108)
* multmind fix

* bump version

* fix verify_mints
2023-02-03 23:44:05 +01:00
calle
7e39e1b036 BREAKING: PostMeltRequest, CheckSpendableResponse ` (#106)
* fix PostMeltRequest and /checkfees to GET

* POST /check -> GET /check

* fix GetCheckSpendableResponse

* rename models

* make format

* revert GET

* bump version to 0.9

* skip nostr test
2023-01-30 09:13:46 +01:00
calle
01d9cef407 fix nostr relay and refactor nostr_send and nostr_receive (#100)
* fix nostr relay and refactor nostr_send and nostr_receive

* bump to 0.8.4

* make format

* check test

* close nostr
2023-01-25 01:50:02 +01:00
calle
2dd9fd356f Fix/tokenv2mints (#98)
* adjust tokenv2 and make it backwards compatible

* fix dict to list

* use pydantic object and not the dtoken

* make format

* fix typo in _meltrequest_include_fields

* reorder functions

* fixes and tests working

* bump version to 0.8.3
2023-01-19 08:35:32 +01:00
callebtc
68b5b54c9b bump version 2023-01-15 19:21:58 +01:00
callebtc
f956938a2d update importlib versions 2023-01-15 11:08:22 +01:00
callebtc
6e801145e5 bump to 0.8.1 2023-01-15 11:02:30 +01:00
calle
344210d266 fix versions (#97) 2023-01-15 10:59:17 +01:00
callebtc
9919c141ad update pyproject for lnbits 2023-01-15 01:23:15 +01:00
callebtc
20b99ee792 bumop to 0.8 2023-01-14 13:46:33 +01:00
callebtc
b9123d9bd2 add wheel package for secp 2022-12-26 17:43:19 +01:00
callebtc
9fc7694c6b bump 2022-12-26 17:24:16 +01:00
callebtc
1e38fe695f add nostr 2022-12-18 17:10:06 +01:00
callebtc
4e965b05b2 bump to 0.6.0 2022-12-14 23:51:56 +01:00
callebtc
bc333ac01b bump to 0.5.5 2022-11-30 17:37:13 +01:00
callebtc
6cf8483cb6 bump to 0.5.4 2022-11-26 02:45:43 +01:00
callebtc
a58f27dd7c bump to 0.5.3 2022-11-26 01:53:09 +01:00
callebtc
00735385fb fix migration 2022-11-05 04:04:16 +01:00
callebtc
86aea47e90 force tor if not manually disabled 2022-11-03 14:28:50 +01:00
callebtc
6936e801e4 works 2022-10-30 00:00:47 +02:00
callebtc
d8cd648714 add tor 2022-10-29 18:07:13 +02:00
callebtc
6afc165a86 version changes for lnbits compatibility 2022-10-21 15:07:02 +02:00
callebtc
a58458b3a2 new command: invoices 2022-10-18 11:41:25 +02:00
callebtc
60c3c43bb2 pytest-cov for dev installs only 2022-10-16 13:24:23 +02:00
callebtc
0cdd5bd568 coverage 2022-10-16 13:21:31 +02:00