monero-lws
monero-lws copied to clipboard
Unable to find required monero library daemon_messages
-- 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".
What's the version of Monero you're trying to compile with? How do you call cmake?
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 .
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.
There is any clear documentation or whitepaper about this project ?
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.
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
Building release-v0.1_0.17
against Monero tags/v0.17.2.0
was successful :)
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
See latest commit for JSON fixes
Confirmed everything seems to be working with monero-lws/release-v0.1_0.17
+ monero/v17.2.3
@j-berman when you say monero/v17.2.3
do you mean release-v0.17
or tag v0.17.2.3
?
@trasherdk both should work
I think this is fixed, if not someone can ping me to re-open it.