Commit Graph

17586 Commits

Author SHA1 Message Date
Greg Pfeil 7f0592a664
Simplify canResolveOrchard logic
When deciding whether we can pay Orchard receivers, rather than checking
whether we have “sufficient non-Sprout funds”, we can just check whether the
selector selects Sprout – if it doesn’t then we can select Orchard receivers
regardless, and we’ll catch insufficient funds later.

This is also helpful for ZIP 317, because in that case we don’t even know the
total non-Sprout funds necessary until after we decide which receivers to pay.
2023-04-10 00:19:39 -06:00
Kris Nuttycombe 881ab6b46a
Merge pull request #6540 from daira/rpconnect-doc
Correct the documentation of `-rpcconnect` in the example `zcash.conf`
2023-04-09 22:38:15 -06:00
Kris Nuttycombe 6d06ddd84d
Merge pull request #6409 from sellout/wallet_tx_builder/restrict-transparent-change
Require `AllowRevealedRecipients` for transparent change
2023-04-09 22:35:11 -06:00
Kris Nuttycombe 6f5360fbd8 Add `AllowRevealedSenders` to fix `mempool_nu_activation.py` 2023-04-09 20:58:01 -06:00
Daira Emma Hopwood 2620e6e08c Correct the documentation of `-rpcconnect` in the example `zcash.conf`.
`-rpcconnect` is only used by `zcash-cli`.

Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-04-09 15:21:33 +01:00
Kris Nuttycombe b3b616fbe5
Merge pull request #6539 from Anish-M-code/AN_git_metric_screen
report the git-derived version in metrics screen
2023-04-07 16:10:07 -06:00
ANISH M 777d346e19
Update src/metrics.cpp by removing v prefix.
Co-authored-by: str4d <thestr4d@gmail.com>
2023-04-07 20:59:16 +05:30
ANISH M 835c6a2745
report the git-derived version in metrics screen
An attempt to fix issue #5639 by using version derived from git "build" field of getinfo.
2023-04-07 20:07:25 +05:30
ANISH M 9dfef39e18
use SOURCES_PATH instead of local git DEPENDS_SOURCES_DIR 2023-04-07 19:26:33 +05:30
Jack Grigg ccbda94b30 gtest: Minor improvements to `CoinsTests`
These were implemented while debugging the previous commit.
2023-04-07 12:17:00 +00:00
Jack Grigg 19fed267e3 Use `cxx` bridge for all Orchard bundle inspection and validation
zcash/zcash#5987 added a bridge to `orchard::Bundle<Authorized, Amount>`
for `getrawtransaction`. This commit expands it to also cover the
consensus rules, by migrating over missing functionality from the
hand-written FFI methods, and exposing the Orchard `BatchValidator` type
directly (as with Sapling) instead of via the C++ `AuthValidator`
intermediary.

Part of zcash/zcash#6397.
2023-04-07 12:16:28 +00:00
Jack Grigg bc2d144c68 build: Tolerate split LLVM versions
This makes it easier to use different LLVM point releases for different
hosts (as available), and ensures that `$(package)_major_version` is set
correctly when using a different major release on a Tier 3 platform.

Closes zcash/zcash#6534.
2023-04-07 11:16:27 +00:00
str4d 3ef6e96fa6
Merge pull request #6533 from str4d/6397-cxx-rust-streams
Expand `CppStream` to cover all `Stream`-like C++ types
2023-04-07 09:42:08 +01:00
Jack Grigg c301e321e4 Migrate `OrchardMerkleFrontier` to use new `CppStream` APIs 2023-04-06 21:30:38 +00:00
Jack Grigg 7b005aaa7a Expand `CppStream` to cover all `Stream`-like C++ types
In its existing usage, `CppStream` was only used in a context where the
C++ `READWRITE` macro was being called with a `CDataStream`. However, in
other contexts the macro can be called with various other types with a
stream-like interface. Since we can't expose C++ templates across the
`cxx` bridge (or FFI generally), we instead turn `CppStream` into an
enum that covers all of the stream-like types we may want to use.
2023-04-06 21:30:38 +00:00
Kris Nuttycombe 83dc372394
Merge pull request #6531 from str4d/cxx-merge-bridges
Merge most `cxx::bridge` definitions into a single bridge
2023-04-05 09:12:57 -06:00
Jack Grigg 33367709f7 Merge most `cxx::bridge` definitions into a single bridge
This enables us to use Rust types across more bridged APIs, which we
can't do with multiple bridge definitions until `cxx` adds support.
2023-04-05 10:50:35 +00:00
Kris Nuttycombe 1feec6a3b4
Merge pull request #6494 from daira/examine
Improve code readability using `examine` macro
2023-04-04 16:32:04 -06:00
Kris Nuttycombe b3dbfb1ddd
Merge pull request #6527 from daira/zip317-computations
ZIP 317 preparation: fix bitrotted miner tests and add conventional fee computations
2023-04-04 16:30:51 -06:00
Kris Nuttycombe c3693a5f85
Merge pull request #6517 from miodragpop/fix-cross-win
Fix for broken cross-build to Windows target on Ubuntu 22.04 and Debian 11
2023-04-04 16:30:16 -06:00
Daira Emma Hopwood 3adf580dc0 Refactor that avoids using exceptions for local flow control and is simpler.
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-04-04 22:03:27 +01:00
Kris Nuttycombe 1afd532ba8
Merge pull request #6526 from sellout/split-cxxbridge
Split C++ generated from Rust into own lib
2023-04-04 14:58:48 -06:00
Kris Nuttycombe 945e4b47ff
Merge pull request #6523 from DeckerSU/patch-insertblockindex-args
InsertBlockIndex: pass const reference on hash, instead of hash
2023-04-04 14:53:18 -06:00
Daira Emma Hopwood ac3e345689 Refactoring to avoid an unnecessary temporary.
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-04-04 21:26:52 +01:00
Daira Emma Hopwood 32e1d2eeeb Refactoring to avoid duplicated code.
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-04-04 21:26:52 +01:00
Daira Emma Hopwood 6bb8c60f41 Use the new `examine` macro to replace all instances of
`std::visit(match {...}, specimen)`, improving code readability.

