Unable to compile wallet_api #483

Open
opened 1 month ago by mrcyjanek · 7 comments

Hey! I'm trying to compile wownero to make my monero library (and monero wallet) support WOW.

Currently I'm unable do build wallet_api target, it errors out on v0.11.1.0 and current master.

I've managed to compile it with v0.11.0.1 (I think that wowlet uses the same wallet_api target, and it had this commit checked out as submodule).

steps to reproduce

$ mkdir build && cd build
$ cmake ..
$ make wallet_api -j$(nproc)

Error can be seen in console:

wownero/src/wallet/api/wallet.cpp: In member function ‘virtual Monero::PendingTransaction* Monero::WalletImpl::createTransactionMultDest(const std::vector<std::__cxx11::basic_string<char> >&, const std::string&, Monero::optional<std::vector<long unsigned int> >, uint32_t, Monero::PendingTransaction::Priority, uint32_t, std::set<unsigned int>, const std::set<std::__cxx11::basic_string<char> >&)’:
wownero/src/wallet/api/wallet.cpp:1776:118: error: cannot convert ‘std::vector<crypto::key_image>’ to ‘const tools::wallet2::unique_index_container&’ {aka ‘const std::set<unsigned int>&’}
 1776 |                                                                             extra, subaddr_account, subaddr_indices, preferred_input_list);
      |                                                                                                                      ^~~~~~~~~~~~~~~~~~~~
      |                                                                                                                      |
      |                                                                                                                      std::vector<crypto::key_image>
Hey! I'm trying to compile wownero to make my monero library (and monero wallet) support WOW. Currently I'm unable do build wallet_api target, it errors out on `v0.11.1.0` and current `master`. I've managed to compile it with `v0.11.0.1` (I think that wowlet uses the same wallet_api target, and it had this commit checked out as submodule). steps to reproduce ```plain $ mkdir build && cd build $ cmake .. $ make wallet_api -j$(nproc) ``` Error can be seen in console: ``` wownero/src/wallet/api/wallet.cpp: In member function ‘virtual Monero::PendingTransaction* Monero::WalletImpl::createTransactionMultDest(const std::vector<std::__cxx11::basic_string<char> >&, const std::string&, Monero::optional<std::vector<long unsigned int> >, uint32_t, Monero::PendingTransaction::Priority, uint32_t, std::set<unsigned int>, const std::set<std::__cxx11::basic_string<char> >&)’: wownero/src/wallet/api/wallet.cpp:1776:118: error: cannot convert ‘std::vector<crypto::key_image>’ to ‘const tools::wallet2::unique_index_container&’ {aka ‘const std::set<unsigned int>&’} 1776 | extra, subaddr_account, subaddr_indices, preferred_input_list); | ^~~~~~~~~~~~~~~~~~~~ | | | std::vector<crypto::key_image> ```
dsc commented 1 month ago
Owner

I did a fresh build of master, which is commit 589efde6b3d6494645c0264a0a354d039c0f46fe, and everything compiled.

git clone https://git.wownero.com/wownero/wownero.git wowgit --recursive
cd wowgit
cmake -Bbuild .
make -Cbuild -j12

$ ls build/bin 
wownerod  wownero-wallet-cli  wownero-wallet-rpc

I did a fresh build of `master`, which is commit `589efde6b3d6494645c0264a0a354d039c0f46fe`, and everything compiled. ```bash git clone https://git.wownero.com/wownero/wownero.git wowgit --recursive cd wowgit cmake -Bbuild . make -Cbuild -j12 $ ls build/bin wownerod wownero-wallet-cli wownero-wallet-rpc ```
Poster

I'm not trying to build binaries, I'm trying to build wallet_api target, so the make command from your example would be:

$ make -Cbuild wallet_api -j12
I'm not trying to build binaries, I'm trying to build wallet_api target, so the make command from your example would be: ```bash $ make -Cbuild wallet_api -j12 ```
dsc commented 1 month ago
Owner

Sorry, I read over that. master seems broken yes, the following fixes it:

