120 Commits

Author SHA1 Message Date
jwinterm
97877eda27 Port monero-lws to wownero-lws
Adapts monero-lws for Wownero cryptocurrency:

- Rename all monero-lws-* binaries to wownero-lws-*
- Update submodule to point to official Wownero repo
- Use Wownero default ports (RPC: 34568, ZMQ: 34569)
- Update data directory to ~/.wownero/light_wallet_server
- Adapt next_difficulty() calls for Wownero API signature

Key technical changes for Wownero compatibility:

- BulletproofPlus (RCTTypeBulletproofPlus, type 8) commitment verification:
  Wownero stores BP+ commitments in 'divided by 8' form. Must call
  rct::scalarmult8() on outPk commitment before comparing with computed
  commitment (mask*G + amount*H). This is essential for amount decryption.

- Pass rct_type to decode_amount() for proper commitment handling

- Handle Wownero's ZMQ JSON format for ecdhTuple (32-byte mask/amount fields)

No fork of Wownero is required - uses official codeberg.org/wownero/wownero.
2026-01-04 20:04:42 -05:00
Lee *!* Clagett
6c0b957e95 lookahead optimization for users that disabled subaddresses (#220) 2025-12-19 18:53:32 -05:00
Lee *!* Clagett
332c969c74 Fix divide by zero in db code (#219) 2025-12-18 10:20:02 -05:00
Lee *!* Clagett
770e3b0ca4 A few odds and ends after lookahead patch (#215) 2025-12-18 10:19:53 -05:00
Lee *!* Clagett
16111cae2c Add support for subaddress lookahead (#195) 2025-12-18 10:19:43 -05:00
everoddandeven
e8b889e95f Fix missing regtest option (#214) 2025-12-18 10:19:07 -05:00
Lee *!* Clagett
506c3a871d Print version on monero-lws-daemon startup (#213) 2025-12-02 20:28:45 -05:00
Lee *!* Clagett
24bdbb43d4 Fix usage of mdb_cursor_put with invalid memory references (#210) 2025-12-01 09:00:50 -05:00
Lee *!* Clagett
8cf0976557 Add /get_version, based on openmonero with a few extra additions (#209) 2025-11-26 19:04:19 -05:00
Lee *!* Clagett
c65a1f488b Don't log MDB_NOTFOUND with subaddress lookup (#208) 2025-11-23 17:33:37 -05:00
Lee *!* Clagett
320cf03b2b Improve LMDB error logging (#205) 2025-11-19 11:00:58 -05:00
William Swanson
e08480cbc1 Logging Improvements (#198)
* Log ZMQ SUB address at startup
* Log current thread number and block height
* fixup! Log current thread number and block height
2025-11-14 13:00:43 -05:00
Lee *!* Clagett
0caec18f84 Fix locked_funds computation (#200) 2025-11-14 12:45:22 -05:00
Lee *!* Clagett
26a882965f Hopefully fix issue with db corruption (bad data size) (#199) 2025-11-13 11:14:33 -05:00
Lee *!* Clagett
151d3092a7 Add from_height to /import_wallet_request (#194) 2025-11-04 20:09:48 -05:00
everoddandeven
01374ec620 Add regtest option (#193)
Disable checkpoints check on storage::sync_chain when regtest mode is enabled
2025-11-04 20:09:22 -05:00
Lee *!* Clagett
73fb2f7794 Update limits for get_random_outs (#190) 2025-10-29 19:46:41 -04:00
Lee *!* Clagett
3d12cc1c06 Add GH workflow for docker build and push (#186) 2025-10-17 14:53:06 -04:00
Lee *!* Clagett
8955547536 Reconnect RMQ on publish failure (#181) 2025-10-15 12:37:10 -04:00
Lee *!* Clagett
a11482c123 Fix ringct+coinbase output tracking, and update rescan rollbacks (#178) 2025-09-04 23:17:20 -04:00
Lee *!* Clagett
44278d0d11 Restarting on reorg is broken; fix asio::io_context::restart calls (#177) 2025-09-02 11:09:13 -04:00
Lee *!* Clagett
ecf30672fb Fix import_wallet_response status (#175) 2025-07-24 14:40:46 -04:00
Lee *!* Clagett
e593fd5fb2 Add support for dynamic fees over ZMQ (#166)
* Add support for dynamic fees over ZMQ
* Fix build after upstream change
* Fix unit tests
2025-07-20 13:19:50 -04:00
Lee *!* Clagett
448c6740f4 Set longer timeouts for requests after login (#171) 2025-06-22 19:51:00 -04:00
Lee *!* Clagett
cf407344e1 Fix /submit_raw_tx_response status (currently outputs 'bool') (#162) 2025-06-07 18:25:41 -04:00
Lee Clagett
95848bd75f Fix /get_random_outs with Boost 1.87+ 2025-06-05 13:51:52 -04:00
everoddandeven
4e85e3c828 Return lws::error::not_enough_amount when received is less than requested amount (#154) 2025-04-19 14:26:49 -04:00
Lee *!* Clagett
b5d0844bbd Update deprecated features removed in Boost ASIO 1.87 (#153) 2025-02-24 18:24:44 -05:00
Lee *!* Clagett
29358f1323 Switch from epee http client to boost::beast. All HTTP now non-blocking. (#150) 2025-02-24 18:24:38 -05:00
Lee *!* Clagett
66b7497a34 Update boost::asio usage to conform to newer standards: (#144)
* Convert boost::asio::io_service to boost::asio::io_context
  * Convert strand.wrap(...) to boost::asio::bind_executor(strand, ...)
  * Convert strand.dispatch(...) to boost::asio::dispatch(strand, ...)
  * Convert io_context.reset() to io_context.restart()
  * Convert null_buffers() usage to socket.async_wait(...)
  * Drop usage of GET_IO_SERVICE macro from monero
  * Refactor REST server to manage resources better
2025-02-24 18:24:31 -05:00
Lee *!* Clagett
5796dad3b8 /get_random_outs is now fully async using stackful coroutines (#142) 2025-02-24 18:23:59 -05:00
Lee *!* Clagett
ed6fde7f28 Fixing shutdown request during sync-phase (#143) 2025-02-24 18:21:58 -05:00
Lee *!* Clagett
075dc5d7c2 Switch from epee http server to boost::beast http server. Min boost 1.70 (#136)
There is roughly a 7.4% increase in performance in the switch to
boost::beast. Additionally, the REST endpoints `/daemon_status`,
`/get_unspent_outs`, and `/submit_raw_tx` do not block in ZMQ calls,
allowing for better response times regardless of `monerod` status.

The REST endpoints `/login and `/get_random_outs` still need updates
to prevent blocking (`/login` is conditional on DB state).
2025-02-24 18:21:18 -05:00
Lee *!* Clagett
8080159fc8 Fix several bugs found in new server scanner code (#146) 2025-02-24 18:12:37 -05:00
Lee *!* Clagett
cd62461578 Add support for remote scanning via custom TCP (#118) 2025-02-24 18:11:17 -05:00
Lee *!* Clagett
a5d802cd9b Update Dockerfile and CMake files to build develop/master (#149) 2024-10-28 13:51:01 -04:00
Lee *!* Clagett
62d3425277 Fix LMDB double-reader bug with subaddresses+mempool (#140) 2024-10-15 21:49:59 -04:00
Lee *!* Clagett
48e9a52ed9 Replace deprecated result_of with decltype (#139) 2024-10-10 18:09:08 -04:00
Lee *!* Clagett
53ceb292ea Fix build with changes to boost::uuid in versions 1.86+ (#138) 2024-10-09 14:05:04 -04:00
Lee *!* Clagett
64dd5d1aa9 Add equivalent check to validate admin endpoint (#131) 2024-09-10 14:48:08 -04:00
Lee *!* Clagett
24e6c2f5f3 Pull in fixes to lmdb::database from monero PR (#130) 2024-08-09 22:06:47 -04:00
Lee *!* Clagett
8fad87a0fe Add (non-standard) 'daemon_status' endpoint to REST API (#124) 2024-08-06 19:06:43 -04:00
Lee *!* Clagett
79564f714f Fix divide by zero in subaddresses n_maj (#114) 2024-06-26 14:14:43 -04:00
Lee *!* Clagett
57c67ae0e4 Fix ZeroMQ REQ send error after remote process crash/abort (#126) 2024-06-26 14:08:58 -04:00
Lee *!* Clagett
27b682ba69 Fix ZeroMQ invalid REQ/REP state after read timeout. (#125)
After a read timeout, the thread-local ZMQ client is expecting a read,
and not send on the REQ socket. This attempts to read+discard 1 message
before retrying the REQ send. This has proven effective at recovering
from a temporarily unavailable daemon.
2024-06-25 22:08:49 -04:00
Lee *!* Clagett
dca70598cb Fix max_element_count for signature inputs (#123) 2024-06-21 15:00:07 -04:00
Lee *!* Clagett
474fc55d69 Fix webhook bug on overlapping rescan (#121) 2024-06-12 13:54:43 -04:00
Lee *!* Clagett
6fe07fddb9 Fix scan height (db) bug on account check-ins (#120) 2024-06-06 17:03:57 -04:00
Lee *!* Clagett
e093b16447 Fix several bugs: (#119)
* lws::account height update should only go up.
  * Webhook confirmations can start after first new block
  * Webhook confirmations could face a rescan
2024-06-03 19:44:46 -04:00
Lee *!* Clagett
3f2916b0fa Add webhook deletion to admin cli (#105) 2024-06-03 19:44:34 -04:00