Commit Graph

1585 Commits

Author SHA1 Message Date
Kris Nuttycombe a0c27bf254 Address TODOs in rpc-tests/wallet-accounts.py 2022-02-01 08:24:31 -07:00
Kris Nuttycombe 9afea4f10b Add failing tests for z_sendmany ANY_TADDR -> UA and UA -> <legacy_taddr> 2022-01-30 11:07:00 -07:00
Kris Nuttycombe 71f17fa05c Add a check for internal vs. external outputs to wallet_listreceived test. 2022-01-27 21:29:40 -07:00
str4d 992a47103d
Merge pull request #5500 from str4d/ua-wallet-balance-rpcs
Implement balance RPC methods that support Unified Addresses
2022-01-27 20:11:38 +00:00
Kris Nuttycombe d17a0bb9de Merge remote-tracking branch 'upstream/master' into feature/wallet_unified_addresses 2022-01-25 20:27:33 -07:00
Jack Grigg 756f4fc840 wallet: Implement `z_getbalanceforaddress`
Closes zcash/zcash#5182.
2022-01-26 00:34:45 +00:00
Jack Grigg ca0dad0a8c wallet: Implement `z_getbalanceforaccount`
Closes zcash/zcash#5183.
2022-01-25 23:54:30 +00:00
Kris Nuttycombe 28eddb7c21
Merge pull request #5474 from LarryRuane/2022-01-disable-sprout-addr-gen
rpc: Disable Sprout address generation at Canopy #5368
2022-01-25 10:05:44 -07:00
Charlie O'Keefe 19bfc2f3b8
Merge pull request #5463 from zingolabs/drop_pyblake2_dep
Drop pyblake2 dependency
2022-01-25 09:32:08 -07:00
Kris Nuttycombe c4a74087b7 Modify CWallet::FindSpendableInputs to use ZTXOSelector 2022-01-24 13:10:31 -07:00
str4d a6f9c9c0bc Merge pull request #5458 from nuttycom/cleanup/sendmany_txbuilder
Use the transaction builder to implement z_sendmany.
2022-01-21 20:14:58 -07:00
Kris Nuttycombe f850e89449 Replace the badly-named `PaymentSource` with `ZTXOSelector`
The ZTXOSelector type allows selection of previous Zcash
transaction outputs (both transparent outputs and shielded notes)
on the basis of either a (legacy) bare address, or for a
BIP-44 account.
2022-01-19 13:35:38 -07:00
Jack Grigg 96c9333b74 wallet: Reverse order of arguments to z_getaddressforaccount
We now use the empty array of pools to indicate that the default pools
should be used when providing a diversifier index parameter, instead of
needing a default sentinel value for the diversifier index parameter
(which was previously suggested as '*' which would have caused issues
for defining a consistent type for that parameter).
2022-01-18 20:02:13 +00:00
Jack Grigg ff0e9f6b95 wallet: Show UAs owned by the wallet in `z_viewtransaction`
Part of zcash/zcash#5186.
2022-01-18 19:44:33 +00:00
Jack Grigg baaa3c4ac0 wallet: Implement `z_listunifiedreceivers`
Closes zcash/zcash#5181.
2022-01-18 19:44:33 +00:00
Jack Grigg 8617622e0d wallet: Implement `z_getaddressforaccount`
Closes zcash/zcash#5180.
2022-01-18 19:43:27 +00:00
Jack Grigg fe384eeb1f wallet: Implement `z_getnewaccount`
Closes zcash/zcash#5178.
2022-01-13 22:35:08 +00:00
Kris Nuttycombe cc392c70a6 Merge branch 'master' into feature/wallet_unified_addresses 2022-01-12 16:54:12 -07:00
str4d 423489c5e8
Merge pull request #5458 from nuttycom/cleanup/sendmany_txbuilder
Use the transaction builder to implement z_sendmany.
2022-01-12 23:50:09 +00:00
Kris Nuttycombe 0ca7d49626 Apply suggestions from code review
Co-authored-by: Daira Hopwood <daira@jacaranda.org>
Co-authored-by: str4d <jack@electriccoin.co>
2022-01-12 10:45:46 -07:00
Kris Nuttycombe 9554ed2dc4 Require an explicit flag to allow cross-pool transfers in z_sendmany.
This adds an `allowRevealedAmounts` argument to z_sendmany. This
flag must be present to allow an amount-revealing cross-pool transfer
to be constructed.
2022-01-11 19:40:02 -07:00
Kris Nuttycombe 322aee238a Fix conditions around dust thresholds. 2022-01-11 19:40:02 -07:00
Kris Nuttycombe f9477a4499 Use transaction builder for asyncrpcoperation_sendmany.
This replaces the old implementation of asyncrpcoperation_sendmany
with one where all transaction construction is delegated to the
transaction builder. The capabilities of z_sendmany are somewhat
modified in the process:

* z_sendmany now permits sending funds from a Sprout address to
  both transparent and Sapling addresses. PRIVACY NOTE: When
  user sends a Sprout->Sapling transaction, the amount of the
  transaction is publicly revealed.
* z_sendmany no longer supports transactions sending funds into
  the Sprout pool, with the exception of change amounts when
  sending from a Sprout address.
* When sending transparent coinbase funds to a set of shielded
  addresses, the amount sent to recipients must fully consume
  the input value and no change is permitted. This is a slightly
  weaker constraint than was previously implemented; in the past,
  only a single shielded recipient was allowed.
2022-01-11 13:28:34 -07:00
Kris Nuttycombe d6525e24db
Merge pull request #5445 from rex4539/typos
Fix typos
2022-01-11 10:31:01 -07:00
zancas fbbdb23214
blake2b/s is integrated into hashlib, drop external python package dependency 2022-01-11 10:16:22 -07:00
Kris Nuttycombe 20266ac911 Remove uses of KeyIO::DecodeDestination 2022-01-07 11:49:07 -07:00
Kris Nuttycombe f5d4f6fef1 Remove `RawAddress`
This adds a new `AddrSet` type for use in note retrieval
as a filter, in place of a heterogeneous list of `RawAddress`
values. `RawAddress` will complicate the handling of addresses
within the wallet after the addition of unified addresses,
because it does not contain transparent receiver types, and
if we retain this polymorphism it means a lot of invalid states
are represented in places we don't want them to be. It's better
to figure out what types of addresses we're working with as soon
as possible after parsing, and use monomorphic calls from there
on in.
2022-01-06 22:29:41 -07:00
Kris Nuttycombe 98967e2ec7 Merge remote-tracking branch 'upstream/master' into feature/wallet_unified_addresses 2022-01-05 18:20:31 -07:00
Jack Grigg 4559186596 rpc: Fix regression in getblocktemplate output
We added support for the NU5 consensus rules in v4.5.0, which alters the
block header to contain a `hashBlockCommitments` value instead of the
chain history root. However, the output of `getblocktemplate` wasn't
returning this value; once NU5 activated, the `blockcommitmentshash`
field was being set to "null" (all-zeroes).

In v4.6.0 we added full NU5 support to `getblocktemplate`, by adding a
`defaultroots` field that gave default values for `hashBlockCommitments`
and the components required to derive it. However, in doing so we
introduced a regression in the (now-deprecated) legacy fields, where
prior to NU5 activation they contained nonsense.

This commit fixes the output of `getblocktemplate` to have the intended
semantics for all fields:

- The `blockcommitmentshash` and `authdataroot` fields in `defaultroots`
  are now omitted from block templates for heights before NU5 activation.

- The legacy fields now always contain the default value to be placed
  into the block header (regaining their previous semantics).

Co-authored-by: Larry Ruane <larry@z.cash>
2022-01-05 12:07:46 +00:00
Larry Ruane 97a76f1b61 test: Fix ZIP 244 implementation
Script codes must be serialized in their field encoding, which
includes the CompactSize length prefix.

Co-authored-by: Jack Grigg <jack@z.cash>
2022-01-05 12:07:46 +00:00
Larry Ruane dfefab2f55 test: check getblocktemplate output before and after NU5
This test currently fails with submitblock returning the error
"bad-heartwood-root-in-block".

Added authdigest to GBT coinbasetxn field because we can't obtain this
via getrawtransaction.

Co-authored-by: Jack Grigg <jack@z.cash>
2022-01-05 12:07:46 +00:00
Dimitris Apostolou 2006939d27
Fix typos 2022-01-02 23:16:01 +02:00
Larry Ruane 1f223ebed7 assert that the return value of submitblock is None 2021-12-28 22:10:13 -07:00
Larry Ruane b538577359 test: Use result of getblocktemplate to submitblock
This will ensure that miners can use the values returned by
getblocktemplate (in particular, the block commitment hash)
to submit a valid block using the submitblock RPC.
2021-12-22 15:35:46 -07:00
Larry Ruane 8c0177a507 test: fix bugs in test framework 2021-12-22 15:05:38 -07:00
Kris Nuttycombe 8b093a79da
Merge pull request #5402 from LarryRuane/2021-12-getblocktemplate
Add defaultroots field to getblocktemplate
2021-12-17 12:28:06 -07:00
MarcoFalke 6d60f1a9c9 [rpc] mining: Omit uninitialized currentblockweight, currentblocktx
zcash/zcash:
The `getmininginfo` RPC now omits `currentblockize` and `currentblocktx`
when a block was never assembled via RPC on this node during its current
process instantiation. The relevant RPCs are `generate` (regtest only) and
`getblocktemplate`. Blocks are also assembled when running the internal
miner (`zcashd -gen=1`), after the node mines its first block.

