Commit graph

16 commits

Author SHA1 Message Date
725944ae9c Replace NIP-04 messaging with NIP-17 (NIP-44 + NIP-59 gift wrapping)
Modernize the entire customer-merchant communication layer from deprecated
NIP-04 (kind 4, AES-256-CBC) to NIP-17 private direct messages using
NIP-44 v2 encryption (ChaCha20 + HMAC-SHA256) and NIP-59 gift wrapping
(rumor/seal/gift-wrap protocol). No backwards compatibility retained.

New modules:
- nostr/nip44.py: NIP-44 v2 encryption verified against official spec vectors
- nostr/nip59.py: NIP-59 gift wrap with wrap/unwrap convenience functions
- tests/: 44 unit tests for NIP-44 and NIP-59

Key changes:
- Subscription filters: kind 4 → kind 1059 gift wraps
- Message handler: _handle_nip04_message → _handle_gift_wrap (unwrap + route)
- send_dm/reply_to_structured_dm: NIP-59 gift wrap to recipient + self-archive
- Merchant model: removed NIP-04 crypto methods (decrypt/encrypt/build_dm_event)
- helpers.py: removed NIP-04 functions, kept Schnorr signing + key normalization
- views_api.py: consolidated DM sending through send_dm() service function

Reliability improvements:
- Event deduplication via bounded LRU set in NostrClient
- Subscription health monitor (resubscribes after 120s of silence)
- Preserved 5-minute lenient time window from prior work

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-03 16:59:03 +02:00
319d5eeb04 Refactors type hints for clarity
Some checks failed
CI / lint (push) Has been cancelled
Updates type hints in `crud.py`, `helpers.py`, and `models.py` for improved readability and maintainability.

Replaces `Merchant | None` with `Optional[Merchant]` and `list[X]` with `List[X]` for consistency with standard Python typing practices.
2026-04-24 01:59:27 -04:00
Vlad Stan
17d13dbe6b
fix: point multiplication (#115)
Some checks failed
/ release (push) Has been cancelled
/ pullrequest (push) Has been cancelled
2025-11-13 12:10:40 +02:00
dni ⚡
9c00adbf2d
chore: get rid of secp lib (#114)
* chore: get rid of secp lib

* fixup!
2025-11-04 10:34:24 +01:00
dni ⚡
3a8c16d155
chore: add uv, add ci, fix some issues (#113)
in preparation of removing secp
2025-10-30 10:11:18 +01:00
Vlad Stan
de7fe059b8
V1 (#106)
Some checks failed
/ release (push) Has been cancelled
/ pullrequest (push) Has been cancelled
2024-11-06 11:50:21 +02:00
Vlad Stan
33adae672d
Product delete (#64)
* feat: restore stalls from `nostr` as pending

* feat: stall and prod last update time

* feat: restore products and stalls as `pending`

* feat: show pending stalls

* feat: restore stall

* feat: restore a stall from nostr

* feat: add  blank `Restore Product` button

* fix: handle no talls to restore case

* feat: show restore dialog

* feat: allow query for pending products

* feat: restore products

* chore: code clean-up

* fix: last dm and last order query

* chore: code clean-up

* fix: subscribe for stalls and products on merchant create/restore

* feat: add message type to orders

* feat: simplify messages; code format

* feat: add type to DMs; restore DMs from nostr

* fix: parsing ints

* fix: hide copy button if invoice not present

* fix: do not generate invoice if product not found

* feat: order restore: first version

* refactor: move some logic into `services`

* feat: improve restore UX

* fix: too many calls to customer DMs

* fix: allow `All` customers filter

* fix: ws reconnect on server restart

* fix: query for customer profiles only one

* fix: unread messages per customer per merchant

* fix: disable `user-profile-events`

* fix: customer profile is optional

* fix: get customers after new message debounced

* chore: code clean-up

* feat: auto-create zone

* feat: fixed ID for default zone

* feat: notify order paid
2023-06-30 13:12:56 +03:00
Vlad Stan
19f67e474a feat: allow to add test public key 2023-05-04 12:15:45 +03:00
Vlad Stan
a65017d04e fix: shipping cost; update UI on new order 2023-04-03 11:57:55 +03:00
Vlad Stan
da38fcdc82 fix: add orders to direct_messages table 2023-03-24 16:55:23 +02:00
Vlad Stan
cdf9b20e05 chore: code clean-up 2023-03-16 18:34:37 +02:00
Vlad Stan
d58c97f080 feat: user merchant_id instead of user_id 2023-03-14 14:31:30 +02:00
Vlad Stan
8cdcb144b9 feat: send invoice back for order 2023-03-06 17:33:55 +02:00
Vlad Stan
12c32b019f feat: return payment-request for order 2023-03-06 16:31:34 +02:00
Vlad Stan
2912589b70 feat: create order on DM 2023-03-06 15:03:02 +02:00
Vlad Stan
639b4cb880 feat: publish event on C_UD for stalls 2023-03-02 10:14:11 +02:00