diff --git a/src/wallet/api/wallet.cpp b/src/wallet/api/wallet.cpp
index 823f122c2..d81ddec93 100644
--- a/src/wallet/api/wallet.cpp
+++ b/src/wallet/api/wallet.cpp
@@ -1773,11 +1773,11 @@ PendingTransaction *WalletImpl::createTransactionMultDest(const std::vector<stri
             if (amount) {
                 transaction->m_pending_tx = m_wallet->create_transactions_2(dsts, fake_outs_count, 0 /* unlock_time */,
                                                                             adjusted_priority,
-                                                                            extra, subaddr_account, subaddr_indices, preferred_input_list);
+                                                                            extra, subaddr_account, subaddr_indices);
             } else {
                 transaction->m_pending_tx = m_wallet->create_transactions_all(0, info.address, info.is_subaddress, 1, fake_outs_count, 0 /* unlock_time */,
                                                                               adjusted_priority,
-                                                                              extra, subaddr_account, subaddr_indices, preferred_input_list);
+                                                                              extra, subaddr_account, subaddr_indices);
             }
             pendingTxPostProcess(transaction);
 

Sorry, I read over that. master seems broken yes, the following fixes it: ```diff diff --git a/src/wallet/api/wallet.cpp b/src/wallet/api/wallet.cpp index 823f122c2..d81ddec93 100644 --- a/src/wallet/api/wallet.cpp +++ b/src/wallet/api/wallet.cpp @@ -1773,11 +1773,11 @@ PendingTransaction *WalletImpl::createTransactionMultDest(const std::vector<stri if (amount) { transaction->m_pending_tx = m_wallet->create_transactions_2(dsts, fake_outs_count, 0 /* unlock_time */, adjusted_priority, - extra, subaddr_account, subaddr_indices, preferred_input_list); + extra, subaddr_account, subaddr_indices); } else { transaction->m_pending_tx = m_wallet->create_transactions_all(0, info.address, info.is_subaddress, 1, fake_outs_count, 0 /* unlock_time */, adjusted_priority, - extra, subaddr_account, subaddr_indices, preferred_input_list); + extra, subaddr_account, subaddr_indices); } pendingTxPostProcess(transaction); ```
Poster

Thanks @dsc!

Thanks @dsc!
Poster

Hey @dsc, I think that I've found a fix that still keeps the coin control feature enabled (I only know bare basics of CPP so this patch may be entirely wrong, but it fixed the build issues so I wanted to share it):

From bb9282a07934c0d4c389e6e10971f5e6f9f563b7 Mon Sep 17 00:00:00 2001
From: Czarek Nakamoto <cyjan@mrcyjanek.net>
Date: Tue, 26 Mar 2024 09:41:28 +0100
Subject: [PATCH] coin control

---
 src/simplewallet/simplewallet.cpp | 4 ++--
 src/wallet/api/wallet.cpp         | 5 +++--
 src/wallet/wallet2.cpp            | 2 +-
 src/wallet/wallet2.h              | 3 ++-
 src/wallet/wallet_rpc_server.cpp  | 2 +-
 5 files changed, 9 insertions(+), 7 deletions(-)

diff --git a/src/simplewallet/simplewallet.cpp b/src/simplewallet/simplewallet.cpp
index 754f088d6..c2e470a9b 100644
--- a/src/simplewallet/simplewallet.cpp
+++ b/src/simplewallet/simplewallet.cpp
@@ -7043,13 +7043,13 @@ bool simple_wallet::transfer_main(int transfer_type, const std::vector<std::stri
           return false;
         }
         unlock_block = bc_height + locked_blocks;
-        ptx_vector = m_wallet->create_transactions_2(dsts, fake_outs_count, unlock_block /* unlock_time */, priority, extra, m_current_subaddress_account, subaddr_indices, subtract_fee_from_outputs);
+        ptx_vector = m_wallet->create_transactions_2(dsts, fake_outs_count, unlock_block /* unlock_time */, priority, extra, m_current_subaddress_account, subaddr_indices, {}, subtract_fee_from_outputs);
       break;
       default:
         LOG_ERROR("Unknown transfer method, using default");
         /* FALLTHRU */
       case Transfer:
-        ptx_vector = m_wallet->create_transactions_2(dsts, fake_outs_count, 0 /* unlock_time */, priority, extra, m_current_subaddress_account, subaddr_indices, subtract_fee_from_outputs);
+        ptx_vector = m_wallet->create_transactions_2(dsts, fake_outs_count, 0 /* unlock_time */, priority, extra, m_current_subaddress_account, subaddr_indices, {}, subtract_fee_from_outputs);
       break;
     }
 
