diff --git a/.gitmodules b/.gitmodules index d37bc4c..4b6638a 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,6 +1,6 @@ [submodule "external/lwsf"] - path = external/lwsf - url = https://github.com/vtnerd/lwsf.git +path = external/lwsf +url = https://codeberg.org/wownero/lwsf-wow.git [submodule "external/ftxui"] - path = external/ftxui - url = https://github.com/ArthurSonzogni/FTXUI.git +path = external/ftxui +url = https://github.com/ArthurSonzogni/FTXUI.git diff --git a/CMakeLists.txt b/CMakeLists.txt index 4ffb547..7dd61bd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,5 @@ # Copyright (c) 2025, Cifro Codes LLC +# Copyright (c) 2025, The Wownero Project # # All rights reserved. # @@ -34,7 +35,7 @@ set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) if (NOT MONERO_SOURCE_DIR) - message(FATAL_ERROR "The argument -DMONERO_SOURCE_DIR must specify a location of a monero source tree") + message(FATAL_ERROR "The argument -DMONERO_SOURCE_DIR must specify a location of a wownero source tree") endif() include(FetchContent) diff --git a/README.md b/README.md index d2118ff..8c4ae37 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,25 @@ -# lwcli +# lwcli-wow -This is an experimental TUI (FTXUI) wallet (with mouse support) used to test the ability of [lwsf](https://code.leeclagett.com/lwsf) in replacing the standard backend for the Monero wallet api. This wallet can use either backend with a runtime option, but once the wallet file is created it is "bound" to that particular backend due to file format. - -This was _not_ billed/paid for by Monero CCS, as I'm not sure if there are real users desiring this sort of wallet. I may ask for CCS contributions in maintaining this wallet if there are users. +This is an experimental TUI (FTXUI) wallet (with mouse support) for Wownero, forked from [lwcli](https://github.com/cifro-codes/lwcli). This wallet uses [lwsf-wow](https://codeberg.org/wownero/lwsf-wow) as backend and can connect to [wownero-lws](https://codeberg.org/wownero/wownero-lws) light wallet servers. ## Building ```bash -git clone https://github.com/monero-project/monero.git -git clone https://github.com/cifro-codes/lwcli.git -cd lwcli && mkdir build && cd build -git submodules update --init --recursive -cmake -DCMAKE_BUILD_TYPE=Release -DMONERO_SOURCE_DIR=../../monero .. +git clone https://git.wownero.com/wownero/wownero.git +git clone --recursive https://codeberg.org/wownero/lwcli-wow.git +cd lwcli-wow && mkdir build && cd build +cmake -DCMAKE_BUILD_TYPE=Release -DMONERO_SOURCE_DIR=../../wownero .. make -j$(nproc) ./src/lwcli -h ``` + +## Syncing with Upstream + +This project tracks the upstream [lwcli](https://github.com/cifro-codes/lwcli) repository. +To sync changes from upstream: + +```bash +git fetch upstream +git merge upstream/main +# Resolve any conflicts if needed +git push origin main +``` diff --git a/external/lwsf b/external/lwsf index 8b5ad20..137b09a 160000 --- a/external/lwsf +++ b/external/lwsf @@ -1 +1 @@ -Subproject commit 8b5ad20db947d6f382a2f55dd0492372df8bfb6b +Subproject commit 137b09a45cfd6972fe5e8872ee6fa930dd057c47 diff --git a/src/lwcli_config.h b/src/lwcli_config.h index 53a1fba..cb609ba 100644 --- a/src/lwcli_config.h +++ b/src/lwcli_config.h @@ -1,4 +1,5 @@ // Copyright (c) 2025, Cifro Codes LLC +// Copyright (c) 2025, The Wownero Project // // All rights reserved. // diff --git a/src/views/accounts.cpp b/src/views/accounts.cpp index c80c06d..18f8d12 100644 --- a/src/views/accounts.cpp +++ b/src/views/accounts.cpp @@ -1,4 +1,5 @@ // Copyright (c) 2025, Cifro Codes LLC +// Copyright (c) 2025, The Wownero Project // // All rights reserved. // @@ -414,7 +415,7 @@ namespace lwcli { namespace view row_map_.try_emplace(i++).first->second = id; rows.push_back({ active + std::to_string(id), - detail->getBalance() + " XMR", + detail->getBalance() + " WOW", detail->getLabel(), detail->getAddress().substr(0, 12) + "..." }); diff --git a/src/views/send.cpp b/src/views/send.cpp index a72bbb0..c73e8a1 100644 --- a/src/views/send.cpp +++ b/src/views/send.cpp @@ -1,4 +1,5 @@ // Copyright (c) 2025, Cifro Codes LLC +// Copyright (c) 2025, The Wownero Project // // All rights reserved. // @@ -105,8 +106,8 @@ namespace lwcli { namespace view std::vector> grid; grid.reserve(dests.first.size() + 3); - grid.push_back({ftxui::text(_("Sending: ")), ftxui::text(lwsf::displayAmount(tx_->amount()) + " XMR")}); - grid.push_back({ftxui::text(_("Fee: ")), ftxui::text(lwsf::displayAmount(tx_->fee()) + " XMR")}); + grid.push_back({ftxui::text(_("Sending: ")), ftxui::text(lwsf::displayAmount(tx_->amount()) + " WOW")}); + grid.push_back({ftxui::text(_("Fee: ")), ftxui::text(lwsf::displayAmount(tx_->fee()) + " WOW")}); { std::vector ids = tx_->txid(); @@ -120,7 +121,7 @@ namespace lwcli { namespace view } for (std::size_t i = 0; i < dests.first.size(); ++i) - grid.push_back({ftxui::text(lwsf::displayAmount(dests.second.at(i)) + " XMR to "), ftxui::text(std::move(dests.first.at(i)))}); + grid.push_back({ftxui::text(lwsf::displayAmount(dests.second.at(i)) + " WOW to "), ftxui::text(std::move(dests.first.at(i)))}); info_ = ftxui::gridbox(std::move(grid)); } @@ -268,7 +269,7 @@ namespace lwcli { namespace view : ftxui::ComponentBase(), wm_(std::move(wm)), wal_(std::move(wal)), - title_(ftxui::text(_("Send from account #") + std::to_string(account) + " (" + lwsf::displayAmount(wal_->unlockedBalance(account)) + " XMR available)")), + title_(ftxui::text(_("Send from account #") + std::to_string(account) + " (" + lwsf::displayAmount(wal_->unlockedBalance(account)) + " WOW available)")), priority_names_({_("Auto"), _("Unimportant"), _("Normal"), _("Elevated"), _("Priority")}), dests_(), dests_ui_(), @@ -457,7 +458,7 @@ namespace lwcli { namespace view error_.reset(); if (std::get<0>(oa).empty()) - error_ = ftxui::text(_("No XMR OpenAlias found for ") + std::get<1>(oa)->second); + error_ = ftxui::text(_("No WOW OpenAlias found for ") + std::get<1>(oa)->second); else if (!lwsf::addressValid(std::get<0>(oa), wal_->nettype())) error_ = ftxui::text(_("OpenAlias record is invalid for ") + std::get<1>(oa)->second); else if (!closing_) @@ -526,7 +527,7 @@ namespace lwcli { namespace view ftxui::Elements row; row.reserve(6); row.push_back(std::get<0>(e)->Render() | min_amount_size); - row.push_back(ftxui::text(" XMR to ")); + row.push_back(ftxui::text(" WOW to ")); row.push_back(std::get<1>(e)->Render()); if (!animate) {