const correctness on getSubaddresses() given indices
Monero C++ Library
This project is a lightweight wrapper of Monero Core's C++ wallet, wallet2, which conforms to the specification defined here.
The purpose of this library is to define common daemon and wallet types for a general-purpose Monero API which focuses on ease-of-use.
This library may be used to build Monero-related GUI applications, libraries in other languages (e.g. monero-java), or a conformant REST/JSON-RPC API.
Building a Dynamic / Shared Library
The source code in this project may be built as a dynamic or "shared" library for use on a target platform (e.g. Linux, Mac, Windows, etc). For example, the associated Java library depends on a dynamic library built from this project to support a wallet using JNI.
Build Steps
These build steps aspire to be automated further.
- Setup Boost
- Download and extract the boost 1.69.0 source code zip from https://www.boost.org/users/download/ to ./external/boost-sdk/.
cd ./external/boost-sdk/./bootstraph.sh./b2- Copy .a files from ./external/boost-sdk/bin.v2/libs/*/link-static/* to ./external-libs/boost according to CMakeLists.txt.
- Setup OpenSSL
- Download and extract the latest OpenSSL source code zip from https://github.com/openssl/openssl to ./external/openssl-sdk/.
- Build for your system.
Mac: installed through boost at /usr/local/opt/openssl/lib - Copy libcrypto.a and libssl.a ./external-libs/openssl.
- Setup Monero Core
- Initialize submodules:
git submodule update --init --recursive - cd ./submodules/monero-core
- Modify CMakeLists.txt:
option(BUILD_GUI_DEPS "Build GUI dependencies." ON). - Build twice to create libwallet_merged.a in addition to other .a libraries:
make release-static -j8. - Copy .a files from ./submodules/monero-core/build/release/* to ./external-libs/monero-core according to CMakeLists.txt.
- Initialize submodules:
- Setup hidapi
- Download the latest hidapi source code from https://github.com/signal11/hidapi.
- Build hidapi for your system.
Mac requires autoreconf:brew install automake - Copy libhidapi.a to ./external-libs/hidapi.
- Setup libsodium
- Build libsodium for your system.
- Copy libsodium.a to ./external-libs/libsodium.
Mac: installed through homebrew at /usr/local/Cellar/libsodium/1.0.17/lib/libsodium.a
- Build libmonero-cpp.dylib to ./build:
./bin/build-libmonero-cpp.sh.
See Also
JavaScript reference implementation
License
This project is licensed under MIT.
Donate
Please consider donating if you want to support this project. Thank you!
46FR1GKVqFNQnDiFkH7AuzbUBrGQwz2VdaXTDD4jcjRE8YkkoTYTmZ2Vohsz9gLSqkj5EM6ai9Q7sBoX4FPPYJdGKQQXPVz