(cherry picked from commit bitcoin/bitcoin@fa178a6385)
2021-12-17 09:35:30 -07:00
Larry Ruane c937ba5ae5 getblocktemplate: add NU5 commitments to new `defaultroots` section
- merkleroot
- authdataroot
- chainhistoryroot
- blockcommitmentshash
2021-12-16 18:52:04 -07:00
str4d 34a8677c43
Merge pull request #5403 from LarryRuane/2021-12-nuparams
test: automatically add missing nuparams (network upgrade heights)
2021-12-17 00:42:04 +00:00
Jack Grigg 407a0d9324 qa: Postpone recent CCache releases 2021-12-16 17:58:05 +00:00
Larry Ruane 7fa0e1a6a9 test: automatically add missing nuparams
This test-only change allows python (rpc) tests to specify, for example,
that NU5 should be activated at height X, without having to specify all
the previous network upgrades. Previous upgrades can (and must) still be
specified if they activate at different block heights (than, in this
example, NU5). This makes tests easier to write (and read), especially
as the number of network upgrades increases over time.

Note that this change only affects zcashd behavior in regtest mode. For
the other network modes (testnet and mainnet), the activation heights
are hard-coded in chainparams.cpp.
2021-12-06 17:32:18 -07:00
Kris Nuttycombe 9202b127d0 Merge remote-tracking branch 'upstream/master' into feature/wallet_orchard 2021-11-23 18:38:07 -07:00
Kris Nuttycombe 13b9a69230
Merge pull request #5306 from nuttycom/feature/mnemonic_seeds
Adds HD seed derivation from ZIP-339 mnemonic phrases.

This replaces random generation of transparent spending keys with BIP-44-compatible derivation from a mnemonic seed phrase, and replaces the random HD seed previously used for Sapling HD key derivation
with the same mnemonic seed. After this change, all new transparent and Sapling addresses
will be derived from a new randomly generated mnemonic seed, which is produced in such a way that 
it is guaranteed to produce valid unified spending keys at account 0 for all address types.

Closes #5176.
Closes #2673.
2021-11-18 17:52:36 -07:00
Kris Nuttycombe c7089d2086
Merge pull request #5374 from rex4539/typos
Fix typos
2021-11-18 15:08:13 -07:00
Dimitris Apostolou e05c1ddf8a
Fix typos 2021-11-14 16:27:09 +02:00
Kris Nuttycombe 399ed5b4d7 Do not strip quotes when verifying mnemonic seed. 2021-11-07 10:16:22 -07:00
Jack Grigg 5eca8d34ba depends: Update Clang / libcxx to LLVM 13 2021-11-06 21:44:24 +00:00
Jack Grigg 373206027f depends: Update Rust to 1.56.1 2021-11-06 21:06:30 +00:00
Jack Grigg 1364db2ded Bump all postponed dependencies 2021-11-06 21:06:30 +00:00
Kris Nuttycombe d09a0c44f3 Clean up format of recovery information in the wallet dump. 2021-10-29 13:38:36 -06:00
Kris Nuttycombe 8bf4ec3b4a Require backup of the emergency recovery phrase.
After 4.5.2, all wallets will be populated with an emergency
recovery phrase, and all future addresses will be derived from
the associated seed. To prevent potential loss of funds, we
require that the user explicitly invoke the `walletconfirmbackup`
RPC method to verify that they have backed up this seed.
2021-10-29 13:38:36 -06:00
Kris Nuttycombe d6984dbf78 Fix wallet import/export test 2021-10-21 11:44:08 -06:00
Jack Grigg 0263185a65 depends: Postpone dependency updates
We aren't going to move to Clang 13 in a hotfix release. The other
dependencies passed their postponement re-evaluation date, but also
won't be updated just yet.
2021-10-08 16:54:36 +00:00
Kris Nuttycombe 2221bf5484 Add listaddresses check to wallet_addresses.py 2021-10-07 18:12:13 -06:00
Jack Grigg a7342cff71 depends: Postpone native_ccache 4.4.2 2021-09-29 01:36:35 +01:00
Jack Grigg 6e90c84be7 Fix bugs in testnet Orchard circuit
The consensus branch ID is updated (as the NU5 consensus rules are
altered). The testnet NU5 activation height is also reset.
2021-09-28 22:56:37 +01:00
Jack Grigg fd49f78042 wallet: Check spent shielded notes in CWalletTx::IsFromMe
The "IsFromMe" logic was implemented in several places in the Bitcoin
Core wallet. We had correctly updated CWallet::IsFromMe(CTransaction)
(which was used in most places in the wallet) to check for shielded
notes being spent, but did not notice that CWalletTx::IsFromMe also
needed this check.

This bug has existed since before Zcash launched. It went unnoticed
because CWalletTx::IsFromMe was previously only called from code
used to either create purely-transparent transactions, or provide
informational output on non-critical RPC methods.

Closes zcash/zcash#5325.
2021-09-28 02:51:04 +01:00
Jack Grigg 5a2e6183f3 net: Reject unknown CInv message types
Nodes will now reject messages containing unknown CInv message types,
instead of (mostly) ignoring them.
2021-09-15 20:08:01 +01:00
Jack Grigg 07143679dc test: Set up mininodes at the start of feature_zip239 2021-09-15 17:50:57 +01:00
str4d e989923041
Merge pull request #5291 from str4d/zip-239
ZIP 239 support
2021-09-16 03:08:25 +12:00
str4d 5d643898e7
Merge pull request #5293 from mdr0id/smoke_tests_update
Smoke Test Updates (Remove Sprout Logic )
2021-09-15 20:38:40 +12:00
Jack Grigg 1ad8ee8735 qa: Boost 1.77.0
- The patches `iostreams-106.patch` and `signals2-noise.patch` were
  incorporated into Boost 1.75.
- The allocator access deprecation issue was fixed in Boost 1.76.

Closes zcash/zcash#4945.
2021-09-15 00:35:53 +01:00
Jack Grigg 95280c10b0 Add named constants for legacy tx authDigest placeholder value 2021-09-14 21:26:05 +01:00
Jack Grigg befa57d0a6 test: Fix bug in mininode.SpendDescription.deserialize 2021-09-14 21:18:06 +01:00
Jack Grigg 966e285b61 depends: Update Rust to 1.54.0 2021-09-14 17:40:18 +01:00
Jack Grigg 6e562a27df Postpone dependency updates that require CMake 2021-09-14 17:33:25 +01:00
mdr0id dc41c13593 Update funding logic 2021-09-13 09:54:29 -07:00
mdr0id b6987844f8 Add usage documentation for manual and faucet driven tests 2021-09-10 19:49:52 -07:00
mdr0id 7d7d0e8565 Update funding logic bug 2021-09-10 19:46:33 -07:00
Jack Grigg a97cfd241d test: Implement CInv.__eq__() for mininode to simplify RPC test 2021-09-10 22:13:53 +01:00
Jack Grigg d503691778 Add MSG_WTX support to inv messages
The change to AlreadyHave() means that nodes will also now send getdata
requests for v5 transactions.
2021-09-10 21:47:42 +01:00
Jack Grigg 9476f5d7ef ProcessGetData: Respond to MSG_WTX requests 2021-09-10 21:46:05 +01:00
Jack Grigg de5563de71 test: Add v5 tx support to mininode 2021-09-10 21:46:05 +01:00
Jack Grigg 9047962637 test: Fix bugs in mininode transaction parser 2021-09-10 21:46:05 +01:00
Jack Grigg d715f4ecac Implement CInv message type MSG_WTX
This adds the double-hash message variant. The extra hash field is set
to null for block message types, and to all-ones for MSG_TX (to match
the legacy authHash value used for pre-v5 transactions in the Merkle
tree).
2021-09-10 21:46:05 +01:00
mdr0id 4721ee3eaa Add fix and note for timing issue 2021-09-09 14:58:30 -07:00
mdr0id 2f3698aa3a Remove sprout funding flow logic 2021-09-09 14:57:20 -07:00
Jack Grigg 7896a52015 test: Use correct field of getnetworkinfo to read protocol version
I tested the NU5 components of this PR by locally setting the protocol
version to 170014. I forgot to check that without that override, the
test would skip the NU5 checks. The reason it defaulted to NU5 is that
the test was reading the client version 4040150, which is indeed not
less than the NU5 protocol version ^_^;;
2021-09-01 01:00:26 +01:00
Jack Grigg 4c1c5f479d test: Add NU5 test cases to existing RPC tests 2021-08-27 15:31:04 +01:00
Jack Grigg e0f210f4fc test: Fix pyflakes warnings 2021-08-17 18:50:54 +01:00
Jack Grigg 1e352c108c test: Print reject reason if RPC test block rejected instead of accepted 2021-08-13 16:49:46 +01:00
MarcoFalke b67c86abdb [qa] py2: Unfiddle strings into bytes explicitly
(cherry picked from commit bitcoin/bitcoin@faa41ee204)

Zcash: Excluding RPC tests or framework code we don't have.
2021-08-13 16:49:46 +01:00
Wladimir J. van der Laan d9cb6b89b0 test: Add basic test for `reject` code
Extend P2P test framework to make it possible to expect reject
codes for transactions and blocks.

(cherry picked from commit bitcoin/bitcoin@20411903d7)
2021-08-13 16:49:46 +01:00
Shaul Kfir 55d4948207 Add absurdly high fee message to validation state (for RPC propagation)
(cherry picked from commit bitcoin/bitcoin@a651403e09)
2021-08-13 16:09:59 +01:00
Homu fd462fd8c4 Auto merge of #5269 - str4d:zip-239-prep-2, r=str4d
ZIP 239 preparations 2

Cherry-picked from the following upstream PRs:
- bitcoin/bitcoin#6722
  - Only the ancillary commits, not the mempool limiting commits (we have our own).
