summaryrefslogtreecommitdiff
path: root/libbridge/src/main/cpp/wallet2_api_c.cpp
diff options
context:
space:
mode:
authorCzarek Nakamoto <cyjan@mrcyjanek.net>2024-01-01 14:01:31 +0100
committerCzarek Nakamoto <cyjan@mrcyjanek.net>2024-01-01 14:01:31 +0100
commita1e087b61726e0a82f4f1250f15ff82f7edf56f8 (patch)
tree06ac45bb6f44a39ee29b6403c75855e819f59978 /libbridge/src/main/cpp/wallet2_api_c.cpp
parent06f0de164e801cc52bc593a298659196d9398369 (diff)
- helpers.cpp:
- functions for dealing with: - std::vector<std::string> - std::vector<uint32_t> - std::vector<std::set<uint32_t>> - wallet2_api_c.h: - PendingTransaction - txid - subaddrAccount - subaddrIndices - multisigSignData - signMultisigTx - signersKeys
Diffstat (limited to 'libbridge/src/main/cpp/wallet2_api_c.cpp')
-rw-r--r--libbridge/src/main/cpp/wallet2_api_c.cpp34
1 files changed, 33 insertions, 1 deletions
diff --git a/libbridge/src/main/cpp/wallet2_api_c.cpp b/libbridge/src/main/cpp/wallet2_api_c.cpp
index b756342..9e8d9fa 100644
--- a/libbridge/src/main/cpp/wallet2_api_c.cpp
+++ b/libbridge/src/main/cpp/wallet2_api_c.cpp
@@ -2,6 +2,7 @@
#include "wallet2_api_c.h"
#include "wallet2_api.h"
#include <unistd.h>
+#include "helpers.hpp"
#ifdef __cplusplus
extern "C"
@@ -55,11 +56,42 @@ 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));
+}
// TransactionInfo
int MONERO_TransactionInfo_direction(void* txInfo_ptr) {
Monero::TransactionInfo *txInfo = reinterpret_cast<Monero::TransactionInfo*>(txInfo_ptr);