diff options
Diffstat (limited to 'monero_libwallet2_api_c')
| -rw-r--r-- | monero_libwallet2_api_c/monero_libwallet2_api_c.exp | 10 | ||||
| -rw-r--r-- | monero_libwallet2_api_c/src/main/cpp/wallet2_api_c.cpp | 39 | ||||
| -rw-r--r-- | monero_libwallet2_api_c/src/main/cpp/wallet2_api_c.h | 6 |
3 files changed, 53 insertions, 2 deletions
diff --git a/monero_libwallet2_api_c/monero_libwallet2_api_c.exp b/monero_libwallet2_api_c/monero_libwallet2_api_c.exp index 6e47988..829dd4f 100644 --- a/monero_libwallet2_api_c/monero_libwallet2_api_c.exp +++ b/monero_libwallet2_api_c/monero_libwallet2_api_c.exp @@ -278,4 +278,12 @@ _MONERO_cw_WalletListener_height _MONERO_WalletManager_createDeterministicWalletFromSpendKey _MONERO_PendingTransaction_txKey _MONERO_PendingTransaction_hex -_MONERO_free
\ No newline at end of file +_MONERO_free +_MONERO_PendingTransaction_commitUR +_MONERO_UnsignedTransaction_signUR +_MONERO_Wallet_loadUnsignedTxUR +_MONERO_Wallet_submitTransactionUR +_MONERO_Wallet_exportOutputsUR +_MONERO_Wallet_exportKeyImagesUR +_MONERO_Wallet_importKeyImagesUR +_MONERO_Wallet_importOutputsUR
\ No newline at end of file diff --git a/monero_libwallet2_api_c/src/main/cpp/wallet2_api_c.cpp b/monero_libwallet2_api_c/src/main/cpp/wallet2_api_c.cpp index 3049a1a..0111333 100644 --- a/monero_libwallet2_api_c/src/main/cpp/wallet2_api_c.cpp +++ b/monero_libwallet2_api_c/src/main/cpp/wallet2_api_c.cpp @@ -78,6 +78,14 @@ bool MONERO_PendingTransaction_commit(void* pendingTx_ptr, const char* filename, Monero::PendingTransaction *pendingTx = reinterpret_cast<Monero::PendingTransaction*>(pendingTx_ptr); return pendingTx->commit(std::string(filename), overwrite); } +const char* MONERO_PendingTransaction_commitUR(void* pendingTx_ptr, int max_fragment_length) { + Monero::PendingTransaction *pendingTx = reinterpret_cast<Monero::PendingTransaction*>(pendingTx_ptr); + std::string str = pendingTx->commitUR(max_fragment_length); + 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_PendingTransaction_amount(void* pendingTx_ptr) { Monero::PendingTransaction *pendingTx = reinterpret_cast<Monero::PendingTransaction*>(pendingTx_ptr); return pendingTx->amount(); @@ -193,7 +201,14 @@ bool MONERO_UnsignedTransaction_sign(void* unsignedTx_ptr, const char* signedFil Monero::UnsignedTransaction *unsignedTx = reinterpret_cast<Monero::UnsignedTransaction*>(unsignedTx_ptr); return unsignedTx->sign(std::string(signedFileName)); } - +const char* MONERO_UnsignedTransaction_signUR(void* unsignedTx_ptr, int max_fragment_length) { + Monero::UnsignedTransaction *unsignedTx = reinterpret_cast<Monero::UnsignedTransaction*>(unsignedTx_ptr); + std::string str = unsignedTx->signUR(max_fragment_length); + 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; +} // TransactionInfo int MONERO_TransactionInfo_direction(void* txInfo_ptr) { Monero::TransactionInfo *txInfo = reinterpret_cast<Monero::TransactionInfo*>(txInfo_ptr); @@ -1338,10 +1353,19 @@ 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)); } + +void* MONERO_Wallet_loadUnsignedTxUR(void* wallet_ptr, const char* input) { + Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); + return wallet->loadUnsignedTxUR(std::string(input)); +} 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_submitTransactionUR(void* wallet_ptr, const char* input) { + Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); + return wallet->submitTransactionUR(std::string(input)); +} bool MONERO_Wallet_hasUnknownKeyImages(void* wallet_ptr) { Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); return wallet->hasUnknownKeyImages(); @@ -1350,10 +1374,23 @@ bool MONERO_Wallet_exportKeyImages(void* wallet_ptr, const char* filename, bool Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); return wallet->exportKeyImages(std::string(filename), all); } + +const char* MONERO_Wallet_exportKeyImagesUR(void* wallet_ptr, size_t max_fragment_length, bool all) { + Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); + std::string str = wallet->exportKeyImagesUR(max_fragment_length, all); + 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_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_importKeyImagesUR(void* wallet_ptr, const char* input) { + Monero::Wallet *wallet = reinterpret_cast<Monero::Wallet*>(wallet_ptr); + return wallet->importKeyImagesUR(std::string(input)); +} 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); diff --git a/monero_libwallet2_api_c/src/main/cpp/wallet2_api_c.h b/monero_libwallet2_api_c/src/main/cpp/wallet2_api_c.h index d272137..815c13c 100644 --- a/monero_libwallet2_api_c/src/main/cpp/wallet2_api_c.h +++ b/monero_libwallet2_api_c/src/main/cpp/wallet2_api_c.h @@ -77,6 +77,7 @@ extern ADDAPI int MONERO_PendingTransaction_status(void* pendingTx_ptr); 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); +extern ADDAPI const char* MONERO_PendingTransaction_commitUR(void* pendingTx_ptr, int max_fragment_length); // virtual uint64_t amount() const = 0; extern ADDAPI uint64_t MONERO_PendingTransaction_amount(void* pendingTx_ptr); // virtual uint64_t dust() const = 0; @@ -136,6 +137,7 @@ extern ADDAPI uint64_t MONERO_UnsignedTransaction_minMixinCount(void* unsignedTx 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); +extern ADDAPI const char* MONERO_UnsignedTransaction_signUR(void* unsignedTx_ptr, int max_fragment_length); // }; // struct TransactionInfo // { @@ -717,8 +719,10 @@ extern ADDAPI void* MONERO_Wallet_createTransaction(void* wallet_ptr, const char // 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); +extern ADDAPI void* MONERO_Wallet_loadUnsignedUR(void* wallet_ptr, const char* input); // virtual bool submitTransaction(const std::string &fileName) = 0; extern ADDAPI bool MONERO_Wallet_submitTransaction(void* wallet_ptr, const char* fileName); +extern ADDAPI bool MONERO_Wallet_submitTransactionUR(void* wallet_ptr, const char* input); // 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; @@ -726,8 +730,10 @@ extern ADDAPI bool MONERO_Wallet_submitTransaction(void* wallet_ptr, const char* 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); +extern ADDAPI bool MONERO_Wallet_exportKeyImagesUR(void* wallet_ptr, size_t max_fragment_length, bool all) ; // virtual bool importKeyImages(const std::string &filename) = 0; extern ADDAPI bool MONERO_Wallet_importKeyImages(void* wallet_ptr, const char* filename); +extern ADDAPI bool MONERO_Wallet_importKeyImagesUR(void* wallet_ptr, const char* input); // 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); extern ADDAPI const char* MONERO_Wallet_exportOutputsUR(void* wallet_ptr, size_t max_fragment_length, bool all); |