- bitcoin/bitcoin#6898
  - Only the first three commits (we'll cherry-pick the main content later).
- bitcoin/bitcoin#7840
2021-08-13 01:13:18 +00:00
Jack Grigg d6dd3cea67 qa: Bump `sync_mempool` timeout for `prioritisetransaction.py`
To try and get around transient CI failures.
2021-08-13 02:12:35 +01:00
John Newbery 3ef50b3647 [wallet] Remove wallet account RPCs
Also remove the RPC deprecation tests for accounts, and make one small
change to another wallet test that relies on account behaviour.

(cherry picked from commit f0dc850bf698f7377797d7d68365d4fc79b0221c)
2021-08-12 08:07:12 -06:00
John Newbery 0bf8b56b29 [RPC] [wallet] allow getbalance to use min_conf and watch_only without accounts.
(cherry picked from commit 702ae1e21a09d8c31406839c4ea507c5fa276898)
2021-08-11 19:36:14 -06:00
Gregory Maxwell 2a7ebb3aba Eliminate TX trickle bypass, sort TX invs for privacy and priority.
Previously Bitcoin would send 1/4 of transactions out to all peers
 instantly.  This causes high overhead because it makes >80% of
 INVs size 1.  Doing so harms privacy, because it limits the
 amount of source obscurity a transaction can receive.

These randomized broadcasts also disobeyed transaction dependencies
 and required use of the orphan pool.  Because the orphan pool is
 so small this leads to poor propagation for dependent transactions.

When the bypass wasn't in effect, transactions were sent in the
 order they were received.  This avoided creating orphans but
 undermines privacy fairly significantly.

This commit:
 Eliminates the bypass. The bypass is replaced by halving the
  average delay for outbound peers.

 Sorts candidate transactions for INV by their topological
  depth then by their feerate (then hash); removing the
  information leakage and providing priority service to
  higher fee transactions.

 Limits the amount of transactions sent in a single INV to
  7tx/sec (and twice that for outbound); this limits the
  harm of low fee transaction floods, gives faster relay
  service to higher fee transactions. The 7 sounds lower
  than it really is because received advertisements need
  not be sent, and because the aggregate rate is multipled
  by the number of peers.

(cherry picked from commit f2d3ba73860e875972738d1da1507124d0971ae5)

Zcash: Candidate transactions for INV are not sorted by their
topological depth because we haven't backported bitcoin/bitcoin#6654.
2021-08-12 00:37:51 +01:00
Homu 1cb1ed2653 Auto merge of #5265 - str4d:zip-239-prep-1, r=str4d
ZIP 239 preparations 1

This is the first of several backports to prepare for ZIP 239. The primary
change is altering `mapRelay` to store `CTransaction`s, which we need
because ZIP 239 requires changing `Inv` messages based on transaction
versions. The other changes are mainly for conflict removal but are also
independently useful.

Backports the following upstream PRs:
- bitcoin/bitcoin#6889
- bitcoin/bitcoin#7125
- bitcoin/bitcoin#7862
- bitcoin/bitcoin#7877
2021-08-10 00:22:32 +00:00
Pieter Wuille d3ccecd0b9 Report reindexing progress in GUI
(cherry picked from commit b4d24e142e25a21c78ab74146c3520f2259fd7c2)

Zcash: Excludes GUI changes (as we don't have the QT GUI).
2021-08-09 20:58:49 +01:00
Pieter Wuille d6d39449e5 Add -reindex-chainstate that does not rebuild block index
(cherry picked from commit d3d75479115bc3480f163df774ee9dd2f8bd9f54)
2021-08-09 20:58:49 +01:00
Jack Grigg 75b9fc4f27 test: Fix race condition in p2p_txexpiringsoon
The recent changes to mempool inv logic mean that nodes are much less
likely to immediately return an `inv` message in response to a `mempool`
message. The `p2p_txexpiringsoon` RPC test was relying on the prior
behaviour.

`TestNode.sync_with_ping` now takes an optional `waiting_for` closure
that allows the caller to require that a specific message kind is
received prior to the timeout.
2021-08-09 17:43:48 +01:00
Jack Grigg 6be1a2a9da test: Wait for transaction propagation in shorter_block_times RPC test
This was previously a transient test failure, that started reliably
failing after the move to Poisson delays.
2021-08-05 20:54:47 +01:00
Jack Grigg d9bcc2d303 depends: Update utfcpp to 3.2.1 2021-07-30 18:22:05 +01:00
Jack Grigg 374f60b326 depends: Update Clang / libcxx to LLVM 12
This is the second release in a row where LLVM has cut a X.0.1 for
everything except Darwin, so I've adjusted its URLs and paths on the
assumption this will continue.
2021-07-30 18:22:05 +01:00
Jack Grigg 0a5e69ab67 depends: Update Rust to 1.54.0 2021-07-30 18:22:05 +01:00
Jack Grigg 1eb848ada2 Postpone dependency updates we aren't doing in this release 2021-07-30 16:04:31 +01:00
str4d 92d6984842
test: Cleanups to ZIP 221 Python test code
Co-authored-by: Daira Hopwood <daira@jacaranda.org>
2021-06-20 21:25:59 +01:00
Jack Grigg a18f8b58a9 test: Check history trees across Canopy and NU5 activations 2021-06-18 12:56:19 +01:00
Jack Grigg 9930a27992 test: Check hashBlockCommitments before, at, and after NU5 activation 2021-06-18 01:05:04 +01:00
Jack Grigg 2d0a8f1f3a test: Check for valid hashBlockCommitments construction post-NU5 2021-06-18 01:05:04 +01:00
Jack Grigg dadb54b67b Postpone native_ccache 4.3 2021-06-08 19:30:01 +01:00
Jack Grigg e0cde186b0 Fix Rust dependency name in postponed-updates.txt 2021-06-08 19:28:05 +01:00
Jack Grigg 20c4efe1bc Postpone dependency updates until after 4.4.1 2021-06-08 19:19:20 +01:00
Jack Grigg 3cdda83868 Postpone Clang 12
We won't migrate to LLVM 12 until Rust does.
2021-04-15 12:10:50 +12:00
Jack Grigg c592bf7da0 python: Use UTF-8 encodings for opened files 2021-04-14 13:19:33 +12:00
Jack Grigg da77a3db73 qa: Postpone Boost 1.75.0
https://github.com/zcash/zcash/issues/4945 remains unresolved.
2021-04-03 17:26:16 +13:00
Jack Grigg c0e146d3f4 qa: Postpone updates that require CMake in the build system
We still aren't committing to that dependency yet.
2021-04-03 17:26:16 +13:00
Jack Grigg d1c6647934 qa: Point univalue update checker at correct upstream
Bitcoin Core doesn't actually use tags for managing versions of their
forked dependencies, so we should separately rework this logic for all
of the subtree-managed dependencies. But this at least prevents false
positives.
2021-04-03 17:15:24 +13:00
Jack Grigg f7c7e0ee13 qa: Update BerkeleyDB downloads page URL 2021-03-27 11:47:34 +13:00
Jack Grigg 2e12078cfc depends: Update Rust to 1.51.0 2021-03-27 11:47:34 +13:00
Steven Smith 48d5142dc1 Adding base NU5 declarations and logic 2021-03-06 17:35:54 -08:00
Homu 89a4ab2ce9 Auto merge of #4993 - therealyingtong:postpone-depends-v4.3.0, r=str4d
Update/postpone dependencies for v4.3.0
2021-02-19 14:24:28 +00:00
therealyingtong eb351e485b Postpone dependencies 2021-02-18 20:50:39 +08:00
Kris Nuttycombe 676d302008 Update the maxuploadtarget.py tests to accommodate zcash.
Co-authored-by: str4d <thestr4d@gmail.com>
2021-02-17 17:00:18 -07:00
Jack Grigg 1eb7bbc6be Fix some typos 2021-02-17 13:35:11 -07:00
Jack Grigg 2f24abe457 test: Migrate maxuploadtarget.py to Python 3 2021-02-17 13:35:00 -07:00
Jonas Schnelli 385719c632 don't enforce maxuploadtargets disconnect for whitelisted peers 2021-02-17 13:34:41 -07:00
MarcoFalke 72fbeae94e [net] Cleanup maxuploadtarget
* log: nMaxOutboundLimit is in bytes
* log: Hide misleading -maxuploadtarget=0 warning
* qa : Minor cleanup to maxuploadtarget rpc tests
* net: Use DEFAULT_MAX_UPLOAD_TARGET = 0
2021-02-17 19:23:38 +00:00
Suhas Daftuar a0ca4116c1 Add RPC test for -maxuploadtarget 2021-02-17 19:23:38 +00:00
Jonas Schnelli 68066648a9 [QA] fix netbase tests because of new CSubNet::ToString() output 2021-02-16 18:02:25 +00:00
Jonas Schnelli fa9fcfea60 banlist.dat: store banlist on disk 2021-02-16 18:02:24 +00:00
Homu cc5574b819 Auto merge of #4963 - defuse:fix-updatecheck-token, r=nuttycom
Move the github API token out of updatecheck.py into an untracked file.
2021-01-28 16:38:34 +00:00
Taylor Hornby 45392c2215 Move the github API token out of updatecheck.py into an untracked file. 2021-01-25 10:06:43 -07:00
Jack Grigg 177df2c25a depends: Postpone updates that require adding CMake 2021-01-25 12:07:09 +00:00
Jack Grigg 07449c1a0c QA: Postpone BDB update again
It's unlikely we will ever upgrade from BDB 6; instead we will migrate
away from BDB.
2021-01-25 11:51:06 +00:00
Jack Grigg bb242b6a7b QA: Remove unused update postponements
Clang has been updated, and the Rust dependencies aren't checked by
updatecheck.py any more.
2021-01-25 11:49:37 +00:00
Jack Grigg 3e35bc8e71 qa: Postpone Boost and native_b2 updates 2021-01-25 11:49:11 +00:00
Jack Grigg c996fc1ca4 Revert "Update boost to 1.75, postpone other updates."
This reverts commit 8f4dd4460b.
2021-01-25 11:35:18 +00:00
Homu 06d234d774 Auto merge of #4934 - oxarbitrage:issue4917, r=nuttycom
Split wallet.py

Split some of the tests from `wallet.py` into its own files to make it easier to debug.
Some of the tests moved where depending(specially in balance amounts) on previous code. As standalone, some of the hardcoded balances needed some changes. No further modifications to tests are done in this PR.

We can split more but i think is a good start.

If this is merged it will close https://github.com/zcash/zcash/issues/4917

-----------------------
Please ensure this checklist is followed for any pull requests for this repo. This checklist must be checked by both the PR creator and by anyone who reviews the PR.
* [ ] Relevant documentation for this PR has to be completed and reviewed by @mdr0id before the PR can be merged
* [ ] A test plan for the PR must be documented in the PR notes and included in the test plan for the next regular release

As a note, all buildbot tests need to be passing and all appropriate code reviews need to be done before this PR can be merged
2021-01-14 17:49:12 +00:00
Kris Nuttycombe ada04aa01d Fix pyflakes complaints 2021-01-14 07:34:40 -07:00
Homu feadf83de9 Auto merge of #4942 - str4d:rust-1.49, r=str4d
depends: Update Rust to 1.49.0

Also updates our `Cargo.lock`.
2021-01-06 00:09:41 +00:00
Homu 5094a8b634 Auto merge of #4924 - daira:update-updatecheck, r=str4d
qa/zcash/updatecheck.py: remove dead code; print instructions to run `cargo outdated` and `cargo update`

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-01-05 19:58:34 +00:00
Jack Grigg 070d4720eb depends: Update Rust to 1.49.0 2021-01-04 16:31:11 +00:00
Alfredo Garcia 77db54764a split wallet.py tests 2020-12-29 14:42:46 -03:00
Daira Hopwood 66fe7a3782 Revert changes in #4916 that assumed arguments represent fees, when they are actually number of confirmations.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-12-21 16:08:58 +00:00
Daira Hopwood 86aa5d3873 qa/zcash/updatecheck.py: remove dead code; print instructions to run `cargo outdated` and `cargo update`.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-12-19 17:20:26 +00:00
Homu 2c0f6df168 Auto merge of #4916 - daira:reduce-fee, r=nuttycom
Reduce default fee to 1000 zatoshis

Per ZIP 313. This also ensures that transactions that pay the default fee will always be relayed, and not rate-limited.
2020-12-19 00:02:44 +00:00
Kris Nuttycombe 8f4dd4460b Update boost to 1.75, postpone other updates.
This removes the paches iostreams-106.patch and signals2-noise.patch
which have been incorporated into boost 1.75. Also, this further
postpones updates to native_clank, libcxx and native_ccache.
2020-12-18 14:13:42 -07: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
Dimitris Apostolou f459e43dc9
Update links 2020-12-13 11:24:44 +02:00
Josh Ellithorpe efb603557a
Include transaction hex in verbose getblock output 2020-12-03 14:18:17 -10:00
Jack Grigg a7370b112e test: Run shielding-heavy RPC tests in serial 2020-12-02 13:52:08 +00:00
Jack Grigg 3a91bcfac5 test: Silence pyflakes unused import warning
rpc-tests.py trial-imports zmq to determine whether it is available.
2020-12-02 01:01:50 +00:00
Jack Grigg 21a7ec8bfb test: Run rpc-tests.py in full_test_suite.py 2020-11-21 03:03:58 +00:00
Jack Grigg 891fbff5b9 test: Adjust some Zcash RPC tests to work with parallel runner 2020-11-21 03:03:58 +00:00
MarcoFalke 01449d8a3d qa: Set correct path for binaries in rpc tests 2020-11-21 03:03:58 +00:00
John Newbery bc644280bf Add exclude option to rpc-tests.py 2020-11-21 03:03:58 +00:00
fanquake 32249fb5b2 [qa][doc] Correct rpc test options in readme 2020-11-21 03:03:55 +00:00
John Newbery 4f4f8d5ad7 Various review markups for rpc-tests.py improvements 2020-11-21 03:03:15 +00:00
John Newbery 6aad43b63f Refactor rpc-tests.py
- add main()
- remove global variables
2020-11-21 03:03:15 +00:00
John Newbery cc099b3b7b Improve rpc-tests.py arguments
A few miscellaneous improvements to rpc-tests.py command line arguments:

 - make all arguments start with double dash for consistency
 - improve help text and output
 - add nozmq argument to explicitly exclude the ZMQ tests
 - change 'parallel' to 'jobs'
2020-11-21 03:03:15 +00:00
John Newbery 389b70cafe Use argparse in rpc_tests.py
This commit replaces the roll-your-own argument parsing in rpc_tests.py
with Python's standard library argparse.
2020-11-21 03:03:15 +00:00
John Newbery 41c2bc1e05 Use configparser in rpc-tests.py
Remove the use of wildcard imports in rpc-tests.py and replace with
configparser.
2020-11-21 03:03:15 +00:00
Alex Morcos 2eab4f7503 remove obsolete run-bitcoind-for-test.sh 2020-11-21 03:03:15 +00:00
Alex Morcos 3accdb2fc7 Reorder RPC tests for running time 2020-11-21 03:03:15 +00:00
MarcoFalke 8b3c39ea80 [qa] rpc-tests: Apply random offset to portseed
This helps to skip over resources, which are blocked by regtest bitcoind
zombie nodes
2020-11-21 03:03:15 +00:00
MarcoFalke 0a73a0fbd9 [qa] test_framework: Exit when tmpdir exists 2020-11-21 03:03:15 +00:00
MarcoFalke d014a30566 [qa] pull-tester: Only print output when failed 2020-11-21 03:03:15 +00:00
MarcoFalke bcbf03ebe9 [qa] Refactor RPCTestHandler to prevent TimeoutExpired 2020-11-21 03:03:15 +00:00
MarcoFalke 352f2dc54b [qa] create_cache: Delete temp dir when done 2020-11-21 03:03:15 +00:00
isle2983 2d90c8f0d8 [doc] - clarify statement about parallel jobs in rpc-tests.py 2020-11-21 03:03:12 +00:00
MarcoFalke 4500a75346 [qa] pull-tester: Don't mute zmq ImportError
Zcash: We didn't backport the mute, so this is just conflict removal.
2020-11-21 03:02:41 +00:00
MarcoFalke e4d1dcc753 [qa] Remove unused code 2020-11-21 03:02:41 +00:00
MarcoFalke b25a63593e [qa] Use single cache dir for chains 2020-11-21 03:02:41 +00:00
MarcoFalke dbb41d1082 [qa] Adjust timeouts for micro-optimization of run time 2020-11-21 03:02:41 +00:00
whythat 1b3866fd0e [qa]: enable rpcbind_test 2020-11-21 03:02:41 +00:00
whythat 3c7f4ca809 [qa]: add parsing for '<host>:<port>' argument form to rpc_url() 2020-11-21 03:02:41 +00:00
fanquake 2fc450d94e [doc] Add OS X ZMQ requirement to QA readme 2020-11-21 03:02:37 +00:00
MarcoFalke 7366e81375 [qa] pull-tester: Start longest test first 2020-11-21 02:34:47 +00:00
MarcoFalke fd7689ff07 [qa] pull-tester: Fix assertion and check for run_parallel 2020-11-21 02:34:47 +00:00
MarcoFalke 63a3c9aceb [qa] test_framework: Use different rpc_auth_pair for each node 2020-11-21 02:34:47 +00:00
Cory Fields ecf9d8eb2b build: a few ugly hacks to get the rpc tests working out-of-tree
- Link pull-tester/rpc-tests.py to the build dir
- Add the build-dir's config to the python path so that tests can find it
- The tests themselves are in srcdir
- Clean up __pycache__ in 'make clean'
2020-11-21 02:34:47 +00:00
Suhas Daftuar 2399cfc7ba Tests: add timeout to sync_blocks() and sync_mempools()
Previously these functions would infinitely loop if sync failed;
now they have a default timeout of 60 seconds, after which an
AssertionError is raised.

sync_blocks() has also been improved and now compares the tip
hash of each node, rather than just using block count.

Zcash: Kept block count check for a couple of tests where we use it.
2020-11-21 02:34:47 +00:00
MarcoFalke 17caf1ddd1 [qa] test_framework: Append portseed to tmpdir
This makes it possible to specify a tmpdir while running tests in
parallel
2020-11-21 02:34:47 +00:00
MarcoFalke 818d2de39b [qa] Remove hardcoded "4 nodes" from test_framework
Zcash: Applied changes to our RPC tests.
2020-11-21 02:34:47 +00:00
MarcoFalke 5a12bc9d83 [qa] Add option --portseed to test_framework 2020-11-21 02:33:27 +00:00
MarcoFalke cbe91ea855 [qa] pull-tester: Run rpc test in parallel 2020-11-21 02:33:27 +00:00
MarcoFalke 0d8a62925a [qa] pull-tester: Adjust comment 2020-11-21 02:33:27 +00:00
MarcoFalke 5f13446dee [qa] Stop other nodes, even when one fails to stop 2020-11-21 02:33:27 +00:00
MarcoFalke 065255d3cb [qa] Update README.md 2020-11-21 02:33:27 +00:00
MarcoFalke 08256c9ec6 [qa] Refactor test_framework and pull tester
* log to stdout
* increase range for p2p and rpc ports
* UPPERCASE_CONSTANTS
* Stop nodes on CTRL+C
2020-11-21 02:33:27 +00:00
MarcoFalke 15721275d0 [qa] Switch to py3
Zcash: We already did this, so most of the backported changes are
ancillary (license header updates and style), but a few are relevant.
2020-11-21 02:33:27 +00:00
MarcoFalke d362b632bf [qa] rpc-tests: Fix link in comment and label error msg 2020-11-21 02:33:27 +00:00
MarcoFalke cc44368315 [qa] pull-tester: Exit early when no tests are run 2020-11-21 02:33:27 +00:00
MarcoFalke e7a6c49c00 [qa] pull-tester: Don't mute zmq ImportError 2020-11-21 02:33:27 +00:00
MarcoFalke db761077e5 [qa] mininode: Catch exceptions in got_data 2020-11-21 02:33:27 +00:00
MarcoFalke 7108d6aaa6 [qa] rpc-tests: Properly use integers, floats 2020-11-21 02:33:27 +00:00
MarcoFalke 65a6249d41 [qa] Use python2/3 syntax 2020-11-21 02:33:27 +00:00
Elliot Olds 845b31a760 Check if zmq is installed in tests, update docs
If ZMQ is enabled, check whether it's installed before running ZMQ tests.
If it isn't, disable ZMQ and print a warning.

Also add dependency info to test docs, so users know ZMQ is required
before running tests, and so they know how to install it.

When following the build instructions before this change then trying
to run the RPC tests, a unix user would get an error when python
tried to import zmq.

There may be other dependencies that should be added to the docs,
particularly ones for non-unix systems. This is the only unlisted
dependency I encountered using linux.
2020-11-21 02:33:27 +00:00
Wladimir J. van der Laan 239857d7d9 test: don't override BITCOIND and BITCOINCLI if they're set
In rpc-tests.py, don't override BITCOIND and BITCOINCLI if they're
already set. Makes it possible to run the tests with either another tree
or the GUI.
2020-11-21 02:33:27 +00:00
MarcoFalke fb1f76f330 [qa] pull-tester: Cleanup (run keypool, tidy stdout)
* Run keypool (takes 6 seconds)
* Print duration of each rpc test
* Structure output (bold, new lines)
2020-11-21 02:33:27 +00:00
MarcoFalke db27db2e43 [qa] keypool: DRY: Use test framework 2020-11-21 02:33:27 +00:00
MarcoFalke fa44509d6c [qa] keypool: Fix white space to prepare transition to test framework 2020-11-21 02:33:27 +00:00
MarcoFalke 01c36295c4 [qa] Extend README.md 2020-11-21 02:33:27 +00:00
MarcoFalke 80b2274ddf [qa] Split README.md to /qa and /qa/rpc-tests
+ Update with new -help message
2020-11-21 02:33:27 +00:00
Suhas Daftuar 800bf0a45f Remove unmaintained example test script_test.py 2020-11-21 02:33:27 +00:00
James O'Beirne eaf4dfe280 Add basic coverage reporting for RPC tests
Thanks to @MarcoFalke @dexX7 @laanwj for review.

Zcash: Just the --coverage flag for rpc-tests.py, as we backported the
rest of the coverage backend in zcash/zcash#4411.
2020-11-21 02:33:27 +00:00
MarcoFalke 760e500811 [rpc-tests] Check return code 2020-11-20 03:32:53 +00:00
MarcoFalke 6aa4f19e87 [rpc-tests] fundrawtransaction: Update fee after minRelayTxFee increase
Zcash: Added floor, since our minRelayTxFee is actually lower.
2020-11-20 03:32:53 +00:00
James O'Beirne 480f1bf43e Add tests for gettxoutsetinfo, CLevelDBBatch, CLevelDBIterator
Thanks @dexX7.

Zcash: Rest of this commit was cherry-picked in zcash/zcash#2598.
2020-11-20 03:32:53 +00:00
MarcoFalke 8e58eddab1 [doc] trivial: fix markdown syntax in qa/rpc-tests/README.md 2020-11-20 03:32:53 +00:00
Jeff Garzik 6618580194 qa/pull-tester/rpc-tests.py: chmod 0755
Fix file mode to be executable.

Include dummy whitespace change to force git to change mode.
2020-11-20 03:32:53 +00:00
ptschip 772d780730 Migrated rpc-tests.sh to all python rpc-tests.py
1) created rpc-tests.py
2) deleted rpc-tests.sh
3) travis.yml points to rpc-tests.py
4) Modified Makefile.am
5) Updated README.md
6) Added tests_config.py and deleted tests-config.sh
7) Modified configure.ac with script to set correct path in tests_config.py

