Without this patch, the --with-sanitizers config flag has no effect on
the copy of libsimplicity in Elements Core. This means that we aren't
running asan or tsan when we intend to, and also means that when fuzzing
we aren't instrumenting the Simplicity binary.
The result is extremely bad fuzz coverage and missed bugs.
ubsan suppression for simplicity sha256.c
ubsan detects when a left shift would overflow an integer type. This is
not UB (it would be if you tried to shift more than the type's width in
one shot) but "may be unintentional" and is therefore detected.
Add a whitelist to the giant list of whitelists.
Thanks to Jon Griffiths for picking up that the amount and nonce discount
should be multiplied by the witness scaling factor as they form part of
the base transaction.
The first transaction was failing with bad-txns-inputs-missingorspent
because the "input" selected with fundrawtransaction was the
anyonecanspend initialfreecoins.
Fixed by first spending the initialfreecoins to "real" outputs.
The first transaction from create_taproot_utxo was failing with
bad-txns-inputs-missingorspent because the "input" selected with
fundrawtransaction was the anyonecanspend initialfreecoins.
Fixed by first spending the initialfreecoins to "real" outputs.
The line immediately below the commented out code I removed explicitly
tests the exact behaviour which was being questioned in the comment.
This indicates that the comment was incorrect.
Adds a functional test to cover the issue uncovered in #1259, where
calling fundrawtransaction with many non-policy inputs and no policy
recipients results in an assertion failure and a crash.
Fixed in #1258.
(cherry picked from commit a8b0ed6f96)
Fixes https://github.com/ElementsProject/elements/issues/1263
When not running in Elements mode, GetValidFedpegScripts returns an
empty vector. Subsequently `calculate_contract` is called with
`fedpegscripts.front().second` which is a null reference. This reference
is passed into `MatchLiquidWatchman` which tries to dereference the null
reference and causes a segfault.
This fix throws an exception in `getpeginaddress` if fedpegscripts is
empty, returning an error to the RPC caller. It also adds a functional
regression test.
In the "macOS 13 native arm64 [gui, sqlite only]" CI task, the
test_runner defaults to descriptor wallets, causing some Elements
specific tests to fail.
This commit explicitly runs those tests with `--legacy-wallet`.