From 8f830af65ff0a9d545205e275a82a0ec37838fb2 Mon Sep 17 00:00:00 2001 From: sneurlax Date: Sat, 19 Oct 2024 19:39:23 -0500 Subject: add MONERO_Wallet_checkTxKey to wallet2_api_c.cpp --- .../src/main/cpp/wallet2_api_c.cpp | 23 ++++++++++++++++++++++ .../src/main/cpp/wallet2_api_c.h | 8 ++++++++ 2 files changed, 31 insertions(+) (limited to 'monero_libwallet2_api_c/src/main') diff --git a/monero_libwallet2_api_c/src/main/cpp/wallet2_api_c.cpp b/monero_libwallet2_api_c/src/main/cpp/wallet2_api_c.cpp index 407d700..f959fb2 100644 --- a/monero_libwallet2_api_c/src/main/cpp/wallet2_api_c.cpp +++ b/monero_libwallet2_api_c/src/main/cpp/wallet2_api_c.cpp @@ -1511,6 +1511,29 @@ const char* MONERO_Wallet_getTxKey(void* wallet_ptr, const char* txid) { return buffer; } +bool MONERO_Wallet_checkTxKey(void* wallet_ptr, const char* txid, const char* tx_key, const char* address, uint64_t* received, bool* in_pool, uint64_t* confirmations) { + if (wallet_ptr == nullptr || txid == nullptr || tx_key == nullptr || address == nullptr || received == nullptr || in_pool == nullptr || confirmations == nullptr) { + return false; + } + + Monero::Wallet* wallet = reinterpret_cast(wallet_ptr); + + try { + bool result = wallet->checkTxKey( + std::string(txid), + std::string(tx_key), + std::string(address), + *received, + *in_pool, + *confirmations + ); + return result; + } + catch (const std::exception& e) { + return false; + } +} + const char* MONERO_Wallet_signMessage(void* wallet_ptr, const char* message, const char* address) { Monero::Wallet *wallet = reinterpret_cast(wallet_ptr); std::string str = wallet->signMessage(std::string(message), std::string(address)); diff --git a/monero_libwallet2_api_c/src/main/cpp/wallet2_api_c.h b/monero_libwallet2_api_c/src/main/cpp/wallet2_api_c.h index 6e691c8..d5dd83c 100644 --- a/monero_libwallet2_api_c/src/main/cpp/wallet2_api_c.h +++ b/monero_libwallet2_api_c/src/main/cpp/wallet2_api_c.h @@ -778,6 +778,14 @@ extern ADDAPI bool MONERO_Wallet_setUserNote(void* wallet_ptr, const char* txid, // virtual std::string getUserNote(const std::string &txid) const = 0; extern ADDAPI const char* MONERO_Wallet_getUserNote(void* wallet_ptr, const char* txid); // virtual std::string getTxKey(const std::string &txid) const = 0; +extern ADDAPI bool MONERO_Wallet_checkTxKey(void* wallet_ptr, const char* txid, const char* tx_key, const char* address, uint64_t* received, bool* in_pool, uint64_t* confirmations); +// virtual std::string getTxProof(const std::string &txid, const std::string &address, const std::string &message) const = 0; +// virtual bool checkTxProof(const std::string &txid, const std::string &address, const std::string &message, const std::string &signature, bool &good, uint64_t &received, bool &in_pool, uint64_t &confirmations) = 0; +// virtual std::string getSpendProof(const std::string &txid, const std::string &message) const = 0; +// virtual bool checkSpendProof(const std::string &txid, const std::string &message, const std::string &signature, bool &good) const = 0; +// virtual std::string getReserveProof(bool all, uint32_t account_index, uint64_t amount, const std::string &message) const = 0; +// virtual bool checkReserveProof(const std::string &address, const std::string &message, const std::string &signature, bool &good, uint64_t &total, uint64_t &spent) const = 0; +// virtual std::string signMessage(const std::string &message, const std::string &address = "") = 0; extern ADDAPI const char* MONERO_Wallet_getTxKey(void* wallet_ptr, const char* txid); // virtual bool checkTxKey(const std::string &txid, std::string tx_key, const std::string &address, uint64_t &received, bool &in_pool, uint64_t &confirmations) = 0; // virtual std::string getTxProof(const std::string &txid, const std::string &address, const std::string &message) const = 0; -- cgit v1.2.3