Zcash: Migrated our test list over, and other necessary modifications.
The UI changes were not migrated.
2020-11-20 03:32:53 +00:00
Casey Rodarmor 4761c9f2bc Add p2p-fullblocktest.py
Zcash: Includes pyflakes changes.
2020-11-20 03:32:53 +00:00
Daniel Kraft 95d1f887ca Fix crash when mining with empty keypool.
Since the introduction of the ScriptForMining callback, the mining
functions (setgenerate and generate) crash with an assertion failure
(due to a NULL pointer script returned) if the keypool is empty.  Fix
this by giving a proper error.

Zcash: Adapted to our MinerAddress type.

Co-authored-by: Jack Grigg <jack@electriccoin.co>
2020-11-20 03:30:37 +00:00
Homu 10b09d483e Auto merge of #4793 - str4d:faster-rpc-tests, r=str4d
test: Use default shielded address in RPC tests where the type is irrelevant

This means we are running these tests against the recommended functionality,
and that these RPC tests will now use the faster Sapling addresses.
2020-11-19 14:15:08 +00:00
Homu 949fdca3a6 Auto merge of #4873 - str4d:rpc-test-blocks, r=str4d
Enable mininodes to construct blocks in RPC tests

Includes changes to disable difficulty adjustment on regtest, cherry-picked from:
- bitcoin/bitcoin#6853
- bitcoin/bitcoin#13046

