Merge pull request #5945 from zcash/version-5.0.0

Merge 5.0.0 release branch back to master.
This commit is contained in:
Kris Nuttycombe 2022-05-11 10:25:35 -06:00 committed by GitHub
commit 8764f636e5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
30 changed files with 877 additions and 413 deletions

View File

@ -4,30 +4,5 @@ linker = "aarch64-linux-gnu-gcc"
[source.crates-io]
replace-with = "vendored-sources"
[source."https://github.com/zcash/halo2.git"]
git = "https://github.com/zcash/halo2.git"
rev = "0c33fa4e6e41464884765c8fb4cefebafd300ca2"
replace-with = "vendored-sources"
[source."https://github.com/zcash/incrementalmerkletree.git"]
git = "https://github.com/zcash/incrementalmerkletree.git"
rev = "f23e3d89507849a24543121839eea6f40b141aff"
replace-with = "vendored-sources"
[source."https://github.com/zcash/librustzcash.git"]
git = "https://github.com/zcash/librustzcash.git"
rev = "68cbc2bb17b8967c7fb2f6034ac3d6174fc8f19b"
replace-with = "vendored-sources"
[source."https://github.com/zcash/orchard.git"]
git = "https://github.com/zcash/orchard.git"
rev = "a30caec124aa6c6e7818b5100293204425c49de3"
replace-with = "vendored-sources"
[source."https://github.com/nuttycom/hdwallet.git"]
git = "https://github.com/nuttycom/hdwallet.git"
rev = "9b4c1bdbe0517e3a7a8f285d6048a37d472ba3bc"
replace-with = "vendored-sources"
[source.vendored-sources]
# The directory for this source is set to RUST_VENDORED_SOURCES by src/Makefile.am

194
Cargo.lock generated
View File

