Monero v0.18.3.4 (#38)

* updated monero dependency
* update patches for v0.18.3.4
* update generate checksum to include version of submodule as well
This commit is contained in:
cyan
2024-08-26 06:57:16 +02:00
committed by GitHub
parent 9c5459c51e
commit d7a38301ec
24 changed files with 316 additions and 362 deletions
+1 -1
View File
@@ -31,7 +31,7 @@ fi
set -e set -e
cd $repo cd $repo
git am -3 ../patches/$repo/*.patch git am -3 --whitespace=fix --reject ../patches/$repo/*.patch
if [[ "$repo" == "wownero" ]]; if [[ "$repo" == "wownero" ]];
then then
pushd external/randomwow pushd external/randomwow
+2 -3
View File
@@ -3,12 +3,11 @@ cd "$(realpath $(dirname $0))"
for coin in monero wownero; for coin in monero wownero;
do do
submodule_hash=$(git ls-tree HEAD ${coin} | xargs | awk '{ print $3 }')
COIN=$(echo "$coin" | tr a-z A-Z) COIN=$(echo "$coin" | tr a-z A-Z)
COIN_wallet2_api_c_h_sha256=$(sha256sum ${coin}_libwallet2_api_c/src/main/cpp/wallet2_api_c.h | xargs | awk '{ print $1 }') COIN_wallet2_api_c_h_sha256=$(sha256sum ${coin}_libwallet2_api_c/src/main/cpp/wallet2_api_c.h | xargs | awk '{ print $1 }')
COIN_wallet2_api_c_cpp_sha256=$(sha256sum ${coin}_libwallet2_api_c/src/main/cpp/wallet2_api_c.cpp | xargs | awk '{ print $1 }') COIN_wallet2_api_c_cpp_sha256=$(sha256sum ${coin}_libwallet2_api_c/src/main/cpp/wallet2_api_c.cpp | xargs | awk '{ print $1 }')-${submodule_hash}
COIN_wallet2_api_c_exp_sha256=$(sha256sum ${coin}_libwallet2_api_c/${coin}_libwallet2_api_c.exp | xargs | awk '{ print $1 }') COIN_wallet2_api_c_exp_sha256=$(sha256sum ${coin}_libwallet2_api_c/${coin}_libwallet2_api_c.exp | xargs | awk '{ print $1 }')
COIN_libwallet2_api_c_version=$(git log --exclude=${coin}_checksum.h --oneline -- ${coin}_libwallet2_api_c | wc -l)
COIN_libwallet2_api_c_date=$(git log --exclude=${coin}_checksum.h -1 --format=%ai -- ${coin}_libwallet2_api_c)
cat > ${coin}_libwallet2_api_c/src/main/cpp/${coin}_checksum.h << EOF cat > ${coin}_libwallet2_api_c/src/main/cpp/${coin}_checksum.h << EOF
#ifndef MONEROC_CHECKSUMS #ifndef MONEROC_CHECKSUMS
@@ -1,4 +1,4 @@
// ignore_for_file: constant_identifier_names // ignore_for_file: constant_identifier_names
const String wallet2_api_c_h_sha256 = "e8db0ef0324a153f5e3ecca4c0db23c54f4576e84988f04bd4f11c1142f9d7ad"; const String wallet2_api_c_h_sha256 = "e8db0ef0324a153f5e3ecca4c0db23c54f4576e84988f04bd4f11c1142f9d7ad";
const String wallet2_api_c_cpp_sha256 = "d1842cded0040c16b8886878681c8938005f69ec1378fa9be68a430311cc3666"; const String wallet2_api_c_cpp_sha256 = "d1842cded0040c16b8886878681c8938005f69ec1378fa9be68a430311cc3666-b089f9ee69924882c5d14dd1a6991deb05d9d1cd";
const String wallet2_api_c_exp_sha256 = "c8913ac41068f67b57c9b0a3c7dd8973e3c1273b66c2ff0aadb0003931da748c"; const String wallet2_api_c_exp_sha256 = "c8913ac41068f67b57c9b0a3c7dd8973e3c1273b66c2ff0aadb0003931da748c";
@@ -1,4 +1,4 @@
// ignore_for_file: constant_identifier_names // ignore_for_file: constant_identifier_names
const String wallet2_api_c_h_sha256 = "8a8d386dd5d996c89a0586c55b295ef95ca584bf1ffa26255152b291910a0a77"; const String wallet2_api_c_h_sha256 = "8a8d386dd5d996c89a0586c55b295ef95ca584bf1ffa26255152b291910a0a77";
const String wallet2_api_c_cpp_sha256 = "ed400bd9c4709383ffd42a9fbe68be37a2a47a42f92eacaf3a2dbd248c422739"; const String wallet2_api_c_cpp_sha256 = "ed400bd9c4709383ffd42a9fbe68be37a2a47a42f92eacaf3a2dbd248c422739-e25963cbc11ca0a0fe5eb34b9bd7c72e4f51b795";
const String wallet2_api_c_exp_sha256 = "3673e40e1a7115552276d1d541f6e4d5a0fef47c40fff7b988f49923af84c8a4"; const String wallet2_api_c_exp_sha256 = "3673e40e1a7115552276d1d541f6e4d5a0fef47c40fff7b988f49923af84c8a4";
+1 -1
Submodule monero updated: 81d4db08eb...b089f9ee69
@@ -1,6 +1,6 @@
#ifndef MONEROC_CHECKSUMS #ifndef MONEROC_CHECKSUMS
#define MONEROC_CHECKSUMS #define MONEROC_CHECKSUMS
const char * MONERO_wallet2_api_c_h_sha256 = "e8db0ef0324a153f5e3ecca4c0db23c54f4576e84988f04bd4f11c1142f9d7ad"; const char * MONERO_wallet2_api_c_h_sha256 = "e8db0ef0324a153f5e3ecca4c0db23c54f4576e84988f04bd4f11c1142f9d7ad";
const char * MONERO_wallet2_api_c_cpp_sha256 = "d1842cded0040c16b8886878681c8938005f69ec1378fa9be68a430311cc3666"; const char * MONERO_wallet2_api_c_cpp_sha256 = "d1842cded0040c16b8886878681c8938005f69ec1378fa9be68a430311cc3666-b089f9ee69924882c5d14dd1a6991deb05d9d1cd";
const char * MONERO_wallet2_api_c_exp_sha256 = "c8913ac41068f67b57c9b0a3c7dd8973e3c1273b66c2ff0aadb0003931da748c"; const char * MONERO_wallet2_api_c_exp_sha256 = "c8913ac41068f67b57c9b0a3c7dd8973e3c1273b66c2ff0aadb0003931da748c";
#endif #endif
+22 -56
View File
@@ -1,18 +1,15 @@
From b9fac308d903e9dd79b95d6db73c37807e1219b7 Mon Sep 17 00:00:00 2001 From 8324040dfb89bd90b414ea685b2aa758a461fbc4 Mon Sep 17 00:00:00 2001
From: tobtoht <tob@featherwallet.org> From: tobtoht <tob@featherwallet.org>
Date: Tue, 12 Mar 2024 09:42:37 +0100 Date: Tue, 12 Mar 2024 09:42:37 +0100
Subject: [PATCH 01/10] polyseed Subject: [PATCH 01/16] polyseed
Co-authored-by: Czarek Nakamoto <cyjan@mrcyjanek.net> Co-authored-by: Czarek Nakamoto <cyjan@mrcyjanek.net>
--- ---
.github/workflows/build.yml | 4 +-
.gitmodules | 6 + .gitmodules | 6 +
CMakeLists.txt | 4 +- CMakeLists.txt | 4 +-
contrib/epee/include/wipeable_string.h | 7 + contrib/epee/include/wipeable_string.h | 7 +
contrib/epee/src/wipeable_string.cpp | 10 ++ contrib/epee/src/wipeable_string.cpp | 10 ++
external/CMakeLists.txt | 2 + external/CMakeLists.txt | 2 +
external/polyseed | 1 +
external/utf8proc | 1 +
src/CMakeLists.txt | 1 + src/CMakeLists.txt | 1 +
src/cryptonote_basic/CMakeLists.txt | 1 + src/cryptonote_basic/CMakeLists.txt | 1 +
src/cryptonote_basic/account.cpp | 23 +++- src/cryptonote_basic/account.cpp | 23 +++-
@@ -30,30 +27,13 @@ Co-authored-by: Czarek Nakamoto <cyjan@mrcyjanek.net>
src/wallet/api/wallet_manager.h | 10 ++ src/wallet/api/wallet_manager.h | 10 ++
src/wallet/wallet2.cpp | 102 ++++++++++++-- src/wallet/wallet2.cpp | 102 ++++++++++++--
src/wallet/wallet2.h | 30 +++- src/wallet/wallet2.h | 30 +++-
25 files changed, 809 insertions(+), 21 deletions(-) 22 files changed, 805 insertions(+), 19 deletions(-)
create mode 160000 external/polyseed
create mode 160000 external/utf8proc
create mode 100644 src/polyseed/CMakeLists.txt create mode 100644 src/polyseed/CMakeLists.txt
create mode 100644 src/polyseed/pbkdf2.c create mode 100644 src/polyseed/pbkdf2.c
create mode 100644 src/polyseed/pbkdf2.h create mode 100644 src/polyseed/pbkdf2.h
create mode 100644 src/polyseed/polyseed.cpp create mode 100644 src/polyseed/polyseed.cpp
create mode 100644 src/polyseed/polyseed.hpp create mode 100644 src/polyseed/polyseed.hpp
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 4c1e381c0..70bea03b3 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -124,8 +124,8 @@ jobs:
- name: build
run: |
${{env.CCACHE_SETTINGS}}
- cmake .
- make wallet_api -j3
+ cmake -S . -B build
+ cmake --build build wallet_api -j3
test-ubuntu:
needs: build-ubuntu
diff --git a/.gitmodules b/.gitmodules diff --git a/.gitmodules b/.gitmodules
index 721cce3b4..73a23fb35 100644 index 721cce3b4..73a23fb35 100644
--- a/.gitmodules --- a/.gitmodules
@@ -148,20 +128,6 @@ index 5b7f69a56..1b9761d70 100644
+add_subdirectory(polyseed EXCLUDE_FROM_ALL) +add_subdirectory(polyseed EXCLUDE_FROM_ALL)
+add_subdirectory(utf8proc EXCLUDE_FROM_ALL) +add_subdirectory(utf8proc EXCLUDE_FROM_ALL)
\ No newline at end of file \ No newline at end of file
diff --git a/external/polyseed b/external/polyseed
new file mode 160000
index 000000000..9d4f1a032
--- /dev/null
+++ b/external/polyseed
@@ -0,0 +1 @@
+Subproject commit 9d4f1a032585656e1a642ee70cdf929001badba6
diff --git a/external/utf8proc b/external/utf8proc
new file mode 160000
index 000000000..1cb28a66c
--- /dev/null
+++ b/external/utf8proc
@@ -0,0 +1 @@
+Subproject commit 1cb28a66ca79a0845e99433fd1056257456cef8b
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 3335d3c21..06b708cf0 100644 index 3335d3c21..06b708cf0 100644
--- a/src/CMakeLists.txt --- a/src/CMakeLists.txt
@@ -468,7 +434,7 @@ index 000000000..f6253b9d7
\ No newline at end of file \ No newline at end of file
diff --git a/src/polyseed/polyseed.cpp b/src/polyseed/polyseed.cpp diff --git a/src/polyseed/polyseed.cpp b/src/polyseed/polyseed.cpp
new file mode 100644 new file mode 100644
index 000000000..0a8852777 index 000000000..231a48a94
--- /dev/null --- /dev/null
+++ b/src/polyseed/polyseed.cpp +++ b/src/polyseed/polyseed.cpp
@@ -0,0 +1,182 @@ @@ -0,0 +1,182 @@
@@ -520,7 +486,7 @@ index 000000000..0a8852777
+ if (result < 0 || result > (POLYSEED_STR_SIZE - 1)) { + if (result < 0 || result > (POLYSEED_STR_SIZE - 1)) {
+ throw std::runtime_error("Unicode normalization failed"); + throw std::runtime_error("Unicode normalization failed");
+ } + }
+ +
+ result = utf8proc_reencode(buffer, result, options); + result = utf8proc_reencode(buffer, result, options);
+ if (result < 0 || result > POLYSEED_STR_SIZE) { + if (result < 0 || result > POLYSEED_STR_SIZE) {
+ throw std::runtime_error("Unicode normalization failed"); + throw std::runtime_error("Unicode normalization failed");
@@ -829,7 +795,7 @@ index 000000000..2c8c777a7
+#endif //POLYSEED_HPP +#endif //POLYSEED_HPP
\ No newline at end of file \ No newline at end of file
diff --git a/src/wallet/api/wallet.cpp b/src/wallet/api/wallet.cpp diff --git a/src/wallet/api/wallet.cpp b/src/wallet/api/wallet.cpp
index 8d7364cba..472f05016 100644 index fc4f89128..d96ea97ea 100644
--- a/src/wallet/api/wallet.cpp --- a/src/wallet/api/wallet.cpp
+++ b/src/wallet/api/wallet.cpp +++ b/src/wallet/api/wallet.cpp
@@ -690,6 +690,28 @@ bool WalletImpl::recoverFromDevice(const std::string &path, const std::string &p @@ -690,6 +690,28 @@ bool WalletImpl::recoverFromDevice(const std::string &path, const std::string &p
@@ -876,7 +842,7 @@ index 8d7364cba..472f05016 100644
+ } + }
+ +
+ bool result = m_wallet->get_polyseed(seed_words_epee, passphrase_epee); + bool result = m_wallet->get_polyseed(seed_words_epee, passphrase_epee);
+ +
+ seed_words.assign(seed_words_epee.data(), seed_words_epee.size()); + seed_words.assign(seed_words_epee.data(), seed_words_epee.size());
+ passphrase.assign(passphrase_epee.data(), passphrase_epee.size()); + passphrase.assign(passphrase_epee.data(), passphrase_epee.size());
+ +
@@ -898,7 +864,7 @@ index 8d7364cba..472f05016 100644
+bool Wallet::createPolyseed(std::string &seed_words, std::string &err, const std::string &language) +bool Wallet::createPolyseed(std::string &seed_words, std::string &err, const std::string &language)
+{ +{
+ epee::wipeable_string seed_words_epee(seed_words.c_str(), seed_words.size()); + epee::wipeable_string seed_words_epee(seed_words.c_str(), seed_words.size());
+ +
+ try { + try {
+ polyseed::data polyseed(POLYSEED_COIN); + polyseed::data polyseed(POLYSEED_COIN);
+ polyseed.create(0); + polyseed.create(0);
@@ -1026,7 +992,7 @@ index a223e1df9..28fcd36c9 100644
bool walletExists(const std::string &path) override; bool walletExists(const std::string &path) override;
bool verifyWalletPassword(const std::string &keys_file_name, const std::string &password, bool no_spend_key, uint64_t kdf_rounds = 1) const override; bool verifyWalletPassword(const std::string &keys_file_name, const std::string &password, bool no_spend_key, uint64_t kdf_rounds = 1) const override;
diff --git a/src/wallet/wallet2.cpp b/src/wallet/wallet2.cpp diff --git a/src/wallet/wallet2.cpp b/src/wallet/wallet2.cpp
index f34b10988..e4e02c782 100644 index 64f486e71..9e95f44d6 100644
--- a/src/wallet/wallet2.cpp --- a/src/wallet/wallet2.cpp
+++ b/src/wallet/wallet2.cpp +++ b/src/wallet/wallet2.cpp
@@ -92,6 +92,7 @@ using namespace epee; @@ -92,6 +92,7 @@ using namespace epee;
@@ -1074,7 +1040,7 @@ index f34b10988..e4e02c782 100644
return true; return true;
} }
//---------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------
@@ -4629,6 +4646,9 @@ boost::optional<wallet2::keys_file_data> wallet2::get_keys_file_data(const epee: @@ -4630,6 +4647,9 @@ boost::optional<wallet2::keys_file_data> wallet2::get_keys_file_data(const epee:
value2.SetInt(m_enable_multisig ? 1 : 0); value2.SetInt(m_enable_multisig ? 1 : 0);
json.AddMember("enable_multisig", value2, json.GetAllocator()); json.AddMember("enable_multisig", value2, json.GetAllocator());
@@ -1084,7 +1050,7 @@ index f34b10988..e4e02c782 100644
// Serialize the JSON object // Serialize the JSON object
rapidjson::StringBuffer buffer; rapidjson::StringBuffer buffer;
rapidjson::Writer<rapidjson::StringBuffer> writer(buffer); rapidjson::Writer<rapidjson::StringBuffer> writer(buffer);
@@ -4776,6 +4796,7 @@ bool wallet2::load_keys_buf(const std::string& keys_buf, const epee::wipeable_st @@ -4777,6 +4797,7 @@ bool wallet2::load_keys_buf(const std::string& keys_buf, const epee::wipeable_st
m_credits_target = 0; m_credits_target = 0;
m_enable_multisig = false; m_enable_multisig = false;
m_allow_mismatched_daemon_version = false; m_allow_mismatched_daemon_version = false;
@@ -1092,7 +1058,7 @@ index f34b10988..e4e02c782 100644
} }
else if(json.IsObject()) else if(json.IsObject())
{ {
@@ -5012,6 +5033,8 @@ bool wallet2::load_keys_buf(const std::string& keys_buf, const epee::wipeable_st @@ -5013,6 +5034,8 @@ bool wallet2::load_keys_buf(const std::string& keys_buf, const epee::wipeable_st
m_credits_target = field_credits_target; m_credits_target = field_credits_target;
GET_FIELD_FROM_JSON_RETURN_ON_ERROR(json, enable_multisig, int, Int, false, false); GET_FIELD_FROM_JSON_RETURN_ON_ERROR(json, enable_multisig, int, Int, false, false);
m_enable_multisig = field_enable_multisig; m_enable_multisig = field_enable_multisig;
@@ -1101,7 +1067,7 @@ index f34b10988..e4e02c782 100644
} }
else else
{ {
@@ -5284,6 +5307,48 @@ void wallet2::init_type(hw::device::device_type device_type) @@ -5285,6 +5308,48 @@ void wallet2::init_type(hw::device::device_type device_type)
m_key_device_type = device_type; m_key_device_type = device_type;
} }
@@ -1150,7 +1116,7 @@ index f34b10988..e4e02c782 100644
/*! /*!
* \brief Generates a wallet or restores one. Assumes the multisig setup * \brief Generates a wallet or restores one. Assumes the multisig setup
* has already completed for the provided multisig info. * has already completed for the provided multisig info.
@@ -5411,7 +5476,7 @@ crypto::secret_key wallet2::generate(const std::string& wallet_, const epee::wip @@ -5412,7 +5477,7 @@ crypto::secret_key wallet2::generate(const std::string& wallet_, const epee::wip
return retval; return retval;
} }
@@ -1159,7 +1125,7 @@ index f34b10988..e4e02c782 100644
{ {
// -1 month for fluctuations in block time and machine date/time setup. // -1 month for fluctuations in block time and machine date/time setup.
// avg seconds per block // avg seconds per block
@@ -5435,7 +5500,7 @@ crypto::secret_key wallet2::generate(const std::string& wallet_, const epee::wip @@ -5436,7 +5501,7 @@ crypto::secret_key wallet2::generate(const std::string& wallet_, const epee::wip
// the daemon is currently syncing. // the daemon is currently syncing.
// If we use the approximate height we subtract one month as // If we use the approximate height we subtract one month as
// a safety margin. // a safety margin.
@@ -1168,7 +1134,7 @@ index f34b10988..e4e02c782 100644
uint64_t target_height = get_daemon_blockchain_target_height(err); uint64_t target_height = get_daemon_blockchain_target_height(err);
if (err.empty()) { if (err.empty()) {
if (target_height < height) if (target_height < height)
@@ -13135,7 +13200,7 @@ uint64_t wallet2::get_daemon_blockchain_target_height(string &err) @@ -13133,7 +13198,7 @@ uint64_t wallet2::get_daemon_blockchain_target_height(string &err)
return target_height; return target_height;
} }
@@ -1177,16 +1143,16 @@ index f34b10988..e4e02c782 100644
{ {
// time of v2 fork // time of v2 fork
const time_t fork_time = m_nettype == TESTNET ? 1448285909 : m_nettype == STAGENET ? 1520937818 : 1458748658; const time_t fork_time = m_nettype == TESTNET ? 1448285909 : m_nettype == STAGENET ? 1520937818 : 1458748658;
@@ -13144,7 +13209,7 @@ uint64_t wallet2::get_approximate_blockchain_height() const @@ -13142,7 +13207,7 @@ uint64_t wallet2::get_approximate_blockchain_height() const
// avg seconds per block // avg seconds per block
const int seconds_per_block = DIFFICULTY_TARGET_V2; const int seconds_per_block = DIFFICULTY_TARGET_V2;
// Calculated blockchain height // Calculated blockchain height
- uint64_t approx_blockchain_height = fork_block + (time(NULL) - fork_time)/seconds_per_block; - uint64_t approx_blockchain_height = fork_block + (time(NULL) - fork_time)/seconds_per_block;
+ uint64_t approx_blockchain_height = fork_block + ((t > 0 ? t : time(NULL)) - fork_time)/seconds_per_block; + uint64_t approx_blockchain_height = fork_block + ((t > 0 ? t : time(NULL)) - fork_time)/seconds_per_block;
// testnet and stagenet got some huge rollbacks, so the estimation is way off // testnet and stagenet got some huge rollbacks, so the estimation is way off
static const uint64_t approximate_rolled_back_blocks = m_nettype == TESTNET ? 342100 : 30000; static const uint64_t approximate_rolled_back_blocks = m_nettype == TESTNET ? 342100 : m_nettype == STAGENET ? 60000 : 30000;
if ((m_nettype == TESTNET || m_nettype == STAGENET) && approx_blockchain_height > approximate_rolled_back_blocks) if ((m_nettype == TESTNET || m_nettype == STAGENET) && approx_blockchain_height > approximate_rolled_back_blocks)
@@ -14862,15 +14927,6 @@ bool wallet2::parse_uri(const std::string &uri, std::string &address, std::strin @@ -14860,15 +14925,6 @@ bool wallet2::parse_uri(const std::string &uri, std::string &address, std::strin
//---------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------
uint64_t wallet2::get_blockchain_height_by_date(uint16_t year, uint8_t month, uint8_t day) uint64_t wallet2::get_blockchain_height_by_date(uint16_t year, uint8_t month, uint8_t day)
{ {
@@ -1202,7 +1168,7 @@ index f34b10988..e4e02c782 100644
std::tm date = { 0, 0, 0, 0, 0, 0, 0, 0 }; std::tm date = { 0, 0, 0, 0, 0, 0, 0, 0 };
date.tm_year = year - 1900; date.tm_year = year - 1900;
date.tm_mon = month - 1; date.tm_mon = month - 1;
@@ -14879,7 +14935,23 @@ uint64_t wallet2::get_blockchain_height_by_date(uint16_t year, uint8_t month, ui @@ -14877,7 +14933,23 @@ uint64_t wallet2::get_blockchain_height_by_date(uint16_t year, uint8_t month, ui
{ {
throw std::runtime_error("month or day out of range"); throw std::runtime_error("month or day out of range");
} }
@@ -1227,7 +1193,7 @@ index f34b10988..e4e02c782 100644
uint64_t height_min = 0; uint64_t height_min = 0;
uint64_t height_max = get_daemon_blockchain_height(err) - 1; uint64_t height_max = get_daemon_blockchain_height(err) - 1;
diff --git a/src/wallet/wallet2.h b/src/wallet/wallet2.h diff --git a/src/wallet/wallet2.h b/src/wallet/wallet2.h
index 3144a8fd3..b540eff6b 100644 index c38d77675..91ec72e0f 100644
--- a/src/wallet/wallet2.h --- a/src/wallet/wallet2.h
+++ b/src/wallet/wallet2.h +++ b/src/wallet/wallet2.h
@@ -72,6 +72,7 @@ @@ -72,6 +72,7 @@
@@ -1303,5 +1269,5 @@ index 3144a8fd3..b540eff6b 100644
uint32_t m_multisig_threshold; uint32_t m_multisig_threshold;
std::vector<crypto::public_key> m_multisig_signers; std::vector<crypto::public_key> m_multisig_signers;
-- --
2.44.0 2.39.2
File diff suppressed because it is too large Load Diff
+8 -8
View File
@@ -1,7 +1,7 @@
From 5c1727c760557c0fd83ba1e4e66be2d10c58e890 Mon Sep 17 00:00:00 2001 From 5385d085c547b675adfccb64314d1c6f7bf2d508 Mon Sep 17 00:00:00 2001
From: tobtoht <tob@featherwallet.org> From: tobtoht <tob@featherwallet.org>
Date: Tue, 12 Mar 2024 10:09:50 +0100 Date: Tue, 12 Mar 2024 10:09:50 +0100
Subject: [PATCH] airgap Subject: [PATCH 03/16] airgap
--- ---
src/wallet/api/wallet.cpp | 23 ++++++++++++++++++ src/wallet/api/wallet.cpp | 23 ++++++++++++++++++
@@ -12,7 +12,7 @@ Subject: [PATCH] airgap
5 files changed, 68 insertions(+), 6 deletions(-) 5 files changed, 68 insertions(+), 6 deletions(-)
diff --git a/src/wallet/api/wallet.cpp b/src/wallet/api/wallet.cpp diff --git a/src/wallet/api/wallet.cpp b/src/wallet/api/wallet.cpp
index 1a9c6f674..42887dced 100644 index 7d430b655..837b98e6b 100644
--- a/src/wallet/api/wallet.cpp --- a/src/wallet/api/wallet.cpp
+++ b/src/wallet/api/wallet.cpp +++ b/src/wallet/api/wallet.cpp
@@ -1129,6 +1129,24 @@ uint64_t WalletImpl::unlockedBalance(uint32_t accountIndex) const @@ -1129,6 +1129,24 @@ uint64_t WalletImpl::unlockedBalance(uint32_t accountIndex) const
@@ -94,7 +94,7 @@ index 4268b656e..4edaefefd 100644
* \brief exportKeyImages - exports key images to file * \brief exportKeyImages - exports key images to file
* \param filename * \param filename
diff --git a/src/wallet/wallet2.cpp b/src/wallet/wallet2.cpp diff --git a/src/wallet/wallet2.cpp b/src/wallet/wallet2.cpp
index c7cbdbbe6..794992b2e 100644 index f2381740a..41cf1fd41 100644
--- a/src/wallet/wallet2.cpp --- a/src/wallet/wallet2.cpp
+++ b/src/wallet/wallet2.cpp +++ b/src/wallet/wallet2.cpp
@@ -949,6 +949,16 @@ uint32_t get_subaddress_clamped_sum(uint32_t idx, uint32_t extra) @@ -949,6 +949,16 @@ uint32_t get_subaddress_clamped_sum(uint32_t idx, uint32_t extra)
@@ -114,7 +114,7 @@ index c7cbdbbe6..794992b2e 100644
static void setup_shim(hw::wallet_shim * shim, tools::wallet2 * wallet) static void setup_shim(hw::wallet_shim * shim, tools::wallet2 * wallet)
{ {
shim->get_tx_pub_key_from_received_outs = std::bind(&tools::wallet2::get_tx_pub_key_from_received_outs, wallet, std::placeholders::_1); shim->get_tx_pub_key_from_received_outs = std::bind(&tools::wallet2::get_tx_pub_key_from_received_outs, wallet, std::placeholders::_1);
@@ -7037,6 +7047,25 @@ uint64_t wallet2::unlocked_balance(uint32_t index_major, bool strict, uint64_t * @@ -7038,6 +7048,25 @@ uint64_t wallet2::unlocked_balance(uint32_t index_major, bool strict, uint64_t *
return amount; return amount;
} }
//---------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------
@@ -140,7 +140,7 @@ index c7cbdbbe6..794992b2e 100644
std::map<uint32_t, uint64_t> wallet2::balance_per_subaddress(uint32_t index_major, bool strict) const std::map<uint32_t, uint64_t> wallet2::balance_per_subaddress(uint32_t index_major, bool strict) const
{ {
std::map<uint32_t, uint64_t> amount_per_subaddr; std::map<uint32_t, uint64_t> amount_per_subaddr;
@@ -7887,9 +7916,7 @@ bool wallet2::sign_tx(unsigned_tx_set &exported_txs, std::vector<wallet2::pendin @@ -7889,9 +7918,7 @@ bool wallet2::sign_tx(unsigned_tx_set &exported_txs, std::vector<wallet2::pendin
crypto::key_derivation derivation; crypto::key_derivation derivation;
std::vector<crypto::key_derivation> additional_derivations; std::vector<crypto::key_derivation> additional_derivations;
@@ -179,7 +179,7 @@ index c7cbdbbe6..794992b2e 100644
if (unused_dust_indices_per_subaddr.empty()) if (unused_dust_indices_per_subaddr.empty())
unused_dust_indices_per_subaddr.push_back({}); unused_dust_indices_per_subaddr.push_back({});
diff --git a/src/wallet/wallet2.h b/src/wallet/wallet2.h diff --git a/src/wallet/wallet2.h b/src/wallet/wallet2.h
index d37332dd1..fc69b3d36 100644 index 56cc118f4..b9aa7a00d 100644
--- a/src/wallet/wallet2.h --- a/src/wallet/wallet2.h
+++ b/src/wallet/wallet2.h +++ b/src/wallet/wallet2.h
@@ -1172,6 +1172,7 @@ private: @@ -1172,6 +1172,7 @@ private:
@@ -191,5 +191,5 @@ index d37332dd1..fc69b3d36 100644
std::map<uint32_t, uint64_t> balance_per_subaddress(uint32_t subaddr_index_major, bool strict) const; std::map<uint32_t, uint64_t> balance_per_subaddress(uint32_t subaddr_index_major, bool strict) const;
std::map<uint32_t, std::pair<uint64_t, std::pair<uint64_t, uint64_t>>> unlocked_balance_per_subaddress(uint32_t subaddr_index_major, bool strict); std::map<uint32_t, std::pair<uint64_t, std::pair<uint64_t, uint64_t>>> unlocked_balance_per_subaddress(uint32_t subaddr_index_major, bool strict);
-- --
2.43.0 2.39.2
+23 -40
View File
@@ -1,7 +1,7 @@
From 8e069a8b7c15794b843471487c12c2c753d3afe2 Mon Sep 17 00:00:00 2001 From d6d52b6156f1e83a69474a871043d414e4488f62 Mon Sep 17 00:00:00 2001
From: tobtoht <tob@featherwallet.org> From: tobtoht <tob@featherwallet.org>
Date: Tue, 12 Mar 2024 11:07:57 +0100 Date: Tue, 12 Mar 2024 11:07:57 +0100
Subject: [PATCH 04/10] coin control Subject: [PATCH 04/16] coin control
--- ---
src/wallet/api/CMakeLists.txt | 8 +- src/wallet/api/CMakeLists.txt | 8 +-
@@ -9,12 +9,12 @@ Subject: [PATCH 04/10] coin control
src/wallet/api/coins.h | 40 ++++++++ src/wallet/api/coins.h | 40 ++++++++
src/wallet/api/coins_info.cpp | 122 ++++++++++++++++++++++ src/wallet/api/coins_info.cpp | 122 ++++++++++++++++++++++
src/wallet/api/coins_info.h | 71 +++++++++++++ src/wallet/api/coins_info.h | 71 +++++++++++++
src/wallet/api/wallet.cpp | 31 +++++- src/wallet/api/wallet.cpp | 26 ++++-
src/wallet/api/wallet.h | 10 +- src/wallet/api/wallet.h | 10 +-
src/wallet/api/wallet2_api.h | 52 +++++++++- src/wallet/api/wallet2_api.h | 52 +++++++++-
src/wallet/wallet2.cpp | 46 ++++++++- src/wallet/wallet2.cpp | 46 ++++++++-
src/wallet/wallet2.h | 11 +- src/wallet/wallet2.h | 11 +-
10 files changed, 558 insertions(+), 18 deletions(-) 10 files changed, 555 insertions(+), 16 deletions(-)
create mode 100644 src/wallet/api/coins.cpp create mode 100644 src/wallet/api/coins.cpp
create mode 100644 src/wallet/api/coins.h create mode 100644 src/wallet/api/coins.h
create mode 100644 src/wallet/api/coins_info.cpp create mode 100644 src/wallet/api/coins_info.cpp
@@ -489,7 +489,7 @@ index 000000000..c43e45abd
+ +
+#endif //FEATHER_COINS_INFO_H +#endif //FEATHER_COINS_INFO_H
diff --git a/src/wallet/api/wallet.cpp b/src/wallet/api/wallet.cpp diff --git a/src/wallet/api/wallet.cpp b/src/wallet/api/wallet.cpp
index 42887dced..2fe0d1d29 100644 index 837b98e6b..2106dbd07 100644
--- a/src/wallet/api/wallet.cpp --- a/src/wallet/api/wallet.cpp
+++ b/src/wallet/api/wallet.cpp +++ b/src/wallet/api/wallet.cpp
@@ -35,6 +35,7 @@ @@ -35,6 +35,7 @@
@@ -537,24 +537,7 @@ index 42887dced..2fe0d1d29 100644
if (error) { if (error) {
break; break;
} }
@@ -1833,13 +1848,14 @@ PendingTransaction *WalletImpl::createTransactionMultDest(const std::vector<stri @@ -1920,10 +1935,10 @@ PendingTransaction *WalletImpl::createTransactionMultDest(const std::vector<stri
fake_outs_count = m_wallet->adjust_mixin(mixin_count);
if (amount) {
+ // (std::vector<cryptonote::tx_destination_entry> dsts, const size_t fake_outs_count, const uint64_t unlock_time, uint32_t priority, const std::vector<uint8_t>& extra, uint32_t subaddr_account, std::set<uint32_t> subaddr_indices, const unique_index_container& subtract_fee_from_outputs, const std::vector<crypto::key_image>& preferred_input_list)
transaction->m_pending_tx = m_wallet->create_transactions_2(dsts, fake_outs_count, 0 /* unlock_time */,
adjusted_priority,
- extra, subaddr_account, subaddr_indices);
+ extra, subaddr_account, subaddr_indices, preferred_input_list);
} else {
transaction->m_pending_tx = m_wallet->create_transactions_all(0, info.address, info.is_subaddress, 1, fake_outs_count, 0 /* unlock_time */,
adjusted_priority,
- extra, subaddr_account, subaddr_indices);
+ extra, subaddr_account, subaddr_indices, preferred_input_list);
}
pendingTxPostProcess(transaction);
@@ -1920,10 +1936,10 @@ PendingTransaction *WalletImpl::createTransactionMultDest(const std::vector<stri
} }
PendingTransaction *WalletImpl::createTransaction(const string &dst_addr, const string &payment_id, optional<uint64_t> amount, uint32_t mixin_count, PendingTransaction *WalletImpl::createTransaction(const string &dst_addr, const string &payment_id, optional<uint64_t> amount, uint32_t mixin_count,
@@ -567,7 +550,7 @@ index 42887dced..2fe0d1d29 100644
} }
PendingTransaction *WalletImpl::createSweepUnmixableTransaction() PendingTransaction *WalletImpl::createSweepUnmixableTransaction()
@@ -2048,6 +2064,11 @@ AddressBook *WalletImpl::addressBook() @@ -2048,6 +2063,11 @@ AddressBook *WalletImpl::addressBook()
return m_addressBook.get(); return m_addressBook.get();
} }
@@ -717,7 +700,7 @@ index 4edaefefd..8a5c4135e 100644
virtual SubaddressAccount * subaddressAccount() = 0; virtual SubaddressAccount * subaddressAccount() = 0;
virtual void setListener(WalletListener *) = 0; virtual void setListener(WalletListener *) = 0;
diff --git a/src/wallet/wallet2.cpp b/src/wallet/wallet2.cpp diff --git a/src/wallet/wallet2.cpp b/src/wallet/wallet2.cpp
index 700816da6..5331f90fc 100644 index 41cf1fd41..61601f70c 100644
--- a/src/wallet/wallet2.cpp --- a/src/wallet/wallet2.cpp
+++ b/src/wallet/wallet2.cpp +++ b/src/wallet/wallet2.cpp
@@ -2083,12 +2083,21 @@ bool wallet2::frozen(const multisig_tx_set& txs) const @@ -2083,12 +2083,21 @@ bool wallet2::frozen(const multisig_tx_set& txs) const
@@ -820,8 +803,8 @@ index 700816da6..5331f90fc 100644
// This system allows for sending (almost) the entire balance, since it does // This system allows for sending (almost) the entire balance, since it does
// not generate spurious change in all txes, thus decreasing the instantaneous // not generate spurious change in all txes, thus decreasing the instantaneous
// usable balance. // usable balance.
-std::vector<wallet2::pending_tx> wallet2::create_transactions_2(std::vector<cryptonote::tx_destination_entry> dsts, const size_t fake_outs_count, const uint64_t unlock_time, uint32_t priority, const std::vector<uint8_t>& extra, uint32_t subaddr_account, std::set<uint32_t> subaddr_indices, const unique_index_container& subtract_fee_from_outputs) -std::vector<wallet2::pending_tx> wallet2::create_transactions_2(std::vector<cryptonote::tx_destination_entry> dsts, const size_t fake_outs_count, uint32_t priority, const std::vector<uint8_t>& extra, uint32_t subaddr_account, std::set<uint32_t> subaddr_indices, const unique_index_container& subtract_fee_from_outputs)
+std::vector<wallet2::pending_tx> wallet2::create_transactions_2(std::vector<cryptonote::tx_destination_entry> dsts, const size_t fake_outs_count, const uint64_t unlock_time, uint32_t priority, const std::vector<uint8_t>& extra, uint32_t subaddr_account, std::set<uint32_t> subaddr_indices, const std::vector<crypto::key_image>& preferred_input_list, const unique_index_container& subtract_fee_from_outputs) +std::vector<wallet2::pending_tx> wallet2::create_transactions_2(std::vector<cryptonote::tx_destination_entry> dsts, const size_t fake_outs_count, uint32_t priority, const std::vector<uint8_t>& extra, uint32_t subaddr_account, std::set<uint32_t> subaddr_indices, const std::vector<crypto::key_image>& preferred_input_list, const unique_index_container& subtract_fee_from_outputs)
{ {
//ensure device is let in NONE mode in any case //ensure device is let in NONE mode in any case
hw::device &hwdev = m_account.get_device(); hw::device &hwdev = m_account.get_device();
@@ -835,7 +818,7 @@ index 700816da6..5331f90fc 100644
if (m_ignore_fractional_outputs && td.amount() < fractional_threshold) if (m_ignore_fractional_outputs && td.amount() < fractional_threshold)
{ {
MDEBUG("Ignoring output " << i << " of amount " << print_money(td.amount()) << " which is below fractional threshold " << print_money(fractional_threshold)); MDEBUG("Ignoring output " << i << " of amount " << print_money(td.amount()) << " which is below fractional threshold " << print_money(fractional_threshold));
@@ -11393,7 +11428,7 @@ std::vector<wallet2::pending_tx> wallet2::create_transactions_2(std::vector<cryp @@ -11400,7 +11435,7 @@ std::vector<wallet2::pending_tx> wallet2::create_transactions_2(std::vector<cryp
// will get us a known fee. // will get us a known fee.
uint64_t estimated_fee = estimate_fee(use_per_byte_fee, use_rct, 2, fake_outs_count, 2, extra.size(), bulletproof, clsag, bulletproof_plus, use_view_tags, base_fee, fee_quantization_mask); uint64_t estimated_fee = estimate_fee(use_per_byte_fee, use_rct, 2, fake_outs_count, 2, extra.size(), bulletproof, clsag, bulletproof_plus, use_view_tags, base_fee, fee_quantization_mask);
total_needed_money = needed_money + (subtract_fee_from_outputs.size() ? 0 : estimated_fee); total_needed_money = needed_money + (subtract_fee_from_outputs.size() ? 0 : estimated_fee);
@@ -844,16 +827,16 @@ index 700816da6..5331f90fc 100644
if (!preferred_inputs.empty()) if (!preferred_inputs.empty())
{ {
string s; string s;
@@ -11874,7 +11909,7 @@ bool wallet2::sanity_check(const std::vector<wallet2::pending_tx> &ptx_vector, c @@ -11879,7 +11914,7 @@ bool wallet2::sanity_check(const std::vector<wallet2::pending_tx> &ptx_vector, c
return true; return true;
} }
-std::vector<wallet2::pending_tx> wallet2::create_transactions_all(uint64_t below, const cryptonote::account_public_address &address, bool is_subaddress, const size_t outputs, const size_t fake_outs_count, const uint64_t unlock_time, uint32_t priority, const std::vector<uint8_t>& extra, uint32_t subaddr_account, std::set<uint32_t> subaddr_indices) -std::vector<wallet2::pending_tx> wallet2::create_transactions_all(uint64_t below, const cryptonote::account_public_address &address, bool is_subaddress, const size_t outputs, const size_t fake_outs_count, uint32_t priority, const std::vector<uint8_t>& extra, uint32_t subaddr_account, std::set<uint32_t> subaddr_indices)
+std::vector<wallet2::pending_tx> wallet2::create_transactions_all(uint64_t below, const cryptonote::account_public_address &address, bool is_subaddress, const size_t outputs, const size_t fake_outs_count, const uint64_t unlock_time, uint32_t priority, const std::vector<uint8_t>& extra, uint32_t subaddr_account, std::set<uint32_t> subaddr_indices, const std::vector<crypto::key_image>& preferred_input_list) +std::vector<wallet2::pending_tx> wallet2::create_transactions_all(uint64_t below, const cryptonote::account_public_address &address, bool is_subaddress, const size_t outputs, const size_t fake_outs_count, uint32_t priority, const std::vector<uint8_t>& extra, uint32_t subaddr_account, std::set<uint32_t> subaddr_indices, const std::vector<crypto::key_image>& preferred_input_list)
{ {
std::vector<size_t> unused_transfers_indices; std::vector<size_t> unused_transfers_indices;
std::vector<size_t> unused_dust_indices; std::vector<size_t> unused_dust_indices;
@@ -11903,6 +11938,9 @@ std::vector<wallet2::pending_tx> wallet2::create_transactions_all(uint64_t below @@ -11908,6 +11943,9 @@ std::vector<wallet2::pending_tx> wallet2::create_transactions_all(uint64_t below
for (size_t i = 0; i < m_transfers.size(); ++i) for (size_t i = 0; i < m_transfers.size(); ++i)
{ {
const transfer_details& td = m_transfers[i]; const transfer_details& td = m_transfers[i];
@@ -864,19 +847,19 @@ index 700816da6..5331f90fc 100644
{ {
MDEBUG("Ignoring output " << i << " of amount " << print_money(td.amount()) << " which is below threshold " << print_money(fractional_threshold)); MDEBUG("Ignoring output " << i << " of amount " << print_money(td.amount()) << " which is below threshold " << print_money(fractional_threshold));
diff --git a/src/wallet/wallet2.h b/src/wallet/wallet2.h diff --git a/src/wallet/wallet2.h b/src/wallet/wallet2.h
index fc69b3d36..52886fb85 100644 index b9aa7a00d..67ed81383 100644
--- a/src/wallet/wallet2.h --- a/src/wallet/wallet2.h
+++ b/src/wallet/wallet2.h +++ b/src/wallet/wallet2.h
@@ -1207,8 +1207,8 @@ private: @@ -1207,8 +1207,8 @@ private:
bool parse_unsigned_tx_from_str(const std::string &unsigned_tx_st, unsigned_tx_set &exported_txs) const; bool parse_unsigned_tx_from_str(const std::string &unsigned_tx_st, unsigned_tx_set &exported_txs) const;
bool load_tx(const std::string &signed_filename, std::vector<tools::wallet2::pending_tx> &ptx, std::function<bool(const signed_tx_set&)> accept_func = NULL); bool load_tx(const std::string &signed_filename, std::vector<tools::wallet2::pending_tx> &ptx, std::function<bool(const signed_tx_set&)> accept_func = NULL);
bool parse_tx_from_str(const std::string &signed_tx_st, std::vector<tools::wallet2::pending_tx> &ptx, std::function<bool(const signed_tx_set &)> accept_func); bool parse_tx_from_str(const std::string &signed_tx_st, std::vector<tools::wallet2::pending_tx> &ptx, std::function<bool(const signed_tx_set &)> accept_func);
- std::vector<wallet2::pending_tx> create_transactions_2(std::vector<cryptonote::tx_destination_entry> dsts, const size_t fake_outs_count, const uint64_t unlock_time, uint32_t priority, const std::vector<uint8_t>& extra, uint32_t subaddr_account, std::set<uint32_t> subaddr_indices, const unique_index_container& subtract_fee_from_outputs = {}); // pass subaddr_indices by value on purpose - std::vector<wallet2::pending_tx> create_transactions_2(std::vector<cryptonote::tx_destination_entry> dsts, const size_t fake_outs_count, uint32_t priority, const std::vector<uint8_t>& extra, uint32_t subaddr_account, std::set<uint32_t> subaddr_indices, const unique_index_container& subtract_fee_from_outputs = {}); // pass subaddr_indices by value on purpose
- std::vector<wallet2::pending_tx> create_transactions_all(uint64_t below, const cryptonote::account_public_address &address, bool is_subaddress, const size_t outputs, const size_t fake_outs_count, const uint64_t unlock_time, uint32_t priority, const std::vector<uint8_t>& extra, uint32_t subaddr_account, std::set<uint32_t> subaddr_indices); - std::vector<wallet2::pending_tx> create_transactions_all(uint64_t below, const cryptonote::account_public_address &address, bool is_subaddress, const size_t outputs, const size_t fake_outs_count, uint32_t priority, const std::vector<uint8_t>& extra, uint32_t subaddr_account, std::set<uint32_t> subaddr_indices);
+ std::vector<wallet2::pending_tx> create_transactions_2(std::vector<cryptonote::tx_destination_entry> dsts, const size_t fake_outs_count, const uint64_t unlock_time, uint32_t priority, const std::vector<uint8_t>& extra, uint32_t subaddr_account, std::set<uint32_t> subaddr_indices, const std::vector<crypto::key_image>& preferred_input_list = {}, const unique_index_container& subtract_fee_from_outputs = {}); // pass subaddr_indices by value on purpose + std::vector<wallet2::pending_tx> create_transactions_2(std::vector<cryptonote::tx_destination_entry> dsts, const size_t fake_outs_count, uint32_t priority, const std::vector<uint8_t>& extra, uint32_t subaddr_account, std::set<uint32_t> subaddr_indices, const std::vector<crypto::key_image>& preferred_input_list, const unique_index_container& subtract_fee_from_outputs = {}); // pass subaddr_indices by value on purpose
+ std::vector<wallet2::pending_tx> create_transactions_all(uint64_t below, const cryptonote::account_public_address &address, bool is_subaddress, const size_t outputs, const size_t fake_outs_count, const uint64_t unlock_time, uint32_t priority, const std::vector<uint8_t>& extra, uint32_t subaddr_account, std::set<uint32_t> subaddr_indices, const std::vector<crypto::key_image>& preferred_input_list = {}); + std::vector<wallet2::pending_tx> create_transactions_all(uint64_t below, const cryptonote::account_public_address &address, bool is_subaddress, const size_t outputs, const size_t fake_outs_count, uint32_t priority, const std::vector<uint8_t>& extra, uint32_t subaddr_account, std::set<uint32_t> subaddr_indices, const std::vector<crypto::key_image>& preferred_input_list = {});
std::vector<wallet2::pending_tx> create_transactions_single(const crypto::key_image &ki, const cryptonote::account_public_address &address, bool is_subaddress, const size_t outputs, const size_t fake_outs_count, const uint64_t unlock_time, uint32_t priority, const std::vector<uint8_t>& extra); std::vector<wallet2::pending_tx> create_transactions_single(const crypto::key_image &ki, const cryptonote::account_public_address &address, bool is_subaddress, const size_t outputs, const size_t fake_outs_count, uint32_t priority, const std::vector<uint8_t>& extra);
std::vector<wallet2::pending_tx> create_transactions_from(const cryptonote::account_public_address &address, bool is_subaddress, const size_t outputs, std::vector<size_t> unused_transfers_indices, std::vector<size_t> unused_dust_indices, const size_t fake_outs_count, const uint64_t unlock_time, uint32_t priority, const std::vector<uint8_t>& extra); std::vector<wallet2::pending_tx> create_transactions_from(const cryptonote::account_public_address &address, bool is_subaddress, const size_t outputs, std::vector<size_t> unused_transfers_indices, std::vector<size_t> unused_dust_indices, const size_t fake_outs_count, uint32_t priority, const std::vector<uint8_t>& extra);
bool sanity_check(const std::vector<wallet2::pending_tx> &ptx_vector, const std::vector<cryptonote::tx_destination_entry>& dsts, const unique_index_container& subtract_fee_from_outputs = {}) const; bool sanity_check(const std::vector<wallet2::pending_tx> &ptx_vector, const std::vector<cryptonote::tx_destination_entry>& dsts, const unique_index_container& subtract_fee_from_outputs = {}) const;
@@ -1560,6 +1560,7 @@ private: @@ -1560,6 +1560,7 @@ private:
uint64_t get_num_rct_outputs(); uint64_t get_num_rct_outputs();
@@ -915,5 +898,5 @@ index fc69b3d36..52886fb85 100644
void set_unspent(size_t idx); void set_unspent(size_t idx);
bool is_spent(const transfer_details &td, bool strict = true) const; bool is_spent(const transfer_details &td, bool strict = true) const;
-- --
2.44.0 2.39.2
+3 -3
View File
@@ -1,7 +1,7 @@
From a24797410dcda06617ff2a81de3129d38b69f2a2 Mon Sep 17 00:00:00 2001 From 0f1d5e1296dc1e8c9ee323fa7bdf706ff76df2a7 Mon Sep 17 00:00:00 2001
From: Czarek Nakamoto <cyjan@mrcyjanek.net> From: Czarek Nakamoto <cyjan@mrcyjanek.net>
Date: Tue, 12 Mar 2024 17:59:13 +0100 Date: Tue, 12 Mar 2024 17:59:13 +0100
Subject: [PATCH 05/10] fix build issues Subject: [PATCH 05/16] fix build issues
--- ---
contrib/depends/hosts/linux.mk | 8 +++---- contrib/depends/hosts/linux.mk | 8 +++----
@@ -133,5 +133,5 @@ index 000000000..f05cb2b6a
+ #else + #else
+ #ifdef POLYSEED_SHARED + #ifdef POLYSEED_SHARED
-- --
2.44.0 2.39.2
+11 -12
View File
@@ -1,13 +1,13 @@
From bc3d91b07d77893983bbed0b165ce41e034579a7 Mon Sep 17 00:00:00 2001 From 3343e3fbbd05546b3858c98afe3bad4673f250c8 Mon Sep 17 00:00:00 2001
From: Your Name <you@example.com> From: Your Name <you@example.com>
Date: Thu, 28 Mar 2024 02:03:08 +0100 Date: Thu, 28 Mar 2024 02:03:08 +0100
Subject: [PATCH 06/10] macos build fix Subject: [PATCH 06/16] macos build fix
--- ---
contrib/depends/hosts/darwin.mk | 2 + contrib/depends/hosts/darwin.mk | 2 +
contrib/depends/packages/polyseed.mk | 13 +++-- contrib/depends/packages/polyseed.mk | 13 +++--
.../polyseed/0001-disable-soname.patch | 49 +++++++++++++++++++ .../polyseed/0001-disable-soname.patch | 48 +++++++++++++++++++
3 files changed, 60 insertions(+), 4 deletions(-) 3 files changed, 59 insertions(+), 4 deletions(-)
create mode 100644 contrib/depends/patches/polyseed/0001-disable-soname.patch create mode 100644 contrib/depends/patches/polyseed/0001-disable-soname.patch
diff --git a/contrib/depends/hosts/darwin.mk b/contrib/depends/hosts/darwin.mk diff --git a/contrib/depends/hosts/darwin.mk b/contrib/depends/hosts/darwin.mk
@@ -57,10 +57,10 @@ index 2ddeac621..0071b20f3 100644
define $(package)_stage_cmds define $(package)_stage_cmds
diff --git a/contrib/depends/patches/polyseed/0001-disable-soname.patch b/contrib/depends/patches/polyseed/0001-disable-soname.patch diff --git a/contrib/depends/patches/polyseed/0001-disable-soname.patch b/contrib/depends/patches/polyseed/0001-disable-soname.patch
new file mode 100644 new file mode 100644
index 000000000..a261636e8 index 000000000..bd97dd394
--- /dev/null --- /dev/null
+++ b/contrib/depends/patches/polyseed/0001-disable-soname.patch +++ b/contrib/depends/patches/polyseed/0001-disable-soname.patch
@@ -0,0 +1,49 @@ @@ -0,0 +1,48 @@
+From aabafcfc0572651436d024a635483c49042fad7f Mon Sep 17 00:00:00 2001 +From aabafcfc0572651436d024a635483c49042fad7f Mon Sep 17 00:00:00 2001
+From: Czarek Nakamoto <cyjan@mrcyjanek.net> +From: Czarek Nakamoto <cyjan@mrcyjanek.net>
+Date: Thu, 28 Mar 2024 00:32:51 +0100 +Date: Thu, 28 Mar 2024 00:32:51 +0100
@@ -81,7 +81,7 @@ index 000000000..a261636e8
++ NO_SONAME 1 ++ NO_SONAME 1
+ C_STANDARD 11 + C_STANDARD 11
+ C_STANDARD_REQUIRED ON) + C_STANDARD_REQUIRED ON)
+ +
+@@ -45,16 +46,17 @@ include_directories(polyseed_static +@@ -45,16 +46,17 @@ include_directories(polyseed_static
+ include/) + include/)
+ target_compile_definitions(polyseed_static PRIVATE POLYSEED_STATIC) + target_compile_definitions(polyseed_static PRIVATE POLYSEED_STATIC)
@@ -89,7 +89,7 @@ index 000000000..a261636e8
++ NO_SONAME 1 ++ NO_SONAME 1
+ C_STANDARD 11 + C_STANDARD 11
+ C_STANDARD_REQUIRED ON) + C_STANDARD_REQUIRED ON)
+ +
+-add_executable(polyseed-tests +-add_executable(polyseed-tests
+- tests/tests.c) +- tests/tests.c)
+-include_directories(polyseed-tests +-include_directories(polyseed-tests
@@ -104,12 +104,11 @@ index 000000000..a261636e8
++# target_compile_definitions(polyseed-tests PRIVATE POLYSEED_STATIC) ++# target_compile_definitions(polyseed-tests PRIVATE POLYSEED_STATIC)
++# target_link_libraries(polyseed-tests ++# target_link_libraries(polyseed-tests
++# PRIVATE polyseed_static) ++# PRIVATE polyseed_static)
+ +
+ include(GNUInstallDirs) + include(GNUInstallDirs)
+ install(TARGETS polyseed polyseed_static + install(TARGETS polyseed polyseed_static
+-- +--
+2.39.2 +2.39.2
+
-- --
2.44.0 2.39.2
@@ -1,46 +1,39 @@
From 14b4c210a11e0c333087026775cf22fcccf46a40 Mon Sep 17 00:00:00 2001 From 8945e9865ef831f85ef58ba3d269f4b17d0270b5 Mon Sep 17 00:00:00 2001
From: Czarek Nakamoto <cyjan@mrcyjanek.net> From: Czarek Nakamoto <cyjan@mrcyjanek.net>
Date: Tue, 2 Apr 2024 01:13:12 +0200 Date: Tue, 2 Apr 2024 01:13:12 +0200
Subject: [PATCH 07/10] fix `make debug-test` target Subject: [PATCH 07/16] fix `make debug-test` target
--- ---
src/simplewallet/simplewallet.cpp | 4 ++-- src/simplewallet/simplewallet.cpp | 2 +-
src/wallet/wallet_rpc_server.cpp | 2 +- src/wallet/wallet2.h | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-) 2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/simplewallet/simplewallet.cpp b/src/simplewallet/simplewallet.cpp diff --git a/src/simplewallet/simplewallet.cpp b/src/simplewallet/simplewallet.cpp
index 341b0e448..c2e16da4c 100644 index f8ed6659c..0aa76b668 100644
--- a/src/simplewallet/simplewallet.cpp --- a/src/simplewallet/simplewallet.cpp
+++ b/src/simplewallet/simplewallet.cpp +++ b/src/simplewallet/simplewallet.cpp
@@ -6976,13 +6976,13 @@ bool simple_wallet::transfer_main(int transfer_type, const std::vector<std::stri @@ -6929,7 +6929,7 @@ bool simple_wallet::transfer_main(const std::vector<std::string> &args_, bool ca
return false; {
} // figure out what tx will be necessary
unlock_block = bc_height + locked_blocks; auto ptx_vector = m_wallet->create_transactions_2(dsts, fake_outs_count, priority, extra,
- ptx_vector = m_wallet->create_transactions_2(dsts, fake_outs_count, unlock_block /* unlock_time */, priority, extra, m_current_subaddress_account, subaddr_indices, subtract_fee_from_outputs); - m_current_subaddress_account, subaddr_indices, subtract_fee_from_outputs);
+ ptx_vector = m_wallet->create_transactions_2(dsts, fake_outs_count, unlock_block /* unlock_time */, priority, extra, m_current_subaddress_account, subaddr_indices, {}, subtract_fee_from_outputs); + m_current_subaddress_account, subaddr_indices, {}, subtract_fee_from_outputs);
break;
default:
LOG_ERROR("Unknown transfer method, using default");
/* FALLTHRU */
case Transfer:
- ptx_vector = m_wallet->create_transactions_2(dsts, fake_outs_count, 0 /* unlock_time */, priority, extra, m_current_subaddress_account, subaddr_indices, subtract_fee_from_outputs);
+ ptx_vector = m_wallet->create_transactions_2(dsts, fake_outs_count, 0 /* unlock_time */, priority, extra, m_current_subaddress_account, subaddr_indices, {}, subtract_fee_from_outputs);
break;
}
diff --git a/src/wallet/wallet_rpc_server.cpp b/src/wallet/wallet_rpc_server.cpp if (ptx_vector.empty())
index 822fc828b..caa23e636 100644
--- a/src/wallet/wallet_rpc_server.cpp
+++ b/src/wallet/wallet_rpc_server.cpp
@@ -1157,7 +1157,7 @@ namespace tools
{ {
uint64_t mixin = m_wallet->adjust_mixin(req.ring_size ? req.ring_size - 1 : 0); diff --git a/src/wallet/wallet2.h b/src/wallet/wallet2.h
uint32_t priority = m_wallet->adjust_priority(req.priority); index 67ed81383..fdc1a6212 100644
- std::vector<wallet2::pending_tx> ptx_vector = m_wallet->create_transactions_2(dsts, mixin, req.unlock_time, priority, extra, req.account_index, req.subaddr_indices, req.subtract_fee_from_outputs); --- a/src/wallet/wallet2.h
+ std::vector<wallet2::pending_tx> ptx_vector = m_wallet->create_transactions_2(dsts, mixin, req.unlock_time, priority, extra, req.account_index, req.subaddr_indices, {}, req.subtract_fee_from_outputs); +++ b/src/wallet/wallet2.h
@@ -1207,7 +1207,7 @@ private:
if (ptx_vector.empty()) bool parse_unsigned_tx_from_str(const std::string &unsigned_tx_st, unsigned_tx_set &exported_txs) const;
{ bool load_tx(const std::string &signed_filename, std::vector<tools::wallet2::pending_tx> &ptx, std::function<bool(const signed_tx_set&)> accept_func = NULL);
bool parse_tx_from_str(const std::string &signed_tx_st, std::vector<tools::wallet2::pending_tx> &ptx, std::function<bool(const signed_tx_set &)> accept_func);
- std::vector<wallet2::pending_tx> create_transactions_2(std::vector<cryptonote::tx_destination_entry> dsts, const size_t fake_outs_count, uint32_t priority, const std::vector<uint8_t>& extra, uint32_t subaddr_account, std::set<uint32_t> subaddr_indices, const std::vector<crypto::key_image>& preferred_input_list, const unique_index_container& subtract_fee_from_outputs = {}); // pass subaddr_indices by value on purpose
+ std::vector<wallet2::pending_tx> create_transactions_2(std::vector<cryptonote::tx_destination_entry> dsts, const size_t fake_outs_count, uint32_t priority, const std::vector<uint8_t>& extra, uint32_t subaddr_account, std::set<uint32_t> subaddr_indices, const std::vector<crypto::key_image>& preferred_input_list = {}, const unique_index_container& subtract_fee_from_outputs = {}); // pass subaddr_indices by value on purpose
std::vector<wallet2::pending_tx> create_transactions_all(uint64_t below, const cryptonote::account_public_address &address, bool is_subaddress, const size_t outputs, const size_t fake_outs_count, uint32_t priority, const std::vector<uint8_t>& extra, uint32_t subaddr_account, std::set<uint32_t> subaddr_indices, const std::vector<crypto::key_image>& preferred_input_list = {});
std::vector<wallet2::pending_tx> create_transactions_single(const crypto::key_image &ki, const cryptonote::account_public_address &address, bool is_subaddress, const size_t outputs, const size_t fake_outs_count, uint32_t priority, const std::vector<uint8_t>& extra);
std::vector<wallet2::pending_tx> create_transactions_from(const cryptonote::account_public_address &address, bool is_subaddress, const size_t outputs, std::vector<size_t> unused_transfers_indices, std::vector<size_t> unused_dust_indices, const size_t fake_outs_count, uint32_t priority, const std::vector<uint8_t>& extra);
-- --
2.44.0 2.39.2
@@ -1,7 +1,7 @@
From d3a704bfb62bede87d5da0261585f62f19f858c1 Mon Sep 17 00:00:00 2001 From c7f8510fb4bfb54707053603f5cbcaa8c0bf72d2 Mon Sep 17 00:00:00 2001
From: Czarek Nakamoto <cyjan@mrcyjanek.net> From: Czarek Nakamoto <cyjan@mrcyjanek.net>
Date: Tue, 2 Apr 2024 16:51:56 +0200 Date: Tue, 2 Apr 2024 16:51:56 +0200
Subject: [PATCH 08/10] fix missing ___clear_cache when targetting iOS Subject: [PATCH 08/16] fix missing ___clear_cache when targetting iOS
--- ---
.gitmodules | 2 +- .gitmodules | 2 +-
@@ -29,5 +29,5 @@ index 102f8acf9..ce72c9bb9 160000
-Subproject commit 102f8acf90a7649ada410de5499a7ec62e49e1da -Subproject commit 102f8acf90a7649ada410de5499a7ec62e49e1da
+Subproject commit ce72c9bb9cb799e0d9171094b9abb009e04c5bfc +Subproject commit ce72c9bb9cb799e0d9171094b9abb009e04c5bfc
-- --
2.44.0 2.39.2
@@ -1,7 +1,7 @@
From 8db1b159445a8aaca702a8bacb9476abe3aebcf1 Mon Sep 17 00:00:00 2001 From ff4d7f9500e6aca57a78d94599a70b7823ea6ecd Mon Sep 17 00:00:00 2001
From: Konstantin Ullrich <konstantinullrich12@gmail.com> From: Konstantin Ullrich <konstantinullrich12@gmail.com>
Date: Wed, 11 Oct 2023 16:47:59 +0200 Date: Wed, 11 Oct 2023 16:47:59 +0200
Subject: [PATCH 09/10] Add recoverDeterministicWalletFromSpendKey Subject: [PATCH 09/16] Add recoverDeterministicWalletFromSpendKey
This function is used by Cake Wallet to enable polyseed (dart implementation) This function is used by Cake Wallet to enable polyseed (dart implementation)
support. support.
@@ -19,7 +19,7 @@ Co-authored-by: Godwin Asuquo <godilite@gmail.com>
5 files changed, 75 insertions(+) 5 files changed, 75 insertions(+)
diff --git a/src/wallet/api/wallet.cpp b/src/wallet/api/wallet.cpp diff --git a/src/wallet/api/wallet.cpp b/src/wallet/api/wallet.cpp
index 2fe0d1d29..2411d948c 100644 index 2106dbd07..ec4ae51ff 100644
--- a/src/wallet/api/wallet.cpp --- a/src/wallet/api/wallet.cpp
+++ b/src/wallet/api/wallet.cpp +++ b/src/wallet/api/wallet.cpp
@@ -820,6 +820,35 @@ bool WalletImpl::recover(const std::string &path, const std::string &password, c @@ -820,6 +820,35 @@ bool WalletImpl::recover(const std::string &path, const std::string &password, c
@@ -149,5 +149,5 @@ index 28fcd36c9..be3ff8184 100644
const std::string &password, const std::string &password,
NetworkType nettype, NetworkType nettype,
-- --
2.44.0 2.39.2
@@ -1,7 +1,7 @@
From db90a0218d581276fcede6f188cc951499095a2f Mon Sep 17 00:00:00 2001 From 3cc8b1f822f642b574fe38ff27627b362002eab7 Mon Sep 17 00:00:00 2001
From: M <m@cakewallet.com> From: M <m@cakewallet.com>
Date: Fri, 21 Apr 2023 15:43:47 -0400 Date: Fri, 21 Apr 2023 15:43:47 -0400
Subject: [PATCH 10/10] Add hex encoding and tx key getter for Subject: [PATCH 10/16] Add hex encoding and tx key getter for
PendingTransction in wallet api. PendingTransction in wallet api.
--- ---
@@ -64,5 +64,5 @@ index a585c8212..1c3a11c39 100644
/** /**
-- --
2.44.0 2.39.2
+12 -12
View File
@@ -1,7 +1,7 @@
From 0fe816689af4bce256eae2efa6a8eee0cb8b8097 Mon Sep 17 00:00:00 2001 From 238c847c153c74953b094d83bfe181a596771d37 Mon Sep 17 00:00:00 2001
From: Czarek Nakamoto <cyjan@mrcyjanek.net> From: Czarek Nakamoto <cyjan@mrcyjanek.net>
Date: Sat, 11 May 2024 16:25:10 +0200 Date: Sat, 11 May 2024 16:25:10 +0200
Subject: [PATCH] store crash fix Subject: [PATCH 11/16] store crash fix
Monero wallet crashes (sometimes) when it is syncing, Monero wallet crashes (sometimes) when it is syncing,
while the proper solution (that can be seen in feather) while the proper solution (that can be seen in feather)
@@ -43,7 +43,7 @@ the current state.
4 files changed, 26 insertions(+), 15 deletions(-) 4 files changed, 26 insertions(+), 15 deletions(-)
diff --git a/src/wallet/api/wallet.cpp b/src/wallet/api/wallet.cpp diff --git a/src/wallet/api/wallet.cpp b/src/wallet/api/wallet.cpp
index 2411d948c..90e107137 100644 index ec4ae51ff..306c9b8ae 100644
--- a/src/wallet/api/wallet.cpp --- a/src/wallet/api/wallet.cpp
+++ b/src/wallet/api/wallet.cpp +++ b/src/wallet/api/wallet.cpp
@@ -56,8 +56,8 @@ using namespace cryptonote; @@ -56,8 +56,8 @@ using namespace cryptonote;
@@ -74,7 +74,7 @@ index 2411d948c..90e107137 100644
try { try {
if (path.empty()) { if (path.empty()) {
m_wallet->store(); m_wallet->store();
@@ -2592,10 +2593,10 @@ void WalletImpl::refreshThreadFunc() @@ -2591,10 +2592,10 @@ void WalletImpl::refreshThreadFunc()
} }
LOG_PRINT_L3(__FUNCTION__ << ": refresh lock acquired..."); LOG_PRINT_L3(__FUNCTION__ << ": refresh lock acquired...");
@@ -87,7 +87,7 @@ index 2411d948c..90e107137 100644
LOG_PRINT_L3(__FUNCTION__ << ": refreshing..."); LOG_PRINT_L3(__FUNCTION__ << ": refreshing...");
doRefresh(); doRefresh();
} }
@@ -2625,12 +2626,12 @@ void WalletImpl::doRefresh() @@ -2624,12 +2625,12 @@ void WalletImpl::doRefresh()
} }
m_wallet->find_and_save_rings(false); m_wallet->find_and_save_rings(false);
} else { } else {
@@ -102,7 +102,7 @@ index 2411d948c..90e107137 100644
if (m_wallet2Callback->getListener()) { if (m_wallet2Callback->getListener()) {
m_wallet2Callback->getListener()->refreshed(); m_wallet2Callback->getListener()->refreshed();
@@ -2640,9 +2641,9 @@ void WalletImpl::doRefresh() @@ -2639,9 +2640,9 @@ void WalletImpl::doRefresh()
void WalletImpl::startRefresh() void WalletImpl::startRefresh()
{ {
@@ -114,7 +114,7 @@ index 2411d948c..90e107137 100644
m_refreshCV.notify_one(); m_refreshCV.notify_one();
} }
} }
@@ -2652,7 +2653,7 @@ void WalletImpl::startRefresh() @@ -2651,7 +2652,7 @@ void WalletImpl::startRefresh()
void WalletImpl::stopRefresh() void WalletImpl::stopRefresh()
{ {
if (!m_refreshThreadDone) { if (!m_refreshThreadDone) {
@@ -123,7 +123,7 @@ index 2411d948c..90e107137 100644
m_refreshThreadDone = true; m_refreshThreadDone = true;
m_refreshCV.notify_one(); m_refreshCV.notify_one();
m_refreshThread.join(); m_refreshThread.join();
@@ -2663,9 +2664,7 @@ void WalletImpl::pauseRefresh() @@ -2662,9 +2663,7 @@ void WalletImpl::pauseRefresh()
{ {
LOG_PRINT_L2(__FUNCTION__ << ": refresh paused..."); LOG_PRINT_L2(__FUNCTION__ << ": refresh paused...");
// TODO synchronize access // TODO synchronize access
@@ -147,7 +147,7 @@ index d0f443abc..2ad2b62a4 100644
std::atomic<int> m_refreshIntervalMillis; std::atomic<int> m_refreshIntervalMillis;
std::atomic<bool> m_refreshShouldRescan; std::atomic<bool> m_refreshShouldRescan;
diff --git a/src/wallet/wallet2.cpp b/src/wallet/wallet2.cpp diff --git a/src/wallet/wallet2.cpp b/src/wallet/wallet2.cpp
index 5331f90fc..e5773a26b 100644 index 61601f70c..4de226a4a 100644
--- a/src/wallet/wallet2.cpp --- a/src/wallet/wallet2.cpp
+++ b/src/wallet/wallet2.cpp +++ b/src/wallet/wallet2.cpp
@@ -1203,6 +1203,7 @@ wallet2::wallet2(network_type nettype, uint64_t kdf_rounds, bool unattended, std @@ -1203,6 +1203,7 @@ wallet2::wallet2(network_type nettype, uint64_t kdf_rounds, bool unattended, std
@@ -173,7 +173,7 @@ index 5331f90fc..e5773a26b 100644
bool wallet2::set_proxy(const std::string &address) bool wallet2::set_proxy(const std::string &address)
{ {
return m_http_client->set_proxy(address); return m_http_client->set_proxy(address);
@@ -4145,8 +4154,9 @@ void wallet2::refresh(bool trusted_daemon, uint64_t start_height, uint64_t & blo @@ -4146,8 +4155,9 @@ void wallet2::refresh(bool trusted_daemon, uint64_t start_height, uint64_t & blo
// infer when we get an incoming output // infer when we get an incoming output
bool first = true, last = false; bool first = true, last = false;
@@ -185,7 +185,7 @@ index 5331f90fc..e5773a26b 100644
std::vector<cryptonote::block_complete_entry> next_blocks; std::vector<cryptonote::block_complete_entry> next_blocks;
std::vector<parsed_block> next_parsed_blocks; std::vector<parsed_block> next_parsed_blocks;
diff --git a/src/wallet/wallet2.h b/src/wallet/wallet2.h diff --git a/src/wallet/wallet2.h b/src/wallet/wallet2.h
index 52886fb85..0d9a9298f 100644 index fdc1a6212..3ce710433 100644
--- a/src/wallet/wallet2.h --- a/src/wallet/wallet2.h
+++ b/src/wallet/wallet2.h +++ b/src/wallet/wallet2.h
@@ -1086,6 +1086,8 @@ private: @@ -1086,6 +1086,8 @@ private:
@@ -206,5 +206,5 @@ index 52886fb85..0d9a9298f 100644
i_wallet2_callback* m_callback; i_wallet2_callback* m_callback;
hw::device::device_type m_key_device_type; hw::device::device_type m_key_device_type;
-- --
2.45.0 2.39.2
+7 -7
View File
@@ -1,7 +1,7 @@
From f91e92ddaa7c12dcc8f38ac37ff852446bd10722 Mon Sep 17 00:00:00 2001 From 1b938a3f98468de3fa06b21a458104cf32831586 Mon Sep 17 00:00:00 2001
From: Czarek Nakamoto <cyjan@mrcyjanek.net> From: Czarek Nakamoto <cyjan@mrcyjanek.net>
Date: Thu, 16 May 2024 17:28:59 +0200 Date: Thu, 16 May 2024 17:28:59 +0200
Subject: [PATCH] WIP: UR functions Subject: [PATCH 12/16] WIP: UR functions
This commit adds UR functions for UR tasks, This commit adds UR functions for UR tasks,
I believe that the right place to get I believe that the right place to get
@@ -283,7 +283,7 @@ index 30065a7fa..a94b23f75 100644
uint64_t minMixinCount() const override; uint64_t minMixinCount() const override;
diff --git a/src/wallet/api/wallet.cpp b/src/wallet/api/wallet.cpp diff --git a/src/wallet/api/wallet.cpp b/src/wallet/api/wallet.cpp
index 90e107137..ac3e6d51e 100644 index 306c9b8ae..5ca190c7d 100644
--- a/src/wallet/api/wallet.cpp --- a/src/wallet/api/wallet.cpp
+++ b/src/wallet/api/wallet.cpp +++ b/src/wallet/api/wallet.cpp
@@ -48,6 +48,7 @@ @@ -48,6 +48,7 @@
@@ -726,10 +726,10 @@ index 1c3a11c39..2bbb32c8b 100644
/*! /*!
* \brief scanTransactions - scan a list of transaction ids, this operation may reveal the txids to the remote node and affect your privacy * \brief scanTransactions - scan a list of transaction ids, this operation may reveal the txids to the remote node and affect your privacy
diff --git a/src/wallet/wallet2.cpp b/src/wallet/wallet2.cpp diff --git a/src/wallet/wallet2.cpp b/src/wallet/wallet2.cpp
index e5773a26b..23b56810e 100644 index 4de226a4a..7d97e683b 100644
--- a/src/wallet/wallet2.cpp --- a/src/wallet/wallet2.cpp
+++ b/src/wallet/wallet2.cpp +++ b/src/wallet/wallet2.cpp
@@ -14051,33 +14051,40 @@ crypto::public_key wallet2::get_tx_pub_key_from_received_outs(const tools::walle @@ -14056,33 +14056,40 @@ crypto::public_key wallet2::get_tx_pub_key_from_received_outs(const tools::walle
bool wallet2::export_key_images(const std::string &filename, bool all) const bool wallet2::export_key_images(const std::string &filename, bool all) const
{ {
@@ -793,7 +793,7 @@ index e5773a26b..23b56810e 100644
//---------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------
std::pair<uint64_t, std::vector<std::pair<crypto::key_image, crypto::signature>>> wallet2::export_key_images(bool all) const std::pair<uint64_t, std::vector<std::pair<crypto::key_image, crypto::signature>>> wallet2::export_key_images(bool all) const
{ {
@@ -14132,53 +14139,60 @@ std::pair<uint64_t, std::vector<std::pair<crypto::key_image, crypto::signature>> @@ -14137,53 +14144,60 @@ std::pair<uint64_t, std::vector<std::pair<crypto::key_image, crypto::signature>>
return std::make_pair(offset, ski); return std::make_pair(offset, ski);
} }
@@ -873,7 +873,7 @@ index e5773a26b..23b56810e 100644
ski.push_back(std::make_pair(key_image, signature)); ski.push_back(std::make_pair(key_image, signature));
} }
diff --git a/src/wallet/wallet2.h b/src/wallet/wallet2.h diff --git a/src/wallet/wallet2.h b/src/wallet/wallet2.h
index 0d9a9298f..539d5056c 100644 index 3ce710433..9ff169a40 100644
--- a/src/wallet/wallet2.h --- a/src/wallet/wallet2.h
+++ b/src/wallet/wallet2.h +++ b/src/wallet/wallet2.h
@@ -1650,9 +1650,11 @@ private: @@ -1650,9 +1650,11 @@ private:
@@ -1,7 +1,7 @@
From 5815bf9d5dd2420915fafb73a3314eb467a489a7 Mon Sep 17 00:00:00 2001 From 1b978a697e1bdb3144bc08f998d125ac593fa971 Mon Sep 17 00:00:00 2001
From: Czarek Nakamoto <cyjan@mrcyjanek.net> From: Czarek Nakamoto <cyjan@mrcyjanek.net>
Date: Thu, 23 May 2024 08:02:49 +0200 Date: Thu, 23 May 2024 08:02:49 +0200
Subject: [PATCH] android ndk version bump Subject: [PATCH 13/16] android ndk version bump
--- ---
contrib/depends/hosts/android.mk | 16 +++++++++++++--- contrib/depends/hosts/android.mk | 16 +++++++++++++---
@@ -1,7 +1,7 @@
From 9b7623e565a31db296f20cac00ddde58e8e83fe2 Mon Sep 17 00:00:00 2001 From 2dfa0442a096f61fe16a5bc569a4d0ab9ddb7de5 Mon Sep 17 00:00:00 2001
From: Czarek Nakamoto <cyjan@mrcyjanek.net> From: Czarek Nakamoto <cyjan@mrcyjanek.net>
Date: Wed, 12 Jun 2024 15:48:01 +0200 Date: Wed, 12 Jun 2024 15:48:01 +0200
Subject: [PATCH] rename arm -> armv7a Subject: [PATCH 14/16] rename arm -> armv7a
--- ---
contrib/depends/hosts/android.mk | 2 +- contrib/depends/hosts/android.mk | 2 +-
@@ -1,7 +1,7 @@
From 50e09195fcb79debf5951c69717b9d4f239ed8e1 Mon Sep 17 00:00:00 2001 From 6e7a9770e4f18f931f5caca7dec2a197e779afbc Mon Sep 17 00:00:00 2001
From: Czarek Nakamoto <cyjan@mrcyjanek.net> From: Czarek Nakamoto <cyjan@mrcyjanek.net>
Date: Mon, 24 Jun 2024 10:49:12 +0200 Date: Mon, 24 Jun 2024 10:49:12 +0200
Subject: [PATCH] use proper error handling in get_seed Subject: [PATCH 15/16] use proper error handling in get_seed
--- ---
src/wallet/api/wallet.cpp | 17 ++++++++++++----- src/wallet/api/wallet.cpp | 17 ++++++++++++-----
@@ -9,7 +9,7 @@ Subject: [PATCH] use proper error handling in get_seed
2 files changed, 15 insertions(+), 5 deletions(-) 2 files changed, 15 insertions(+), 5 deletions(-)
diff --git a/src/wallet/api/wallet.cpp b/src/wallet/api/wallet.cpp diff --git a/src/wallet/api/wallet.cpp b/src/wallet/api/wallet.cpp
index ac3e6d51e..8bdd75a5a 100644 index 5ca190c7d..a307d35a7 100644
--- a/src/wallet/api/wallet.cpp --- a/src/wallet/api/wallet.cpp
+++ b/src/wallet/api/wallet.cpp +++ b/src/wallet/api/wallet.cpp
@@ -880,12 +880,19 @@ bool WalletImpl::close(bool store) @@ -880,12 +880,19 @@ bool WalletImpl::close(bool store)
@@ -38,7 +38,7 @@ index ac3e6d51e..8bdd75a5a 100644
bool WalletImpl::getPolyseed(std::string &seed_words, std::string &passphrase) const bool WalletImpl::getPolyseed(std::string &seed_words, std::string &passphrase) const
diff --git a/src/wallet/wallet2.cpp b/src/wallet/wallet2.cpp diff --git a/src/wallet/wallet2.cpp b/src/wallet/wallet2.cpp
index 23b56810e..f7bdf2429 100644 index 7d97e683b..8e44806fc 100644
--- a/src/wallet/wallet2.cpp --- a/src/wallet/wallet2.cpp
+++ b/src/wallet/wallet2.cpp +++ b/src/wallet/wallet2.cpp
@@ -1452,11 +1452,13 @@ bool wallet2::get_seed(epee::wipeable_string& electrum_words, const epee::wipeab @@ -1452,11 +1452,13 @@ bool wallet2::get_seed(epee::wipeable_string& electrum_words, const epee::wipeab
@@ -1,7 +1,7 @@
From 07f41c8afda9eafca519d44f5c6c34316f5ebb71 Mon Sep 17 00:00:00 2001 From 6b40191d35df998280e1d6e19ff9bf4bce54d5bf Mon Sep 17 00:00:00 2001
From: Czarek Nakamoto <cyjan@mrcyjanek.net> From: Czarek Nakamoto <cyjan@mrcyjanek.net>
Date: Wed, 26 Jun 2024 15:04:38 +0200 Date: Wed, 26 Jun 2024 15:04:38 +0200
Subject: [PATCH] add dummy device for ledger Subject: [PATCH 16/16] add dummy device for ledger
--- ---
CMakeLists.txt | 6 +- CMakeLists.txt | 6 +-
@@ -414,7 +414,7 @@ index 03058c4f1..506f27c4a 100644
unsigned char buffer_send[BUFFER_SEND_SIZE]; unsigned char buffer_send[BUFFER_SEND_SIZE];
unsigned int length_recv; unsigned int length_recv;
diff --git a/src/wallet/api/wallet.cpp b/src/wallet/api/wallet.cpp diff --git a/src/wallet/api/wallet.cpp b/src/wallet/api/wallet.cpp
index 8bdd75a5a..d8661b213 100644 index a307d35a7..3ead385ec 100644
--- a/src/wallet/api/wallet.cpp --- a/src/wallet/api/wallet.cpp
+++ b/src/wallet/api/wallet.cpp +++ b/src/wallet/api/wallet.cpp
@@ -49,6 +49,9 @@ @@ -49,6 +49,9 @@
@@ -427,7 +427,7 @@ index 8bdd75a5a..d8661b213 100644
using namespace std; using namespace std;
using namespace cryptonote; using namespace cryptonote;
@@ -3299,4 +3302,94 @@ uint64_t WalletImpl::getBytesSent() @@ -3298,4 +3301,94 @@ uint64_t WalletImpl::getBytesSent()
return m_wallet->get_bytes_sent(); return m_wallet->get_bytes_sent();
} }
+29
View File
@@ -0,0 +1,29 @@
From 8f0b07a685b5971f4deb66bb8c53e6da4065370c Mon Sep 17 00:00:00 2001
From: cyan <cyjan@mrcyjanek.net>
Date: Thu, 25 Jul 2024 20:06:29 +0000
Subject: [PATCH] added deps
---
external/polyseed | 1 +
external/utf8proc | 1 +
2 files changed, 2 insertions(+)
create mode 160000 external/polyseed
create mode 160000 external/utf8proc
diff --git a/external/polyseed b/external/polyseed
new file mode 160000
index 000000000..dfb05d8ed
--- /dev/null
+++ b/external/polyseed
@@ -0,0 +1 @@
+Subproject commit dfb05d8edb682b0e8f743b1b70c9131712ff4157
diff --git a/external/utf8proc b/external/utf8proc
new file mode 160000
index 000000000..5568eff49
--- /dev/null
+++ b/external/utf8proc
@@ -0,0 +1 @@
+Subproject commit 5568eff49a6bf417b6fdef2808df9db8d3d68a76
--
2.39.2
@@ -1,6 +1,6 @@
#ifndef MONEROC_CHECKSUMS #ifndef MONEROC_CHECKSUMS
#define MONEROC_CHECKSUMS #define MONEROC_CHECKSUMS
const char * WOWNERO_wallet2_api_c_h_sha256 = "8a8d386dd5d996c89a0586c55b295ef95ca584bf1ffa26255152b291910a0a77"; const char * WOWNERO_wallet2_api_c_h_sha256 = "8a8d386dd5d996c89a0586c55b295ef95ca584bf1ffa26255152b291910a0a77";
const char * WOWNERO_wallet2_api_c_cpp_sha256 = "ed400bd9c4709383ffd42a9fbe68be37a2a47a42f92eacaf3a2dbd248c422739"; const char * WOWNERO_wallet2_api_c_cpp_sha256 = "ed400bd9c4709383ffd42a9fbe68be37a2a47a42f92eacaf3a2dbd248c422739-e25963cbc11ca0a0fe5eb34b9bd7c72e4f51b795";
const char * WOWNERO_wallet2_api_c_exp_sha256 = "3673e40e1a7115552276d1d541f6e4d5a0fef47c40fff7b988f49923af84c8a4"; const char * WOWNERO_wallet2_api_c_exp_sha256 = "3673e40e1a7115552276d1d541f6e4d5a0fef47c40fff7b988f49923af84c8a4";
#endif #endif