The ZIP 143/243 logic is ported from https://github.com/zcash-hackworks/zcash-test-vectors
2020-11-18 15:11:49 +00:00
Homu 2cc836680a Auto merge of #4843 - furszy:2020_improving_sendmany_redudant_loops_first_round, r=daira
Improving asyncOp_sendmany redundancies (first round)

Work over async sendmany operation flow. Specifically on the utxo finding, utxo selection, total amount calculation and the tx inputs appending process.  Removed several unneeded for loops over the entire utxo set, re structuring and cleaning the flow.
2020-11-18 13:54:13 +00:00
Jack Grigg a7f9365fb8 test: Set hashFinalSaplingRoot default correctly in create_block 2020-11-18 11:12:09 +00:00
Jack Grigg 030a685392 test: Fix SignatureHash RPC test helper
- Check validity of inIdx.
- ZIP 143 and 243 support.
2020-11-18 11:11:54 +00:00
Jack Grigg bbed3ecc3c test: Remove FindAndDelete from RPC test framework 2020-11-17 18:48:32 +00:00
Jack Grigg 8bc0a591a0 Revert "remove SignatureHash from python rpc tests"
This reverts commit 910ff448d6.
2020-11-17 18:48:32 +00:00
Jesse Cohen aead91419e [doc][trivial] no retargeting in regtest mode 2020-11-17 18:48:32 +00:00
mdr0id 4dc94c954f Update expected fails for Sprout txns flows on Canopy 2020-11-16 15:57:49 -08:00
furszy ca9fc49fc4
rpc_wallet_tests: changed "Insufficient funds" error message to a proper "Insufficient transparent funds". This is because we are now throwing the insufficient transparent balance rpc error inside load_utxo. 2020-11-13 10:23:59 -03:00
Jack Grigg 6c43a57e78 test: Use default shielded address in RPC tests where the type is irrelevant
This means we are running these tests against the recommended functionality,
and that these RPC tests will now use the faster Sapling addresses.
2020-11-11 22:43:26 +00:00
Homu 60331b9e83 Auto merge of #4574 - oxarbitrage:issue4475, r=daira
Add blockhash parameter to getrawtransaction

Code ported manually from https://github.com/bitcoin/bitcoin/pull/10275 in attempt to fix https://github.com/zcash/zcash/issues/4475
2020-11-10 15:52:11 +00:00
Jack Grigg dbfb3565d6 lint: Opt out of locale dependence in Zcash shell scripts 2020-11-09 23:06:21 +00:00
Jack Grigg 7c4b19fa4d lint: Use consistent shebangs 2020-11-09 23:06:21 +00:00
Jack Grigg 337e528d33 python: Explicitly set encoding to utf8 when opening text files 2020-11-09 23:06:21 +00:00
Wladimir J. van der Laan 5295079b2e test: Explicitly set encoding to utf8 when opening text files
These are text files but their encoding does not depend on the locale.
Not all of them require utf8 but it is better to fix it at something
to remove potential unpredictability.

This is necessary on FreeBSD where no locale is set by default,
and apparently Python defaults not only the terminal encoding to the locale
but that of every text file. So without LOCALE environment it defaults text
file encoding to ASCII. This causes problems with e.g. `bitcoin.conf`.

Luckily the locale doesn't affect the default encoding for str.encode() and
bytes.decode() on Python 3, so this is the only change necessary.
2020-11-09 22:59:04 +00:00
Daira Hopwood 90493623a0
Fix a comment about postponement of Clang upgrade 2020-11-03 09:55:02 +00:00
Sean Bowe 34c2a4b380
Postpone clang and libc++ dependency updates until after the 4.1.0 release. 2020-11-02 13:36:34 -07:00
Larry Ruane a91a7d37cf add z_gettreestate rpc 2020-10-26 23:08:47 -06:00
therealyingtong d8f20860de Postpone native_ccache 4.0 2020-10-21 23:15:19 +08:00
Homu de5c28b4b7 Auto merge of #4613 - str4d:claaaaaang, r=daira
Pin Clang for all compilation

fixes #2513, fixes #4697, fixes #4698, fixes #4699. refs #4607, #4292
2020-10-20 11:15:47 +00:00
Homu 8fa19fd50d Auto merge of #4794 - LarryRuane:allow-getaddressutxos, r=daira
allow getaddressutxos if -lightwalletd