diff --git a/src/wallet/api/wallet.cpp b/src/wallet/api/wallet.cpp
index 63ed26a11..ca83812f3 100644
--- a/src/wallet/api/wallet.cpp
+++ b/src/wallet/api/wallet.cpp
@@ -2016,13 +2016,14 @@ PendingTransaction *WalletImpl::createTransactionMultDest(const std::vector<stri
             fake_outs_count = m_wallet->adjust_mixin(mixin_count);
 
             if (amount) {
+                // (std::vector<cryptonote::tx_destination_entry> dsts, const size_t fake_outs_count, const uint64_t unlock_time, uint32_t priority, const std::vector<uint8_t>& extra, uint32_t subaddr_account, std::set<uint32_t> subaddr_indices, const unique_index_container& subtract_fee_from_outputs, const std::vector<crypto::key_image>& preferred_input_list)
                 transaction->m_pending_tx = m_wallet->create_transactions_2(dsts, fake_outs_count, 0 /* unlock_time */,
                                                                             adjusted_priority,
-                                                                            extra, subaddr_account, subaddr_indices);
+                                                                            extra, subaddr_account, subaddr_indices, preferred_input_list);
             } else {
                 transaction->m_pending_tx = m_wallet->create_transactions_all(0, info.address, info.is_subaddress, 1, fake_outs_count, 0 /* unlock_time */,
                                                                               adjusted_priority,
-                                                                              extra, subaddr_account, subaddr_indices);
+                                                                              extra, subaddr_account, subaddr_indices, preferred_input_list);
             }
             pendingTxPostProcess(transaction);
 
