From 0c19e446116f745b90a2e90d3243388c70adef2d Mon Sep 17 00:00:00 2001 From: Czarek Nakamoto Date: Tue, 26 Nov 2024 17:05:57 -0500 Subject: macos fixes, wownero fixes, idk what else, please help me --- .gitmodules | 7 +- contrib/depends/packages/packages.mk | 2 +- contrib/depends/packages/wownero_seed.mk | 29 -- .../0001-fix-duplicate-symbol-error.patch | 497 --------------------- contrib/depends/toolchain.cmake.in | 2 + monero_libwallet2_api_c/CMakeLists.txt | 28 +- ...et-background-sync-with-just-the-view-key.patch | 44 +- ...issing-___clear_cache-when-targetting-iOS.patch | 6 +- .../wownero/0003-fix-is_trivially_copyable.patch | 6 +- patches/wownero/0004-store-crash-fix.patch | 12 +- patches/wownero/0005-Update-android-ndk.patch | 14 +- .../0006-uint64_t-missing-definition-fix.patch | 6 +- ...007-use-proper-error-handling-in-get_seed.patch | 8 +- patches/wownero/0008-UR-functions.patch | 38 +- .../wownero/0009-add-dummy-device-for-ledger.patch | 26 +- patches/wownero/0010-polyseed.patch | 66 +-- patches/wownero/0011-coin-control.patch | 26 +- ...oding-and-tx-key-getter-for-PendingTransc.patch | 10 +- ...dd-recoverDeterministicWalletFromSpendKey.patch | 14 +- patches/wownero/0014-build-wownero-seed.patch | 16 +- .../0015-add-monero-submodule-support.patch | 14 +- ...-include-locale-only-when-targeting-WIN32.patch | 83 +--- patches/wownero/0017-ledger-dummy-fix.patch | 157 +++++++ .../src/main/cpp/wallet2_api_c.cpp | 2 +- wownero_libwallet2_api_c/wownero-seed | 1 + 25 files changed, 339 insertions(+), 775 deletions(-) delete mode 100644 contrib/depends/packages/wownero_seed.mk delete mode 100644 contrib/depends/patches/wownero_seed/0001-fix-duplicate-symbol-error.patch create mode 100644 patches/wownero/0017-ledger-dummy-fix.patch create mode 160000 wownero_libwallet2_api_c/wownero-seed diff --git a/.gitmodules b/.gitmodules index 74fba9d..ecf86b2 100644 --- a/.gitmodules +++ b/.gitmodules @@ -6,4 +6,9 @@ [submodule "wownero"] path = wownero url = https://codeberg.org/wownero/wownero - shallow = true \ No newline at end of file + shallow = true +[submodule "wownero_libwallet2_api_c/wownero-seed"] + path = wownero_libwallet2_api_c/wownero-seed + url = https://github.com/MrCyjaneK/wownero-seed + branch = cyjan-namespace2 + shallow = true diff --git a/contrib/depends/packages/packages.mk b/contrib/depends/packages/packages.mk index 1e579f5..9059d9b 100644 --- a/contrib/depends/packages/packages.mk +++ b/contrib/depends/packages/packages.mk @@ -1,4 +1,4 @@ -packages:=boost openssl zeromq libiconv expat unbound polyseed wownero_seed +packages:=boost openssl zeromq libiconv expat unbound polyseed # ccache is useless in gitian builds ifneq ($(GITIAN),1) diff --git a/contrib/depends/packages/wownero_seed.mk b/contrib/depends/packages/wownero_seed.mk deleted file mode 100644 index 8ed3030..0000000 --- a/contrib/depends/packages/wownero_seed.mk +++ /dev/null @@ -1,29 +0,0 @@ -package=wownero_seed -$(package)_version=0.3.0 -$(package)_download_path=https://github.com/MrCyjaneK/wownero-seed/archive/ -$(package)_download_file=d3f68be347facfeebbd8f68fd74982c705cb917b.tar.gz -$(package)_file_name=$(package)-$($(package)_version).tar.gz -$(package)_sha256_hash=3b59ccde08e0fee204680240af4b270a18a677aa0e6036a3504570193d232406 -$(package)_patches=0001-fix-duplicate-symbol-error.patch - -define $(package)_preprocess_cmds - patch -p1 < $($(package)_patch_dir)/0001-fix-duplicate-symbol-error.patch -endef - - -define $(package)_config_cmds - CC="$($(package)_cc)" CXX="$($(package)_cxx)" cmake -DCMAKE_INSTALL_PREFIX="$(host_prefix)" -DCMAKE_POSITION_INDEPENDENT_CODE=ON . -endef - -define $(package)_set_vars - $(package)_build_opts=CC="$($(package)_cc)" CXX="$($(package)_cxx)" -endef - - -define $(package)_build_cmds - $(MAKE) -j$(NUM_CORES) VERBOSE=1 -endef - -define $(package)_stage_cmds - $(MAKE) -j$(NUM_CORES) DESTDIR=$($(package)_staging_dir) install -endef diff --git a/contrib/depends/patches/wownero_seed/0001-fix-duplicate-symbol-error.patch b/contrib/depends/patches/wownero_seed/0001-fix-duplicate-symbol-error.patch deleted file mode 100644 index a8f8fe0..0000000 --- a/contrib/depends/patches/wownero_seed/0001-fix-duplicate-symbol-error.patch +++ /dev/null @@ -1,497 +0,0 @@ -From 4be93209afb80b11834a0849391ee6eeb68aec4a Mon Sep 17 00:00:00 2001 -From: Czarek Nakamoto -Date: Thu, 25 Apr 2024 09:37:37 +0200 -Subject: [PATCH] fix duplicate symbol error - ---- - src/argon2/argon2.c | 8 +++--- - src/argon2/argon2.h | 4 +-- - src/argon2/blake2/blake2.h | 12 ++++----- - src/argon2/blake2/blake2b.c | 46 ++++++++++++++++---------------- - src/argon2/core.c | 52 ++++++++++++++++++------------------- - src/argon2/core.h | 17 ++++++------ - src/argon2/ref.c | 2 +- - 7 files changed, 70 insertions(+), 71 deletions(-) - -diff --git a/src/argon2/argon2.c b/src/argon2/argon2.c -index e9882b7..470dc26 100644 ---- a/src/argon2/argon2.c -+++ b/src/argon2/argon2.c -@@ -37,7 +37,7 @@ const char *argon2_type2string(argon2_type type, int uppercase) { - - int argon2_ctx(argon2_context *context, argon2_type type) { - /* 1. Validate all inputs */ -- int result = validate_inputs(context); -+ int result = validate_inputs_wowseed(context); - uint32_t memory_blocks, segment_length; - argon2_instance_t instance; - -@@ -78,20 +78,20 @@ int argon2_ctx(argon2_context *context, argon2_type type) { - /* 3. Initialization: Hashing inputs, allocating memory, filling first - * blocks - */ -- result = initialize(&instance, context); -+ result = initialize_wowseed(&instance, context); - - if (ARGON2_OK != result) { - return result; - } - - /* 4. Filling memory */ -- result = fill_memory_blocks(&instance); -+ result = _fill_memory_blocks_wowseed(&instance); - - if (ARGON2_OK != result) { - return result; - } - /* 5. Finalization */ -- finalize(context, &instance); -+ finalize_wowseed(context, &instance); - - return ARGON2_OK; - } -diff --git a/src/argon2/argon2.h b/src/argon2/argon2.h -index 1b471f6..f60e269 100644 ---- a/src/argon2/argon2.h -+++ b/src/argon2/argon2.h -@@ -185,7 +185,7 @@ typedef void (*deallocate_fptr)(uint8_t *memory, size_t bytes_to_allocate); - * 4 parallel lanes. - * You want to erase the password, but you're OK with last pass not being - * erased. You want to use the default memory allocator. -- * Then you initialize: -+ * Then you initialize_wowseed: - Argon2_Context(out,8,pwd,32,salt,16,NULL,0,NULL,0,5,1<<20,4,4,NULL,NULL,true,false,false,false) - */ - typedef struct Argon2_Context { -@@ -329,7 +329,7 @@ ARGON2_PUBLIC int argon2_hash(const uint32_t t_cost, const uint32_t m_cost, - - /** - * Verifies a password against an encoded string -- * Encoded string is restricted as in validate_inputs() -+ * Encoded string is restricted as in validate_inputs_wowseed() - * @param encoded String encoding parameters, salt, hash - * @param pwd Pointer to password - * @pre Returns ARGON2_OK if successful -diff --git a/src/argon2/blake2/blake2.h b/src/argon2/blake2/blake2.h -index 9f97e1c..25b445d 100644 ---- a/src/argon2/blake2/blake2.h -+++ b/src/argon2/blake2/blake2.h -@@ -67,15 +67,15 @@ enum { - }; - - /* Streaming API */ --ARGON2_LOCAL int blake2b_init(blake2b_state *S, size_t outlen); --ARGON2_LOCAL int blake2b_init_key(blake2b_state *S, size_t outlen, const void *key, -+ARGON2_LOCAL int blake2b_init_wowseed(blake2b_state *S, size_t outlen); -+ARGON2_LOCAL int blake2b_init_key_wowseed(blake2b_state *S, size_t outlen, const void *key, - size_t keylen); --ARGON2_LOCAL int blake2b_init_param(blake2b_state *S, const blake2b_param *P); --ARGON2_LOCAL int blake2b_update(blake2b_state *S, const void *in, size_t inlen); --ARGON2_LOCAL int blake2b_final(blake2b_state *S, void *out, size_t outlen); -+ARGON2_LOCAL int blake2b_init_param_wowseed(blake2b_state *S, const blake2b_param *P); -+ARGON2_LOCAL int blake2b_update_wowseed(blake2b_state *S, const void *in, size_t inlen); -+ARGON2_LOCAL int blake2b_final_wowseed(blake2b_state *S, void *out, size_t outlen); - - /* Simple API */ --ARGON2_LOCAL int blake2b(void *out, size_t outlen, const void *in, size_t inlen, -+ARGON2_LOCAL int blake2b_wowseed(void *out, size_t outlen, const void *in, size_t inlen, - const void *key, size_t keylen); - - /* Argon2 Team - Begin Code */ -diff --git a/src/argon2/blake2/blake2b.c b/src/argon2/blake2/blake2b.c -index ca05df5..8138b86 100644 ---- a/src/argon2/blake2/blake2b.c -+++ b/src/argon2/blake2/blake2b.c -@@ -70,7 +70,7 @@ static BLAKE2_INLINE void blake2b_init0(blake2b_state *S) { - memcpy(S->h, blake2b_IV, sizeof(S->h)); - } - --int blake2b_init_param(blake2b_state *S, const blake2b_param *P) { -+int blake2b_init_param_wowseed(blake2b_state *S, const blake2b_param *P) { - const unsigned char *p = (const unsigned char *)P; - unsigned int i; - -@@ -88,7 +88,7 @@ int blake2b_init_param(blake2b_state *S, const blake2b_param *P) { - } - - /* Sequential blake2b initialization */ --int blake2b_init(blake2b_state *S, size_t outlen) { -+int blake2b_init_wowseed(blake2b_state *S, size_t outlen) { - blake2b_param P; - - if (S == NULL) { -@@ -113,10 +113,10 @@ int blake2b_init(blake2b_state *S, size_t outlen) { - memset(P.salt, 0, sizeof(P.salt)); - memset(P.personal, 0, sizeof(P.personal)); - -- return blake2b_init_param(S, &P); -+ return blake2b_init_param_wowseed(S, &P); - } - --int blake2b_init_key(blake2b_state *S, size_t outlen, const void *key, -+int blake2b_init_key_wowseed(blake2b_state *S, size_t outlen, const void *key, - size_t keylen) { - blake2b_param P; - -@@ -147,7 +147,7 @@ int blake2b_init_key(blake2b_state *S, size_t outlen, const void *key, - memset(P.salt, 0, sizeof(P.salt)); - memset(P.personal, 0, sizeof(P.personal)); - -- if (blake2b_init_param(S, &P) < 0) { -+ if (blake2b_init_param_wowseed(S, &P) < 0) { - blake2b_invalidate_state(S); - return -1; - } -@@ -156,7 +156,7 @@ int blake2b_init_key(blake2b_state *S, size_t outlen, const void *key, - uint8_t block[BLAKE2B_BLOCKBYTES]; - memset(block, 0, BLAKE2B_BLOCKBYTES); - memcpy(block, key, keylen); -- blake2b_update(S, block, BLAKE2B_BLOCKBYTES); -+ blake2b_update_wowseed(S, block, BLAKE2B_BLOCKBYTES); - /* Burn the key from stack */ - clear_internal_memory(block, BLAKE2B_BLOCKBYTES); - } -@@ -221,7 +221,7 @@ static void blake2b_compress(blake2b_state *S, const uint8_t *block) { - #undef ROUND - } - --int blake2b_update(blake2b_state *S, const void *in, size_t inlen) { -+int blake2b_update_wowseed(blake2b_state *S, const void *in, size_t inlen) { - const uint8_t *pin = (const uint8_t *)in; - - if (inlen == 0) { -@@ -261,7 +261,7 @@ int blake2b_update(blake2b_state *S, const void *in, size_t inlen) { - return 0; - } - --int blake2b_final(blake2b_state *S, void *out, size_t outlen) { -+int blake2b_final_wowseed(blake2b_state *S, void *out, size_t outlen) { - uint8_t buffer[BLAKE2B_OUTBYTES] = {0}; - unsigned int i; - -@@ -291,7 +291,7 @@ int blake2b_final(blake2b_state *S, void *out, size_t outlen) { - return 0; - } - --int blake2b(void *out, size_t outlen, const void *in, size_t inlen, -+int blake2b_wowseed(void *out, size_t outlen, const void *in, size_t inlen, - const void *key, size_t keylen) { - blake2b_state S; - int ret = -1; -@@ -310,19 +310,19 @@ int blake2b(void *out, size_t outlen, const void *in, size_t inlen, - } - - if (keylen > 0) { -- if (blake2b_init_key(&S, outlen, key, keylen) < 0) { -+ if (blake2b_init_key_wowseed(&S, outlen, key, keylen) < 0) { - goto fail; - } - } else { -- if (blake2b_init(&S, outlen) < 0) { -+ if (blake2b_init_wowseed(&S, outlen) < 0) { - goto fail; - } - } - -- if (blake2b_update(&S, in, inlen) < 0) { -+ if (blake2b_update_wowseed(&S, in, inlen) < 0) { - goto fail; - } -- ret = blake2b_final(&S, out, outlen); -+ ret = blake2b_final_wowseed(&S, out, outlen); - - fail: - clear_internal_memory(&S, sizeof(S)); -@@ -352,25 +352,25 @@ int blake2b_long(void *pout, size_t outlen, const void *in, size_t inlen) { - } while ((void)0, 0) - - if (outlen <= BLAKE2B_OUTBYTES) { -- TRY(blake2b_init(&blake_state, outlen)); -- TRY(blake2b_update(&blake_state, outlen_bytes, sizeof(outlen_bytes))); -- TRY(blake2b_update(&blake_state, in, inlen)); -- TRY(blake2b_final(&blake_state, out, outlen)); -+ TRY(blake2b_init_wowseed(&blake_state, outlen)); -+ TRY(blake2b_update_wowseed(&blake_state, outlen_bytes, sizeof(outlen_bytes))); -+ TRY(blake2b_update_wowseed(&blake_state, in, inlen)); -+ TRY(blake2b_final_wowseed(&blake_state, out, outlen)); - } else { - uint32_t toproduce; - uint8_t out_buffer[BLAKE2B_OUTBYTES]; - uint8_t in_buffer[BLAKE2B_OUTBYTES]; -- TRY(blake2b_init(&blake_state, BLAKE2B_OUTBYTES)); -- TRY(blake2b_update(&blake_state, outlen_bytes, sizeof(outlen_bytes))); -- TRY(blake2b_update(&blake_state, in, inlen)); -- TRY(blake2b_final(&blake_state, out_buffer, BLAKE2B_OUTBYTES)); -+ TRY(blake2b_init_wowseed(&blake_state, BLAKE2B_OUTBYTES)); -+ TRY(blake2b_update_wowseed(&blake_state, outlen_bytes, sizeof(outlen_bytes))); -+ TRY(blake2b_update_wowseed(&blake_state, in, inlen)); -+ TRY(blake2b_final_wowseed(&blake_state, out_buffer, BLAKE2B_OUTBYTES)); - memcpy(out, out_buffer, BLAKE2B_OUTBYTES / 2); - out += BLAKE2B_OUTBYTES / 2; - toproduce = (uint32_t)outlen - BLAKE2B_OUTBYTES / 2; - - while (toproduce > BLAKE2B_OUTBYTES) { - memcpy(in_buffer, out_buffer, BLAKE2B_OUTBYTES); -- TRY(blake2b(out_buffer, BLAKE2B_OUTBYTES, in_buffer, -+ TRY(blake2b_wowseed(out_buffer, BLAKE2B_OUTBYTES, in_buffer, - BLAKE2B_OUTBYTES, NULL, 0)); - memcpy(out, out_buffer, BLAKE2B_OUTBYTES / 2); - out += BLAKE2B_OUTBYTES / 2; -@@ -378,7 +378,7 @@ int blake2b_long(void *pout, size_t outlen, const void *in, size_t inlen) { - } - - memcpy(in_buffer, out_buffer, BLAKE2B_OUTBYTES); -- TRY(blake2b(out_buffer, toproduce, in_buffer, BLAKE2B_OUTBYTES, NULL, -+ TRY(blake2b_wowseed(out_buffer, toproduce, in_buffer, BLAKE2B_OUTBYTES, NULL, - 0)); - memcpy(out, out_buffer, toproduce); - } -diff --git a/src/argon2/core.c b/src/argon2/core.c -index 5eafe08..c25eb53 100644 ---- a/src/argon2/core.c -+++ b/src/argon2/core.c -@@ -151,7 +151,7 @@ void clear_internal_memory(void *v, size_t n) { - } - } - --void finalize(const argon2_context *context, argon2_instance_t *instance) { -+void finalize_wowseed(const argon2_context *context, argon2_instance_t *instance) { - if (context != NULL && instance != NULL) { - block blockhash; - uint32_t l; -@@ -256,7 +256,7 @@ uint32_t index_alpha(const argon2_instance_t *instance, - } - - /* Single-threaded version for p=1 case */ --static int fill_memory_blocks_st(argon2_instance_t *instance) { -+static int _fill_memory_blocks_wowseed_st(argon2_instance_t *instance) { - uint32_t r, s, l; - - for (r = 0; r < instance->passes; ++r) { -@@ -273,14 +273,14 @@ static int fill_memory_blocks_st(argon2_instance_t *instance) { - return ARGON2_OK; - } - --int fill_memory_blocks(argon2_instance_t *instance) { -+int _fill_memory_blocks_wowseed(argon2_instance_t *instance) { - if (instance == NULL || instance->lanes == 0) { - return ARGON2_INCORRECT_PARAMETER; - } -- return fill_memory_blocks_st(instance); -+ return _fill_memory_blocks_wowseed_st(instance); - } - --int validate_inputs(const argon2_context *context) { -+int validate_inputs_wowseed(const argon2_context *context) { - if (NULL == context) { - return ARGON2_INCORRECT_PARAMETER; - } -@@ -407,7 +407,7 @@ int validate_inputs(const argon2_context *context) { - return ARGON2_OK; - } - --void fill_first_blocks(uint8_t *blockhash, const argon2_instance_t *instance) { -+void fill_first_blocks_wowseed(uint8_t *blockhash, const argon2_instance_t *instance) { - uint32_t l; - /* Make the first and second block in each lane as G(H0||0||i) or - G(H0||1||i) */ -@@ -430,7 +430,7 @@ void fill_first_blocks(uint8_t *blockhash, const argon2_instance_t *instance) { - clear_internal_memory(blockhash_bytes, ARGON2_BLOCK_SIZE); - } - --void initial_hash(uint8_t *blockhash, argon2_context *context, -+void initial_hash_wowseed(uint8_t *blockhash, argon2_context *context, - argon2_type type) { - blake2b_state BlakeHash; - uint8_t value[sizeof(uint32_t)]; -@@ -439,31 +439,31 @@ void initial_hash(uint8_t *blockhash, argon2_context *context, - return; - } - -- blake2b_init(&BlakeHash, ARGON2_PREHASH_DIGEST_LENGTH); -+ blake2b_init_wowseed(&BlakeHash, ARGON2_PREHASH_DIGEST_LENGTH); - - store32(&value, context->lanes); -- blake2b_update(&BlakeHash, (const uint8_t *)&value, sizeof(value)); -+ blake2b_update_wowseed(&BlakeHash, (const uint8_t *)&value, sizeof(value)); - - store32(&value, context->outlen); -- blake2b_update(&BlakeHash, (const uint8_t *)&value, sizeof(value)); -+ blake2b_update_wowseed(&BlakeHash, (const uint8_t *)&value, sizeof(value)); - - store32(&value, context->m_cost); -- blake2b_update(&BlakeHash, (const uint8_t *)&value, sizeof(value)); -+ blake2b_update_wowseed(&BlakeHash, (const uint8_t *)&value, sizeof(value)); - - store32(&value, context->t_cost); -- blake2b_update(&BlakeHash, (const uint8_t *)&value, sizeof(value)); -+ blake2b_update_wowseed(&BlakeHash, (const uint8_t *)&value, sizeof(value)); - - store32(&value, context->version); -- blake2b_update(&BlakeHash, (const uint8_t *)&value, sizeof(value)); -+ blake2b_update_wowseed(&BlakeHash, (const uint8_t *)&value, sizeof(value)); - - store32(&value, (uint32_t)type); -- blake2b_update(&BlakeHash, (const uint8_t *)&value, sizeof(value)); -+ blake2b_update_wowseed(&BlakeHash, (const uint8_t *)&value, sizeof(value)); - - store32(&value, context->pwdlen); -- blake2b_update(&BlakeHash, (const uint8_t *)&value, sizeof(value)); -+ blake2b_update_wowseed(&BlakeHash, (const uint8_t *)&value, sizeof(value)); - - if (context->pwd != NULL) { -- blake2b_update(&BlakeHash, (const uint8_t *)context->pwd, -+ blake2b_update_wowseed(&BlakeHash, (const uint8_t *)context->pwd, - context->pwdlen); - - if (context->flags & ARGON2_FLAG_CLEAR_PASSWORD) { -@@ -473,18 +473,18 @@ void initial_hash(uint8_t *blockhash, argon2_context *context, - } - - store32(&value, context->saltlen); -- blake2b_update(&BlakeHash, (const uint8_t *)&value, sizeof(value)); -+ blake2b_update_wowseed(&BlakeHash, (const uint8_t *)&value, sizeof(value)); - - if (context->salt != NULL) { -- blake2b_update(&BlakeHash, (const uint8_t *)context->salt, -+ blake2b_update_wowseed(&BlakeHash, (const uint8_t *)context->salt, - context->saltlen); - } - - store32(&value, context->secretlen); -- blake2b_update(&BlakeHash, (const uint8_t *)&value, sizeof(value)); -+ blake2b_update_wowseed(&BlakeHash, (const uint8_t *)&value, sizeof(value)); - - if (context->secret != NULL) { -- blake2b_update(&BlakeHash, (const uint8_t *)context->secret, -+ blake2b_update_wowseed(&BlakeHash, (const uint8_t *)context->secret, - context->secretlen); - - if (context->flags & ARGON2_FLAG_CLEAR_SECRET) { -@@ -494,17 +494,17 @@ void initial_hash(uint8_t *blockhash, argon2_context *context, - } - - store32(&value, context->adlen); -- blake2b_update(&BlakeHash, (const uint8_t *)&value, sizeof(value)); -+ blake2b_update_wowseed(&BlakeHash, (const uint8_t *)&value, sizeof(value)); - - if (context->ad != NULL) { -- blake2b_update(&BlakeHash, (const uint8_t *)context->ad, -+ blake2b_update_wowseed(&BlakeHash, (const uint8_t *)context->ad, - context->adlen); - } - -- blake2b_final(&BlakeHash, blockhash, ARGON2_PREHASH_DIGEST_LENGTH); -+ blake2b_final_wowseed(&BlakeHash, blockhash, ARGON2_PREHASH_DIGEST_LENGTH); - } - --int initialize(argon2_instance_t *instance, argon2_context *context) { -+int initialize_wowseed(argon2_instance_t *instance, argon2_context *context) { - uint8_t blockhash[ARGON2_PREHASH_SEED_LENGTH]; - int result = ARGON2_OK; - -@@ -523,7 +523,7 @@ int initialize(argon2_instance_t *instance, argon2_context *context) { - /* H_0 + 8 extra bytes to produce the first blocks */ - /* uint8_t blockhash[ARGON2_PREHASH_SEED_LENGTH]; */ - /* Hashing all inputs */ -- initial_hash(blockhash, context, instance->type); -+ initial_hash_wowseed(blockhash, context, instance->type); - /* Zeroing 8 extra bytes */ - clear_internal_memory(blockhash + ARGON2_PREHASH_DIGEST_LENGTH, - ARGON2_PREHASH_SEED_LENGTH - -@@ -535,7 +535,7 @@ int initialize(argon2_instance_t *instance, argon2_context *context) { - - /* 3. Creating first blocks, we always have at least two blocks in a slice - */ -- fill_first_blocks(blockhash, instance); -+ fill_first_blocks_wowseed(blockhash, instance); - /* Clearing the hash */ - clear_internal_memory(blockhash, ARGON2_PREHASH_SEED_LENGTH); - -diff --git a/src/argon2/core.h b/src/argon2/core.h -index 78000ba..6b0154c 100644 ---- a/src/argon2/core.h -+++ b/src/argon2/core.h -@@ -53,7 +53,7 @@ typedef struct block_ { uint64_t v[ARGON2_QWORDS_IN_BLOCK]; } block; - - /*****************Functions that work with the block******************/ - --/* Initialize each byte of the block with @in */ -+/* initialize_wowseed each byte of the block with @in */ - void init_block_value(block *b, uint8_t in); - - /* Copy block @src to block @dst */ -@@ -158,7 +158,7 @@ uint32_t index_alpha(const argon2_instance_t *instance, - * @return ARGON2_OK if everything is all right, otherwise one of error codes - * (all defined in - */ --int validate_inputs(const argon2_context *context); -+int validate_inputs_wowseed(const argon2_context *context); - - /* - * Hashes all the inputs into @a blockhash[PREHASH_DIGEST_LENGTH], clears -@@ -170,28 +170,27 @@ int validate_inputs(const argon2_context *context); - * @pre @a blockhash must have at least @a PREHASH_DIGEST_LENGTH bytes - * allocated - */ --void initial_hash(uint8_t *blockhash, argon2_context *context, -+void initial_hash_wowseed(uint8_t *blockhash, argon2_context *context, - argon2_type type); -- - /* - * Function creates first 2 blocks per lane - * @param instance Pointer to the current instance - * @param blockhash Pointer to the pre-hashing digest - * @pre blockhash must point to @a PREHASH_SEED_LENGTH allocated values - */ --void fill_first_blocks(uint8_t *blockhash, const argon2_instance_t *instance); -+void fill_first_blocks_wowseed(uint8_t *blockhash, const argon2_instance_t *instance); - - /* - * Function allocates memory, hashes the inputs with Blake, and creates first - * two blocks. Returns the pointer to the main memory with 2 blocks per lane -- * initialized -+ * initialize_wowseedd - * @param context Pointer to the Argon2 internal structure containing memory - * pointer, and parameters for time and space requirements. - * @param instance Current Argon2 instance - * @return Zero if successful, -1 if memory failed to allocate. @context->state - * will be modified if successful. - */ --int initialize(argon2_instance_t *instance, argon2_context *context); -+int initialize_wowseed(argon2_instance_t *instance, argon2_context *context); - - /* - * XORing the last block of each lane, hashing it, making the tag. Deallocates -@@ -204,7 +203,7 @@ int initialize(argon2_instance_t *instance, argon2_context *context); - * @pre if context->free_cbk is not NULL, it should point to a function that - * deallocates memory - */ --void finalize(const argon2_context *context, argon2_instance_t *instance); -+void finalize_wowseed(const argon2_context *context, argon2_instance_t *instance); - - /* - * Function that fills the segment using previous segments also from other -@@ -223,6 +222,6 @@ void fill_segment(const argon2_instance_t *instance, - * @param instance Pointer to the current instance - * @return ARGON2_OK if successful, @context->state - */ --int fill_memory_blocks(argon2_instance_t *instance); -+int _fill_memory_blocks_wowseed(argon2_instance_t *instance); - - #endif -diff --git a/src/argon2/ref.c b/src/argon2/ref.c -index ad1cf46..7edbd6e 100644 ---- a/src/argon2/ref.c -+++ b/src/argon2/ref.c -@@ -29,7 +29,7 @@ - - /* - * Function fills a new memory block and optionally XORs the old block over the new one. -- * @next_block must be initialized. -+ * @next_block must be initialize_wowseedd. - * @param prev_block Pointer to the previous block - * @param ref_block Pointer to the reference block - * @param next_block Pointer to the block to be constructed --- -2.39.2 diff --git a/contrib/depends/toolchain.cmake.in b/contrib/depends/toolchain.cmake.in index 7c40918..2e0ba52 100644 --- a/contrib/depends/toolchain.cmake.in +++ b/contrib/depends/toolchain.cmake.in @@ -193,6 +193,8 @@ if(ARCHITECTURE STREQUAL "x86_64") endif() link_directories(@prefix@/lib) +include_directories(@prefix@/include) +include_directories(@prefix@/include/wownero_seed) add_definitions(-DPOLYSEED_STATIC=ON) diff --git a/monero_libwallet2_api_c/CMakeLists.txt b/monero_libwallet2_api_c/CMakeLists.txt index 06e8fb8..dadafc6 100644 --- a/monero_libwallet2_api_c/CMakeLists.txt +++ b/monero_libwallet2_api_c/CMakeLists.txt @@ -83,11 +83,7 @@ endif() add_subdirectory("${CMAKE_SOURCE_DIR}/../${MONERO_FLAVOR}" ${CMAKE_BINARY_DIR}/${MONERO_FLAVOR}_build EXCLUDE_FROM_ALL) -#get_cmake_property(_variableNames VARIABLES) -#list (SORT _variableNames) -#foreach (_variableName ${_variableNames}) -# message(STATUS "${_variableName}=${${_variableName}}") -#endforeach() + if(${HOST_ABI} STREQUAL "x86_64-apple-darwin11" OR ${HOST_ABI} STREQUAL "aarch64-apple-darwin11" OR ${HOST_ABI} STREQUAL "host-apple-darwin" OR ${HOST_ABI} STREQUAL "x86_64-host-apple-darwin" OR ${HOST_ABI} STREQUAL "aarch64-host-apple-darwin" OR ${HOST_ABI} STREQUAL "host-apple-ios" OR ${HOST_ABI} STREQUAL "aarch64-apple-ios") if (${MONERO_FLAVOR} STREQUAL "monero") @@ -101,22 +97,20 @@ if(${HOST_ABI} STREQUAL "x86_64-apple-darwin11" OR ${HOST_ABI} STREQUAL "aarch64 endif() if(${MONERO_FLAVOR} STREQUAL "wownero") + add_subdirectory(wownero-seed EXCLUDE_FROM_ALL) set(EXTRA_LIBS_WOWNEROSEED wownero-seed) - if(${HOST_ABI} STREQUAL "aarch64-meego-linux-gnu") - add_library(wownero-seed STATIC IMPORTED) - set_target_properties(wownero-seed PROPERTIES IMPORTED_LOCATION - ${EXTERNAL_LIBS_DIR}/lib64/libwownero-seed.a) - else() - add_library(wownero-seed STATIC IMPORTED) - set_target_properties(wownero-seed PROPERTIES IMPORTED_LOCATION - ${EXTERNAL_LIBS_DIR}/lib/libwownero-seed.a) - endif() endif() + +#get_cmake_property(_variableNames VARIABLES) +#list (SORT _variableNames) +#foreach (_variableName ${_variableNames}) +# message(STATUS "${_variableName}=${${_variableName}}") +#endforeach() + target_link_libraries( wallet2_api_c wallet_api - ${wallet_api_LIB_DEPENDS} - - ${EXTRA_LIBS_ANDROID} ${EXTRA_LIBS_WOWNEROSEED} + ${EXTRA_LIBS_ANDROID} + ${wallet_api_LIB_DEPENDS} ) \ No newline at end of file diff --git a/patches/wownero/0001-wallet-background-sync-with-just-the-view-key.patch b/patches/wownero/0001-wallet-background-sync-with-just-the-view-key.patch index 0548326..d41e362 100644 --- a/patches/wownero/0001-wallet-background-sync-with-just-the-view-key.patch +++ b/patches/wownero/0001-wallet-background-sync-with-just-the-view-key.patch @@ -1,7 +1,7 @@ -From 561c17511802188e7de3d37b696adab2cd1c63fe Mon Sep 17 00:00:00 2001 +From a722b7a7ca6b887ad56650ac2b331088547b221c Mon Sep 17 00:00:00 2001 From: j-berman Date: Thu, 13 Oct 2022 18:33:33 -0700 -Subject: [PATCH 01/14] wallet: background sync with just the view key +Subject: [PATCH 01/17] wallet: background sync with just the view key - When background syncing, the wallet wipes the spend key from memory and processes all new transactions. The wallet saves @@ -50,7 +50,7 @@ cache. 20 files changed, 2337 insertions(+), 130 deletions(-) diff --git a/src/cryptonote_basic/account.cpp b/src/cryptonote_basic/account.cpp -index 2ac455f..4e87d44 100644 +index 2ac455fda..4e87d4477 100644 --- a/src/cryptonote_basic/account.cpp +++ b/src/cryptonote_basic/account.cpp @@ -152,6 +152,17 @@ DISABLE_VS_WARNINGS(4244 4345) @@ -72,7 +72,7 @@ index 2ac455f..4e87d44 100644 { crypto::secret_key first = generate_keys(m_keys.m_account_address.m_spend_public_key, m_keys.m_spend_secret_key, recovery_key, recover); diff --git a/src/cryptonote_basic/account.h b/src/cryptonote_basic/account.h -index 2ee9545..93d1d28 100644 +index 2ee9545d4..93d1d28f0 100644 --- a/src/cryptonote_basic/account.h +++ b/src/cryptonote_basic/account.h @@ -95,6 +95,7 @@ namespace cryptonote @@ -84,7 +84,7 @@ index 2ee9545..93d1d28 100644 void encrypt_keys(const crypto::chacha_key &key) { m_keys.encrypt(key); } diff --git a/src/cryptonote_config.h b/src/cryptonote_config.h -index 8c0d3ce..8b5091a 100644 +index 8c0d3ce20..8b5091a46 100644 --- a/src/cryptonote_config.h +++ b/src/cryptonote_config.h @@ -253,6 +253,8 @@ namespace config @@ -97,7 +97,7 @@ index 8c0d3ce..8b5091a 100644 const unsigned char HASH_KEY_MEMORY = 'k'; const unsigned char HASH_KEY_MULTISIG[] = {'M', 'u', 'l', 't' , 'i', 's', 'i', 'g', 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; diff --git a/src/simplewallet/simplewallet.cpp b/src/simplewallet/simplewallet.cpp -index 462c06f..8c51220 100644 +index 462c06f0e..8c5122097 100644 --- a/src/simplewallet/simplewallet.cpp +++ b/src/simplewallet/simplewallet.cpp @@ -155,6 +155,17 @@ typedef cryptonote::simple_wallet sw; @@ -722,7 +722,7 @@ index 462c06f..8c51220 100644 { PRINT_USAGE(USAGE_IMPORT_OUTPUTS); diff --git a/src/simplewallet/simplewallet.h b/src/simplewallet/simplewallet.h -index d641dca..b98a407 100644 +index d641dca1b..b98a40713 100644 --- a/src/simplewallet/simplewallet.h +++ b/src/simplewallet/simplewallet.h @@ -147,6 +147,7 @@ namespace cryptonote @@ -734,7 +734,7 @@ index d641dca..b98a407 100644 bool set_inactivity_lock_timeout(const std::vector &args = std::vector()); bool set_setup_background_mining(const std::vector &args = std::vector()); diff --git a/src/wallet/api/wallet.cpp b/src/wallet/api/wallet.cpp -index e81265a..e868fa0 100644 +index e81265ad3..e868fa039 100644 --- a/src/wallet/api/wallet.cpp +++ b/src/wallet/api/wallet.cpp @@ -54,6 +54,40 @@ using namespace cryptonote; @@ -1199,7 +1199,7 @@ index e81265a..e868fa0 100644 setStatusError(tr("Rescan spent can only be used with a trusted daemon")); return false; diff --git a/src/wallet/api/wallet.h b/src/wallet/api/wallet.h -index ec2d7e9..1f199a7 100644 +index ec2d7e9b3..1f199a72c 100644 --- a/src/wallet/api/wallet.h +++ b/src/wallet/api/wallet.h @@ -171,6 +171,13 @@ public: @@ -1236,7 +1236,7 @@ index ec2d7e9..1f199a7 100644 std::unique_ptr m_history; std::unique_ptr m_wallet2Callback; diff --git a/src/wallet/api/wallet2_api.h b/src/wallet/api/wallet2_api.h -index 71991df..e349df1 100644 +index 71991df0d..e349df176 100644 --- a/src/wallet/api/wallet2_api.h +++ b/src/wallet/api/wallet2_api.h @@ -445,6 +445,12 @@ struct Wallet @@ -1296,7 +1296,7 @@ index 71991df..e349df1 100644 virtual AddressBook * addressBook() = 0; virtual Subaddress * subaddress() = 0; diff --git a/src/wallet/wallet2.cpp b/src/wallet/wallet2.cpp -index 30b3502..8ce515c 100644 +index 30b3502dc..8ce515c57 100644 --- a/src/wallet/wallet2.cpp +++ b/src/wallet/wallet2.cpp @@ -157,6 +157,8 @@ static const std::string MULTISIG_SIGNATURE_MAGIC = "SigMultisigPkV1"; @@ -2740,7 +2740,7 @@ index 30b3502..8ce515c 100644 { payment_container payments; diff --git a/src/wallet/wallet2.h b/src/wallet/wallet2.h -index 7513723..295976b 100644 +index 75137237b..295976b53 100644 --- a/src/wallet/wallet2.h +++ b/src/wallet/wallet2.h @@ -256,6 +256,20 @@ private: @@ -3050,7 +3050,7 @@ index 7513723..295976b 100644 } diff --git a/src/wallet/wallet_errors.h b/src/wallet/wallet_errors.h -index c077313..c54cd34 100644 +index c077313d4..c54cd3499 100644 --- a/src/wallet/wallet_errors.h +++ b/src/wallet/wallet_errors.h @@ -63,6 +63,7 @@ namespace tools @@ -3121,7 +3121,7 @@ index c077313..c54cd34 100644 #if !defined(_MSC_VER) diff --git a/src/wallet/wallet_rpc_server.cpp b/src/wallet/wallet_rpc_server.cpp -index 6fc9962..3cc6b27 100644 +index 6fc996299..3cc6b278f 100644 --- a/src/wallet/wallet_rpc_server.cpp +++ b/src/wallet/wallet_rpc_server.cpp @@ -73,6 +73,54 @@ using namespace epee; @@ -3567,7 +3567,7 @@ index 6fc9962..3cc6b27 100644 try { diff --git a/src/wallet/wallet_rpc_server.h b/src/wallet/wallet_rpc_server.h -index 3308d17..c2329aa 100644 +index 3308d1751..c2329aafe 100644 --- a/src/wallet/wallet_rpc_server.h +++ b/src/wallet/wallet_rpc_server.h @@ -160,6 +160,9 @@ namespace tools @@ -3591,7 +3591,7 @@ index 3308d17..c2329aa 100644 //json rpc v2 bool on_query_key(const wallet_rpc::COMMAND_RPC_QUERY_KEY::request& req, wallet_rpc::COMMAND_RPC_QUERY_KEY::response& res, epee::json_rpc::error& er, const connection_context *ctx = NULL); diff --git a/src/wallet/wallet_rpc_server_commands_defs.h b/src/wallet/wallet_rpc_server_commands_defs.h -index b6098d9..a44b56e 100644 +index b6098d95c..a44b56ed6 100644 --- a/src/wallet/wallet_rpc_server_commands_defs.h +++ b/src/wallet/wallet_rpc_server_commands_defs.h @@ -2696,5 +2696,69 @@ namespace wallet_rpc @@ -3665,7 +3665,7 @@ index b6098d9..a44b56e 100644 } } diff --git a/src/wallet/wallet_rpc_server_error_codes.h b/src/wallet/wallet_rpc_server_error_codes.h -index 541d29f..4756c19 100644 +index 541d29f86..4756c191c 100644 --- a/src/wallet/wallet_rpc_server_error_codes.h +++ b/src/wallet/wallet_rpc_server_error_codes.h @@ -81,3 +81,5 @@ @@ -3675,7 +3675,7 @@ index 541d29f..4756c19 100644 +#define WALLET_RPC_ERROR_CODE_IS_BACKGROUND_WALLET -51 +#define WALLET_RPC_ERROR_CODE_IS_BACKGROUND_SYNCING -52 diff --git a/tests/functional_tests/transfer.py b/tests/functional_tests/transfer.py -index 4063911..60eb09a 100755 +index 4063911f4..60eb09a10 100755 --- a/tests/functional_tests/transfer.py +++ b/tests/functional_tests/transfer.py @@ -30,6 +30,7 @@ @@ -4113,7 +4113,7 @@ index 4063911..60eb09a 100755 if __name__ == '__main__': TransferTest().run_test() diff --git a/tests/functional_tests/util_resources.py b/tests/functional_tests/util_resources.py -index e030312..3ca6fdb 100755 +index e030312da..3ca6fdb86 100755 --- a/tests/functional_tests/util_resources.py +++ b/tests/functional_tests/util_resources.py @@ -37,6 +37,8 @@ @@ -4153,7 +4153,7 @@ index e030312..3ca6fdb 100755 + assert WALLET_DIRECTORY != '' + return os.path.isfile(WALLET_DIRECTORY + '/' + name) diff --git a/tests/functional_tests/wallet.py b/tests/functional_tests/wallet.py -index 1ad05c9..8182cec 100755 +index 1ad05c98f..8182cecb2 100755 --- a/tests/functional_tests/wallet.py +++ b/tests/functional_tests/wallet.py @@ -34,8 +34,7 @@ @@ -4244,7 +4244,7 @@ index 1ad05c9..8182cec 100755 if __name__ == '__main__': diff --git a/tests/unit_tests/wipeable_string.cpp b/tests/unit_tests/wipeable_string.cpp -index ef6964f..25121a0 100644 +index ef6964f9e..25121a02e 100644 --- a/tests/unit_tests/wipeable_string.cpp +++ b/tests/unit_tests/wipeable_string.cpp @@ -211,3 +211,15 @@ TEST(wipeable_string, to_hex) @@ -4264,7 +4264,7 @@ index ef6964f..25121a0 100644 + ASSERT_TRUE(str == std::string("foo")); +} diff --git a/utils/python-rpc/framework/wallet.py b/utils/python-rpc/framework/wallet.py -index 1e10e1f..bff33a5 100644 +index 1e10e1f86..bff33a561 100644 --- a/utils/python-rpc/framework/wallet.py +++ b/utils/python-rpc/framework/wallet.py @@ -1138,3 +1138,45 @@ class Wallet(object): diff --git a/patches/wownero/0002-fix-missing-___clear_cache-when-targetting-iOS.patch b/patches/wownero/0002-fix-missing-___clear_cache-when-targetting-iOS.patch index 0fababa..8bd89c4 100644 --- a/patches/wownero/0002-fix-missing-___clear_cache-when-targetting-iOS.patch +++ b/patches/wownero/0002-fix-missing-___clear_cache-when-targetting-iOS.patch @@ -1,14 +1,14 @@ -From 25c6f31dfea1a4940efee80789f63a7fe41854aa Mon Sep 17 00:00:00 2001 +From 36f3c8e3a69c2cca71ce7fcc9a5095e9153170ce Mon Sep 17 00:00:00 2001 From: Czarek Nakamoto Date: Wed, 23 Oct 2024 15:18:21 +0200 -Subject: [PATCH 02/14] fix missing ___clear_cache when targetting iOS +Subject: [PATCH 02/17] fix missing ___clear_cache when targetting iOS --- external/randomwow | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/external/randomwow b/external/randomwow -index 27b099b..057f5f8 160000 +index 27b099b6d..c00685dad 160000 --- a/external/randomwow +++ b/external/randomwow @@ -1 +1 @@ diff --git a/patches/wownero/0003-fix-is_trivially_copyable.patch b/patches/wownero/0003-fix-is_trivially_copyable.patch index 1a86ed6..553af86 100644 --- a/patches/wownero/0003-fix-is_trivially_copyable.patch +++ b/patches/wownero/0003-fix-is_trivially_copyable.patch @@ -1,14 +1,14 @@ -From 4f88afa6f7fb6fadd1df44148e0a8f2d82d1fe87 Mon Sep 17 00:00:00 2001 +From 8c4d673da3adc9c97962e09dc62ce29de73be829 Mon Sep 17 00:00:00 2001 From: cyan Date: Tue, 22 Oct 2024 10:23:18 +0000 -Subject: [PATCH 03/14] fix is_trivially_copyable +Subject: [PATCH 03/17] fix is_trivially_copyable --- contrib/epee/include/span.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/contrib/epee/include/span.h b/contrib/epee/include/span.h -index 01dc387..5e3af4d 100644 +index 01dc387d6..5e3af4d11 100644 --- a/contrib/epee/include/span.h +++ b/contrib/epee/include/span.h @@ -151,7 +151,6 @@ namespace epee diff --git a/patches/wownero/0004-store-crash-fix.patch b/patches/wownero/0004-store-crash-fix.patch index f04c98a..739c67f 100644 --- a/patches/wownero/0004-store-crash-fix.patch +++ b/patches/wownero/0004-store-crash-fix.patch @@ -1,7 +1,7 @@ -From 149be435f556ef1163abbf82b6b54872dc74025b Mon Sep 17 00:00:00 2001 +From fb3c06a713325f63bc090c5e09e46a63bdaa8c2d Mon Sep 17 00:00:00 2001 From: Czarek Nakamoto Date: Sat, 11 May 2024 16:25:10 +0200 -Subject: [PATCH 04/14] store crash fix +Subject: [PATCH 04/17] store crash fix Monero wallet crashes (sometimes) when it is syncing, while the proper solution (that can be seen in feather) @@ -43,7 +43,7 @@ the current state. 4 files changed, 26 insertions(+), 15 deletions(-) diff --git a/src/wallet/api/wallet.cpp b/src/wallet/api/wallet.cpp -index e868fa0..899ef04 100644 +index e868fa039..899ef044a 100644 --- a/src/wallet/api/wallet.cpp +++ b/src/wallet/api/wallet.cpp @@ -55,8 +55,8 @@ using namespace cryptonote; @@ -135,7 +135,7 @@ index e868fa0..899ef04 100644 diff --git a/src/wallet/api/wallet.h b/src/wallet/api/wallet.h -index 1f199a7..ac7ce2f 100644 +index 1f199a72c..ac7ce2f6a 100644 --- a/src/wallet/api/wallet.h +++ b/src/wallet/api/wallet.h @@ -273,7 +273,6 @@ private: @@ -147,7 +147,7 @@ index 1f199a7..ac7ce2f 100644 std::atomic m_refreshIntervalMillis; std::atomic m_refreshShouldRescan; diff --git a/src/wallet/wallet2.cpp b/src/wallet/wallet2.cpp -index 8ce515c..651161d 100644 +index 8ce515c57..651161d14 100644 --- a/src/wallet/wallet2.cpp +++ b/src/wallet/wallet2.cpp @@ -1192,6 +1192,7 @@ wallet2::wallet2(network_type nettype, uint64_t kdf_rounds, bool unattended, std @@ -185,7 +185,7 @@ index 8ce515c..651161d 100644 std::vector next_blocks; std::vector next_parsed_blocks; diff --git a/src/wallet/wallet2.h b/src/wallet/wallet2.h -index 295976b..c07a47c 100644 +index 295976b53..c07a47c11 100644 --- a/src/wallet/wallet2.h +++ b/src/wallet/wallet2.h @@ -1071,6 +1071,8 @@ private: diff --git a/patches/wownero/0005-Update-android-ndk.patch b/patches/wownero/0005-Update-android-ndk.patch index 57b5ffb..8a781b6 100644 --- a/patches/wownero/0005-Update-android-ndk.patch +++ b/patches/wownero/0005-Update-android-ndk.patch @@ -1,7 +1,7 @@ -From 6cc0e6fdccfd48065a03a741f65258f563a9900f Mon Sep 17 00:00:00 2001 +From 05d9d0ca610daab96634ffaddafeeb7ff931148c Mon Sep 17 00:00:00 2001 From: Czarek Nakamoto Date: Thu, 23 May 2024 08:02:49 +0200 -Subject: [PATCH 05/14] Update android ndk +Subject: [PATCH 05/17] Update android ndk rename arm -> armv7a --- @@ -13,7 +13,7 @@ rename arm -> armv7a 5 files changed, 44 insertions(+), 18 deletions(-) diff --git a/contrib/depends/hosts/android.mk b/contrib/depends/hosts/android.mk -index d6f8b99..827103c 100644 +index d6f8b99dd..827103c36 100644 --- a/contrib/depends/hosts/android.mk +++ b/contrib/depends/hosts/android.mk @@ -1,12 +1,22 @@ @@ -44,7 +44,7 @@ index d6f8b99..827103c 100644 android_CFLAGS=-pipe android_CXXFLAGS=$(android_CFLAGS) diff --git a/contrib/depends/packages/android_ndk.mk b/contrib/depends/packages/android_ndk.mk -index 9b8a533..2c2914e 100644 +index 9b8a5332f..2c2914ec2 100644 --- a/contrib/depends/packages/android_ndk.mk +++ b/contrib/depends/packages/android_ndk.mk @@ -1,12 +1,16 @@ @@ -92,7 +92,7 @@ index 9b8a533..2c2914e 100644 endef diff --git a/contrib/depends/packages/boost.mk b/contrib/depends/packages/boost.mk -index fd06c53..c17e863 100644 +index fd06c5393..c17e863cc 100644 --- a/contrib/depends/packages/boost.mk +++ b/contrib/depends/packages/boost.mk @@ -25,6 +25,7 @@ $(package)_archiver_darwin=$($(package)_libtool) @@ -104,7 +104,7 @@ index fd06c53..c17e863 100644 endef diff --git a/contrib/depends/packages/openssl.mk b/contrib/depends/packages/openssl.mk -index a157762..2430f64 100644 +index a157762c7..2430f6495 100644 --- a/contrib/depends/packages/openssl.mk +++ b/contrib/depends/packages/openssl.mk @@ -34,7 +34,7 @@ $(package)_config_opts_x86_64_linux=linux-x86_64 @@ -117,7 +117,7 @@ index a157762..2430f64 100644 $(package)_config_opts_aarch64_darwin=darwin64-arm64-cc $(package)_config_opts_riscv64_linux=linux-generic64 diff --git a/contrib/depends/toolchain.cmake.in b/contrib/depends/toolchain.cmake.in -index f118c75..cc1d9b5 100644 +index f118c754e..cc1d9b5c5 100644 --- a/contrib/depends/toolchain.cmake.in +++ b/contrib/depends/toolchain.cmake.in @@ -100,20 +100,21 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Darwin") diff --git a/patches/wownero/0006-uint64_t-missing-definition-fix.patch b/patches/wownero/0006-uint64_t-missing-definition-fix.patch index e57102e..8ee8e0b 100644 --- a/patches/wownero/0006-uint64_t-missing-definition-fix.patch +++ b/patches/wownero/0006-uint64_t-missing-definition-fix.patch @@ -1,14 +1,14 @@ -From 2db1ea14b07823eed4bdfa872f7b1f40019e4bef Mon Sep 17 00:00:00 2001 +From aca7cc3b8a3c2c19d46c07b2f0b5b9d6d23cbde6 Mon Sep 17 00:00:00 2001 From: Czarek Nakamoto Date: Mon, 2 Sep 2024 16:40:31 +0200 -Subject: [PATCH 06/14] uint64_t missing definition fix +Subject: [PATCH 06/17] uint64_t missing definition fix --- contrib/epee/include/net/http_base.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contrib/epee/include/net/http_base.h b/contrib/epee/include/net/http_base.h -index 4af4da7..ae4c0d0 100644 +index 4af4da790..ae4c0d05e 100644 --- a/contrib/epee/include/net/http_base.h +++ b/contrib/epee/include/net/http_base.h @@ -28,7 +28,7 @@ diff --git a/patches/wownero/0007-use-proper-error-handling-in-get_seed.patch b/patches/wownero/0007-use-proper-error-handling-in-get_seed.patch index d0d5aac..1781efb 100644 --- a/patches/wownero/0007-use-proper-error-handling-in-get_seed.patch +++ b/patches/wownero/0007-use-proper-error-handling-in-get_seed.patch @@ -1,7 +1,7 @@ -From 9f186308301738bdd5deb53a77471f2f5ce40766 Mon Sep 17 00:00:00 2001 +From 8539d33a80d584afddf4aed7cd653afbb1d578e0 Mon Sep 17 00:00:00 2001 From: Czarek Nakamoto Date: Mon, 24 Jun 2024 10:49:12 +0200 -Subject: [PATCH 07/14] use proper error handling in get_seed +Subject: [PATCH 07/17] use proper error handling in get_seed --- src/wallet/api/wallet.cpp | 17 ++++++++++++----- @@ -9,7 +9,7 @@ Subject: [PATCH 07/14] use proper error handling in get_seed 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/src/wallet/api/wallet.cpp b/src/wallet/api/wallet.cpp -index 899ef04..e16d8f8 100644 +index 899ef044a..e16d8f83f 100644 --- a/src/wallet/api/wallet.cpp +++ b/src/wallet/api/wallet.cpp @@ -826,12 +826,19 @@ bool WalletImpl::close(bool store) @@ -38,7 +38,7 @@ index 899ef04..e16d8f8 100644 std::string WalletImpl::getSeedLanguage() const diff --git a/src/wallet/wallet2.cpp b/src/wallet/wallet2.cpp -index 651161d..1e527cf 100644 +index 651161d14..1e527cf97 100644 --- a/src/wallet/wallet2.cpp +++ b/src/wallet/wallet2.cpp @@ -1440,11 +1440,13 @@ bool wallet2::get_seed(epee::wipeable_string& electrum_words, const epee::wipeab diff --git a/patches/wownero/0008-UR-functions.patch b/patches/wownero/0008-UR-functions.patch index ce2867e..e6991ae 100644 --- a/patches/wownero/0008-UR-functions.patch +++ b/patches/wownero/0008-UR-functions.patch @@ -1,7 +1,7 @@ -From 9c4df0e534ec8c04d95620ab7032771edb6f981e Mon Sep 17 00:00:00 2001 +From 0fe44ec3cb8f4b210e2c7a8a6191abfe89d250a9 Mon Sep 17 00:00:00 2001 From: tobtoht Date: Tue, 12 Mar 2024 10:09:50 +0100 -Subject: [PATCH 08/14] UR functions +Subject: [PATCH 08/17] UR functions This commit adds UR functions for UR tasks, I believe that the right place to get @@ -40,7 +40,7 @@ Things broken in the commit create mode 160000 external/bc-ur diff --git a/.gitmodules b/.gitmodules -index 991071f..b24855d 100644 +index 991071fbe..b24855d9b 100644 --- a/.gitmodules +++ b/.gitmodules @@ -16,4 +16,7 @@ @@ -53,7 +53,7 @@ index 991071f..b24855d 100644 + url = https://github.com/MrCyjaneK/bc-ur + branch = misc diff --git a/CMakeLists.txt b/CMakeLists.txt -index e387ffb..8b81c7a 100644 +index e387ffb1b..8b81c7ab7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -96,7 +96,8 @@ enable_language(C ASM) @@ -75,7 +75,7 @@ index e387ffb..8b81c7a 100644 check_submodule(external/rapidjson) #check_submodule(external/trezor-common) diff --git a/contrib/depends/hosts/darwin.mk b/contrib/depends/hosts/darwin.mk -index 79d4490..83d8303 100644 +index 79d449054..83d83036b 100644 --- a/contrib/depends/hosts/darwin.mk +++ b/contrib/depends/hosts/darwin.mk @@ -1,4 +1,4 @@ @@ -85,7 +85,7 @@ index 79d4490..83d8303 100644 ifeq (aarch64, $(host_arch)) CC_target=arm64-apple-$(host_os) diff --git a/contrib/depends/toolchain.cmake.in b/contrib/depends/toolchain.cmake.in -index cc1d9b5..48a6f94 100644 +index cc1d9b5c5..48a6f947e 100644 --- a/contrib/depends/toolchain.cmake.in +++ b/contrib/depends/toolchain.cmake.in @@ -94,7 +94,7 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Darwin") @@ -98,7 +98,7 @@ index cc1d9b5..48a6f94 100644 SET(LLVM_ENABLE_PIC OFF) SET(LLVM_ENABLE_PIE OFF) diff --git a/external/CMakeLists.txt b/external/CMakeLists.txt -index 3184ae5..88a7bb0 100644 +index 3184ae5a1..88a7bb0b5 100644 --- a/external/CMakeLists.txt +++ b/external/CMakeLists.txt @@ -72,4 +72,5 @@ endif() @@ -109,13 +109,13 @@ index 3184ae5..88a7bb0 100644 add_subdirectory(randomwow EXCLUDE_FROM_ALL) diff --git a/external/bc-ur b/external/bc-ur new file mode 160000 -index 0000000..d82e7c7 +index 000000000..d82e7c753 --- /dev/null +++ b/external/bc-ur @@ -0,0 +1 @@ +Subproject commit d82e7c753e710b8000706dc3383b498438795208 diff --git a/src/device/device_ledger.cpp b/src/device/device_ledger.cpp -index 9961d13..8403d76 100644 +index 9961d13e7..8403d76e8 100644 --- a/src/device/device_ledger.cpp +++ b/src/device/device_ledger.cpp @@ -313,12 +313,13 @@ namespace hw { @@ -135,7 +135,7 @@ index 9961d13..8403d76 100644 boost::lock_guard lock1(device_locker, boost::adopt_lock); \ boost::lock_guard lock2(command_locker, boost::adopt_lock) diff --git a/src/wallet/CMakeLists.txt b/src/wallet/CMakeLists.txt -index fdf3f2f..66384fe 100644 +index fdf3f2f5d..66384fe31 100644 --- a/src/wallet/CMakeLists.txt +++ b/src/wallet/CMakeLists.txt @@ -50,6 +50,7 @@ monero_add_library(wallet @@ -147,7 +147,7 @@ index fdf3f2f..66384fe 100644 common cryptonote_core diff --git a/src/wallet/api/pending_transaction.cpp b/src/wallet/api/pending_transaction.cpp -index 70a7027..9c3c26e 100644 +index 70a702796..9c3c26ee5 100644 --- a/src/wallet/api/pending_transaction.cpp +++ b/src/wallet/api/pending_transaction.cpp @@ -42,6 +42,8 @@ @@ -198,7 +198,7 @@ index 70a7027..9c3c26e 100644 { uint64_t result = 0; diff --git a/src/wallet/api/pending_transaction.h b/src/wallet/api/pending_transaction.h -index 0a9779c..403bfe2 100644 +index 0a9779c07..403bfe281 100644 --- a/src/wallet/api/pending_transaction.h +++ b/src/wallet/api/pending_transaction.h @@ -46,6 +46,7 @@ public: @@ -210,7 +210,7 @@ index 0a9779c..403bfe2 100644 uint64_t dust() const override; uint64_t fee() const override; diff --git a/src/wallet/api/unsigned_transaction.cpp b/src/wallet/api/unsigned_transaction.cpp -index 6165a22..fd03e95 100644 +index 6165a2240..fd03e959d 100644 --- a/src/wallet/api/unsigned_transaction.cpp +++ b/src/wallet/api/unsigned_transaction.cpp @@ -40,6 +40,8 @@ @@ -270,7 +270,7 @@ index 6165a22..fd03e95 100644 bool UnsignedTransactionImpl::checkLoadedTx(const std::function get_num_txes, const std::function &get_tx, const std::string &extra_message) { diff --git a/src/wallet/api/unsigned_transaction.h b/src/wallet/api/unsigned_transaction.h -index 30065a7..a94b23f 100644 +index 30065a7fa..a94b23f75 100644 --- a/src/wallet/api/unsigned_transaction.h +++ b/src/wallet/api/unsigned_transaction.h @@ -53,6 +53,7 @@ public: @@ -282,7 +282,7 @@ index 30065a7..a94b23f 100644 uint64_t minMixinCount() const override; diff --git a/src/wallet/api/wallet.cpp b/src/wallet/api/wallet.cpp -index e16d8f8..ee000e7 100644 +index e16d8f83f..ee000e7ab 100644 --- a/src/wallet/api/wallet.cpp +++ b/src/wallet/api/wallet.cpp @@ -47,6 +47,7 @@ @@ -658,7 +658,7 @@ index e16d8f8..ee000e7 100644 { if (checkBackgroundSync("cannot scan transactions")) diff --git a/src/wallet/api/wallet.h b/src/wallet/api/wallet.h -index ac7ce2f..edf8bb8 100644 +index ac7ce2f6a..edf8bb8ce 100644 --- a/src/wallet/api/wallet.h +++ b/src/wallet/api/wallet.h @@ -112,6 +112,7 @@ public: @@ -689,7 +689,7 @@ index ac7ce2f..edf8bb8 100644 bool setupBackgroundSync(const BackgroundSyncType background_sync_type, const std::string &wallet_password, const optional &background_cache_password = optional()) override; diff --git a/src/wallet/api/wallet2_api.h b/src/wallet/api/wallet2_api.h -index e349df1..764adbf 100644 +index e349df176..764adbfbf 100644 --- a/src/wallet/api/wallet2_api.h +++ b/src/wallet/api/wallet2_api.h @@ -91,6 +91,7 @@ struct PendingTransaction @@ -780,7 +780,7 @@ index e349df1..764adbf 100644 /*! * \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 -index 1e527cf..671fa52 100644 +index 1e527cf97..671fa5298 100644 --- a/src/wallet/wallet2.cpp +++ b/src/wallet/wallet2.cpp @@ -948,6 +948,16 @@ uint32_t get_subaddress_clamped_sum(uint32_t idx, uint32_t extra) @@ -1008,7 +1008,7 @@ index 1e527cf..671fa52 100644 ski.push_back(std::make_pair(key_image, signature)); } diff --git a/src/wallet/wallet2.h b/src/wallet/wallet2.h -index c07a47c..80ff069 100644 +index c07a47c11..80ff0698d 100644 --- a/src/wallet/wallet2.h +++ b/src/wallet/wallet2.h @@ -1150,6 +1150,7 @@ private: diff --git a/patches/wownero/0009-add-dummy-device-for-ledger.patch b/patches/wownero/0009-add-dummy-device-for-ledger.patch index cb2a82e..0195049 100644 --- a/patches/wownero/0009-add-dummy-device-for-ledger.patch +++ b/patches/wownero/0009-add-dummy-device-for-ledger.patch @@ -1,7 +1,7 @@ -From 45b79176318ccf64154e85bd41db10708999023c Mon Sep 17 00:00:00 2001 +From 08301e22d38bf69b35cda50111f95af120f98a3f Mon Sep 17 00:00:00 2001 From: Czarek Nakamoto Date: Wed, 26 Jun 2024 15:04:38 +0200 -Subject: [PATCH 09/14] add dummy device for ledger +Subject: [PATCH 09/17] add dummy device for ledger --- CMakeLists.txt | 6 +- @@ -20,7 +20,7 @@ Subject: [PATCH 09/14] add dummy device for ledger create mode 100644 src/device/device_io_dummy.hpp diff --git a/CMakeLists.txt b/CMakeLists.txt -index 8b81c7a..abe44ec 100644 +index 8b81c7ab7..abe44eca5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -709,8 +709,12 @@ include_directories(${LMDB_INCLUDE}) @@ -38,7 +38,7 @@ index 8b81c7a..abe44ec 100644 add_definitions(-DHAVE_HIDAPI) include_directories(${HIDAPI_INCLUDE_DIR}) diff --git a/src/device/CMakeLists.txt b/src/device/CMakeLists.txt -index e4f1159..14d398f 100644 +index e4f1159b5..14d398f87 100644 --- a/src/device/CMakeLists.txt +++ b/src/device/CMakeLists.txt @@ -29,10 +29,11 @@ @@ -68,7 +68,7 @@ index e4f1159..14d398f 100644 ${device_headers} device_ledger.hpp diff --git a/src/device/device.cpp b/src/device/device.cpp -index e6cd358..636929f 100644 +index e6cd358b6..636929feb 100644 --- a/src/device/device.cpp +++ b/src/device/device.cpp @@ -29,7 +29,7 @@ @@ -106,7 +106,7 @@ index e6cd358..636929f 100644 return *device->second; } diff --git a/src/device/device.hpp b/src/device/device.hpp -index 392703a..ffd4197 100644 +index 392703a24..ffd419779 100644 --- a/src/device/device.hpp +++ b/src/device/device.hpp @@ -34,17 +34,7 @@ @@ -130,7 +130,7 @@ index 392703a..ffd4197 100644 diff --git a/src/device/device_io_dummy.cpp b/src/device/device_io_dummy.cpp new file mode 100644 -index 0000000..fb08269 +index 000000000..fb082694e --- /dev/null +++ b/src/device/device_io_dummy.cpp @@ -0,0 +1,133 @@ @@ -270,7 +270,7 @@ index 0000000..fb08269 \ No newline at end of file diff --git a/src/device/device_io_dummy.hpp b/src/device/device_io_dummy.hpp new file mode 100644 -index 0000000..a173361 +index 000000000..a1733616d --- /dev/null +++ b/src/device/device_io_dummy.hpp @@ -0,0 +1,74 @@ @@ -349,7 +349,7 @@ index 0000000..a173361 + +#endif // HAVE_HIDAPI diff --git a/src/device/device_ledger.cpp b/src/device/device_ledger.cpp -index 8403d76..db40a2e 100644 +index 8403d76e8..db40a2eb7 100644 --- a/src/device/device_ledger.cpp +++ b/src/device/device_ledger.cpp @@ -41,7 +41,7 @@ namespace hw { @@ -381,7 +381,7 @@ index 8403d76..db40a2e 100644 #ifdef DEBUG_HWDEVICE cryptonote::account_public_address pubkey; diff --git a/src/device/device_ledger.hpp b/src/device/device_ledger.hpp -index 03058c4..506f27c 100644 +index 03058c4f1..506f27c4a 100644 --- a/src/device/device_ledger.hpp +++ b/src/device/device_ledger.hpp @@ -35,6 +35,7 @@ @@ -414,7 +414,7 @@ index 03058c4..506f27c 100644 unsigned char buffer_send[BUFFER_SEND_SIZE]; unsigned int length_recv; diff --git a/src/wallet/api/wallet.cpp b/src/wallet/api/wallet.cpp -index ee000e7..375edb4 100644 +index ee000e7ab..375edb4f1 100644 --- a/src/wallet/api/wallet.cpp +++ b/src/wallet/api/wallet.cpp @@ -48,6 +48,9 @@ @@ -524,7 +524,7 @@ index ee000e7..375edb4 100644 + } // namespace diff --git a/src/wallet/api/wallet.h b/src/wallet/api/wallet.h -index edf8bb8..4e9c21e 100644 +index edf8bb8ce..4e9c21ecb 100644 --- a/src/wallet/api/wallet.h +++ b/src/wallet/api/wallet.h @@ -301,6 +301,24 @@ private: @@ -553,7 +553,7 @@ index edf8bb8..4e9c21e 100644 diff --git a/src/wallet/api/wallet2_api.h b/src/wallet/api/wallet2_api.h -index 764adbf..53ec4ab 100644 +index 764adbfbf..53ec4abfc 100644 --- a/src/wallet/api/wallet2_api.h +++ b/src/wallet/api/wallet2_api.h @@ -1150,6 +1150,18 @@ struct Wallet diff --git a/patches/wownero/0010-polyseed.patch b/patches/wownero/0010-polyseed.patch index e5f3112..e7711c9 100644 --- a/patches/wownero/0010-polyseed.patch +++ b/patches/wownero/0010-polyseed.patch @@ -1,7 +1,7 @@ -From 43eeedec72e5e2912118a51af5457ca7d489cdbb Mon Sep 17 00:00:00 2001 +From d1e443859c1b9e6845874fc30f7958da389846b3 Mon Sep 17 00:00:00 2001 From: tobtoht Date: Tue, 12 Mar 2024 09:42:37 +0100 -Subject: [PATCH 10/14] polyseed +Subject: [PATCH 10/17] polyseed Co-authored-by: Czarek Nakamoto --- @@ -49,7 +49,7 @@ Co-authored-by: Czarek Nakamoto create mode 100644 src/polyseed/polyseed.hpp diff --git a/.gitmodules b/.gitmodules -index b24855d..5896766 100644 +index b24855d9b..589676649 100644 --- a/.gitmodules +++ b/.gitmodules @@ -20,3 +20,9 @@ @@ -64,7 +64,7 @@ index b24855d..5896766 100644 + url = https://github.com/tevador/polyseed.git \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt -index abe44ec..85a62ef 100644 +index abe44eca5..85a62ef7b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -372,6 +372,8 @@ if(NOT MANUAL_SUBMODULES) @@ -86,7 +86,7 @@ index abe44ec..85a62ef 100644 if(APPLE) cmake_policy(SET CMP0042 NEW) diff --git a/contrib/depends/hosts/darwin.mk b/contrib/depends/hosts/darwin.mk -index 83d8303..b14ee5c 100644 +index 83d83036b..b14ee5c5b 100644 --- a/contrib/depends/hosts/darwin.mk +++ b/contrib/depends/hosts/darwin.mk @@ -8,6 +8,8 @@ endif @@ -99,7 +99,7 @@ index 83d8303..b14ee5c 100644 darwin_CXXFLAGS=$(darwin_CFLAGS) darwin_ARFLAGS=cr diff --git a/contrib/depends/hosts/linux.mk b/contrib/depends/hosts/linux.mk -index 912fdb0..b79799f 100644 +index 912fdb03c..b79799f30 100644 --- a/contrib/depends/hosts/linux.mk +++ b/contrib/depends/hosts/linux.mk @@ -11,15 +11,15 @@ linux_debug_CXXFLAGS=$(linux_debug_CFLAGS) @@ -123,7 +123,7 @@ index 912fdb0..b79799f 100644 x86_64_linux_RANLIB=ranlib x86_64_linux_NM=nm diff --git a/contrib/depends/packages/packages.mk b/contrib/depends/packages/packages.mk -index d2d1eca..8783d49 100644 +index d2d1eca85..8783d4955 100644 --- a/contrib/depends/packages/packages.mk +++ b/contrib/depends/packages/packages.mk @@ -1,4 +1,4 @@ @@ -134,7 +134,7 @@ index d2d1eca..8783d49 100644 ifneq ($(GITIAN),1) diff --git a/contrib/depends/packages/polyseed.mk b/contrib/depends/packages/polyseed.mk new file mode 100644 -index 0000000..0071b20 +index 000000000..0071b20f3 --- /dev/null +++ b/contrib/depends/packages/polyseed.mk @@ -0,0 +1,28 @@ @@ -167,7 +167,7 @@ index 0000000..0071b20 + $(MAKE) DESTDIR=$($(package)_staging_dir) install +endef diff --git a/contrib/depends/packages/sodium.mk b/contrib/depends/packages/sodium.mk -index 87b3459..68a5b48 100644 +index 87b34599e..68a5b48ba 100644 --- a/contrib/depends/packages/sodium.mk +++ b/contrib/depends/packages/sodium.mk @@ -6,7 +6,7 @@ $(package)_sha256_hash=6f504490b342a4f8a4c4a02fc9b866cbef8622d5df4e5452b46be121e @@ -181,7 +181,7 @@ index 87b3459..68a5b48 100644 diff --git a/contrib/depends/patches/polyseed/0001-disable-soname.patch b/contrib/depends/patches/polyseed/0001-disable-soname.patch new file mode 100644 -index 0000000..bd97dd3 +index 000000000..bd97dd394 --- /dev/null +++ b/contrib/depends/patches/polyseed/0001-disable-soname.patch @@ -0,0 +1,48 @@ @@ -235,7 +235,7 @@ index 0000000..bd97dd3 +2.39.2 diff --git a/contrib/depends/patches/polyseed/force-static-mingw.patch b/contrib/depends/patches/polyseed/force-static-mingw.patch new file mode 100644 -index 0000000..f05cb2b +index 000000000..f05cb2b6a --- /dev/null +++ b/contrib/depends/patches/polyseed/force-static-mingw.patch @@ -0,0 +1,23 @@ @@ -263,7 +263,7 @@ index 0000000..f05cb2b + #else + #ifdef POLYSEED_SHARED diff --git a/contrib/epee/include/wipeable_string.h b/contrib/epee/include/wipeable_string.h -index 65977cd..594e15d 100644 +index 65977cd97..594e15de4 100644 --- a/contrib/epee/include/wipeable_string.h +++ b/contrib/epee/include/wipeable_string.h @@ -34,6 +34,7 @@ @@ -288,7 +288,7 @@ index 65977cd..594e15d 100644 private: void grow(size_t sz, size_t reserved = 0); diff --git a/contrib/epee/src/wipeable_string.cpp b/contrib/epee/src/wipeable_string.cpp -index b016f2f..f2f365b 100644 +index b016f2f48..f2f365b1b 100644 --- a/contrib/epee/src/wipeable_string.cpp +++ b/contrib/epee/src/wipeable_string.cpp @@ -261,4 +261,14 @@ wipeable_string &wipeable_string::operator=(const wipeable_string &other) @@ -307,7 +307,7 @@ index b016f2f..f2f365b 100644 + } diff --git a/external/CMakeLists.txt b/external/CMakeLists.txt -index 88a7bb0..95be500 100644 +index 88a7bb0b5..95be500b1 100644 --- a/external/CMakeLists.txt +++ b/external/CMakeLists.txt @@ -73,4 +73,6 @@ add_subdirectory(db_drivers) @@ -319,20 +319,20 @@ index 88a7bb0..95be500 100644 add_subdirectory(randomwow EXCLUDE_FROM_ALL) diff --git a/external/polyseed b/external/polyseed new file mode 160000 -index 0000000..dfb05d8 +index 000000000..bd79f5014 --- /dev/null +++ b/external/polyseed @@ -0,0 +1 @@ +Subproject commit bd79f5014c331273357277ed8a3d756fb61b9fa1 diff --git a/external/utf8proc b/external/utf8proc new file mode 160000 -index 0000000..3de4596 +index 000000000..3de4596fb --- /dev/null +++ b/external/utf8proc @@ -0,0 +1 @@ +Subproject commit 3de4596fbe28956855df2ecb3c11c0bbc3535838 diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt -index 9216bca..c043ba1 100644 +index 9216bcaa5..c043ba150 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -95,6 +95,7 @@ add_subdirectory(net) @@ -344,7 +344,7 @@ index 9216bca..c043ba1 100644 if(NOT IOS) add_subdirectory(serialization) diff --git a/src/cryptonote_basic/CMakeLists.txt b/src/cryptonote_basic/CMakeLists.txt -index 1414be1..414936a 100644 +index 1414be1b2..414936a05 100644 --- a/src/cryptonote_basic/CMakeLists.txt +++ b/src/cryptonote_basic/CMakeLists.txt @@ -71,6 +71,7 @@ target_link_libraries(cryptonote_basic @@ -356,7 +356,7 @@ index 1414be1..414936a 100644 ${Boost_PROGRAM_OPTIONS_LIBRARY} ${Boost_SERIALIZATION_LIBRARY} diff --git a/src/cryptonote_basic/account.cpp b/src/cryptonote_basic/account.cpp -index 4e87d44..2d556f2 100644 +index 4e87d4477..2d556f285 100644 --- a/src/cryptonote_basic/account.cpp +++ b/src/cryptonote_basic/account.cpp @@ -87,12 +87,16 @@ DISABLE_VS_WARNINGS(4244 4345) @@ -409,7 +409,7 @@ index 4e87d44..2d556f2 100644 { m_keys.m_account_address.m_spend_public_key = spend_public_key; diff --git a/src/cryptonote_basic/account.h b/src/cryptonote_basic/account.h -index 93d1d28..1f76feb 100644 +index 93d1d28f0..1f76febce 100644 --- a/src/cryptonote_basic/account.h +++ b/src/cryptonote_basic/account.h @@ -33,6 +33,7 @@ @@ -447,7 +447,7 @@ index 93d1d28..1f76feb 100644 const account_keys& get_keys() const; std::string get_public_address_str(network_type nettype) const; diff --git a/src/cryptonote_config.h b/src/cryptonote_config.h -index 8b5091a..d9151e8 100644 +index 8b5091a46..d9151e8d2 100644 --- a/src/cryptonote_config.h +++ b/src/cryptonote_config.h @@ -219,6 +219,8 @@ @@ -461,7 +461,7 @@ index 8b5091a..d9151e8 100644 // (1+32) + (1+1+16*32) + (1+16*32) = 1060 diff --git a/src/polyseed/CMakeLists.txt b/src/polyseed/CMakeLists.txt new file mode 100644 -index 0000000..cca4eb7 +index 000000000..cca4eb746 --- /dev/null +++ b/src/polyseed/CMakeLists.txt @@ -0,0 +1,25 @@ @@ -492,7 +492,7 @@ index 0000000..cca4eb7 +) diff --git a/src/polyseed/pbkdf2.c b/src/polyseed/pbkdf2.c new file mode 100644 -index 0000000..1c45f47 +index 000000000..1c45f4708 --- /dev/null +++ b/src/polyseed/pbkdf2.c @@ -0,0 +1,85 @@ @@ -584,7 +584,7 @@ index 0000000..1c45f47 \ No newline at end of file diff --git a/src/polyseed/pbkdf2.h b/src/polyseed/pbkdf2.h new file mode 100644 -index 0000000..f6253b9 +index 000000000..f6253b9d7 --- /dev/null +++ b/src/polyseed/pbkdf2.h @@ -0,0 +1,46 @@ @@ -637,7 +637,7 @@ index 0000000..f6253b9 \ No newline at end of file diff --git a/src/polyseed/polyseed.cpp b/src/polyseed/polyseed.cpp new file mode 100644 -index 0000000..231a48a +index 000000000..231a48a94 --- /dev/null +++ b/src/polyseed/polyseed.cpp @@ -0,0 +1,182 @@ @@ -825,7 +825,7 @@ index 0000000..231a48a +} diff --git a/src/polyseed/polyseed.hpp b/src/polyseed/polyseed.hpp new file mode 100644 -index 0000000..2c8c777 +index 000000000..2c8c777a7 --- /dev/null +++ b/src/polyseed/polyseed.hpp @@ -0,0 +1,167 @@ @@ -998,7 +998,7 @@ index 0000000..2c8c777 +#endif //POLYSEED_HPP \ No newline at end of file diff --git a/src/wallet/api/wallet.cpp b/src/wallet/api/wallet.cpp -index 375edb4..0d78536 100644 +index 375edb4f1..0d785360a 100644 --- a/src/wallet/api/wallet.cpp +++ b/src/wallet/api/wallet.cpp @@ -728,6 +728,28 @@ bool WalletImpl::recoverFromDevice(const std::string &path, const std::string &p @@ -1086,7 +1086,7 @@ index 375edb4..0d78536 100644 { return m_wallet->get_seed_language(); diff --git a/src/wallet/api/wallet.h b/src/wallet/api/wallet.h -index 4e9c21e..32e1228 100644 +index 4e9c21ecb..32e12284b 100644 --- a/src/wallet/api/wallet.h +++ b/src/wallet/api/wallet.h @@ -79,9 +79,19 @@ public: @@ -1110,7 +1110,7 @@ index 4e9c21e..32e1228 100644 void setSeedLanguage(const std::string &arg) override; // void setListener(Listener *) {} diff --git a/src/wallet/api/wallet2_api.h b/src/wallet/api/wallet2_api.h -index 53ec4ab..be1c370 100644 +index 53ec4abfc..be1c3704e 100644 --- a/src/wallet/api/wallet2_api.h +++ b/src/wallet/api/wallet2_api.h @@ -709,6 +709,10 @@ struct Wallet @@ -1153,7 +1153,7 @@ index 53ec4ab..be1c370 100644 * \brief Closes wallet. In case operation succeeded, wallet object deleted. in case operation failed, wallet object not deleted * \param wallet previously opened / created wallet instance diff --git a/src/wallet/api/wallet_manager.cpp b/src/wallet/api/wallet_manager.cpp -index e81b8f8..c79fe25 100644 +index e81b8f83a..c79fe25d6 100644 --- a/src/wallet/api/wallet_manager.cpp +++ b/src/wallet/api/wallet_manager.cpp @@ -156,6 +156,15 @@ Wallet *WalletManagerImpl::createWalletFromDevice(const std::string &path, @@ -1173,7 +1173,7 @@ index e81b8f8..c79fe25 100644 { WalletImpl * wallet_ = dynamic_cast(wallet); diff --git a/src/wallet/api/wallet_manager.h b/src/wallet/api/wallet_manager.h -index a223e1d..28fcd36 100644 +index a223e1df9..28fcd36c9 100644 --- a/src/wallet/api/wallet_manager.h +++ b/src/wallet/api/wallet_manager.h @@ -75,6 +75,16 @@ public: @@ -1194,7 +1194,7 @@ index a223e1d..28fcd36 100644 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; diff --git a/src/wallet/wallet2.cpp b/src/wallet/wallet2.cpp -index 671fa52..3e49c21 100644 +index 671fa5298..3e49c21f8 100644 --- a/src/wallet/wallet2.cpp +++ b/src/wallet/wallet2.cpp @@ -92,6 +92,7 @@ using namespace epee; @@ -1384,7 +1384,7 @@ index 671fa52..3e49c21 100644 uint64_t height_min = 0; uint64_t height_max = get_daemon_blockchain_height(err) - 1; diff --git a/src/wallet/wallet2.h b/src/wallet/wallet2.h -index 80ff069..c26349c 100644 +index 80ff0698d..c26349ce3 100644 --- a/src/wallet/wallet2.h +++ b/src/wallet/wallet2.h @@ -72,6 +72,7 @@ diff --git a/patches/wownero/0011-coin-control.patch b/patches/wownero/0011-coin-control.patch index 342151e..f786777 100644 --- a/patches/wownero/0011-coin-control.patch +++ b/patches/wownero/0011-coin-control.patch @@ -1,7 +1,7 @@ -From 4292758a3d7c0186ee3fb665d789e078ff3e9ec6 Mon Sep 17 00:00:00 2001 +From 7d9d947f049c39aa9e5e4c7cb37c03e63eaf3187 Mon Sep 17 00:00:00 2001 From: tobtoht Date: Tue, 12 Mar 2024 11:07:57 +0100 -Subject: [PATCH 11/14] coin control +Subject: [PATCH 11/17] coin control --- src/simplewallet/simplewallet.cpp | 2 +- @@ -22,7 +22,7 @@ Subject: [PATCH 11/14] coin control create mode 100644 src/wallet/api/coins_info.h diff --git a/src/simplewallet/simplewallet.cpp b/src/simplewallet/simplewallet.cpp -index 8c51220..cfdb893 100644 +index 8c5122097..cfdb8935f 100644 --- a/src/simplewallet/simplewallet.cpp +++ b/src/simplewallet/simplewallet.cpp @@ -6981,7 +6981,7 @@ bool simple_wallet::transfer_main(const std::vector &args_, bool ca @@ -35,7 +35,7 @@ index 8c51220..cfdb893 100644 if (ptx_vector.empty()) { diff --git a/src/wallet/api/CMakeLists.txt b/src/wallet/api/CMakeLists.txt -index af7948d..bb740e2 100644 +index af7948d8a..bb740e2ac 100644 --- a/src/wallet/api/CMakeLists.txt +++ b/src/wallet/api/CMakeLists.txt @@ -40,7 +40,9 @@ set(wallet_api_sources @@ -62,7 +62,7 @@ index af7948d..bb740e2 100644 ${wallet_api_private_headers}) diff --git a/src/wallet/api/coins.cpp b/src/wallet/api/coins.cpp new file mode 100644 -index 0000000..ef12141 +index 000000000..ef12141cf --- /dev/null +++ b/src/wallet/api/coins.cpp @@ -0,0 +1,186 @@ @@ -254,7 +254,7 @@ index 0000000..ef12141 +} // namespace diff --git a/src/wallet/api/coins.h b/src/wallet/api/coins.h new file mode 100644 -index 0000000..b7a0a86 +index 000000000..b7a0a8642 --- /dev/null +++ b/src/wallet/api/coins.h @@ -0,0 +1,40 @@ @@ -300,7 +300,7 @@ index 0000000..b7a0a86 +#endif //FEATHER_COINS_H diff --git a/src/wallet/api/coins_info.cpp b/src/wallet/api/coins_info.cpp new file mode 100644 -index 0000000..5f2c4e1 +index 000000000..5f2c4e1e4 --- /dev/null +++ b/src/wallet/api/coins_info.cpp @@ -0,0 +1,122 @@ @@ -428,7 +428,7 @@ index 0000000..5f2c4e1 +namespace Bitmonero = Monero; diff --git a/src/wallet/api/coins_info.h b/src/wallet/api/coins_info.h new file mode 100644 -index 0000000..c43e45a +index 000000000..c43e45abd --- /dev/null +++ b/src/wallet/api/coins_info.h @@ -0,0 +1,71 @@ @@ -504,7 +504,7 @@ index 0000000..c43e45a + +#endif //FEATHER_COINS_INFO_H diff --git a/src/wallet/api/wallet.cpp b/src/wallet/api/wallet.cpp -index 0d78536..ff1baac 100644 +index 0d785360a..ff1baac5c 100644 --- a/src/wallet/api/wallet.cpp +++ b/src/wallet/api/wallet.cpp @@ -35,6 +35,7 @@ @@ -640,7 +640,7 @@ index 0d78536..ff1baac 100644 { return m_subaddress.get(); diff --git a/src/wallet/api/wallet.h b/src/wallet/api/wallet.h -index 32e1228..a82f270 100644 +index 32e12284b..a82f270e4 100644 --- a/src/wallet/api/wallet.h +++ b/src/wallet/api/wallet.h @@ -46,6 +46,7 @@ class PendingTransactionImpl; @@ -693,7 +693,7 @@ index 32e1228..a82f270 100644 // multi-threaded refresh stuff diff --git a/src/wallet/api/wallet2_api.h b/src/wallet/api/wallet2_api.h -index be1c370..013b5bc 100644 +index be1c3704e..013b5bcba 100644 --- a/src/wallet/api/wallet2_api.h +++ b/src/wallet/api/wallet2_api.h @@ -263,6 +263,51 @@ struct AddressBook @@ -777,7 +777,7 @@ index be1c370..013b5bc 100644 virtual SubaddressAccount * subaddressAccount() = 0; virtual void setListener(WalletListener *) = 0; diff --git a/src/wallet/wallet2.cpp b/src/wallet/wallet2.cpp -index 3e49c21..4d75656 100644 +index 3e49c21f8..4d756567f 100644 --- a/src/wallet/wallet2.cpp +++ b/src/wallet/wallet2.cpp @@ -2094,12 +2094,21 @@ bool wallet2::frozen(const multisig_tx_set& txs) const @@ -924,7 +924,7 @@ index 3e49c21..4d75656 100644 { 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 -index c26349c..a48ba33 100644 +index c26349ce3..a48ba33b6 100644 --- a/src/wallet/wallet2.h +++ b/src/wallet/wallet2.h @@ -1209,8 +1209,8 @@ private: diff --git a/patches/wownero/0012-Add-hex-encoding-and-tx-key-getter-for-PendingTransc.patch b/patches/wownero/0012-Add-hex-encoding-and-tx-key-getter-for-PendingTransc.patch index 8834241..3868907 100644 --- a/patches/wownero/0012-Add-hex-encoding-and-tx-key-getter-for-PendingTransc.patch +++ b/patches/wownero/0012-Add-hex-encoding-and-tx-key-getter-for-PendingTransc.patch @@ -1,7 +1,7 @@ -From 88736bd375a752998aab2f663e2c180f89f52937 Mon Sep 17 00:00:00 2001 +From fc519329a5eaeaacd53ceb5109608069d57ac553 Mon Sep 17 00:00:00 2001 From: M Date: Fri, 21 Apr 2023 15:43:47 -0400 -Subject: [PATCH 12/14] Add hex encoding and tx key getter for +Subject: [PATCH 12/17] Add hex encoding and tx key getter for PendingTransction in wallet api. --- @@ -11,7 +11,7 @@ Subject: [PATCH 12/14] Add hex encoding and tx key getter for 3 files changed, 20 insertions(+) diff --git a/src/wallet/api/pending_transaction.cpp b/src/wallet/api/pending_transaction.cpp -index 9c3c26e..1f714d2 100644 +index 9c3c26ee5..1f714d229 100644 --- a/src/wallet/api/pending_transaction.cpp +++ b/src/wallet/api/pending_transaction.cpp @@ -80,6 +80,22 @@ std::vector PendingTransactionImpl::txid() const @@ -38,7 +38,7 @@ index 9c3c26e..1f714d2 100644 { diff --git a/src/wallet/api/pending_transaction.h b/src/wallet/api/pending_transaction.h -index 403bfe2..0cc6c58 100644 +index 403bfe281..0cc6c58e9 100644 --- a/src/wallet/api/pending_transaction.h +++ b/src/wallet/api/pending_transaction.h @@ -59,6 +59,8 @@ public: @@ -51,7 +51,7 @@ index 403bfe2..0cc6c58 100644 private: friend class WalletImpl; diff --git a/src/wallet/api/wallet2_api.h b/src/wallet/api/wallet2_api.h -index 013b5bc..f421fdc 100644 +index 013b5bcba..f421fdc05 100644 --- a/src/wallet/api/wallet2_api.h +++ b/src/wallet/api/wallet2_api.h @@ -127,6 +127,8 @@ struct PendingTransaction diff --git a/patches/wownero/0013-Add-recoverDeterministicWalletFromSpendKey.patch b/patches/wownero/0013-Add-recoverDeterministicWalletFromSpendKey.patch index 8487192..033050d 100644 --- a/patches/wownero/0013-Add-recoverDeterministicWalletFromSpendKey.patch +++ b/patches/wownero/0013-Add-recoverDeterministicWalletFromSpendKey.patch @@ -1,7 +1,7 @@ -From 35fbb3f808e1884e496082dc5280b7e2636f0eb0 Mon Sep 17 00:00:00 2001 +From 3523d4ea3449b64065f7fa512a0017581b76c1c8 Mon Sep 17 00:00:00 2001 From: Konstantin Ullrich Date: Wed, 11 Oct 2023 16:47:59 +0200 -Subject: [PATCH 13/14] Add recoverDeterministicWalletFromSpendKey +Subject: [PATCH 13/17] Add recoverDeterministicWalletFromSpendKey This function is used by Cake Wallet to enable polyseed (dart implementation) support. @@ -19,7 +19,7 @@ Co-authored-by: Godwin Asuquo 5 files changed, 75 insertions(+) diff --git a/src/wallet/api/wallet.cpp b/src/wallet/api/wallet.cpp -index ff1baac..6854325 100644 +index ff1baac5c..685432597 100644 --- a/src/wallet/api/wallet.cpp +++ b/src/wallet/api/wallet.cpp @@ -824,6 +824,35 @@ bool WalletImpl::recover(const std::string &path, const std::string &password, c @@ -59,7 +59,7 @@ index ff1baac..6854325 100644 { diff --git a/src/wallet/api/wallet.h b/src/wallet/api/wallet.h -index a82f270..9e1fbb4 100644 +index a82f270e4..9e1fbb40b 100644 --- a/src/wallet/api/wallet.h +++ b/src/wallet/api/wallet.h @@ -77,6 +77,10 @@ public: @@ -74,7 +74,7 @@ index a82f270..9e1fbb4 100644 const std::string &password, const std::string &device_name); diff --git a/src/wallet/api/wallet2_api.h b/src/wallet/api/wallet2_api.h -index f421fdc..c8d6bb1 100644 +index f421fdc05..c8d6bb179 100644 --- a/src/wallet/api/wallet2_api.h +++ b/src/wallet/api/wallet2_api.h @@ -1323,6 +1323,25 @@ struct WalletManager @@ -104,7 +104,7 @@ index f421fdc..c8d6bb1 100644 * \deprecated this method creates a wallet WITHOUT a passphrase, use createWalletFromKeys(..., password, ...) instead * \brief recovers existing wallet using keys. Creates a view only wallet if spend key is omitted diff --git a/src/wallet/api/wallet_manager.cpp b/src/wallet/api/wallet_manager.cpp -index c79fe25..f88bd9e 100644 +index c79fe25d6..f88bd9e64 100644 --- a/src/wallet/api/wallet_manager.cpp +++ b/src/wallet/api/wallet_manager.cpp @@ -127,6 +127,22 @@ Wallet *WalletManagerImpl::createWalletFromKeys(const std::string &path, @@ -131,7 +131,7 @@ index c79fe25..f88bd9e 100644 const std::string &password, NetworkType nettype, diff --git a/src/wallet/api/wallet_manager.h b/src/wallet/api/wallet_manager.h -index 28fcd36..be3ff81 100644 +index 28fcd36c9..be3ff8184 100644 --- a/src/wallet/api/wallet_manager.h +++ b/src/wallet/api/wallet_manager.h @@ -67,6 +67,13 @@ public: diff --git a/patches/wownero/0014-build-wownero-seed.patch b/patches/wownero/0014-build-wownero-seed.patch index 649127e..2b7f867 100644 --- a/patches/wownero/0014-build-wownero-seed.patch +++ b/patches/wownero/0014-build-wownero-seed.patch @@ -1,7 +1,7 @@ -From 942d3f9053779f7673e327d1d22faa3f52a936a6 Mon Sep 17 00:00:00 2001 +From 8d1cd10b2514d225ae5d2d6f73947529647392e7 Mon Sep 17 00:00:00 2001 From: Czarek Nakamoto Date: Thu, 25 Apr 2024 10:06:04 +0200 -Subject: [PATCH 14/14] build wownero-seed +Subject: [PATCH 14/17] build wownero-seed --- contrib/depends/hosts/android.mk | 4 +- @@ -15,7 +15,7 @@ Subject: [PATCH 14/14] build wownero-seed create mode 100644 contrib/depends/patches/wownero_seed/0001-fix-duplicate-symbol-error.patch diff --git a/contrib/depends/hosts/android.mk b/contrib/depends/hosts/android.mk -index 827103c..8aad7ec 100644 +index 827103c36..8aad7ec65 100644 --- a/contrib/depends/hosts/android.mk +++ b/contrib/depends/hosts/android.mk @@ -15,8 +15,8 @@ endif @@ -30,7 +30,7 @@ index 827103c..8aad7ec 100644 android_CFLAGS=-pipe android_CXXFLAGS=$(android_CFLAGS) diff --git a/contrib/depends/hosts/darwin.mk b/contrib/depends/hosts/darwin.mk -index b14ee5c..2168702 100644 +index b14ee5c5b..2168702aa 100644 --- a/contrib/depends/hosts/darwin.mk +++ b/contrib/depends/hosts/darwin.mk @@ -9,6 +9,7 @@ darwin_CC=clang -target $(CC_target) -mmacosx-version-min=$(OSX_MIN_VERSION) --s @@ -42,7 +42,7 @@ index b14ee5c..2168702 100644 darwin_CFLAGS=-pipe darwin_CXXFLAGS=$(darwin_CFLAGS) diff --git a/contrib/depends/hosts/mingw32.mk b/contrib/depends/hosts/mingw32.mk -index ccc4c50..4677694 100644 +index ccc4c5082..4677694a6 100644 --- a/contrib/depends/hosts/mingw32.mk +++ b/contrib/depends/hosts/mingw32.mk @@ -2,6 +2,9 @@ mingw32_CFLAGS=-pipe @@ -56,7 +56,7 @@ index ccc4c50..4677694 100644 mingw32_release_CXXFLAGS=$(mingw32_release_CFLAGS) diff --git a/contrib/depends/packages/packages.mk b/contrib/depends/packages/packages.mk -index 8783d49..3d513c5 100644 +index 8783d4955..3d513c5a2 100644 --- a/contrib/depends/packages/packages.mk +++ b/contrib/depends/packages/packages.mk @@ -1,4 +1,4 @@ @@ -67,7 +67,7 @@ index 8783d49..3d513c5 100644 ifneq ($(GITIAN),1) diff --git a/contrib/depends/packages/wownero_seed.mk b/contrib/depends/packages/wownero_seed.mk new file mode 100644 -index 0000000..b376f80 +index 000000000..b376f80c5 --- /dev/null +++ b/contrib/depends/packages/wownero_seed.mk @@ -0,0 +1,35 @@ @@ -108,7 +108,7 @@ index 0000000..b376f80 +endef diff --git a/contrib/depends/patches/wownero_seed/0001-fix-duplicate-symbol-error.patch b/contrib/depends/patches/wownero_seed/0001-fix-duplicate-symbol-error.patch new file mode 100644 -index 0000000..a8f8fe0 +index 000000000..a8f8fe059 --- /dev/null +++ b/contrib/depends/patches/wownero_seed/0001-fix-duplicate-symbol-error.patch @@ -0,0 +1,497 @@ diff --git a/patches/wownero/0015-add-monero-submodule-support.patch b/patches/wownero/0015-add-monero-submodule-support.patch index 97dcc90..4ef6bd2 100644 --- a/patches/wownero/0015-add-monero-submodule-support.patch +++ b/patches/wownero/0015-add-monero-submodule-support.patch @@ -1,7 +1,7 @@ -From c7a565ce333b11e4eaa25a1cf6035837146273d7 Mon Sep 17 00:00:00 2001 +From 24bc8f2b4ead8cb848a979140129618d04ebc762 Mon Sep 17 00:00:00 2001 From: cyan Date: Thu, 7 Nov 2024 16:46:24 +0000 -Subject: [PATCH] add monero submodule support +Subject: [PATCH 15/17] add monero submodule support --- CMakeLists.txt | 6 +++--- @@ -10,7 +10,7 @@ Subject: [PATCH] add monero submodule support 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt -index e7fa90abb..b995a68b2 100644 +index 85a62ef7b..763d240fc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -223,9 +223,9 @@ function(forbid_undefined_symbols) @@ -25,7 +25,7 @@ index e7fa90abb..b995a68b2 100644 endif() add_library(l0 SHARED incorrect_source.cpp) add_library(l1 MODULE incorrect_source.cpp) -@@ -390,7 +390,7 @@ else() +@@ -391,7 +391,7 @@ else() endif() list(INSERT CMAKE_MODULE_PATH 0 @@ -48,10 +48,10 @@ index 7ecf5f610..89fb9d167 100644 set(saved_CMAKE_C_FLAGS ${CMAKE_C_FLAGS}) set(CMAKE_C_FLAGS "${flag}") diff --git a/src/wallet/wallet_rpc_server.cpp b/src/wallet/wallet_rpc_server.cpp -index d24b4c563..91f692599 100644 +index 3cc6b278f..071434486 100644 --- a/src/wallet/wallet_rpc_server.cpp +++ b/src/wallet/wallet_rpc_server.cpp -@@ -1163,7 +1163,7 @@ namespace tools +@@ -1162,7 +1162,7 @@ namespace tools { uint64_t mixin = m_wallet->adjust_mixin(req.ring_size ? req.ring_size - 1 : 0); uint32_t priority = m_wallet->adjust_priority(req.priority); @@ -61,5 +61,5 @@ index d24b4c563..91f692599 100644 if (ptx_vector.empty()) { -- -2.43.0 +2.39.5 (Apple Git-154) diff --git a/patches/wownero/0016-include-locale-only-when-targeting-WIN32.patch b/patches/wownero/0016-include-locale-only-when-targeting-WIN32.patch index f13aad0..725e1ff 100644 --- a/patches/wownero/0016-include-locale-only-when-targeting-WIN32.patch +++ b/patches/wownero/0016-include-locale-only-when-targeting-WIN32.patch @@ -1,87 +1,18 @@ -From 41f67e50f34cd5d7d909a5d7ec0b1e59463261f6 Mon Sep 17 00:00:00 2001 +From 5843cb6c653a65eab3aea5956b41150b7c94cb0a Mon Sep 17 00:00:00 2001 From: Czarek Nakamoto Date: Mon, 18 Nov 2024 10:57:37 -0500 -Subject: [PATCH] include locale only when targeting WIN32 +Subject: [PATCH 16/17] include locale only when targeting WIN32 --- - CMakeLists.txt | 25 ++++++++++--------------- - src/wallet/api/wallet.cpp | 2 ++ - 2 files changed, 12 insertions(+), 15 deletions(-) + CMakeLists.txt | 5 ++++- + src/wallet/api/wallet.cpp | 2 ++ + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt -index 763d240fc..ec5878005 100644 +index 763d240fc..1397bb217 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -96,8 +96,7 @@ enable_language(C ASM) - set(CMAKE_C_STANDARD 11) - set(CMAKE_C_STANDARD_REQUIRED ON) - set(CMAKE_C_EXTENSIONS OFF) --set(CMAKE_CXX_STANDARD 17) --add_definitions(-D_LIBCPP_ENABLE_CXX17_REMOVED_FEATURES) # boost: no template named 'unary_function' in namespace 'std'; did you mean '__unary_function'? -+set(CMAKE_CXX_STANDARD 14) - set(CMAKE_CXX_STANDARD_REQUIRED ON) - set(CMAKE_CXX_EXTENSIONS OFF) - -@@ -223,9 +222,9 @@ function(forbid_undefined_symbols) - cmake_minimum_required(VERSION 3.1) - project(test) - option(EXPECT_SUCCESS "" ON) --file(WRITE "${CMAKE_CURRENT_SOURCE_DIR}/incorrect_source.cpp" "void undefined_symbol(); void symbol() { undefined_symbol(); }") -+file(WRITE "${CMAKE_SOURCE_DIR}/incorrect_source.cpp" "void undefined_symbol(); void symbol() { undefined_symbol(); }") - if (EXPECT_SUCCESS) -- file(APPEND "${CMAKE_CURRENT_SOURCE_DIR}/incorrect_source.cpp" " void undefined_symbol() {}; ") -+ file(APPEND "${CMAKE_SOURCE_DIR}/incorrect_source.cpp" " void undefined_symbol() {}; ") - endif() - add_library(l0 SHARED incorrect_source.cpp) - add_library(l1 MODULE incorrect_source.cpp) -@@ -366,14 +365,11 @@ if(NOT MANUAL_SUBMODULES) - endfunction () - - message(STATUS "Checking submodules") -- #check_submodule(external/bc-ur) - check_submodule(external/miniupnp) - check_submodule(external/rapidjson) - #check_submodule(external/trezor-common) - check_submodule(external/randomwow) - check_submodule(external/supercop) -- check_submodule(external/polyseed) -- check_submodule(external/utf8proc) - endif() - endif() - -@@ -391,7 +387,7 @@ else() - endif() - - list(INSERT CMAKE_MODULE_PATH 0 -- "${CMAKE_CURRENT_SOURCE_DIR}/cmake") -+ "${CMAKE_SOURCE_DIR}/cmake") - - if (NOT DEFINED ENV{DEVELOPER_LOCAL_TOOLS}) - message(STATUS "Could not find DEVELOPER_LOCAL_TOOLS in env (not required)") -@@ -463,7 +459,7 @@ endif() - # elseif(CMAKE_SYSTEM_NAME MATCHES ".*BSDI.*") - # set(BSDI TRUE) - --include_directories(external/rapidjson/include external/easylogging++ src contrib/epee/include external external/supercop/include external/polyseed/include external/utf8proc) -+include_directories(external/rapidjson/include external/easylogging++ src contrib/epee/include external external/supercop/include) - - if(APPLE) - cmake_policy(SET CMP0042 NEW) -@@ -711,12 +707,8 @@ include_directories(${LMDB_INCLUDE}) - include_directories(${LIBUNWIND_INCLUDE}) - link_directories(${LIBUNWIND_LIBRARY_DIRS}) - --if (HIDAPI_DUMMY) -- add_definitions(-DHIDAPI_DUMMY) --endif() -- - # Final setup for hid --if (HIDAPI_FOUND) -+if (HIDAPI_FOUND) - message(STATUS "Using HIDAPI include dir at ${HIDAPI_INCLUDE_DIR}") - add_definitions(-DHAVE_HIDAPI) - include_directories(${HIDAPI_INCLUDE_DIR}) -@@ -1100,7 +1092,10 @@ if(STATIC) +@@ -1100,7 +1100,10 @@ if(STATIC) set(Boost_USE_STATIC_LIBS ON) set(Boost_USE_STATIC_RUNTIME ON) endif() diff --git a/patches/wownero/0017-ledger-dummy-fix.patch b/patches/wownero/0017-ledger-dummy-fix.patch new file mode 100644 index 0000000..62ded03 --- /dev/null +++ b/patches/wownero/0017-ledger-dummy-fix.patch @@ -0,0 +1,157 @@ +From a2a5c6a81ae63b2a4a8fe02b7929dcf3084b2a51 Mon Sep 17 00:00:00 2001 +From: cyan +Date: Tue, 26 Nov 2024 00:31:15 +0000 +Subject: [PATCH 17/17] ledger dummy fix + +--- + src/device/device_io_dummy.cpp | 2 +- + src/device/device_io_dummy.hpp | 2 +- + src/device/device_ledger.hpp | 2 +- + src/wallet/api/wallet.cpp | 36 +++++++++++++++++----------------- + 4 files changed, 21 insertions(+), 21 deletions(-) + +diff --git a/src/device/device_io_dummy.cpp b/src/device/device_io_dummy.cpp +index fb082694e..e7e79fb58 100644 +--- a/src/device/device_io_dummy.cpp ++++ b/src/device/device_io_dummy.cpp +@@ -38,7 +38,7 @@ + // Data transport is made available in wallet2_api.h, so wallet developers can easily plug their + // own USB/BLE/other transport layer. + +-#ifdef HIDAPI_DUMMY ++#if defined(HIDAPI_DUMMY) && !defined(HAVE_HIDAPI) + #include + #include "log.hpp" + #include "device_io_dummy.hpp" +diff --git a/src/device/device_io_dummy.hpp b/src/device/device_io_dummy.hpp +index a1733616d..4a4807121 100644 +--- a/src/device/device_io_dummy.hpp ++++ b/src/device/device_io_dummy.hpp +@@ -26,7 +26,7 @@ + // STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF + // THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + // +-#ifdef HIDAPI_DUMMY ++#if defined(HIDAPI_DUMMY) && !defined(HAVE_HIDAPI) + + #pragma once + +diff --git a/src/device/device_ledger.hpp b/src/device/device_ledger.hpp +index 506f27c4a..39454ca6d 100644 +--- a/src/device/device_ledger.hpp ++++ b/src/device/device_ledger.hpp +@@ -149,7 +149,7 @@ namespace hw { + mutable boost::mutex command_locker; + + //IO +-#ifdef HIDAPI_DUMMY ++#if defined(HIDAPI_DUMMY) && !defined(HAVE_HIDAPI) + hw::io::device_io_dummy hw_device; + #else + hw::io::device_io_hid hw_device; +diff --git a/src/wallet/api/wallet.cpp b/src/wallet/api/wallet.cpp +index c9ff4b860..313384f54 100644 +--- a/src/wallet/api/wallet.cpp ++++ b/src/wallet/api/wallet.cpp +@@ -3339,8 +3339,8 @@ uint64_t WalletImpl::getBytesSent() + + // HIDAPI_DUMMY + bool WalletImpl::getStateIsConnected() { +- #ifndef HIDAPI_DUMMY +- setStatusError("MONERO compiled with -DHIDAPI_DUMMY"); ++ #if !(defined(HIDAPI_DUMMY) && !defined(HAVE_HIDAPI)) ++ setStatusError("MONERO compiled with #if !(defined(HIDAPI_DUMMY) && !defined(HAVE_HIDAPI))"); + return false; + #else + return hw::io::device_io_dummy::stateIsConnected; +@@ -3348,8 +3348,8 @@ bool WalletImpl::getStateIsConnected() { + } + + unsigned char* WalletImpl::getSendToDevice() { +- #ifndef HIDAPI_DUMMY +- setStatusError("MONERO compiled with -DHIDAPI_DUMMY"); ++ #if !(defined(HIDAPI_DUMMY) && !defined(HAVE_HIDAPI)) ++ setStatusError("MONERO compiled with #if !(defined(HIDAPI_DUMMY) && !defined(HAVE_HIDAPI))"); + return {}; + #else + return hw::io::device_io_dummy::sendToDevice; +@@ -3357,8 +3357,8 @@ unsigned char* WalletImpl::getSendToDevice() { + } + + size_t WalletImpl::getSendToDeviceLength() { +- #ifndef HIDAPI_DUMMY +- setStatusError("MONERO compiled with -DHIDAPI_DUMMY"); ++ #if !(defined(HIDAPI_DUMMY) && !defined(HAVE_HIDAPI)) ++ setStatusError("MONERO compiled with #if !(defined(HIDAPI_DUMMY) && !defined(HAVE_HIDAPI))"); + return -1; + #else + return hw::io::device_io_dummy::sendToDeviceLength; +@@ -3366,8 +3366,8 @@ size_t WalletImpl::getSendToDeviceLength() { + } + + unsigned char* WalletImpl::getReceivedFromDevice() { +- #ifndef HIDAPI_DUMMY +- setStatusError("MONERO compiled with -DHIDAPI_DUMMY"); ++ #if !(defined(HIDAPI_DUMMY) && !defined(HAVE_HIDAPI)) ++ setStatusError("MONERO compiled with #if !(defined(HIDAPI_DUMMY) && !defined(HAVE_HIDAPI))"); + return {}; + #else + return hw::io::device_io_dummy::receivedFromDevice; +@@ -3375,8 +3375,8 @@ unsigned char* WalletImpl::getReceivedFromDevice() { + } + + size_t WalletImpl::getReceivedFromDeviceLength() { +- #ifndef HIDAPI_DUMMY +- setStatusError("MONERO compiled with -DHIDAPI_DUMMY"); ++ #if !(defined(HIDAPI_DUMMY) && !defined(HAVE_HIDAPI)) ++ setStatusError("MONERO compiled with #if !(defined(HIDAPI_DUMMY) && !defined(HAVE_HIDAPI))"); + return -1; + #else + return hw::io::device_io_dummy::receivedFromDeviceLength; +@@ -3384,8 +3384,8 @@ size_t WalletImpl::getReceivedFromDeviceLength() { + } + + bool WalletImpl::getWaitsForDeviceSend() { +- #ifndef HIDAPI_DUMMY +- setStatusError("MONERO compiled with -DHIDAPI_DUMMY"); ++ #if !(defined(HIDAPI_DUMMY) && !defined(HAVE_HIDAPI)) ++ setStatusError("MONERO compiled with #if !(defined(HIDAPI_DUMMY) && !defined(HAVE_HIDAPI))"); + return false; + #else + return hw::io::device_io_dummy::receivedFromDeviceLength; +@@ -3393,8 +3393,8 @@ bool WalletImpl::getWaitsForDeviceSend() { + } + + bool WalletImpl::getWaitsForDeviceReceive() { +- #ifndef HIDAPI_DUMMY +- setStatusError("MONERO compiled with -DHIDAPI_DUMMY"); ++ #if !(defined(HIDAPI_DUMMY) && !defined(HAVE_HIDAPI)) ++ setStatusError("MONERO compiled with #if !(defined(HIDAPI_DUMMY) && !defined(HAVE_HIDAPI))"); + return false; + #else + return hw::io::device_io_dummy::waitsForDeviceReceive; +@@ -3402,8 +3402,8 @@ bool WalletImpl::getWaitsForDeviceReceive() { + } + + void WalletImpl::setDeviceReceivedData(unsigned char* data, size_t len) { +- #ifndef HIDAPI_DUMMY +- setStatusError("MONERO compiled with -DHIDAPI_DUMMY"); ++ #if !(defined(HIDAPI_DUMMY) && !defined(HAVE_HIDAPI)) ++ setStatusError("MONERO compiled with #if !(defined(HIDAPI_DUMMY) && !defined(HAVE_HIDAPI))"); + return; + #else + hw::io::device_io_dummy::receivedFromDevice = static_cast(malloc(len)); +@@ -3415,8 +3415,8 @@ void WalletImpl::setDeviceReceivedData(unsigned char* data, size_t len) { + } + + void WalletImpl::setDeviceSendData(unsigned char* data, size_t len) { +- #ifndef HIDAPI_DUMMY +- setStatusError("MONERO compiled with -DHIDAPI_DUMMY"); ++ #if !(defined(HIDAPI_DUMMY) && !defined(HAVE_HIDAPI)) ++ setStatusError("MONERO compiled with #if !(defined(HIDAPI_DUMMY) && !defined(HAVE_HIDAPI))"); + return; + #else + hw::io::device_io_dummy::sendToDevice = static_cast(malloc(len)); +-- +2.39.5 (Apple Git-154) + diff --git a/wownero_libwallet2_api_c/src/main/cpp/wallet2_api_c.cpp b/wownero_libwallet2_api_c/src/main/cpp/wallet2_api_c.cpp index 19a14ba..159421b 100644 --- a/wownero_libwallet2_api_c/src/main/cpp/wallet2_api_c.cpp +++ b/wownero_libwallet2_api_c/src/main/cpp/wallet2_api_c.cpp @@ -5,7 +5,7 @@ #include #include #include "../../../../wownero/src/wallet/api/wallet2_api.h" -#include "../../../../external/wownero-seed/include/wownero_seed/wownero_seed.hpp" +#include "../../../wownero-seed/include/wownero_seed/wownero_seed.hpp" #include "wownero_checksum.h" #ifdef __cplusplus diff --git a/wownero_libwallet2_api_c/wownero-seed b/wownero_libwallet2_api_c/wownero-seed new file mode 160000 index 0000000..4a4e5b6 --- /dev/null +++ b/wownero_libwallet2_api_c/wownero-seed @@ -0,0 +1 @@ +Subproject commit 4a4e5b6c54c1710aa185cb0838b087238cbfc9a2 -- cgit v1.2.3