Commit Graph

28 Commits

Author SHA1 Message Date
Daira-Emma Hopwood 8b436e8f1f Repair the RPC tests.
Co-authored-by: Jack Grigg <jack@electriccoin.co>
Signed-off-by: Daira-Emma Hopwood <daira@jacaranda.org>
2024-10-02 03:53:11 +01:00
Greg Pfeil 7a3656d660 Strengthen AllowRevealedSenders
Previously, `AllowRevealedSenders` would permit linking multiple legacy taddrs. This strengthens the
policy to only allow sending from a single taddr, preventing linking of any addresses. To send from
multiple taddrs (legacy or UA) now requires `AllowLinkingAccountAddresses`.
2023-06-02 18:40:18 -06:00
Greg Pfeil 3a8b5f3b66
Merge remote-tracking branch 'upstream/master' into hotfix-v5.5.1 2023-05-17 11:22:42 -06:00
Greg Pfeil d53b6b92b9
Correct fee calculation for vin in tx creation
Previously transparent inputs were under-counted because the `CTxIn`s were created without a
signature. This now adds a dummy signatures so sizes are correct.

Fixes #6658.
2023-05-15 16:20:50 -06:00
Daira Emma Hopwood d438b79184 Rename DEFAULT_FEE to LEGACY_DEFAULT_FEE in C++ code and RPC tests.
Also remove DEFAULT_FEE_ZATS in RPC tests which was unused.

Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-04-26 02:09:16 +01:00
Greg Pfeil 4d1e37da23
Support UA destinations in `z_mergetoaddress` 2023-04-24 18:11:26 -06:00
Greg Pfeil dc6260ba3e
Allow explicit “no memo” in z_mergetoaddress
Previously, there were no arguments after `memo`, so it could always just be
omitted. Now the `privacyPolicy` is there, so it’s necessary to be able to
explicitly omit the memo.

Using `"F6"` would work in some situations, but while it encodes the “no memo”
case, the internal checks that ensure we don’t try to send a memo to transparent
recipients fail on it. And as we can’t merge to a taddr without specifying
`"AllowRevealedRecipients"`, this prevents merging to taddrs (unless the
deprecated `legacy_privacy` feature is enabled).

This change makes it possible to send `null` as the `memo` argument, which
indicates “no memo” successfully. It does the same for `*_limit` parameters in
`z_mergetoaddress` and `z_shieldcoinbase` (even though those don’t have a
similar failure case), since those parameters also need to be specified when the
`privacyPolicy` is, and it’s consistent with #6599, rather than hardcoding some
particular value.

This also fixes a bug in `WalletTxBuilder` that could inadvertently require
`AllowRevealedAmounts` on a transaction from a shielded pool to itself (via
`NetAmountRecipient`).
2023-04-24 16:11:53 -06:00
Greg Pfeil d0522df5c0
Many z_mergetoaddress updates
- add ZIP 317 support
- address review comments
- restructure `AsyncRPCOperation_mergetoaddress` (removing the just-added
  `prepare`)
2023-04-20 01:24:39 -06:00
Daira Emma Hopwood 783bd52556 mergetoaddress_helper.py: use Decimal for amounts and integers otherwise.
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-04-19 22:48:46 +01:00
Daira Emma Hopwood 7c956ffab6 mergetoaddress_helper.py: Use `generate_and_check` helper to mine a block
and make sure that it contains the expected number of transactions.

Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-04-19 22:48:46 +01:00
Daira Emma Hopwood eb74c8e8b0 Repair some RPC tests.
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-04-19 22:48:46 +01:00
Daira Emma Hopwood ea9fa3f06e Fix tests that failed due to the minimum relay fee being enforced.
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-04-17 18:49:45 +01:00
Jack Grigg a33b8529ff Merge branch 'master' into 6307-backport-mempool-packages 2023-01-06 23:55:37 +00:00
Jack Grigg 09cd65327b Disable previously-deprecated features by default
These features were deprecated at least 3 minor releases ago. I found
one mistake which was that `z_validateaddress` had not been placed
behind the `addrtype` deprecated feature; this has been fixed.
2023-01-05 22:32:19 +00:00
Suhas Daftuar b63c58500a Track transaction packages in CTxMemPoolEntry
Associate with each CTxMemPoolEntry all the size/fees of descendant
mempool transactions.  Sort mempool by max(feerate of entry, feerate
of descendants).  Update statistics on-the-fly as transactions enter
or leave the mempool.

