add missing functionality from for cake's polyseed implementation

This commit is contained in:
Czarek Nakamoto
2024-04-22 12:49:17 +02:00
parent 90658235f6
commit 7e49b4ad69
14 changed files with 316 additions and 18 deletions

View File

@@ -81,6 +81,18 @@ const char* WOWNERO_PendingTransaction_signersKeys(void* pendingTx_ptr, const ch
return vectorToString(txid, std::string(separator));
}
const char* WOWNERO_PendingTransaction_hex(void* pendingTx_ptr, const char* separator) {
Monero::PendingTransaction *pendingTx = reinterpret_cast<Monero::PendingTransaction*>(pendingTx_ptr);
std::vector<std::string> txid = pendingTx->hex();
return vectorToString(txid, std::string(separator));
}
const char* WOWNERO_PendingTransaction_txKey(void* pendingTx_ptr, const char* separator) {
Monero::PendingTransaction *pendingTx = reinterpret_cast<Monero::PendingTransaction*>(pendingTx_ptr);
std::vector<std::string> txid = pendingTx->txKey();
return vectorToString(txid, std::string(separator));
}
// UnsignedTransaction
int WOWNERO_UnsignedTransaction_status(void* unsignedTx_ptr) {
@@ -1478,6 +1490,22 @@ void* WOWNERO_WalletManager_createWalletFromKeys(void* wm_ptr, const char* path,
return reinterpret_cast<void*>(wallet);
}
void* WOWNERO_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<Monero::WalletManager*>(wm_ptr);
Monero::Wallet *wallet = wm->createDeterministicWalletFromSpendKey(
std::string(path),
std::string(password),
std::string(language),
static_cast<Monero::NetworkType>(nettype),
restoreHeight,
std::string(spendKeyString),
kdf_rounds
);
return reinterpret_cast<void*>(wallet);
}
void* WOWNERO_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) {

View File

@@ -97,6 +97,10 @@ extern ADDAPI const char* WOWNERO_PendingTransaction_multisigSignData(void* pend
extern ADDAPI void WOWNERO_PendingTransaction_signMultisigTx(void* pendingTx_ptr);
// virtual std::vector<std::string> signersKeys() const = 0;
extern ADDAPI const char* WOWNERO_PendingTransaction_signersKeys(void* pendingTx_ptr, const char* separator);
// virtual std::vector<std::string> hex() const = 0;
extern ADDAPI const char* WOWNERO_PendingTransaction_hex(void* pendingTx_ptr, const char* separator);
// virtual std::vector<std::string> txKey() const = 0;
extern ADDAPI const char* WOWNERO_PendingTransaction_txHex(void* pendingTx_ptr, const char* separator);
// };
// struct UnsignedTransaction
@@ -876,6 +880,9 @@ extern ADDAPI void* WOWNERO_WalletManager_createWalletFromKeys(void* wm_ptr, con
// {
// return createWalletFromKeys(path, language, testnet ? TESTNET : MAINNET, restoreHeight, addressString, viewKeyString, spendKeyString);
// }
extern ADDAPI void* WOWNERO_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,