mirror of https://github.com/oxen-io/oxen-core.git
42 lines
1.8 KiB
C++
42 lines
1.8 KiB
C++
#include "../common.hpp"
|
|
|
|
#include <wallet3/wallet.hpp>
|
|
#include <wallet3/default_daemon_comms.hpp>
|
|
#include <wallet3/keyring.hpp>
|
|
#include <wallet3/config/config.hpp>
|
|
#include <oxenmq/oxenmq.h>
|
|
#include <oxen/log.hpp>
|
|
|
|
static auto logcat = oxen::log::Cat("omq");
|
|
|
|
void omq_logger(oxenmq::LogLevel level, const char* file, int line, std::string message) {
|
|
constexpr std::string_view format = "[{}:{}]: {}";
|
|
switch (level) {
|
|
case oxenmq::LogLevel::fatal: oxen::log::critical(logcat, format, file, line, message); break;
|
|
case oxenmq::LogLevel::error: oxen::log::error(logcat, format, file, line, message); break;
|
|
case oxenmq::LogLevel::warn: oxen::log::warning(logcat, format, file, line, message); break;
|
|
case oxenmq::LogLevel::info: oxen::log::info(logcat, format, file, line, message); break;
|
|
case oxenmq::LogLevel::debug: oxen::log::debug(logcat, format, file, line, message); break;
|
|
case oxenmq::LogLevel::trace: oxen::log::trace(logcat, format, file, line, message); break;
|
|
}
|
|
}
|
|
|
|
namespace wallet
|
|
{
|
|
void
|
|
Wallet_Init(py::module& mod)
|
|
{
|
|
py::class_<Wallet, std::shared_ptr<Wallet>>(mod, "Wallet")
|
|
.def(py::init([](const std::string& wallet_name, std::shared_ptr<Keyring> keyring, Config config) {
|
|
auto& comms_config = config.daemon;
|
|
auto& omq_rpc_config = config.omq_rpc;
|
|
auto oxenmq = std::make_shared<oxenmq::OxenMQ>(omq_logger, oxenmq::LogLevel::info);
|
|
auto comms = std::make_shared<DefaultDaemonComms>(oxenmq, comms_config);
|
|
return Wallet::create(std::move(oxenmq), std::move(keyring), nullptr, std::move(comms), wallet_name + ".sqlite", "", std::move(config));
|
|
}))
|
|
.def("get_balance", &Wallet::get_balance)
|
|
.def("deregister", &Wallet::deregister);
|
|
}
|
|
|
|
} // namespace wallet
|