For ease of review, this commit includes only obviously correct
transformations that all follow the same pattern.

Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-04-04 21:26:39 +01:00
Daira Emma Hopwood 60755efaf1 Add `examine`, a wrapper around `std::visit` that reverses the arguments.
Co-authored-by: Greg Pfeil <greg@electriccoin.co>
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-04-04 21:20:10 +01:00
Kris Nuttycombe 3c4dbf86b3
Merge pull request #6500 from nuttycom/upgrade/ff_0.13
Update to use the `ff 0.13` dependency stack.
2023-04-03 21:15:48 -06:00
Daira Emma Hopwood d55d12d6e2 Add audits for updates to futures-* 0.3.28 and redjubjub 0.7.0.
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-04-04 02:06:48 +01:00
Daira Emma Hopwood ff49b812da `cargo update`
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-04-04 02:06:48 +01:00
Kris Nuttycombe 3b0f6ad3ab
Merge pull request #6525 from sellout/makefile-editorconfig
Correct EditorConfig for Makefiles
2023-04-03 18:55:59 -06:00
Greg Pfeil 1aac7c0c32
Split C++ generated from Rust into own lib
This allows us to compile it with different flags. In particular, there are
warnings we can’t easily fix in the generated code.
2023-04-03 18:09:30 -06:00
Sean Bowe fccdb03c53 Add additional audits. 2023-04-03 16:41:07 -06:00
Kris Nuttycombe 43a0fe237e Update to use the `ff 0.13` dependency stack. 2023-04-03 16:33:06 -06:00
Daira Emma Hopwood 4fd3493291 Implement ZIP 317 computations.
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-04-03 23:05:50 +01:00
Greg Pfeil 8de607322e
Correct EditorConfig for Makefiles
It was deciding to convert tabs to spaces on save, which isn’t great.
2023-04-03 13:30:59 -06:00
DeckerSU 78804dd438
InsertBlockIndex: pass const reference on hash, instead of hash
InsertBlockIndex should take a const reference to a uint256 instead of
just a uint256.

LoadBlockIndexGuts also assume std::function<CBlockIndex*(const uint256&)> insertBlockIndex
as an argument:

2d456afebe/src/txdb.h (L150)
2023-04-02 23:00:08 +02:00
Greg Pfeil 6e42aaeed6
Update release-notes for transparent change restriction
Co-authored-by: Kris Nuttycombe <kris@nutty.land>
2023-04-01 22:59:33 -06:00
Greg Pfeil 1786c60677
Require `AllowRevealedRecipients` for t-change 2023-04-01 22:58:52 -06:00
Miodrag Popović e276f07349
Update depends/hosts/mingw32.mk to use posix variant library path
Co-authored-by: Daira Hopwood <daira@jacaranda.org>
2023-04-01 11:51:36 +02:00
Kris Nuttycombe 2d456afebe
Merge pull request #6408 from sellout/wallet_tx_builder/lock-notes
Lock notes (except Orchard) in wallet_tx_builder
2023-03-31 18:05:06 -06:00
Greg Pfeil 342563eb48
Merge pull request #6352 from sellout/deterministic-rpc-tests
Make RPC test output more deterministic
2023-03-30 14:33:03 -06:00
Greg Pfeil 69ab52cb3e
Improve Doxygen for note locking 2023-03-30 14:22:34 -06:00
Miodrag Popović e6372f4f1f Fix for broken cross-build to Windows target on Ubuntu 22.04 and Debian 11 2023-03-30 11:02:24 +02:00
Kris Nuttycombe 564ef2a3ac
Merge pull request #6502 from rex4539/typos
Fix typos
2023-03-29 22:23:33 -06:00
Kris Nuttycombe 06f4525bc1
Merge pull request #6410 from sellout/wallet_tx_builder/refactor-privacy-policy
Refactor RPC privacyPolicy handling
2023-03-29 18:39:11 -06:00
Greg Pfeil 06553d1399
Lock notes (except Orchard) in wallet_tx_builder
This fixes an RPC test failure that tests specifically for this with
z_shieldcoinbase. This also exposed an issue where an overly-high fee resulted
in a negative Payment causing an exception too deep. Added an assert when
creating a Payment and guarded against it for z_shieldcoinbase.

Fixes #2621 and #5654 (but does not handle Orchard locking, which is tracked in
a separate issue).
2023-03-29 16:59:43 -06:00
Kris Nuttycombe f60d2c71e7
Refactor RPC privacyPolicy handling
Extracted from z_sendmany to be used across multiple transaction
operations. Previously, it also checked a `bool` to decide what “LegacyCompat”
means, but bools are too easy to concoct, so it now expects the sender and
recipients to be checked internally. Also, z_sendmany was generating the bool
only from the sender, illustrating how easy it is to miss something when you try
to precompute.
2023-03-29 16:56:20 -06:00
Dimitris Apostolou fdae3213ac Fix typos 2023-03-29 13:40:48 -06:00
Kris Nuttycombe 4892bf327d
Merge pull request #6470 from sellout/error-on-tmemos
Improve taddr no-memo check.
2023-03-29 09:17:23 -06:00