monero-lws icon indicating copy to clipboard operation
monero-lws copied to clipboard

Unable to find required monero library daemon_messages

Open omg-itsme opened this issue 3 years ago • 12 comments

-- The C compiler identification is GNU 9.3.0 -- The CXX compiler identification is GNU 9.3.0 -- Check for working C compiler: /usr/bin/cc -- Check for working C compiler: /usr/bin/cc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Detecting C compile features -- Detecting C compile features - done -- Check for working CXX compiler: /usr/bin/c++ -- Check for working CXX compiler: /usr/bin/c++ -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Detecting CXX compile features -- Detecting CXX compile features - done -- Looking for pthread.h -- Looking for pthread.h - found -- Performing Test CMAKE_HAVE_LIBC_PTHREAD -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed -- Check if compiler accepts -pthread -- Check if compiler accepts -pthread - yes -- Found Threads: TRUE
CMake Error at CMakeLists.txt:142 (message): Unable to find required monero library daemon_messages

-- Configuring incomplete, errors occurred! See also "/home/monero/monero-lws/build/CMakeFiles/CMakeOutput.log". See also "/home/monero/monero-lws/build/CMakeFiles/CMakeError.log".

omg-itsme avatar Aug 17 '21 08:08 omg-itsme

What's the version of Monero you're trying to compile with? How do you call cmake?

serhack avatar Aug 17 '21 08:08 serhack

Trying with master branch of Monero project

On Tue, 17 Aug 2021, 1:50 pm SerHack, @.***> wrote:

What's the version of Monero you're trying to compile with? How do you call cmake?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/vtnerd/monero-lws/issues/19#issuecomment-900094363, or unsubscribe https://github.com/notifications/unsubscribe-auth/AUOOOKCLAXVFEJ4GL4BXIX3T5ILTZANCNFSM5CJKFZ3A . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email .

omg-itsme avatar Aug 17 '21 08:08 omg-itsme

Only the release-0.16 branch will work at this time. I am in the progress of transitioning this project to master+develop+release-0.16 branches where the first two compile against Monero's master branch, and the last one compiles against the current release. The develop branch will be more of a "nightly" system that has less testing than master features.

vtnerd avatar Aug 17 '21 19:08 vtnerd

There is any clear documentation or whitepaper about this project ?

omg-itsme avatar Aug 18 '21 06:08 omg-itsme

The readme discusses how to build the project. I noticed the instructions were unclear on how to build the project against the main Monero repo.

My recommendation is to pull the latest updates. You should see two new branches. I would choose master and build the master branch of monero-project/monero OR choose release-v0.1_0.17 and build the release-v0.17 branch of monero-project/monero.

As per your actual error - specify the full path of -DMONERO_BUILD_DIR - it currently won't work with relative paths.

vtnerd avatar Aug 20 '21 02:08 vtnerd

I'm missing something. Building release-v0.1_0.17 against Monero 'Oxygen Orion' (v0.17.2.0-c61c09a56) ends with