The wallets need to be able to retrieve, via lightwalletd, the UTXO set for a given address, see https://github.com/zcash/lightwalletd/issues/312. The `getaddressutxos` rpc that was added for Insight Explorer is perfect for this, but this rpc is disabled when only `-lightwalletd` is enabled (that is, it requires `-insightexplorer`, which is a superset of `-lightwalletd`). However, the `DB_ADDRESSUNSPENTINDEX` index that supports this rpc is present when only `-lightwalletd` is enabled. This was probably a (fortuitous, as it turns out) oversight. So all that's required is to allow this rpc when `-lightwalletd` is enabled.
2020-10-20 09:31:39 +00:00
Larry Ruane 083a05b04f allow getaddressutxos if -lightwalletd 2020-10-19 11:26:16 -06:00
Homu ceb642550b Auto merge of #4789 - daira:4785-macos-tests, r=str4d
Test suite portability fixes for macOS

Fixes zcash/zcash#4785
2020-10-16 17:06:40 +00:00
Jack Grigg ee079a683b test: Fix various pyflakes warnings 2020-10-16 16:00:02 +01:00
Jack Grigg ea7d57aa47 QA: Add native_clang and libcxx to updatecheck.py 2020-10-16 15:43:50 +01:00
Daira Hopwood c06cc5854e qa/zcash/full_test_suite.py: print immediately if a test fails.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-10-16 03:58:31 +01:00
Daira Hopwood f85ed2741c qa/zcash/full_test_suite.py: changes needed for macOS. fixes #4785
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-10-16 03:57:57 +01:00
Jack Grigg bf450b2607 qa: Disable FORTIFY_SOURCE checks
FORTIFY_SOURCE does mostly nothing for Clang before 10, which we don't
pin yet (and won't before we next upgrade Rust).
2020-10-14 21:52:32 +01:00
Jack Grigg cd68450174 depends: Postpone current and scheduled Rust releases until 2021
We don't currently have a need for newer releases, and will likely be
pinning Rust for longer periods of time once we are also pinning Clang.
Rust releases occur every six weeks, so we can pre-emptively postpone
releases through the end of this year.
2020-10-09 12:42:32 +01:00
Jack Grigg 7c9fa28274 depends: ZeroMQ 4.3.3 2020-10-06 00:03:21 +01:00
Jack Grigg a9f62bdda0 depends: Boost 1.74.0
- The old patch is no longer necessary because of this upstream fix:
    https://github.com/boostorg/build/pull/560

- Boost 1.72 removed a <deque> from an include, which exposed a missing
  include in src/httpserver.cpp.

- Boost 1.73 moved function placeholders into the boost::placeholders
  namespace.

- The new patch is a fix from just after Boost 1.74 was released, fixing
  a warning that was missed.
2020-10-05 19:48:46 +01:00
Homu ce44f60c26 Auto merge of #4758 - str4d:depends-updates, r=str4d
Update dependencies
2020-10-01 16:34:04 +00:00
Homu a983344931 Auto merge of #4752 - str4d:small-httpserver-backports, r=daira
Small httpserver.cpp backports

Also includes a change to the `uiInterface.NotifyBlockTip` signal API.
These remove merge conflicts from subsequent backports for `sync.h`.

Cherry-picked from the following upstream PRs:
- bitcoin/bitcoin#6859
- bitcoin/bitcoin#7112
  - Only the non-QT changes.
- bitcoin/bitcoin#7966
- bitcoin/bitcoin#8421
  - We already backported the second commit in zcash/zcash#2555
2020-10-01 12:48:58 +00:00
Jack Grigg e15eaf0343 QA: Fix backporting bugs in httpbasics.py 2020-10-01 13:44:21 +01:00
Jack Grigg 076c1af55c depends: utfcpp 3.1.2 2020-10-01 11:10:33 +01:00
Jack Grigg 78a7230f50 depends: googletest 1.8.1 2020-10-01 10:57:57 +01:00
Jack Grigg 7725f66051 depends: ccache 3.7.11 2020-10-01 10:57:26 +01:00
Jack Grigg 96da9c2c00 depends: libevent 2.1.12
This includes https://github.com/libevent/libevent/pull/637 which fixes
a problem we encounter during cross-compilation with clang.
2020-10-01 10:56:42 +01:00
Jack Grigg bab853748e QA: Remove OpenSSL from updatecheck.py 2020-09-30 00:40:12 +01:00
Wladimir J. van der Laan 23556e690e http: Restrict maximum size of request line + headers
Prevent memory exhaustion by sending lots of data.
Also add a test to `httpbasics.py`.

Closes #6425
2020-09-30 00:35:32 +01:00
Homu 9245388bbc Auto merge of #4749 - str4d:update-config-guess-and-sub, r=str4d
depends: Update to latest config.guess & config.sub
2020-09-29 02:17:39 +00:00
Jack Grigg f52793d0d0 QA: Switch to x86_64-pc-linux-gnu for hard-coded Linux HOST
The change to config.guess for x86_64:Linux was made here:
    http://git.savannah.gnu.org/cgit/config.git/commit/?id=ca9bfb8cc75a2be1819d89c664a867785c96c9ba
2020-09-28 21:28:43 +01:00
Homu 514d868179 Auto merge of #4739 - str4d:update-leveldb, r=str4d
Update LevelDB to upstream commit f545dfabf

Cherry-picked from the following upstream PRs:

- bitcoin/bitcoin#7911
- bitcoin/bitcoin#7982
- bitcoin/bitcoin#8133
- bitcoin/bitcoin#8784
  - Only the missing changes.
- bitcoin/bitcoin#8826
- bitcoin/bitcoin#8613
- bitcoin/bitcoin#10544
- bitcoin/bitcoin#10633
  - Only the changes to files and code we have.
- bitcoin/bitcoin#10806
- bitcoin/bitcoin#10958
- bitcoin/bitcoin#12451
- bitcoin/bitcoin#13925
- bitcoin/bitcoin#15270

This upgrades LevelDB in the exact same commit progression as upstream, up to January 2019.
2020-09-25 16:16:37 +00:00
Dimitris Apostolou 67ffb189b7
Fix typos 2020-09-25 10:49:57 +03:00
Homu 49fc20aced Auto merge of #4720 - ebfull:fix-perf-regressions, r=str4d
Address some performance regressions

@str4d identified and fixed some performance regressions in our elliptic curve and proving crates, and we also changed to complete formulas in `bls12_381` to get some better performance in some cases. The result:

```
v3.1.0
"runningtime": 0.59883

before upgrading rust:
"runningtime": 0.823932

after upgrading rust:
"runningtime": 0.83004

after upgrading rust packages:
"runningtime": 0.763065
```

which gets us some of the way back to where we were.
2020-09-23 01:36:00 +00:00
Dimitris Tsapakidis b892fe13f8 Fixed multiple typos
A few "a->an" and "an->a".
"Shows, if the supplied default SOCKS5 proxy" -> "Shows if the supplied default SOCKS5 proxy". Change made on 3 occurrences.
"without fully understanding the ramification of a command" -> "without fully understanding the ramifications of a command".
Removed duplicate words such as "the the".

Zcash: Only the changes to files and code that we have.
2020-09-23 00:07:48 +01:00
Sean Bowe 03ce24013a
Update Rust to 1.44.1. 2020-09-22 15:06:01 -06:00
Homu c9672a49c2 Auto merge of #4696 - str4d:3640-z_sendmany-any-taddr, r=str4d
wallet: Add ANY_TADDR special string to z_sendmany

When using this special string as the from address, non-coinbase UTXOs
from any transparent addresses within the wallet will be used to fund the
transaction. Change outputs will be sent to a new transparent address,
as with any other spend of transparent funds.

Closes zcash/zcash#3640.
2020-09-22 18:09:58 +00:00
Jack Grigg e33f530a65 wallet: Ignore coinbase UTXOs with z_sendmany ANY_TADDR
Coinbase UTXOs from multiple transparent addresses may be shielded
together using z_shieldcoinbase.
2020-09-22 17:45:09 +01:00
Homu 35bb61be39 Auto merge of #4725 - str4d:cargo-vendor, r=str4d
depends: Switch to `cargo vendor` for Rust dependencies

When we first integrated Rust into our build system, we had two
limitations:

- We were building the `librustzcash` FFI library as a dependency, and
  therefore needed access to its crate dependencies in the depends
  system.
- Gitian builds happen offline, so we needed to fetch any crate
  dependencies ahead of time, and then configure cargo to use these in
  an offline environment.

At the time, `cargo` already had support for "Source Replacement", but
there was no easy way to package the dependencies in the necessary way.
What we implemented was effectively the `cargo-vendor` tool, built using
Makefiles. A noticeable downside was that we were pinning dependencies
twice: once in the `Cargo.lock` for the FFI library, and again in our
depends system.

Since then, `cargo-vendor` has been upstreamed into `cargo` itself, and
we have moved `librustzcash` into this repository. We can therefore use
`cargo vendor` directly from our pinned Rust compiler to fetch the
dependencies, and rely on our local `Cargo.lock` to pin the specific
crates we are relying on.
2020-09-19 12:37:51 +00:00
Jack Grigg c36ad21e74 QA: Comment out Rust crate checks in updatecheck.py
https://github.com/zcash/zcash/issues/4726 has been opened to track
fixing this.
2020-09-19 13:35:36 +01:00
zebambam 0314ad1a53 Postponed dependency updates, refer to core team sync meeting. 2020-09-16 09:48:55 -07:00
Homu f8e1a02bbe Auto merge of #4561 - oxarbitrage:issue1873, r=daira
Allow full and relative path wallet database location

Closes https://github.com/zcash/zcash/issues/1873
2020-09-04 14:49:50 +00:00
Daira Hopwood fbe68913bd Ensure that the absolute path used in the test definitely does not exist.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-09-04 14:52:11 +01:00
Daira Hopwood 21fee305a2 Fix grammar in error messages.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-09-04 14:52:05 +01:00
Alfredo Garcia 6a7cfdea54 allow wallet file to be outside datadir 2020-09-04 14:50:17 +01:00
Homu 7e958be2cb Auto merge of #4300 - oxarbitrage:issue3939, r=nuttycom
add shielded balance to getwalletinfo

Closes zcash/zcash#3939

It is based on the definition that unconfirmed balance has 0 confirmations; anything else is regular balance.

Implementation:

1. `getBalanceZaddr` uses one version of `GetFilteredNotes`, we want to use the other version that allow us to get balances inside min and max confirmations.
2. `shielded_unconfirmed_balance`, and `shielded_balance` are obtained by calling `getBalanceZaddr` with different min and max confirmations according to the definitions from above.
2020-09-04 13:29:58 +00:00
Homu 3caa784970 Auto merge of #2778 - syd0:add-python-assert, r=daira
Add assert_raises_message to the python test framework.
2020-09-03 14:26:54 +00:00
Daira Hopwood bd4469339a
Rename z_*_balance fields of getwalletinfo output to shielded_*_balance 2020-09-03 14:43:10 +01:00
Homu ef62a1c5e4 Auto merge of #4688 - defuse:fix-rpc-test-string-interpolation, r=daira
Add a missing % to a string interpolation in rpc test framework
2020-09-03 13:06:45 +00:00
Sean Bowe 539e487a31
Postpone updates for dependencies until after 4.0.0 release. 2020-09-01 13:24:08 -06:00
Jack Grigg 06d44392be wallet: Add ANY_TADDR special string to z_sendmany
When using this special string as the from address, UTXOs from any
transparent addresses within the wallet will be used to fund the
transaction. Change outputs will be sent to a new transparent address,
as with any other spend of transparent funds.

Closes zcash/zcash#3640.
2020-08-29 01:39:30 +01:00
Taylor Hornby 51b9e230d2 Add a missing % to a string interpolation in rpc test framework 2020-08-26 14:47:48 -06:00
Sean Bowe 104cc4dc77
Postpone rust updates 2020-08-26 10:08:35 -06:00
Sean Bowe 651721dcd8
Postpone boost 1.74.0 update 2020-08-26 10:04:20 -06:00
Jack Grigg 0ac2261b7a qa: Update list of postponed crate versions 2020-08-25 13:07:22 +01:00
Jack Grigg f0babb8356 depends: cargo update 2020-08-25 13:07:22 +01:00
Jack Grigg c10ba7da41 depends: Migrate to zcash_* 0.3.0 Rust crates 2020-08-25 13:07:22 +01:00
Alfredo Garcia 35961c4ee2 add shielded balance to getwalletinfo 2020-08-24 14:42:19 -03:00
Daira Hopwood 57a0418fbb Repair full_test_suite.py for new checksec.sh.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-08-14 18:02:27 +01:00
Daira Hopwood eea06658f4 Newer version of checksec.sh from a6df608ac0
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-08-14 17:49:16 +01:00
Jack Grigg 2a3770cfbf depends: Rework Rust integration
The Rust toolchain is now a native dependency, and the vendored crates
no longer depend on the native toolchain.
2020-08-10 22:52:23 +01:00
Homu d36718542c Auto merge of #4597 - str4d:rust-tracing, r=str4d
Use the Rust tracing crate for C++ logging

This PR swaps in the `tracing` crate (via FFI) for logging to either standard
output or `debug.log`. It transparently maps all existing `LogPrintf` and
`LogPrint` invocations to info-level `tracing` events, and passes through
correct file and line information. `error` invocations are mapped to error-level
`tracing` events, currently without line information (due to the way that
`error` is used in the codebase; swapping individual callsites to the new
`LogError` macro will provide that information).

The end-goal for this change is that we don't need to make any disruptive
changes to the codebase, but we can start to leverage `tracing`-specific
functionality where we want to, such as providing extra fields on certain log
lines (that can be filtered for), adding spans to record the flow of execution
through `zcashd`, and logging within C++ and Rust simultaneously. Support
for extra fields on spans and events will be added in a subsequent PR.

The `-debug` config options are converted at launch into their corresponding
directives for tracing's `EnvFilter`. The new `setlogfilter` RPC method allows
this filter to be reloaded dynamically. The syntax is documented in the
`setlogfilter` help text, as well as here:

https://docs.rs/tracing-subscriber/0.2.7/tracing_subscriber/filter/struct.EnvFilter.html#directives

When `-printtoconsole` is specified, the output now includes timestamps and
ANSI encoding :)
2020-08-07 21:54:46 +00:00
Jack Grigg 5ada9230af Revert "Add check-depends step to STAGE_COMMANDS list"
This reverts commit d4f70e5536.
2020-08-07 17:03:50 +01:00
Jack Grigg c9ca74fb34 qa: Add tracing dependencies to updatecheck.py
A new safe_depends() checker is added, which allows the '.' character on
top of the existing safe() characters.

