Skip to content

Merges from Bitcoin up to the v29 branch point#1556

Open
tomt1664 wants to merge 10000 commits into
ElementsProject:masterfrom
tomt1664:merged-master
Open

Merges from Bitcoin up to the v29 branch point#1556
tomt1664 wants to merge 10000 commits into
ElementsProject:masterfrom
tomt1664:merged-master

Conversation

@tomt1664

Copy link
Copy Markdown
Member

Upstream merges to version 29.x.

Fixes to GUIX builds.

Replaced the upstream Bitcoin Core secp256k1 subtree with BlockstreamResearch/secp256k1-zkp master

Fixes to Github Actions CI:

src/CMakeLists.txt:
Added -Wno-error=conditional-uninitialized and -Wno-error=implicit-fallthrough to the elementssimplicity target to suppress AppleClang warning-as-error failures.
Added C_STANDARD 11 to the elementssimplicity target.

src/test/fuzz/CMakeLists.txt:
Added C11 standard and -UNDEBUG -DPRODUCTION compile flags to simplicity_compute_amr.c via set_source_files_properties, with MSVC-conditional /std:c11 vs -std=c11 handling.

src/test/util/random.cpp:
Added g_used_g_prng = false; reset before the assertion in SeedRandomStateForTest to fix a Windows static-init-order false assertion in fuzz tests.