Also add ancestor and descendant limiting, so that transactions can
be rejected if the number or size of unconfirmed ancestors exceeds
a target, or if adding a transaction would cause some other mempool
entry to have too many (or too large) a set of unconfirmed in-
mempool descendants.

(cherry picked from commit bitcoin/bitcoin@5add7a74a6)

Zcash:
- Mempool methods were adapted to our mempool changes.
- Default ancestor and descendant size limits were double to account for
  our larger block size.
- The mempool_packages RPC test fee was adapted to account for our
  emissions curve (which results in a smaller per-block reward that
  needs to be split into smaller shards for sequential transactions.
- Includes some modifications to account for us backporting
  bitcoin/bitcoin@f3fe83673e early in
  zcash/zcash#5269.
2022-12-19 05:38:43 +00:00
Daira Hopwood 5e84362702 Reduce the default fee for z_* operations, and the "low fee penalty" threshold for mempool limiting, to 1000 zatoshis.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-12-18 12:37:03 -07:00
mdr0id 65a02f0984 Standard py2 to py3 updates 2020-02-09 08:14:21 -08:00
Jack Grigg f7eaf921bc
test: Add sync_all points after block generation to RPC tests
Previously we only required synchronization points where blocks were
sent between nodes; now we need them between action and query operations
on the same node, because wallet notification of mined blocks no longer
occurs in real-time.
2019-12-18 15:06:54 -06:00
Dagur Valberg Johannsson fe1ff82a7d Remove option mempooltxinputlimit
This option is no longer used after Overwinter. Fixes #4209.
2019-11-19 10:35:39 +01:00
Alfredo Garcia 01998bdc9e remove zmergetoaddress from experimental state in rpc-tests 2019-11-06 10:57:10 -03:00
Jack Grigg 8669cb692d
test: Update RPC tests to use a minimum of Sapling
The p2p_nu_peer_management and rewind_index RPC tests still start from
Sprout, because they are explicitly (and only) testing network behaviour
across network upgrades.

The mempool_tx_input_limit test is removed because the flag has been
ignored since Sapling activation, and will be removed at some point in
the near future.
2019-08-22 17:26:54 +01:00
Homu 6da42887f1 Auto merge of #3944 - daira:update-license-info, r=daira
Update license info

Includes commits cherry-picked from bitcoin/bitcoin#8784 with some minor changes.

Fixes #2827.
2019-07-24 04:07:03 -07:00
Daira Hopwood bc909a7a7f Replace http with https: in links to the MIT license.
Also change MIT/X11 to just MIT, since no distinction was intended.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2019-07-18 15:26:01 +01:00
Eirik0 c9d14272af Fix comment in mergetoaddress RPC test 2019-06-11 14:32:57 -06:00
Eirik0 a8055cfe10 Fix z_mergetoaddress sending from ANY_SPROUT/ANY_SAPLING when the wallet contains both note types 2019-06-10 13:21:25 -06:00
Eirik Ogilvie-Wigley 0adb77d32e Add locking for Sapling notes 2018-11-16 18:14:58 -07:00
Eirik Ogilvie-Wigley 487c9020bd Add Sapling support to z_mergetoaddress 2018-11-16 18:14:58 -07:00
Eirik Ogilvie-Wigley e0c491c073 Extend Sprout mergetoaddress rpc test to also work for Sapling 2018-11-16 18:14:57 -07:00