@ -135,12 +135,12 @@ checksum = "cf9ff0bbfd639f15c74af777d81383cf53efb7c93613f6cab67c6c11e05bbf8b"
[[package]]
name = "bellman"
version = "0.11.1"
version = "0.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0944d18a9a37691b87733b39c9360c9950af9aa5f97e2455bc108d8eb64fc1c1"
checksum = "0d96d7f4f3dc9a699bdef1d19648f6f20ef966b51892d224582a4475be669cb5"
dependencies = [
"bitvec 0.22.3",
"blake2s_simd 0.5.11",
"bitvec",
"blake2s_simd",
"byteorder",
"crossbeam-channel",
"ff",
@ -174,28 +174,27 @@ version = "1.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
[[package]]
name = "bitvec"
version = "0.22.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5237f00a8c86130a0cc317830e558b966dd7850d48a953d998c813f01a41b527"
dependencies = [
"funty 1.2.0",
"radium 0.6.2",
"tap",
"wyz 0.4.0",
]
[[package]]
name = "bitvec"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1489fcb93a5bb47da0462ca93ad252ad6af2145cce58d10d46a83931ba9f016b"
dependencies = [
"funty 2.0.0",
"radium 0.7.0",
"funty",
"radium",
"tap",
"wyz 0.5.0",
"wyz",
]
[[package]]
name = "blake2b_simd"
version = "0.5.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "afa748e348ad3be8263be728124b24a24f268266f6f5d58af9d75f6a40b5c587"
dependencies = [
"arrayref",
"arrayvec 0.5.2",
"constant_time_eq",
]
[[package]]
@ -209,17 +208,6 @@ dependencies = [
"constant_time_eq",
]
[[package]]
name = "blake2s_simd"
version = "0.5.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9e461a7034e85b211a4acb57ee2e6730b32912b06c08cc242243c39fc21ae6a2"
dependencies = [
"arrayref",
"arrayvec 0.5.2",
"constant_time_eq",
]
[[package]]
name = "blake2s_simd"
version = "1.0.0"
@ -267,9 +255,9 @@ checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae"
[[package]]
name = "bls12_381"
version = "0.6.0"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6d28daeeded7949f1c7c72693377c98473b00be0aa0023760a84a300e4e7c74b"
checksum = "62250ece575fa9b22068b3a8d59586f01d426dd7785522efd97632959e71c986"
dependencies = [
"ff",
"group",
@ -564,27 +552,29 @@ checksum = "c34f04666d835ff5d62e058c3995147c06f42fe86ff053337632bca83e42702d"
[[package]]
name = "equihash"
version = "0.1.0"
source = "git+https://github.com/zcash/librustzcash.git?rev=68cbc2bb17b8967c7fb2f6034ac3d6174fc8f19b#68cbc2bb17b8967c7fb2f6034ac3d6174fc8f19b"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4127688f6177e3f57521881cb1cfd90d1228214f9dc43b8efe6f6c6948cd8280"
dependencies = [
"blake2b_simd",
"blake2b_simd 0.5.11",
"byteorder",
]
[[package]]
name = "f4jumble"
version = "0.0.0"
source = "git+https://github.com/zcash/librustzcash.git?rev=68cbc2bb17b8967c7fb2f6034ac3d6174fc8f19b#68cbc2bb17b8967c7fb2f6034ac3d6174fc8f19b"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0a83e8d7fd0c526af4aad893b7c9fe41e2699ed8a776a6c74aecdeafe05afc75"
dependencies = [
"blake2b_simd",
"blake2b_simd 1.0.0",
]
[[package]]
name = "ff"
version = "0.11.0"
version = "0.12.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b2958d04124b9f27f175eaeb9a9f383d026098aa837eadd8ba22c11f13a05b9e"
checksum = "df689201f395c6b90dfe87127685f8dbfc083a5e779e613575d8bd7314300c3e"
dependencies = [
"bitvec 0.22.3",
"bitvec",
"rand_core 0.6.3",
"subtle",
]
@ -621,12 +611,6 @@ dependencies = [
"num-traits",
]
[[package]]
name = "funty"
version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1847abb9cb65d566acd5942e94aea9c8f547ad02c98e1649326fc0e8910b8b1e"
[[package]]
name = "funty"
version = "2.0.0"
@ -706,9 +690,9 @@ checksum = "78cc372d058dcf6d5ecd98510e7fbc9e5aec4d21de70f65fea8fecebcd881bd4"
[[package]]
name = "group"
version = "0.11.0"
version = "0.12.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bc5ac374b108929de78460075f3dc439fa66df9d8fc77e8f12caa5165fcf0c89"
checksum = "7391856def869c1c81063a03457c676fbcd419709c3dfb33d8d319de484b154d"
dependencies = [
"byteorder",
"ff",
@ -738,11 +722,12 @@ dependencies = [
[[package]]
name = "halo2_gadgets"
version = "0.1.0-beta.3"
source = "git+https://github.com/zcash/halo2.git?rev=0c33fa4e6e41464884765c8fb4cefebafd300ca2#0c33fa4e6e41464884765c8fb4cefebafd300ca2"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "13f3914f58cc4af5e4fe83d48b02d582be18976bc7e96c3151aa2bf1c98e9f60"
dependencies = [
"arrayvec 0.7.2",
"bitvec 0.22.3",
"bitvec",
"ff",
"group",
"halo2_proofs",
@ -755,10 +740,11 @@ dependencies = [
[[package]]
name = "halo2_proofs"
version = "0.1.0-beta.4"
source = "git+https://github.com/zcash/halo2.git?rev=0c33fa4e6e41464884765c8fb4cefebafd300ca2#0c33fa4e6e41464884765c8fb4cefebafd300ca2"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e925780549adee8364c7f2b685c753f6f3df23bde520c67416e93bf615933760"
dependencies = [
"blake2b_simd",
"blake2b_simd 1.0.0",
"ff",
"group",
"pasta_curves",
@ -777,8 +763,9 @@ dependencies = [
[[package]]
name = "hdwallet"
version = "0.3.0"
source = "git+https://github.com/nuttycom/hdwallet.git?rev=9b4c1bdbe0517e3a7a8f285d6048a37d472ba3bc#9b4c1bdbe0517e3a7a8f285d6048a37d472ba3bc"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9cd89bf343be18dbe1e505100e48168bbd084760e842a8fed0317d2361470193"
dependencies = [
"lazy_static",
"rand_core 0.6.3",
@ -890,8 +877,9 @@ dependencies = [
[[package]]
name = "incrementalmerkletree"
version = "0.3.0-beta.2"
source = "git+https://github.com/zcash/incrementalmerkletree.git?rev=f23e3d89507849a24543121839eea6f40b141aff#f23e3d89507849a24543121839eea6f40b141aff"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "068c5bdd31006d55536655cf1eb0d22d84d28de7c725b419480fd5d005c83216"
dependencies = [
"serde",
]
@ -938,11 +926,11 @@ dependencies = [
[[package]]
name = "jubjub"
version = "0.8.0"
version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e2e7baec19d4e83f9145d4891178101a604565edff9645770fc979804138b04c"
checksum = "a575df5f985fe1cd5b2b05664ff6accfc46559032b954529fd225a2168d27b0f"
dependencies = [
"bitvec 0.22.3",
"bitvec",
"bls12_381",
"ff",
"group",
@ -975,8 +963,8 @@ dependencies = [
"anyhow",
"backtrace",
"bellman",
"blake2b_simd",
"blake2s_simd 1.0.0",
"blake2b_simd 1.0.0",
"blake2s_simd",
"bls12_381",
"byteorder",
"clearscreen",
@ -1287,12 +1275,13 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"
[[package]]
name = "orchard"
version = "0.1.0-beta.3"
source = "git+https://github.com/zcash/orchard.git?rev=a30caec124aa6c6e7818b5100293204425c49de3#a30caec124aa6c6e7818b5100293204425c49de3"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f918076e191a68d55c5517a16e075ecfe58fc63ed112408263f3d6194597bfcf"
dependencies = [
"aes",
"bitvec 0.22.3",
"blake2b_simd",
"bitvec",
"blake2b_simd 1.0.0",
"ff",
"fpe",
"group",
@ -1322,9 +1311,9 @@ dependencies = [
[[package]]
name = "pairing"
version = "0.21.0"
version = "0.22.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f2e415e349a3006dd7d9482cdab1c980a845bed1377777d768cb693a44540b42"
checksum = "135590d8bdba2b31346f9cd1fb2a912329f5135e832a4f422942eb6ead8b6b3b"
dependencies = [
"group",
]
@ -1336,7 +1325,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e8b44461635bbb1a0300f100a841e571e7d919c81c73075ef5d152ffdb521066"
dependencies = [
"arrayvec 0.7.2",
"bitvec 1.0.0",
"bitvec",
"byte-slice-cast",
"impl-trait-for-tuples",
"parity-scale-codec-derive",
@ -1393,11 +1382,11 @@ dependencies = [
[[package]]
name = "pasta_curves"
version = "0.3.0"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "82b6fc4f73033f6aa52fdde0c38f1f570e7f2c244f22e441f62a144556891b8c"
checksum = "369d7785168ad7ff0cbe467d968ca3e19a927d8536b11ef9c21b4e454b15ba42"
dependencies = [
"blake2b_simd",
"blake2b_simd 1.0.0",
"ff",
"group",
"lazy_static",
@ -1538,12 +1527,6 @@ dependencies = [
"proc-macro2",
]
[[package]]
name = "radium"
version = "0.6.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "643f8f41a8ebc4c5dc4515c82bb8abd397b527fc20fd681b7c011c2aee5d44fb"
[[package]]
name = "radium"
version = "0.7.0"
@ -1677,11 +1660,11 @@ dependencies = [
[[package]]
name = "reddsa"
version = "0.2.0"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5a2efaed2ccc184ca4f82ed083ec0afe700c6254acae3d7732fc50ef79d5cbe9"
checksum = "4cc8038c8b7e481bdf688d0585d4897ed0e9e0cee10aa365dde51238c20e4182"
dependencies = [
"blake2b_simd",
"blake2b_simd 1.0.0",
"byteorder",
"group",
"jubjub",
@ -2292,15 +2275,6 @@ version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
[[package]]
name = "wyz"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "129e027ad65ce1453680623c3fb5163cbf7107bfe1aa32257e7d0e63f9ced188"
dependencies = [
"tap",
]
[[package]]
name = "wyz"
version = "0.5.0"
@ -2312,8 +2286,9 @@ dependencies = [
[[package]]
name = "zcash_address"
version = "0.0.0"
source = "git+https://github.com/zcash/librustzcash.git?rev=68cbc2bb17b8967c7fb2f6034ac3d6174fc8f19b#68cbc2bb17b8967c7fb2f6034ac3d6174fc8f19b"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d1322a31b757f0087f110cc4a85dc5c6ccf83d0533bac04c4d3d1ce9112cc602"
dependencies = [
"bech32",
"bs58",
@ -2323,8 +2298,9 @@ dependencies = [
[[package]]
name = "zcash_encoding"
version = "0.0.0"
source = "git+https://github.com/zcash/librustzcash.git?rev=68cbc2bb17b8967c7fb2f6034ac3d6174fc8f19b#68cbc2bb17b8967c7fb2f6034ac3d6174fc8f19b"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9fb61ea88eb539bc0ac2068e5da99411dd4978595b3d7ff6a4b1562ddc8e8710"
dependencies = [
"byteorder",
"nonempty",
@ -2332,10 +2308,11 @@ dependencies = [
[[package]]
name = "zcash_history"
version = "0.2.0"
source = "git+https://github.com/zcash/librustzcash.git?rev=68cbc2bb17b8967c7fb2f6034ac3d6174fc8f19b#68cbc2bb17b8967c7fb2f6034ac3d6174fc8f19b"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eb611a28a4e13ac715ee712f4344d6b279b767daf6345dafefb2c4bf582b6679"
dependencies = [
"blake2b_simd",
"blake2b_simd 1.0.0",
"byteorder",
"primitive-types",
]
@ -2343,7 +2320,8 @@ dependencies = [
[[package]]
name = "zcash_note_encryption"
version = "0.1.0"
source = "git+https://github.com/zcash/librustzcash.git?rev=68cbc2bb17b8967c7fb2f6034ac3d6174fc8f19b#68cbc2bb17b8967c7fb2f6034ac3d6174fc8f19b"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "33f84ae538f05a8ac74c82527f06b77045ed9553a0871d9db036166a4c344e3a"
dependencies = [
"chacha20",
"chacha20poly1305",
@ -2353,14 +2331,15 @@ dependencies = [
[[package]]
name = "zcash_primitives"
version = "0.5.0"
source = "git+https://github.com/zcash/librustzcash.git?rev=68cbc2bb17b8967c7fb2f6034ac3d6174fc8f19b#68cbc2bb17b8967c7fb2f6034ac3d6174fc8f19b"
version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dcb1ef5719fb24b42450dcd6b10e6155793be5668f0d962ad8132b6e4d108635"
dependencies = [
"aes",
"bip0039",
"bitvec 0.22.3",
"blake2b_simd",
"blake2s_simd 1.0.0",
"bitvec",
"blake2b_simd 1.0.0",
"blake2s_simd",
"bls12_381",
"bs58",
"byteorder",
@ -2389,11 +2368,12 @@ dependencies = [
[[package]]
name = "zcash_proofs"
version = "0.5.0"
source = "git+https://github.com/zcash/librustzcash.git?rev=68cbc2bb17b8967c7fb2f6034ac3d6174fc8f19b#68cbc2bb17b8967c7fb2f6034ac3d6174fc8f19b"
version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e67054525b4897a97386ce562240f08ac9bcad07183130fe8d797224d712112d"
dependencies = [
"bellman",
"blake2b_simd",
"blake2b_simd 1.0.0",
"bls12_381",
"byteorder",
"directories",

View File

@ -30,30 +30,30 @@ name = "zcashd-wallet-tool"
path = "src/rust/bin/wallet_tool.rs"
[dependencies]
bellman = "0.11"
bellman = "0.13"
blake2b_simd = "1"
blake2s_simd = "1"
bls12_381 = "0.6"
bls12_381 = "0.7"
byteorder = "1"
group = "0.11"
incrementalmerkletree = "=0.3.0-beta.2"
group = "0.12"
incrementalmerkletree = "0.3"
libc = "0.2"
jubjub = "0.8"
jubjub = "0.9"
memuse = "0.2"
nonempty = "0.7"
orchard = "=0.1.0-beta.3"
orchard = "0.1"
secp256k1 = "0.21"
subtle = "2.2"
rand_core = "0.6"
tracing = "0.1"
tracing-core = "0.1"
tracing-appender = "0.2"
zcash_address = "0.0"
zcash_encoding = "0.0"
zcash_history = "0.2"
zcash_address = "0.1"
zcash_encoding = "0.1"
zcash_history = "0.3"
zcash_note_encryption = "0.1"
zcash_primitives = { version = "0.5", features = ["transparent-inputs"] }
zcash_proofs = "0.5"
zcash_primitives = { version = "0.6", features = ["transparent-inputs"] }
zcash_proofs = "0.6"
ed25519-zebra = "3"
zeroize = "1.4.2"
@ -82,16 +82,3 @@ features = ["ansi", "env-filter", "fmt", "time"]
lto = true
panic = 'abort'
codegen-units = 1
[patch.crates-io]
halo2_gadgets = { git = "https://github.com/zcash/halo2.git", rev = "0c33fa4e6e41464884765c8fb4cefebafd300ca2" }
halo2_proofs = { git = "https://github.com/zcash/halo2.git", rev = "0c33fa4e6e41464884765c8fb4cefebafd300ca2" }
hdwallet = { git = "https://github.com/nuttycom/hdwallet.git", rev = "9b4c1bdbe0517e3a7a8f285d6048a37d472ba3bc" }
incrementalmerkletree = { git = "https://github.com/zcash/incrementalmerkletree.git", rev = "f23e3d89507849a24543121839eea6f40b141aff" }
orchard = { git = "https://github.com/zcash/orchard.git", rev = "a30caec124aa6c6e7818b5100293204425c49de3" }
zcash_address = { git = "https://github.com/zcash/librustzcash.git", rev = "68cbc2bb17b8967c7fb2f6034ac3d6174fc8f19b" }
zcash_encoding = { git = "https://github.com/zcash/librustzcash.git", rev = "68cbc2bb17b8967c7fb2f6034ac3d6174fc8f19b" }
zcash_history = { git = "https://github.com/zcash/librustzcash.git", rev = "68cbc2bb17b8967c7fb2f6034ac3d6174fc8f19b" }
zcash_note_encryption = { git = "https://github.com/zcash/librustzcash.git", rev = "68cbc2bb17b8967c7fb2f6034ac3d6174fc8f19b" }
zcash_primitives = { git = "https://github.com/zcash/librustzcash.git", rev = "68cbc2bb17b8967c7fb2f6034ac3d6174fc8f19b" }
zcash_proofs = { git = "https://github.com/zcash/librustzcash.git", rev = "68cbc2bb17b8967c7fb2f6034ac3d6174fc8f19b" }

View File

@ -1,4 +1,4 @@
Zcash 4.7.0
Zcash 5.0.0
<img align="right" width="120" height="80" src="doc/imgs/logo.png">
===========

View File

@ -1,7 +1,7 @@
dnl require autoconf 2.60 (AS_ECHO/AS_ECHO_N)
AC_PREREQ([2.60])
define(_CLIENT_VERSION_MAJOR, 4)
define(_CLIENT_VERSION_MINOR, 7)
define(_CLIENT_VERSION_MAJOR, 5)
define(_CLIENT_VERSION_MINOR, 0)
define(_CLIENT_VERSION_REVISION, 0)
define(_CLIENT_VERSION_BUILD, 50)
define(_ZC_BUILD_VAL, m4_if(m4_eval(_CLIENT_VERSION_BUILD < 25), 1, m4_incr(_CLIENT_VERSION_BUILD), m4_eval(_CLIENT_VERSION_BUILD < 50), 1, m4_eval(_CLIENT_VERSION_BUILD - 24), m4_eval(_CLIENT_VERSION_BUILD == 50), 1, , m4_eval(_CLIENT_VERSION_BUILD - 50)))

View File

@ -1,3 +1,15 @@
zcash (5.0.0) stable; urgency=medium
* 5.0.0 release.
-- Electric Coin Company <team@electriccoin.co> Tue, 10 May 2022 19:52:28 -0600
zcash (5.0.0~rc1) stable; urgency=medium
* 5.0.0-rc1 release.
-- Electric Coin Company <team@electriccoin.co> Mon, 09 May 2022 15:35:33 +0000
zcash (4.7.0) stable; urgency=medium
* 4.7.0 release.

View File

@ -1,5 +1,5 @@
---
name: "zcash-4.7.0"
name: "zcash-5.0.0"
enable_cache: true
distro: "debian"
suites:

View File

@ -1,31 +1,31 @@
Zcash Contributors
==================
Jack Grigg (1137)
Kris Nuttycombe (484)
Jack Grigg (1142)
Kris Nuttycombe (524)
Simon Liu (460)
Sean Bowe (379)
Daira Hopwood (316)
Daira Hopwood (325)
Eirik Ogilvie-Wigley (216)
Wladimir J. van der Laan (150)
Alfredo Garcia (119)
Taylor Hornby (117)
Taylor Hornby (118)
Marshall Gaucher (112)
Pieter Wuille (106)
Jonas Schnelli (90)
Jay Graber (89)
Larry Ruane (88)
Ying Tong Lai (87)
Larry Ruane (86)
Marco Falke (82)
Cory Fields (75)
Nathan Wilcox (56)
Matt Corallo (52)
sasha (51)
practicalswift (38)
Kevin Gallagher (38)
Dimitris Apostolou (37)
Dimitris Apostolou (38)
fanquake (36)
Carl Dong (26)
sasha (23)
Gregory Maxwell (23)
Jorge Timón (22)
John Newbery (22)
@ -34,10 +34,11 @@ Jonathan "Duke" Leto (18)
syd (16)
Patick Strateman (16)
furszy (15)
Charlie O'Keefe (15)
avnish (14)
Per Grön (14)
Charlie O'Keefe (14)
Benjamin Winston (13)
Steven Smith (12)
Pavel Janík (12)
Patrick Strateman (12)
Ariel Gabizon (12)
@ -45,14 +46,13 @@ Suhas Daftuar (11)
Paige Peterson (11)
Kaz Wesley (11)
Alex Morcos (11)
Steven Smith (10)
Philip Kaufmann (10)
Peter Todd (10)
Marius Kjærstad (10)
João Barbosa (10)
ying tong (9)
teor (9)
nomnombtc (9)
teor (8)
kozyilmaz (8)
Zancas Wilcox (8)
Jeremy Rubin (8)
@ -73,13 +73,13 @@ Johnathan Corgan (5)
George Tankersley (5)
Gavin Andresen (5)
Gareth Davies (5)
Alex Wied (5)
sandakersmann (4)
gladcow (4)
WO (4)
Sjors Provoost (4)
Russell Yanofsky (4)
Nate Wilcox (4)
Alex Wied (4)
mruddy (3)
lpescher (3)
isle2983 (3)
@ -119,6 +119,7 @@ Pavel Vasin (2)
Mustafa (2)
Matthew King (2)
Mary Moore-Simmons (2)
Marek (2)
Joe Turgeon (2)
Jeffrey Czyz (2)
Jack Gavigan (2)
@ -153,6 +154,7 @@ glowang (1)
ewillbefull@gmail.com (1)
emilrus (1)
dexX7 (1)
dependabot[bot] (1)
daniel (1)
codetriage-readme-bot (1)
calebogden (1)

View File

@ -45,7 +45,11 @@ default as of release 5.3.0.
conform to the `FullPrivacy` directive in all cases instead of just for
transactions involving unified addresses.
- `getnewaddress` - The `getnewaddress` RPC method is deprecated.
- `getrawchangeaddress` - The `getrawchangeaddress` RPC method is deprecated.
- `z_getbalance` - The `z_getbalance` RPC method is deprecated.
- `z_gettotalbalance` - The `z_gettotalbalance` RPC method is deprecated.
- `z_getnewaddress` - The `z_getnewaddress` RPC method is deprecated.
- `z_listaddresses` - The `z_listaddresses` RPC method is deprecated.
- `addrtype` - The `type` attribute is deprecated in the results of RPC
methods that return address metadata. It is recommended that applications
using this metadata be updated to use the `pool` or `address_type`

View File

@ -1,9 +1,9 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.48.4.
.TH ZCASH-CLI "1" "April 2022" "zcash-cli v4.7.0" "User Commands"
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.1.
.TH ZCASH-CLI "1" "May 2022" "zcash-cli v5.0.0" "User Commands"
.SH NAME
zcash-cli \- manual page for zcash-cli v4.7.0
zcash-cli \- manual page for zcash-cli v5.0.0
.SH DESCRIPTION
Zcash RPC client version v4.7.0
Zcash RPC client version v5.0.0
.PP
In order to ensure you are adequately protecting your privacy when using Zcash,
please see <https://z.cash/support/security/>.

View File

@ -1,9 +1,9 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.48.4.
.TH ZCASH-TX "1" "April 2022" "zcash-tx v4.7.0" "User Commands"
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.1.
.TH ZCASH-TX "1" "May 2022" "zcash-tx v5.0.0" "User Commands"
.SH NAME
zcash-tx \- manual page for zcash-tx v4.7.0
zcash-tx \- manual page for zcash-tx v5.0.0
.SH DESCRIPTION
Zcash zcash\-tx utility version v4.7.0
Zcash zcash\-tx utility version v5.0.0
.SS "Usage:"
.TP
zcash\-tx [options] <hex\-tx> [commands]

View File

@ -1,7 +1,7 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.48.4.
.TH ZCASHD-WALLET-TOOL "1" "April 2022" "zcashd-wallet-tool v4.7.0" "User Commands"
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.1.
.TH ZCASHD-WALLET-TOOL "1" "May 2022" "zcashd-wallet-tool v5.0.0" "User Commands"
.SH NAME
zcashd-wallet-tool \- manual page for zcashd-wallet-tool v4.7.0
zcashd-wallet-tool \- manual page for zcashd-wallet-tool v5.0.0
.SH SYNOPSIS
.B zcashd-wallet-tool
[\fI\,OPTIONS\/\fR]

View File

@ -1,9 +1,9 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.48.4.
.TH ZCASHD "1" "April 2022" "zcashd v4.7.0" "User Commands"
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.1.
.TH ZCASHD "1" "May 2022" "zcashd v5.0.0" "User Commands"
.SH NAME
zcashd \- manual page for zcashd v4.7.0
zcashd \- manual page for zcashd v5.0.0
.SH DESCRIPTION
Zcash Daemon version v4.7.0
Zcash Daemon version v5.0.0
.PP
In order to ensure you are adequately protecting your privacy when using Zcash,
please see <https://z.cash/support/security/>.
@ -26,6 +26,15 @@ Receive and display P2P network alerts (default: 1)
Execute command when a relevant alert is received or we see a really
long fork (%s in cmd is replaced by message)
.HP
\fB\-allowdeprecated=\fR<feature>
.IP
Explicitly allow the use of the specified deprecated feature. Multiple
instances of this parameter are permitted; values for <feature> must be
selected from among {"none", "addrtype", "getnewaddress",
"getrawchangeaddress", "legacy_privacy", "z_getbalance",
"z_getnewaddress", "z_gettotalbalance", "z_listaddresses",
"zcrawjoinsplit", "zcrawkeygen", "zcrawreceive"}
.HP
\fB\-blocknotify=\fR<cmd>
.IP
Execute command when the best block changes (%s in cmd is replaced by
@ -101,11 +110,14 @@ for block files)
.HP
\fB\-reindex\-chainstate\fR
.IP
Rebuild chain state from the currently indexed blocks
Rebuild chain state from the currently indexed blocks (implies \fB\-rescan\fR
unless pruning or unless \fB\-rescan\fR=\fI\,0\/\fR is explicitly specified)
.HP
\fB\-reindex\fR
.IP
Rebuild chain state and block index from the blk*.dat files on disk
(implies \fB\-rescan\fR unless pruning or unless \fB\-rescan\fR=\fI\,0\/\fR is explicitly
specified)
.HP
\fB\-sysperms\fR
.IP
@ -298,6 +310,11 @@ Set the Sapling migration address
Fees (in ZEC/kB) smaller than this are considered zero fee for
transaction creation (default: 0.00001)
.HP
\fB\-orchardactionlimit=\fR<n>
.IP
Set the maximum number of Orchard actions permitted in a transaction
(default 50)
.HP
\fB\-paytxfee=\fR<amt>
.IP
Fee (in ZEC/kB) to add to transactions you send (default: 0.00)
@ -309,6 +326,7 @@ Rescan the block chain for missing wallet transactions on startup
\fB\-salvagewallet\fR
.IP
Attempt to recover private keys from a corrupt wallet on startup
(implies \fB\-rescan\fR)
.HP
\fB\-sendfreetransactions\fR
.IP

View File

@ -4,103 +4,3 @@ release-notes at release time)
Notable changes
===============
Feature Deprecation and removal
-------------------------------
`zcashd` now has a [process](https://zcash.github.io/zcash/user/deprecation.html)
for how features of the public API may be deprecated and removed. Feature
deprecation follows a series of steps whereby, over a series of releases,
features first remain enabled by default (but may be explicitly disabled), then
switch to being disabled by default, and eventually are removed entirely.
A new string-valued option, `-allowdeprecated` has been introduced to allow a
user to explicitly manage the availability of deprecated `zcashd` features. This
flag makes it possible for users to reenable deprecated methods and features
api that are currently disabled by default, or alternately to explicitly
disable all deprecated features if they so choose. Multiple instances of this
argument may be provided. A user may disable deprecated features entirely
by providing the string `none` as the argument to this parameter. In the case
that `none` is specified, multiple invocations of `-allowdeprecated` are not
permitted.
Deprecated
----------
As of this release, the following features are deprecated, but remain
available by default. These features may be disabled by setting
`-allowdeprecated=none`. After release 5.3.0, these features will be
disabled by default and the following flags to `-allowdeprecated` will
be required to permit their continued use:
- `legacy_privacy` - the default "legacy" privacy policy for z_sendmany
is deprecated. When disabled, the default behavior of z_sendmany will
conform to the `FullPrivacy` directive (introduced in 4.7.0) in all cases
instead of just for transactions involving unified addresses.
- `getnewaddress` - controls availability of the `getnewaddress` RPC method.
- `z_getnewaddress` - controls availability of the `z_getnewaddress` RPC method.
- `addrtype` - controls availability of the deprecated `type` attribute
returned by RPC methods that return address metadata.
As of this release, the following previously deprecated features are disabled
by default, but may be be reenabled using `-allowdeprecated=<feature>`.
- The `zcrawreceive` RPC method is disabled. It may be reenabled with
`allowdeprecated=zcrawreceive`
- The `zcrawjoinsplit` RPC method is disabled. It may be reenabled with
`allowdeprecated=zcrawjoinsplit`
- The `zcrawkeygen` RPC method is disabled. It may be reenabled with
`allowdeprecated=zcrawkeygen`
Option handling
---------------
- The `-reindex` and `-reindex-chainstate` options now imply `-rescan`
(provided that the wallet is enabled and pruning is disabled, and unless
`-rescan=0` is specified explicitly).
- A new `-anchorconfirmations` argument has been added to allow the user
to specify the number of blocks back from the chain tip that anchors will be
selected from when spending notes. By default, anchors will now be selected
to have 3 confirmations. Values greater than 100 are not supported.
- A new `-orchardactionlimit` option has been added to allow the user to
override the default maximum of 50 Orchard actions per transaction.
Transactions that contain large numbers of Orchard actions can use
large amounts of memory for proving, so the 50-action default limit is
imposed to guard against memory exhaustion. Systems with more than 16G
of memory can safely set this parameter to allow 200 actions or more.
RPC Interface
-------------
- The default `minconf` value for `z_sendmany` is now 10 confirmations instead
of 1. If `minconf` and specifies a value less than that provided for
`-anchorconfirmations`, it will also override that value as it is not
possible to spend notes that are more recent than the anchor. Selecting
`minconf` values less than 3 is not recommended, as it allows the transaction
to be distinguished from transactions using the default for
`-anchorconfirmations`.
RPC Changes
-----------
- The deprecated `zcrawkeygen`, `zcrawreceive`, and `zcrawjoinsplit` RPC
methods are now disabled by default. Use `-allowdeprecated=<feature>`
to select individual features if you wish to continue using these APIs.
Build system
------------
- `zcutil/build.sh` now automatically runs `zcutil/clean.sh` to remove
files created by previous builds. We previously recommended to do this
manually.
Dependencies
------------
- The `boost` and `native_b2` dependencies have been updated to version 1.79.0
Tests
-----
- The environment variable that allows users of the rpc (Python) tests to
override the default path to the `zcashd` executable has been changed
from `BITCOIND` to `ZCASHD`.

View File

@ -0,0 +1,215 @@
Notable changes
===============
Feature Deprecation and removal
-------------------------------
`zcashd` now has a [process](https://zcash.github.io/zcash/user/deprecation.html)
for how features of the public API may be deprecated and removed. Feature
deprecation follows a series of steps whereby, over a series of releases,
features first remain enabled by default (but may be explicitly disabled), then
switch to being disabled by default, and eventually are removed entirely.
A new string-valued option, `-allowdeprecated` has been introduced to allow a
user to explicitly manage the availability of deprecated `zcashd` features. This
flag makes it possible for users to reenable deprecated methods and features
api that are currently disabled by default, or alternately to explicitly
disable all deprecated features if they so choose. Multiple instances of this
argument may be provided. A user may disable deprecated features entirely
by providing the string `none` as the argument to this parameter. In the case
that `none` is specified, multiple invocations of `-allowdeprecated` are not
permitted.
Deprecated
----------
As of this release, the following features are deprecated, but remain
available by default. These features may be disabled by setting
`-allowdeprecated=none`. After release 5.3.0, these features will be
disabled by default and the following flags to `-allowdeprecated` will
be required to permit their continued use:
- `legacy_privacy` - the default "legacy" privacy policy for z_sendmany
is deprecated. When disabled, the default behavior of z_sendmany will
conform to the `FullPrivacy` directive (introduced in 4.7.0) in all cases
instead of just for transactions involving unified addresses.
- `getnewaddress` - controls availability of the `getnewaddress` RPC method.
- `z_getnewaddress` - controls availability of the `z_getnewaddress` RPC method.
- `addrtype` - controls availability of the deprecated `type` attribute
returned by RPC methods that return address metadata.
As of this release, the following previously deprecated features are disabled
by default, but may be be reenabled using `-allowdeprecated=<feature>`.
- The `zcrawreceive` RPC method is disabled. It may be reenabled with
`allowdeprecated=zcrawreceive`
- The `zcrawjoinsplit` RPC method is disabled. It may be reenabled with
`allowdeprecated=zcrawjoinsplit`
- The `zcrawkeygen` RPC method is disabled. It may be reenabled with
`allowdeprecated=zcrawkeygen`
Option handling
---------------
- The `-reindex` and `-reindex-chainstate` options now imply `-rescan`
(provided that the wallet is enabled and pruning is disabled, and unless
`-rescan=0` is specified explicitly).
- A new `-anchorconfirmations` argument has been added to allow the user
to specify the number of blocks back from the chain tip that anchors will be
selected from when spending notes. By default, anchors will now be selected
to have 3 confirmations. Values greater than 100 are not supported.
- A new `-orchardactionlimit` option has been added to allow the user to
override the default maximum of 50 Orchard actions per transaction.
Transactions that contain large numbers of Orchard actions can use
large amounts of memory for proving, so the 50-action default limit is
imposed to guard against memory exhaustion. Systems with more than 16G
of memory can safely set this parameter to allow 200 actions or more.
RPC Interface
-------------
- The default `minconf` value for `z_sendmany` is now 10 confirmations instead
of 1. If `minconf` and specifies a value less than that provided for
`-anchorconfirmations`, it will also override that value as it is not
possible to spend notes that are more recent than the anchor. Selecting
`minconf` values less than 3 is not recommended, as it allows the transaction
to be distinguished from transactions using the default for
`-anchorconfirmations`.
RPC Changes
-----------
- The deprecated `zcrawkeygen`, `zcrawreceive`, and `zcrawjoinsplit` RPC
methods are now disabled by default. Use `-allowdeprecated=<feature>`
to select individual features if you wish to continue using these APIs.
Build system
------------
- `zcutil/build.sh` now automatically runs `zcutil/clean.sh` to remove
files created by previous builds. We previously recommended to do this
manually.
Dependencies
------------
- The `boost` and `native_b2` dependencies have been updated to version 1.79.0
Tests
-----
- The environment variable that allows users of the rpc (Python) tests to
override the default path to the `zcashd` executable has been changed
from `BITCOIND` to `ZCASHD`.
Changelog
=========
Alex Wied (1):
Cargo.toml: Rename hdwallet source
Charlie O'Keefe (1):
Use bullseye apt source in Dockerfile to match debian:11 base image
Daira Hopwood (9):
Fix to 4.7.0 release notes: testnet nodes that upgrade prior to height 1,842,420 actually still need to run with -reindex and -rescan.
zcutil/build.sh: Run zcutil/clean.sh before building. fixes #3625
Make `-reindex` and `-reindex-chainstate` imply `-rescan` (provided that the wallet is enabled and pruning is disabled, and unless `-rescan=0` is specified explicitly).
zcutil/build-debian-package.sh: copy executable and man page for zcashd-wallet-tool.
zcashd-wallet-tool: improve the error message for an invalid logging filter directive.
Change the numbering convention for hotfixes to increment the patch number, not the hyphen number. fixes #4364
Rename nOrchardAnchorConfirmations -> nAnchorConfirmations
Select an anchor and notes that have 10 confirmations.
Fix WalletTests.CachedWitnessesEmptyChain for new anchor selection.
Dimitris Apostolou (1):
Fix typo
Jack Grigg (3):
Update minimum chain work and set NU5 activation block hash for testnet
make-release.py: Versioning changes for 5.0.0-rc1.
make-release.py: Updated manpages for 5.0.0-rc1.
Kris Nuttycombe (30):
Update boost dependencies to version 1.79.0
Default to error logging if we can't parse the log filter.
Fix boolean initialization in Orchard transaction builder.
Use fallible version parsing for tags.
Allow deprecated wallet features to be preemptively disabled.
Remove zcrawreceive, zcrawjoinsplit, zcrawkeygen from default-allowed deprecated methods.
Add deprecation policy to the zcashd book.
Use ERROR level logging for fatal errors in main/init
Remove `-allowdeprecated=all`
Clarify documentation of the deprecation process.
Select Orchard anchors at `-orchardanchorconfirmations` depth.
Add anchor depth parameter to Get*NoteWitnesses
Disallow -anchorconfirmations values > 100
Add -anchorconfirmations to the release notes
Fix RPC tests that depend upon -anchorconfirmations=1
Apply suggestions from code review
Gracefully handle Get(Sprout/Sapling)NoteWitnesses failure.
Add parity-scale-codec licenses to contrib/debian/copyright
Ensure transaction integer fields are zero-initialized.
Build releases from a commit hash, rather than a named branch.
Apply suggestions from code review
Update release process documentation to clarify the use of release stabilization branches.
Fix missing handling for imported transparent multisig addresses.
Change default anchor depth from 10 confirmations to 3
Use default anchor confirmations for minconf in z_mergetoaddress.
Add -orchardactionlimit parameter to guard against memory exhaustion.
Add -orchardactionlimit help text.
Postpone dependency updates prior to v5.0.0-rc1
Set RELEASE_TO_DEPRECATION_WEEKS to 2 weeks to provide RC EOS halt.
Fix a typo in the release script.
Larry Ruane (2):
Allow rpc python tests to be run standalone
ThreadStartWalletNotifier: wait until !IBD, rather than !reindex
Marek (2):
Document the block time in the `z_gettreestate` RPC response
Specify the format and epoch
Steven Smith (2):
Add orchard pool metrics
Require wallet recovery phrase to be backed up for z_getnewaccount and z_getaddressforaccount
Taylor Hornby (1):
Reproduce an assertion failure in the listaddresses RPC
dependabot[bot] (1):
Bump actions/checkout from 2 to 3
sasha (28):
Move LoadProofParameters to gtest/utils.cpp
add tx-orchard-duplicate-nullifiers.h to Makefile.gtest.include
Closing #1539 simplifies gtest Makefile.
remove JoinSplitTestingSetup from sighash_tests -- it doesn't need it
Make a LoadGlobalWallet and UnloadGlobalWallet for gtests
Remove proof parameter loading from btests
Separate test suite from tests, inspired by upstream's #12926
Allow parallel btest runs using make as the parallelization tool.
btest parallelization work: tag #if'd out test suites
Port btest test_basic_joinsplit_verification to gtest suite Joinsplit
Create a new gtest group WalletRPCTests
Port btest rpc_z_shieldcoinbase_internals to gtest suite WalletRPCTests
Port btest rpc_z_mergetoaddress_internals to gtest suite WalletRPCTests
Port btest rpc_z_sendmany_taddr_to_sapling to gtest suite WalletRPCTests
Downgrade btest suite coins_test to BasicTestingSetup
Make [seed_]insecure_rand available to the gtests
Create a new gtest suite CoinsTests
Port CCoinsViewTest to gtest suite CoinsTests
Port nullifier_regression_test to gtest suite CoinsTests
Port anchor_pop_regression_test to gtest suite CoinsTests
Port anchor_regression_test to gtest suite CoinsTests
Port nullifiers_test to gtest suite CoinsTests
Port anchors_flush_test to gtest suite CoinsTests
Port anchors_test to gtest suite CoinsTests
Update copyright header
Update comments in newly-ported gtests to be more consistent with current codebase
Tidy up spacing in newly-ported gtests
Remove -developersapling since it hasn't been implemented for a long time
teor (1):
Fix typo in getaddressbalance RPC help

View File

@ -0,0 +1,253 @@
Notable changes
===============
The mainnet activation of the NU5 network upgrade is supported by the 5.0.0
release, with an activation height of 1687104, which should occur on
approximately May 31, 2022. Please upgrade to this release, or any subsequent
release, in order to follow the NU5 network upgrade.
The following ZIPs are being deployed, or have been updated, as part of this upgrade:
* [ZIP 32 : Shielded Hierarchical Deterministic Wallets (updated)](https://zips.z.cash/zip_0032)
* [ZIP 203: Transaction Expiry (updated)](https://zips.z.cash/zip_0203)
* [ZIP 209: Prohibit Negative Shielded Chain Value Pool Balances (updated)](https://zips.z.cash/zip_0209)
* [ZIP 212: Allow Recipient to Derive Ephemeral Secret from Note Plaintext (updated)](https://zips.z.cash/zip_0212)
* [ZIP 213: Shielded Coinbase (updated)](https://zips.z.cash/zip_0213)
* [ZIP 216: Require Canonical Jubjub Point Encodings](https://zips.z.cash/zip_0216)
* [ZIP 221: FlyClient - Consensus-Layer Changes (updated)](https://zips.z.cash/zip_0221)
* [ZIP 224: Orchard Shielded Protocol](https://zips.z.cash/zip_0224)
* [ZIP 225: Version 5 Transaction Format](https://zips.z.cash/zip_0225)
* [ZIP 239: Relay of Version 5 Transactions](https://zips.z.cash/zip_0239)
* [ZIP 244: Transaction Identifier Non-Malleability](https://zips.z.cash/zip_0244)
* [ZIP 252: Deployment of the NU5 Network Upgrade](https://zips.z.cash/zip_0252)
* [ZIP 316: Unified Addresses and Unified Viewing Keys](https://zips.z.cash/zip_0316)
* [ZIP 401: Addressing Mempool Denial-of-Service (clarified)](https://zips.z.cash/zip_0401)
Feature Deprecation and removal
-------------------------------
`zcashd` now has a [process](https://zcash.github.io/zcash/user/deprecation.html)
for how features of the public API may be deprecated and removed. Feature
deprecation follows a series of steps whereby, over a series of releases,
features first remain enabled by default (but may be explicitly disabled), then
switch to being disabled by default, and eventually are removed entirely.
A new string-valued option, `-allowdeprecated` has been introduced to allow a
user to explicitly manage the availability of deprecated `zcashd` features. This
flag makes it possible for users to reenable deprecated methods and features
api that are currently disabled by default, or alternately to explicitly
disable all deprecated features if they so choose. Multiple instances of this
argument may be provided. A user may disable deprecated features entirely
by providing the string `none` as the argument to this parameter. In the case
that `none` is specified, multiple invocations of `-allowdeprecated` are not
permitted.
Deprecated
----------
As of this release, the following features are deprecated, but remain
available by default. These features may be disabled by setting
`-allowdeprecated=none`. After release 5.3.0, these features will be
disabled by default and the following flags to `-allowdeprecated` will
be required to permit their continued use:
- `legacy_privacy` - the default "legacy" privacy policy for z_sendmany
is deprecated. When disabled, the default behavior of z_sendmany will
conform to the `FullPrivacy` directive (introduced in 4.7.0) in all cases
instead of just for transactions involving unified addresses.
- `getnewaddress` - controls availability of the `getnewaddress` RPC method.
- `getrawchangeaddress` - controls availability of the `getrawchangeaddress` RPC method.
- `z_getbalance` - controls availability of the `z_getbalance` RPC method.
- `z_gettotalbalance` - controls availability of the `z_gettotalbalance` RPC method.
- `z_getnewaddress` - controls availability of the `z_getnewaddress` RPC method.
- `z_listaddresses` - controls availability of the `z_listaddresses` RPC method.
- `addrtype` - controls availability of the deprecated `type` attribute
returned by RPC methods that return address metadata.
As of this release, the following previously deprecated features are disabled
by default, but may be be reenabled using `-allowdeprecated=<feature>`.
- The `zcrawreceive` RPC method is disabled. It may be reenabled with
`allowdeprecated=zcrawreceive`
- The `zcrawjoinsplit` RPC method is disabled. It may be reenabled with
`allowdeprecated=zcrawjoinsplit`
- The `zcrawkeygen` RPC method is disabled. It may be reenabled with
`allowdeprecated=zcrawkeygen`
Option handling
---------------
- The `-reindex` and `-reindex-chainstate` options now imply `-rescan`
(provided that the wallet is enabled and pruning is disabled, and unless
`-rescan=0` is specified explicitly).
- A new `-anchorconfirmations` argument has been added to allow the user
to specify the number of blocks back from the chain tip that anchors will be
selected from when spending notes. By default, anchors will now be selected
to have 3 confirmations. Values greater than 100 are not supported.
- A new `-orchardactionlimit` option has been added to allow the user to
override the default maximum of 50 Orchard actions per transaction.
Transactions that contain large numbers of Orchard actions can use
large amounts of memory for proving, so the 50-action default limit is
imposed to guard against memory exhaustion. Systems with more than 16G
of memory can safely set this parameter to allow 200 actions or more.
RPC Interface
-------------
- The default `minconf` value for `z_sendmany` is now 10 confirmations instead
of 1. If `minconf` specifies a value less than that provided for
`-anchorconfirmations`, it will also override that value as it is not
possible to spend notes that are more recent than the anchor. Selecting
`minconf` values less than 3 is not recommended, as it allows the transaction
to be distinguished from transactions using the default for
`-anchorconfirmations`.
RPC Changes
-----------
- The deprecated `zcrawkeygen`, `zcrawreceive`, and `zcrawjoinsplit` RPC
methods are now disabled by default. Use `-allowdeprecated=<feature>`
to select individual features if you wish to continue using these APIs.
Build system
------------
- `zcutil/build.sh` now automatically runs `zcutil/clean.sh` to remove
files created by previous builds. We previously recommended to do this
manually.
Dependencies
------------
- The `boost` and `native_b2` dependencies have been updated to version 1.79.0
Tests
-----
- The environment variable that allows users of the rpc (Python) tests to
override the default path to the `zcashd` executable has been changed
from `BITCOIND` to `ZCASHD`.
Changelog
=========
Alex Wied (1):
Cargo.toml: Rename hdwallet source
Charlie O'Keefe (1):
Use bullseye apt source in Dockerfile to match debian:11 base image
Daira Hopwood (9):
Fix to 4.7.0 release notes: testnet nodes that upgrade prior to height 1,842,420 actually still need to run with -reindex and -rescan.
zcutil/build.sh: Run zcutil/clean.sh before building. fixes #3625
Make `-reindex` and `-reindex-chainstate` imply `-rescan` (provided that the wallet is enabled and pruning is disabled, and unless `-rescan=0` is specified explicitly).
zcutil/build-debian-package.sh: copy executable and man page for zcashd-wallet-tool.
zcashd-wallet-tool: improve the error message for an invalid logging filter directive.
Change the numbering convention for hotfixes to increment the patch number, not the hyphen number. fixes #4364
Rename nOrchardAnchorConfirmations -> nAnchorConfirmations
Select an anchor and notes that have 10 confirmations.
Fix WalletTests.CachedWitnessesEmptyChain for new anchor selection.
Dimitris Apostolou (1):
Fix typo
Jack Grigg (5):
Update minimum chain work and set NU5 activation block hash for testnet
make-release.py: Versioning changes for 5.0.0-rc1.
make-release.py: Updated manpages for 5.0.0-rc1.
make-release.py: Updated release notes and changelog for 5.0.0-rc1.
Migrate to `zcash_primitives 0.6` et al
Kris Nuttycombe (40):
Update boost dependencies to version 1.79.0
Default to error logging if we can't parse the log filter.
Fix boolean initialization in Orchard transaction builder.
Use fallible version parsing for tags.
Allow deprecated wallet features to be preemptively disabled.
Remove zcrawreceive, zcrawjoinsplit, zcrawkeygen from default-allowed deprecated methods.
Add deprecation policy to the zcashd book.
Use ERROR level logging for fatal errors in main/init
Remove `-allowdeprecated=all`
Clarify documentation of the deprecation process.
Select Orchard anchors at `-orchardanchorconfirmations` depth.
Add anchor depth parameter to Get*NoteWitnesses
Disallow -anchorconfirmations values > 100
Add -anchorconfirmations to the release notes
Fix RPC tests that depend upon -anchorconfirmations=1
Add z_get(total)balance to deprecation flags.
Apply suggestions from code review
Gracefully handle Get(Sprout/Sapling)NoteWitnesses failure.
Add parity-scale-codec licenses to contrib/debian/copyright
Ensure transaction integer fields are zero-initialized.
Build releases from a commit hash, rather than a named branch.
Apply suggestions from code review
Update release process documentation to clarify the use of release stabilization branches.
Fix missing handling for imported transparent multisig addresses.
Change default anchor depth from 10 confirmations to 3
Use default anchor confirmations for minconf in z_mergetoaddress.
Add -orchardactionlimit parameter to guard against memory exhaustion.
Add -orchardactionlimit help text.
Postpone dependency updates prior to v5.0.0-rc1
Set RELEASE_TO_DEPRECATION_WEEKS to 2 weeks to provide RC EOS halt.
Fix a typo in the release script.
Fix typos in release notes & Orchard wallet internal API doc.
Add missing parenthesis to -reindex help.
Include getbalance in recommendations for z_getbalance and z_gettotalbalance replacements.
Add tests to check auth data commitments committing to Orchard actions.
Deprecate `getrawchangeaddress` and `z_listaddresses`
Update rpcwallet help to better distinguish transparent-only APIs.
Revert "Set RELEASE_TO_DEPRECATION_WEEKS to 2 weeks to provide RC EOS halt."
make-release.py: Versioning changes for 5.0.0.
make-release.py: Updated manpages for 5.0.0.
Larry Ruane (2):
Allow rpc python tests to be run standalone
ThreadStartWalletNotifier: wait until !IBD, rather than !reindex
Marek (2):
Document the block time in the `z_gettreestate` RPC response
Specify the format and epoch
Steven Smith (2):
Add orchard pool metrics
Require wallet recovery phrase to be backed up for z_getnewaccount and z_getaddressforaccount
Taylor Hornby (1):
Reproduce an assertion failure in the listaddresses RPC
dependabot[bot] (1):
Bump actions/checkout from 2 to 3
sasha (28):
Move LoadProofParameters to gtest/utils.cpp
add tx-orchard-duplicate-nullifiers.h to Makefile.gtest.include
Closing #1539 simplifies gtest Makefile.
remove JoinSplitTestingSetup from sighash_tests -- it doesn't need it
Make a LoadGlobalWallet and UnloadGlobalWallet for gtests
Remove proof parameter loading from btests
Separate test suite from tests, inspired by upstream's #12926
Allow parallel btest runs using make as the parallelization tool.
btest parallelization work: tag #if'd out test suites
Port btest test_basic_joinsplit_verification to gtest suite Joinsplit
Create a new gtest group WalletRPCTests
Port btest rpc_z_shieldcoinbase_internals to gtest suite WalletRPCTests
Port btest rpc_z_mergetoaddress_internals to gtest suite WalletRPCTests
Port btest rpc_z_sendmany_taddr_to_sapling to gtest suite WalletRPCTests
Downgrade btest suite coins_test to BasicTestingSetup
Make [seed_]insecure_rand available to the gtests
Create a new gtest suite CoinsTests
Port CCoinsViewTest to gtest suite CoinsTests
Port nullifier_regression_test to gtest suite CoinsTests
Port anchor_pop_regression_test to gtest suite CoinsTests
Port anchor_regression_test to gtest suite CoinsTests
Port nullifiers_test to gtest suite CoinsTests
Port anchors_flush_test to gtest suite CoinsTests
Port anchors_test to gtest suite CoinsTests
Update copyright header
Update comments in newly-ported gtests to be more consistent with current codebase
Tidy up spacing in newly-ported gtests
Remove -developersapling since it hasn't been implemented for a long time
teor (1):
Fix typo in getaddressbalance RPC help

View File

@ -97,7 +97,7 @@ Having identified the commit from which the release will be made, the release
manager constructs the release stabilization branch as follows:
$ git checkout -b version-X.Y.0 <COMMIT_ID>
$ git push 'git@github.com:zcash/zcash' $(git rev-parse --abrev-ref HEAD)
$ git push 'git@github.com:zcash/zcash' $(git rev-parse --abbrev-ref HEAD)
### Create the release candidate branch

View File

@ -10,6 +10,7 @@ from test_framework.util import (
assert_equal,
CANOPY_BRANCH_ID,
NU5_BRANCH_ID,
get_coinbase_address,
hex_str_to_bytes,
nuparams,
nustr,
@ -18,7 +19,6 @@ from test_framework.util import (
)
from test_framework.mininode import (
CTransaction,
uint256_from_str,
)
from test_framework.blocktools import (
create_block
@ -49,7 +49,13 @@ class GetBlockTemplateTest(BitcoinTestFramework):
node = self.node
# sprout to transparent (v4)
recipients = [{"address": self.transparent_addr, "amount": Decimal('0.1')}]
myopid = node.z_sendmany(self.sprout_addr, recipients)
myopid = node.z_sendmany(self.sprout_addr, recipients, 1)
wait_and_assert_operationid_status(node, myopid)
def add_nu5_v5_tx_to_mempool(self):
node = self.node
recipients = [{"address": self.unified_addr, "amount": Decimal('9.99999')}]
myopid = node.z_sendmany(get_coinbase_address(node), recipients, 1, Decimal('0.00001'), 'AllowRevealedSenders')
wait_and_assert_operationid_status(node, myopid)
def add_transparent_tx_to_mempool(self):
@ -97,6 +103,7 @@ class GetBlockTemplateTest(BitcoinTestFramework):
tx = CTransaction()
tx.deserialize(f)
tx.calc_sha256()
assert_equal(tx.hash, gbt_tx['hash'])
assert_equal(tx.auth_digest_hex, node.getrawtransaction(tx.hash, 1)['authdigest'])
block.vtx.append(tx)
block.hashMerkleRoot = int(gbt['defaultroots']['merkleroot'], 16)
@ -104,7 +111,8 @@ class GetBlockTemplateTest(BitcoinTestFramework):
assert_equal(len(block.vtx), len(gbt['transactions']) + 1, "number of transactions")
assert_equal(block.hashPrevBlock, int(gbt['previousblockhash'], 16), "prevhash")
if nu5_active:
assert_equal(uint256_from_str(block.calc_auth_data_root()), int(gbt['defaultroots']['authdataroot'], 16))
block.hashAuthDataRoot = int(gbt['defaultroots']['authdataroot'], 16)
assert_equal(block.hashAuthDataRoot, block.calc_auth_data_root(), "authdataroot")
else:
assert 'authdataroot' not in gbt['defaultroots']
block.solve()
@ -131,6 +139,8 @@ class GetBlockTemplateTest(BitcoinTestFramework):
wait_and_assert_operationid_status(node, myopid)
self.transparent_addr = node.getnewaddress()
account = node.z_getnewaccount()['account']
self.unified_addr = node.z_getaddressforaccount(account)['address']
node.generate(15)
# at height 120, NU5 is not active
@ -176,13 +186,29 @@ class GetBlockTemplateTest(BitcoinTestFramework):
self.add_transparent_tx_to_mempool()
self.gbt_submitblock(True)
# Adding both v4 and v5 to cover legacy auth digest.
# Adding both v4 and v5 to cover legacy auth digest (without full auth digest subtree).
print("- both v4 and v5 transactions (plus coinbase)")
self.add_nu5_v4_tx_to_mempool()
self.add_transparent_tx_to_mempool()
self.gbt_submitblock(True)
# Adding both v4 and v5 to cover legacy auth digest (with full auth digest subtree).
print("- both v4 and v5 transactions (plus coinbase)")
self.add_nu5_v4_tx_to_mempool()
self.add_transparent_tx_to_mempool()
self.add_transparent_tx_to_mempool()
self.gbt_submitblock(True)
print("- block with 6 Orchard transactions (plus coinbase)")
for i in range(0, 6):
print(str(node.z_getbalance(self.transparent_addr)))
self.add_nu5_v5_tx_to_mempool()
self.gbt_submitblock(True)
print("- block with 7 Orchard transactions (plus coinbase)")
for i in range(0, 7):
self.add_nu5_v5_tx_to_mempool()
self.gbt_submitblock(True)
if __name__ == '__main__':
GetBlockTemplateTest().main()

View File

@ -28,6 +28,7 @@ def create_block(hashprev, coinbase, nTime=None, nBits=None, hashFinalSaplingRoo
block.nBits = nBits
block.vtx.append(coinbase)
block.hashMerkleRoot = block.calc_merkle_root()
block.hashAuthDataRoot = block.calc_auth_data_root()
block.calc_sha256()
return block

View File

@ -174,21 +174,25 @@ def deser_vector(f, c):
return r
def ser_vector(l):
def ser_vector(elems):
r = b""
if len(l) < 253:
r = struct.pack("B", len(l))
elif len(l) < 0x10000:
r = struct.pack("<BH", 253, len(l))
elif len(l) < 0x100000000:
r = struct.pack("<BI", 254, len(l))
else:
r = struct.pack("<BQ", 255, len(l))
for i in l:
r += i.serialize()
r += ser_compact_size(len(elems))
for elem in elems:
r += elem.serialize()
return r
def ser_compact_size(l):
if l < 253:
return struct.pack("B", l)
elif l < 0x10000:
return struct.pack("<BH", 253, l)
elif l < 0x100000000:
return struct.pack("<BI", 254, l)
else:
return struct.pack("<BQ", 255, l)
def deser_uint256_vector(f):
nit = struct.unpack("<B", f.read(1))[0]
if nit == 253:
@ -473,7 +477,7 @@ class OrchardBundle(object):
def deserialize(self, f):
self.actions = deser_vector(f, OrchardAction)
if len(self.actions) > 0:
flags = f.read(1)
flags = struct.unpack("B", f.read(1))[0]
self.enableSpends = (flags & ORCHARD_FLAGS_ENABLE_SPENDS) != 0
self.enableOutputs = (flags & ORCHARD_FLAGS_ENABLE_OUTPUTS) != 0
self.valueBalance = struct.unpack("<q", f.read(8))[0]
@ -489,20 +493,23 @@ class OrchardBundle(object):
r = b""
r += ser_vector(self.actions)
if len(self.actions) > 0:
flags = 0 ^ (
ORCHARD_FLAGS_ENABLE_SPENDS if self.enableSpends else 0
) ^ (
ORCHARD_FLAGS_ENABLE_OUTPUTS if self.enableOutputs else 0
)
r += struct.pack("B", flags)
r += struct.pack("B", self.flags())
r += struct.pack("<q", self.valueBalance)
r += ser_uint256(self.anchor)
r += ser_vector(self.proofs)
r += ser_compact_size(len(self.proofs))
r += bytes(self.proofs)
for i in range(len(self.actions)):
r += self.actions[i].spendAuthSig.serialize()
r += self.bindingSig.serialize()
return r
def flags(self):
return 0 ^ (
ORCHARD_FLAGS_ENABLE_SPENDS if self.enableSpends else 0
) ^ (
ORCHARD_FLAGS_ENABLE_OUTPUTS if self.enableOutputs else 0
)
def __repr__(self):
return "OrchardBundle(actions=%r, enableSpends=%s, enableOutputs=%s, valueBalance=%i, proofs=%r, spendAuthSigs=%r, bindingSig=%r)" \
% (
@ -1285,7 +1292,7 @@ class CBlock(CBlockHeader):
digest.update(hashes[i+1])
newhashes.append(digest.digest())
hashes = newhashes
return hashes[0]
return uint256_from_str(hashes[0])
def is_valid(self, n=48, k=5):
# H(I||...

View File

@ -138,9 +138,9 @@ def orchard_digest(orchardBundle):
digest.update(orchard_actions_compact_digest(orchardBundle))
digest.update(orchard_actions_memos_digest(orchardBundle))
digest.update(orchard_actions_noncompact_digest(orchardBundle))
digest.update(struct.pack('<B', orchardBundle.flags()))
digest.update(struct.pack('B', orchardBundle.flags()))
digest.update(struct.pack('<q', orchardBundle.valueBalance))
digest.update(bytes(orchardBundle.anchor))
digest.update(ser_uint256(orchardBundle.anchor))
return digest.digest()
@ -148,7 +148,7 @@ def orchard_auth_digest(orchardBundle):
digest = blake2b(digest_size=32, person=b'ZTxAuthOrchaHash')
if len(orchardBundle.actions) > 0:
digest.update(orchardBundle.proofs)
digest.update(bytes(orchardBundle.proofs))
for desc in orchardBundle.actions:
digest.update(desc.spendAuthSig.serialize())
digest.update(orchardBundle.bindingSig.serialize())

View File

@ -5,28 +5,32 @@
#
# Ccache 4.0 requires adding CMake to the depends system.
native_ccache 4.0 2022-05-01
native_ccache 4.1 2022-05-01
native_ccache 4.2 2022-05-01
native_ccache 4.2.1 2022-05-01
native_ccache 4.3 2022-05-01
native_ccache 4.4 2022-05-01
native_ccache 4.4.1 2022-05-01
native_ccache 4.4.2 2022-05-01
native_ccache 4.5 2022-05-01
native_ccache 4.5.1 2022-05-01
native_ccache 4.6 2022-05-01
native_ccache 4.0 2022-06-01
native_ccache 4.1 2022-06-01
native_ccache 4.2 2022-06-01
native_ccache 4.2.1 2022-06-01
native_ccache 4.3 2022-06-01
native_ccache 4.4 2022-06-01
native_ccache 4.4.1 2022-06-01
native_ccache 4.4.2 2022-06-01
native_ccache 4.5 2022-06-01
native_ccache 4.5.1 2022-06-01
native_ccache 4.6 2022-06-01
# Clang and Rust are currently pinned to LLVM 13
native_clang 14.0.0 2022-05-01
native_clang 14.0.1 2022-05-01
libcxx 14.0.0 2022-05-01
libcxx 14.0.1 2022-05-01
native_rust 1.60.0 2022-05-01
native_clang 14.0.0 2022-06-01
native_clang 14.0.1 2022-06-01
native_clang 14.0.2 2022-06-01
native_clang 14.0.3 2022-06-01
libcxx 14.0.0 2022-06-01
libcxx 14.0.1 2022-06-01
libcxx 14.0.2 2022-06-01
libcxx 14.0.3 2022-06-01
native_rust 1.60.0 2022-06-01
# We're never updating to this version
bdb 18.1.40 2024-02-01
# Google Test 1.10.0 requires adding CMake to the depends system.
googletest 1.10.0 2022-05-01
googletest 1.11.0 2022-05-01
googletest 1.10.0 2022-06-01
googletest 1.11.0 2022-06-01

View File

@ -134,8 +134,8 @@ public:
consensus.vUpgrades[Consensus::UPGRADE_CANOPY].hashActivationBlock =
uint256S("00000000002038016f976744c369dce7419fca30e7171dfac703af5e5f7ad1d4");
consensus.vUpgrades[Consensus::UPGRADE_NU5].nProtocolVersion = 170100;
consensus.vUpgrades[Consensus::UPGRADE_NU5].nActivationHeight =
Consensus::NetworkUpgrade::NO_ACTIVATION_HEIGHT;
consensus.vUpgrades[Consensus::UPGRADE_NU5].nActivationHeight = 1687104;
consensus.vUpgrades[Consensus::UPGRADE_ZFUTURE].nProtocolVersion = 0x7FFFFFFF;
consensus.vUpgrades[Consensus::UPGRADE_ZFUTURE].nActivationHeight =
Consensus::NetworkUpgrade::NO_ACTIVATION_HEIGHT;

View File

@ -15,8 +15,8 @@
*/
//! These need to be macros, as clientversion.cpp's and bitcoin*-res.rc's voodoo requires it
#define CLIENT_VERSION_MAJOR 4
#define CLIENT_VERSION_MINOR 7
#define CLIENT_VERSION_MAJOR 5
#define CLIENT_VERSION_MINOR 0
#define CLIENT_VERSION_REVISION 0
#define CLIENT_VERSION_BUILD 50

View File

@ -14,7 +14,11 @@
// Flags that enable deprecated functionality.
#ifdef ENABLE_WALLET
bool fEnableGetNewAddress = true;
bool fEnableGetRawChangeAddress = true;
bool fEnableZGetNewAddress = true;
bool fEnableZGetBalance = true;
bool fEnableZGetTotalBalance = true;
bool fEnableZListAddresses = true;
bool fEnableLegacyPrivacyStrategy = true;
bool fEnableZCRawReceive = true;
bool fEnableZCRawJoinSplit = true;
@ -92,7 +96,11 @@ std::optional<std::string> SetAllowedDeprecatedFeaturesFromCLIArgs() {
#ifdef ENABLE_WALLET
fEnableLegacyPrivacyStrategy = allowdeprecated.count("legacy_privacy") > 0;
fEnableGetNewAddress = allowdeprecated.count("getnewaddress") > 0;
fEnableGetRawChangeAddress = allowdeprecated.count("getrawchangeaddress") > 0;
fEnableZGetNewAddress = allowdeprecated.count("z_getnewaddress") > 0;
fEnableZGetBalance = allowdeprecated.count("z_getbalance") > 0;
fEnableZGetTotalBalance = allowdeprecated.count("z_gettotalbalance") > 0;
fEnableZListAddresses = allowdeprecated.count("z_listaddresses") > 0;
fEnableZCRawReceive = allowdeprecated.count("zcrawreceive") > 0;
fEnableZCRawJoinSplit = allowdeprecated.count("zcrawjoinsplit") > 0;
fEnableZCRawKeygen = allowdeprecated.count("zcrawkeygen") > 0;

View File

@ -10,7 +10,7 @@
// Per https://zips.z.cash/zip-0200
// Shut down nodes running this version of code, 16 weeks' worth of blocks after the estimated
// release block height. A warning is shown during the 14 days' worth of blocks prior to shut down.
static const int APPROX_RELEASE_HEIGHT = 1540976;
static const int APPROX_RELEASE_HEIGHT = 1663550;
static const int RELEASE_TO_DEPRECATION_WEEKS = 16;
static const int EXPECTED_BLOCKS_PER_HOUR = 3600 / Consensus::POST_BLOSSOM_POW_TARGET_SPACING;
static_assert(EXPECTED_BLOCKS_PER_HOUR == 48, "The value of Consensus::POST_BLOSSOM_POW_TARGET_SPACING was chosen such that this assertion holds.");
@ -28,7 +28,11 @@ static const std::set<std::string> DEFAULT_ALLOW_DEPRECATED{{
#ifdef ENABLE_WALLET
"legacy_privacy",
"getnewaddress",
"getrawchangeaddress",
"z_getnewaddress",
"z_getbalance",
"z_gettotalbalance",
"z_listaddresses",
"addrtype"
#endif
}};
@ -43,7 +47,11 @@ static const std::set<std::string> DEFAULT_DENY_DEPRECATED{{
// Flags that enable deprecated functionality.
#ifdef ENABLE_WALLET
extern bool fEnableGetNewAddress;
extern bool fEnableGetRawChangeAddress;
extern bool fEnableZGetNewAddress;
extern bool fEnableZGetBalance;
extern bool fEnableZGetTotalBalance;
extern bool fEnableZListAddresses;
extern bool fEnableLegacyPrivacyStrategy;
extern bool fEnableZCRawReceive;
extern bool fEnableZCRawJoinSplit;

View File

@ -363,7 +363,7 @@ std::string HelpMessage(HelpMessageMode mode)
"Warning: Reverting this setting requires re-downloading the entire blockchain. "
"(default: 0 = disable pruning blocks, >%u = target size in MiB to use for block files)"), MIN_DISK_SPACE_FOR_BLOCK_FILES / 1024 / 1024));
#ifdef ENABLE_WALLET
strUsage += HelpMessageOpt("-reindex-chainstate", _("Rebuild chain state from the currently indexed blocks (implies -rescan unless pruning or unless -rescan=0 is explicitly specified"));
strUsage += HelpMessageOpt("-reindex-chainstate", _("Rebuild chain state from the currently indexed blocks (implies -rescan unless pruning or unless -rescan=0 is explicitly specified)"));
strUsage += HelpMessageOpt("-reindex", _("Rebuild chain state and block index from the blk*.dat files on disk (implies -rescan unless pruning or unless -rescan=0 is explicitly specified)"));
#else
strUsage += HelpMessageOpt("-reindex-chainstate", _("Rebuild chain state from the currently indexed blocks"));

View File

@ -688,7 +688,7 @@ impl Wallet {
.collect()
}
/// Returns the note of the Orchard note commitment tree, as of the specified checkpoint
/// Returns the root of the Orchard note commitment tree, as of the specified checkpoint
/// depth. A depth of 0 corresponds to the chain tip.
pub fn note_commitment_tree_root(&self, checkpoint_depth: usize) -> Option<MerkleHashOrchard> {
self.witness_tree.root(checkpoint_depth)

View File

@ -9,7 +9,7 @@
* network protocol versioning
*/
static const int PROTOCOL_VERSION = 170050;
static const int PROTOCOL_VERSION = 170100;
//! initial proto version, to be increased after version/verack negotiation
static const int INIT_PROTO_VERSION = 209;

View File

@ -168,14 +168,17 @@ UniValue getnewaddress(const UniValue& params, bool fHelp)
if (fHelp || params.size() > 1)
throw runtime_error(
"getnewaddress ( \"\" )\n"
"\nDEPRECATED\n"
"\nReturns a new Zcash address for receiving payments.\n"
"\nDEPRECATED. Use z_getnewaccount and z_getaddressforaccount instead.\n"
"\nReturns a new transparent Zcash address.\n"
"Payments received by this API are visible on-chain and do not otherwise\n"
"provide privacy protections; they should only be used in circumstances \n"
"where it is necessary to interoperate with legacy Bitcoin infrastructure.\n"
"\nArguments:\n"
"1. (dummy) (string, optional) DEPRECATED. If provided, it MUST be set to the empty string \"\". Passing any other string will result in an error.\n"
"\nResult:\n"
"\"zcashaddress\" (string) The new Zcash address\n"
"\"zcashaddress\" (string) The new transparent Zcash address\n"
"\nExamples:\n"
+ HelpExampleCli("getnewaddress", "")
@ -210,13 +213,25 @@ UniValue getrawchangeaddress(const UniValue& params, bool fHelp)
if (!EnsureWalletIsAvailable(fHelp))
return NullUniValue;
if (!fEnableGetRawChangeAddress)
throw runtime_error(
"getrawchangeaddress is DEPRECATED and will be removed in a future release\n"
"\nChange addresses are a wallet-internal feature. Use a unified address for\n"
"a dedicated change account instead, or restart with `-allowdeprecated=getrawchangeaddress` \n"
"if you require backward compatibility.\n"
"See https://zcash.github.io/zcash/user/deprecation.html for more information.");
if (fHelp || params.size() > 1)
throw runtime_error(
"getrawchangeaddress\n"
"\nReturns a new Zcash address, for receiving change.\n"
"This is for use with raw transactions, NOT normal use.\n"
"\nDEPRECATED. Change addresses are a wallet-internal feature. Use a unified"
"\naddress for a dedicated change account instead.\n"
"\nReturns a new transparent Zcash address for receiving change.\n"
"This is for use with raw transactions, NOT normal use. Additionally,\n"
"the resulting address does not correspond to the \"change\" HD derivation\n"
"path.\n"
"\nResult:\n"
"\"address\" (string) The address\n"
"\"address\" (string) The transparent address\n"
"\nExamples:\n"
+ HelpExampleCli("getrawchangeaddress", "")
+ HelpExampleRpc("getrawchangeaddress", "")
@ -282,10 +297,14 @@ UniValue sendtoaddress(const UniValue& params, bool fHelp)
if (fHelp || params.size() < 2 || params.size() > 5)
throw runtime_error(
"sendtoaddress \"zcashaddress\" amount ( \"comment\" \"comment-to\" subtractfeefromamount )\n"
"\nSend an amount to a given address. The amount is a real and is rounded to the nearest 0.00000001\n"
"\nSend an amount to a given transparent address. The amount is interpreted as a real number\n"
"and is rounded to the nearest 0.00000001. This API will only select funds from the transparent\n"
"pool, and all the details of the transaction, including sender, recipient, and amount will be\n"
"permanently visible on the public chain. THIS API PROVIDES NO PRIVACY, and should only be\n"
"used when interoperability with legacy Bitcoin infrastructure is required.\n"
+ HelpRequiringPassphrase() +
"\nArguments:\n"
"1. \"zcashaddress\" (string, required) The Zcash address to send to.\n"
"1. \"zcashaddress\" (string, required) The transparent Zcash address to send to.\n"
"2. \"amount\" (numeric, required) The amount in " + CURRENCY_UNIT + " to send. eg 0.1\n"
"3. \"comment\" (string, optional) A comment used to store what the transaction is for. \n"
" This is not part of the transaction, just kept in your wallet.\n"
@ -350,7 +369,9 @@ UniValue listaddresses(const UniValue& params, bool fHelp)
"and addresses derived from the wallet's mnemonic seed for releases \n"
"version 4.7.0 and above. \n"
"\nREMINDER: It is recommended that you back up your wallet.dat file \n"
"regularly!\n"
"regularly. If your wallet was created using zcashd version 4.7.0 \n"
"or later and you have not imported externally produced keys, it only \n"
"necessary to have backed up the wallet's emergency recovery phrase.\n"
"\nResult:\n"
"[\n"
" {\n"
@ -816,9 +837,8 @@ UniValue listaddressgroupings(const UniValue& params, bool fHelp)
if (fHelp)
throw runtime_error(
"listaddressgroupings\n"
"\nLists groups of addresses which have had their common ownership\n"
"made public by common use as inputs or as the resulting change\n"
"in past transactions\n"
"\nLists groups of transparent addresses which have had their common ownership\n"
"made public by common use as inputs or as the resulting change in past transactions.\n"
"\nResult:\n"
"[\n"
" [\n"
@ -870,10 +890,11 @@ UniValue signmessage(const UniValue& params, bool fHelp)
"\nSign a message with the private key of a t-addr"
+ HelpRequiringPassphrase() + "\n"
"\nArguments:\n"
"1. \"t-addr\" (string, required) The transparent address to use for the private key.\n"
"2. \"message\" (string, required) The message to create a signature of.\n"
"1. \"t-addr\" (string, required) The transparent address to use to look up the private key.\n"
" that will be used to sign the message.\n"
"2. \"message\" (string, required) The message to create a signature of.\n"
"\nResult:\n"
"\"signature\" (string) The signature of the message encoded in base 64\n"
"\"signature\" (string) The signature of the message encoded in base 64\n"
"\nExamples:\n"
"\nUnlock the wallet for 30 seconds\n"
+ HelpExampleCli("walletpassphrase", "\"mypassphrase\" 30") +
@ -927,7 +948,7 @@ UniValue getreceivedbyaddress(const UniValue& params, bool fHelp)
if (fHelp || params.size() < 1 || params.size() > 3)
throw runtime_error(
"getreceivedbyaddress \"zcashaddress\" ( minconf ) ( inZat )\n"
"\nReturns the total amount received by the given Zcash address in transactions with at least minconf confirmations.\n"
"\nReturns the total amount received by the given transparent Zcash address in transactions with at least minconf confirmations.\n"
"\nArguments:\n"
"1. \"zcashaddress\" (string, required) The Zcash address for transactions.\n"
"2. minconf (numeric, optional, default=1) Only include transactions confirmed at least this many times.\n"
@ -994,7 +1015,9 @@ UniValue getbalance(const UniValue& params, bool fHelp)
if (fHelp || params.size() > 4)
throw runtime_error(
"getbalance ( \"(dummy)\" minconf includeWatchonly inZat )\n"
"\nReturns the server's total available balance.\n"
"\nReturns the wallet's available transparent balance. This total\n"
"currently includes transparent balances associated with unified\n"
"accounts. Prefer to use `z_getbalanceforaccount` instead.\n"
"\nArguments:\n"
"1. (dummy) (string, optional) Remains for backward compatibility. Must be excluded or set to \"*\" or \"\".\n"
"2. minconf (numeric, optional, default=1) Only include transactions confirmed at least this many times.\n"
@ -1044,7 +1067,7 @@ UniValue getunconfirmedbalance(const UniValue &params, bool fHelp)
if (fHelp || params.size() > 0)
throw runtime_error(
"getunconfirmedbalance\n"
"Returns the server's total unconfirmed balance\n");
"Returns the server's total unconfirmed transparent balance\n");
LOCK2(cs_main, pwalletMain->cs_wallet);
@ -1060,7 +1083,12 @@ UniValue sendmany(const UniValue& params, bool fHelp)
if (fHelp || params.size() < 2 || params.size() > 5)
throw runtime_error(
"sendmany \"\" {\"address\":amount,...} ( minconf \"comment\" [\"address\",...] )\n"
"\nSend multiple times. Amounts are decimal numbers with at most 8 digits of precision."
"\nSend to multiple transparent recipients, using funds from the legacy transparent\n"
"value pool. Amounts are decimal numbers with at most 8 digits of precision.\n"
"Payments sent using this API are visible on-chain and do not otherwise\n"
"provide privacy protections; it should only be used in circumstances \n"
"where it is necessary to interoperate with legacy Bitcoin infrastructure.\n"
"Prefer to use `z_sendmany` instead.\n"
+ HelpRequiringPassphrase() + "\n"
"\nArguments:\n"
"1. \"dummy\" (string, required) Must be set to \"\" for backwards compatibility.\n"
@ -1177,8 +1205,8 @@ UniValue addmultisigaddress(const UniValue& params, bool fHelp)
if (fHelp || params.size() < 2 || params.size() > 3)
{
string msg = "addmultisigaddress nrequired [\"key\",...] ( \"\" )\n"
"\nAdd a nrequired-to-sign multisignature address to the wallet.\n"
"Each key is a Zcash address or hex-encoded public key.\n"
"\nAdd a nrequired-to-sign transparent multisignature address to the wallet.\n"
"Each key is a transparent Zcash address or hex-encoded secp256k1 public key.\n"
"\nArguments:\n"
"1. nrequired (numeric, required) The number of required signatures out of the n keys or addresses.\n"
@ -1332,7 +1360,10 @@ UniValue listreceivedbyaddress(const UniValue& params, bool fHelp)
if (fHelp || params.size() > 3)
throw runtime_error(
"listreceivedbyaddress ( minconf includeempty includeWatchonly)\n"
"\nList balances by receiving address.\n"
"\nList balances by transparent receiving address. This API does not provide\n"
"any information for associated with shielded addresses and should only be used\n"
"in circumstances where it is necessary to interoperate with legacy Bitcoin\n"
"infrastructure.\n"
"\nArguments:\n"
"1. minconf (numeric, optional, default=1) The minimum number of confirmations before payments are included.\n"
"2. includeempty (numeric, optional, default=false) Whether to include addresses that haven't received any payments.\n"
@ -1342,7 +1373,7 @@ UniValue listreceivedbyaddress(const UniValue& params, bool fHelp)
"[\n"
" {\n"
" \"involvesWatchonly\" : true, (bool) Only returned if imported addresses were involved in transaction\n"
" \"address\" : \"receivingaddress\", (string) The receiving address\n"
" \"address\" : \"receivingaddress\", (string) The receiving transparent address\n"
" \"amount\" : x.xxx, (numeric) The total amount in " + CURRENCY_UNIT + " received by the address\n"
" \"amountZat\" : xxxx (numeric) The amount in " + MINOR_CURRENCY_UNIT + "\n"
" \"confirmations\" : n (numeric) The number of confirmations of the most recent transaction included\n"
@ -1456,7 +1487,12 @@ UniValue listtransactions(const UniValue& params, bool fHelp)
if (fHelp || params.size() > 4)
throw runtime_error(
"listtransactions ( \"dummy\" count from includeWatchonly)\n"
"\nReturns up to 'count' most recent transactions skipping the first 'from' transactions.\n"
"\nReturns up to 'count' of the most recent transactions associated with legacy transparent\n"
"addresses of this wallet, skipping the first 'from' transactions.\n"
"\nThis API does not provide any information about transactions containing shielded inputs\n"
"or outputs, and should only be used in circumstances where it is necessary to interoperate\n"
"with legacy Bitcoin infrastructure. Use z_listreceivedbyaddress to obtain information about\n"
"the wallet's shielded transactions.\n"
"\nArguments:\n"
"1. (dummy) (string, optional) If set, should be \"*\" for backwards compatibility.\n"
"2. count (numeric, optional, default=10) The number of transactions to return\n"
@ -1664,7 +1700,7 @@ UniValue gettransaction(const UniValue& params, bool fHelp)
if (fHelp || params.size() < 1 || params.size() > 2)
throw runtime_error(
"gettransaction \"txid\" ( includeWatchonly )\n"
"\nGet detailed information about in-wallet transaction <txid>\n"
"\nReturns detailed information about in-wallet transaction <txid>.\n"
"\nArguments:\n"
"1. \"txid\" (string, required) The transaction id\n"
"2. \"includeWatchonly\" (bool, optional, default=false) Whether to include watchonly addresses in balance calculation and details[]\n"
@ -1799,7 +1835,8 @@ UniValue keypoolrefill(const UniValue& params, bool fHelp)
if (fHelp || params.size() > 1)
throw runtime_error(
"keypoolrefill ( newsize )\n"
"\nFills the keypool."
"\nFills the keypool associated with the legacy transparent value pool. This should only be\n"
"used when interoperability with legacy Bitcoin infrastructure is required.\n"
+ HelpRequiringPassphrase() + "\n"
"\nArguments\n"
"1. newsize (numeric, optional, default=100) The new keypool size\n"
@ -1846,11 +1883,13 @@ UniValue walletpassphrase(const UniValue& params, bool fHelp)
throw runtime_error(
"walletpassphrase \"passphrase\" timeout\n"
"\nStores the wallet decryption key in memory for 'timeout' seconds.\n"
"This is needed prior to performing transactions related to private keys such as sending Zcash\n"
"If the wallet is locked, this API must be invoked prior to performing operations\n"
"that require the availability of private keys, such as sending Zcash.\n"
"zcashd wallet encryption is experimental, and should be used with caution.\n"
"\nArguments:\n"
"1. \"passphrase\" (string, required) The wallet passphrase\n"
"2. timeout (numeric, required) The time to keep the decryption key in seconds.\n"
"\nNote:\n"
"\nNotes:\n"
"Issuing the walletpassphrase command while the wallet is already unlocked will set a new unlock\n"
"time that overrides the old one.\n"
"\nExamples:\n"
@ -2043,6 +2082,7 @@ UniValue encryptwallet(const UniValue& params, bool fHelp)
"Use the walletpassphrase call for this, and then walletlock call.\n"
"If the wallet is already encrypted, use the walletpassphrasechange call.\n"
"Note that this will shutdown the server.\n"
"Wallet encryption is experimental, and this API should be used with caution.\n"
"\nArguments:\n"
"1. \"passphrase\" (string) The pass phrase to encrypt the wallet with. It must be at least 1 character, but should be long.\n"
"\nExamples:\n"
@ -2098,7 +2138,7 @@ UniValue lockunspent(const UniValue& params, bool fHelp)
throw runtime_error(
"lockunspent unlock [{\"txid\":\"txid\",\"vout\":n},...]\n"
"\nUpdates list of temporarily unspendable outputs.\n"
"Temporarily lock (unlock=false) or unlock (unlock=true) specified transaction outputs.\n"
"Temporarily lock (unlock=false) or unlock (unlock=true) specified transparent transaction outputs.\n"
"A locked transaction output will not be chosen by automatic coin selection, when spending Zcash.\n"
"Locks are stored in memory only. Nodes start with zero locked outputs, and the locked output list\n"
"is always cleared (by virtue of process exit) when a node stops or fails.\n"
@ -2181,7 +2221,7 @@ UniValue listlockunspent(const UniValue& params, bool fHelp)
if (fHelp || params.size() > 0)
throw runtime_error(
"listlockunspent\n"
"\nReturns list of temporarily unspendable outputs.\n"
"\nReturns list of temporarily unspendable transparent outputs.\n"
"See the lockunspent call to lock and unlock transactions for spending.\n"
"\nResult:\n"
"[\n"
@ -2259,7 +2299,7 @@ UniValue getwalletinfo(const UniValue& params, bool fHelp)
if (fHelp || params.size() != 0)
throw runtime_error(
"getwalletinfo\n"
"Returns an object containing various wallet state info.\n"
"Returns wallet state information.\n"
"\nResult:\n"
"{\n"
" \"walletversion\": xxxxx, (numeric) the wallet version\n"
@ -2343,11 +2383,10 @@ UniValue listunspent(const UniValue& params, bool fHelp)
if (fHelp || params.size() > 3)
throw runtime_error(
"listunspent ( minconf maxconf [\"address\",...] )\n"
"\nReturns array of unspent transaction outputs\n"
"with between minconf and maxconf (inclusive) confirmations.\n"
"Optionally filter to only include txouts paid to specified addresses.\n"
"Results are an array of Objects, each of which has:\n"
"{txid, vout, scriptPubKey, amount, confirmations}\n"
"\nReturns array of unspent transparent transaction outputs with between minconf and\n"
"maxconf (inclusive) confirmations. Use `z_listunspent` instead to see information\n"
"related to unspent shielded notes. Results may be optionally filtered to only include\n"
"txouts paid to specified addresses.\n"
"\nArguments:\n"
"1. minconf (numeric, optional, default=1) The minimum confirmations to filter\n"
"2. maxconf (numeric, optional, default=9999999) The maximum confirmations to filter\n"
@ -2456,9 +2495,11 @@ UniValue z_listunspent(const UniValue& params, bool fHelp)
if (fHelp || params.size() > 4)
throw runtime_error(
"z_listunspent ( minconf maxconf includeWatchonly [\"zaddr\",...] )\n"
"\nReturns array of unspent shielded notes with between minconf and maxconf (inclusive) confirmations.\n"
"Optionally filter to only include notes sent to specified addresses.\n"
"When minconf is 0, unspent notes with zero confirmations are returned, even though they are not immediately spendable.\n"
"\nReturns an array of unspent shielded notes with between minconf and maxconf (inclusive)\n"
"confirmations. Results may be optionally filtered to only include notes sent to specified\n"
"addresses.\n"
"When minconf is 0, unspent notes with zero confirmations are returned, even though they are\n"
"not immediately spendable.\n"
"\nArguments:\n"
"1. minconf (numeric, optional, default=1) The minimum confirmations to filter\n"
"2. maxconf (numeric, optional, default=9999999) The maximum confirmations to filter\n"
@ -2663,35 +2704,35 @@ UniValue fundrawtransaction(const UniValue& params, bool fHelp)
if (fHelp || params.size() < 1 || params.size() > 2)
throw runtime_error(
"fundrawtransaction \"hexstring\" includeWatching\n"
"\nAdd inputs to a transaction until it has enough in value to meet its out value.\n"
"This will not modify existing inputs, and will add one change output to the outputs.\n"
"Note that inputs which were signed may need to be resigned after completion since in/outputs have been added.\n"
"The inputs added will not be signed, use signrawtransaction for that.\n"
"Note that all existing inputs must have their previous output transaction be in the wallet.\n"
"Note that all inputs selected must be of standard form and P2SH scripts must be"
"in the wallet using importaddress or addmultisigaddress (to calculate fees).\n"
"Only pay-to-pubkey, multisig, and P2SH versions thereof are currently supported for watch-only\n"
"\nArguments:\n"
"1. \"hexstring\" (string, required) The hex string of the raw transaction\n"
"2. includeWatching (boolean, optional, default false) Also select inputs which are watch only\n"
"\nResult:\n"
"{\n"
" \"hex\": \"value\", (string) The resulting raw transaction (hex-encoded string)\n"
" \"fee\": n, (numeric) The fee added to the transaction\n"
" \"changepos\": n (numeric) The position of the added change output, or -1\n"
"}\n"
"\"hex\" \n"
"\nExamples:\n"
"\nCreate a transaction with no inputs\n"
+ HelpExampleCli("createrawtransaction", "\"[]\" \"{\\\"myaddress\\\":0.01}\"") +
"\nAdd sufficient unsigned inputs to meet the output value\n"
+ HelpExampleCli("fundrawtransaction", "\"rawtransactionhex\"") +
"\nSign the transaction\n"
+ HelpExampleCli("signrawtransaction", "\"fundedtransactionhex\"") +
"\nSend the transaction\n"
+ HelpExampleCli("sendrawtransaction", "\"signedtransactionhex\"")
);
"fundrawtransaction \"hexstring\" includeWatching\n"
"\nAdd transparent inputs to a transaction until it has enough in value to meet its out value.\n"
"This will not modify existing inputs, and will add one change output to the outputs.\n"
"Note that inputs which were signed may need to be resigned after completion since in/outputs have been added.\n"
"The inputs added will not be signed, use signrawtransaction for that.\n"
"Note that all existing inputs must have their previous output transaction be in the wallet.\n"
"Note that all inputs selected must be of standard form and P2SH scripts must be"
"in the wallet using importaddress or addmultisigaddress (to calculate fees).\n"
"Only pay-to-pubkey, multisig, and P2SH versions thereof are currently supported for watch-only\n"
"\nArguments:\n"
"1. \"hexstring\" (string, required) The hex string of the raw transaction\n"
"2. includeWatching (boolean, optional, default false) Also select inputs which are watch only\n"
"\nResult:\n"
"{\n"
" \"hex\": \"value\", (string) The resulting raw transaction (hex-encoded string)\n"
" \"fee\": n, (numeric) The fee added to the transaction\n"
" \"changepos\": n (numeric) The position of the added change output, or -1\n"
"}\n"
"\"hex\" \n"
"\nExamples:\n"
"\nCreate a transaction with no inputs\n"
+ HelpExampleCli("createrawtransaction", "\"[]\" \"{\\\"myaddress\\\":0.01}\"") +
"\nAdd sufficient unsigned inputs to meet the output value\n"
+ HelpExampleCli("fundrawtransaction", "\"rawtransactionhex\"") +
"\nSign the transaction\n"
+ HelpExampleCli("signrawtransaction", "\"fundedtransactionhex\"") +
"\nSend the transaction\n"
+ HelpExampleCli("sendrawtransaction", "\"signedtransactionhex\"")
);
RPCTypeCheck(params, boost::assign::list_of(UniValue::VSTR)(UniValue::VBOOL));
@ -3510,7 +3551,7 @@ UniValue z_listaccounts(const UniValue& params, bool fHelp)
if (fHelp || params.size() > 1)
throw runtime_error(
"z_listaccounts\n"
"\nReturns the list of accounts created through z_getnewaccount.\n"
"\nReturns the list of accounts created with z_getnewaccount.\n"
"\nResult:\n"
"[\n"
" {\n"
@ -3573,10 +3614,17 @@ UniValue z_listaddresses(const UniValue& params, bool fHelp)
if (!EnsureWalletIsAvailable(fHelp))
return NullUniValue;
if (!fEnableZListAddresses)
throw runtime_error(
"z_listaddresses is DEPRECATED and will be removed in a future release\n"
"\nUse listaddresses or restart with `-allowdeprecated=z_listaddresses`\n"
"if you require backward compatibility.\n"
"See https://zcash.github.io/zcash/user/deprecation.html for more information.");
if (fHelp || params.size() > 1)
throw runtime_error(
"z_listaddresses ( includeWatchonly )\n"
"\nDEPRECATED\n"
"\nDEPRECATED. Use `listaddresses` instead.\n"
"\nReturns the list of shielded addresses belonging to the wallet.\n"
"\nThis never returns Unified Addresses; see 'listaddresses' for them.\n"
"\nArguments:\n"
@ -4010,10 +4058,19 @@ UniValue z_getbalance(const UniValue& params, bool fHelp)
if (!EnsureWalletIsAvailable(fHelp))
return NullUniValue;
if (!fEnableZGetBalance)
throw runtime_error(
"z_getbalance is DEPRECATED and will be removed in a future release\n\n"
"Use z_getbalanceforaccount, z_getbalanceforviewingkey, or getbalance (for\n"
"legacy transparent balance) instead, or restart with `-allowdeprecated=z_getbalance`\n"
"if you require backward compatibility.\n"
"See https://zcash.github.io/zcash/user/deprecation.html for more information.");
if (fHelp || params.size() == 0 || params.size() > 3)
throw runtime_error(
"z_getbalance \"address\" ( minconf inZat )\n"
"\nDEPRECATED; please use z_getbalanceforviewingkey instead.`\n"
"\nDEPRECATED; please use z_getbalanceforaccount, z_getbalanceforviewingkey,\n"
"or getbalance (for legacy transparent balance) instead.\n"
"\nReturns the balance of a taddr or zaddr belonging to the node's wallet.\n"
"\nCAUTION: If the wallet has only an incoming viewing key for this address, then spends cannot be"
"\ndetected, and so the returned balance may be larger than the actual balance."
@ -4312,10 +4369,17 @@ UniValue z_gettotalbalance(const UniValue& params, bool fHelp)
if (!EnsureWalletIsAvailable(fHelp))
return NullUniValue;
if (!fEnableZGetTotalBalance)
throw runtime_error(
"z_gettotalbalance is DEPRECATED and will be removed in a future release\n\n"
"Use z_getbalanceforaccount, or getbalance (for legacy transparent balance) instead, or\n"
"restart with `-allowdeprecated=z_gettotalbalance if you require backward compatibility.\n"
"See https://zcash.github.io/zcash/user/deprecation.html for more information.");
if (fHelp || params.size() > 2)
throw runtime_error(
"z_gettotalbalance ( minconf includeWatchonly )\n"
"\nDEPRECATED. Please use the z_getbalanceforaccount RPC instead.\n"
"\nDEPRECATED. Please use z_getbalanceforaccount or getbalance (for legacy transparent balance) instead.\n"
"\nReturn the total value of funds stored in the node's wallet.\n"
"\nCAUTION: If the wallet contains any addresses for which it only has incoming viewing keys,"
"\nthe returned private balance may be larger than the actual balance, because spends cannot"