The time crate is postponed to 2021-02-01, by which time hopefully the
chrono crate will have figured out what it is doing with that dependency.
2020-08-07 15:26:28 +01:00
Taylor Hornby 902bf838af Add new dependencies to updatecheck.py, add a flag we can use to have our CI test it. 2020-08-03 15:01:01 -06:00
Taylor Hornby 88082c4a56 Extend deadline for postponing dependency updates 2020-08-03 15:00:22 -06:00
Kris Nuttycombe 0391809da1 Remove amqp code and Proton library depenencies & flags. 2020-07-31 13:08:18 -06:00
Homu f39e4dbaf1 Auto merge of #4627 - LarryRuane:issue4596-flush-wallet-db, r=str4d
flush witness cache (SetBestChain()) on clean shutdown

Closes #4596, follow-on to #4573. In addition to flushing witness data on shutdown, fix the RPC test that was preventing this change from being part of #4573.
2020-07-29 13:12:04 +00:00
Homu 615efd2a52 Auto merge of #4584 - defuse:update-ignore, r=str4d
Block release when we haven't checked dependency updates for security fixes
2020-07-29 10:45:44 +00:00
Larry Ruane a65ecaad54 flush wallet db (SetBestChain()) on clean shutdown 2020-07-20 20:04:48 -06:00
Homu 959f5b09d0 Auto merge of #4560 - str4d:zip-207, r=nuttycom
[ZIP 207] Funding Streams + [ZIP 214] Dev Fund Recipients

Closes #4554. Closes #4555.
2020-07-10 22:45:11 +00:00
Kris Nuttycombe e456d87cbf Merge remote-tracking branch 'upstream/master' into zip-207 2020-07-09 08:23:57 -06:00
Homu 3f4a532588 Auto merge of #4573 - LarryRuane:issue4301-CopyPreviousWitnesses, r=daira
Flush witness data to disk only when it's consistent

Closes #4301. Running this PR's code will not repair a data directory that has been affected by this problem; that requires starting zcashd with the `-rescan` or `-reindex` options.
2020-07-09 11:50:41 +00:00
Larry Ruane 4811dcc426 sync before stopping nodes
This makes the test more deterministic. When the nodes are split, and
partition B (node 1) mines a joinsplit transaction, that block only
sometimes appears on the blockchain after the nodes are all reconnected.
2020-07-08 20:48:50 -06:00
Homu 701adc38cb Auto merge of #4578 - therealyingtong:zip212-impl, r=str4d
ZIP212 implementation

