wip ur support

This commit is contained in:
Czarek Nakamoto
2024-05-16 18:26:32 +02:00
parent 1474a8c5de
commit e2e752c365
4 changed files with 892 additions and 2 deletions

View File

@@ -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);

View File

@@ -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);