diff options
Diffstat (limited to 'libbridge/src')
| -rw-r--r-- | libbridge/src/main/cpp/helpers.cpp | 160 | ||||
| -rw-r--r-- | libbridge/src/main/cpp/helpers.hpp | 11 | ||||
| -rw-r--r-- | libbridge/src/main/cpp/wallet2_api_c.cpp | 1659 | ||||
| -rw-r--r-- | libbridge/src/main/cpp/wallet2_api_c.h | 981 |
4 files changed, 0 insertions, 2811 deletions
diff --git a/libbridge/src/main/cpp/helpers.cpp b/libbridge/src/main/cpp/helpers.cpp deleted file mode 100644 index 04befc6..0000000 --- a/libbridge/src/main/cpp/helpers.cpp +++ /dev/null @@ -1,160 +0,0 @@ -#include <inttypes.h> -#include <unistd.h> -#include <stdint.h> -#include <stdbool.h> -#include <stddef.h> -#include <vector> -#include <string> -#include "helpers.hpp" -#include <set> -#include <sstream> -#include <cstring> - -const char* vectorToString(const std::vector<std::string>& vec, const std::string separator) { - // Concatenate all strings in the vector - std::string result; - for (const auto& str : vec) { - result += str; - result += separator; - } - const char* cstr = result.c_str(); - return cstr; -} - -const char* vectorToString(const std::vector<uint32_t>& vec, const std::string separator) { - // Calculate the size needed for the result string - size_t size = 0; - for (size_t i = 0; i < vec.size(); ++i) { - // Calculate the number of digits in each element - size += snprintf(nullptr, 0, "%u", vec[i]); - // Add comma and space for all elements except the last one - if (i < vec.size() - 1) { - size += separator.size(); // comma and space - } - } - - // Allocate memory for the result string - char* result = static_cast<char*>(malloc(size + 1)); - if (result == nullptr) { - // Handle memory allocation failure - return nullptr; - } - - // Fill in the result string - char* current = result; - for (size_t i = 0; i < vec.size(); ++i) { - // Convert each element to string and copy to the result string - int written = snprintf(current, size + 1, "%u", vec[i]); - current += written; - // Add comma and space for all elements except the last one - if (i < vec.size() - 1) { - strcpy(current, separator.c_str()); - current += separator.size(); - } - } - - return result; -} - -const char* vectorToString(const std::vector<uint64_t>& vec, const std::string separator) { - // Calculate the size needed for the result string - size_t size = 0; - for (size_t i = 0; i < vec.size(); ++i) { - // Calculate the number of digits in each element - size += snprintf(nullptr, 0, "%lu", vec[i]); - // Add comma and space for all elements except the last one - if (i < vec.size() - 1) { - size += separator.size(); // comma and space - } - } - - // Allocate memory for the result string - char* result = static_cast<char*>(malloc(size + 1)); - if (result == nullptr) { - // Handle memory allocation failure - return nullptr; - } - - // Fill in the result string - char* current = result; - for (size_t i = 0; i < vec.size(); ++i) { - // Convert each element to string and copy to the result string - int written = snprintf(current, size + 1, "%lu", vec[i]); - current += written; - // Add comma and space for all elements except the last one - if (i < vec.size() - 1) { - strcpy(current, separator.c_str()); - current += separator.size(); - } - } - - return result; -} - -const char* vectorToString(const std::vector<std::set<uint32_t>>& vec, const std::string separator) { - // Check if the vector is empty - if (vec.empty()) { - return ""; - } - - // Use a stringstream to concatenate sets with commas and individual elements with spaces - std::ostringstream oss; - oss << "{"; - for (auto it = vec.begin(); it != vec.end(); ++it) { - if (it != vec.begin()) { - oss << separator; - } - - oss << "{"; - for (auto setIt = it->begin(); setIt != it->end(); ++setIt) { - if (setIt != it->begin()) { - oss << separator; - } - oss << *setIt; - } - oss << "}"; - } - oss << "}"; - std::string str = oss.str(); - const std::string::size_type size = str.size(); - char *buffer = new char[size + 1]; //we need extra char for NUL - memcpy(buffer, str.c_str(), size + 1); - return buffer; -} - -// Function to convert std::set<uint32_t> to a string -const char* vectorToString(const std::set<uint32_t>& intSet, const std::string separator) { - // Check if the set is empty - if (intSet.empty()) { - return ""; - } - - // Use a stringstream to concatenate elements with commas - std::ostringstream oss; - auto it = intSet.begin(); - oss << *it; - for (++it; it != intSet.end(); ++it) { - oss << ", " << *it; - } - - std::string str = oss.str(); - const std::string::size_type size = str.size(); - char *buffer = new char[size + 1]; //we need extra char for NUL - memcpy(buffer, str.c_str(), size + 1); - return buffer; -} - -std::set<std::string> splitString(const std::string& str, const std::string& delim) { - std::set<std::string> tokens; - if (str.empty()) return tokens; - size_t pos = 0; - std::string token; - std::string content = str; // Copy of str so we can safely erase content - while ((pos = content.find(delim)) != std::string::npos) { - token = content.substr(0, pos); - tokens.insert(token); - content.erase(0, pos + delim.length()); - } - tokens.insert(content); // Inserting the last token - return tokens; -}
\ No newline at end of file diff --git a/libbridge/src/main/cpp/helpers.hpp b/libbridge/src/main/cpp/helpers.hpp deleted file mode 100644 index 45fa624..0000000 --- a/libbridge/src/main/cpp/helpers.hpp +++ /dev/null @@ -1,11 +0,0 @@ -#include <vector> -#include <string> -#include <set> -#include <sstream> - -const char* vectorToString(const std::vector<std::string>& vec, const std::string separator); -const char* vectorToString(const std::vector<uint32_t>& vec, const std::string separator); -const char* vectorToString(const std::vector<uint64_t>& vec, const std::string separator); -const char* vectorToString(const std::vector<std::set<uint32_t>>& vec, const std::string separator); -const char* vectorToString(const std::set<uint32_t>& intSet, const std::string separator); -std::set<std::string> splitString(const std::string& str, const std::string& delim);
\ No newline at end of file diff --git a/libbridge/src/main/cpp/wallet2_api_c.cpp b/libbridge/src/main/cpp/wallet2_api_c.cpp deleted file mode 100644 index 9208765..0000000 --- a/libbridge/src/main/cpp/wallet2_api_c.cpp +++ /dev/null @@ -1,1659 +0,0 @@ -#include <inttypes.h> -#include "wallet2_api_c.h" -#include <unistd.h> -#include "helpers.hpp" -#include <cstring> -#include <thread> - -#ifdef FLAVOR_MONERO -#include "../../../../monero/src/wallet/api/wallet2_api.h" -#endif - -#ifdef FLAVOR_WOWNERO -#include "../../../../wownero/src/wallet/api/wallet2_api.h" -#endif - - -#ifdef __cplusplus -extern "C" -{ -#endif - -// PendingTransaction - -int MONERO_PendingTransaction_status(void* pendingTx_ptr) { - Monero::PendingTransaction *pendingTx = reinterpret_cast<Monero::PendingTransaction*>(pendingTx_ptr); - return pendingTx->status(); -} -const char* MONERO_PendingTransaction_errorString(void* pendingTx_ptr) { - Monero::PendingTransaction *pendingTx = reinterpret_cast<Monero::PendingTransaction*>(pendingTx_ptr); - std::string str = pendingTx->errorString(); - const std::string::size_type size = str.size(); - char *buffer = new char[size + 1]; //we need extra char for NUL - memcpy(buffer, str.c_str(), size + 1); - return buffer; -} -bool MONERO_PendingTransaction_commit(void* pendingTx_ptr, const char* filename, bool overwrite) { - Monero::PendingTransaction *pendingTx = reinterpret_cast<Monero::PendingTransaction*>(pendingTx_ptr); - return pendingTx->commit(std::string(filename), overwrite); -} -uint64_t MONERO_PendingTransaction_amount(void* pendingTx_ptr) { - Monero::PendingTransaction *pendingTx = reinterpret_cast<Monero::PendingTransaction*>(pendingTx_ptr); - return pendingTx->amount(); -} -uint64_t MONERO_PendingTransaction_dust(void* pendingTx_ptr) { - Monero::PendingTransaction *pendingTx = reinterpret_cast<Monero::PendingTransaction*>(pendingTx_ptr); - return pendingTx->dust(); -} -uint64_t MONERO_PendingTransaction_fee(void* pendingTx_ptr) { - Monero::PendingTransaction *pendingTx = reinterpret_cast<Monero::PendingTransaction*>(pendingTx_ptr); - return pendingTx->fee(); -} -const char* MONERO_PendingTransaction_txid(void* pendingTx_ptr, const char* separator) { - Monero::PendingTransaction *pendingTx = reinterpret_cast<Monero::PendingTransaction*>(pendingTx_ptr); - std::vector<std::string> txid = pendingTx->txid(); - return vectorToString(txid, std::string(separator)); -} -uint64_t MONERO_PendingTransaction_txCount(void* pendingTx_ptr) { - Monero::PendingTransaction *pendingTx = reinterpret_cast<Monero::PendingTransaction*>(pendingTx_ptr); - return pendingTx->txCount(); -} -const char* MONERO_PendingTransaction_subaddrAccount(void* pendingTx_ptr, const char* separator) { - Monero::PendingTransaction *pendingTx = reinterpret_cast<Monero::PendingTransaction*>(pendingTx_ptr); - std::vector<uint32_t> subaddrAccount = pendingTx->subaddrAccount(); - return vectorToString(subaddrAccount, std::string(separator)); -} -const char* MONERO_PendingTransaction_subaddrIndices(void* pendingTx_ptr, const char* separator) { - Monero::PendingTransaction *pendingTx = reinterpret_cast<Monero::PendingTransaction*>(pendingTx_ptr); - std::vector<std::set<uint32_t>> subaddrIndices = pendingTx->subaddrIndices(); - return vectorToString(subaddrIndices, std::string(separator)); -} -const char* MONERO_PendingTransaction_multisigSignData(void* pendingTx_ptr) { - Monero::PendingTransaction *pendingTx = reinterpret_cast<Monero::PendingTransaction*>(pendingTx_ptr); - std::string str = pendingTx->multisigSignData(); - const std::string::size_type size = str.size(); - char *buffer = new char[size + 1]; //we need extra char for NUL - memcpy(buffer, str.c_str(), size + 1); - return buffer; -} -void MONERO_PendingTransaction_signMultisigTx(void* pendingTx_ptr) { - Monero::PendingTransaction *pendingTx = reinterpret_cast<Monero::PendingTransaction*>(pendingTx_ptr); - return pendingTx->signMultisigTx(); -} -const char* MONERO_PendingTransaction_signersKeys(void* pendingTx_ptr, const char* separator) { - Monero::PendingTransaction *pendingTx = reinterpret_cast<Monero::PendingTransaction*>(pendingTx_ptr); - std::vector<std::string> txid = pendingTx->signersKeys(); - return vectorToString(txid, std::string(separator)); -} - -// UnsignedTransaction - -int MONERO_UnsignedTransaction_status(void* unsignedTx_ptr) { - Monero::UnsignedTransaction *unsignedTx = reinterpret_cast<Monero::UnsignedTransaction*>(unsignedTx_ptr); - return unsignedTx->status(); -} -const char* MONERO_UnsignedTransaction_errorString(void* unsignedTx_ptr) { - Monero::UnsignedTransaction *unsignedTx = reinterpret_cast<Monero::UnsignedTransaction*>(unsignedTx_ptr); - std::string str = unsignedTx->errorString(); - const std::string::size_type size = str.size(); - char *buffer = new char[size + 1]; //we need extra char for NUL - memcpy(buffer, str.c_str(), size + 1); - return buffer; -} -const char* MONERO_UnsignedTransaction_amount(void* unsignedTx_ptr, const char* separator) { - Monero::UnsignedTransaction *unsignedTx = reinterpret_cast<Monero::UnsignedTransaction*>(unsignedTx_ptr); - return vectorToString(unsignedTx->amount(), std::string(separator)); -} -const char* MONERO_UnsignedTransaction_fee(void* unsignedTx_ptr, const char* separator) { - Monero::UnsignedTransaction *unsignedTx = reinterpret_cast<Monero::UnsignedTransaction*>(unsignedTx_ptr); - return vectorToString(unsignedTx->fee(), std::string(separator)); -} -const char* MONERO_UnsignedTransaction_mixin(void* unsignedTx_ptr, const char* separator) { - Monero::UnsignedTransaction *unsignedTx = reinterpret_cast<Monero::UnsignedTransaction*>(unsignedTx_ptr); - return vectorToString(unsignedTx->mixin(), std::string(separator)); -} -const char* MONERO_UnsignedTransaction_confirmationMessage(void* unsignedTx_ptr) { - Monero::UnsignedTransaction *unsignedTx = reinterpret_cast<Monero::UnsignedTransaction*>(unsignedTx_ptr); - std::string str = unsignedTx->confirmationMessage(); - const std::string::size_type size = str.size(); - char *buffer = new char[size + 1]; //we need extra char for NUL - memcpy(buffer, str.c_str(), size + 1); - return buffer; -} -const char* MONERO_UnsignedTransaction_paymentId(void* unsignedTx_ptr, const char* separator) { - Monero::UnsignedTransaction *unsignedTx = reinterpret_cast<Monero::UnsignedTransaction*>(unsignedTx_ptr); - return vectorToString(unsignedTx->paymentId(), std::string(separator)); -} -const char* MONERO_UnsignedTransaction_recipientAddress(void* unsignedTx_ptr, const char* separator) { - Monero::UnsignedTransaction *unsignedTx = reinterpret_cast<Monero::UnsignedTransaction*>(unsignedTx_ptr); - return vectorToString(unsignedTx->recipientAddress(), std::string(separator)); -} -uint64_t MONERO_UnsignedTransaction_minMixinCount(void* unsignedTx_ptr) { - Monero::UnsignedTransaction *unsignedTx = reinterpret_cast<Monero::UnsignedTransaction*>(unsignedTx_ptr); - return unsignedTx->minMixinCount(); -} -uint64_t MONERO_UnsignedTransaction_txCount(void* unsignedTx_ptr) { - Monero::UnsignedTransaction *unsignedTx = reinterpret_cast<Monero::UnsignedTransaction*>(unsignedTx_ptr); - return unsignedTx->txCount(); -} -bool MONERO_UnsignedTransaction_sign(void* unsignedTx_ptr, const char* signedFileName) { - Monero::UnsignedTransaction *unsignedTx = reinterpret_cast<Monero::UnsignedTransaction*>(unsignedTx_ptr); - return unsignedTx->sign(std::string(signedFileName)); -} - -// TransactionInfo -int MONERO_TransactionInfo_direction(void* txInfo_ptr) { - Monero::TransactionInfo *txInfo = reinterpret_cast<Monero::TransactionInfo*>(txInfo_ptr); - return txInfo->direction(); -} -bool MONERO_TransactionInfo_isPending(void* txInfo_ptr) { - Monero::TransactionInfo *txInfo = reinterpret_cast<Monero::TransactionInfo*>(txInfo_ptr); - return txInfo->isPending(); -} -bool MONERO_TransactionInfo_isFailed(void* txInfo_ptr) { - Monero::TransactionInfo *txInfo = reinterpret_cast<Monero::TransactionInfo*>(txInfo_ptr); - return txInfo->isFailed(); -} -bool MONERO_TransactionInfo_isCoinbase(void* txInfo_ptr) { - Monero::TransactionInfo *txInfo = reinterpret_cast<Monero::TransactionInfo*>(txInfo_ptr); - return txInfo->isCoinbase(); -} -uint64_t MONERO_TransactionInfo_amount(void* txInfo_ptr) { - Monero::TransactionInfo *txInfo = reinterpret_cast<Monero::TransactionInfo*>(txInfo_ptr); - return txInfo->amount(); -} -uint64_t MONERO_TransactionInfo_fee(void* txInfo_ptr) { - Monero::TransactionInfo *txInfo = reinterpret_cast<Monero::TransactionInfo*>(txInfo_ptr); - return txInfo->fee(); -} -uint64_t MONERO_TransactionInfo_blockHeight(void* txInfo_ptr) { - Monero::TransactionInfo *txInfo = reinterpret_cast<Monero::TransactionInfo*>(txInfo_ptr); - return txInfo->blockHeight(); -} -const char* MONERO_TransactionInfo_description(void* txInfo_ptr) { - Monero::TransactionInfo *txInfo = reinterpret_cast<Monero::TransactionInfo*>(txInfo_ptr); - std::string str = txInfo->description(); - const std::string::size_type size = str.size(); - char *buffer = new char[size + 1]; //we need extra char for NUL - memcpy(buffer, str.c_str(), size + 1); - return buffer; -} -const char* MONERO_TransactionInfo_subaddrIndex(void* txInfo_ptr, const char* separator) { - Monero::TransactionInfo *txInfo = reinterpret_cast<Monero::TransactionInfo*>(txInfo_ptr); - std::set<uint32_t> subaddrIndex = txInfo->subaddrIndex(); - return vectorToString(subaddrIndex, std::string(separator)); -} -uint32_t MONERO_TransactionInfo_subaddrAccount(void* txInfo_ptr) { - Monero::TransactionInfo *txInfo = reinterpret_cast<Monero::TransactionInfo*>(txInfo_ptr); - return txInfo->subaddrAccount(); -} -const char* MONERO_TransactionInfo_label(void* txInfo_ptr) { - Monero::TransactionInfo *txInfo = reinterpret_cast<Monero::TransactionInfo*>(txInfo_ptr); - std::string str = txInfo->label(); - const std::string::size_type size = str.size(); - char *buffer = new char[size + 1]; //we need extra char for NUL - memcpy(buffer, str.c_str(), size + 1); - return buffer; -} -uint64_t MONERO_TransactionInfo_confirmations(void* txInfo_ptr) { - Monero::TransactionInfo *txInfo = reinterpret_cast<Monero::TransactionInfo*>(txInfo_ptr); - return txInfo->confirmations(); -} -uint64_t MONERO_TransactionInfo_unlockTime(void* txInfo_ptr) { - Monero::TransactionInfo *txInfo = reinterpret_cast<Monero::TransactionInfo*>(txInfo_ptr); - return txInfo->unlockTime(); -} -const char* MONERO_TransactionInfo_hash(void* txInfo_ptr) { - Monero::TransactionInfo *txInfo = reinterpret_cast<Monero::TransactionInfo*>(txInfo_ptr); - std::string str = txInfo->hash(); - const std::string::size_type size = str.size(); - char *buffer = new char[size + 1]; //we need extra char for NUL - memcpy(buffer, str.c_str(), size + 1); - return buffer; -} -uint64_t MONERO_TransactionInfo_timestamp(void* txInfo_ptr) { - Monero::TransactionInfo *txInfo = reinterpret_cast<Monero::TransactionInfo*>(txInfo_ptr); - return txInfo->timestamp(); -} -const char* MONERO_TransactionInfo_paymentId(void* txInfo_ptr) { - Monero::TransactionInfo *txInfo = reinterpret_cast<Monero::TransactionInfo*>(txInfo_ptr); - std::string str = txInfo->paymentId(); - const std::string::size_type size = str.size(); - char *buffer = new char[size + 1]; //we need extra char for NUL - memcpy(buffer, str.c_str(), size + 1); - return buffer; -} - -int MONERO_TransactionInfo_transfers_count(void* txInfo_ptr) { - Monero::TransactionInfo *txInfo = reinterpret_cast<Monero::TransactionInfo*>(txInfo_ptr); - return txInfo->transfers().size(); -} - -uint64_t MONERO_TransactionInfo_transfers_amount(void* txInfo_ptr, int index) { - Monero::TransactionInfo *txInfo = reinterpret_cast<Monero::TransactionInfo*>(txInfo_ptr); - return txInfo->transfers()[index].amount; -} - -const char* MONERO_TransactionInfo_transfers_address(void* txInfo_ptr, int index) { - Monero::TransactionInfo *txInfo = reinterpret_cast<Monero::TransactionInfo*>(txInfo_ptr); - std::string str = txInfo->transfers()[index].address; - const std::string::size_type size = str.size(); - char *buffer = new char[size + 1]; //we need extra char for NUL - memcpy(buffer, str.c_str(), size + 1); - return buffer; -} - - - - -// TransactionHistory -int MONERO_TransactionHistory_count(void* txHistory_ptr) { - Monero::TransactionHistory *txHistory = reinterpret_cast<Monero::TransactionHistory*>(txHistory_ptr); - return txHistory->count(); -} -void* MONERO_TransactionHistory_transaction(void* txHistory_ptr, int index) { - Monero::TransactionHistory *txHistory = reinterpret_cast<Monero::TransactionHistory*>(txHistory_ptr); - return reinterpret_cast<void*>(txHistory->transaction(index)); -} -void* MONERO_TransactionHistory_transactionById(void* txHistory_ptr, const char* id) { - Monero::TransactionHistory *txHistory = reinterpret_cast<Monero::TransactionHistory*>(txHistory_ptr); - return reinterpret_cast<void*>(txHistory->transaction(std::string(id))); -} - -void MONERO_TransactionHistory_refresh(void* txHistory_ptr) { - Monero::TransactionHistory *txHistory = reinterpret_cast<Monero::TransactionHistory*>(txHistory_ptr); - return txHistory->refresh(); -} -void MONERO_TransactionHistory_setTxNote(void* txHistory_ptr, const char* txid, const char* note) { - Monero::TransactionHistory *txHistory = reinterpret_cast<Monero::TransactionHistory*>(txHistory_ptr); - return txHistory->setTxNote(std::string(txid), std::string(note)); -} - -// AddressBokRow - -// std::string extra; -const char* MONERO_AddressBookRow_extra(void* addressBookRow_ptr) { - Monero::AddressBookRow *addressBookRow = reinterpret_cast<Monero::AddressBookRow*>(addressBookRow_ptr); - std::string str = addressBookRow->extra; - const std::string::size_type size = str.size(); - char *buffer = new char[size + 1]; //we need extra char for NUL - memcpy(buffer, str.c_str(), size + 1); - return buffer; -} -// std::string getAddress() const {return m_address;} -const char* MONERO_AddressBookRow_getAddress(void* addressBookRow_ptr) { - Monero::AddressBookRow *addressBookRow = reinterpret_cast<Monero::AddressBookRow*>(addressBookRow_ptr); - std::string str = addressBookRow->getAddress(); - const std::string::size_type size = str.size(); - char *buffer = new char[size + 1]; //we need extra char for NUL - memcpy(buffer, str.c_str(), size + 1); - return buffer; -} -// std::string getDescription() const {return m_description;} -const char* MONERO_AddressBookRow_getDescription(void* addressBookRow_ptr) { - Monero::AddressBookRow *addressBookRow = reinterpret_cast<Monero::AddressBookRow*>(addressBookRow_ptr); - std::string str = addressBookRow->getDescription(); - const std::string::size_type size = str.size(); - char *buffer = new char[size + 1]; //we need extra char for NUL - memcpy(buffer, str.c_str(), size + 1); - return buffer; -} -// std::string getPaymentId() const {return m_paymentId;} -const char* MONERO_AddressBookRow_getPaymentId(void* addressBookRow_ptr) { - Monero::AddressBookRow *addressBookRow = reinterpret_cast<Monero::AddressBookRow*>(addressBookRow_ptr); - std::string str = addressBookRow->getPaymentId(); - const std::string::size_type size = str.size(); - char *buffer = new char[size + 1]; //we need extra char for NUL - memcpy(buffer, str.c_str(), size + 1); - return buffer; -} -// std::size_t getRowId() const {return m_rowId;} -size_t MONERO_AddressBookRow_getRowId(void* addressBookRow_ptr) { - Monero::AddressBookRow *addressBookRow = reinterpret_cast<Monero::AddressBookRow*>(addressBookRow_ptr); - return addressBookRow->getRowId(); -} - -// AddressBook -// virtual std::vector<AddressBookRow*> getAll() const = 0; -int MONERO_AddressBook_getAll_size(void* addressBook_ptr) { - Monero::AddressBook *addressBook = reinterpret_cast<Monero::AddressBook*>(addressBook_ptr); - return addressBook->getAll().size(); -} -void* MONERO_AddressBook_getAll_byIndex(void* addressBook_ptr, int index) { - Monero::AddressBook *addressBook = reinterpret_cast<Monero::AddressBook*>(addressBook_ptr); - return addressBook->getAll()[index]; -} -// virtual bool addRow(const std::string &dst_addr , const std::string &payment_id, const std::string &description) = 0; -bool MONERO_AddressBook_addRow(void* addressBook_ptr, const char* dst_addr , const char* payment_id, const char* description) { - Monero::AddressBook *addressBook = reinterpret_cast<Monero::AddressBook*>(addressBook_ptr); - return addressBook->addRow(std::string(dst_addr), std::string(payment_id), std::string(description)); -} -// virtual bool deleteRow(std::size_t rowId) = 0; -bool MONERO_AddressBook_deleteRow(void* addressBook_ptr, size_t rowId) { - Monero::AddressBook *addressBook = reinterpret_cast<Monero::AddressBook*>(addressBook_ptr); - return addressBook->deleteRow(rowId); -} -// virtual bool setDescription(std::size_t index, const std::string &description) = 0; -bool MONERO_AddressBook_setDescription(void* addressBook_ptr, size_t rowId, const char* description) { - Monero::AddressBook *addressBook = reinterpret_cast<Monero::AddressBook*>(addressBook_ptr); - return addressBook->setDescription(rowId, std::string(description)); -} -// virtual void refresh() = 0; -void MONERO_AddressBook_refresh(void* addressBook_ptr) { - Monero::AddressBook *addressBook = reinterpret_cast<Monero::AddressBook*>(addressBook_ptr); - return addressBook->refresh(); -} -// virtual std::string errorString() const = 0; -const char* MONERO_AddressBook_errorString(void* addressBook_ptr) { - Monero::AddressBook *addressBook = reinterpret_cast<Monero::AddressBook*>(addressBook_ptr); - std::string str = addressBook->errorString(); - const std::string::size_type size = str.size(); - char *buffer = new char[size + 1]; //we need extra char for NUL - memcpy(buffer, str.c_str(), size + 1); - return buffer; -} -// virtual int errorCode() const = 0; -int MONERO_AddressBook_errorCode(void* addressBook_ptr) { - Monero::AddressBook *addressBook = reinterpret_cast<Monero::AddressBook*>(addressBook_ptr); - return addressBook->errorCode(); -} -// virtual int lookupPaymentID(const std::string &payment_id) const = 0; -int MONERO_AddressBook_lookupPaymentID(void* addressBook_ptr, const char* payment_id) { - Monero::AddressBook *addressBook = reinterpret_cast<Monero::AddressBook*>(addressBook_ptr); - return addressBook->lookupPaymentID(std::string(payment_id)); -} - -// CoinsInfo -uint64_t MONERO_CoinsInfo_blockHeight(void* coinsInfo_ptr) { - Monero::CoinsInfo *coinsInfo = reinterpret_cast<Monero::CoinsInfo*>(coinsInfo_ptr); - return coinsInfo->blockHeight(); -} -// virtual std::string hash() const = 0; -const char* MONERO_CoinsInfo_hash(void* coinsInfo_ptr) { - Monero::CoinsInfo *coinsInfo = reinterpret_cast<Monero::CoinsInfo*>(coinsInfo_ptr); - std::string str = coinsInfo->hash(); - const std::string::size_type size = str.size(); - char *buffer = new char[size + 1]; //we need extra char for NUL - memcpy(buffer, str.c_str(), size + 1); - return buffer; -} -// virtual size_t internalOutputIndex() const = 0; -size_t MONERO_CoinsInfo_internalOutputIndex(void* coinsInfo_ptr) { - Monero::CoinsInfo *coinsInfo = reinterpret_cast<Monero::CoinsInfo*>(coinsInfo_ptr); - return coinsInfo->internalOutputIndex(); -} -// virtual uint64_t globalOutputIndex() const = 0; -uint64_t MONERO_CoinsInfo_globalOutputIndex(void* coinsInfo_ptr) { - Monero::CoinsInfo *coinsInfo = reinterpret_cast<Monero::CoinsInfo*>(coinsInfo_ptr); - return coinsInfo->globalOutputIndex(); -} -// virtual bool spent() const = 0; -bool MONERO_CoinsInfo_spent(void* coinsInfo_ptr) { - Monero::CoinsInfo *coinsInfo = reinterpret_cast<Monero::CoinsInfo*>(coinsInfo_ptr); - return coinsInfo->spent(); -} -// virtual bool frozen() const = 0; -bool MONERO_CoinsInfo_frozen(void* coinsInfo_ptr) { - Monero::CoinsInfo *coinsInfo = reinterpret_cast<Monero::CoinsInfo*>(coinsInfo_ptr); - return coinsInfo->frozen(); -} -// virtual uint64_t spentHeight() const = 0; -uint64_t MONERO_CoinsInfo_spentHeight(void* coinsInfo_ptr) { - Monero::CoinsInfo *coinsInfo = reinterpret_cast<Monero::CoinsInfo*>(coinsInfo_ptr); - return coinsInfo->spentHeight(); -} -// virtual uint64_t amount() const = 0; -uint64_t MONERO_CoinsInfo_amount(void* coinsInfo_ptr) { - Monero::CoinsInfo *coinsInfo = reinterpret_cast<Monero::CoinsInfo*>(coinsInfo_ptr); - return coinsInfo->amount(); -} -// virtual bool rct() const = 0; -bool MONERO_CoinsInfo_rct(void* coinsInfo_ptr) { - Monero::CoinsInfo *coinsInfo = reinterpret_cast<Monero::CoinsInfo*>(coinsInfo_ptr); - return coinsInfo->rct(); -} -// virtual bool keyImageKnown() const = 0; -bool MONERO_CoinsInfo_keyImageKnown(void* coinsInfo_ptr) { - Monero::CoinsInfo *coinsInfo = reinterpret_cast<Monero::CoinsInfo*>(coinsInfo_ptr); - return coinsInfo->keyImageKnown(); -} -// virtual size_t pkIndex() const = 0; -size_t MONERO_CoinsInfo_pkIndex(void* coinsInfo_ptr) { - Monero::CoinsInfo *coinsInfo = reinterpret_cast<Monero::CoinsInfo*>(coinsInfo_ptr); - return coinsInfo->pkIndex(); -} -// virtual uint32_t subaddrIndex() const = 0; -uint32_t MONERO_CoinsInfo_subaddrIndex(void* coinsInfo_ptr) { - Monero::CoinsInfo *coinsInfo = reinterpret_cast<Monero::CoinsInfo*>(coinsInfo_ptr); - return coinsInfo->subaddrIndex(); -} -// virtual uint32_t subaddrAccount() const = 0; -uint32_t MONERO_CoinsInfo_subaddrAccount(void* coinsInfo_ptr) { - Monero::CoinsInfo *coinsInfo = reinterpret_cast<Monero::CoinsInfo*>(coinsInfo_ptr); - return coinsInfo->subaddrAccount(); -} -// virtual std::string address() const = 0; -const char* MONERO_CoinsInfo_address(void* coinsInfo_ptr) { - Monero::CoinsInfo *coinsInfo = reinterpret_cast<Monero::CoinsInfo*>(coinsInfo_ptr); - std::string str = coinsInfo->address(); - const std::string::size_type size = str.size(); - char *buffer = new char[size + 1]; //we need extra char for NUL - memcpy(buffer, str.c_str(), size + 1); - return buffer; -} -// virtual std::string addressLabel() const = 0; -const char* MONERO_CoinsInfo_addressLabel(void* coinsInfo_ptr) { - Monero::CoinsInfo *coinsInfo = reinterpret_cast<Monero::CoinsInfo*>(coinsInfo_ptr); - std::string str = coinsInfo->addressLabel(); - const std::string::size_type size = str.size(); - char *buffer = new char[size + 1]; //we need extra char for NUL - memcpy(buffer, str.c_str(), size + 1); - return buffer; -} -// virtual std::string keyImage() const = 0; -const char* MONERO_CoinsInfo_keyImage(void* coinsInfo_ptr) { - Monero::CoinsInfo *coinsInfo = reinterpret_cast<Monero::CoinsInfo*>(coinsInfo_ptr); - std::string str = coinsInfo->keyImage(); - const std::string::size_type size = str.size(); - char *buffer = new char[size + 1]; //we need extra char for NUL - memcpy(buffer, str.c_str(), size + 1); - return buffer; -} -// virtual uint64_t unlockTime() const = 0; -uint64_t MONERO_CoinsInfo_unlockTime(void* coinsInfo_ptr) { - Monero::CoinsInfo *coinsInfo = reinterpret_cast<Monero::CoinsInfo*>(coinsInfo_ptr); - return coinsInfo->unlockTime(); -} -// virtual bool unlocked() const = 0; -bool MONERO_CoinsInfo_unlocked(void* coinsInfo_ptr) { - Monero::CoinsInfo *coinsInfo = reinterpret_cast<Monero::CoinsInfo*>(coinsInfo_ptr); - return coinsInfo->internalOutputIndex(); -} -// virtual std::string pubKey() const = 0; -const char* MONERO_CoinsInfo_pubKey(void* coinsInfo_ptr) { - Monero::CoinsInfo *coinsInfo = reinterpret_cast<Monero::CoinsInfo*>(coinsInfo_ptr); - std::string str = coinsInfo->pubKey(); - const std::string::size_type size = str.size(); - char *buffer = new char[size + 1]; //we need extra char for NUL - memcpy(buffer, str.c_str(), size + 1); - return buffer; -} -// virtual bool coinbase() const = 0; -bool MONERO_CoinsInfo_coinbase(void* coinsInfo_ptr) { - Monero::CoinsInfo *coinsInfo = reinterpret_cast<Monero::CoinsInfo*>(coinsInfo_ptr); - return coinsInfo->internalOutputIndex(); -} -// virtual std::string description() const = 0; -const char* MONERO_CoinsInfo_description(void* coinsInfo_ptr) { - Monero::CoinsInfo *coinsInfo = reinterpret_cast<Monero::CoinsInfo*>(coinsInfo_ptr); - std::string str = coinsInfo->description(); - const std::string::size_type size = str.size(); - char *buffer = new char[size + 1]; //we need extra char for NUL - memcpy(buffer, str.c_str(), size + 1); - return buffer; -} - - -// coins - -// virtual ~Coins() = 0; -// virtual int count() const = 0; -int MONERO_Coins_count(void* coins_ptr) { - Monero::Coins *coins = reinterpret_cast<Monero::Coins*>(coins_ptr); - return coins->count(); -} -// virtual CoinsInfo * coin(int index) const = 0; -void* MONERO_Coins_coin(void* coins_ptr, int index) { - Monero::Coins *coins = reinterpret_cast<Monero::Coins*>(coins_ptr); - return coins->coin(index); -} - -int MONERO_Coins_getAll_size(void* coins_ptr) { - Monero::Coins *coins = reinterpret_cast<Monero::Coins*>(coins_ptr); - return coins->getAll().size(); -} -void* MONERO_Coins_getAll_byIndex(void* coins_ptr, int index) { - Monero::Coins *coins = reinterpret_cast<Monero::Coins*>(coins_ptr); - return coins->getAll()[index]; -} - -// virtual std::vector<CoinsInfo*> getAll() const = 0; -// virtual void refresh() = 0; -void MONERO_Coins_refresh(void* coins_ptr) { - Monero::Coins *coins = reinterpret_cast<Monero::Coins*>(coins_ptr); - return coins->refresh(); -} -// virtual void setFrozen(std::string public_key) = 0; -void MONERO_Coins_setFrozenByPublicKey(void* coins_ptr, const char* public_key) { - Monero::Coins *coins = reinterpret_cast<Monero::Coins*>(coins_ptr); - return coins->setFrozen(std::string(public_key)); -} -// virtual void setFrozen(int index) = 0; -void MONERO_Coins_setFrozen(void* coins_ptr, int index) { - Monero::Coins *coins = reinterpret_cast<Monero::Coins*>(coins_ptr); - return coins->setFrozen(index); -} -// virtual void thaw(int index) = 0; -void MONERO_Coins_thaw(void* coins_ptr, int index) { - Monero::Coins *coins = reinterpret_cast<Monero::Coins*>(coins_ptr); - return coins->thaw(index); -} -// virtual void thaw(std::string public_key) = 0; -void MONERO_Coins_thawByPublicKey(void* coins_ptr, const char* public_key) { - Monero::Coins *coins = reinterpret_cast<Monero::Coins*>(coins_ptr); - return coins->thaw(std::string(public_key)); -} -// virtual bool isTransferUnlocked(uint64_t unlockTime, uint64_t blockHeight) = 0; -bool MONERO_Coins_isTransferUnlocked(void* coins_ptr, uint64_t unlockTime, uint64_t blockHeight) { - Monero::Coins *coins = reinterpret_cast<Monero::Coins*>(coins_ptr); - return coins->isTransferUnlocked(unlockTime, blockHeight); -} -// virtual void setDescription(const std::string &public_key, const std::string &description) = 0; -void MONERO_Coins_setDescription(void* coins_ptr, const char* public_key, const char* description) { - Monero::Coins *coins = reinterpret_cast<Monero::Coins*>(coins_ptr); - coins->setDescription(std::string(public_key), std::string(description)); -} - -// SubaddressRow - -// std::string extra; -const char* MONERO_SubaddressRow_extra(void* subaddressRow_ptr) { - Monero::SubaddressRow *subaddressRow = reinterpret_cast<Monero::SubaddressRow*>(subaddressRow_ptr); - std::string str = subaddressRow->extra; - const std::string::size_type size = str.size(); - char *buffer = new char[size + 1]; //we need extra char for NUL - memcpy(buffer, str.c_str(), size + 1); - return buffer; -} -// std::string getAddress() const {return m_address;} -const char* MONERO_SubaddressRow_getAddress(void* subaddressRow_ptr) { - Monero::SubaddressRow *subaddressRow = reinterpret_cast<Monero::SubaddressRow*>(subaddressRow_ptr); - std::string str = subaddressRow->getAddress(); - const std::string::size_type size = str.size(); - char *buffer = new char[size + 1]; //we need extra char for NUL - memcpy(buffer, str.c_str(), size + 1); - return buffer; -} -// std::string getLabel() const {return m_label;} -const char* MONERO_SubaddressRow_getLabel(void* subaddressRow_ptr) { - Monero::SubaddressRow *subaddressRow = reinterpret_cast<Monero::SubaddressRow*>(subaddressRow_ptr); - std::string str = subaddressRow->getLabel(); - const std::string::size_type size = str.size(); - char *buffer = new char[size + 1]; //we need extra char for NUL - memcpy(buffer, str.c_str(), size + 1); - return buffer; -} -// std::size_t getRowId() const {return m_rowId;} -size_t MONERO_SubaddressRow_getRowId(void* subaddressRow_ptr) { - Monero::SubaddressRow *subaddressRow = reinterpret_cast<Monero::SubaddressRow*>(subaddressRow_ptr); - return subaddressRow->getRowId(); -} - -// Subaddress - -int MONERO_Subaddress_getAll_size(void* subaddress_ptr) { - Monero::Subaddress *subaddress = reinterpret_cast<Monero::Subaddress*>(subaddress_ptr); - return subaddress->getAll().size(); -} -void* MONERO_Subaddress_getAll_byIndex(void* subaddress_ptr, int index) { - Monero::Subaddress *subaddress = reinterpret_cast<Monero::Subaddress*>(subaddress_ptr); - return subaddress->getAll()[index]; -} -// virtual void addRow(uint32_t accountIndex, const std::string &label) = 0; -void MONERO_Subaddress_addRow(void* subaddress_ptr, uint32_t accountIndex, const char* label) { - Monero::Subaddress *subaddress = reinterpret_cast<Monero::Subaddress*>(subaddress_ptr); - return subaddress->addRow(accountIndex, std::string(label)); -} -// virtual void setLabel(uint32_t accountIndex, uint32_t addressIndex, const std::string &label) = 0; -void MONERO_Subaddress_setLabel(void* subaddress_ptr, uint32_t accountIndex, uint32_t addressIndex, const char* label) { - Monero::Subaddress *subaddress = reinterpret_cast<Monero::Subaddress*>(subaddress_ptr); - return subaddress->setLabel(accountIndex, addressIndex, std::string(label)); -} -// virtual void refresh(uint32_t accountIndex) = 0; -void MONERO_Subaddress_refresh(void* subaddress_ptr, uint32_t accountIndex) { - Monero::Subaddress *subaddress = reinterpret_cast<Monero::Subaddress*>(subaddress_ptr); - return subaddress->refresh(accountIndex); -} - -// SubaddressAccountRow - -// std::string extra; -const char* MONERO_SubaddressAccountRow_extra(void* subaddressAccountRow_ptr) { - Monero::SubaddressAccountRow *subaddressAccountRow = reinterpret_cast<Monero::SubaddressAccountRow*>(subaddressAccountRow_ptr); - std::string str = subaddressAccountRow->extra; - const std::string::size_type size = str.size(); - char *buffer = new char[size + 1]; //we need extra char for NUL - memcpy(buffer, str.c_str(), size + 1); - return buffer; -} -// std::string getAddress() const {return m_address;} -const char* MONERO_SubaddressAccountRow_getAddress(void* subaddressAccountRow_ptr) { - Monero::SubaddressAccountRow *subaddressAccountRow = reinterpret_cast<Monero::SubaddressAccountRow*>(subaddressAccountRow_ptr); - std::string str = subaddressAccountRow->getAddress(); - const std::string::size_type size = str.size(); - char *buffer = new char[size + 1]; //we need extra char for NUL - memcpy(buffer, str.c_str(), size + 1); - return buffer; -} -// std::string getLabel() const {return m_label;} -const char* MONERO_SubaddressAccountRow_getLabel(void* subaddressAccountRow_ptr) { - Monero::SubaddressAccountRow *subaddressAccountRow = reinterpret_cast<Monero::SubaddressAccountRow*>(subaddressAccountRow_ptr); - std::string str = subaddressAccountRow->getLabel(); - const std::string::size_type size = str.size(); - char *buffer = new char[size + 1]; //we need extra char for NUL - memcpy(buffer, str.c_str(), size + 1); - return buffer; -} -// std::string getBalance() const {return m_balance;} -const char* MONERO_SubaddressAccountRow_getBalance(void* subaddressAccountRow_ptr) { - Monero::SubaddressAccountRow *subaddressAccountRow = reinterpret_cast<Monero::SubaddressAccountRow*>(subaddressAccountRow_ptr); - std::string str = subaddressAccountRow->getBalance(); - const std::string::size_type size = str.size(); - char *buffer = new char[size + 1]; //we need extra char for NUL - memcpy(buffer, str.c_str(), size + 1); - return buffer; -} -// std::string getUnlockedBalance() const {return m_unlockedBalance;} -const char* MONERO_SubaddressAccountRow_getUnlockedBalance(void* subaddressAccountRow_ptr) { - Monero::SubaddressAccountRow *subaddressAccountRow = reinterpret_cast<Monero::SubaddressAccountRow*>(subaddressAccountRow_ptr); - std::string str = subaddressAccountRow->getUnlockedBalance(); - const std::string::size_type size = str.size(); - char *buffer = new char[size + 1]; //we need extra char for NUL - memcpy(buffer, str.c_str(), size + 1); - return buffer; -} -// std::size_t getRowId() const {return m_rowId;} -size_t MONERO_SubaddressAccountRow_getRowId(void* subaddressAccountRow_ptr) { - Monero::SubaddressAccountRow *subaddressAccountRow = reinterpret_cast<Monero::SubaddressAccountRow*>(subaddressAccountRow_ptr); - return subaddressAccountRow->getRowId(); -} - -// struct SubaddressAccount -// { -// virtual ~SubaddressAccount() = 0; -// virtual std::vector<SubaddressAccountRow*> getAll() const = 0; -int MONERO_SubaddressAccount_getAll_size(void* subaddressAccount_ptr) { - Monero::SubaddressAccount *subaddress = reinterpret_cast<Monero::SubaddressAccount*>(subaddressAccount_ptr); - return subaddress->getAll().size(); -} -void* MONERO_SubaddressAccount_getAll_byIndex(void* subaddressAccount_ptr, int index) { - Monero::SubaddressAccount *subaddress = reinterpret_cast<Monero::SubaddressAccount*>(subaddressAccount_ptr); - return subaddress->getAll()[index]; -} -// virtual void addRow(const std::string &label) = 0; -void MONERO_SubaddressAccount_addRow(void* subaddressAccount_ptr, const char* label) { - Monero::SubaddressAccount *subaddress = reinterpret_cast<Monero::SubaddressAccount*>(subaddressAccount_ptr); - return subaddress->addRow(std::string(label)); -} -// virtual void setLabel(uint32_t accountIndex, const std::string &label) = 0; -void MONERO_SubaddressAccount_setLabel(void* subaddressAccount_ptr, uint32_t accountIndex, const char* label) { - Monero::SubaddressAccount *subaddress = reinterpret_cast<Monero::SubaddressAccount*>(subaddressAccount_ptr); - return subaddress->setLabel(accountIndex, std::string(label)); -} -// virtual void refresh() = 0; -void MONERO_SubaddressAccount_refresh(void* subaddressAccount_ptr) { - Monero::SubaddressAccount *subaddress = reinterpret_cast<Monero::SubaddressAccount*>(subaddressAccount_ptr); - return subaddress->refresh(); -} - -// MultisigState - -// bool isMultisig; -bool MONERO_MultisigState_isMultisig(void* multisigState_ptr) { - Monero::MultisigState *multisigState = reinterpret_cast<Monero::MultisigState*>(multisigState_ptr); - return multisigState->isMultisig; -} -// bool isReady; -bool MONERO_MultisigState_isReady(void* multisigState_ptr) { - Monero::MultisigState *multisigState = reinterpret_cast<Monero::MultisigState*>(multisigState_ptr); - return multisigState->isReady; -} -// uint32_t threshold; -uint32_t MONERO_MultisigState_threshold(void* multisigState_ptr) { - Monero::MultisigState *multisigState = reinterpret_cast<Monero::MultisigState*>(multisigState_ptr); - return multisigState->threshold; -} -// uint32_t total; -uint32_t MONERO_MultisigState_total(void* multisigState_ptr) { - Monero::MultisigState *multisigState = reinterpret_cast<Monero::MultisigState*>(multisigState_ptr); - return multisigState->total; -} - -// DeviceProgress - - -// virtual double progress() const { return m_progress; } -bool MONERO_DeviceProgress_progress(void* deviceProgress_ptr) { - Monero::DeviceProgress *deviceProgress = reinterpret_cast<Monero::DeviceProgress*>(deviceProgress_ptr); - return deviceProgress->progress(); -} -// virtual bool indeterminate() const { return m_indeterminate; } -bool MONERO_DeviceProgress_indeterminate(void* deviceProgress_ptr) { - Monero::DeviceProgress *deviceProgress = reinterpret_cast<Monero::DeviceProgress*>(deviceProgress_ptr); - return deviceProgress->indeterminate(); -} - -// Wallet - -const char* MONERO_Wallet_seed(void* wallet_ptr, const char* seed_offset) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - std::string str = wallet->seed(std::string(seed_offset)); - const std::string::size_type size = str.size(); - char *buffer = new char[size + 1]; //we need extra char for NUL - memcpy(buffer, str.c_str(), size + 1); - return buffer; -} - -const char* MONERO_Wallet_getSeedLanguage(void* wallet_ptr) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - std::string str = wallet->getSeedLanguage(); - const std::string::size_type size = str.size(); - char *buffer = new char[size + 1]; //we need extra char for NUL - memcpy(buffer, str.c_str(), size + 1); - return buffer; -} - -void MONERO_Wallet_setSeedLanguage(void* wallet_ptr, const char* arg) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->setSeedLanguage(std::string(arg)); -} - -int MONERO_Wallet_status(void* wallet_ptr) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->status(); -} - -const char* MONERO_Wallet_errorString(void* wallet_ptr) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - std::string str = wallet->errorString(); - const std::string::size_type size = str.size(); - char *buffer = new char[size + 1]; //we need extra char for NUL - memcpy(buffer, str.c_str(), size + 1); - return buffer; -} - - -bool MONERO_Wallet_setPassword(void* wallet_ptr, const char* password) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->setPassword(std::string(password)); -} - -const char* MONERO_Wallet_getPassword(void* wallet_ptr) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - std::string str = wallet->getPassword(); - const std::string::size_type size = str.size(); - char *buffer = new char[size + 1]; //we need extra char for NUL - memcpy(buffer, str.c_str(), size + 1); - return buffer; -} - -bool MONERO_Wallet_setDevicePin(void* wallet_ptr, const char* pin) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->setDevicePin(std::string(pin)); -} - -bool MONERO_Wallet_setDevicePassphrase(void* wallet_ptr, const char* passphrase) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->setDevicePassphrase(std::string(passphrase)); -} - -const char* MONERO_Wallet_address(void* wallet_ptr, uint64_t accountIndex, uint64_t addressIndex) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - std::string str = wallet->address(accountIndex, addressIndex); - const std::string::size_type size = str.size(); - char *buffer = new char[size + 1]; //we need extra char for NUL - memcpy(buffer, str.c_str(), size + 1); - return buffer; -} - -const char* MONERO_Wallet_path(void* wallet_ptr) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - std::string str = wallet->path(); - const std::string::size_type size = str.size(); - char *buffer = new char[size + 1]; //we need extra char for NUL - memcpy(buffer, str.c_str(), size + 1); - return buffer; -} -int MONERO_Wallet_nettype(void* wallet_ptr) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->nettype(); -} -uint8_t MONERO_Wallet_useForkRules(void* wallet_ptr, uint8_t version, int64_t early_blocks) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->useForkRules(version, early_blocks); -} -const char* MONERO_Wallet_integratedAddress(void* wallet_ptr, const char* payment_id) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - std::string str = wallet->integratedAddress(std::string(payment_id)); - const std::string::size_type size = str.size(); - char *buffer = new char[size + 1]; //we need extra char for NUL - memcpy(buffer, str.c_str(), size + 1); - return buffer; -} - -const char* MONERO_Wallet_secretViewKey(void* wallet_ptr) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - std::string str = wallet->secretViewKey(); - const std::string::size_type size = str.size(); - char *buffer = new char[size + 1]; //we need extra char for NUL - memcpy(buffer, str.c_str(), size + 1); - return buffer; -} - -const char* MONERO_Wallet_publicViewKey(void* wallet_ptr) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - std::string str = wallet->publicViewKey(); - const std::string::size_type size = str.size(); - char *buffer = new char[size + 1]; //we need extra char for NUL - memcpy(buffer, str.c_str(), size + 1); - return buffer; -} - -const char* MONERO_Wallet_secretSpendKey(void* wallet_ptr) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - std::string str = wallet->secretSpendKey(); - const std::string::size_type size = str.size(); - char *buffer = new char[size + 1]; //we need extra char for NUL - memcpy(buffer, str.c_str(), size + 1); - return buffer; -} - -const char* MONERO_Wallet_publicSpendKey(void* wallet_ptr) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - std::string str = wallet->publicSpendKey(); - const std::string::size_type size = str.size(); - char *buffer = new char[size + 1]; //we need extra char for NUL - memcpy(buffer, str.c_str(), size + 1); - return buffer; -} -const char* MONERO_Wallet_publicMultisigSignerKey(void* wallet_ptr) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - std::string str = wallet->publicMultisigSignerKey(); - const std::string::size_type size = str.size(); - char *buffer = new char[size + 1]; //we need extra char for NUL - memcpy(buffer, str.c_str(), size + 1); - return buffer; -} - -void MONERO_Wallet_stop(void* wallet_ptr) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - wallet->stop(); -} - -bool MONERO_Wallet_store(void* wallet_ptr, const char* path) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->store(std::string(path)); -} -const char* MONERO_Wallet_filename(void* wallet_ptr) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - std::string str = wallet->filename(); - const std::string::size_type size = str.size(); - char *buffer = new char[size + 1]; //we need extra char for NUL - memcpy(buffer, str.c_str(), size + 1); - return buffer; -} -const char* MONERO_Wallet_keysFilename(void* wallet_ptr) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - std::string str = wallet->keysFilename(); - const std::string::size_type size = str.size(); - char *buffer = new char[size + 1]; //we need extra char for NUL - memcpy(buffer, str.c_str(), size + 1); - return buffer; -} - -// virtual bool init(const std::string &daemon_address, uint64_t upper_transaction_size_limit = 0, const std::string &daemon_username = "", const std::string &daemon_password = "", bool use_ssl = false, bool lightWallet = false, const std::string &proxy_address = "") = 0; -bool MONERO_Wallet_init(void* wallet_ptr, const char* daemon_address, uint64_t upper_transaction_size_limit, const char* daemon_username, const char* daemon_password, bool use_ssl, bool lightWallet, const char* proxy_address) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->init(std::string(daemon_address), upper_transaction_size_limit, std::string(daemon_username), std::string(daemon_password), use_ssl, lightWallet, std::string(proxy_address)); -} -bool MONERO_Wallet_createWatchOnly(void* wallet_ptr, const char* path, const char* password, const char* language) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->createWatchOnly(std::string(path), std::string(password), std::string(language)); -} - -void MONERO_Wallet_setRefreshFromBlockHeight(void* wallet_ptr, uint64_t refresh_from_block_height) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->setRefreshFromBlockHeight(refresh_from_block_height); -} - -uint64_t MONERO_Wallet_getRefreshFromBlockHeight(void* wallet_ptr) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->getRefreshFromBlockHeight(); -} - -void MONERO_Wallet_setRecoveringFromSeed(void* wallet_ptr, bool recoveringFromSeed) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->setRecoveringFromSeed(recoveringFromSeed); -} -void MONERO_Wallet_setRecoveringFromDevice(void* wallet_ptr, bool recoveringFromDevice) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->setRecoveringFromDevice(recoveringFromDevice); -} -void MONERO_Wallet_setSubaddressLookahead(void* wallet_ptr, uint32_t major, uint32_t minor) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->setSubaddressLookahead(major, minor); -} - -bool MONERO_Wallet_connectToDaemon(void* wallet_ptr) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->connectToDaemon(); -} -int MONERO_Wallet_connected(void* wallet_ptr) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->connected(); -} -void MONERO_Wallet_setTrustedDaemon(void* wallet_ptr, bool arg) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->setTrustedDaemon(arg); -} -bool MONERO_Wallet_trustedDaemon(void* wallet_ptr) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->trustedDaemon(); -} -bool MONERO_Wallet_setProxy(void* wallet_ptr, const char* address) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->setProxy(std::string(address)); -} - -uint64_t MONERO_Wallet_balance(void* wallet_ptr, uint32_t accountIndex) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->balance(accountIndex); -} - -uint64_t MONERO_Wallet_unlockedBalance(void* wallet_ptr, uint32_t accountIndex) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->unlockedBalance(accountIndex); -} - -uint64_t MONERO_Wallet_viewOnlyBalance(void* wallet_ptr, uint32_t accountIndex) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->viewOnlyBalance(accountIndex); -} - -// TODO -bool MONERO_Wallet_watchOnly(void* wallet_ptr) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->watchOnly(); -} -bool MONERO_Wallet_isDeterministic(void* wallet_ptr) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->isDeterministic(); -} -uint64_t MONERO_Wallet_blockChainHeight(void* wallet_ptr) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->blockChainHeight(); -} -uint64_t MONERO_Wallet_approximateBlockChainHeight(void* wallet_ptr) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->approximateBlockChainHeight(); -} -uint64_t MONERO_Wallet_estimateBlockChainHeight(void* wallet_ptr) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->estimateBlockChainHeight(); -} -uint64_t MONERO_Wallet_daemonBlockChainHeight(void* wallet_ptr) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->daemonBlockChainHeight(); -} - -uint64_t daemonBlockChainHeight_cached = 0; - -uint64_t MONERO_Wallet_daemonBlockChainHeight_cached(void* wallet_ptr) { - return daemonBlockChainHeight_cached; -} - -bool daemonBlockChainHeight_cacheIsEnabled = false; - - -void MONERO_Wallet_daemonBlockChainHeight_runThread(void* wallet_ptr, int seconds) { - while (true) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - daemonBlockChainHeight_cached = wallet->daemonBlockChainHeight(); - sleep(seconds); - std::cout << "MONERO: TICK: MONERO_Wallet_daemonBlockChainHeight_runThread(" << seconds << "): " << daemonBlockChainHeight_cached << std::endl; - } -} -uint64_t MONERO_Wallet_daemonBlockChainTargetHeight(void* wallet_ptr) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->daemonBlockChainTargetHeight(); -} -bool MONERO_Wallet_synchronized(void* wallet_ptr) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->synchronized(); -} - -const char* MONERO_Wallet_displayAmount(uint64_t amount) { - std::string str = Monero::Wallet::displayAmount(amount); - const std::string::size_type size = str.size(); - char *buffer = new char[size + 1]; //we need extra char for NUL - memcpy(buffer, str.c_str(), size + 1); - return buffer; -} - -// static uint64_t amountFromString(const std::string &amount); -uint64_t MONERO_Wallet_amountFromString(const char* amount) { - return Monero::Wallet::amountFromString(amount); -} -// static uint64_t amountFromDouble(double amount); -uint64_t MONERO_Wallet_amountFromDouble(double amount) { - return Monero::Wallet::amountFromDouble(amount); -} -// static std::string genPaymentId(); -const char* MONERO_Wallet_genPaymentId() { - std::string str = Monero::Wallet::genPaymentId(); - const std::string::size_type size = str.size(); - char *buffer = new char[size + 1]; //we need extra char for NUL - memcpy(buffer, str.c_str(), size + 1); - return buffer; -} -// static bool paymentIdValid(const std::string &paiment_id); -bool MONERO_Wallet_paymentIdValid(const char* paiment_id) { - return Monero::Wallet::paymentIdValid(std::string(paiment_id)); -} -bool MONERO_Wallet_addressValid(const char* str, int nettype) { - // Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return Monero::Wallet::addressValid(std::string(str), nettype); -} - -bool MONERO_Wallet_keyValid(const char* secret_key_string, const char* address_string, bool isViewKey, int nettype) { - std::string error; - return Monero::Wallet::keyValid(std::string(secret_key_string), std::string(address_string), isViewKey, nettype, error); -} -const char* MONERO_Wallet_keyValid_error(const char* secret_key_string, const char* address_string, bool isViewKey, int nettype) { - std::string str; - Monero::Wallet::keyValid(std::string(secret_key_string), std::string(address_string), isViewKey, nettype, str); - const std::string::size_type size = str.size(); - char *buffer = new char[size + 1]; //we need extra char for NUL - memcpy(buffer, str.c_str(), size + 1); - return buffer; -} -const char* MONERO_Wallet_paymentIdFromAddress(const char* strarg, int nettype) { - std::string str = Monero::Wallet::paymentIdFromAddress(std::string(strarg), nettype); - const std::string::size_type size = str.size(); - char *buffer = new char[size + 1]; //we need extra char for NUL - memcpy(buffer, str.c_str(), size + 1); - return buffer; -} -uint64_t MONERO_Wallet_maximumAllowedAmount() { - return Monero::Wallet::maximumAllowedAmount(); -} - -void MONERO_Wallet_init3(void* wallet_ptr, const char* argv0, const char* default_log_base_name, const char* log_path, bool console) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->init(argv0, default_log_base_name, log_path, console); -} -const char* MONERO_Wallet_getPolyseed(void* wallet_ptr, const char* passphrase) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - std::string seed = ""; - std::string _passphrase = std::string(passphrase); - wallet->getPolyseed(seed, _passphrase); - std::string str = seed; - const std::string::size_type size = str.size(); - char *buffer = new char[size + 1]; //we need extra char for NUL - memcpy(buffer, str.c_str(), size + 1); - return buffer; -} -// static bool createPolyseed(std::string &seed_words, std::string &err, const std::string &language = "English"); -const char* MONERO_Wallet_createPolyseed() { - std::string seed_words = ""; - std::string err; - Monero::Wallet::createPolyseed(seed_words, err); - std::string str = seed_words; - const std::string::size_type size = str.size(); - char *buffer = new char[size + 1]; //we need extra char for NUL - memcpy(buffer, str.c_str(), size + 1); - return buffer; -} - -void MONERO_Wallet_startRefresh(void* wallet_ptr) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->startRefresh(); -} -void MONERO_Wallet_pauseRefresh(void* wallet_ptr) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->pauseRefresh(); -} -bool MONERO_Wallet_refresh(void* wallet_ptr) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->refresh(); -} -void MONERO_Wallet_refreshAsync(void* wallet_ptr) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->refreshAsync(); -} -bool MONERO_Wallet_rescanBlockchain(void* wallet_ptr) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->rescanBlockchain(); -} -void MONERO_Wallet_rescanBlockchainAsync(void* wallet_ptr) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->rescanBlockchainAsync(); -} -void MONERO_Wallet_setAutoRefreshInterval(void* wallet_ptr, int millis) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->setAutoRefreshInterval(millis); -} -int MONERO_Wallet_autoRefreshInterval(void* wallet_ptr) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->autoRefreshInterval(); -} -void MONERO_Wallet_addSubaddressAccount(void* wallet_ptr, const char* label) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->addSubaddressAccount(std::string(label)); -} -size_t MONERO_Wallet_numSubaddressAccounts(void* wallet_ptr) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->numSubaddressAccounts(); -} -size_t MONERO_Wallet_numSubaddresses(void* wallet_ptr, uint32_t accountIndex) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->numSubaddresses(accountIndex); -} -void MONERO_Wallet_addSubaddress(void* wallet_ptr, uint32_t accountIndex, const char* label) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->addSubaddress(accountIndex, std::string(label)); -} -const char* MONERO_Wallet_getSubaddressLabel(void* wallet_ptr, uint32_t accountIndex, uint32_t addressIndex) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - std::string str = wallet->getSubaddressLabel(accountIndex, addressIndex); - const std::string::size_type size = str.size(); - char *buffer = new char[size + 1]; //we need extra char for NUL - memcpy(buffer, str.c_str(), size + 1); - return buffer; -} - -void MONERO_Wallet_setSubaddressLabel(void* wallet_ptr, uint32_t accountIndex, uint32_t addressIndex, const char* label) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->setSubaddressLabel(accountIndex, addressIndex, std::string(label)); -} -const char* MONERO_Wallet_getMultisigInfo(void* wallet_ptr) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - std::string str = wallet->getMultisigInfo(); - const std::string::size_type size = str.size(); - char *buffer = new char[size + 1]; //we need extra char for NUL - memcpy(buffer, str.c_str(), size + 1); - return buffer; -} - -Monero::PendingTransaction::Priority PendingTransaction_Priority_fromInt(int value) { - switch(value) { - case 0: return Monero::PendingTransaction::Priority::Priority_Default; - case 1: return Monero::PendingTransaction::Priority::Priority_Low; - case 2: return Monero::PendingTransaction::Priority::Priority_Medium; - case 3: return Monero::PendingTransaction::Priority::Priority_High; - default: return Monero::PendingTransaction::Priority::Priority_Default; - } -} - -void* MONERO_Wallet_createTransaction(void* wallet_ptr, const char* dst_addr, const char* payment_id, - uint64_t amount, uint32_t mixin_count, - int pendingTransactionPriority, - uint32_t subaddr_account, - const char* preferredInputs, const char* separator) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - Monero::optional<uint64_t> optAmount; - if (amount != 0) { - optAmount = amount; - } - std::set<uint32_t> subaddr_indices = {}; - std::set<std::string> preferred_inputs = splitString(std::string(preferredInputs), std::string(separator)); - return wallet->createTransaction(std::string(dst_addr), std::string(payment_id), - optAmount, mixin_count, - PendingTransaction_Priority_fromInt(pendingTransactionPriority), - subaddr_account, subaddr_indices, preferred_inputs); -} - - -void* MONERO_Wallet_loadUnsignedTx(void* wallet_ptr, const char* fileName) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->loadUnsignedTx(std::string(fileName)); -} -bool MONERO_Wallet_submitTransaction(void* wallet_ptr, const char* fileName) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->submitTransaction(std::string(fileName)); -} -bool MONERO_Wallet_hasUnknownKeyImages(void* wallet_ptr) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->hasUnknownKeyImages(); -} -bool MONERO_Wallet_exportKeyImages(void* wallet_ptr, const char* filename, bool all) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->exportKeyImages(std::string(filename), all); -} -bool MONERO_Wallet_importKeyImages(void* wallet_ptr, const char* filename) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->importKeyImages(std::string(filename)); -} -bool MONERO_Wallet_exportOutputs(void* wallet_ptr, const char* filename, bool all) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->exportOutputs(std::string(filename), all); -} -bool MONERO_Wallet_importOutputs(void* wallet_ptr, const char* filename) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->importOutputs(std::string(filename)); -} -// virtual bool setupBackgroundSync(const BackgroundSyncType background_sync_type, const std::string &wallet_password, const optional<std::string> &background_cache_password) = 0; -bool MONERO_Wallet_setupBackgroundSync(void* wallet_ptr, int background_sync_type, const char* wallet_password, const char* background_cache_password) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->setupBackgroundSync(Monero::Wallet::BackgroundSyncType::BackgroundSync_CustomPassword, std::string(wallet_password), std::string(background_cache_password)); -} -// virtual BackgroundSyncType getBackgroundSyncType() const = 0; -int MONERO_Wallet_getBackgroundSyncType(void* wallet_ptr) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->getBackgroundSyncType(); -} -// virtual bool startBackgroundSync() = 0; -bool MONERO_Wallet_startBackgroundSync(void* wallet_ptr) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->startBackgroundSync(); -} -// virtual bool stopBackgroundSync(const std::string &wallet_password) = 0; -bool MONERO_Wallet_stopBackgroundSync(void* wallet_ptr, const char* wallet_password) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->stopBackgroundSync(std::string(wallet_password)); -} -// virtual bool isBackgroundSyncing() const = 0; -bool MONERO_Wallet_isBackgroundSyncing(void* wallet_ptr) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->hasUnknownKeyImages(); -} -// virtual bool isBackgroundWallet() const = 0; -bool MONERO_Wallet_isBackgroundWallet(void* wallet_ptr) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->isBackgroundWallet(); -} -void* MONERO_Wallet_history(void* wallet_ptr) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->history(); -} -void* MONERO_Wallet_addressBook(void* wallet_ptr) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->addressBook(); -} -// virtual Coins * coins() = 0; -void* MONERO_Wallet_coins(void* wallet_ptr) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->coins(); -} -// virtual Subaddress * subaddress() = 0; -void* MONERO_Wallet_subaddress(void* wallet_ptr) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->subaddress(); -} -// virtual SubaddressAccount * subaddressAccount() = 0; -void* MONERO_Wallet_subaddressAccount(void* wallet_ptr) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->subaddressAccount(); -} -// virtual uint32_t defaultMixin() const = 0; -uint32_t MONERO_Wallet_defaultMixin(void* wallet_ptr) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->defaultMixin(); -} -// virtual void setDefaultMixin(uint32_t arg) = 0; -void MONERO_Wallet_setDefaultMixin(void* wallet_ptr, uint32_t arg) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->setDefaultMixin(arg); -} -// virtual bool setCacheAttribute(const std::string &key, const std::string &val) = 0; -bool MONERO_Wallet_setCacheAttribute(void* wallet_ptr, const char* key, const char* val) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->setCacheAttribute(std::string(key), std::string(val)); -} -// virtual std::string getCacheAttribute(const std::string &key) const = 0; -const char* MONERO_Wallet_getCacheAttribute(void* wallet_ptr, const char* key) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - std::string str = wallet->getCacheAttribute(std::string(key)); - const std::string::size_type size = str.size(); - char *buffer = new char[size + 1]; //we need extra char for NUL - memcpy(buffer, str.c_str(), size + 1); - return buffer; -} -// virtual bool setUserNote(const std::string &txid, const std::string ¬e) = 0; -bool MONERO_Wallet_setUserNote(void* wallet_ptr, const char* txid, const char* note) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->setUserNote(std::string(txid), std::string(note)); -} -// virtual std::string getUserNote(const std::string &txid) const = 0; -const char* MONERO_Wallet_getUserNote(void* wallet_ptr, const char* txid) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - std::string str = wallet->getUserNote(std::string(txid)); - const std::string::size_type size = str.size(); - char *buffer = new char[size + 1]; //we need extra char for NUL - memcpy(buffer, str.c_str(), size + 1); - return buffer; -} - -const char* MONERO_Wallet_getTxKey(void* wallet_ptr, const char* txid) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - std::string str = wallet->getTxKey(std::string(txid)); - const std::string::size_type size = str.size(); - char *buffer = new char[size + 1]; //we need extra char for NUL - memcpy(buffer, str.c_str(), size + 1); - return buffer; -} - -const char* MONERO_Wallet_signMessage(void* wallet_ptr, const char* message, const char* address) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - std::string str = wallet->signMessage(std::string(message), std::string(address)); - const std::string::size_type size = str.size(); - char *buffer = new char[size + 1]; //we need extra char for NUL - memcpy(buffer, str.c_str(), size + 1); - return buffer; -} - -bool MONERO_Wallet_verifySignedMessage(void* wallet_ptr, const char* message, const char* address, const char* signature) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - bool v = wallet->verifySignedMessage(std::string(message), std::string(address), std::string(signature)); - return v; -} - -bool MONERO_Wallet_rescanSpent(void* wallet_ptr) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->rescanSpent(); -} - -void MONERO_Wallet_setOffline(void* wallet_ptr, bool offline) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->setOffline(offline); -} -// virtual bool isOffline() const = 0; -bool MONERO_Wallet_isOffline(void* wallet_ptr) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->isOffline(); -} - -void MONERO_Wallet_segregatePreForkOutputs(void* wallet_ptr, bool segregate) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->segregatePreForkOutputs(segregate); -} -// virtual void segregationHeight(uint64_t height) = 0; -void MONERO_Wallet_segregationHeight(void* wallet_ptr, uint64_t height) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->segregationHeight(height); -} -// virtual void keyReuseMitigation2(bool mitigation) = 0; -void MONERO_Wallet_keyReuseMitigation2(void* wallet_ptr, bool mitigation) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->keyReuseMitigation2(mitigation); -} -// virtual bool lightWalletLogin(bool &isNewWallet) const = 0; -// virtual bool lightWalletImportWalletRequest(std::string &payment_id, uint64_t &fee, bool &new_request, bool &request_fulfilled, std::string &payment_address, std::string &status) = 0; -// virtual bool lockKeysFile() = 0; -bool MONERO_Wallet_lockKeysFile(void* wallet_ptr) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->lockKeysFile(); -} -// virtual bool unlockKeysFile() = 0; -bool MONERO_Wallet_unlockKeysFile(void* wallet_ptr) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->unlockKeysFile(); -} -// virtual bool isKeysFileLocked() = 0; -bool MONERO_Wallet_isKeysFileLocked(void* wallet_ptr) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->isKeysFileLocked(); -} -// virtual Device getDeviceType() const = 0; -int MONERO_Wallet_getDeviceType(void* wallet_ptr) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->getDeviceType(); -} -// virtual uint64_t coldKeyImageSync(uint64_t &spent, uint64_t &unspent) = 0; -uint64_t MONERO_Wallet_coldKeyImageSync(void* wallet_ptr, uint64_t spent, uint64_t unspent) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->coldKeyImageSync(spent, unspent); -} -// virtual void deviceShowAddress(uint32_t accountIndex, uint32_t addressIndex, const std::string &paymentId) = 0; -const char* MONERO_Wallet_deviceShowAddress(void* wallet_ptr, uint32_t accountIndex, uint32_t addressIndex) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - std::string str = ""; - wallet->deviceShowAddress(accountIndex, addressIndex, str); - const std::string::size_type size = str.size(); - char *buffer = new char[size + 1]; //we need extra char for NUL - memcpy(buffer, str.c_str(), size + 1); - return buffer; -} -// virtual bool reconnectDevice() = 0; -const char* MONERO_Wallet_reconnectDevice(void* wallet_ptr); - -uint64_t MONERO_Wallet_getBytesReceived(void* wallet_ptr) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->getBytesReceived(); -} -uint64_t MONERO_Wallet_getBytesSent(void* wallet_ptr) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wallet->getBytesSent(); -} - - -void* MONERO_WalletManager_createWallet(void* wm_ptr, const char* path, const char* password, const char* language, int networkType) { - Monero::WalletManager *wm = reinterpret_cast<Monero::WalletManager*>(wm_ptr); - Monero::Wallet *wallet = wm->createWallet( - std::string(path), - std::string(password), - std::string(language), - static_cast<Monero::NetworkType>(networkType)); - return reinterpret_cast<void*>(wallet); -} - -void* MONERO_WalletManager_openWallet(void* wm_ptr, const char* path, const char* password, int networkType) { - Monero::WalletManager *wm = reinterpret_cast<Monero::WalletManager*>(wm_ptr); - Monero::Wallet *wallet = wm->openWallet( - std::string(path), - std::string(password), - static_cast<Monero::NetworkType>(networkType)); - return reinterpret_cast<void*>(wallet); -} -void* MONERO_WalletManager_recoveryWallet(void* wm_ptr, const char* path, const char* password, const char* mnemonic, int networkType, uint64_t restoreHeight, uint64_t kdfRounds, const char* seedOffset) { - Monero::WalletManager *wm = reinterpret_cast<Monero::WalletManager*>(wm_ptr); - // (const std::string &path, const std::string &password, const std::string &mnemonic, - // NetworkType nettype = MAINNET, uint64_t restoreHeight = 0, uint64_t kdf_rounds = 1, - // const std::string &seed_offset = {}) - Monero::Wallet *wallet = wm->recoveryWallet( - std::string(path), - std::string(password), - std::string(mnemonic), - static_cast<Monero::NetworkType>(networkType), - restoreHeight, - kdfRounds, - std::string(seedOffset)); - return reinterpret_cast<void*>(wallet); -} -// virtual Wallet * createWalletFromKeys(const std::string &path, -// const std::string &password, -// const std::string &language, -// NetworkType nettype, -// uint64_t restoreHeight, -// const std::string &addressString, -// const std::string &viewKeyString, -// const std::string &spendKeyString = "", -// uint64_t kdf_rounds = 1) = 0; -void* MONERO_WalletManager_createWalletFromKeys(void* wm_ptr, const char* path, const char* password, const char* language, int nettype, uint64_t restoreHeight, const char* addressString, const char* viewKeyString, const char* spendKeyString, uint64_t kdf_rounds) { - Monero::WalletManager *wm = reinterpret_cast<Monero::WalletManager*>(wm_ptr); - Monero::Wallet *wallet = wm->createWalletFromKeys( - std::string(path), - std::string(password), - std::string(language), - static_cast<Monero::NetworkType>(nettype), - restoreHeight, - std::string(addressString), - std::string(viewKeyString), - std::string(spendKeyString)); - return reinterpret_cast<void*>(wallet); -} - -void* MONERO_WalletManager_createWalletFromPolyseed(void* wm_ptr, const char* path, const char* password, - int nettype, const char* mnemonic, const char* passphrase, - bool newWallet, uint64_t restore_height, uint64_t kdf_rounds) { - Monero::WalletManager *wm = reinterpret_cast<Monero::WalletManager*>(wm_ptr); - return wm->createWalletFromPolyseed(std::string(path), - std::string(password), - static_cast<Monero::NetworkType>(nettype), - std::string(mnemonic), - std::string(passphrase), - newWallet, - restore_height, - kdf_rounds); -} - - -bool MONERO_WalletManager_closeWallet(void* wm_ptr, void* wallet_ptr, bool store) { - Monero::WalletManager *wm = reinterpret_cast<Monero::WalletManager*>(wm_ptr); - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return wm->closeWallet(wallet, store); -} - -bool MONERO_WalletManager_walletExists(void* wm_ptr, const char* path) { - Monero::WalletManager *wm = reinterpret_cast<Monero::WalletManager*>(wm_ptr); - return wm->walletExists(std::string(path)); -} - -// virtual bool verifyWalletPassword(const std::string &keys_file_name, const std::string &password, bool no_spend_key, uint64_t kdf_rounds = 1) const = 0; -bool MONERO_WalletManager_verifyWalletPassword(void* wm_ptr, const char* keys_file_name, const char* password, bool no_spend_key, uint64_t kdf_rounds) { - Monero::WalletManager *wm = reinterpret_cast<Monero::WalletManager*>(wm_ptr); - return wm->verifyWalletPassword(std::string(keys_file_name), std::string(password), no_spend_key, kdf_rounds); -} -// virtual bool queryWalletDevice(Wallet::Device& device_type, const std::string &keys_file_name, const std::string &password, uint64_t kdf_rounds = 1) const = 0; -// bool MONERO_WalletManager_queryWalletDevice(int device_type, const char* keys_file_name, const char* password, uint64_t kdf_rounds) { -// return Monero::WalletManagerFactory::getWalletManager()->queryWalletDevice(device_type, std::string(keys_file_name), std::string(password), kdf_rounds); -//} -// virtual std::vector<std::string> findWallets(const std::string &path) = 0; -const char* MONERO_WalletManager_findWallets(void* wm_ptr, const char* path, const char* separator) { - Monero::WalletManager *wm = reinterpret_cast<Monero::WalletManager*>(wm_ptr); - return vectorToString(wm->findWallets(std::string(path)), std::string(separator)); -} - - -const char* MONERO_WalletManager_errorString(void* wm_ptr) { - Monero::WalletManager *wm = reinterpret_cast<Monero::WalletManager*>(wm_ptr); - std::string str = wm->errorString(); - const std::string::size_type size = str.size(); - char *buffer = new char[size + 1]; //we need extra char for NUL - memcpy(buffer, str.c_str(), size + 1); - return buffer; -} - -void MONERO_WalletManager_setDaemonAddress(void* wm_ptr, const char* address) { - Monero::WalletManager *wm = reinterpret_cast<Monero::WalletManager*>(wm_ptr); - return wm->setDaemonAddress(std::string(address)); -} - -bool MONERO_WalletManager_setProxy(void* wm_ptr, const char* address) { - Monero::WalletManager *wm = reinterpret_cast<Monero::WalletManager*>(wm_ptr); - return wm->setProxy(std::string(address)); -} - - -// virtual bool connected(uint32_t *version = NULL) = 0; -// virtual uint64_t blockchainHeight() = 0; -uint64_t MONERO_WalletManager_blockchainHeight(void* wm_ptr) { - Monero::WalletManager *wm = reinterpret_cast<Monero::WalletManager*>(wm_ptr); - return wm->blockchainHeight(); -} -// virtual uint64_t blockchainTargetHeight() = 0; -uint64_t MONERO_WalletManager_blockchainTargetHeight(void* wm_ptr) { - Monero::WalletManager *wm = reinterpret_cast<Monero::WalletManager*>(wm_ptr); - return wm->blockchainTargetHeight(); -} -// virtual uint64_t networkDifficulty() = 0; -uint64_t MONERO_WalletManager_networkDifficulty(void* wm_ptr) { - Monero::WalletManager *wm = reinterpret_cast<Monero::WalletManager*>(wm_ptr); - return wm->networkDifficulty(); -} -// virtual double miningHashRate() = 0; -double MONERO_WalletManager_miningHashRate(void* wm_ptr) { - Monero::WalletManager *wm = reinterpret_cast<Monero::WalletManager*>(wm_ptr); - return wm->miningHashRate(); -} -// virtual uint64_t blockTarget() = 0; -uint64_t MONERO_WalletManager_blockTarget(void* wm_ptr) { - Monero::WalletManager *wm = reinterpret_cast<Monero::WalletManager*>(wm_ptr); - return wm->blockTarget(); -} -// virtual bool isMining() = 0; -bool MONERO_WalletManager_isMining(void* wm_ptr) { - Monero::WalletManager *wm = reinterpret_cast<Monero::WalletManager*>(wm_ptr); - return wm->isMining(); -} -// virtual bool startMining(const std::string &address, uint32_t threads = 1, bool background_mining = false, bool ignore_battery = true) = 0; -bool MONERO_WalletManager_startMining(void* wm_ptr, const char* address, uint32_t threads, bool backgroundMining, bool ignoreBattery) { - Monero::WalletManager *wm = reinterpret_cast<Monero::WalletManager*>(wm_ptr); - return wm->startMining(std::string(address), threads, backgroundMining, ignoreBattery); -} -// virtual bool stopMining() = 0; -bool MONERO_WalletManager_stopMining(void* wm_ptr, const char* address) { - Monero::WalletManager *wm = reinterpret_cast<Monero::WalletManager*>(wm_ptr); - return wm->stopMining(); -} -// virtual std::string resolveOpenAlias(const std::string &address, bool &dnssec_valid) const = 0; -const char* MONERO_WalletManager_resolveOpenAlias(void* wm_ptr, const char* address, bool dnssec_valid) { - Monero::WalletManager *wm = reinterpret_cast<Monero::WalletManager*>(wm_ptr); - std::string str = wm->resolveOpenAlias(std::string(address), dnssec_valid); - const std::string::size_type size = str.size(); - char *buffer = new char[size + 1]; //we need extra char for NUL - memcpy(buffer, str.c_str(), size + 1); - return buffer; -} - -// WalletManagerFactory - -void* MONERO_WalletManagerFactory_getWalletManager() { - Monero::WalletManager *wm = Monero::WalletManagerFactory::getWalletManager(); - return reinterpret_cast<void*>(wm); -} - -void MONERO_WalletManagerFactory_setLogLevel(int level) { - Monero::WalletManagerFactory::setLogLevel(level); -} - -// DEBUG functions - -// As it turns out we need a bit more functions to make sure that the library is working. -// 0) void -// 1) bool -// 2) int -// 3) uint64_t -// 4) void* -// 5) const char* - -void MONERO_DEBUG_test0() { - return; -} - -bool MONERO_DEBUG_test1(bool x) { - return x; -} - -int MONERO_DEBUG_test2(int x) { - return x; -} - -uint64_t MONERO_DEBUG_test3(uint64_t x) { - return x; -} - -void* MONERO_DEBUG_test4(uint64_t x) { - int y = x; - return reinterpret_cast<void*>(&y); -} - -const char* MONERO_DEBUG_test5() { - const char *text = "This is a const char* text"; - return text; -} - -const char* MONERO_DEBUG_test5_std() { - std::string text ("This is a std::string text"); - const char *text2 = "This is a text"; - return text2; -} - -bool MONERO_DEBUG_isPointerNull(void* wallet_ptr) { - Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); - return (wallet != NULL); -} - -#ifdef __cplusplus -} -#endif diff --git a/libbridge/src/main/cpp/wallet2_api_c.h b/libbridge/src/main/cpp/wallet2_api_c.h deleted file mode 100644 index 22fd8d5..0000000 --- a/libbridge/src/main/cpp/wallet2_api_c.h +++ /dev/null @@ -1,981 +0,0 @@ -/* -#include <android/log.h> - -#define LOG_TAG "[NDK]" -#define LOGI(...) __android_log_print(ANDROID_LOG_INFO,LOG_TAG,__VA_ARGS__) -#define LOGW(...) __android_log_print(ANDROID_LOG_WARN,LOG_TAG,__VA_ARGS__) -#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR,LOG_TAG,__VA_ARGS__) -*/ -#include <stdint.h> -#include <stdbool.h> -#include <stddef.h> -#include <unistd.h> - -#ifdef __cplusplus -extern "C" -{ -#endif - -#ifdef __MINGW32__ - #define ADDAPI __declspec(dllexport) -#else - #define ADDAPI -#endif - -// namespace Monero { -// enum NetworkType : uint8_t { -// MAINNET = 0, -const int NetworkType_MAINNET = 0; -// TESTNET, -const int NetworkType_TESTNET = 1; -// STAGENET -const int NetworkType_STAGENET = 2; -// }; -// namespace Utils { -// bool isAddressLocal(const std::string &hostaddr); -// void onStartup(); -// } -// template<typename T> -// class optional { -// public: -// optional(): set(false) {} -// optional(const T &t): t(t), set(true) {} -// const T &operator*() const { return t; } -// T &operator*() { return t; } -// operator bool() const { return set; } -// private: -// T t; -// bool set; -// }; - -// struct PendingTransaction -// { -// enum Status { -// Status_Ok, -const int PendingTransactionStatus_Ok = 0; -// Status_Error, -const int PendingTransactionStatus_Error = 1; -// Status_Critical -const int PendingTransactionStatus_Critical = 2; -// }; -// enum Priority { -// Priority_Default = 0, -const int Priority_Default = 0; -// Priority_Low = 1, -const int Priority_Low = 1; -// Priority_Medium = 2, -const int Priority_Medium = 2; -// Priority_High = 3, -const int Priority_High = 3; -// Priority_Last -const int Priority_Last = 4; -// }; -// virtual ~PendingTransaction() = 0; -// virtual int status() const = 0; -extern ADDAPI int MONERO_PendingTransaction_status(void* pendingTx_ptr); -// virtual std::string errorString() const = 0; -extern ADDAPI const char* MONERO_PendingTransaction_errorString(void* pendingTx_ptr); -// virtual bool commit(const std::string &filename = "", bool overwrite = false) = 0; -extern ADDAPI bool MONERO_PendingTransaction_commit(void* pendingTx_ptr, const char* filename, bool overwrite); -// virtual uint64_t amount() const = 0; -extern ADDAPI uint64_t MONERO_PendingTransaction_amount(void* pendingTx_ptr); -// virtual uint64_t dust() const = 0; -extern ADDAPI uint64_t MONERO_PendingTransaction_dust(void* pendingTx_ptr); -// virtual uint64_t fee() const = 0; -extern ADDAPI uint64_t MONERO_PendingTransaction_fee(void* pendingTx_ptr); -// virtual std::vector<std::string> txid() const = 0; -extern ADDAPI const char* MONERO_PendingTransaction_txid(void* pendingTx_ptr, const char* separator); -// virtual uint64_t txCount() const = 0; -extern ADDAPI uint64_t MONERO_PendingTransaction_txCount(void* pendingTx_ptr); -// virtual std::vector<uint32_t> subaddrAccount() const = 0; -extern ADDAPI const char* MONERO_PendingTransaction_subaddrAccount(void* pendingTx_ptr, const char* separator); -// virtual std::vector<std::set<uint32_t>> subaddrIndices() const = 0; -extern ADDAPI const char* MONERO_PendingTransaction_subaddrIndices(void* pendingTx_ptr, const char* separator); -// virtual std::string multisigSignData() = 0; -extern ADDAPI const char* MONERO_PendingTransaction_multisigSignData(void* pendingTx_ptr); -// virtual void signMultisigTx() = 0; -extern ADDAPI void MONERO_PendingTransaction_signMultisigTx(void* pendingTx_ptr); -// virtual std::vector<std::string> signersKeys() const = 0; -extern ADDAPI const char* MONERO_PendingTransaction_signersKeys(void* pendingTx_ptr, const char* separator); -// }; - -// struct UnsignedTransaction -// { -// enum Status { -// Status_Ok, -const int UnsignedTransactionStatus_Ok = 0; -// Status_Error, -const int UnsignedTransactionStatus_Error = 1; -// Status_Critical -const int UnsignedTransactionStatus_Critical = 2; -// }; -// virtual ~UnsignedTransaction() = 0; -// virtual int status() const = 0; -extern ADDAPI int MONERO_UnsignedTransaction_status(void* unsignedTx_ptr); -// virtual std::string errorString() const = 0; -extern ADDAPI const char* MONERO_UnsignedTransaction_errorString(void* unsignedTx_ptr); -// virtual std::vector<uint64_t> amount() const = 0; -extern ADDAPI const char* MONERO_UnsignedTransaction_amount(void* unsignedTx_ptr, const char* separator); -// virtual std::vector<uint64_t> fee() const = 0; -extern ADDAPI const char* MONERO_UnsignedTransaction_fee(void* unsignedTx_ptr, const char* separator); -// virtual std::vector<uint64_t> mixin() const = 0; -extern ADDAPI const char* MONERO_UnsignedTransaction_mixin(void* unsignedTx_ptr, const char* separator); -// virtual std::string confirmationMessage() const = 0; -extern ADDAPI const char* MONERO_UnsignedTransaction_confirmationMessage(void* unsignedTx_ptr); -// virtual std::vector<std::string> paymentId() const = 0; -extern ADDAPI const char* MONERO_UnsignedTransaction_paymentId(void* unsignedTx_ptr, const char* separator); -// virtual std::vector<std::string> recipientAddress() const = 0; -extern ADDAPI const char* MONERO_UnsignedTransaction_recipientAddress(void* unsignedTx_ptr, const char* separator); -// virtual uint64_t minMixinCount() const = 0; -extern ADDAPI uint64_t MONERO_UnsignedTransaction_minMixinCount(void* unsignedTx_ptr); -// virtual uint64_t txCount() const = 0; -extern ADDAPI uint64_t MONERO_UnsignedTransaction_txCount(void* unsignedTx_ptr); -// virtual bool sign(const std::string &signedFileName) = 0; -extern ADDAPI bool MONERO_UnsignedTransaction_sign(void* unsignedTx_ptr, const char* signedFileName); -// }; -// struct TransactionInfo -// { -// enum Direction { -// Direction_In, -const int TransactionInfoDirection_In = 0; -// Direction_Out -const int TransactionInfoDirection_Out = 1; -// }; -// struct Transfer { -// Transfer(uint64_t _amount, const std::string &address); -// const uint64_t amount; -// const std::string address; -// }; -// virtual ~TransactionInfo() = 0; -// virtual int direction() const = 0; -extern ADDAPI int MONERO_TransactionInfo_direction(void* txInfo_ptr); -// virtual bool isPending() const = 0; -extern ADDAPI bool MONERO_TransactionInfo_isPending(void* txInfo_ptr); -// virtual bool isFailed() const = 0; -extern ADDAPI bool MONERO_TransactionInfo_isFailed(void* txInfo_ptr); -// virtual bool isCoinbase() const = 0; -extern ADDAPI bool MONERO_TransactionInfo_isCoinbase(void* txInfo_ptr); -// virtual uint64_t amount() const = 0; -extern ADDAPI uint64_t MONERO_TransactionInfo_amount(void* txInfo_ptr); -// virtual uint64_t fee() const = 0; -extern ADDAPI uint64_t MONERO_TransactionInfo_fee(void* txInfo_ptr); -// virtual uint64_t blockHeight() const = 0; -extern ADDAPI uint64_t MONERO_TransactionInfo_blockHeight(void* txInfo_ptr); -// virtual std::string description() const = 0; -extern ADDAPI const char* MONERO_TransactionInfo_description(void* txInfo_ptr); -// virtual std::set<uint32_t> subaddrIndex() const = 0; -extern ADDAPI const char* MONERO_TransactionInfo_subaddrIndex(void* txInfo_ptr, const char* separator); -// virtual uint32_t subaddrAccount() const = 0; -extern ADDAPI uint32_t MONERO_TransactionInfo_subaddrAccount(void* txInfo_ptr); -// virtual std::string label() const = 0; -extern ADDAPI const char* MONERO_TransactionInfo_label(void* txInfo_ptr); -// virtual uint64_t confirmations() const = 0; -extern ADDAPI uint64_t MONERO_TransactionInfo_confirmations(void* txInfo_ptr); -// virtual uint64_t unlockTime() const = 0; -extern ADDAPI uint64_t MONERO_TransactionInfo_unlockTime(void* txInfo_ptr); -// virtual std::string hash() const = 0; -extern ADDAPI const char* MONERO_TransactionInfo_hash(void* txInfo_ptr); -// virtual std::time_t timestamp() const = 0; -extern ADDAPI uint64_t MONERO_TransactionInfo_timestamp(void* txInfo_ptr); -// virtual std::string paymentId() const = 0; -extern ADDAPI const char* MONERO_TransactionInfo_paymentId(void* txInfo_ptr); -// virtual const std::vector<Transfer> & transfers() const = 0; -extern ADDAPI int MONERO_TransactionInfo_transfers_count(void* txInfo_ptr); -extern ADDAPI uint64_t MONERO_TransactionInfo_transfers_amount(void* txInfo_ptr, int index); -extern ADDAPI const char* MONERO_TransactionInfo_transfers_address(void* txInfo_ptr, int address); -// }; -// struct TransactionHistory -// { -// virtual ~TransactionHistory() = 0; -// virtual int count() const = 0; -extern ADDAPI int MONERO_TransactionHistory_count(void* txHistory_ptr); -// virtual TransactionInfo * transaction(int index) const = 0; -extern ADDAPI void* MONERO_TransactionHistory_transaction(void* txHistory_ptr, int index); -// virtual TransactionInfo * transaction(const std::string &id) const = 0; -extern ADDAPI void* MONERO_TransactionHistory_transactionById(void* txHistory_ptr, const char* id); -// virtual std::vector<TransactionInfo*> getAll() const = 0; -// virtual void refresh() = 0; -extern ADDAPI void MONERO_TransactionHistory_refresh(void* txHistory_ptr); -// virtual void setTxNote(const std::string &txid, const std::string ¬e) = 0; -extern ADDAPI void MONERO_TransactionHistory_setTxNote(void* txHistory_ptr, const char* txid, const char* note); -// }; -// struct AddressBookRow { -// public: -// AddressBookRow(std::size_t _rowId, const std::string &_address, const std::string &_paymentId, const std::string &_description): -// m_rowId(_rowId), -// m_address(_address), -// m_paymentId(_paymentId), -// m_description(_description) {} - -// private: -// std::size_t m_rowId; -// std::string m_address; -// std::string m_paymentId; -// std::string m_description; -// public: -// std::string extra; -extern ADDAPI const char* MONERO_AddressBookRow_extra(void* addressBookRow_ptr); -// std::string getAddress() const {return m_address;} -extern ADDAPI const char* MONERO_AddressBookRow_getAddress(void* addressBookRow_ptr); -// std::string getDescription() const {return m_description;} -extern ADDAPI const char* MONERO_AddressBookRow_getDescription(void* addressBookRow_ptr); -// std::string getPaymentId() const {return m_paymentId;} -extern ADDAPI const char* MONERO_AddressBookRow_getPaymentId(void* addressBookRow_ptr); -// std::size_t getRowId() const {return m_rowId;} -extern ADDAPI size_t MONERO_AddressBookRow_getRowId(void* addressBookRow_ptr); -// }; -// struct AddressBook -// { -// enum ErrorCode { -// Status_Ok, -const int AddressBookErrorCodeStatus_Ok = 0; -// General_Error, -const int AddressBookErrorCodeGeneral_Error = 1; -// Invalid_Address, -const int AddressBookErrorCodeInvalid_Address = 2; -// Invalid_Payment_Id -const int AddressBookErrorCodeInvalidPaymentId = 3; -// }; -// virtual ~AddressBook() = 0; -// virtual std::vector<AddressBookRow*> getAll() const = 0; -extern ADDAPI int MONERO_AddressBook_getAll_size(void* addressBook_ptr); -extern ADDAPI void* MONERO_AddressBook_getAll_byIndex(void* addressBook_ptr, int index); -// virtual bool addRow(const std::string &dst_addr , const std::string &payment_id, const std::string &description) = 0; -extern ADDAPI bool MONERO_AddressBook_addRow(void* addressBook_ptr, const char* dst_addr , const char* payment_id, const char* description); -// virtual bool deleteRow(std::size_t rowId) = 0; -extern ADDAPI bool MONERO_AddressBook_deleteRow(void* addressBook_ptr, size_t rowId); -// virtual bool setDescription(std::size_t index, const std::string &description) = 0; -extern ADDAPI bool MONERO_AddressBook_setDescription(void* addressBook_ptr, size_t rowId, const char* description); -// virtual void refresh() = 0; -extern ADDAPI void MONERO_AddressBook_refresh(void* addressBook_ptr); -// virtual std::string errorString() const = 0; -extern ADDAPI const char* MONERO_AddressBook_errorString(void* addressBook_ptr); -// virtual int errorCode() const = 0; -extern ADDAPI int MONERO_AddressBook_errorCode(void* addressBook_ptr); -// virtual int lookupPaymentID(const std::string &payment_id) const = 0; -extern ADDAPI int MONERO_AddressBook_lookupPaymentID(void* addressBook_ptr, const char* payment_id); -// }; -// struct CoinsInfo -// { -// virtual ~CoinsInfo() = 0; -// virtual uint64_t blockHeight() const = 0; -extern ADDAPI uint64_t MONERO_CoinsInfo_blockHeight(void* coinsInfo_ptr); -// virtual std::string hash() const = 0; -extern ADDAPI const char* MONERO_CoinsInfo_hash(void* coinsInfo_ptr); -// virtual size_t internalOutputIndex() const = 0; -extern ADDAPI size_t MONERO_CoinsInfo_internalOutputIndex(void* coinsInfo_ptr); -// virtual uint64_t globalOutputIndex() const = 0; -extern ADDAPI uint64_t MONERO_CoinsInfo_globalOutputIndex(void* coinsInfo_ptr); -// virtual bool spent() const = 0; -extern ADDAPI bool MONERO_CoinsInfo_spent(void* coinsInfo_ptr); -// virtual bool frozen() const = 0; -extern ADDAPI bool MONERO_CoinsInfo_frozen(void* coinsInfo_ptr); -// virtual uint64_t spentHeight() const = 0; -extern ADDAPI uint64_t MONERO_CoinsInfo_spentHeight(void* coinsInfo_ptr); -// virtual uint64_t amount() const = 0; -extern ADDAPI uint64_t MONERO_CoinsInfo_amount(void* coinsInfo_ptr); -// virtual bool rct() const = 0; -extern ADDAPI bool MONERO_CoinsInfo_rct(void* coinsInfo_ptr); -// virtual bool keyImageKnown() const = 0; -extern ADDAPI bool MONERO_CoinsInfo_keyImageKnown(void* coinsInfo_ptr); -// virtual size_t pkIndex() const = 0; -extern ADDAPI size_t MONERO_CoinsInfo_pkIndex(void* coinsInfo_ptr); -// virtual uint32_t subaddrIndex() const = 0; -extern ADDAPI uint32_t MONERO_CoinsInfo_subaddrIndex(void* coinsInfo_ptr); -// virtual uint32_t subaddrAccount() const = 0; -extern ADDAPI uint32_t MONERO_CoinsInfo_subaddrAccount(void* coinsInfo_ptr); -// virtual std::string address() const = 0; -extern ADDAPI const char* MONERO_CoinsInfo_address(void* coinsInfo_ptr); -// virtual std::string addressLabel() const = 0; -extern ADDAPI const char* MONERO_CoinsInfo_addressLabel(void* coinsInfo_ptr); -// virtual std::string keyImage() const = 0; -extern ADDAPI const char* MONERO_CoinsInfo_keyImage(void* coinsInfo_ptr); -// virtual uint64_t unlockTime() const = 0; -extern ADDAPI uint64_t MONERO_CoinsInfo_unlockTime(void* coinsInfo_ptr); -// virtual bool unlocked() const = 0; -extern ADDAPI bool MONERO_CoinsInfo_unlocked(void* coinsInfo_ptr); -// virtual std::string pubKey() const = 0; -extern ADDAPI const char* MONERO_CoinsInfo_pubKey(void* coinsInfo_ptr); -// virtual bool coinbase() const = 0; -extern ADDAPI bool MONERO_CoinsInfo_coinbase(void* coinsInfo_ptr); -// virtual std::string description() const = 0; -extern ADDAPI const char* MONERO_CoinsInfo_description(void* coinsInfo_ptr); -// }; -// struct Coins -// { -// virtual ~Coins() = 0; -// virtual int count() const = 0; -extern ADDAPI int MONERO_Coins_count(void* coins_ptr); -// virtual CoinsInfo * coin(int index) const = 0; -extern ADDAPI void* MONERO_Coins_coin(void* coins_ptr, int index); -// virtual std::vector<CoinsInfo*> getAll() const = 0; -extern ADDAPI int MONERO_Coins_getAll_size(void* coins_ptr); -extern ADDAPI void* MONERO_Coins_getAll_byIndex(void* coins_ptr, int index); -// virtual void refresh() = 0; -extern ADDAPI void MONERO_Coins_refresh(void* coins_ptr); -// virtual void setFrozen(std::string public_key) = 0; -extern ADDAPI void MONERO_Coins_setFrozenByPublicKey(void* coins_ptr, const char* public_key); -// virtual void setFrozen(int index) = 0; -extern ADDAPI void MONERO_Coins_setFrozen(void* coins_ptr, int index); -// virtual void thaw(int index) = 0; -extern ADDAPI void MONERO_Coins_thaw(void* coins_ptr, int index); -// virtual void thaw(std::string public_key) = 0; -extern ADDAPI void MONERO_Coins_thawByPublicKey(void* coins_ptr, const char* public_key); -// virtual bool isTransferUnlocked(uint64_t unlockTime, uint64_t blockHeight) = 0; -extern ADDAPI bool MONERO_Coins_isTransferUnlocked(void* coins_ptr, uint64_t unlockTime, uint64_t blockHeight); -// virtual void setDescription(const std::string &public_key, const std::string &description) = 0; -extern ADDAPI void MONERO_Coins_setDescription(void* coins_ptr, const char* public_key, const char* description); -// }; -// struct SubaddressRow { -// public: -// SubaddressRow(std::size_t _rowId, const std::string &_address, const std::string &_label): -// m_rowId(_rowId), -// m_address(_address), -// m_label(_label) {} - -// private: -// std::size_t m_rowId; -// std::string m_address; -// std::string m_label; -// public: -// std::string extra; -extern ADDAPI const char* MONERO_SubaddressRow_extra(void* subaddressRow_ptr); -// std::string getAddress() const {return m_address;} -extern ADDAPI const char* MONERO_SubaddressRow_getAddress(void* subaddressRow_ptr); -// std::string getLabel() const {return m_label;} -extern ADDAPI const char* MONERO_SubaddressRow_getLabel(void* subaddressRow_ptr); -// std::size_t getRowId() const {return m_rowId;} -extern ADDAPI size_t MONERO_SubaddressRow_getRowId(void* subaddressRow_ptr); -// }; - -// struct Subaddress -// { -// virtual ~Subaddress() = 0; -// virtual std::vector<SubaddressRow*> getAll() const = 0; -extern ADDAPI int MONERO_Subaddress_getAll_size(void* subaddress_ptr); -extern ADDAPI void* MONERO_Subaddress_getAll_byIndex(void* subaddress_ptr, int index); -// virtual void addRow(uint32_t accountIndex, const std::string &label) = 0; -extern ADDAPI void MONERO_Subaddress_addRow(void* subaddress_ptr, uint32_t accountIndex, const char* label); -// virtual void setLabel(uint32_t accountIndex, uint32_t addressIndex, const std::string &label) = 0; -extern ADDAPI void MONERO_Subaddress_setLabel(void* subaddress_ptr, uint32_t accountIndex, uint32_t addressIndex, const char* label); -// virtual void refresh(uint32_t accountIndex) = 0; -extern ADDAPI void MONERO_Subaddress_refresh(void* subaddress_ptr, uint32_t accountIndex); -// }; - -// struct SubaddressAccountRow { -// public: -// SubaddressAccountRow(std::size_t _rowId, const std::string &_address, const std::string &_label, const std::string &_balance, const std::string &_unlockedBalance): -// m_rowId(_rowId), -// m_address(_address), -// m_label(_label), -// m_balance(_balance), -// m_unlockedBalance(_unlockedBalance) {} - -// private: -// std::size_t m_rowId; -// std::string m_address; -// std::string m_label; -// std::string m_balance; -// std::string m_unlockedBalance; -// public: -// std::string extra; -extern ADDAPI const char* MONERO_SubaddressAccountRow_extra(void* subaddressAccountRow_ptr); -// std::string getAddress() const {return m_address;} -extern ADDAPI const char* MONERO_SubaddressAccountRow_getAddress(void* subaddressAccountRow_ptr); -// std::string getLabel() const {return m_label;} -extern ADDAPI const char* MONERO_SubaddressAccountRow_getLabel(void* subaddressAccountRow_ptr); -// std::string getBalance() const {return m_balance;} -extern ADDAPI const char* MONERO_SubaddressAccountRow_getBalance(void* subaddressAccountRow_ptr); -// std::string getUnlockedBalance() const {return m_unlockedBalance;} -extern ADDAPI const char* MONERO_SubaddressAccountRow_getUnlockedBalance(void* subaddressAccountRow_ptr); -// std::size_t getRowId() const {return m_rowId;} -extern ADDAPI size_t MONERO_SubaddressAccountRow_getRowId(void* subaddressAccountRow_ptr); -// }; - -// struct SubaddressAccount -// { -// virtual ~SubaddressAccount() = 0; -// virtual std::vector<SubaddressAccountRow*> getAll() const = 0; -extern ADDAPI int MONERO_SubaddressAccount_getAll_size(void* subaddressAccount_ptr); -extern ADDAPI void* MONERO_SubaddressAccount_getAll_byIndex(void* subaddressAccount_ptr, int index); -// virtual void addRow(const std::string &label) = 0; -extern ADDAPI void MONERO_SubaddressAccount_addRow(void* subaddressAccount_ptr, const char* label); -// virtual void setLabel(uint32_t accountIndex, const std::string &label) = 0; -extern ADDAPI void MONERO_SubaddressAccount_setLabel(void* subaddressAccount_ptr, uint32_t accountIndex, const char* label); -// virtual void refresh() = 0; -extern ADDAPI void MONERO_SubaddressAccount_refresh(void* subaddressAccount_ptr); -// }; - -// struct MultisigState { -// MultisigState() : isMultisig(false), isReady(false), threshold(0), total(0) {} - -// bool isMultisig; -extern ADDAPI bool MONERO_MultisigState_isMultisig(void* multisigState_ptr); -// bool isReady; -extern ADDAPI bool MONERO_MultisigState_isReady(void* multisigState_ptr); -// uint32_t threshold; -extern ADDAPI uint32_t MONERO_MultisigState_threshold(void* multisigState_ptr); -// uint32_t total; -extern ADDAPI uint32_t MONERO_MultisigState_total(void* multisigState_ptr); -// }; - - -// struct DeviceProgress { -// DeviceProgress(): m_progress(0), m_indeterminate(false) {} -// DeviceProgress(double progress, bool indeterminate=false): m_progress(progress), m_indeterminate(indeterminate) {} - -// virtual double progress() const { return m_progress; } -extern ADDAPI bool MONERO_DeviceProgress_progress(void* deviceProgress_ptr); -// virtual bool indeterminate() const { return m_indeterminate; } -extern ADDAPI bool MONERO_DeviceProgress_indeterminate(void* deviceProgress_ptr); - -// protected: -// double m_progress; -// bool m_indeterminate; -// }; - -// struct Wallet; -// struct WalletListener -// { -// virtual ~WalletListener() = 0; -// virtual void moneySpent(const std::string &txId, uint64_t amount) = 0; -// virtual void moneyReceived(const std::string &txId, uint64_t amount) = 0; -// virtual void unconfirmedMoneyReceived(const std::string &txId, uint64_t amount) = 0; -// virtual void newBlock(uint64_t height) = 0; -// virtual void updated() = 0; -// virtual void refreshed() = 0; -// virtual void onDeviceButtonRequest(uint64_t code) { (void)code; } -// virtual void onDeviceButtonPressed() { } -// virtual optional<std::string> onDevicePinRequest() { -// throw std::runtime_error("Not supported"); -// } -// virtual optional<std::string> onDevicePassphraseRequest(bool & on_device) { -// on_device = true; -// return optional<std::string>(); -// } -// virtual void onDeviceProgress(const DeviceProgress & event) { (void)event; }; -// virtual void onSetWallet(Wallet * wallet) { (void)wallet; }; -// }; -// struct Wallet -// { -// enum Device { -// Device_Software = 0, -const int WalletDevice_Software = 0; -// Device_Ledger = 1, -const int WalletDevice_Ledger = 1; -// Device_Trezor = 2 -const int WalletDevice_Trezor = 2; -// }; -// enum Status { -// Status_Ok, -const int WalletStatus_Ok = 0; -// Status_Error, -const int WalletStatus_Error = 1; -// Status_Critical -const int WalletStatus_Critical = 2; -// }; -// enum ConnectionStatus { -// ConnectionStatus_Disconnected, -const int WalletConnectionStatus_Disconnected = 0; -// ConnectionStatus_Connected, -const int WalletConnectionStatus_Connected = 1; -// ConnectionStatus_WrongVersion -const int WalletConnectionStatus_WrongVersion = 2; -// }; -// enum BackgroundSyncType { -// BackgroundSync_Off = 0, -const int WalletBackgroundSync_Off = 0; -// BackgroundSync_ReusePassword = 1, -const int WalletBackgroundSync_ReusePassword = 1; -// BackgroundSync_CustomPassword = 2 -const int BackgroundSync_CustomPassword = 2; -// }; -// virtual ~Wallet() = 0; -// virtual std::string seed(const std::string& seed_offset = "") const = 0; -extern ADDAPI const char* MONERO_Wallet_seed(void* wallet_ptr, const char* seed_offset); -// virtual std::string getSeedLanguage() const = 0; -extern ADDAPI const char* MONERO_Wallet_getSeedLanguage(void* wallet_ptr); -// virtual void setSeedLanguage(const std::string &arg) = 0; -extern ADDAPI void MONERO_Wallet_setSeedLanguage(void* wallet_ptr, const char* arg); -// virtual int status() const = 0; -extern ADDAPI int MONERO_Wallet_status(void* wallet_ptr); -// virtual std::string errorString() const = 0; -extern ADDAPI const char* MONERO_Wallet_errorString(void* wallet_ptr); -// virtual void statusWithErrorString(int& status, std::string& errorString) const = 0; -// virtual bool setPassword(const std::string &password) = 0; -extern ADDAPI bool MONERO_Wallet_setPassword(void* wallet_ptr, const char* password); -// virtual const std::string& getPassword() const = 0; -extern ADDAPI const char* MONERO_Wallet_getPassword(void* wallet_ptr); -// virtual bool setDevicePin(const std::string &pin) { (void)pin; return false; }; -extern ADDAPI bool MONERO_Wallet_setDevicePin(void* wallet_ptr, const char* pin); -// virtual bool setDevicePassphrase(const std::string &passphrase) { (void)passphrase; return false; }; -extern ADDAPI bool MONERO_Wallet_setDevicePassphrase(void* wallet_ptr, const char* passphrase); -// virtual std::string address(uint32_t accountIndex = 0, uint32_t addressIndex = 0) const = 0; -extern ADDAPI const char* MONERO_Wallet_address(void* wallet_ptr, uint64_t accountIndex, uint64_t addressIndex); -// std::string mainAddress() const { return address(0, 0); } -// virtual std::string path() const = 0; -extern ADDAPI const char* MONERO_Wallet_path(void* wallet_ptr); -// virtual NetworkType nettype() const = 0; -extern ADDAPI int MONERO_Wallet_nettype(void* wallet_ptr); -// bool mainnet() const { return nettype() == MAINNET; } -// bool testnet() const { return nettype() == TESTNET; } -// bool stagenet() const { return nettype() == STAGENET; } -// virtual void hardForkInfo(uint8_t &version, uint64_t &earliest_height) const = 0; -// virtual bool useForkRules(uint8_t version, int64_t early_blocks) const = 0; -extern ADDAPI uint8_t MONERO_Wallet_useForkRules(void* wallet_ptr, uint8_t version, int64_t early_blocks); -// virtual std::string integratedAddress(const std::string &payment_id) const = 0; -extern ADDAPI const char* MONERO_Wallet_integratedAddress(void* wallet_ptr, const char* payment_id); -// virtual std::string secretViewKey() const = 0; -extern ADDAPI const char* MONERO_Wallet_secretViewKey(void* wallet_ptr); -// virtual std::string publicViewKey() const = 0; -extern ADDAPI const char* MONERO_Wallet_publicViewKey(void* wallet_ptr); -// virtual std::string secretSpendKey() const = 0; -extern ADDAPI const char* MONERO_Wallet_secretSpendKey(void* wallet_ptr); -// virtual std::string publicSpendKey() const = 0; -extern ADDAPI const char* MONERO_Wallet_publicSpendKey(void* wallet_ptr); -// virtual std::string publicMultisigSignerKey() const = 0; -extern ADDAPI const char* MONERO_Wallet_publicMultisigSignerKey(void* wallet_ptr); -// virtual void stop() = 0; -extern ADDAPI void MONERO_Wallet_stop(void* wallet_ptr); -// virtual bool store(const std::string &path) = 0; -extern ADDAPI bool MONERO_Wallet_store(void* wallet_ptr, const char* path); -// virtual std::string filename() const = 0; -extern ADDAPI const char* MONERO_Wallet_filename(void* wallet_ptr); -// virtual std::string keysFilename() const = 0; -extern ADDAPI const char* MONERO_Wallet_keysFilename(void* wallet_ptr); -// virtual bool init(const std::string &daemon_address, uint64_t upper_transaction_size_limit = 0, const std::string &daemon_username = "", const std::string &daemon_password = "", bool use_ssl = false, bool lightWallet = false, const std::string &proxy_address = "") = 0; -extern ADDAPI bool MONERO_Wallet_init(void* wallet_ptr, const char* daemon_address, uint64_t upper_transaction_size_limit, const char* daemon_username, const char* daemon_password, bool use_ssl, bool lightWallet, const char* proxy_address); -// virtual bool createWatchOnly(const std::string &path, const std::string &password, const std::string &language) const = 0; -extern ADDAPI bool MONERO_Wallet_createWatchOnly(void* wallet_ptr, const char* path, const char* password, const char* language); -// virtual void setRefreshFromBlockHeight(uint64_t refresh_from_block_height) = 0; -extern ADDAPI void MONERO_Wallet_setRefreshFromBlockHeight(void* wallet_ptr, uint64_t refresh_from_block_height); -// virtual uint64_t getRefreshFromBlockHeight() const = 0; -extern ADDAPI uint64_t MONERO_Wallet_getRefreshFromBlockHeight(void* wallet_ptr); -// virtual void setRecoveringFromSeed(bool recoveringFromSeed) = 0; -extern ADDAPI void MONERO_Wallet_setRecoveringFromSeed(void* wallet_ptr, bool recoveringFromSeed); -// virtual void setRecoveringFromDevice(bool recoveringFromDevice) = 0; -extern ADDAPI void MONERO_Wallet_setRecoveringFromDevice(void* wallet_ptr, bool recoveringFromDevice); -// virtual void setSubaddressLookahead(uint32_t major, uint32_t minor) = 0; -extern ADDAPI void MONERO_Wallet_setSubaddressLookahead(void* wallet_ptr, uint32_t major, uint32_t minor); -// virtual bool connectToDaemon() = 0; -extern ADDAPI bool MONERO_Wallet_connectToDaemon(void* wallet_ptr); -// virtual ConnectionStatus connected() const = 0; -extern ADDAPI int MONERO_Wallet_connected(void* wallet_ptr); -// virtual void setTrustedDaemon(bool arg) = 0; -extern ADDAPI void MONERO_Wallet_setTrustedDaemon(void* wallet_ptr, bool arg); -// virtual bool trustedDaemon() const = 0; -extern ADDAPI bool MONERO_Wallet_trustedDaemon(void* wallet_ptr); -// virtual bool setProxy(const std::string &address) = 0; -extern ADDAPI bool MONERO_Wallet_setProxy(void* wallet_ptr, const char* address); -// virtual uint64_t balance(uint32_t accountIndex = 0) const = 0; -extern ADDAPI uint64_t MONERO_Wallet_balance(void* wallet_ptr, uint32_t accountIndex); -// uint64_t balanceAll() const { -// uint64_t result = 0; -// for (uint32_t i = 0; i < numSubaddressAccounts(); ++i) -// result += balance(i); -// return result; -// } -// virtual uint64_t unlockedBalance(uint32_t accountIndex = 0) const = 0; -extern ADDAPI uint64_t MONERO_Wallet_unlockedBalance(void* wallet_ptr, uint32_t accountIndex); -// uint64_t unlockedBalanceAll() const { -// uint64_t result = 0; -// for (uint32_t i = 0; i < numSubaddressAccounts(); ++i) -// result += unlockedBalance(i); -// return result; -// } -// virtual bool watchOnly() const = 0; -// virtual uint64_t viewOnlyBalance(uint32_t accountIndex, const std::vector<std::string> &key_images = {}) const = 0; -extern ADDAPI uint64_t MONERO_Wallet_viewOnlyBalance(void* wallet_ptr, uint32_t accountIndex); -extern ADDAPI bool MONERO_Wallet_watchOnly(void* wallet_ptr); -// virtual bool isDeterministic() const = 0; -extern ADDAPI bool MONERO_Wallet_isDeterministic(void* wallet_ptr); -// virtual uint64_t blockChainHeight() const = 0; -extern ADDAPI uint64_t MONERO_Wallet_blockChainHeight(void* wallet_ptr); -// virtual uint64_t approximateBlockChainHeight() const = 0; -extern ADDAPI uint64_t MONERO_Wallet_approximateBlockChainHeight(void* wallet_ptr); -// virtual uint64_t estimateBlockChainHeight() const = 0; -extern ADDAPI uint64_t MONERO_Wallet_estimateBlockChainHeight(void* wallet_ptr); -// virtual uint64_t daemonBlockChainHeight() const = 0; -extern ADDAPI uint64_t MONERO_Wallet_daemonBlockChainHeight(void* wallet_ptr); -extern ADDAPI uint64_t MONERO_Wallet_daemonBlockChainHeight_cached(void* wallet_ptr); -extern ADDAPI void MONERO_Wallet_daemonBlockChainHeight_runThread(void* wallet_ptr, int seconds); -// virtual uint64_t daemonBlockChainTargetHeight() const = 0; -extern ADDAPI uint64_t MONERO_Wallet_daemonBlockChainTargetHeight(void* wallet_ptr); -// virtual bool synchronized() const = 0; -extern ADDAPI bool MONERO_Wallet_synchronized(void* wallet_ptr); -// static std::string displayAmount(uint64_t amount); -extern ADDAPI const char* MONERO_Wallet_displayAmount(uint64_t amount); -// static uint64_t amountFromString(const std::string &amount); -extern ADDAPI uint64_t MONERO_Wallet_amountFromString(const char* amount); -// static uint64_t amountFromDouble(double amount); -extern ADDAPI uint64_t MONERO_Wallet_amountFromDouble(double amount); -// static std::string genPaymentId(); -extern ADDAPI const char* MONERO_Wallet_genPaymentId(); -// static bool paymentIdValid(const std::string &paiment_id); -extern ADDAPI bool MONERO_Wallet_paymentIdValid(const char* paiment_id); -// static bool addressValid(const std::string &str, NetworkType nettype); -extern ADDAPI bool MONERO_Wallet_addressValid(const char* str, int nettype); -// static bool addressValid(const std::string &str, bool testnet) // deprecated -// { -// return addressValid(str, testnet ? TESTNET : MAINNET); -// } -extern ADDAPI bool MONERO_Wallet_keyValid(const char* secret_key_string, const char* address_string, bool isViewKey, int nettype); -extern ADDAPI const char* MONERO_Wallet_keyValid_error(const char* secret_key_string, const char* address_string, bool isViewKey, int nettype); -// static bool keyValid(const std::string &secret_key_string, const std::string &address_string, bool isViewKey, NetworkType nettype, std::string &error); -// static bool keyValid(const std::string &secret_key_string, const std::string &address_string, bool isViewKey, bool testnet, std::string &error) // deprecated -// { -// return keyValid(secret_key_string, address_string, isViewKey, testnet ? TESTNET : MAINNET, error); -// } -// static std::string paymentIdFromAddress(const std::string &str, NetworkType nettype); -extern ADDAPI const char* MONERO_Wallet_paymentIdFromAddress(const char* strarg, int nettype); -// static std::string paymentIdFromAddress(const std::string &str, bool testnet) // deprecated -// { -// return paymentIdFromAddress(str, testnet ? TESTNET : MAINNET); -// } -// static uint64_t maximumAllowedAmount(); -extern ADDAPI uint64_t MONERO_Wallet_maximumAllowedAmount(); -// static void init(const char *argv0, const char *default_log_base_name) { init(argv0, default_log_base_name, "", true); } -// static void init(const char *argv0, const char *default_log_base_name, const std::string &log_path, bool console); -extern ADDAPI void MONERO_Wallet_init3(void* wallet_ptr, const char* argv0, const char* default_log_base_name, const char* log_path, bool console); -// static void debug(const std::string &category, const std::string &str); -// static void info(const std::string &category, const std::string &str); -// static void warning(const std::string &category, const std::string &str); -// static void error(const std::string &category, const std::string &str); -// virtual void startRefresh() = 0; -// virtual bool getPolyseed(std::string &seed, std::string &passphrase) const = 0; -extern ADDAPI const char* MONERO_Wallet_getPolyseed(void* wallet_ptr, const char* passphrase); -// static bool createPolyseed(std::string &seed_words, std::string &err, const std::string &language = "English"); -extern ADDAPI const char* MONERO_Wallet_createPolyseed(); -extern ADDAPI void MONERO_Wallet_startRefresh(void* wallet_ptr); -// virtual void pauseRefresh() = 0; -extern ADDAPI void MONERO_Wallet_pauseRefresh(void* wallet_ptr); -// virtual bool refresh() = 0; -extern ADDAPI bool MONERO_Wallet_refresh(void* wallet_ptr); -// virtual void refreshAsync() = 0; -extern ADDAPI void MONERO_Wallet_refreshAsync(void* wallet_ptr); -// virtual bool rescanBlockchain() = 0; -extern ADDAPI bool MONERO_Wallet_rescanBlockchain(void* wallet_ptr); -// virtual void rescanBlockchainAsync() = 0; -extern ADDAPI void MONERO_Wallet_rescanBlockchainAsync(void* wallet_ptr); -// virtual void setAutoRefreshInterval(int millis) = 0; -extern ADDAPI void MONERO_Wallet_setAutoRefreshInterval(void* wallet_ptr, int millis); -// virtual int autoRefreshInterval() const = 0; -extern ADDAPI int MONERO_Wallet_autoRefreshInterval(void* wallet_ptr); -// virtual void addSubaddressAccount(const std::string& label) = 0; -extern ADDAPI void MONERO_Wallet_addSubaddressAccount(void* wallet_ptr, const char* label); -// virtual size_t numSubaddressAccounts() const = 0; -extern ADDAPI size_t MONERO_Wallet_numSubaddressAccounts(void* wallet_ptr); -// virtual size_t numSubaddresses(uint32_t accountIndex) const = 0; -extern ADDAPI size_t MONERO_Wallet_numSubaddresses(void* wallet_ptr, uint32_t accountIndex); -// virtual void addSubaddress(uint32_t accountIndex, const std::string& label) = 0; -extern ADDAPI void MONERO_Wallet_addSubaddress(void* wallet_ptr, uint32_t accountIndex, const char* label); -// virtual std::string getSubaddressLabel(uint32_t accountIndex, uint32_t addressIndex) const = 0; -extern ADDAPI const char* MONERO_Wallet_getSubaddressLabel(void* wallet_ptr, uint32_t accountIndex, uint32_t addressIndex); -// virtual void setSubaddressLabel(uint32_t accountIndex, uint32_t addressIndex, const std::string &label) = 0; -extern ADDAPI void MONERO_Wallet_setSubaddressLabel(void* wallet_ptr, uint32_t accountIndex, uint32_t addressIndex, const char* label); -// virtual MultisigState multisig() const = 0; -// virtual std::string getMultisigInfo() const = 0; -extern ADDAPI const char* MONERO_Wallet_getMultisigInfo(void* wallet_ptr); -// virtual std::string makeMultisig(const std::vector<std::string>& info, uint32_t threshold) = 0; -// virtual std::string exchangeMultisigKeys(const std::vector<std::string> &info, const bool force_update_use_with_caution) = 0; -// virtual bool exportMultisigImages(std::string& images) = 0; -// virtual size_t importMultisigImages(const std::vector<std::string>& images) = 0; -// virtual bool hasMultisigPartialKeyImages() const = 0; -// virtual PendingTransaction* restoreMultisigTransaction(const std::string& signData) = 0; -// virtual PendingTransaction * createTransactionMultDest(const std::vector<std::string> &dst_addr, const std::string &payment_id, -// optional<std::vector<uint64_t>> amount, uint32_t mixin_count, -// PendingTransaction::Priority = PendingTransaction::Priority_Low, -// uint32_t subaddr_account = 0, -// std::set<uint32_t> subaddr_indices = {}) = 0; -// virtual PendingTransaction * createTransaction(const std::string &dst_addr, const std::string &payment_id, -// optional<uint64_t> amount, uint32_t mixin_count, -// PendingTransaction::Priority = PendingTransaction::Priority_Low, -// uint32_t subaddr_account = 0, -// std::set<uint32_t> subaddr_indices = {}, -// const std::set<std::string> &preferred_inputs = {) = 0; -extern ADDAPI void* MONERO_Wallet_createTransaction(void* wallet_ptr, const char* dst_addr, const char* payment_id, - uint64_t amount, uint32_t mixin_count, - int pendingTransactionPriority, - uint32_t subaddr_account, - const char* preferredInputs, const char* separator); -// virtual PendingTransaction * createSweepUnmixableTransaction() = 0; -// virtual UnsignedTransaction * loadUnsignedTx(const std::string &unsigned_filename) = 0; -extern ADDAPI void* MONERO_Wallet_loadUnsignedTx(void* wallet_ptr, const char* unsigned_filename); -// virtual bool submitTransaction(const std::string &fileName) = 0; -extern ADDAPI bool MONERO_Wallet_submitTransaction(void* wallet_ptr, const char* fileName); -// virtual void disposeTransaction(PendingTransaction * t) = 0; -// virtual uint64_t estimateTransactionFee(const std::vector<std::pair<std::string, uint64_t>> &destinations, -// PendingTransaction::Priority priority) const = 0; -// virtual bool hasUnknownKeyImages() const = 0; -extern ADDAPI bool MONERO_Wallet_hasUnknownKeyImages(void* wallet_ptr); -// virtual bool exportKeyImages(const std::string &filename, bool all = false) = 0; -extern ADDAPI bool MONERO_Wallet_exportKeyImages(void* wallet_ptr, const char* filename, bool all); -// virtual bool importKeyImages(const std::string &filename) = 0; -extern ADDAPI bool MONERO_Wallet_importKeyImages(void* wallet_ptr, const char* filename); -// virtual bool exportOutputs(const std::string &filename, bool all = false) = 0; -extern ADDAPI bool MONERO_Wallet_exportOutputs(void* wallet_ptr, const char* filename, bool all); -// virtual bool importOutputs(const std::string &filename) = 0; -extern ADDAPI bool MONERO_Wallet_importOutputs(void* wallet_ptr, const char* filename); -// virtual bool scanTransactions(const std::vector<std::string> &txids) = 0; -// virtual bool setupBackgroundSync(const BackgroundSyncType background_sync_type, const std::string &wallet_password, const optional<std::string> &background_cache_password) = 0; -extern ADDAPI bool MONERO_Wallet_setupBackgroundSync(void* wallet_ptr, int background_sync_type, const char* wallet_password, const char* background_cache_password); -// virtual BackgroundSyncType getBackgroundSyncType() const = 0; -extern ADDAPI int MONERO_Wallet_getBackgroundSyncType(void* wallet_ptr); -// virtual bool startBackgroundSync() = 0; -extern ADDAPI bool MONERO_Wallet_startBackgroundSync(void* wallet_ptr); -// virtual bool stopBackgroundSync(const std::string &wallet_password) = 0; -extern ADDAPI bool MONERO_Wallet_stopBackgroundSync(void* wallet_ptr, const char* wallet_password); -// virtual bool isBackgroundSyncing() const = 0; -extern ADDAPI bool MONERO_Wallet_isBackgroundSyncing(void* wallet_ptr); -// virtual bool isBackgroundWallet() const = 0; -extern ADDAPI bool MONERO_Wallet_isBackgroundWallet(void* wallet_ptr); -// virtual TransactionHistory * history() = 0; -extern ADDAPI void* MONERO_Wallet_history(void* wallet_ptr); -// virtual AddressBook * addressBook() = 0; -extern ADDAPI void* MONERO_Wallet_addressBook(void* wallet_ptr); -// virtual Coins * coins() = 0; -extern ADDAPI void* MONERO_Wallet_coins(void* wallet_ptr); -// virtual Subaddress * subaddress() = 0; -extern ADDAPI void* MONERO_Wallet_subaddress(void* wallet_ptr); -// virtual SubaddressAccount * subaddressAccount() = 0; -extern ADDAPI void* MONERO_Wallet_subaddressAccount(void* wallet_ptr); -// virtual void setListener(WalletListener *) = 0; -// virtual uint32_t defaultMixin() const = 0; -extern ADDAPI uint32_t MONERO_Wallet_defaultMixin(void* wallet_ptr); -// virtual void setDefaultMixin(uint32_t arg) = 0; -extern ADDAPI void MONERO_Wallet_setDefaultMixin(void* wallet_ptr, uint32_t arg); -// virtual bool setCacheAttribute(const std::string &key, const std::string &val) = 0; -extern ADDAPI bool MONERO_Wallet_setCacheAttribute(void* wallet_ptr, const char* key, const char* val); -// virtual std::string getCacheAttribute(const std::string &key) const = 0; -extern ADDAPI const char* MONERO_Wallet_getCacheAttribute(void* wallet_ptr, const char* key); -// virtual bool setUserNote(const std::string &txid, const std::string ¬e) = 0; -extern ADDAPI bool MONERO_Wallet_setUserNote(void* wallet_ptr, const char* txid, const char* note); -// 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 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; -// 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_signMessage(void* wallet_ptr, const char* message, const char* address); -// virtual bool verifySignedMessage(const std::string &message, const std::string &addres, const std::string &signature) const = 0; -extern ADDAPI bool MONERO_Wallet_verifySignedMessage(void* wallet_ptr, const char* message, const char* address, const char* signature); -// virtual std::string signMultisigParticipant(const std::string &message) const = 0; -// virtual bool verifyMessageWithPublicKey(const std::string &message, const std::string &publicKey, const std::string &signature) const = 0; -// virtual bool parse_uri(const std::string &uri, std::string &address, std::string &payment_id, uint64_t &amount, std::string &tx_description, std::string &recipient_name, std::vector<std::string> &unknown_parameters, std::string &error) = 0; -// virtual std::string make_uri(const std::string &address, const std::string &payment_id, uint64_t amount, const std::string &tx_description, const std::string &recipient_name, std::string &error) const = 0; -// virtual std::string getDefaultDataDir() const = 0; -// virtual bool rescanSpent() = 0; -extern ADDAPI bool MONERO_Wallet_rescanSpent(void* wallet_ptr); -// virtual void setOffline(bool offline) = 0; -extern ADDAPI void MONERO_Wallet_setOffline(void* wallet_ptr, bool offline); -// virtual bool isOffline() const = 0; -extern ADDAPI bool MONERO_Wallet_isOffline(void* wallet_ptr); -// virtual bool blackballOutputs(const std::vector<std::string> &outputs, bool add) = 0; -// virtual bool blackballOutput(const std::string &amount, const std::string &offset) = 0; -// virtual bool unblackballOutput(const std::string &amount, const std::string &offset) = 0; -// virtual bool getRing(const std::string &key_image, std::vector<uint64_t> &ring) const = 0; -// virtual bool getRings(const std::string &txid, std::vector<std::pair<std::string, std::vector<uint64_t>>> &rings) const = 0; -// virtual bool setRing(const std::string &key_image, const std::vector<uint64_t> &ring, bool relative) = 0; -// virtual void segregatePreForkOutputs(bool segregate) = 0; -extern ADDAPI void MONERO_Wallet_segregatePreForkOutputs(void* wallet_ptr, bool segregate); -// virtual void segregationHeight(uint64_t height) = 0; -extern ADDAPI void MONERO_Wallet_segregationHeight(void* wallet_ptr, uint64_t height); -// virtual void keyReuseMitigation2(bool mitigation) = 0; -extern ADDAPI void MONERO_Wallet_keyReuseMitigation2(void* wallet_ptr, bool mitigation); -// virtual bool lightWalletLogin(bool &isNewWallet) const = 0; -// virtual bool lightWalletImportWalletRequest(std::string &payment_id, uint64_t &fee, bool &new_request, bool &request_fulfilled, std::string &payment_address, std::string &status) = 0; -// virtual bool lockKeysFile() = 0; -extern ADDAPI bool MONERO_Wallet_lockKeysFile(void* wallet_ptr); -// virtual bool unlockKeysFile() = 0; -extern ADDAPI bool MONERO_Wallet_unlockKeysFile(void* wallet_ptr); -// virtual bool isKeysFileLocked() = 0; -extern ADDAPI bool MONERO_Wallet_isKeysFileLocked(void* wallet_ptr); -// virtual Device getDeviceType() const = 0; -extern ADDAPI int MONERO_Wallet_getDeviceType(void* wallet_ptr); -// virtual uint64_t coldKeyImageSync(uint64_t &spent, uint64_t &unspent) = 0; -extern ADDAPI uint64_t MONERO_Wallet_coldKeyImageSync(void* wallet_ptr, uint64_t spent, uint64_t unspent); -// virtual void deviceShowAddress(uint32_t accountIndex, uint32_t addressIndex, const std::string &paymentId) = 0; -extern ADDAPI const char* MONERO_Wallet_deviceShowAddress(void* wallet_ptr, uint32_t accountIndex, uint32_t addressIndex); -// virtual bool reconnectDevice() = 0; -extern ADDAPI const char* MONERO_Wallet_reconnectDevice(void* wallet_ptr); -// virtual uint64_t getBytesReceived() = 0; -extern ADDAPI uint64_t MONERO_Wallet_getBytesReceived(void* wallet_ptr); -// virtual uint64_t getBytesSent() = 0; -extern ADDAPI uint64_t MONERO_Wallet_getBytesSent(void* wallet_ptr); -// }; - -// struct WalletManager -// { -// virtual Wallet * createWallet(const std::string &path, const std::string &password, const std::string &language, NetworkType nettype, uint64_t kdf_rounds = 1) = 0; -extern ADDAPI void* MONERO_WalletManager_createWallet(void* wm_ptr, const char* path, const char* password, const char* language, int networkType); -// Wallet * createWallet(const std::string &path, const std::string &password, const std::string &language, bool testnet = false) // deprecated -// { -// return createWallet(path, password, language, testnet ? TESTNET : MAINNET); -// } -// virtual Wallet * openWallet(const std::string &path, const std::string &password, NetworkType nettype, uint64_t kdf_rounds = 1, WalletListener * listener = nullptr) = 0; -extern ADDAPI void* MONERO_WalletManager_openWallet(void* wm_ptr, const char* path, const char* password, int networkType); -// Wallet * openWallet(const std::string &path, const std::string &password, bool testnet = false) // deprecated -// { -// return openWallet(path, password, testnet ? TESTNET : MAINNET); -// } -// virtual Wallet * recoveryWallet(const std::string &path, const std::string &password, const std::string &mnemonic, -// NetworkType nettype = MAINNET, uint64_t restoreHeight = 0, uint64_t kdf_rounds = 1, -// const std::string &seed_offset = {}) = 0; -extern ADDAPI void* MONERO_WalletManager_recoveryWallet(void* wm_ptr, const char* path, const char* password, const char* mnemonic, int networkType, uint64_t restoreHeight, uint64_t kdfRounds, const char* seedOffset); -// Wallet * recoveryWallet(const std::string &path, const std::string &password, const std::string &mnemonic, -// bool testnet = false, uint64_t restoreHeight = 0) // deprecated -// { -// return recoveryWallet(path, password, mnemonic, testnet ? TESTNET : MAINNET, restoreHeight); -// } -// virtual Wallet * recoveryWallet(const std::string &path, const std::string &mnemonic, NetworkType nettype, uint64_t restoreHeight = 0) = 0; -// Wallet * recoveryWallet(const std::string &path, const std::string &mnemonic, bool testnet = false, uint64_t restoreHeight = 0) // deprecated -// { -// return recoveryWallet(path, mnemonic, testnet ? TESTNET : MAINNET, restoreHeight); -// } -// virtual Wallet * createWalletFromKeys(const std::string &path, -// const std::string &password, -// const std::string &language, -// NetworkType nettype, -// uint64_t restoreHeight, -// const std::string &addressString, -// const std::string &viewKeyString, -// const std::string &spendKeyString = "", -// uint64_t kdf_rounds = 1) = 0; -extern ADDAPI void* MONERO_WalletManager_createWalletFromKeys(void* wm_ptr, const char* path, const char* password, const char* language, int nettype, uint64_t restoreHeight, const char* addressString, const char* viewKeyString, const char* spendKeyString, uint64_t kdf_rounds); -// Wallet * createWalletFromKeys(const std::string &path, -// const std::string &password, -// const std::string &language, -// bool testnet, -// uint64_t restoreHeight, -// const std::string &addressString, -// const std::string &viewKeyString, -// const std::string &spendKeyString = "") // deprecated -// { -// return createWalletFromKeys(path, password, language, testnet ? TESTNET : MAINNET, restoreHeight, addressString, viewKeyString, spendKeyString); -// } -// virtual Wallet * createWalletFromKeys(const std::string &path, -// const std::string &language, -// NetworkType nettype, -// uint64_t restoreHeight, -// const std::string &addressString, -// const std::string &viewKeyString, -// const std::string &spendKeyString = "") = 0; -// Wallet * createWalletFromKeys(const std::string &path, -// const std::string &language, -// bool testnet, -// uint64_t restoreHeight, -// const std::string &addressString, -// const std::string &viewKeyString, -// const std::string &spendKeyString = "") // deprecated -// { -// return createWalletFromKeys(path, language, testnet ? TESTNET : MAINNET, restoreHeight, addressString, viewKeyString, spendKeyString); -// } -// virtual Wallet * createWalletFromDevice(const std::string &path, -// const std::string &password, -// NetworkType nettype, -// const std::string &deviceName, -// uint64_t restoreHeight = 0, -// const std::string &subaddressLookahead = "", -// uint64_t kdf_rounds = 1, -// WalletListener * listener = nullptr) = 0; -// virtual Wallet * createWalletFromPolyseed(const std::string &path, -// const std::string &password, -// NetworkType nettype, -// const std::string &mnemonic, -// const std::string &passphrase = "", -// bool newWallet = true, -// uint64_t restore_height = 0, -// uint64_t kdf_rounds = 1) = 0; -extern ADDAPI void* MONERO_WalletManager_createWalletFromPolyseed(void* wm_ptr, const char* path, const char* password, - int nettype, const char* mnemonic, const char* passphrase, - bool newWallet, uint64_t restore_height, uint64_t kdf_rounds); -// virtual bool closeWallet(Wallet *wallet, bool store = true) = 0; -extern ADDAPI bool MONERO_WalletManager_closeWallet(void* wm_ptr, void* wallet_ptr, bool store); -// virtual bool walletExists(const std::string &path) = 0; -extern ADDAPI bool MONERO_WalletManager_walletExists(void* wm_ptr, const char* path); -// virtual bool verifyWalletPassword(const std::string &keys_file_name, const std::string &password, bool no_spend_key, uint64_t kdf_rounds = 1) const = 0; -extern ADDAPI bool MONERO_WalletManager_verifyWalletPassword(void* wm_ptr, const char* keys_file_name, const char* password, bool no_spend_key, uint64_t kdf_rounds); -// virtual bool queryWalletDevice(Wallet::Device& device_type, const std::string &keys_file_name, const std::string &password, uint64_t kdf_rounds = 1) const = 0; -extern ADDAPI bool MONERO_WalletManager_queryWalletDevice(int device_type, const char* keys_file_name, const char* password, uint64_t kdf_rounds); -// virtual std::vector<std::string> findWallets(const std::string &path) = 0; -extern ADDAPI const char* MONERO_WalletManager_findWallets(void* wm_ptr, const char* path, const char* separator); -// virtual std::string errorString() const = 0; -extern ADDAPI const char* MONERO_WalletManager_errorString(void* wm_ptr); -// virtual void setDaemonAddress(const std::string &address) = 0; -extern ADDAPI void MONERO_WalletManager_setDaemonAddress(void* wm_ptr, const char* address); -// virtual bool connected(uint32_t *version = NULL) = 0; -// virtual uint64_t blockchainHeight() = 0; -extern ADDAPI uint64_t MONERO_WalletManager_blockchainHeight(void* wm_ptr); -// virtual uint64_t blockchainTargetHeight() = 0; -extern ADDAPI uint64_t MONERO_WalletManager_blockchainTargetHeight(void* wm_ptr); -// virtual uint64_t networkDifficulty() = 0; -extern ADDAPI uint64_t MONERO_WalletManager_networkDifficulty(void* wm_ptr); -// virtual double miningHashRate() = 0; -extern ADDAPI double MONERO_WalletManager_miningHashRate(void* wm_ptr); -// virtual uint64_t blockTarget() = 0; -extern ADDAPI uint64_t MONERO_WalletManager_blockTarget(void* wm_ptr); -// virtual bool isMining() = 0; -extern ADDAPI bool MONERO_WalletManager_isMining(void* wm_ptr); -// virtual bool startMining(const std::string &address, uint32_t threads = 1, bool background_mining = false, bool ignore_battery = true) = 0; -extern ADDAPI bool MONERO_WalletManager_startMining(void* wm_ptr, const char* address, uint32_t threads, bool backgroundMining, bool ignoreBattery); -// virtual bool stopMining() = 0; -extern ADDAPI bool MONERO_WalletManager_stopMining(void* wm_ptr, const char* address); -// virtual std::string resolveOpenAlias(const std::string &address, bool &dnssec_valid) const = 0; -extern ADDAPI const char* MONERO_WalletManager_resolveOpenAlias(void* wm_ptr, const char* address, bool dnssec_valid); -// static std::tuple<bool, std::string, std::string, std::string, std::string> checkUpdates( -// const std::string &software, -// std::string subdir, -// const char *buildtag = nullptr, -// const char *current_version = nullptr); -// virtual bool setProxy(const std::string &address) = 0; -extern ADDAPI bool MONERO_WalletManager_setProxy(void* wm_ptr, const char* address); -// }; - -int LogLevel_Silent = -1; -int LogLevel_0 = 0; -int LogLevel_1 = 1; -int LogLevel_2 = 2; -int LogLevel_3 = 3; -int LogLevel_4 = 4; -int LogLevel_Min = -1; -int LogLevel_Max = 4; - -// struct WalletManagerFactory -// { -// enum LogLevel { -// LogLevel_Silent = -1, -// LogLevel_0 = 0, -// LogLevel_1 = 1, -// LogLevel_2 = 2, -// LogLevel_3 = 3, -// LogLevel_4 = 4, -// LogLevel_Min = LogLevel_Silent, -// LogLevel_Max = LogLevel_4 -// }; -// static WalletManager * getWalletManager(); -extern ADDAPI void* MONERO_WalletManagerFactory_getWalletManager(); -// static void setLogLevel(int level); -extern ADDAPI void MONERO_WalletManagerFactory_setLogLevel(int level); -// static void setLogCategories(const std::string &categories); -extern ADDAPI void MONERO_WalletManagerFactory_setLogCategories(const char* categories); -// }; -// } - -extern ADDAPI void MONERO_DEBUG_test0(); -extern ADDAPI bool MONERO_DEBUG_test1(bool x); -extern ADDAPI int MONERO_DEBUG_test2(int x); -extern ADDAPI uint64_t MONERO_DEBUG_test3(uint64_t x); -extern ADDAPI void* MONERO_DEBUG_test4(uint64_t x); -extern ADDAPI const char* MONERO_DEBUG_test5(); -extern ADDAPI const char* MONERO_DEBUG_test5_std(); -extern ADDAPI bool MONERO_DEBUG_isPointerNull(void* wallet_ptr); - -#ifdef __cplusplus -} -#endif
\ No newline at end of file |