Multiple wallet/rpc source files (httprpc.cpp, setup_common.cpp, signmessage.cpp, i2p.cpp, core_read.cpp, core_write.cpp, wallet/rpc/*.cpp, recentrequeststablemodel.cpp, net.cpp, primitives/confidential.h, wallet/salvage.cpp, init.cpp, test/fuzz/util.h): Wrapped Elements-specific HexStr/DataStream call sites with MakeByteSpan() to resolve MSVC strict overload resolution failures on vector to Span conversions.

src/assetsdir.cpp:
Replaced boost::split with std::string::find-based parsing to remove the Windows Boost dependency.

Multiple fuzz test source files (p2p_headers_presync.cpp, package_eval.cpp, txdownloadman.cpp, test/fuzz/util/wallet.h, wallet/test/fuzz/spend.cpp, notifications.cpp, witness_program.cpp):
Fixed Elements API divergences from Bitcoin Core in fuzz targets: confidential asset/value types, witness access patterns, and a C4806 sign-conversion fix via static_cast<uint8_t>.

ci/test/03_test_script.sh:
Reworked for NO_DEPENDS branch with CMAKE_GENERATOR fix and corrected script paths.

.github/workflows/ci.yml (win64-native job):
Added -DCMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE to flatten binary output to build/bin/ with no Release/ subdirectory.
Updated functional test env vars to use correct elementsd.exe, elements-cli.exe, elements-util.exe, elements-wallet.exe paths.
Updated fuzz job BITCOINFUZZ to build\bin\fuzz.exe.
Switched fuzz corpora clone from bitcoin-core/qa-assets to ElementsProject/qa-assets, fixing coins_view fuzz assertion failures caused by using Bitcoin-only corpus.

test/functional/feature_trim_headers.py:
Fixed line 269: TrimHeadersTest(file).main().

src/blind.cpp:
Replaced fixed-size 640KB stack arrays unsigned char blind[10000][32] and unsigned char asset_blind[10000][32] with heap-allocated std::vector<std::array<unsigned char, 32>> sized to num_to_blind, eliminating a stack overflow on macOS arm64 worker threads.

test/functional/feature_config_args.py:
Cherry-picked upstream Bitcoin Core commit a306048: added self.extra_args = [["-prune=550"]] in set_test_params() and simplified test_testnet3_deprecation_msg.
Fixed test_config_file_log to write elements.conf directly to default_datadir / "elements.conf".
Stripped -prune= from node.args in test_config_file_log.
Added explicit -prune=550 to both start_node calls in test_testnet3_deprecation_msg.

test/functional/test_framework/util.py:
Fixed get_temp_default_datadir to return temp_dir / ".elements" on macOS instead of temp_dir / "Library/Application Support/Elements".

ivanlele and others added 30 commits April 8, 2026 15:53
ivanlele and others added 25 commits April 16, 2026 14:07
…issuances

56eb713 Log status of ELIP 203 (Pablo Greco)
d805236 liquidv1: allow enabling -acceptunlimitedissuances (Pablo Greco)

Pull request description:

  Preparation for the activation of  [ELIP 203](https://github.com/ElementsProject/ELIPs/blob/main/elip-0203.mediawiki), we need to move from a hardcoded false to an optionin liquidv1

ACKs for top commit:
  tomt1664:
    Tested ACK 56eb713
  delta1:
    ACK 56eb713; tested locally, changes allow acceptunlimitedissuances to be configurable on liquidv1 chain

Tree-SHA512: 1671634af6f3dfeaf48c9c6f9aa8598fed1eddc6a279b7bbbfd6d7d7062b89d85a60ec561560308d55ef4e80790db760b8dd20c19167db248d13d41570893314
…unt field

56b2572 enabled > 21m for issued assets in GUI amount field (Tom Trevethan)

Pull request description:

  Only pegged asset limited to `MAX_MONEY` for the GUI amount field. Issued assets can have amounts displayed > MAX_MONEY.

ACKs for top commit:
  delta1:
    ACK 56b2572; ran tests locally but have not tested the GUI

Tree-SHA512: 9a04ed9016b420a32bbaa98b80712725691619c5ca854a6b6d0b07e5a91c9ff818e6367a93f6f5c54ae8e0e9e799b6367042c0f823b6c066c5e25a9624b8adc2
…py to fix intermittent failure

6515f58 change test order in feature_discount_ct to fix intermittent failure (Tom Trevethan)

Pull request description:

  Prevents blinded output being selected intermittently and resulting in vszie and fee assertions failing.

ACKs for top commit:
  delta1:
    ACK 6515f58; fixes discount_ct test flakiness

Tree-SHA512: 32d8c64011125e5531dd19ce84dbe39b2d4496a02c5bf5ece0cbc2f0c2bf6660816d6d61593fe32a615dd96a8632d94cba6bc09e792ffa6ea57fbdc4f52424da
fuzz test fixes

set -DPRODUCTION for simplicity in fuzz tests

set UNDEBUG for simplicity in fuzz tests

update wallet fuzz tests

update test script

fix msvc conversion issues

more msvc vector conversion fixes and substitution of boost libs

fix more hexstr calls

fix hexstr calls in init.cpp

default CMAKE_GENERATOR to Unix Makefiles

more span fixes

specify build bin directory

fix executable locations

fix fuzz tests for c11 and functional test fixes

fix fuzz test executable path

specify legacy wallet for elements functional tests

remove assertion for static initialization order issue

use elements fuzz corpus

print debug log on failure

use heap for blind and asset_blind

test: avoid disk space warning for non-regtest

feature_config_args.py incorrectly assumed that its testnet4 node
would not log a disk space warning.

0683b8e increased m_assumed_blockchain_size
on testnet4 from 1 to 11 GiB which triggers this bug on more
systems, e.g. a RAM disk.

Prevent the warning by setting -prune for these nodes.

Fix the same issue in feature_signet.py

Github-Pull: #32057
Rebased-From: 20fe41e
@delta1

delta1 commented Jun 17, 2026

Copy link
Copy Markdown
Member

Github is falling over but looks like there are merge conflicts. Probably need to merge the latest PRs from Elements side first?

@delta1

delta1 commented Jun 18, 2026

Copy link
Copy Markdown
Member

Build is failing in a few places now with

 error: ‘OMITTED_NAMED_ARG’ is not a member of ‘RPCArg::Optional’
 1863 |                                     {"pegin_bitcoin_tx", RPCArg::Type::STR_HEX, RPCArg::Optional::OMITTED_NAMED_ARG, "(only for pegin inputs) The raw bitcoin transaction (in hex) depositing bitcoin to the mainchain_address generated by getpeginaddress"},

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants