forked from ElementsProject/elements
-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged master 25 #3
Open
delta1
wants to merge
3,928
commits into
master
Choose a base branch
from
merged-master-25
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
ReserveDestination::SetBlindingPubKey was removed since it was only used in one place (in Wallet::GetNewChangeDestination), and after this change it was silently breaking blinded change addresses by somehow replacing the destination with CNoDestination...
This fuzz target takes its seeds in a simple and well-defined format: a four-byte LE budget, then a transaction, Simplicity program and witness, each prefixed by a four-byte LE length. The fuzz target extracts any additional randomness it needs from the txid of the first input of the transaction, since this data is not interpreted in any other way we therefore won't confuse the fuzzer. The reason for this design, rather than a more typical "just query the fuzzer when you need stuff", is to make it possible to fairly easily generate test vectors from sources other than this fuzz test. (For example, I have an alternate target which uses Rust code to generate well-formed Simplicity programs, which quickly gets high coverage at the expense of being an unmaintainable mess.) This commit includes a .c file with a small function to comute the AMR of a program. This is needed to pass a correct AMR to the Simplicity interpreter, to exercise all the AMR-checking paths. In practice this is not really necessary; Elements passes NULL to disable these AMR checks.
The first fuzztest takes a Simplicity program and a transaction and directly calls the Simplicity interpreter with some context cobbled together from the transaction. It also tries messing with the budget and computes AMRs to check that the AMR-check works, even though on the blockchain AMRs are never used. It also attempts mangling programs to directly fuzz the parser, type inference and CMR checking. THIS test, on the other hand, takes a transaction, looks for Simplicity programs (or witnesses which look like Simplicity programs), computes their CMRs to produce a correct corresponding scriptPubKey, creates scriptchecks, and executes them. This should do an end-to-end coverage of the whole Simplicity consensus logic, including all the new branches in interpreter.cpp. To produce seeds for this, I have a a local fuzz target which uses rust-simplicity and rust-elements to produce programs, deep Taproot trees, and transactions. I run this to get high coverage, then dump the resulting complete transactions to disk, where they can be used as seeds for this test.
When we have an invalid program, use a zero CMR and create a valid control block/taptweak. Otherwise we fail to hit the Simplicity logic at all with bad programs. # # You are committing on CAMUS # # Please enter the commit message for your changes. Lines starting # with '#' will be ignored, and an empty message aborts the commit. # # On branch 2024-12--simple-fuzz # Changes to be committed: # modified: src/test/fuzz/simplicity_tx.cpp # # Untracked files: # reduced-corpus/ # run-fuzz-merge-dir-CPzq/ # run-fuzz-merge-dir-sscf/ #
…tors test: add discountvsize test vectors
…e-fuzz simplicity: add fuzz target
Windows native builds are really a best effort, but not a blocker. Let's keep running them to see what we can fix, but keeping a green pipeline. Also disabled a couple of long-running tests due to being close to the timeout
delta1
force-pushed
the
merged-master-25
branch
from
February 13, 2025 06:50
fc1020b
to
4a85466
Compare
Fix native win64 build (part 2)
…erge-script Check in Andrew's script for merging changes into Elements integration branch
A native macOS task does not aware of Linux container settings, and it does not use the `depends_built_cache`. Github-Pull: #25444 Rebased-From: 8e017f3
Github-Pull: #25444 Rebased-From: 0bb7a1f
Github-Pull: #26388 Rebased-From: 7028365
Github-Pull: #26388 Rebased-From: da16893
CI: Fix macos native build
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.