diff --git a/src/wallet/wallet2.cpp b/src/wallet/wallet2.cpp
index 00d9c133e..55a5030c3 100644
--- a/src/wallet/wallet2.cpp
+++ b/src/wallet/wallet2.cpp
@@ -11500,7 +11500,7 @@ bool wallet2::light_wallet_key_image_is_ours(const crypto::key_image& key_image,
 // This system allows for sending (almost) the entire balance, since it does
 // not generate spurious change in all txes, thus decreasing the instantaneous
 // usable balance.
-std::vector<wallet2::pending_tx> wallet2::create_transactions_2(std::vector<cryptonote::tx_destination_entry> dsts, const size_t fake_outs_count, const uint64_t unlock_time, uint32_t priority, const std::vector<uint8_t>& extra, uint32_t subaddr_account, std::set<uint32_t> subaddr_indices, const unique_index_container& subtract_fee_from_outputs, const std::vector<crypto::key_image>& preferred_input_list)
+std::vector<wallet2::pending_tx> wallet2::create_transactions_2(std::vector<cryptonote::tx_destination_entry> dsts, const size_t fake_outs_count, const uint64_t unlock_time, uint32_t priority, const std::vector<uint8_t>& extra, uint32_t subaddr_account, std::set<uint32_t> subaddr_indices, const std::vector<crypto::key_image>& preferred_input_list, const unique_index_container& subtract_fee_from_outputs)
 {
   //ensure device is let in NONE mode in any case
   hw::device &hwdev = m_account.get_device();
diff --git a/src/wallet/wallet2.h b/src/wallet/wallet2.h
index 40997cdbb..f0e03a799 100644
--- a/src/wallet/wallet2.h
+++ b/src/wallet/wallet2.h
@@ -1208,7 +1208,7 @@ private:
     bool parse_unsigned_tx_from_str(const std::string &unsigned_tx_st, unsigned_tx_set &exported_txs) const;
     bool load_tx(const std::string &signed_filename, std::vector<tools::wallet2::pending_tx> &ptx, std::function<bool(const signed_tx_set&)> accept_func = NULL);
     bool parse_tx_from_str(const std::string &signed_tx_st, std::vector<tools::wallet2::pending_tx> &ptx, std::function<bool(const signed_tx_set &)> accept_func);
-    std::vector<wallet2::pending_tx> create_transactions_2(std::vector<cryptonote::tx_destination_entry> dsts, const size_t fake_outs_count, const uint64_t unlock_time, uint32_t priority, const std::vector<uint8_t>& extra, uint32_t subaddr_account, std::set<uint32_t> subaddr_indices, const unique_index_container& subtract_fee_from_outputs = {}, const std::vector<crypto::key_image>& preferred_input_list = {});     // pass subaddr_indices by value on purpose
+    std::vector<wallet2::pending_tx> create_transactions_2(std::vector<cryptonote::tx_destination_entry> dsts, const size_t fake_outs_count, const uint64_t unlock_time, uint32_t priority, const std::vector<uint8_t>& extra, uint32_t subaddr_account, std::set<uint32_t> subaddr_indices, const std::vector<crypto::key_image>& preferred_input_list = {}, const unique_index_container& subtract_fee_from_outputs = {});     // pass subaddr_indices by value on purpose
     std::vector<wallet2::pending_tx> create_transactions_all(uint64_t below, const cryptonote::account_public_address &address, bool is_subaddress, const size_t outputs, const size_t fake_outs_count, const uint64_t unlock_time, uint32_t priority, const std::vector<uint8_t>& extra, uint32_t subaddr_account, std::set<uint32_t> subaddr_indices, const std::vector<crypto::key_image>& preferred_input_list = {});
     std::vector<wallet2::pending_tx> create_transactions_single(const crypto::key_image &ki, const cryptonote::account_public_address &address, bool is_subaddress, const size_t outputs, const size_t fake_outs_count, const uint64_t unlock_time, uint32_t priority, const std::vector<uint8_t>& extra);
     std::vector<wallet2::pending_tx> create_transactions_from(const cryptonote::account_public_address &address, bool is_subaddress, const size_t outputs, std::vector<size_t> unused_transfers_indices, std::vector<size_t> unused_dust_indices, const size_t fake_outs_count, const uint64_t unlock_time, uint32_t priority, const std::vector<uint8_t>& extra);
@@ -1562,6 +1562,7 @@ private:
     uint64_t get_num_rct_outputs();
     size_t get_num_transfer_details() const { return m_transfers.size(); }
     const transfer_details &get_transfer_details(size_t idx) const;
+    size_t get_transfer_details(const crypto::public_key &pk) const;
 
     uint8_t get_current_hard_fork();
     void get_hard_fork_info(uint8_t version, uint64_t &earliest_height);
diff --git a/src/wallet/wallet_rpc_server.cpp b/src/wallet/wallet_rpc_server.cpp
index 8d2c68ac4..290af3831 100644
--- a/src/wallet/wallet_rpc_server.cpp
+++ b/src/wallet/wallet_rpc_server.cpp
@@ -1156,7 +1156,7 @@ namespace tools
     {
       uint64_t mixin = m_wallet->adjust_mixin(req.ring_size ? req.ring_size - 1 : 0);
       uint32_t priority = m_wallet->adjust_priority(req.priority);
-      std::vector<wallet2::pending_tx> ptx_vector = m_wallet->create_transactions_2(dsts, mixin, req.unlock_time, priority, extra, req.account_index, req.subaddr_indices, req.subtract_fee_from_outputs);
+      std::vector<wallet2::pending_tx> ptx_vector = m_wallet->create_transactions_2(dsts, mixin, req.unlock_time, priority, extra, req.account_index, req.subaddr_indices, {}, req.subtract_fee_from_outputs);
 
       if (ptx_vector.empty())
       {
Hey @dsc, I think that I've found a fix that still keeps the coin control feature enabled (I only know bare basics of CPP so this patch may be entirely wrong, but it fixed the build issues so I wanted to share it): ```patch From bb9282a07934c0d4c389e6e10971f5e6f9f563b7 Mon Sep 17 00:00:00 2001 From: Czarek Nakamoto <cyjan@mrcyjanek.net> Date: Tue, 26 Mar 2024 09:41:28 +0100 Subject: [PATCH] coin control --- src/simplewallet/simplewallet.cpp | 4 ++-- src/wallet/api/wallet.cpp | 5 +++-- src/wallet/wallet2.cpp | 2 +- src/wallet/wallet2.h | 3 ++- src/wallet/wallet_rpc_server.cpp | 2 +- 5 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/simplewallet/simplewallet.cpp b/src/simplewallet/simplewallet.cpp index 754f088d6..c2e470a9b 100644 --- a/src/simplewallet/simplewallet.cpp +++ b/src/simplewallet/simplewallet.cpp @@ -7043,13 +7043,13 @@ bool simple_wallet::transfer_main(int transfer_type, const std::vector<std::stri return false; } unlock_block = bc_height + locked_blocks; - ptx_vector = m_wallet->create_transactions_2(dsts, fake_outs_count, unlock_block /* unlock_time */, priority, extra, m_current_subaddress_account, subaddr_indices, subtract_fee_from_outputs); + ptx_vector = m_wallet->create_transactions_2(dsts, fake_outs_count, unlock_block /* unlock_time */, priority, extra, m_current_subaddress_account, subaddr_indices, {}, subtract_fee_from_outputs); break; default: LOG_ERROR("Unknown transfer method, using default"); /* FALLTHRU */ case Transfer: - ptx_vector = m_wallet->create_transactions_2(dsts, fake_outs_count, 0 /* unlock_time */, priority, extra, m_current_subaddress_account, subaddr_indices, subtract_fee_from_outputs); + ptx_vector = m_wallet->create_transactions_2(dsts, fake_outs_count, 0 /* unlock_time */, priority, extra, m_current_subaddress_account, subaddr_indices, {}, subtract_fee_from_outputs); break; } diff --git a/src/wallet/api/wallet.cpp b/src/wallet/api/wallet.cpp index 63ed26a11..ca83812f3 100644 --- a/src/wallet/api/wallet.cpp +++ b/src/wallet/api/wallet.cpp @@ -2016,13 +2016,14 @@ PendingTransaction *WalletImpl::createTransactionMultDest(const std::vector<stri fake_outs_count = m_wallet->adjust_mixin(mixin_count); if (amount) { + // (std::vector<cryptonote::tx_destination_entry> dsts, const size_t fake_outs_count, const uint64_t unlock_time, uint32_t priority, const std::vector<uint8_t>& extra, uint32_t subaddr_account, std::set<uint32_t> subaddr_indices, const unique_index_container& subtract_fee_from_outputs, const std::vector<crypto::key_image>& preferred_input_list) transaction->m_pending_tx = m_wallet->create_transactions_2(dsts, fake_outs_count, 0 /* unlock_time */, adjusted_priority, - extra, subaddr_account, subaddr_indices); + extra, subaddr_account, subaddr_indices, preferred_input_list); } else { transaction->m_pending_tx = m_wallet->create_transactions_all(0, info.address, info.is_subaddress, 1, fake_outs_count, 0 /* unlock_time */, adjusted_priority, - extra, subaddr_account, subaddr_indices); + extra, subaddr_account, subaddr_indices, preferred_input_list); } pendingTxPostProcess(transaction); diff --git a/src/wallet/wallet2.cpp b/src/wallet/wallet2.cpp index 00d9c133e..55a5030c3 100644 --- a/src/wallet/wallet2.cpp +++ b/src/wallet/wallet2.cpp @@ -11500,7 +11500,7 @@ bool wallet2::light_wallet_key_image_is_ours(const crypto::key_image& key_image, // This system allows for sending (almost) the entire balance, since it does // not generate spurious change in all txes, thus decreasing the instantaneous // usable balance. -std::vector<wallet2::pending_tx> wallet2::create_transactions_2(std::vector<cryptonote::tx_destination_entry> dsts, const size_t fake_outs_count, const uint64_t unlock_time, uint32_t priority, const std::vector<uint8_t>& extra, uint32_t subaddr_account, std::set<uint32_t> subaddr_indices, const unique_index_container& subtract_fee_from_outputs, const std::vector<crypto::key_image>& preferred_input_list) +std::vector<wallet2::pending_tx> wallet2::create_transactions_2(std::vector<cryptonote::tx_destination_entry> dsts, const size_t fake_outs_count, const uint64_t unlock_time, uint32_t priority, const std::vector<uint8_t>& extra, uint32_t subaddr_account, std::set<uint32_t> subaddr_indices, const std::vector<crypto::key_image>& preferred_input_list, const unique_index_container& subtract_fee_from_outputs) { //ensure device is let in NONE mode in any case hw::device &hwdev = m_account.get_device(); diff --git a/src/wallet/wallet2.h b/src/wallet/wallet2.h index 40997cdbb..f0e03a799 100644 --- a/src/wallet/wallet2.h +++ b/src/wallet/wallet2.h @@ -1208,7 +1208,7 @@ private: bool parse_unsigned_tx_from_str(const std::string &unsigned_tx_st, unsigned_tx_set &exported_txs) const; bool load_tx(const std::string &signed_filename, std::vector<tools::wallet2::pending_tx> &ptx, std::function<bool(const signed_tx_set&)> accept_func = NULL); bool parse_tx_from_str(const std::string &signed_tx_st, std::vector<tools::wallet2::pending_tx> &ptx, std::function<bool(const signed_tx_set &)> accept_func); - std::vector<wallet2::pending_tx> create_transactions_2(std::vector<cryptonote::tx_destination_entry> dsts, const size_t fake_outs_count, const uint64_t unlock_time, uint32_t priority, const std::vector<uint8_t>& extra, uint32_t subaddr_account, std::set<uint32_t> subaddr_indices, const unique_index_container& subtract_fee_from_outputs = {}, const std::vector<crypto::key_image>& preferred_input_list = {}); // pass subaddr_indices by value on purpose + std::vector<wallet2::pending_tx> create_transactions_2(std::vector<cryptonote::tx_destination_entry> dsts, const size_t fake_outs_count, const uint64_t unlock_time, uint32_t priority, const std::vector<uint8_t>& extra, uint32_t subaddr_account, std::set<uint32_t> subaddr_indices, const std::vector<crypto::key_image>& preferred_input_list = {}, const unique_index_container& subtract_fee_from_outputs = {}); // pass subaddr_indices by value on purpose std::vector<wallet2::pending_tx> create_transactions_all(uint64_t below, const cryptonote::account_public_address &address, bool is_subaddress, const size_t outputs, const size_t fake_outs_count, const uint64_t unlock_time, uint32_t priority, const std::vector<uint8_t>& extra, uint32_t subaddr_account, std::set<uint32_t> subaddr_indices, const std::vector<crypto::key_image>& preferred_input_list = {}); std::vector<wallet2::pending_tx> create_transactions_single(const crypto::key_image &ki, const cryptonote::account_public_address &address, bool is_subaddress, const size_t outputs, const size_t fake_outs_count, const uint64_t unlock_time, uint32_t priority, const std::vector<uint8_t>& extra); std::vector<wallet2::pending_tx> create_transactions_from(const cryptonote::account_public_address &address, bool is_subaddress, const size_t outputs, std::vector<size_t> unused_transfers_indices, std::vector<size_t> unused_dust_indices, const size_t fake_outs_count, const uint64_t unlock_time, uint32_t priority, const std::vector<uint8_t>& extra); @@ -1562,6 +1562,7 @@ private: uint64_t get_num_rct_outputs(); size_t get_num_transfer_details() const { return m_transfers.size(); } const transfer_details &get_transfer_details(size_t idx) const; + size_t get_transfer_details(const crypto::public_key &pk) const; uint8_t get_current_hard_fork(); void get_hard_fork_info(uint8_t version, uint64_t &earliest_height); diff --git a/src/wallet/wallet_rpc_server.cpp b/src/wallet/wallet_rpc_server.cpp index 8d2c68ac4..290af3831 100644 --- a/src/wallet/wallet_rpc_server.cpp +++ b/src/wallet/wallet_rpc_server.cpp @@ -1156,7 +1156,7 @@ namespace tools { uint64_t mixin = m_wallet->adjust_mixin(req.ring_size ? req.ring_size - 1 : 0); uint32_t priority = m_wallet->adjust_priority(req.priority); - std::vector<wallet2::pending_tx> ptx_vector = m_wallet->create_transactions_2(dsts, mixin, req.unlock_time, priority, extra, req.account_index, req.subaddr_indices, req.subtract_fee_from_outputs); + std::vector<wallet2::pending_tx> ptx_vector = m_wallet->create_transactions_2(dsts, mixin, req.unlock_time, priority, extra, req.account_index, req.subaddr_indices, {}, req.subtract_fee_from_outputs); if (ptx_vector.empty()) { ```
dsc commented 1 month ago
Owner

@mrcyjanek unrelated but I see you are working on Monero, I want to let you know about https://github.com/sanderfoobar/monero-cmake-modern/ which makes it easier to integrate Monero.

@mrcyjanek unrelated but I see you are [working on Monero](https://www.mrcyjanek.net/p/xmruw-monero-wallet/), I want to let you know about https://github.com/sanderfoobar/monero-cmake-modern/ which makes it easier to integrate Monero.
Poster

Yeah I am ^^, currently working on WOW support as well.
Sadly that repo won't help me much (at least not currently), but I find monero's contrib/depends very helpful when cross-compiling.

Yeah I am ^^, currently working on WOW support as well. Sadly that repo won't help me much (at least not currently), but I find monero's contrib/depends very helpful when cross-compiling.
Sign in to join this conversation.
No Milestone
No Assignees
2 Participants
Notifications
Due Date

No due date set.

Dependencies

No dependencies set.

Reference: wownero/wownero#483
Loading…
There is no content yet.