Closes #4557.
(description by @ebfull, taken from #4575)

* The `SaplingNote` structure has a new enum called `zip212Enabled`. This
  member is private and reflects whether the note was or is being created
  using the derivation method of ZIP 212 (i.e., `BeforeZip212` or `AfterZip212`).
* The `SaplingNotePlaintext` structure has a new unsigned char member
  `leadbyte`. This member is private and contains the leading byte of the
  plaintext (e.g. `0x01`, `0x02`).
* The serialization of `SaplingNotePlaintext` sets `zip212Enabled` to
  `BeforeZip212` iff the serialized note plaintext version is not `0x01`.
* The `r`/`rcm` fields have been removed and replaced with a private field
  `rseed`. `SaplingNote` and `SaplingNotePlaintext` now have a helper method
  `rcm()` which returns the `rcm` either by deriving it with `rseed`
  (if `zip212Enabled` is `AfterZip212`) or returning `rseed` by interpreting
  `rseed` as `rcm`.
* All the methods of obtaining a `SaplingNote` account for these changes:
  - The `SaplingNote` constructor that is used by e.g. the transaction builder,
    and internally samples random `rcm`, now takes a `zip212Enabled` argument
    to decide whether to sample `rcm` the "old" way or the "new" way.
  - The bare constructor for `SaplingNote` is removed.
  - The other constructor which takes the raw contents of the note is only used
    in tests or in `Note.cpp`, but now also takes a `zip212Enabled` argument.
  - The other way of obtaining a note, by calling `SaplingNotePlaintext::note()`,
    has been adjusted.
* The `SaplingNotePlaintext` class now has an `generate_or_derive_esk()` method
  that either samples a random `esk` or derives it using the local `rseed`
  depending on the value of `leadbyte`.
* The encryption routine is modified to consult `generate_or_derive_esk()` and
  provide it to the note encryption object.
* The note encryption objects now take an optional `esk` as input and otherwise
  sample a random `esk` internally. This API functionality is preserved to allow
  for testing.
* The `SaplingNotePlaintext` decryption routines are modified:
  - The out and enc decryption routines now check that `epk` is consistent with
    the derived `esk`.
  -  The out decryption routine for plaintexts also checks that `esk` is
    consistent with what is derived by the note.
* The miner and transaction builder consult the activation of Canopy when
  creating `SaplingNote`s.
* The consensus rules are modified so that shielded outputs (miner rewards)
  must have `v2` note plaintexts after Canopy has activated.
2020-07-09 00:29:07 +00:00
Kris Nuttycombe 436dee90de Merge remote-tracking branch 'upstream/master' into zip-207 2020-07-08 15:04:32 -06:00
Kris Nuttycombe fccf37844b Fix pyflakes. 2020-07-02 16:54:49 -06:00
Homu 602e88ddb9 Auto merge of #4489 - therealyingtong:4479-remove-sprout-shielding, r=str4d
[ZIP 211] Disabling Addition of New Value to the Sprout Value Pool

Disables Sprout outputs after NU4 by checking for nonzero `vpub_old` in transactions after NU4 activation height.

Adds gtests to check expected behaviour before and after NU4 activation height.

edit:
Also modifies `z_` methods in `rpcwallet`, and adds a matching RPC test.

Implements [ZIP 211](https://zips.z.cash/zip-0211), closes #4479
2020-07-02 21:53:51 +00:00
Larry Ruane bf568273a7 fix pyflakes CI errors 2020-07-02 14:32:48 -06:00
Kris Nuttycombe 4d223f9797 Merge remote-tracking branch 'upstream/master' into zip-207 2020-07-02 13:24:45 -06:00
Sean Bowe 14a09a5fd6
Remove unused imports from remove_sprout_shielding RPC test. 2020-07-02 11:09:22 -06:00
therealyingtong f24e706079 Replace leadByte in SaplingNote with is_zip_212 2020-07-02 15:37:32 +08:00
Larry Ruane 5b7fed5bbf self.sync_all(), not time.sleep(4) 2020-07-01 10:28:15 -06:00
Kris Nuttycombe 7dd1889944 Trivial copyright fix.
Co-authored-by: str4d <thestr4d@gmail.com>
2020-07-02 00:27:18 +08:00
therealyingtong 5e4d13b49d Add RPC tests
Test that Sprout shielding is accepted before Canopy and rejected after Canopy activation
2020-07-02 00:27:14 +08:00
Rod Vagg a106c15a19
Add joinSplitPubKey and joinSplitSig to RPC
These two properties are required to fully reconstruct a Zcash
transaction's binary form from the RPC data.

Co-authored-by: str4d <thestr4d@gmail.com>
2020-06-30 21:47:51 +10:00
Kris Nuttycombe 92cec200ee Minor fixes for ZIP-207 review comments. 2020-06-29 16:13:08 -06:00
Jack Grigg efd04b920b Implement zip-207 and zip-214.
Add funding streams to consensus parameters.

Add funding stream payments to coinbase txns generated by the miner.
* Reduce valueBalance for shielded outputs to funding streams.
* Ensure we produce binding signatures in any case where shielded
  outputs go to either a funding stream or the miner.
2020-06-25 16:15:50 -06:00
Taylor Hornby 75876f477b Implement system for postponing dependency updates. 2020-06-24 18:14:47 -06:00
Larry Ruane 6335944784 add python test to reproduce bug 4301 2020-06-24 09:27:11 -06:00
Alfredo Garcia 1f06621e34 add myblockhash parameter to getrawtransaction
Co-Authored-By: kallewoof <kalle.alm@gmail.com>
2020-06-15 19:33:49 -03:00
Homu 552482a404 Auto merge of #3913 - str4d:smoke-tests, r=str4d
Automated smoke tests

Usage:

```
ZCASHD=./src/zcashd ZCASHCLI=./src/zcash-cli ./qa/zcash/smoke_tests.py --wallet=wallet.smoketest.dat "$HOME/.zcash"
```

Includes code cherry-picked from bitcoin/bitcoin#7751.
2020-06-04 22:17:48 +00:00
Homu 4ffccda774 Auto merge of #4322 - oxarbitrage:issue3740, r=str4d
Add -debuglogfile option

Cherry-picked from https://github.com/bitcoin/bitcoin/pull/11781.
Closes https://github.com/zcash/zcash/issues/3740.
2020-06-04 00:40:45 +00:00
Homu e9a6d7926b Auto merge of #4282 - oxarbitrage:issue2375, r=daira
Add a flag to get amount results as integer

Closes https://github.com/zcash/zcash/issues/2375
2020-06-03 11:26:00 +00:00
Daira Hopwood 270a724c87
Remove unused import in qa/rpc-tests/listtransactions.py
Co-authored-by: Dimitris Apostolou <dimitris.apostolou@icloud.com>
2020-06-03 12:25:31 +01:00
Alfredo Garcia 93afebeef4 add new parameters to rpc client and fix some bugs 2020-05-30 12:18:43 -03:00
Alfredo Garcia e7c829aa0e update docs 2020-05-30 10:34:03 -03:00
Alfredo Garcia 76cb4e8d04 remove not needed comments from wallet.py 2020-05-29 11:24:39 -03:00
Daira Hopwood 1527e5b3ca Missing NU4->Canopy renames.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-05-29 10:02:50 +01:00
Daira Hopwood 22b8574d9e Rename golden/nu4.tar.gz to canopy.tar.gz.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-05-29 01:30:30 +01:00
Alfredo Garcia 7c84f4e98a fix test cases 2020-05-28 10:58:04 -03:00
Anthony Towns 83087be393 test: Add tests for `-debuglogfile` with subdirs 2020-05-28 10:58:04 -03:00
Wladimir J. van der Laan 4de0ac3351 test: Add test for `-debuglogfile` 2020-05-28 10:58:04 -03:00
Daira Hopwood c1227ae67c Rename NU4 to Canopy in constant and function names.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-05-28 13:11:48 +01:00
Jack Grigg 5a577c7630 qa: Add --automate flag to smoke tests 2020-05-28 23:04:58 +12:00
Jack Grigg 4498eb26db qa: Remove unused timeout configuration from wait_for_balance 2020-05-28 23:04:58 +12:00
Jack Grigg c2144f7af7 qa: Add --use-faucet flag to smoke tests 2020-05-28 23:04:58 +12:00
mdr0id a63c1d6279 Add helpers for tapping and donating to the testnet faucet 2020-05-28 19:10:32 +12:00
Eirik Ogilvie-Wigley b21fcf37cb Various improvements
- Print time since start for each operation
- Print traceback for any raised exceptions
- Improve messages to user
- Warning cleanups
2020-05-28 19:01:52 +12:00
Eirik Ogilvie-Wigley aa4b98a7c3 Resolve decimal vs float issues 2020-05-28 18:59:20 +12:00
Homu 9bf8443c16 Auto merge of #4504 - str4d:disconnectblock-fixes, r=str4d
Use the cached consensusBranchId in DisconnectBlock

If a node is started with a set of network upgrades that don't match the
serialized chain (such as when we implement NU rollbacks on testnet),
RewindBlockIndex will disconnect each block in the chain until it
reaches the most recent block that agrees with the node's set of network
upgrades. However, the blocks themselves should be disconnected using
the consensus branch ID that they were connected with, which is
persisted alongside the chain and reconstructed in LoadBlockIndex.
2020-05-28 02:51:34 +00:00
Jack Grigg a2db35137b qa: Improve reliability of smoke test cleanup 2020-05-28 13:15:55 +12:00
Jack Grigg a2ba414d69 qa: Improve reliability of smoke tests 2020-05-28 13:15:55 +12:00
Jack Grigg 0261ccbbe8 qa: Don't allow smoke tests with mainnet wallet.dat 2020-05-28 13:15:55 +12:00
Jack Grigg a6ff0a0794 qa: Use slick-bitcoinrpc for smoke tests 2020-05-28 13:15:55 +12:00
Jack Grigg eeecb3bf8c qa: Transaction chain smoke test 2020-05-28 13:15:55 +12:00
Jack Grigg 01757cff23 qa: Simple smoke tests 2020-05-28 13:15:55 +12:00
Jack Grigg 6d1563d7a3 qa: Run Zcash node for smoke tests 2020-05-28 13:15:55 +12:00
Jack Grigg 6470237c09 qa: Smoke test driver 2020-05-28 13:15:55 +12:00
Homu 4907a31302 Auto merge of #4242 - oxarbitrage:issue3726, r=str4d
Add estimatedheight to rpc getblockchaininfo response

Fixes https://github.com/zcash/zcash/issues/3726

Ported from https://github.com/zcash/zcash/pull/3727 with comments addressed.
2020-05-28 00:49:49 +00:00
therealyingtong 06ddf659a7 Add RPC tests for post-Heartwood rollback 2020-05-28 09:54:42 +12:00
Alfredo Garcia d42e0a433c remove additional not needed casts from py tests 2020-05-18 18:09:07 -03:00
Alfredo Garcia 26e4889f87 Fix casting in listtransactions.py 2020-05-18 16:53:01 -03:00
Alfredo Garcia 24d3516e35 Fix casting in wallet.py
Co-Authored-By: Daira Hopwood <daira@jacaranda.org>
2020-05-18 16:53:01 -03:00
Alfredo Garcia 25bccb4814 replace with AssertionError assert_equal in receivedby.py
Co-Authored-By: Daira Hopwood <daira@jacaranda.org>
2020-05-18 16:53:01 -03:00
Alfredo Garcia 25f48c21dd add amountZat field to z_listreceivedbyaddress 2020-05-18 16:53:01 -03:00
Alfredo Garcia 76e7f21d4a add amountZat field to listunspent 2020-05-18 16:52:04 -03:00
Alfredo Garcia 9a55c8b238 add amountZat field to listtransactions, gettransaction and listsinceblock 2020-05-18 16:51:24 -03:00
Alfredo Garcia 2ec9ac3c81 add amountZat field to listreceivedbyaddress and listreceivedbyaccount 2020-05-18 16:49:39 -03:00
Alfredo Garcia 306270911e add boolean inZat to z_getbalance 2020-05-18 16:47:17 -03:00
Alfredo Garcia 50372cab62 add boolean inZat to getbalance 2020-05-18 16:47:17 -03:00