zcash_client_backend: Migrate to `tonic 0.12` with `http 1`

This commit is contained in:
Jack Grigg 2024-07-10 23:48:28 +00:00
parent 34cf6d286a
commit e5517b61cc
9 changed files with 186 additions and 100 deletions

142
Cargo.lock generated
View File

@ -177,6 +177,12 @@ dependencies = [
"syn 2.0.63", "syn 2.0.63",
] ]
[[package]]
name = "atomic-waker"
version = "1.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
[[package]] [[package]]
name = "autocfg" name = "autocfg"
version = "1.3.0" version = "1.3.0"
@ -185,18 +191,17 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0"
[[package]] [[package]]
name = "axum" name = "axum"
version = "0.6.20" version = "0.7.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf" checksum = "3a6c9af12842a67734c9a2e355436e5d03b22383ed60cf13cd0c18fbfe3dcbcf"
dependencies = [ dependencies = [
"async-trait", "async-trait",
"axum-core", "axum-core",
"bitflags 1.3.2",
"bytes", "bytes",
"futures-util", "futures-util",
"http", "http",
"http-body", "http-body",
"hyper", "http-body-util",
"itoa", "itoa",
"matchit", "matchit",
"memchr", "memchr",
@ -205,7 +210,7 @@ dependencies = [
"pin-project-lite", "pin-project-lite",
"rustversion", "rustversion",
"serde", "serde",
"sync_wrapper", "sync_wrapper 1.0.1",
"tower", "tower",
"tower-layer", "tower-layer",
"tower-service", "tower-service",
@ -213,17 +218,20 @@ dependencies = [
[[package]] [[package]]
name = "axum-core" name = "axum-core"
version = "0.3.4" version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c" checksum = "a15c63fd72d41492dc4f497196f5da1fb04fb7529e631d73630d1b491e47a2e3"
dependencies = [ dependencies = [
"async-trait", "async-trait",
"bytes", "bytes",
"futures-util", "futures-util",
"http", "http",
"http-body", "http-body",
"http-body-util",
"mime", "mime",
"pin-project-lite",
"rustversion", "rustversion",
"sync_wrapper 0.1.2",
"tower-layer", "tower-layer",
"tower-service", "tower-service",
] ]
@ -249,6 +257,12 @@ version = "0.21.7"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
[[package]]
name = "base64"
version = "0.22.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
[[package]] [[package]]
name = "bech32" name = "bech32"
version = "0.9.1" version = "0.9.1"
@ -923,15 +937,15 @@ dependencies = [
[[package]] [[package]]
name = "h2" name = "h2"
version = "0.3.26" version = "0.4.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" checksum = "fa82e28a107a8cc405f0839610bdc9b15f1e25ec7d696aa5cf173edbcb1486ab"
dependencies = [ dependencies = [
"atomic-waker",
"bytes", "bytes",
"fnv", "fnv",
"futures-core", "futures-core",
"futures-sink", "futures-sink",
"futures-util",
"http", "http",
"indexmap 2.2.6", "indexmap 2.2.6",
"slab", "slab",
@ -1052,9 +1066,9 @@ dependencies = [
[[package]] [[package]]
name = "http" name = "http"
version = "0.2.12" version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258"
dependencies = [ dependencies = [
"bytes", "bytes",
"fnv", "fnv",
@ -1063,12 +1077,24 @@ dependencies = [
[[package]] [[package]]
name = "http-body" name = "http-body"
version = "0.4.6" version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643"
dependencies = [ dependencies = [
"bytes", "bytes",
"http", "http",
]
[[package]]
name = "http-body-util"
version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f"
dependencies = [
"bytes",
"futures-util",
"http",
"http-body",
"pin-project-lite", "pin-project-lite",
] ]
@ -1086,13 +1112,12 @@ checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9"
[[package]] [[package]]
name = "hyper" name = "hyper"
version = "0.14.28" version = "1.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80" checksum = "50dfd22e0e76d0f662d429a5f80fcaf3855009297eab6a0a9f8543834744ba05"
dependencies = [ dependencies = [
"bytes", "bytes",
"futures-channel", "futures-channel",
"futures-core",
"futures-util", "futures-util",
"h2", "h2",
"http", "http",
@ -1101,23 +1126,42 @@ dependencies = [
"httpdate", "httpdate",
"itoa", "itoa",
"pin-project-lite", "pin-project-lite",
"socket2", "smallvec",
"tokio", "tokio",
"tower-service",
"tracing",
"want", "want",
] ]
[[package]] [[package]]
name = "hyper-timeout" name = "hyper-timeout"
version = "0.4.1" version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" checksum = "3203a961e5c83b6f5498933e78b6b263e208c197b63e9c6c53cc82ffd3f63793"
dependencies = [ dependencies = [
"hyper", "hyper",
"hyper-util",
"pin-project-lite", "pin-project-lite",
"tokio", "tokio",
"tokio-io-timeout", "tower-service",
]
[[package]]
name = "hyper-util"
version = "0.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3ab92f4f49ee4fb4f997c784b7a2e0fa70050211e0b6a287f898c3c9785ca956"
dependencies = [
"bytes",
"futures-channel",
"futures-util",
"http",
"http-body",
"hyper",
"pin-project-lite",
"socket2",
"tokio",
"tower",
"tower-service",
"tracing",
] ]
[[package]] [[package]]
@ -1752,9 +1796,9 @@ dependencies = [
[[package]] [[package]]
name = "prost" name = "prost"
version = "0.12.3" version = "0.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "146c289cda302b98a28d40c8b3b90498d6e526dd24ac2ecea73e4e491685b94a" checksum = "e13db3d3fde688c61e2446b4d843bc27a7e8af269a69440c0308021dc92333cc"
dependencies = [ dependencies = [
"bytes", "bytes",
"prost-derive", "prost-derive",
@ -1762,9 +1806,9 @@ dependencies = [
[[package]] [[package]]
name = "prost-build" name = "prost-build"
version = "0.12.3" version = "0.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c55e02e35260070b6f716a2423c2ff1c3bb1642ddca6f99e1f26d06268a0e2d2" checksum = "5bb182580f71dd070f88d01ce3de9f4da5021db7115d2e1c3605a754153b77c1"
dependencies = [ dependencies = [
"bytes", "bytes",
"heck", "heck",
@ -1779,14 +1823,13 @@ dependencies = [
"regex", "regex",
"syn 2.0.63", "syn 2.0.63",
"tempfile", "tempfile",
"which",
] ]
[[package]] [[package]]
name = "prost-derive" name = "prost-derive"
version = "0.12.3" version = "0.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "efb6c9a1dd1def8e2124d17e83a20af56f1570d6c2d2bd9e266ccb768df3840e" checksum = "18bec9b0adc4eba778b33684b7ba3e7137789434769ee3ce3930463ef904cfca"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"itertools", "itertools",
@ -1797,9 +1840,9 @@ dependencies = [
[[package]] [[package]]
name = "prost-types" name = "prost-types"
version = "0.12.3" version = "0.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "193898f59edcf43c26227dcd4c8427f00d99d61e95dcde58dabd49fa291d470e" checksum = "cee5168b05f49d4b0ca581206eb14a7b22fafd963efe729ac48eb03266e25cc2"
dependencies = [ dependencies = [
"prost", "prost",
] ]
@ -2356,6 +2399,12 @@ version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160"
[[package]]
name = "sync_wrapper"
version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394"
[[package]] [[package]]
name = "tap" name = "tap"
version = "1.0.1" version = "1.0.1"
@ -2463,17 +2512,19 @@ dependencies = [
"num_cpus", "num_cpus",
"pin-project-lite", "pin-project-lite",
"socket2", "socket2",
"tokio-macros",
"windows-sys 0.48.0", "windows-sys 0.48.0",
] ]
[[package]] [[package]]
name = "tokio-io-timeout" name = "tokio-macros"
version = "1.2.0" version = "2.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf" checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
dependencies = [ dependencies = [
"pin-project-lite", "proc-macro2",
"tokio", "quote",
"syn 2.0.63",
] ]
[[package]] [[package]]
@ -2502,23 +2553,26 @@ dependencies = [
[[package]] [[package]]
name = "tonic" name = "tonic"
version = "0.11.0" version = "0.12.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "76c4eb7a4e9ef9d4763600161f12f5070b92a578e1b634db88a6887844c91a13" checksum = "f738b6a169a29bca4e39656db89c44a08e09c5b700b896ee9e7459f0652e81dd"
dependencies = [ dependencies = [
"async-stream", "async-stream",
"async-trait", "async-trait",
"axum", "axum",
"base64", "base64 0.22.1",
"bytes", "bytes",
"h2", "h2",
"http", "http",
"http-body", "http-body",
"http-body-util",
"hyper", "hyper",
"hyper-timeout", "hyper-timeout",
"hyper-util",
"percent-encoding", "percent-encoding",
"pin-project", "pin-project",
"prost", "prost",
"socket2",
"tokio", "tokio",
"tokio-stream", "tokio-stream",
"tower", "tower",
@ -2529,9 +2583,9 @@ dependencies = [
[[package]] [[package]]
name = "tonic-build" name = "tonic-build"
version = "0.11.0" version = "0.12.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "be4ef6dd70a610078cb4e338a0f79d06bc759ff1b22d2120c2ff02ae264ba9c2" checksum = "690943cc223adcdd67bb597a2e573ead1b88e999ba37528fe8e6356bf44b29b6"
dependencies = [ dependencies = [
"prettyplease", "prettyplease",
"proc-macro2", "proc-macro2",
@ -3049,7 +3103,7 @@ version = "0.12.1"
dependencies = [ dependencies = [
"assert_matches", "assert_matches",
"async-trait", "async-trait",
"base64", "base64 0.21.7",
"bech32", "bech32",
"bip32", "bip32",
"bls12_381", "bls12_381",
@ -3357,7 +3411,7 @@ dependencies = [
name = "zip321" name = "zip321"
version = "0.0.0" version = "0.0.0"
dependencies = [ dependencies = [
"base64", "base64 0.21.7",
"nom", "nom",
"percent-encoding", "percent-encoding",
"proptest", "proptest",

View File

@ -95,9 +95,9 @@ maybe-rayon = { version = "0.1.0", default-features = false }
rayon = "1.5" rayon = "1.5"
# Protobuf and gRPC # Protobuf and gRPC
prost = "0.12" prost = "0.13"
tonic = { version = "0.11", default-features = false } tonic = { version = "0.12", default-features = false }
tonic-build = { version = "0.11", default-features = false } tonic-build = { version = "0.12", default-features = false }
# Secret management # Secret management
secrecy = "0.8" secrecy = "0.8"

View File

@ -90,6 +90,11 @@ who = "Daira-Emma Hopwood <daira@jacaranda.org>"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
delta = "0.3.21 -> 0.3.26" delta = "0.3.21 -> 0.3.26"
[[audits.h2]]
who = "Jack Grigg <jack@electriccoin.co>"
criteria = "safe-to-deploy"
delta = "0.3.26 -> 0.4.5"
[[audits.half]] [[audits.half]]
who = "Daira-Emma Hopwood <daira@jacaranda.org>" who = "Daira-Emma Hopwood <daira@jacaranda.org>"
criteria = "safe-to-run" criteria = "safe-to-run"
@ -105,6 +110,18 @@ criteria = "safe-to-deploy"
delta = "0.14.2 -> 0.14.5" delta = "0.14.2 -> 0.14.5"
notes = "I did not thoroughly check the safety argument for fold_impl, but it at least seems to be well documented." notes = "I did not thoroughly check the safety argument for fold_impl, but it at least seems to be well documented."
[[audits.http-body-util]]
who = "Jack Grigg <jack@electriccoin.co>"
criteria = "safe-to-deploy"
delta = "0.1.0 -> 0.1.2"
notes = "New uses of pin_project! look fine."
[[audits.hyper-timeout]]
who = "Jack Grigg <jack@electriccoin.co>"
criteria = "safe-to-deploy"
delta = "0.4.1 -> 0.5.1"
notes = "New uses of pin_project! look fine."
[[audits.inferno]] [[audits.inferno]]
who = "Daira-Emma Hopwood <daira@jacaranda.org>" who = "Daira-Emma Hopwood <daira@jacaranda.org>"
criteria = "safe-to-run" criteria = "safe-to-run"
@ -299,6 +316,11 @@ who = "Daira-Emma Hopwood <daira@jacaranda.org>"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
delta = "2.0.60 -> 2.0.63" delta = "2.0.60 -> 2.0.63"
[[audits.sync_wrapper]]
who = "Jack Grigg <jack@electriccoin.co>"
criteria = "safe-to-deploy"
delta = "0.1.2 -> 1.0.1"
[[audits.thiserror]] [[audits.thiserror]]
who = "Daira-Emma Hopwood <daira@jacaranda.org>" who = "Daira-Emma Hopwood <daira@jacaranda.org>"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
@ -329,6 +351,11 @@ who = "Daira-Emma Hopwood <daira@jacaranda.org>"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
delta = "0.10.2 -> 0.11.0" delta = "0.10.2 -> 0.11.0"
[[audits.tonic-build]]
who = "Jack Grigg <jack@electriccoin.co>"
criteria = "safe-to-deploy"
delta = "0.11.0 -> 0.12.0"
[[audits.walkdir]] [[audits.walkdir]]
who = "Daira-Emma Hopwood <daira@jacaranda.org>" who = "Daira-Emma Hopwood <daira@jacaranda.org>"
criteria = "safe-to-run" criteria = "safe-to-run"

View File

@ -104,18 +104,26 @@ criteria = "safe-to-deploy"
version = "0.1.78" version = "0.1.78"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
[[exemptions.atomic-waker]]
version = "1.1.2"
criteria = "safe-to-deploy"
[[exemptions.axum]] [[exemptions.axum]]
version = "0.6.20" version = "0.7.5"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
[[exemptions.axum-core]] [[exemptions.axum-core]]
version = "0.3.4" version = "0.4.3"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
[[exemptions.backtrace]] [[exemptions.backtrace]]
version = "0.3.69" version = "0.3.69"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
[[exemptions.base64]]
version = "0.22.1"
criteria = "safe-to-deploy"
[[exemptions.bech32]] [[exemptions.bech32]]
version = "0.9.1" version = "0.9.1"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
@ -126,7 +134,7 @@ criteria = "safe-to-deploy"
[[exemptions.bitflags]] [[exemptions.bitflags]]
version = "1.3.2" version = "1.3.2"
criteria = "safe-to-deploy" criteria = "safe-to-run"
[[exemptions.bitvec]] [[exemptions.bitvec]]
version = "1.0.1" version = "1.0.1"
@ -317,11 +325,7 @@ version = "0.5.5"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
[[exemptions.http]] [[exemptions.http]]
version = "0.2.9" version = "1.1.0"
criteria = "safe-to-deploy"
[[exemptions.http-body]]
version = "0.4.5"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
[[exemptions.httparse]] [[exemptions.httparse]]
@ -329,13 +333,17 @@ version = "1.8.0"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
[[exemptions.hyper]] [[exemptions.hyper]]
version = "0.14.27" version = "1.4.1"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
[[exemptions.hyper-timeout]] [[exemptions.hyper-timeout]]
version = "0.4.1" version = "0.4.1"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
[[exemptions.hyper-util]]
version = "0.1.6"
criteria = "safe-to-deploy"
[[exemptions.indexmap]] [[exemptions.indexmap]]
version = "1.9.3" version = "1.9.3"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
@ -493,19 +501,19 @@ version = "1.3.1"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
[[exemptions.prost]] [[exemptions.prost]]
version = "0.12.1" version = "0.13.1"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
[[exemptions.prost-build]] [[exemptions.prost-build]]
version = "0.12.1" version = "0.13.1"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
[[exemptions.prost-derive]] [[exemptions.prost-derive]]
version = "0.12.1" version = "0.13.1"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
[[exemptions.prost-types]] [[exemptions.prost-types]]
version = "0.12.1" version = "0.13.1"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
[[exemptions.quick-error]] [[exemptions.quick-error]]
@ -660,8 +668,8 @@ criteria = "safe-to-deploy"
version = "1.35.1" version = "1.35.1"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
[[exemptions.tokio-io-timeout]] [[exemptions.tokio-macros]]
version = "1.2.0" version = "2.2.0"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
[[exemptions.tokio-util]] [[exemptions.tokio-util]]
@ -669,7 +677,7 @@ version = "0.7.10"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
[[exemptions.tonic]] [[exemptions.tonic]]
version = "0.10.2" version = "0.12.0"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
[[exemptions.tonic-build]] [[exemptions.tonic-build]]

View File

@ -382,11 +382,28 @@ criteria = "safe-to-deploy"
version = "0.3.27" version = "0.3.27"
notes = "Unsafe used to implement a concurrency primitive AtomicWaker. Well-commented and not obviously incorrect. Like my other audits of these concurrency primitives inside the futures family, I couldn't certify that it is correct without formal methods, but that is out of scope for this vetting." notes = "Unsafe used to implement a concurrency primitive AtomicWaker. Well-commented and not obviously incorrect. Like my other audits of these concurrency primitives inside the futures family, I couldn't certify that it is correct without formal methods, but that is out of scope for this vetting."
[[audits.bytecode-alliance.audits.http]] [[audits.bytecode-alliance.audits.http-body]]
who = "Pat Hickey <phickey@fastly.com>"
criteria = "safe-to-deploy"
version = "1.0.0-rc.2"
[[audits.bytecode-alliance.audits.http-body]]
who = "Alex Crichton <alex@alexcrichton.com>" who = "Alex Crichton <alex@alexcrichton.com>"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
delta = "0.2.9 -> 1.0.0" delta = "1.0.0-rc.2 -> 1.0.0"
notes = "Minor changes leading up to the 1.0.0 release and nothing fundamentally new here." notes = "Only minor changes made for a stable release."
[[audits.bytecode-alliance.audits.http-body-util]]
who = "Pat Hickey <phickey@fastly.com>"
criteria = "safe-to-deploy"
version = "0.1.0-rc.2"
notes = "only one use of unsafe related to pin projection. unclear to me why pin_project! is used in many modules of the project, but the expanded output of that macro is inlined in either.rs"
[[audits.bytecode-alliance.audits.http-body-util]]
who = "Alex Crichton <alex@alexcrichton.com>"
criteria = "safe-to-deploy"
delta = "0.1.0-rc.2 -> 0.1.0"
notes = "Minor documentation updates an additions, nothing major."
[[audits.bytecode-alliance.audits.libm]] [[audits.bytecode-alliance.audits.libm]]
who = "Alex Crichton <alex@alexcrichton.com>" who = "Alex Crichton <alex@alexcrichton.com>"
@ -1998,30 +2015,6 @@ criteria = "safe-to-deploy"
delta = "0.3.3 -> 0.3.9" delta = "0.3.3 -> 0.3.9"
aggregated-from = "https://raw.githubusercontent.com/zcash/zcash/master/qa/supply-chain/audits.toml" aggregated-from = "https://raw.githubusercontent.com/zcash/zcash/master/qa/supply-chain/audits.toml"
[[audits.zcash.audits.http]]
who = "Daira-Emma Hopwood <daira@jacaranda.org>"
criteria = "safe-to-deploy"
delta = "0.2.11 -> 0.2.12"
aggregated-from = "https://raw.githubusercontent.com/zcash/zcash/master/qa/supply-chain/audits.toml"
[[audits.zcash.audits.http]]
who = "Jack Grigg <jack@electriccoin.co>"
criteria = "safe-to-deploy"
delta = "1.0.0 -> 0.2.11"
aggregated-from = "https://raw.githubusercontent.com/zcash/zcash/master/qa/supply-chain/audits.toml"
[[audits.zcash.audits.http-body]]
who = "Jack Grigg <jack@electriccoin.co>"
criteria = "safe-to-deploy"
delta = "0.4.5 -> 0.4.6"
aggregated-from = "https://raw.githubusercontent.com/zcash/zcash/master/qa/supply-chain/audits.toml"
[[audits.zcash.audits.hyper]]
who = "Jack Grigg <jack@electriccoin.co>"
criteria = "safe-to-deploy"
delta = "0.14.27 -> 0.14.28"
aggregated-from = "https://raw.githubusercontent.com/zcash/zcash/master/qa/supply-chain/audits.toml"
[[audits.zcash.audits.inout]] [[audits.zcash.audits.inout]]
who = "Daira Hopwood <daira@jacaranda.org>" who = "Daira Hopwood <daira@jacaranda.org>"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"

View File

@ -21,6 +21,7 @@ and this library adheres to Rust's notion of
### Changed ### Changed
- MSRV is now 1.70.0. - MSRV is now 1.70.0.
- Migrated to `tonic 0.12`.
- `zcash_client_backend::{fixed,standard,zip317}::SingleOutputChangeStrategy` - `zcash_client_backend::{fixed,standard,zip317}::SingleOutputChangeStrategy`
now implement a different strategy for choosing whether there will be any now implement a different strategy for choosing whether there will be any
change, and its value. This can avoid leaking information about note amounts change, and its value. This can avoid leaking information about note amounts

View File

@ -1,6 +1,7 @@
// This file is @generated by prost-build.
/// Information about the state of the chain as of a given block. /// Information about the state of the chain as of a given block.
#[allow(clippy::derive_partial_eq_without_eq)] #[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)] #[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct ChainMetadata { pub struct ChainMetadata {
/// the size of the Sapling note commitment tree as of the end of this block /// the size of the Sapling note commitment tree as of the end of this block
#[prost(uint32, tag = "1")] #[prost(uint32, tag = "1")]

View File

@ -1,3 +1,4 @@
// This file is @generated by prost-build.
/// A data structure that describes a series of transactions to be created. /// A data structure that describes a series of transactions to be created.
#[allow(clippy::derive_partial_eq_without_eq)] #[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)] #[derive(Clone, PartialEq, ::prost::Message)]
@ -51,7 +52,7 @@ pub struct ProposalStep {
/// for that payment, based upon the payment address and the selected inputs to /// for that payment, based upon the payment address and the selected inputs to
/// the transaction. /// the transaction.
#[allow(clippy::derive_partial_eq_without_eq)] #[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)] #[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct PaymentOutputPool { pub struct PaymentOutputPool {
#[prost(uint32, tag = "1")] #[prost(uint32, tag = "1")]
pub payment_index: u32, pub payment_index: u32,
@ -75,7 +76,7 @@ pub struct ReceivedOutput {
/// A reference a payment in a prior step of the proposal. This payment must /// A reference a payment in a prior step of the proposal. This payment must
/// belong to the wallet. /// belong to the wallet.
#[allow(clippy::derive_partial_eq_without_eq)] #[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)] #[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct PriorStepOutput { pub struct PriorStepOutput {
#[prost(uint32, tag = "1")] #[prost(uint32, tag = "1")]
pub step_index: u32, pub step_index: u32,
@ -84,7 +85,7 @@ pub struct PriorStepOutput {
} }
/// A reference a change output from a prior step of the proposal. /// A reference a change output from a prior step of the proposal.
#[allow(clippy::derive_partial_eq_without_eq)] #[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)] #[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct PriorStepChange { pub struct PriorStepChange {
#[prost(uint32, tag = "1")] #[prost(uint32, tag = "1")]
pub step_index: u32, pub step_index: u32,

View File

@ -1,3 +1,4 @@
// This file is @generated by prost-build.
/// A BlockID message contains identifiers to select a block: a height or a /// A BlockID message contains identifiers to select a block: a height or a
/// hash. Specification by hash is not implemented, but may be in the future. /// hash. Specification by hash is not implemented, but may be in the future.
#[allow(clippy::derive_partial_eq_without_eq)] #[allow(clippy::derive_partial_eq_without_eq)]
@ -60,11 +61,11 @@ pub struct SendResponse {
} }
/// Chainspec is a placeholder to allow specification of a particular chain fork. /// Chainspec is a placeholder to allow specification of a particular chain fork.
#[allow(clippy::derive_partial_eq_without_eq)] #[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)] #[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct ChainSpec {} pub struct ChainSpec {}
/// Empty is for gRPCs that take no arguments, currently only GetLightdInfo. /// Empty is for gRPCs that take no arguments, currently only GetLightdInfo.
#[allow(clippy::derive_partial_eq_without_eq)] #[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)] #[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct Empty {} pub struct Empty {}
/// LightdInfo returns various information about this lightwalletd instance /// LightdInfo returns various information about this lightwalletd instance
/// and the state of the blockchain. /// and the state of the blockchain.
@ -124,7 +125,7 @@ pub struct TransparentAddressBlockFilter {
/// can simulate a delay, to create many simultaneous connections. Units /// can simulate a delay, to create many simultaneous connections. Units
/// are microseconds. /// are microseconds.
#[allow(clippy::derive_partial_eq_without_eq)] #[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)] #[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct Duration { pub struct Duration {
#[prost(int64, tag = "1")] #[prost(int64, tag = "1")]
pub interval_us: i64, pub interval_us: i64,
@ -133,7 +134,7 @@ pub struct Duration {
/// are executing upon entry and upon exit (after the delay). /// are executing upon entry and upon exit (after the delay).
/// This rpc is used for testing only. /// This rpc is used for testing only.
#[allow(clippy::derive_partial_eq_without_eq)] #[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)] #[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct PingResponse { pub struct PingResponse {
#[prost(int64, tag = "1")] #[prost(int64, tag = "1")]
pub entry: i64, pub entry: i64,
@ -153,7 +154,7 @@ pub struct AddressList {
pub addresses: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, pub addresses: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
} }
#[allow(clippy::derive_partial_eq_without_eq)] #[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)] #[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct Balance { pub struct Balance {
#[prost(int64, tag = "1")] #[prost(int64, tag = "1")]
pub value_zat: i64, pub value_zat: i64,
@ -188,7 +189,7 @@ pub struct TreeState {
pub orchard_tree: ::prost::alloc::string::String, pub orchard_tree: ::prost::alloc::string::String,
} }
#[allow(clippy::derive_partial_eq_without_eq)] #[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)] #[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct GetSubtreeRootsArg { pub struct GetSubtreeRootsArg {
/// Index identifying where to start returning subtree roots /// Index identifying where to start returning subtree roots
#[prost(uint32, tag = "1")] #[prost(uint32, tag = "1")]