cryptonote_tx_utils.cpp:(.text+0x9a43): undefined reference to  
  `cryptonote::get_transaction_prefix_hash(cryptonote::transaction_prefix const&, crypto::hash&)'

My last successful build was

Aug 12 07:17 usr/bin/monerod
Aug 12 10:31 usr/bin/monero-lws-admin
Aug 12 10:31 usr/bin/monero-lws-daemon
[ 75%] Linking CXX executable monero-lws-admin
/home/crypto/local/build/build-monero-pool/staging-area/monero/monero-build/src/cryptonote_core/libcryptonote_core.a(cryptonote_tx_utils.cpp.o): In function `cryptonote::construct_tx_with_tx_key(cryptonote::account_keys const&, std::unordered_map<crypto::public_key, cryptonote::subaddress_index, std::hash<crypto::public_key>, std::equal_to<crypto::public_key>, std::allocator<std::pair<crypto::public_key const, cryptonote::subaddress_index> > > const&, std::vector<cryptonote::tx_source_entry, std::allocator<cryptonote::tx_source_entry> >&, std::vector<cryptonote::tx_destination_entry, std::allocator<cryptonote::tx_destination_entry> >&, boost::optional<cryptonote::account_public_address> const&, std::vector<unsigned char, std::allocator<unsigned char> > const&, cryptonote::transaction&, unsigned long, epee::mlocked<tools::scrubbed<crypto::ec_scalar> > const&, std::vector<epee::mlocked<tools::scrubbed<crypto::ec_scalar> >, std::allocator<epee::mlocked<tools::scrubbed<crypto::ec_scalar> > > > const&, bool, rct::RCTConfig const&, rct::multisig_out*, bool)':
cryptonote_tx_utils.cpp:(.text+0x9a43): undefined reference to `cryptonote::get_transaction_prefix_hash(cryptonote::transaction_prefix const&, crypto::hash&)'
/home/crypto/local/build/build-monero-pool/staging-area/monero/monero-build/src/cryptonote_core/libcryptonote_core.a(blockchain.cpp.o): In function `cryptonote::Blockchain::check_tx_inputs(cryptonote::transaction&, cryptonote::tx_verification_context&, unsigned long*) const':
blockchain.cpp:(.text+0x21139): undefined reference to `cryptonote::get_transaction_prefix_hash(cryptonote::transaction_prefix const&)'
/home/crypto/local/build/build-monero-pool/staging-area/monero/monero-build/src/cryptonote_core/libcryptonote_core.a(blockchain.cpp.o): In function `cryptonote::Blockchain::prepare_handle_incoming_blocks(std::vector<cryptonote::block_complete_entry, std::allocator<cryptonote::block_complete_entry> > const&, std::vector<cryptonote::block, std::allocator<cryptonote::block> >&)':
blockchain.cpp:(.text+0x2f518): undefined reference to `cryptonote::get_transaction_prefix_hash(cryptonote::transaction_prefix const&, crypto::hash&)'
/home/crypto/local/build/build-monero-pool/staging-area/monero/monero-build/src/cryptonote_basic/libcryptonote_basic.a(cryptonote_format_utils.cpp.o): In function `cryptonote::get_pruned_transaction_hash(cryptonote::transaction const&, crypto::hash const&)':
cryptonote_format_utils.cpp:(.text+0x38c0): undefined reference to `cryptonote::get_transaction_prefix_hash(cryptonote::transaction_prefix const&, crypto::hash&)'
/home/crypto/local/build/build-monero-pool/staging-area/monero/monero-build/src/cryptonote_basic/libcryptonote_basic.a(cryptonote_format_utils.cpp.o): In function `cryptonote::calculate_transaction_hash(cryptonote::transaction const&, crypto::hash&, unsigned long*)':
cryptonote_format_utils.cpp:(.text+0xf645): undefined reference to `cryptonote::get_transaction_prefix_hash(cryptonote::transaction_prefix const&, crypto::hash&)'
/home/crypto/local/build/build-monero-pool/staging-area/monero/monero-build/src/cryptonote_basic/libcryptonote_basic.a(cryptonote_format_utils.cpp.o): In function `cryptonote::parse_and_validate_tx_from_blob(boost::basic_string_ref<char, std::char_traits<char> > const&, cryptonote::transaction&, crypto::hash&, crypto::hash&)':
cryptonote_format_utils.cpp:(.text+0x127b1): undefined reference to `cryptonote::get_transaction_prefix_hash(cryptonote::transaction_prefix const&, crypto::hash&)'
/home/crypto/local/build/build-monero-pool/staging-area/monero/monero-build/src/device/libdevice.a(device_default.cpp.o): In function `hw::core::device_default::get_transaction_prefix_hash(cryptonote::transaction_prefix const&, crypto::hash&)':
device_default.cpp:(.text+0x2d7): undefined reference to `cryptonote::get_transaction_prefix_hash(cryptonote::transaction_prefix const&, crypto::hash&)'
collect2: error: ld returned 1 exit status
src/CMakeFiles/monero-lws-admin.dir/build.make:130: recipe for target 'src/monero-lws-admin' failed

trasherdk avatar Aug 21 '21 06:08 trasherdk

Building release-v0.1_0.17 against Monero tags/v0.17.2.0 was successful :)

trasherdk avatar Aug 22 '21 03:08 trasherdk

A library was introduced on the Monero release-v0.17 branch causing the build error in the comment above. #21 is a patch for that :)

The current issue I'm running into when running monero-lws against Monero release-v0.17 appears to be this PR causing the following runtime error when sig.type == rct::RCTTypeNull:

2021-09-02 01:08:45.157	D Schema missing required field key: encrypted
2021-09-02 01:08:45.179	E thrown at scanner.cpp:379: Schema missing required field key

I assume the correct fix to this is to use a wire::optional_field when reading these fields from the JSON object here. However, this causes the following build errors:

In file included from /monero-lws/src/./wire/json/read.h:40,
                 from /monero-lws/src/./wire/json.h:32,
                 from /monero-lws/src/rpc/daemon_zmq.cpp:33:
/monero-lws/src/./wire/read.h: In instantiation of ‘void wire_read::unpack_field(std::size_t, R&, wire::field_<T, false>&) [with R = wire::json_reader; T = long unsigned int; std::size_t = long unsigned int]’:
/monero-lws/src/./wire/read.h:395:19:   required from ‘std::size_t wire_read::tracker<T>::try_read(R&, std::size_t) [with R = wire::json_reader; T = wire::field_<long unsigned int, false>; std::size_t = long unsigned int]’
/monero-lws/src/./wire/read.h:430:24:   required from ‘void wire_read::object(R&, wire_read::tracker<T>...) [with R = wire::json_reader; T = {wire::field_<std::reference_wrapper<unsigned char>, true>, wire::field_<long unsigned int, false>}]’
/monero-lws/src/./wire/json/read.h:133:22:   required from ‘void wire::object(wire::json_reader&, T ...) [with T = {wire::field_<std::reference_wrapper<unsigned char>, true>, wire::field_<long unsigned int, false>}]’
/monero-lws/src/rpc/daemon_zmq.cpp:73:7:   required from here
/monero-lws/src/./wire/read.h:330:22: error: request for member ‘emplace’ in ‘(& dest)->wire::field_<long unsigned int, false>::get_value()’, which is of non-class type ‘wire::field_<long unsigned int, false>::value_type’ {aka ‘long unsigned int’}
  330 |     dest.get_value().emplace();
/monero-lws/src/./wire/read.h:331:24: error: invalid type argument of unary ‘*’ (have ‘wire::field_<long unsigned int, false>::value_type’ {aka ‘long unsigned int’})
  331 |     read_bytes(source, *dest.get_value());

It seems there needs to be a different way of reading these 3 types than the JSON reader is currently able to handle. Taking a break on this and going to continue working from a stable version; wanted to share where I'm at with it in case someone is working through the same thing.

More verbose error output

[ 72%] Building CXX object src/rpc/CMakeFiles/monero-lws-rpc.dir/daemon_zmq.cpp.o
In file included from /monero-lws/src/./wire/json/read.h:40,
                 from /monero-lws/src/./wire/json.h:32,
                 from /monero-lws/src/rpc/daemon_zmq.cpp:33:
/monero-lws/src/./wire/read.h: In instantiation of ‘void wire_read::unpack_field(std::size_t, R&, wire::field_<T, false>&) [with R = wire::json_reader; T = wire::as_array_<std::reference_wrapper<std::vector<rct::ecdhTuple> >, wire::identity_>; std::size_t = long unsigned int]’:
/monero-lws/src/./wire/read.h:395:19:   required from ‘std::size_t wire_read::tracker<T>::try_read(R&, std::size_t) [with R = wire::json_reader; T = wire::field_<wire::as_array_<std::reference_wrapper<std::vector<rct::ecdhTuple> >, wire::identity_>, false>; std::size_t = long unsigned int]’
/monero-lws/src/./wire/read.h:430:24:   required from ‘void wire_read::object(R&, wire_read::tracker<T>...) [with R = wire::json_reader; T = {wire::field_<std::reference_wrapper<unsigned char>, true>, wire::field_<wire::as_array_<std::reference_wrapper<std::vector<rct::ecdhTuple, std::allocator<rct::ecdhTuple> > >, wire::identity_>, false>, wire::field_<wire::as_array_<std::reference_wrapper<std::vector<rct::ctkey, std::allocator<rct::ctkey> > >, wire::identity_>, false>, wire::field_<long unsigned int, false>}]’
/monero-lws/src/./wire/json/read.h:133:22:   required from ‘void wire::object(wire::json_reader&, T ...) [with T = {wire::field_<std::reference_wrapper<unsigned char>, true>, wire::field_<wire::as_array_<std::reference_wrapper<std::vector<rct::ecdhTuple, std::allocator<rct::ecdhTuple> > >, wire::identity_>, false>, wire::field_<wire::as_array_<std::reference_wrapper<std::vector<rct::ctkey, std::allocator<rct::ctkey> > >, wire::identity_>, false>, wire::field_<long unsigned int, false>}]’
/monero-lws/src/rpc/daemon_zmq.cpp:73:7:   required from here
/monero-lws/src/./wire/read.h:330:22: error: ‘using value_type = using type = struct wire::as_array_<std::reference_wrapper<std::vector<rct::ecdhTuple> >, wire::identity_>’ {aka ‘struct wire::as_array_<std::reference_wrapper<std::vector<rct::ecdhTuple> >, wire::identity_>’} has no member named ‘emplace’
  330 |     dest.get_value().emplace();
/monero-lws/src/./wire/read.h:331:24: error: no match for ‘operator*’ (operand type is ‘wire::field_<wire::as_array_<std::reference_wrapper<std::vector<rct::ecdhTuple> >, wire::identity_>, false>::value_type’ {aka ‘wire::as_array_<std::reference_wrapper<std::vector<rct::ecdhTuple> >, wire::identity_>’})
  331 |     read_bytes(source, *dest.get_value());
In file included from /usr/include/boost/detail/container_fwd.hpp:98,
                 from /usr/include/boost/container_hash/extensions.hpp:22,
                 from /usr/include/boost/container_hash/hash.hpp:760,
                 from /usr/include/boost/functional/hash/hash.hpp:6,
                 from /monero/src/cryptonote_basic/cryptonote_basic.h:34,
                 from /monero/src/rpc/message_data_structs.h:32,
                 from /monero-lws/src/rpc/daemon_zmq.cpp:31:
/usr/include/c++/9/complex:391:5: note: candidate: ‘template<class _Tp> std::complex<_Tp> std::operator*(const std::complex<_Tp>&, const std::complex<_Tp>&)’
  391 |     operator*(const complex<_Tp>& __x, const complex<_Tp>& __y)
      |     ^~~~~~~~
/usr/include/c++/9/complex:391:5: note:   template argument deduction/substitution failed:
In file included from /monero-lws/src/./wire/json/read.h:40,
                 from /monero-lws/src/./wire/json.h:32,
                 from /monero-lws/src/rpc/daemon_zmq.cpp:33:
/monero-lws/src/./wire/read.h:331:24: note:   ‘wire::field_<wire::as_array_<std::reference_wrapper<std::vector<rct::ecdhTuple> >, wire::identity_>, false>::value_type’ {aka ‘wire::as_array_<std::reference_wrapper<std::vector<rct::ecdhTuple> >, wire::identity_>’} is not derived from ‘const std::complex<_Tp>’
  331 |     read_bytes(source, *dest.get_value());
In file included from /usr/include/boost/detail/container_fwd.hpp:98,
                 from /usr/include/boost/container_hash/extensions.hpp:22,
                 from /usr/include/boost/container_hash/hash.hpp:760,
                 from /usr/include/boost/functional/hash/hash.hpp:6,
                 from /monero/src/cryptonote_basic/cryptonote_basic.h:34,
                 from /monero/src/rpc/message_data_structs.h:32,
                 from /monero-lws/src/rpc/daemon_zmq.cpp:31:
/usr/include/c++/9/complex:400:5: note: candidate: ‘template<class _Tp> std::complex<_Tp> std::operator*(const std::complex<_Tp>&, const _Tp&)’
  400 |     operator*(const complex<_Tp>& __x, const _Tp& __y)
      |     ^~~~~~~~
/usr/include/c++/9/complex:400:5: note:   template argument deduction/substitution failed:
In file included from /monero-lws/src/./wire/json/read.h:40,
                 from /monero-lws/src/./wire/json.h:32,
                 from /monero-lws/src/rpc/daemon_zmq.cpp:33:
/monero-lws/src/./wire/read.h:331:24: note:   ‘wire::field_<wire::as_array_<std::reference_wrapper<std::vector<rct::ecdhTuple> >, wire::identity_>, false>::value_type’ {aka ‘wire::as_array_<std::reference_wrapper<std::vector<rct::ecdhTuple> >, wire::identity_>’} is not derived from ‘const std::complex<_Tp>’
  331 |     read_bytes(source, *dest.get_value());
In file included from /usr/include/boost/detail/container_fwd.hpp:98,
                 from /usr/include/boost/container_hash/extensions.hpp:22,
                 from /usr/include/boost/container_hash/hash.hpp:760,
                 from /usr/include/boost/functional/hash/hash.hpp:6,
                 from /monero/src/cryptonote_basic/cryptonote_basic.h:34,
                 from /monero/src/rpc/message_data_structs.h:32,
                 from /monero-lws/src/rpc/daemon_zmq.cpp:31:
/usr/include/c++/9/complex:409:5: note: candidate: ‘template<class _Tp> std::complex<_Tp> std::operator*(const _Tp&, const std::complex<_Tp>&)’
  409 |     operator*(const _Tp& __x, const complex<_Tp>& __y)
      |     ^~~~~~~~
/usr/include/c++/9/complex:409:5: note:   template argument deduction/substitution failed:
In file included from /monero-lws/src/./wire/json/read.h:40,
                 from /monero-lws/src/./wire/json.h:32,
                 from /monero-lws/src/rpc/daemon_zmq.cpp:33:
/monero-lws/src/./wire/read.h:331:24: note:   candidate expects 2 arguments, 1 provided
  331 |     read_bytes(source, *dest.get_value());
/monero-lws/src/./wire/read.h: In instantiation of ‘void wire_read::unpack_field(std::size_t, R&, wire::field_<T, false>&) [with R = wire::json_reader; T = wire::as_array_<std::reference_wrapper<std::vector<rct::ctkey> >, wire::identity_>; std::size_t = long unsigned int]’:
/monero-lws/src/./wire/read.h:395:19:   required from ‘std::size_t wire_read::tracker<T>::try_read(R&, std::size_t) [with R = wire::json_reader; T = wire::field_<wire::as_array_<std::reference_wrapper<std::vector<rct::ctkey> >, wire::identity_>, false>; std::size_t = long unsigned int]’
/monero-lws/src/./wire/read.h:430:24:   required from ‘void wire_read::object(R&, wire_read::tracker<T>...) [with R = wire::json_reader; T = {wire::field_<std::reference_wrapper<unsigned char>, true>, wire::field_<wire::as_array_<std::reference_wrapper<std::vector<rct::ecdhTuple, std::allocator<rct::ecdhTuple> > >, wire::identity_>, false>, wire::field_<wire::as_array_<std::reference_wrapper<std::vector<rct::ctkey, std::allocator<rct::ctkey> > >, wire::identity_>, false>, wire::field_<long unsigned int, false>}]’
/monero-lws/src/./wire/json/read.h:133:22:   required from ‘void wire::object(wire::json_reader&, T ...) [with T = {wire::field_<std::reference_wrapper<unsigned char>, true>, wire::field_<wire::as_array_<std::reference_wrapper<std::vector<rct::ecdhTuple, std::allocator<rct::ecdhTuple> > >, wire::identity_>, false>, wire::field_<wire::as_array_<std::reference_wrapper<std::vector<rct::ctkey, std::allocator<rct::ctkey> > >, wire::identity_>, false>, wire::field_<long unsigned int, false>}]’
/monero-lws/src/rpc/daemon_zmq.cpp:73:7:   required from here
/monero-lws/src/./wire/read.h:330:22: error: ‘using value_type = using type = struct wire::as_array_<std::reference_wrapper<std::vector<rct::ctkey> >, wire::identity_>’ {aka ‘struct wire::as_array_<std::reference_wrapper<std::vector<rct::ctkey> >, wire::identity_>’} has no member named ‘emplace’
  330 |     dest.get_value().emplace();
/monero-lws/src/./wire/read.h:331:24: error: no match for ‘operator*’ (operand type is ‘wire::field_<wire::as_array_<std::reference_wrapper<std::vector<rct::ctkey> >, wire::identity_>, false>::value_type’ {aka ‘wire::as_array_<std::reference_wrapper<std::vector<rct::ctkey> >, wire::identity_>’})
  331 |     read_bytes(source, *dest.get_value());
In file included from /usr/include/boost/detail/container_fwd.hpp:98,
                 from /usr/include/boost/container_hash/extensions.hpp:22,
                 from /usr/include/boost/container_hash/hash.hpp:760,
                 from /usr/include/boost/functional/hash/hash.hpp:6,
                 from /monero/src/cryptonote_basic/cryptonote_basic.h:34,
                 from /monero/src/rpc/message_data_structs.h:32,
                 from /monero-lws/src/rpc/daemon_zmq.cpp:31:
/usr/include/c++/9/complex:391:5: note: candidate: ‘template<class _Tp> std::complex<_Tp> std::operator*(const std::complex<_Tp>&, const std::complex<_Tp>&)’
  391 |     operator*(const complex<_Tp>& __x, const complex<_Tp>& __y)
      |     ^~~~~~~~
/usr/include/c++/9/complex:391:5: note:   template argument deduction/substitution failed:
In file included from /monero-lws/src/./wire/json/read.h:40,
                 from /monero-lws/src/./wire/json.h:32,
                 from /monero-lws/src/rpc/daemon_zmq.cpp:33:
/monero-lws/src/./wire/read.h:331:24: note:   ‘wire::field_<wire::as_array_<std::reference_wrapper<std::vector<rct::ctkey> >, wire::identity_>, false>::value_type’ {aka ‘wire::as_array_<std::reference_wrapper<std::vector<rct::ctkey> >, wire::identity_>’} is not derived from ‘const std::complex<_Tp>’
  331 |     read_bytes(source, *dest.get_value());
In file included from /usr/include/boost/detail/container_fwd.hpp:98,
                 from /usr/include/boost/container_hash/extensions.hpp:22,
                 from /usr/include/boost/container_hash/hash.hpp:760,
                 from /usr/include/boost/functional/hash/hash.hpp:6,
                 from /monero/src/cryptonote_basic/cryptonote_basic.h:34,
                 from /monero/src/rpc/message_data_structs.h:32,
                 from /monero-lws/src/rpc/daemon_zmq.cpp:31:
/usr/include/c++/9/complex:400:5: note: candidate: ‘template<class _Tp> std::complex<_Tp> std::operator*(const std::complex<_Tp>&, const _Tp&)’
  400 |     operator*(const complex<_Tp>& __x, const _Tp& __y)
      |     ^~~~~~~~
/usr/include/c++/9/complex:400:5: note:   template argument deduction/substitution failed:
In file included from /monero-lws/src/./wire/json/read.h:40,
                 from /monero-lws/src/./wire/json.h:32,
                 from /monero-lws/src/rpc/daemon_zmq.cpp:33:
/monero-lws/src/./wire/read.h:331:24: note:   ‘wire::field_<wire::as_array_<std::reference_wrapper<std::vector<rct::ctkey> >, wire::identity_>, false>::value_type’ {aka ‘wire::as_array_<std::reference_wrapper<std::vector<rct::ctkey> >, wire::identity_>’} is not derived from ‘const std::complex<_Tp>’
  331 |     read_bytes(source, *dest.get_value());
In file included from /usr/include/boost/detail/container_fwd.hpp:98,
                 from /usr/include/boost/container_hash/extensions.hpp:22,
                 from /usr/include/boost/container_hash/hash.hpp:760,
                 from /usr/include/boost/functional/hash/hash.hpp:6,
                 from /monero/src/cryptonote_basic/cryptonote_basic.h:34,
                 from /monero/src/rpc/message_data_structs.h:32,
                 from /monero-lws/src/rpc/daemon_zmq.cpp:31:
/usr/include/c++/9/complex:409:5: note: candidate: ‘template<class _Tp> std::complex<_Tp> std::operator*(const _Tp&, const std::complex<_Tp>&)’
  409 |     operator*(const _Tp& __x, const complex<_Tp>& __y)
      |     ^~~~~~~~
/usr/include/c++/9/complex:409:5: note:   template argument deduction/substitution failed:
In file included from /monero-lws/src/./wire/json/read.h:40,
                 from /monero-lws/src/./wire/json.h:32,
                 from /monero-lws/src/rpc/daemon_zmq.cpp:33:
/monero-lws/src/./wire/read.h:331:24: note:   candidate expects 2 arguments, 1 provided
  331 |     read_bytes(source, *dest.get_value());
/monero-lws/src/./wire/read.h: In instantiation of ‘void wire_read::unpack_field(std::size_t, R&, wire::field_<T, false>&) [with R = wire::json_reader; T = long unsigned int; std::size_t = long unsigned int]’:
/monero-lws/src/./wire/read.h:395:19:   required from ‘std::size_t wire_read::tracker<T>::try_read(R&, std::size_t) [with R = wire::json_reader; T = wire::field_<long unsigned int, false>; std::size_t = long unsigned int]’
/monero-lws/src/./wire/read.h:430:24:   required from ‘void wire_read::object(R&, wire_read::tracker<T>...) [with R = wire::json_reader; T = {wire::field_<std::reference_wrapper<unsigned char>, true>, wire::field_<wire::as_array_<std::reference_wrapper<std::vector<rct::ecdhTuple, std::allocator<rct::ecdhTuple> > >, wire::identity_>, false>, wire::field_<wire::as_array_<std::reference_wrapper<std::vector<rct::ctkey, std::allocator<rct::ctkey> > >, wire::identity_>, false>, wire::field_<long unsigned int, false>}]’
/monero-lws/src/./wire/json/read.h:133:22:   required from ‘void wire::object(wire::json_reader&, T ...) [with T = {wire::field_<std::reference_wrapper<unsigned char>, true>, wire::field_<wire::as_array_<std::reference_wrapper<std::vector<rct::ecdhTuple, std::allocator<rct::ecdhTuple> > >, wire::identity_>, false>, wire::field_<wire::as_array_<std::reference_wrapper<std::vector<rct::ctkey, std::allocator<rct::ctkey> > >, wire::identity_>, false>, wire::field_<long unsigned int, false>}]’
/monero-lws/src/rpc/daemon_zmq.cpp:73:7:   required from here
/monero-lws/src/./wire/read.h:330:22: error: request for member ‘emplace’ in ‘(& dest)->wire::field_<long unsigned int, false>::get_value()’, which is of non-class type ‘wire::field_<long unsigned int, false>::value_type’ {aka ‘long unsigned int’}
  330 |     dest.get_value().emplace();
/monero-lws/src/./wire/read.h:331:24: error: invalid type argument of unary ‘*’ (have ‘wire::field_<long unsigned int, false>::value_type’ {aka ‘long unsigned int’})
  331 |     read_bytes(source, *dest.get_value());
make[2]: *** [src/rpc/CMakeFiles/monero-lws-rpc.dir/build.make:89: src/rpc/CMakeFiles/monero-lws-rpc.dir/daemon_zmq.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:318: src/rpc/CMakeFiles/monero-lws-rpc.dir/all] Error 2
make: *** [Makefile:130: all] Error 2

j-berman avatar Sep 02 '21 07:09 j-berman

See latest commit for JSON fixes

vtnerd avatar Sep 02 '21 21:09 vtnerd

Confirmed everything seems to be working with monero-lws/release-v0.1_0.17 + monero/v17.2.3

j-berman avatar Sep 03 '21 00:09 j-berman

@j-berman when you say monero/v17.2.3 do you mean release-v0.17 or tag v0.17.2.3 ?

trasherdk avatar Sep 03 '21 10:09 trasherdk

@trasherdk both should work

selsta avatar Sep 03 '21 18:09 selsta

I think this is fixed, if not someone can ping me to re-open it.

vtnerd avatar Nov 07 '23 20:11 vtnerd