From 7e49b4ad69e6e66696f5ce38ff4f1bc2ffe169cd Mon Sep 17 00:00:00 2001 From: Czarek Nakamoto Date: Mon, 22 Apr 2024 12:49:17 +0200 Subject: add missing functionality from for cake's polyseed implementation --- .../src/main/cpp/wallet2_api_c.cpp | 28 ++++++++++++++++++++++ .../src/main/cpp/wallet2_api_c.h | 14 +++++++++++ 2 files changed, 42 insertions(+) (limited to 'monero_libwallet2_api_c/src') 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 3347c3f..d44c67c 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 @@ -127,6 +127,18 @@ const char* MONERO_PendingTransaction_signersKeys(void* pendingTx_ptr, const cha return vectorToString(txid, std::string(separator)); } +const char* MONERO_PendingTransaction_hex(void* pendingTx_ptr, const char* separator) { + Monero::PendingTransaction *pendingTx = reinterpret_cast(pendingTx_ptr); + std::vector txid = pendingTx->hex(); + return vectorToString(txid, std::string(separator)); +} + +const char* MONERO_PendingTransaction_txKey(void* pendingTx_ptr, const char* separator) { + Monero::PendingTransaction *pendingTx = reinterpret_cast(pendingTx_ptr); + std::vector txid = pendingTx->txKey(); + return vectorToString(txid, std::string(separator)); +} + // UnsignedTransaction int MONERO_UnsignedTransaction_status(void* unsignedTx_ptr) { @@ -1553,6 +1565,22 @@ void* MONERO_WalletManager_createWalletFromKeys(void* wm_ptr, const char* path, return reinterpret_cast(wallet); } +void* MONERO_WalletManager_createDeterministicWalletFromSpendKey(void* wm_ptr, const char* path, const char* password, + const char* language, int nettype, uint64_t restoreHeight, + const char* spendKeyString, uint64_t kdf_rounds) { + Monero::WalletManager *wm = reinterpret_cast(wm_ptr); + Monero::Wallet *wallet = wm->createDeterministicWalletFromSpendKey( + std::string(path), + std::string(password), + std::string(language), + static_cast(nettype), + restoreHeight, + std::string(spendKeyString), + kdf_rounds + ); + return reinterpret_cast(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) { 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 0661373..9f58778 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 @@ -97,6 +97,10 @@ extern ADDAPI const char* MONERO_PendingTransaction_multisigSignData(void* pendi extern ADDAPI void MONERO_PendingTransaction_signMultisigTx(void* pendingTx_ptr); // virtual std::vector signersKeys() const = 0; extern ADDAPI const char* MONERO_PendingTransaction_signersKeys(void* pendingTx_ptr, const char* separator); +// virtual std::vector hex() const = 0; +extern ADDAPI const char* MONERO_PendingTransaction_hex(void* pendingTx_ptr, const char* separator); +// virtual std::vector txKey() const = 0; +extern ADDAPI const char* MONERO_PendingTransaction_txHex(void* pendingTx_ptr, const char* separator); // }; // struct UnsignedTransaction @@ -881,6 +885,16 @@ extern ADDAPI void* MONERO_WalletManager_createWalletFromKeys(void* wm_ptr, cons // { // return createWalletFromKeys(path, language, testnet ? TESTNET : MAINNET, restoreHeight, addressString, viewKeyString, spendKeyString); // } +// virtual Wallet * createDeterministicWalletFromSpendKey(const std::string &path, +// const std::string &password, +// const std::string &language, +// NetworkType nettype, +// uint64_t restoreHeight, +// const std::string &spendKeyString, +// uint64_t kdf_rounds = 1) = 0; +extern ADDAPI void* MONERO_WalletManager_createDeterministicWalletFromSpendKey(void* wm_ptr, const char* path, const char* password, + const char* language, int nettype, uint64_t restoreHeight, + const char* spendKeyString, uint64_t kdf_rounds); // virtual Wallet * createWalletFromDevice(const std::string &path, // const std::string &password, // NetworkType nettype, -- cgit v1.2.3