Compare commits

...

17 Commits

Author SHA1 Message Date
Jack Grigg 2352fbc1ed
Merge pull request #7030 from daira/nicer-bip0039-language-handling
Make the handling of bip0039 languages nicer
2025-05-20 16:31:44 +01:00
Daira-Emma Hopwood 78695a7d63 Make the handling of bip0039 languages nicer.
Signed-off-by: Daira-Emma Hopwood <daira@jacaranda.org>
2025-05-20 10:40:28 +01:00
Jack Grigg 4256156874
Merge pull request #7029 from pacu/fix-test-compiler-error
Fixes test/sighash_tests.cpp compiler error
2025-05-19 13:21:37 +01:00
Jack Grigg 3b5ecb2b5d
Merge pull request #7027 from str4d/rust-updates-6.3.0
Rust updates for 6.3.0
2025-05-19 13:20:17 +01:00
pacu 9c593754c9
Fixes test/sighash_tests.cpp compiler error
closes #7028
2025-05-15 13:51:45 -03:00
Jack Grigg dfec26eb1d rust: thiserror 2 2025-05-09 00:27:58 +00:00
Jack Grigg 7cdc7457a4 depends: cxx 1.0.158 2025-05-09 00:21:54 +00:00
Jack Grigg 2403a0aed9 rust: clearscreen 4 2025-05-08 23:39:55 +00:00
Jack Grigg be5ff646dc rust: Migrate to `zcash_primitives 0.21` 2025-05-08 23:33:04 +00:00
Jack Grigg e90508083e rust: Migrate to `bip0039 0.12` 2025-05-08 23:33:04 +00:00
Kris Nuttycombe 1f1f7a385a
Merge pull request #7018 from zcash/version-6.2.0
Merge 6.2.0 back into the main branch
2025-04-21 12:00:53 -06:00
Kris Nuttycombe e3119e5b72 ci: Use the `clone_url` field of the `repo` object for `git fetch` to check a PR
This also modifies changed file list parsing to avoid the need for a
shell variable.
2025-04-17 14:29:32 -06:00
Daira-Emma Hopwood c2cbbc3ae2 Merge remote-tracking branch 'origin' into version-6.2.0 2025-04-17 13:47:00 +01:00
Kris Nuttycombe a78675000b
Merge pull request #7021 from zcash/release-v6.2.0
Release v6.2.0
2025-04-17 06:16:07 -06:00
y4ssi ff279fdb6a Update ci.yml
Remove CI for ubuntu 20.04
2025-04-16 22:22:51 -06:00
Kris Nuttycombe 76db11eba1
Merge pull request #7020 from zcash/remove_ubuntu2004_build
Remove CI for ubuntu 20.04
2025-04-16 22:17:51 -06:00
y4ssi bb59677ec9 Update ci.yml
Remove CI for ubuntu 20.04
2025-04-16 21:51:21 -06:00
14 changed files with 632 additions and 362 deletions

View File

@ -45,9 +45,9 @@ jobs:
fetch-depth: 0 fetch-depth: 0
- name: Fetch the commits for the PR branch - name: Fetch the commits for the PR branch
run: git fetch $HEAD_REPO $HEAD_SHA run: git fetch "${HEAD_REPO}" "${HEAD_SHA}"
env: env:
HEAD_REPO: ${{ github.event.pull_request.head.repo }} HEAD_REPO: ${{ github.event.pull_request.head.repo.clone_url }}
HEAD_SHA: ${{ github.event.pull_request.head.sha }} HEAD_SHA: ${{ github.event.pull_request.head.sha }}
- name: Check whether the changes are only to the set of filtered paths - name: Check whether the changes are only to the set of filtered paths
@ -74,7 +74,11 @@ jobs:
] ]
paths_regex = '(?:%s)' % '|'.join(paths) paths_regex = '(?:%s)' % '|'.join(paths)
changed_files = shlex.split(os.environ["CHANGED_FILES"]) lex = shlex.shlex(posix = True)
lex.whitespace = '\n\r'
lex.whitespace_split = True
lex.commenters = ''
changed_files = list(lex)
if len(changed_files) == 0: if len(changed_files) == 0:
sys.exit(1) sys.exit(1)
@ -85,9 +89,8 @@ jobs:
print('result=verified' if verified else 'result=skipped') print('result=verified' if verified else 'result=skipped')
EOF EOF
CHANGED_FILES=$(git diff --name-only ${{ github.sha }}...$HEAD_SHA --)
echo $CHANGED_FILES git diff --name-only ${{ github.sha }}...$HEAD_SHA -- | python3 ./subclass.py >> $GITHUB_OUTPUT
CHANGED_FILES=$CHANGED_FILES python3 ./subclass.py >> $GITHUB_OUTPUT
env: env:
HEAD_SHA: ${{ github.event.pull_request.head.sha }} HEAD_SHA: ${{ github.event.pull_request.head.sha }}

271
Cargo.lock generated
View File

@ -151,9 +151,9 @@ dependencies = [
[[package]] [[package]]
name = "bip0039" name = "bip0039"
version = "0.10.1" 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 = "bef0f0152ec5cf17f49a5866afaa3439816207fd4f0a224c0211ffaf5e278426" checksum = "568b6890865156d9043af490d4c4081c385dd68ea10acd6ca15733d511e6b51c"
dependencies = [ dependencies = [
"hmac", "hmac",
"pbkdf2", "pbkdf2",
@ -325,9 +325,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]] [[package]]
name = "cfg_aliases" name = "cfg_aliases"
version = "0.1.1" version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724"
[[package]] [[package]]
name = "chacha20" name = "chacha20"
@ -392,23 +392,24 @@ checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6"
[[package]] [[package]]
name = "clearscreen" name = "clearscreen"
version = "3.0.0" version = "4.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2f8c93eb5f77c9050c7750e14f13ef1033a40a0aac70c6371535b6763a01438c" checksum = "8c41dc435a7b98e4608224bbf65282309f5403719df9113621b30f8b6f74e2f4"
dependencies = [ dependencies = [
"nix", "nix",
"terminfo", "terminfo",
"thiserror", "thiserror 2.0.12",
"which", "which",
"winapi", "windows-sys 0.59.0",
] ]
[[package]] [[package]]
name = "codespan-reporting" name = "codespan-reporting"
version = "0.11.1" 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 = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" checksum = "fe6d2e5af09e8c8ad56c969f2157a3d4238cebc7c55f0a517728c38f7b200f81"
dependencies = [ dependencies = [
"serde",
"termcolor", "termcolor",
"unicode-width", "unicode-width",
] ]
@ -522,9 +523,9 @@ dependencies = [
[[package]] [[package]]
name = "cxx" name = "cxx"
version = "1.0.136" version = "1.0.158"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ad7c7515609502d316ab9a24f67dc045132d93bfd3f00713389e90d9898bf30d" checksum = "a71ea7f29c73f7ffa64c50b83c9fe4d3a6d4be89a86b009eb80d5a6d3429d741"
dependencies = [ dependencies = [
"cc", "cc",
"cxxbridge-cmd", "cxxbridge-cmd",
@ -536,9 +537,9 @@ dependencies = [
[[package]] [[package]]
name = "cxxbridge-cmd" name = "cxxbridge-cmd"
version = "1.0.136" version = "1.0.158"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6c33fd49f5d956a1b7ee5f7a9768d58580c6752838d92e39d0d56439efdedc35" checksum = "4f44296c8693e9ea226a48f6a122727f77aa9e9e338380cb021accaeeb7ee279"
dependencies = [ dependencies = [
"clap", "clap",
"codespan-reporting", "codespan-reporting",
@ -549,15 +550,15 @@ dependencies = [
[[package]] [[package]]
name = "cxxbridge-flags" name = "cxxbridge-flags"
version = "1.0.136" version = "1.0.158"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "be0f1077278fac36299cce8446effd19fe93a95eedb10d39265f3bf67b3036c9" checksum = "c42f69c181c176981ae44ba9876e2ea41ce8e574c296b38d06925ce9214fb8e4"
[[package]] [[package]]
name = "cxxbridge-macro" name = "cxxbridge-macro"
version = "1.0.136" version = "1.0.158"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3da7e4d6e74af6b79031d264b2f13c3ea70af1978083741c41ffce9308f1f24f" checksum = "8faff5d4467e0709448187df29ccbf3b0982cc426ee444a193f87b11afb565a8"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
@ -595,26 +596,6 @@ dependencies = [
"subtle", "subtle",
] ]
[[package]]
name = "dirs"
version = "4.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059"
dependencies = [
"dirs-sys",
]
[[package]]
name = "dirs-sys"
version = "0.3.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6"
dependencies = [
"libc",
"redox_users",
"winapi",
]
[[package]] [[package]]
name = "document-features" name = "document-features"
version = "0.2.10" version = "0.2.10"
@ -657,6 +638,12 @@ version = "1.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0"
[[package]]
name = "env_home"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c7f84e12ccf0a7ddc17a6c41c93326024c42920d7ee630d04950e6926645c0fe"
[[package]] [[package]]
name = "equihash" name = "equihash"
version = "0.2.0" version = "0.2.0"
@ -669,12 +656,12 @@ dependencies = [
[[package]] [[package]]
name = "errno" name = "errno"
version = "0.3.9" version = "0.3.11"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" checksum = "976dd42dc7e85965fe702eb8164f21f450704bdde31faefd6471dba214cb594e"
dependencies = [ dependencies = [
"libc", "libc",
"windows-sys 0.52.0", "windows-sys 0.59.0",
] ]
[[package]] [[package]]
@ -804,6 +791,18 @@ dependencies = [
"wasi", "wasi",
] ]
[[package]]
name = "getset"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f3586f256131df87204eb733da72e3d3eb4f343c639f4b7be279ac7c48baeafe"
dependencies = [
"proc-macro-error2",
"proc-macro2",
"quote",
"syn 2.0.94",
]
[[package]] [[package]]
name = "gimli" name = "gimli"
version = "0.31.0" version = "0.31.0"
@ -1104,9 +1103,9 @@ dependencies = [
[[package]] [[package]]
name = "libc" name = "libc"
version = "0.2.159" version = "0.2.172"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "561d97a539a36e26a9a5fad1ea11a3039a67714694aaa379433e580854bc3dc5" checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa"
[[package]] [[package]]
name = "libm" name = "libm"
@ -1114,16 +1113,6 @@ version = "0.2.8"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058"
[[package]]
name = "libredox"
version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d"
dependencies = [
"bitflags 2.6.0",
"libc",
]
[[package]] [[package]]
name = "librustzcash" name = "librustzcash"
version = "0.2.0" version = "0.2.0"
@ -1149,6 +1138,7 @@ dependencies = [
"ipnet", "ipnet",
"jubjub", "jubjub",
"libc", "libc",
"macro_find_and_replace",
"memuse", "memuse",
"metrics", "metrics",
"metrics-exporter-prometheus", "metrics-exporter-prometheus",
@ -1164,7 +1154,7 @@ dependencies = [
"secp256k1", "secp256k1",
"secrecy", "secrecy",
"subtle", "subtle",
"thiserror", "thiserror 2.0.12",
"time", "time",
"tokio", "tokio",
"tracing", "tracing",
@ -1179,6 +1169,7 @@ dependencies = [
"zcash_primitives", "zcash_primitives",
"zcash_proofs", "zcash_proofs",
"zcash_protocol", "zcash_protocol",
"zcash_transparent",
"zeroize", "zeroize",
] ]
@ -1197,6 +1188,12 @@ version = "0.4.14"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89"
[[package]]
name = "linux-raw-sys"
version = "0.9.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12"
[[package]] [[package]]
name = "litrs" name = "litrs"
version = "0.4.1" version = "0.4.1"
@ -1218,6 +1215,12 @@ dependencies = [
"libc", "libc",
] ]
[[package]]
name = "macro_find_and_replace"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c3c5eef824b07f20e21212f95520a9b29007258680db871e2a146d7accc0dca6"
[[package]] [[package]]
name = "matchers" name = "matchers"
version = "0.1.0" version = "0.1.0"
@ -1248,9 +1251,6 @@ name = "memuse"
version = "0.2.2" version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3d97bbf43eb4f088f8ca469930cde17fa036207c9a5e02ccc5107c4e8b17c964" checksum = "3d97bbf43eb4f088f8ca469930cde17fa036207c9a5e02ccc5107c4e8b17c964"
dependencies = [
"nonempty",
]
[[package]] [[package]]
name = "metrics" name = "metrics"
@ -1276,7 +1276,7 @@ dependencies = [
"metrics", "metrics",
"metrics-util", "metrics-util",
"quanta", "quanta",
"thiserror", "thiserror 1.0.64",
"tokio", "tokio",
"tracing", "tracing",
] ]
@ -1337,9 +1337,9 @@ dependencies = [
[[package]] [[package]]
name = "nix" name = "nix"
version = "0.28.0" version = "0.29.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4" checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46"
dependencies = [ dependencies = [
"bitflags 2.6.0", "bitflags 2.6.0",
"cfg-if", "cfg-if",
@ -1440,17 +1440,20 @@ checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381"
[[package]] [[package]]
name = "orchard" name = "orchard"
version = "0.10.0" version = "0.10.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4f18e997fa121de5c73e95cdc7e8512ae43b7de38904aeea5e5713cc48f3c0ba" checksum = "f2f4cf75baf85bbd6f15eb919b7e70afdc4a311eef0a3e8a053e65542fe2b58e"
dependencies = [ dependencies = [
"aes", "aes",
"bitvec", "bitvec",
"blake2b_simd", "blake2b_simd",
"core2",
"ff", "ff",
"fpe", "fpe",
"getset",
"group", "group",
"halo2_gadgets", "halo2_gadgets",
"halo2_poseidon",
"halo2_proofs", "halo2_proofs",
"hex", "hex",
"incrementalmerkletree", "incrementalmerkletree",
@ -1462,6 +1465,7 @@ dependencies = [
"rand", "rand",
"reddsa", "reddsa",
"serde", "serde",
"sinsemilla",
"subtle", "subtle",
"tracing", "tracing",
"visibility", "visibility",
@ -1487,9 +1491,9 @@ dependencies = [
[[package]] [[package]]
name = "password-hash" name = "password-hash"
version = "0.3.2" version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1d791538a6dcc1e7cb7fe6f6b58aca40e7f79403c45b2bc274008b5e647af1d8" checksum = "346f04948ba92c43e8469c1ee6736c7563d71012b17d40745260fe106aac2166"
dependencies = [ dependencies = [
"base64ct", "base64ct",
"rand_core", "rand_core",
@ -1513,9 +1517,9 @@ dependencies = [
[[package]] [[package]]
name = "pbkdf2" name = "pbkdf2"
version = "0.10.1" version = "0.12.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "271779f35b581956db91a3e55737327a03aa051e90b1c47aeb189508533adfd7" checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2"
dependencies = [ dependencies = [
"digest", "digest",
"password-hash", "password-hash",
@ -1623,6 +1627,28 @@ dependencies = [
"uint", "uint",
] ]
[[package]]
name = "proc-macro-error-attr2"
version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5"
dependencies = [
"proc-macro2",
"quote",
]
[[package]]
name = "proc-macro-error2"
version = "2.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802"
dependencies = [
"proc-macro-error-attr2",
"proc-macro2",
"quote",
"syn 2.0.94",
]
[[package]] [[package]]
name = "proc-macro2" name = "proc-macro2"
version = "1.0.92" version = "1.0.92"
@ -1771,7 +1797,7 @@ dependencies = [
"pasta_curves", "pasta_curves",
"rand_core", "rand_core",
"serde", "serde",
"thiserror", "thiserror 1.0.64",
"zeroize", "zeroize",
] ]
@ -1784,21 +1810,10 @@ dependencies = [
"rand_core", "rand_core",
"reddsa", "reddsa",
"serde", "serde",
"thiserror", "thiserror 1.0.64",
"zeroize", "zeroize",
] ]
[[package]]
name = "redox_users"
version = "0.4.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43"
dependencies = [
"getrandom",
"libredox",
"thiserror",
]
[[package]] [[package]]
name = "regex" name = "regex"
version = "1.10.6" version = "1.10.6"
@ -1876,10 +1891,23 @@ dependencies = [
"bitflags 2.6.0", "bitflags 2.6.0",
"errno", "errno",
"libc", "libc",
"linux-raw-sys", "linux-raw-sys 0.4.14",
"windows-sys 0.52.0", "windows-sys 0.52.0",
] ]
[[package]]
name = "rustix"
version = "1.0.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c71e83d6afe7ff64890ec6b71d6a69bb8a610ab78ce364b3352876bb4c801266"
dependencies = [
"bitflags 2.6.0",
"errno",
"libc",
"linux-raw-sys 0.9.4",
"windows-sys 0.59.0",
]
[[package]] [[package]]
name = "rustversion" name = "rustversion"
version = "1.0.19" version = "1.0.19"
@ -1900,9 +1928,9 @@ dependencies = [
[[package]] [[package]]
name = "sapling-crypto" name = "sapling-crypto"
version = "0.3.0" version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cfff8cfce16aeb38da50b8e2ed33c9018f30552beff2210c266662a021b17f38" checksum = "85c2acdbbab83d554fc2dceea5f7d6d3da71e57adb18a6c80b8901bd0eee54b0"
dependencies = [ dependencies = [
"aes", "aes",
"bellman", "bellman",
@ -1914,6 +1942,7 @@ dependencies = [
"document-features", "document-features",
"ff", "ff",
"fpe", "fpe",
"getset",
"group", "group",
"hex", "hex",
"incrementalmerkletree", "incrementalmerkletree",
@ -2082,9 +2111,9 @@ checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
[[package]] [[package]]
name = "subtle" name = "subtle"
version = "2.4.1" version = "2.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292"
[[package]] [[package]]
name = "syn" name = "syn"
@ -2123,7 +2152,7 @@ dependencies = [
"cfg-if", "cfg-if",
"fastrand", "fastrand",
"once_cell", "once_cell",
"rustix", "rustix 0.38.37",
"windows-sys 0.59.0", "windows-sys 0.59.0",
] ]
@ -2138,11 +2167,10 @@ dependencies = [
[[package]] [[package]]
name = "terminfo" name = "terminfo"
version = "0.8.0" version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "666cd3a6681775d22b200409aad3b089c5b99fb11ecdd8a204d9d62f8148498f" checksum = "d4ea810f0692f9f51b382fff5893887bb4580f5fa246fde546e0b13e7fcee662"
dependencies = [ dependencies = [
"dirs",
"fnv", "fnv",
"nom", "nom",
"phf", "phf",
@ -2155,7 +2183,16 @@ version = "1.0.64"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d50af8abc119fb8bb6dbabcfa89656f46f84aa0ac7688088608076ad2b459a84" checksum = "d50af8abc119fb8bb6dbabcfa89656f46f84aa0ac7688088608076ad2b459a84"
dependencies = [ dependencies = [
"thiserror-impl", "thiserror-impl 1.0.64",
]
[[package]]
name = "thiserror"
version = "2.0.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708"
dependencies = [
"thiserror-impl 2.0.12",
] ]
[[package]] [[package]]
@ -2169,6 +2206,17 @@ dependencies = [
"syn 2.0.94", "syn 2.0.94",
] ]
[[package]]
name = "thiserror-impl"
version = "2.0.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.94",
]
[[package]] [[package]]
name = "thread_local" name = "thread_local"
version = "1.1.8" version = "1.1.8"
@ -2263,7 +2311,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3566e8ce28cc0a3fe42519fc80e6b4c943cc4c8cef275620eb8dac2d3d4e06cf" checksum = "3566e8ce28cc0a3fe42519fc80e6b4c943cc4c8cef275620eb8dac2d3d4e06cf"
dependencies = [ dependencies = [
"crossbeam-channel", "crossbeam-channel",
"thiserror", "thiserror 1.0.64",
"time", "time",
"tracing-subscriber", "tracing-subscriber",
] ]
@ -2531,13 +2579,13 @@ dependencies = [
[[package]] [[package]]
name = "which" name = "which"
version = "6.0.3" version = "7.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b4ee928febd44d98f2f459a4a79bd4d928591333a494a10a868418ac1b39cf1f" checksum = "24d643ce3fd3e5b54854602a080f34fb10ab75e0b813ee32d00ca2b44fa74762"
dependencies = [ dependencies = [
"either", "either",
"home", "env_home",
"rustix", "rustix 1.0.7",
"winsafe", "winsafe",
] ]
@ -2725,9 +2773,9 @@ dependencies = [
[[package]] [[package]]
name = "zcash_primitives" name = "zcash_primitives"
version = "0.19.0" version = "0.21.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6ab47d526d7fd6f88b3a2854ad81b54757a80c2aeadd1d8b06f690556af9743c" checksum = "9b45f3ca3a9df34fcdbf036c2c814417bb417bde742812abc09d744bb3d7ed72"
dependencies = [ dependencies = [
"aes", "aes",
"bip32", "bip32",
@ -2738,6 +2786,7 @@ dependencies = [
"equihash", "equihash",
"ff", "ff",
"fpe", "fpe",
"getset",
"group", "group",
"hex", "hex",
"incrementalmerkletree", "incrementalmerkletree",
@ -2760,14 +2809,15 @@ dependencies = [
"zcash_note_encryption", "zcash_note_encryption",
"zcash_protocol", "zcash_protocol",
"zcash_spec", "zcash_spec",
"zcash_transparent",
"zip32", "zip32",
] ]
[[package]] [[package]]
name = "zcash_proofs" name = "zcash_proofs"
version = "0.19.0" version = "0.21.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "daba607872e60d91a09248d8e1ea3d6801c819fb80d67016d9de02d81323c10d" checksum = "d5826910c516675eca1f34b3557e159f4e35a4a1711b39fa4f01fb0adb9a9c24"
dependencies = [ dependencies = [
"bellman", "bellman",
"blake2b_simd", "blake2b_simd",
@ -2810,6 +2860,31 @@ dependencies = [
"blake2b_simd", "blake2b_simd",
] ]
[[package]]
name = "zcash_transparent"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ed0512e8e02af804e852fbbc4bd5db35a9037bc253d2ce396506293a6e7dd745"
dependencies = [
"bip32",
"blake2b_simd",
"bs58",
"core2",
"document-features",
"getset",
"hex",
"proptest",
"ripemd",
"secp256k1",
"sha2",
"subtle",
"zcash_address",
"zcash_encoding",
"zcash_protocol",
"zcash_spec",
"zip32",
]
[[package]] [[package]]
name = "zerocopy" name = "zerocopy"
version = "0.7.35" version = "0.7.35"

View File

@ -35,7 +35,7 @@ path = "src/rust/bin/wallet_tool.rs"
[dependencies] [dependencies]
bellman = "0.14" bellman = "0.14"
bip0039 = { version = "0.10.1", features = ["std", "all-languages"] } bip0039 = { version = "0.12", features = ["std", "all-languages"] }
blake2b_simd = "1" blake2b_simd = "1"
blake2s_simd = "1" blake2s_simd = "1"
bls12_381 = "0.8" bls12_381 = "0.8"
@ -51,7 +51,7 @@ jubjub = "0.10"
memuse = "0.2" memuse = "0.2"
nonempty = "0.7" nonempty = "0.7"
orchard = "0.10" orchard = "0.10"
sapling = { package = "sapling-crypto", version = "0.3", features = ["temporary-zcashd"] } sapling = { package = "sapling-crypto", version = "0.4", features = ["temporary-zcashd"] }
secp256k1 = "0.27" secp256k1 = "0.27"
subtle = "2.2" subtle = "2.2"
rand_core = "0.6" rand_core = "0.6"
@ -59,12 +59,13 @@ redjubjub = "0.7"
tracing = "0.1" tracing = "0.1"
tracing-core = "0.1" tracing-core = "0.1"
tracing-appender = "0.2" tracing-appender = "0.2"
transparent = { package = "zcash_transparent", version = "0.1" }
zcash_address = "0.6" zcash_address = "0.6"
zcash_encoding = "0.2.1" zcash_encoding = "0.2.1"
zcash_history = "0.4" zcash_history = "0.4"
zcash_note_encryption = "0.4" zcash_note_encryption = "0.4"
zcash_primitives = { version = "0.19", features = ["temporary-zcashd", "transparent-inputs"] } zcash_primitives = { version = "0.21", features = ["temporary-zcashd", "transparent-inputs"] }
zcash_proofs = { version = "0.19", features = ["directories"] } zcash_proofs = { version = "0.21", features = ["directories"] }
zcash_protocol = { version = "0.4", features = ["local-consensus"] } zcash_protocol = { version = "0.4", features = ["local-consensus"] }
ed25519-zebra = "4" ed25519-zebra = "4"
zeroize = "1.4.2" zeroize = "1.4.2"
@ -72,7 +73,7 @@ wagyu-zcash-parameters = "0.2"
# Rust/C++ interop # Rust/C++ interop
# The version needs to match depends/packages/native_cxxbridge.mk # The version needs to match depends/packages/native_cxxbridge.mk
cxx = { version = "=1.0.136", features = ["c++17"] } cxx = { version = "=1.0.158", features = ["c++17"] }
# Rust threading # Rust threading
rayon = "1.5" rayon = "1.5"
@ -91,16 +92,19 @@ gumdrop = "0.8"
# (also depends on tracing, and tracing-subscriber with "env-filter" and "fmt" features) # (also depends on tracing, and tracing-subscriber with "env-filter" and "fmt" features)
anyhow = "1.0" anyhow = "1.0"
backtrace = "0.3" backtrace = "0.3"
clearscreen = "3" clearscreen = "4"
rand = "0.8" rand = "0.8"
secrecy = "0.8" secrecy = "0.8"
thiserror = "1" thiserror = "2"
time = { version = "0.3", features = ["formatting", "macros"] } time = { version = "0.3", features = ["formatting", "macros"] }
# Macros
macro_find_and_replace = "1"
[dev-dependencies] [dev-dependencies]
incrementalmerkletree = { version = "0.7", features = ["test-dependencies"] } incrementalmerkletree = { version = "0.7", features = ["test-dependencies"] }
proptest = "1.0.0" proptest = "1.0.0"
zcash_primitives = { version = "0.19", features = ["temporary-zcashd", "transparent-inputs", "test-dependencies"] } zcash_primitives = { version = "0.21", features = ["temporary-zcashd", "transparent-inputs", "test-dependencies"] }
[dependencies.tracing-subscriber] [dependencies.tracing-subscriber]
version = "0.3" version = "0.3"

View File

@ -1,14 +1,14 @@
package=native_cxxbridge package=native_cxxbridge
# The version needs to match cxx in Cargo.toml # The version needs to match cxx in Cargo.toml
$(package)_version=1.0.136 $(package)_version=1.0.158
$(package)_download_path=https://github.com/dtolnay/cxx/archive/refs/tags $(package)_download_path=https://github.com/dtolnay/cxx/archive/refs/tags
$(package)_file_name=native_cxxbridge-$($(package)_version).tar.gz $(package)_file_name=native_cxxbridge-$($(package)_version).tar.gz
$(package)_download_file=$($(package)_version).tar.gz $(package)_download_file=$($(package)_version).tar.gz
$(package)_sha256_hash=a77e43f1e4f5bb6aba2e9a77ac928e63799d237cde6fe1aa2c26d3cc57c8ae74 $(package)_sha256_hash=58a3c7b28033caeeb8a5e1f74c5124d63b1bfc8a67a5740c475c6d12d1bc7f4b
$(package)_build_subdir=gen/cmd $(package)_build_subdir=gen/cmd
$(package)_dependencies=native_rust $(package)_dependencies=native_rust
# This file is somewhat annoying to update, but can be done like so from the repo base: # This file is somewhat annoying to update, but can be done like so from the repo base:
# $ export VERSION=1.0.136 # $ export VERSION=1.0.158
# $ rm .cargo/config.toml .cargo/.configured-for-offline # $ rm .cargo/config.toml .cargo/.configured-for-offline
# $ mkdir tmp # $ mkdir tmp
# $ cd tmp # $ cd tmp

View File

@ -15,10 +15,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9"
[[package]] [[package]]
name = "cc" name = "bitflags"
version = "1.2.6" version = "2.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8d6dbb628b8f8555f86d0323c2eb39e3ec81901f4b83e091db8a6a76d316a333" checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd"
[[package]]
name = "cc"
version = "1.2.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8691782945451c1c383942c4874dbe63814f61cb57ef773cda2972682b7bb3c0"
dependencies = [ dependencies = [
"jobserver", "jobserver",
"libc", "libc",
@ -33,9 +39,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]] [[package]]
name = "clang-ast" name = "clang-ast"
version = "0.1.27" version = "0.1.31"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4c01fb720699b43fbf9db04dbb8d2b5d037f38938e6b8153863db7532b24a86c" checksum = "0f215fa69fa4265fc39aef0b1a1e724e62392da3dcc8c08f892dd323107e9a8d"
dependencies = [ dependencies = [
"foldhash", "foldhash",
"serde", "serde",
@ -43,18 +49,18 @@ dependencies = [
[[package]] [[package]]
name = "clap" name = "clap"
version = "4.5.23" version = "4.5.37"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3135e7ec2ef7b10c6ed8950f0f792ed96ee093fa088608f1c76e569722700c84" checksum = "eccb054f56cbd38340b380d4a8e69ef1f02f1af43db2f0cc817a4774d80ae071"
dependencies = [ dependencies = [
"clap_builder", "clap_builder",
] ]
[[package]] [[package]]
name = "clap_builder" name = "clap_builder"
version = "4.5.23" version = "4.5.37"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "30582fc632330df2bd26877bde0c1f4470d57c582bbc070376afcd04d8cb4838" checksum = "efd9466fac8543255d3b1fcad4762c5e116ffe808c8a3043d4263cd4fd4862a2"
dependencies = [ dependencies = [
"anstyle", "anstyle",
"clap_lex", "clap_lex",
@ -69,10 +75,11 @@ checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6"
[[package]] [[package]]
name = "codespan-reporting" name = "codespan-reporting"
version = "0.11.1" 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 = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" checksum = "fe6d2e5af09e8c8ad56c969f2157a3d4238cebc7c55f0a517728c38f7b200f81"
dependencies = [ dependencies = [
"serde",
"termcolor", "termcolor",
"unicode-width", "unicode-width",
] ]
@ -88,7 +95,7 @@ dependencies = [
[[package]] [[package]]
name = "cxx" name = "cxx"
version = "1.0.136" version = "1.0.158"
dependencies = [ dependencies = [
"cc", "cc",
"cxx-build", "cxx-build",
@ -105,7 +112,7 @@ dependencies = [
[[package]] [[package]]
name = "cxx-build" name = "cxx-build"
version = "1.0.136" version = "1.0.158"
dependencies = [ dependencies = [
"cc", "cc",
"codespan-reporting", "codespan-reporting",
@ -120,7 +127,7 @@ dependencies = [
[[package]] [[package]]
name = "cxx-gen" name = "cxx-gen"
version = "0.7.136" version = "0.7.158"
dependencies = [ dependencies = [
"codespan-reporting", "codespan-reporting",
"proc-macro2", "proc-macro2",
@ -139,7 +146,7 @@ dependencies = [
[[package]] [[package]]
name = "cxxbridge-cmd" name = "cxxbridge-cmd"
version = "1.0.136" version = "1.0.158"
dependencies = [ dependencies = [
"clap", "clap",
"codespan-reporting", "codespan-reporting",
@ -150,11 +157,11 @@ dependencies = [
[[package]] [[package]]
name = "cxxbridge-flags" name = "cxxbridge-flags"
version = "1.0.136" version = "1.0.158"
[[package]] [[package]]
name = "cxxbridge-macro" name = "cxxbridge-macro"
version = "1.0.136" version = "1.0.158"
dependencies = [ dependencies = [
"clang-ast", "clang-ast",
"cxx", "cxx",
@ -179,21 +186,21 @@ dependencies = [
[[package]] [[package]]
name = "dissimilar" name = "dissimilar"
version = "1.0.9" version = "1.0.10"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "59f8e79d1fbf76bdfbde321e902714bf6c49df88a7dda6fc682fc2979226962d" checksum = "8975ffdaa0ef3661bfe02dbdcc06c9f829dfafe6a3c474de366a8d5e44276921"
[[package]] [[package]]
name = "equivalent" name = "equivalent"
version = "1.0.1" version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f"
[[package]] [[package]]
name = "flate2" name = "flate2"
version = "1.0.35" version = "1.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c936bfdafb507ebbf50b8074c54fa31c5be9a1e7e5f467dd659697041407d07c" checksum = "7ced92e76e966ca2fd84c8f7aa01a4aea65b0eb6648d72f7c8f3e2764a67fece"
dependencies = [ dependencies = [
"crc32fast", "crc32fast",
"miniz_oxide", "miniz_oxide",
@ -201,9 +208,21 @@ dependencies = [
[[package]] [[package]]
name = "foldhash" name = "foldhash"
version = "0.1.4" version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a0d2fde1f7b3d48b8395d5f2de76c18a528bd6a9cdde438df747bfcba3e05d6f" checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2"
[[package]]
name = "getrandom"
version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "73fea8450eea4bac3940448fb7ae50d91f034f941199fcd9d909a5a07aa455f0"
dependencies = [
"cfg-if",
"libc",
"r-efi",
"wasi",
]
[[package]] [[package]]
name = "glob" name = "glob"
@ -213,15 +232,15 @@ checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2"
[[package]] [[package]]
name = "hashbrown" name = "hashbrown"
version = "0.15.2" version = "0.15.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" checksum = "84b26c544d002229e640969970a2e74021aadf6e2f96372b9c58eff97de08eb3"
[[package]] [[package]]
name = "indexmap" name = "indexmap"
version = "2.7.0" version = "2.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f" checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e"
dependencies = [ dependencies = [
"equivalent", "equivalent",
"hashbrown", "hashbrown",
@ -229,30 +248,31 @@ dependencies = [
[[package]] [[package]]
name = "itoa" name = "itoa"
version = "1.0.14" version = "1.0.15"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c"
[[package]] [[package]]
name = "jobserver" name = "jobserver"
version = "0.1.32" version = "0.1.33"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" checksum = "38f262f097c174adebe41eb73d66ae9c06b2844fb0da69969647bbddd9b0538a"
dependencies = [ dependencies = [
"getrandom",
"libc", "libc",
] ]
[[package]] [[package]]
name = "libc" name = "libc"
version = "0.2.169" version = "0.2.172"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa"
[[package]] [[package]]
name = "link-cplusplus" name = "link-cplusplus"
version = "1.0.9" version = "1.0.10"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9d240c6f7e1ba3a28b0249f774e6a9dd0175054b52dfbb61b16eb8505c3785c9" checksum = "4a6f6da007f968f9def0d65a05b187e2960183de70c160204ecfccf0ee330212"
dependencies = [ dependencies = [
"cc", "cc",
] ]
@ -275,69 +295,75 @@ dependencies = [
[[package]] [[package]]
name = "miniz_oxide" name = "miniz_oxide"
version = "0.8.2" version = "0.8.8"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4ffbe83022cedc1d264172192511ae958937694cd57ce297164951b8b3568394" checksum = "3be647b768db090acb35d5ec5db2b0e1f1de11133ca123b9eacf5137868f892a"
dependencies = [ dependencies = [
"adler2", "adler2",
] ]
[[package]] [[package]]
name = "pkg-config" name = "pkg-config"
version = "0.3.31" version = "0.3.32"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c"
[[package]] [[package]]
name = "proc-macro2" name = "proc-macro2"
version = "1.0.92" version = "1.0.95"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778"
dependencies = [ dependencies = [
"unicode-ident", "unicode-ident",
] ]
[[package]] [[package]]
name = "quote" name = "quote"
version = "1.0.38" version = "1.0.40"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
] ]
[[package]] [[package]]
name = "rustversion" name = "r-efi"
version = "1.0.19" version = "5.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f7c45b9784283f1b2e7fb61b42047c2fd678ef0960d4f6f1eba131594cc369d4" checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5"
[[package]]
name = "rustversion"
version = "1.0.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2"
[[package]] [[package]]
name = "ryu" name = "ryu"
version = "1.0.18" version = "1.0.20"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f"
[[package]] [[package]]
name = "scratch" name = "scratch"
version = "1.0.7" version = "1.0.8"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a3cf7c11c38cb994f3d40e8a8cde3bbd1f72a435e4c49e85d6553d8312306152" checksum = "9f6280af86e5f559536da57a45ebc84948833b3bee313a7dd25232e09c878a52"
[[package]] [[package]]
name = "serde" name = "serde"
version = "1.0.217" version = "1.0.219"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70" checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6"
dependencies = [ dependencies = [
"serde_derive", "serde_derive",
] ]
[[package]] [[package]]
name = "serde_derive" name = "serde_derive"
version = "1.0.217" version = "1.0.219"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
@ -346,9 +372,9 @@ dependencies = [
[[package]] [[package]]
name = "serde_json" name = "serde_json"
version = "1.0.134" version = "1.0.140"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d00f4175c42ee48b15416f6193a959ba3a0d67fc699a0db9ad12df9f83991c7d" checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373"
dependencies = [ dependencies = [
"itoa", "itoa",
"memchr", "memchr",
@ -379,9 +405,9 @@ checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
[[package]] [[package]]
name = "syn" name = "syn"
version = "2.0.94" version = "2.0.101"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "987bc0be1cdea8b10216bd06e2ca407d40b9543468fafd3ddfb02f36e77f71f3" checksum = "8ce2b7fc941b3a24138a0a7cf8e858bfc6a992e7978a068a5c760deb0ed43caf"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
@ -390,9 +416,9 @@ dependencies = [
[[package]] [[package]]
name = "target-triple" name = "target-triple"
version = "0.1.3" version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "42a4d50cdb458045afc8131fd91b64904da29548bcb63c7236e0844936c13078" checksum = "1ac9aa371f599d22256307c24a9d748c041e548cbf599f35d890f9d365361790"
[[package]] [[package]]
name = "termcolor" name = "termcolor"
@ -405,9 +431,9 @@ dependencies = [
[[package]] [[package]]
name = "toml" name = "toml"
version = "0.8.19" version = "0.8.22"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" checksum = "05ae329d1f08c4d17a59bed7ff5b5a769d062e64a62d34a3261b219e62cd5aae"
dependencies = [ dependencies = [
"serde", "serde",
"serde_spanned", "serde_spanned",
@ -417,31 +443,38 @@ dependencies = [
[[package]] [[package]]
name = "toml_datetime" name = "toml_datetime"
version = "0.6.8" version = "0.6.9"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" checksum = "3da5db5a963e24bc68be8b17b6fa82814bb22ee8660f192bb182771d498f09a3"
dependencies = [ dependencies = [
"serde", "serde",
] ]
[[package]] [[package]]
name = "toml_edit" name = "toml_edit"
version = "0.22.22" version = "0.22.26"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" checksum = "310068873db2c5b3e7659d2cc35d21855dbafa50d1ce336397c666e3cb08137e"
dependencies = [ dependencies = [
"indexmap", "indexmap",
"serde", "serde",
"serde_spanned", "serde_spanned",
"toml_datetime", "toml_datetime",
"toml_write",
"winnow", "winnow",
] ]
[[package]] [[package]]
name = "trybuild" name = "toml_write"
version = "1.0.101" version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8dcd332a5496c026f1e14b7f3d2b7bd98e509660c04239c58b0ba38a12daded4" checksum = "bfb942dfe1d8e29a7ee7fcbde5bd2b9a25fb89aa70caea2eba3bee836ff41076"
[[package]]
name = "trybuild"
version = "1.0.104"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6ae08be68c056db96f0e6c6dd820727cca756ced9e1f4cc7fdd20e2a55e23898"
dependencies = [ dependencies = [
"dissimilar", "dissimilar",
"glob", "glob",
@ -455,15 +488,24 @@ dependencies = [
[[package]] [[package]]
name = "unicode-ident" name = "unicode-ident"
version = "1.0.14" version = "1.0.18"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512"
[[package]] [[package]]
name = "unicode-width" name = "unicode-width"
version = "0.1.14" version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" checksum = "1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd"
[[package]]
name = "wasi"
version = "0.14.2+wasi-0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3"
dependencies = [
"wit-bindgen-rt",
]
[[package]] [[package]]
name = "winapi" name = "winapi"
@ -571,9 +613,18 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
[[package]] [[package]]
name = "winnow" name = "winnow"
version = "0.6.21" version = "0.7.10"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e6f5bb5257f2407a5425c6e749bfd9692192a73e70a6060516ac04f889087d68" checksum = "c06928c8748d81b05c9be96aad92e1b6ff01833332f281e8cfca3be4b35fc9ec"
dependencies = [ dependencies = [
"memchr", "memchr",
] ]
[[package]]
name = "wit-bindgen-rt"
version = "0.39.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1"
dependencies = [
"bitflags",
]

View File

@ -800,6 +800,11 @@ who = "Jack Grigg <jack@electriccoin.co>"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
delta = "1.0.135 -> 1.0.136" delta = "1.0.135 -> 1.0.136"
[[audits.cxxbridge-flags]]
who = "Jack Grigg <jack@electriccoin.co>"
criteria = "safe-to-deploy"
delta = "1.0.146 -> 1.0.158"
[[audits.cxxbridge-macro]] [[audits.cxxbridge-macro]]
who = "Daira Hopwood <daira@jacaranda.org>" who = "Daira Hopwood <daira@jacaranda.org>"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
@ -1564,6 +1569,12 @@ who = "Daira-Emma Hopwood <daira@jacaranda.org>"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
delta = "0.4.20 -> 0.4.21" delta = "0.4.20 -> 0.4.21"
[[audits.macro_find_and_replace]]
who = "Daira-Emma Hopwood <daira@jacaranda.org>"
criteria = "safe-to-deploy"
version = "1.0.0"
notes = "Fully reviewed. No problems found other than a few typos in documentation (filed https://github.com/lord-ne/rust-macro-find-and-replace/pull/1 )."
[[audits.maybe-rayon]] [[audits.maybe-rayon]]
who = "Sean Bowe <ewillbefull@gmail.com>" who = "Sean Bowe <ewillbefull@gmail.com>"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
@ -3392,6 +3403,12 @@ user-id = 6289 # Jack Grigg (str4d)
start = "2023-12-07" start = "2023-12-07"
end = "2025-03-18" end = "2025-03-18"
[[trusted.zcash_transparent]]
criteria = "safe-to-deploy"
user-id = 169181 # Kris Nuttycombe (nuttycom)
start = "2024-12-17"
end = "2026-05-08"
[[trusted.zip32]] [[trusted.zip32]]
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
user-id = 6289 # Jack Grigg (str4d) user-id = 6289 # Jack Grigg (str4d)

View File

@ -63,7 +63,7 @@ version = "0.13.0"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
[[exemptions.bip0039]] [[exemptions.bip0039]]
version = "0.9.0" version = "0.12.0"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
[[exemptions.bip32]] [[exemptions.bip32]]
@ -107,7 +107,7 @@ version = "0.9.0"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
[[exemptions.clearscreen]] [[exemptions.clearscreen]]
version = "1.0.9" version = "4.0.1"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
[[exemptions.const-oid]] [[exemptions.const-oid]]
@ -147,11 +147,11 @@ version = "0.1.0"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
[[exemptions.cxx]] [[exemptions.cxx]]
version = "1.0.126" version = "1.0.158"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
[[exemptions.cxxbridge-macro]] [[exemptions.cxxbridge-macro]]
version = "1.0.126" version = "1.0.158"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
[[exemptions.der]] [[exemptions.der]]
@ -162,14 +162,6 @@ criteria = "safe-to-deploy"
version = "0.9.0" version = "0.9.0"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
[[exemptions.dirs]]
version = "2.0.2"
criteria = "safe-to-deploy"
[[exemptions.dirs-sys]]
version = "0.3.7"
criteria = "safe-to-deploy"
[[exemptions.ed25519]] [[exemptions.ed25519]]
version = "2.2.1" version = "2.2.1"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
@ -178,6 +170,10 @@ criteria = "safe-to-deploy"
version = "3.0.0" version = "3.0.0"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
[[exemptions.env_home]]
version = "0.1.0"
criteria = "safe-to-deploy"
[[exemptions.ff]] [[exemptions.ff]]
version = "0.12.0" version = "0.12.0"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
@ -210,6 +206,10 @@ criteria = "safe-to-deploy"
version = "0.2.6" version = "0.2.6"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
[[exemptions.getset]]
version = "0.1.4"
criteria = "safe-to-deploy"
[[exemptions.group]] [[exemptions.group]]
version = "0.12.0" version = "0.12.0"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
@ -267,19 +267,19 @@ version = "0.9.0"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
[[exemptions.libc]] [[exemptions.libc]]
version = "0.2.159" version = "0.2.172"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
[[exemptions.libm]] [[exemptions.libm]]
version = "0.2.2" version = "0.2.2"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
[[exemptions.libredox]] [[exemptions.linux-raw-sys]]
version = "0.0.1" version = "0.4.14"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
[[exemptions.linux-raw-sys]] [[exemptions.linux-raw-sys]]
version = "0.4.14" version = "0.9.4"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
[[exemptions.memchr]] [[exemptions.memchr]]
@ -343,7 +343,7 @@ version = "0.22.0"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
[[exemptions.password-hash]] [[exemptions.password-hash]]
version = "0.3.2" version = "0.5.0"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
[[exemptions.pasta_curves]] [[exemptions.pasta_curves]]
@ -351,7 +351,7 @@ version = "0.4.0"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
[[exemptions.pbkdf2]] [[exemptions.pbkdf2]]
version = "0.9.0" version = "0.12.2"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
[[exemptions.phf]] [[exemptions.phf]]
@ -390,6 +390,14 @@ criteria = "safe-to-deploy"
version = "0.12.2" version = "0.12.2"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
[[exemptions.proc-macro-error-attr2]]
version = "2.0.0"
criteria = "safe-to-deploy"
[[exemptions.proc-macro-error2]]
version = "2.0.1"
criteria = "safe-to-deploy"
[[exemptions.proptest]] [[exemptions.proptest]]
version = "1.6.0" version = "1.6.0"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
@ -414,10 +422,6 @@ criteria = "safe-to-deploy"
version = "0.3.0" version = "0.3.0"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
[[exemptions.redox_users]]
version = "0.4.6"
criteria = "safe-to-deploy"
[[exemptions.regex]] [[exemptions.regex]]
version = "1.10.6" version = "1.10.6"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
@ -446,6 +450,10 @@ criteria = "safe-to-deploy"
version = "0.38.34" version = "0.38.34"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
[[exemptions.rustix]]
version = "1.0.7"
criteria = "safe-to-deploy"
[[exemptions.rusty-fork]] [[exemptions.rusty-fork]]
version = "0.3.0" version = "0.3.0"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
@ -482,10 +490,6 @@ criteria = "safe-to-deploy"
version = "0.7.3" version = "0.7.3"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
[[exemptions.subtle]]
version = "2.4.1"
criteria = "safe-to-deploy"
[[exemptions.syn]] [[exemptions.syn]]
version = "1.0.102" version = "1.0.102"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
@ -499,7 +503,15 @@ version = "3.12.0"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
[[exemptions.terminfo]] [[exemptions.terminfo]]
version = "0.8.0" version = "0.9.0"
criteria = "safe-to-deploy"
[[exemptions.thiserror]]
version = "2.0.12"
criteria = "safe-to-deploy"
[[exemptions.thiserror-impl]]
version = "2.0.12"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
[[exemptions.time]] [[exemptions.time]]
@ -575,7 +587,7 @@ version = "0.3.70"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
[[exemptions.which]] [[exemptions.which]]
version = "6.0.3" version = "7.0.3"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
[[exemptions.winapi]] [[exemptions.winapi]]

View File

@ -71,15 +71,15 @@ user-login = "nuttycom"
user-name = "Kris Nuttycombe" user-name = "Kris Nuttycombe"
[[publisher.orchard]] [[publisher.orchard]]
version = "0.10.0" version = "0.10.2"
when = "2024-10-02" when = "2025-05-08"
user-id = 169181 user-id = 169181
user-login = "nuttycom" user-login = "nuttycom"
user-name = "Kris Nuttycombe" user-name = "Kris Nuttycombe"
[[publisher.sapling-crypto]] [[publisher.sapling-crypto]]
version = "0.3.0" version = "0.4.0"
when = "2024-10-02" when = "2024-12-17"
user-id = 169181 user-id = 169181
user-login = "nuttycom" user-login = "nuttycom"
user-name = "Kris Nuttycombe" user-name = "Kris Nuttycombe"
@ -190,18 +190,18 @@ user-login = "str4d"
user-name = "Jack Grigg" user-name = "Jack Grigg"
[[publisher.zcash_primitives]] [[publisher.zcash_primitives]]
version = "0.19.0" version = "0.21.0"
when = "2024-10-02" when = "2024-12-17"
user-id = 6289 user-id = 169181
user-login = "str4d" user-login = "nuttycom"
user-name = "Jack Grigg" user-name = "Kris Nuttycombe"
[[publisher.zcash_proofs]] [[publisher.zcash_proofs]]
version = "0.19.0" version = "0.21.0"
when = "2024-10-02" when = "2024-12-17"
user-id = 6289 user-id = 169181
user-login = "str4d" user-login = "nuttycom"
user-name = "Jack Grigg" user-name = "Kris Nuttycombe"
[[publisher.zcash_protocol]] [[publisher.zcash_protocol]]
version = "0.4.3" version = "0.4.3"
@ -217,6 +217,13 @@ user-id = 6289
user-login = "str4d" user-login = "str4d"
user-name = "Jack Grigg" user-name = "Jack Grigg"
[[publisher.zcash_transparent]]
version = "0.1.0"
when = "2024-12-17"
user-id = 169181
user-login = "nuttycom"
user-name = "Kris Nuttycombe"
[[publisher.zip32]] [[publisher.zip32]]
version = "0.1.3" version = "0.1.3"
when = "2024-12-13" when = "2024-12-13"
@ -335,6 +342,11 @@ criteria = "safe-to-deploy"
delta = "0.3.0 -> 0.3.1" delta = "0.3.0 -> 0.3.1"
notes = "Just a dependency version bump and a bug fix for redox" notes = "Just a dependency version bump and a bug fix for redox"
[[audits.bytecode-alliance.audits.errno]]
who = "Dan Gohman <dev@sunfishcode.online>"
criteria = "safe-to-deploy"
delta = "0.3.9 -> 0.3.10"
[[audits.bytecode-alliance.audits.foldhash]] [[audits.bytecode-alliance.audits.foldhash]]
who = "Alex Crichton <alex@alexcrichton.com>" who = "Alex Crichton <alex@alexcrichton.com>"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
@ -721,6 +733,39 @@ delta = "1.0.131 -> 1.0.135"
notes = "No code changes in the delta" notes = "No code changes in the delta"
aggregated-from = "https://chromium.googlesource.com/chromium/src/+/main/third_party/rust/chromium_crates_io/supply-chain/audits.toml?format=TEXT" aggregated-from = "https://chromium.googlesource.com/chromium/src/+/main/third_party/rust/chromium_crates_io/supply-chain/audits.toml?format=TEXT"
[[audits.google.audits.cxxbridge-flags]]
who = "Lukasz Anforowicz <lukasza@chromium.org>"
criteria = "safe-to-deploy"
delta = "1.0.136 -> 1.0.137"
notes = "The delta just removes `#![allow(clippy::let_and_return)]` from `lib.rs`."
aggregated-from = "https://chromium.googlesource.com/chromium/src/+/main/third_party/rust/chromium_crates_io/supply-chain/audits.toml?format=TEXT"
[[audits.google.audits.cxxbridge-flags]]
who = "Dustin J. Mitchell <djmitche@chromium.org>"
criteria = "safe-to-deploy"
delta = "1.0.137 -> 1.0.140"
aggregated-from = "https://chromium.googlesource.com/chromium/src/+/main/third_party/rust/chromium_crates_io/supply-chain/audits.toml?format=TEXT"
[[audits.google.audits.cxxbridge-flags]]
who = "Takuto Ikuta <tikuta@chromium.org>"
criteria = "safe-to-deploy"
delta = "1.0.140 -> 1.0.141"
aggregated-from = "https://chromium.googlesource.com/chromium/src/+/main/third_party/rust/chromium_crates_io/supply-chain/audits.toml?format=TEXT"
[[audits.google.audits.cxxbridge-flags]]
who = "Daniel Cheng <dcheng@chromium.org>"
criteria = "safe-to-deploy"
delta = "1.0.141 -> 1.0.143"
notes = "Only changes for rustdoc generation."
aggregated-from = "https://chromium.googlesource.com/chromium/src/+/main/third_party/rust/chromium_crates_io/supply-chain/audits.toml?format=TEXT"
[[audits.google.audits.cxxbridge-flags]]
who = "Lukasz Anforowicz <lukasza@chromium.org>"
criteria = "safe-to-deploy"
delta = "1.0.143 -> 1.0.146"
notes = "No actual changes in this delta - just a version bump."
aggregated-from = "https://chromium.googlesource.com/chromium/src/+/main/third_party/rust/chromium_crates_io/supply-chain/audits.toml?format=TEXT"
[[audits.google.audits.fastrand]] [[audits.google.audits.fastrand]]
who = "George Burgess IV <gbiv@google.com>" who = "George Burgess IV <gbiv@google.com>"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
@ -1491,6 +1536,11 @@ who = "David Cook <dcook@divviup.org>"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
version = "0.10.2" version = "0.10.2"
[[audits.isrg.audits.subtle]]
who = "David Cook <dcook@divviup.org>"
criteria = "safe-to-deploy"
delta = "2.5.0 -> 2.6.1"
[[audits.isrg.audits.thiserror]] [[audits.isrg.audits.thiserror]]
who = "Brandon Pitman <bran@bran.land>" who = "Brandon Pitman <bran@bran.land>"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
@ -1605,6 +1655,13 @@ criteria = "safe-to-deploy"
delta = "1.0.78 -> 1.0.83" delta = "1.0.78 -> 1.0.83"
aggregated-from = "https://raw.githubusercontent.com/mozilla/glean/main/supply-chain/audits.toml" aggregated-from = "https://raw.githubusercontent.com/mozilla/glean/main/supply-chain/audits.toml"
[[audits.mozilla.audits.cfg_aliases]]
who = "Alex Franchuk <afranchuk@mozilla.com>"
criteria = "safe-to-deploy"
delta = "0.1.1 -> 0.2.1"
notes = "Very minor changes."
aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml"
[[audits.mozilla.audits.crossbeam-channel]] [[audits.mozilla.audits.crossbeam-channel]]
who = "Jan-Erik Rediger <jrediger@mozilla.com>" who = "Jan-Erik Rediger <jrediger@mozilla.com>"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
@ -1831,6 +1888,12 @@ libc, but the usage looks correct.
""" """
aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml"
[[audits.mozilla.audits.nix]]
who = "Alex Franchuk <afranchuk@mozilla.com>"
criteria = "safe-to-deploy"
delta = "0.28.0 -> 0.29.0"
aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml"
[[audits.mozilla.audits.num-integer]] [[audits.mozilla.audits.num-integer]]
who = "Josh Stone <jistone@redhat.com>" who = "Josh Stone <jistone@redhat.com>"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
@ -1915,6 +1978,13 @@ criteria = "safe-to-deploy"
delta = "0.5.5 -> 0.5.7" delta = "0.5.5 -> 0.5.7"
aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml"
[[audits.mozilla.audits.subtle]]
who = "Simon Friedberger <simon@mozilla.com>"
criteria = "safe-to-deploy"
version = "2.5.0"
notes = "The goal is to provide some constant-time correctness for cryptographic implementations. The approach is reasonable, it is known to be insufficient but this is pointed out in the documentation."
aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml"
[[audits.mozilla.audits.time-core]] [[audits.mozilla.audits.time-core]]
who = "Kershaw Chang <kershaw@mozilla.com>" who = "Kershaw Chang <kershaw@mozilla.com>"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
@ -1984,6 +2054,19 @@ criteria = "safe-to-deploy"
delta = "1.11.0 -> 1.13.0" delta = "1.11.0 -> 1.13.0"
aggregated-from = "https://raw.githubusercontent.com/zcash/librustzcash/main/supply-chain/audits.toml" aggregated-from = "https://raw.githubusercontent.com/zcash/librustzcash/main/supply-chain/audits.toml"
[[audits.zcash.audits.errno]]
who = "Jack Grigg <jack@electriccoin.co>"
criteria = "safe-to-deploy"
delta = "0.3.10 -> 0.3.11"
notes = "The `__errno` location for vxworks and cygwin looks correct from a quick search."
aggregated-from = "https://raw.githubusercontent.com/zcash/wallet/main/supply-chain/audits.toml"
[[audits.zcash.audits.getset]]
who = "Jack Grigg <jack@electriccoin.co>"
criteria = "safe-to-deploy"
delta = "0.1.4 -> 0.1.5"
aggregated-from = "https://raw.githubusercontent.com/zcash/wallet/main/supply-chain/audits.toml"
[[audits.zcash.audits.hashbrown]] [[audits.zcash.audits.hashbrown]]
who = "Daira-Emma Hopwood <daira@jacaranda.org>" who = "Daira-Emma Hopwood <daira@jacaranda.org>"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"

View File

@ -48,48 +48,6 @@ native_rust 1.84.1 2025-12-31
native_rust 1.85.0 2025-12-31 native_rust 1.85.0 2025-12-31
native_rust 1.85.1 2025-12-31 native_rust 1.85.1 2025-12-31
native_rust 1.86.0 2025-12-31 native_rust 1.86.0 2025-12-31
native_cxxbridge 1.0.137 2025-12-31
native_cxxbridge 1.0.138 2025-12-31
native_cxxbridge 1.0.139 2025-12-31
native_cxxbridge 1.0.140 2025-12-31
native_cxxbridge 1.0.141 2025-12-31
native_cxxbridge 1.0.142 2025-12-31
native_cxxbridge 1.0.143 2025-12-31
native_cxxbridge 1.0.144 2025-12-31
native_cxxbridge 1.0.145 2025-12-31
native_cxxbridge 1.0.146 2025-12-31
native_cxxbridge 1.0.147 2025-12-31
native_cxxbridge 1.0.148 2025-12-31
native_cxxbridge 1.0.149 2025-12-31
native_cxxbridge 1.0.150 2025-12-31
native_cxxbridge 1.0.151 2025-12-31
native_cxxbridge 1.0.152 2025-12-31
native_cxxbridge 1.0.153 2025-12-31
native_cxxbridge 1.0.154 2025-12-31
native_cxxbridge 1.0.155 2025-12-31
native_cxxbridge 1.0.156 2025-12-31
native_cxxbridge 1.0.157 2025-12-31
rustcxx 1.0.137 2025-12-31
rustcxx 1.0.138 2025-12-31
rustcxx 1.0.139 2025-12-31
rustcxx 1.0.140 2025-12-31
rustcxx 1.0.141 2025-12-31
rustcxx 1.0.142 2025-12-31
rustcxx 1.0.143 2025-12-31
rustcxx 1.0.144 2025-12-31
rustcxx 1.0.145 2025-12-31
rustcxx 1.0.146 2025-12-31
rustcxx 1.0.147 2025-12-31
rustcxx 1.0.148 2025-12-31
rustcxx 1.0.149 2025-12-31
rustcxx 1.0.150 2025-12-31
rustcxx 1.0.151 2025-12-31
rustcxx 1.0.152 2025-12-31
rustcxx 1.0.153 2025-12-31
rustcxx 1.0.154 2025-12-31
rustcxx 1.0.155 2025-12-31
rustcxx 1.0.156 2025-12-31
rustcxx 1.0.157 2025-12-31
# We follow upstream Bitcoin Core's LevelDB updates # We follow upstream Bitcoin Core's LevelDB updates
leveldb 1.23 2025-12-31 leveldb 1.23 2025-12-31

View File

@ -11,6 +11,7 @@ use bls12_381::Bls12;
use group::GroupEncoding; use group::GroupEncoding;
use memuse::DynamicUsage; use memuse::DynamicUsage;
use rand_core::{OsRng, RngCore}; use rand_core::{OsRng, RngCore};
use sapling::keys::EphemeralSecretKey;
use sapling::{ use sapling::{
builder::BundleType, builder::BundleType,
circuit::{self, OutputParameters, SpendParameters}, circuit::{self, OutputParameters, SpendParameters},
@ -344,7 +345,7 @@ impl OutputProver for StaticTxProver {
type Proof = Proof<Bls12>; type Proof = Proof<Bls12>;
fn prepare_circuit( fn prepare_circuit(
esk: jubjub::Fr, esk: &EphemeralSecretKey,
payment_address: PaymentAddress, payment_address: PaymentAddress,
rcm: jubjub::Fr, rcm: jubjub::Fr,
value: NoteValue, value: NoteValue,
@ -366,7 +367,7 @@ impl OutputProver for StaticTxProver {
pub(crate) struct SaplingBuilder { pub(crate) struct SaplingBuilder {
builder: sapling::builder::Builder, builder: sapling::builder::Builder,
signing_keys: Vec<SpendAuthorizingKey>, extsks: Vec<ExtendedSpendingKey>,
} }
pub(crate) fn new_sapling_builder( pub(crate) fn new_sapling_builder(
@ -390,7 +391,7 @@ pub(crate) fn new_sapling_builder(
bundle_type, bundle_type,
anchor, anchor,
), ),
signing_keys: vec![], extsks: vec![],
})) }))
} }
@ -425,9 +426,13 @@ impl SaplingBuilder {
.map_err(|e| format!("Invalid Sapling Merkle path: {}", e))?; .map_err(|e| format!("Invalid Sapling Merkle path: {}", e))?;
self.builder self.builder
.add_spend(&extsk, note, merkle_path) .add_spend(
extsk.to_diversifiable_full_viewing_key().fvk().clone(),
note,
merkle_path,
)
.map_err(|e| format!("Failed to add Sapling spend: {}", e))?; .map_err(|e| format!("Failed to add Sapling spend: {}", e))?;
self.signing_keys.push(extsk.expsk.ask); self.extsks.push(extsk);
Ok(()) Ok(())
} }
@ -450,19 +455,16 @@ impl SaplingBuilder {
} }
fn build(self) -> Result<SaplingUnauthorizedBundle, String> { fn build(self) -> Result<SaplingUnauthorizedBundle, String> {
let Self { let Self { builder, extsks } = self;
builder,
signing_keys,
} = self;
let prover = crate::sapling::StaticTxProver; let prover = crate::sapling::StaticTxProver;
let rng = OsRng; let rng = OsRng;
let bundle = builder let bundle = builder
.build::<StaticTxProver, StaticTxProver, _, Amount>(rng) .build::<StaticTxProver, StaticTxProver, _, Amount>(&extsks, rng)
.map_err(|e| format!("Failed to build Sapling bundle: {}", e))? .map_err(|e| format!("Failed to build Sapling bundle: {}", e))?
.map(|(bundle, _)| bundle.create_proofs(&prover, &prover, rng, ())); .map(|(bundle, _)| bundle.create_proofs(&prover, &prover, rng, ()));
Ok(SaplingUnauthorizedBundle { Ok(SaplingUnauthorizedBundle {
bundle, bundle,
signing_keys, signing_keys: extsks.into_iter().map(|extsk| extsk.expsk.ask).collect(),
}) })
} }
} }

View File

@ -1,21 +1,11 @@
use libc::c_char; use libc::c_char;
use std::{ use std::{ffi::CStr, ptr};
convert::{TryFrom, TryInto},
ffi::CStr,
ptr,
};
use crate::zip339_ffi::{ use crate::zip339_ffi::{
zip339_entropy_to_phrase, zip339_free_phrase, zip339_phrase_to_seed, zip339_validate_phrase, zip339_entropy_to_phrase, zip339_free_phrase, zip339_phrase_to_seed, zip339_validate_phrase,
Language, Language,
}; };
#[test]
fn test_try_from_language() {
assert_eq!(Language(0).try_into(), Ok(bip0039::Language::English));
assert!(bip0039::Language::try_from(Language(1234)).is_err());
}
#[test] #[test]
fn test_free_null_phrase_is_noop() { fn test_free_null_phrase_is_noop() {
zip339_free_phrase(ptr::null_mut()); zip339_free_phrase(ptr::null_mut());

View File

@ -1,4 +1,4 @@
use std::convert::TryInto; use std::convert::{TryFrom, TryInto};
use std::io::Cursor; use std::io::Cursor;
use std::{ptr, slice}; use std::{ptr, slice};
@ -11,7 +11,6 @@ use zcash_primitives::{
consensus::BranchId, consensus::BranchId,
legacy::Script, legacy::Script,
transaction::{ transaction::{
components::transparent,
sighash::{SignableInput, TransparentAuthorizingContext}, sighash::{SignableInput, TransparentAuthorizingContext},
sighash_v5::v5_signature_hash, sighash_v5::v5_signature_hash,
txid::TxIdDigester, txid::TxIdDigester,
@ -62,10 +61,10 @@ pub extern "C" fn zcash_transaction_digests(
#[derive(Clone, Debug)] #[derive(Clone, Debug)]
pub(crate) struct TransparentAuth { pub(crate) struct TransparentAuth {
all_prev_outputs: Vec<transparent::TxOut>, all_prev_outputs: Vec<transparent::bundle::TxOut>,
} }
impl transparent::Authorization for TransparentAuth { impl transparent::bundle::Authorization for TransparentAuth {
type ScriptSig = Script; type ScriptSig = Script;
} }
@ -92,7 +91,7 @@ pub(crate) struct MapTransparent {
impl MapTransparent { impl MapTransparent {
pub(crate) fn parse(all_prev_outputs: &[u8], tx: &Transaction) -> Result<Self, String> { pub(crate) fn parse(all_prev_outputs: &[u8], tx: &Transaction) -> Result<Self, String> {
let mut cursor = Cursor::new(all_prev_outputs); let mut cursor = Cursor::new(all_prev_outputs);
match Vector::read(&mut cursor, transparent::TxOut::read) { match Vector::read(&mut cursor, transparent::bundle::TxOut::read) {
Err(e) => Err(format!("Invalid all_prev_outputs field: {}", e)), Err(e) => Err(format!("Invalid all_prev_outputs field: {}", e)),
Ok(_) if (cursor.position() as usize) != all_prev_outputs.len() => { Ok(_) if (cursor.position() as usize) != all_prev_outputs.len() => {
Err("all_prev_outputs had trailing data".into()) Err("all_prev_outputs had trailing data".into())
@ -131,15 +130,17 @@ impl MapTransparent {
} }
} }
impl transparent::MapAuth<transparent::Authorized, TransparentAuth> for MapTransparent { impl transparent::bundle::MapAuth<transparent::bundle::Authorized, TransparentAuth>
for MapTransparent
{
fn map_script_sig( fn map_script_sig(
&self, &self,
s: <transparent::Authorized as transparent::Authorization>::ScriptSig, s: <transparent::bundle::Authorized as transparent::bundle::Authorization>::ScriptSig,
) -> <TransparentAuth as transparent::Authorization>::ScriptSig { ) -> <TransparentAuth as transparent::bundle::Authorization>::ScriptSig {
s s
} }
fn map_authorization(&self, _: transparent::Authorized) -> TransparentAuth { fn map_authorization(&self, _: transparent::bundle::Authorized) -> TransparentAuth {
// TODO: This map should consume self, so we can move self.auth // TODO: This map should consume self, so we can move self.auth
self.auth.clone() self.auth.clone()
} }
@ -261,6 +262,21 @@ pub extern "C" fn zcash_transaction_zip244_signature_digest(
let signable_input = if index == NOT_AN_INPUT { let signable_input = if index == NOT_AN_INPUT {
SignableInput::Shielded SignableInput::Shielded
} else { } else {
// This conversion to `u8` is always fine:
// - We only call this FFI method once we already know we are using ZIP 244.
// - Even if we weren't, `hash_type` is one byte tacked onto the end of a
// signature, so it always fits into a `u8` (and TBH I don't know why we
// ever set it to `u32`).
let hash_type = u8::try_from(hash_type).unwrap();
let hash_type = match transparent::sighash::SighashType::parse(hash_type) {
Some(hash_type) => hash_type,
None => {
error!("hash_type violates the ZIP 244 rules");
return false;
}
};
let prevout = match precomputed_tx.tx.transparent_bundle() { let prevout = match precomputed_tx.tx.transparent_bundle() {
Some(bundle) => match bundle.authorization.all_prev_outputs.get(index) { Some(bundle) => match bundle.authorization.all_prev_outputs.get(index) {
Some(prevout) => prevout, Some(prevout) => prevout,
@ -275,22 +291,17 @@ pub extern "C" fn zcash_transaction_zip244_signature_digest(
} }
}; };
SignableInput::Transparent { SignableInput::Transparent(transparent::sighash::SignableInput::from_parts(
// This conversion to `u8` is always fine: hash_type,
// - We only call this FFI method once we already know we are using ZIP 244.
// - Even if we weren't, `hash_type` is one byte tacked onto the end of a
// signature, so it always fits into a `u8` (and TBH I don't know why we
// ever set it to `u32`).
hash_type: hash_type.try_into().unwrap(),
index, index,
// `script_code` is unused by `v5_signature_hash`, so instead of passing the // `script_code` is unused by `v5_signature_hash`, so instead of passing the
// real `script_code` across the FFI (and paying the serialization and parsing // real `script_code` across the FFI (and paying the serialization and parsing
// cost for no benefit), we set it to the prevout's `script_pubkey`. This // cost for no benefit), we set it to the prevout's `script_pubkey`. This
// happens to be correct anyway for every output script kind except P2SH. // happens to be correct anyway for every output script kind except P2SH.
script_code: &prevout.script_pubkey, &prevout.script_pubkey,
script_pubkey: &prevout.script_pubkey, &prevout.script_pubkey,
value: prevout.value, prevout.value,
} ))
}; };
let sighash = v5_signature_hash( let sighash = v5_signature_hash(

View File

@ -1,6 +1,7 @@
use libc::{c_char, size_t}; use libc::{c_char, size_t};
use macro_find_and_replace::replace_token_sequence;
use std::{ use std::{
convert::{TryFrom, TryInto}, borrow::Cow,
ffi::{CStr, CString}, ffi::{CStr, CString},
ptr, slice, ptr, slice,
}; };
@ -13,27 +14,90 @@ use zeroize::Zeroize;
#[derive(Copy, Clone)] #[derive(Copy, Clone)]
pub struct Language(pub u32); pub struct Language(pub u32);
impl TryFrom<Language> for bip0039::Language { impl Language {
type Error = (); #[allow(clippy::too_many_arguments)]
fn handle<Ctx, T>(
fn try_from(language: Language) -> Result<Self, ()> { self,
ctx: Ctx,
en: impl FnOnce(Ctx) -> Option<T>,
zh_cn: impl FnOnce(Ctx) -> Option<T>,
zh_tw: impl FnOnce(Ctx) -> Option<T>,
cs: impl FnOnce(Ctx) -> Option<T>,
fr: impl FnOnce(Ctx) -> Option<T>,
it: impl FnOnce(Ctx) -> Option<T>,
ja: impl FnOnce(Ctx) -> Option<T>,
ko: impl FnOnce(Ctx) -> Option<T>,
pt: impl FnOnce(Ctx) -> Option<T>,
es: impl FnOnce(Ctx) -> Option<T>,
) -> Option<T> {
// These must match `src/rust/include/zip339.h`. // These must match `src/rust/include/zip339.h`.
match language { match self {
Language(0) => Ok(bip0039::Language::English), Language(0) => en(ctx),
Language(1) => Ok(bip0039::Language::SimplifiedChinese), Language(1) => zh_cn(ctx),
Language(2) => Ok(bip0039::Language::TraditionalChinese), Language(2) => zh_tw(ctx),
Language(3) => Ok(bip0039::Language::Czech), Language(3) => cs(ctx),
Language(4) => Ok(bip0039::Language::French), Language(4) => fr(ctx),
Language(5) => Ok(bip0039::Language::Italian), Language(5) => it(ctx),
Language(6) => Ok(bip0039::Language::Japanese), Language(6) => ja(ctx),
Language(7) => Ok(bip0039::Language::Korean), Language(7) => ko(ctx),
Language(8) => Ok(bip0039::Language::Portuguese), Language(8) => pt(ctx),
Language(9) => Ok(bip0039::Language::Spanish), Language(9) => es(ctx),
Language(_) => Err(()), Language(_) => None,
} }
} }
} }
macro_rules! all_languages {
($self:expr, $ctx:expr, $e:expr) => {
$self.handle(
$ctx,
replace_token_sequence!{[LANGUAGE], [bip0039::English], $e},
replace_token_sequence!{[LANGUAGE], [bip0039::ChineseSimplified], $e},
replace_token_sequence!{[LANGUAGE], [bip0039::ChineseTraditional], $e},
replace_token_sequence!{[LANGUAGE], [bip0039::Czech], $e},
replace_token_sequence!{[LANGUAGE], [bip0039::French], $e},
replace_token_sequence!{[LANGUAGE], [bip0039::Italian], $e},
replace_token_sequence!{[LANGUAGE], [bip0039::Japanese], $e},
replace_token_sequence!{[LANGUAGE], [bip0039::Korean], $e},
replace_token_sequence!{[LANGUAGE], [bip0039::Portuguese], $e},
replace_token_sequence!{[LANGUAGE], [bip0039::Spanish], $e},
)
};
}
impl Language {
fn with_mnemonic_phrase_from_entropy<E: Into<Vec<u8>>, T>(
self,
entropy: E,
f: impl FnOnce(&str) -> Option<T>,
) -> Option<T> {
all_languages!(self, (entropy, f), |(entropy, f)| {
bip0039::Mnemonic::<LANGUAGE>::from_entropy(entropy)
.ok()
.and_then(|mnemonic| f(mnemonic.phrase()))
})
}
fn with_seed_from_mnemonic_phrase<'a, P: Into<Cow<'a, str>>, T>(
self,
phrase: P,
passphrase: &str,
f: impl FnOnce([u8; 64]) -> Option<T>,
) -> Option<T> {
all_languages!(self, (phrase, passphrase, f), |(phrase, passphrase, f)| {
bip0039::Mnemonic::<LANGUAGE>::from_phrase(phrase)
.ok()
.and_then(|mnemonic| f(mnemonic.to_seed(passphrase)))
})
}
fn validate_mnemonic<'a, P: Into<Cow<'a, str>>>(self, phrase: P) -> Option<()> {
all_languages!(self, phrase, |phrase| {
bip0039::Mnemonic::<LANGUAGE>::validate(phrase).ok()
})
}
}
/// Creates a phrase with the given entropy, in the given `Language`. The phrase is represented as /// Creates a phrase with the given entropy, in the given `Language`. The phrase is represented as
/// a pointer to a null-terminated C string that must not be written to, and must be freed by /// a pointer to a null-terminated C string that must not be written to, and must be freed by
/// `zip339_free_phrase`. /// `zip339_free_phrase`.
@ -45,15 +109,14 @@ pub extern "C" fn zip339_entropy_to_phrase(
) -> *const c_char { ) -> *const c_char {
assert!(!entropy.is_null()); assert!(!entropy.is_null());
if let Ok(language) = language.try_into() { let entropy = unsafe { slice::from_raw_parts(entropy, entropy_len) }.to_vec();
let entropy = unsafe { slice::from_raw_parts(entropy, entropy_len) }.to_vec(); language
if let Ok(mnemonic) = bip0039::Mnemonic::from_entropy_in(language, entropy) { .with_mnemonic_phrase_from_entropy(entropy, |phrase| {
if let Ok(phrase) = CString::new(mnemonic.phrase()) { CString::new(phrase)
return phrase.into_raw() as *const c_char; .ok()
} .map(|phrase| phrase.into_raw() as *const c_char)
} })
} .unwrap_or(ptr::null())
ptr::null()
} }
/// Frees a phrase returned by `zip339_entropy_to_phrase`. /// Frees a phrase returned by `zip339_entropy_to_phrase`.
@ -74,10 +137,8 @@ pub extern "C" fn zip339_free_phrase(phrase: *const c_char) {
pub extern "C" fn zip339_validate_phrase(language: Language, phrase: *const c_char) -> bool { pub extern "C" fn zip339_validate_phrase(language: Language, phrase: *const c_char) -> bool {
assert!(!phrase.is_null()); assert!(!phrase.is_null());
if let Ok(language) = language.try_into() { if let Ok(phrase) = unsafe { CStr::from_ptr(phrase) }.to_str() {
if let Ok(phrase) = unsafe { CStr::from_ptr(phrase) }.to_str() { return language.validate_mnemonic(phrase).is_some();
return bip0039::Mnemonic::validate_in(language, phrase).is_ok();
}
} }
false false
} }
@ -93,20 +154,23 @@ pub extern "C" fn zip339_phrase_to_seed(
assert!(!phrase.is_null()); assert!(!phrase.is_null());
assert!(!buf.is_null()); assert!(!buf.is_null());
if let Ok(language) = language.try_into() { let phrase = unsafe { CStr::from_ptr(phrase) };
if let Ok(phrase) = unsafe { CStr::from_ptr(phrase) }.to_str() { phrase
if let Ok(mnemonic) = bip0039::Mnemonic::from_phrase_in(language, phrase) { .to_str()
// Use the empty passphrase. .ok()
let seed = mnemonic.to_seed(""); .and_then(|phrase| {
// Use the empty passphrase.
language.with_seed_from_mnemonic_phrase(phrase, "", |seed| {
unsafe { unsafe {
ptr::copy(seed.as_ptr(), buf, 64); ptr::copy(seed.as_ptr(), buf, 64);
} }
return true; Some(true)
})
})
.unwrap_or_else(|| {
unsafe {
ptr::write_bytes(buf, 0, 64);
} }
} false
} })
unsafe {
ptr::write_bytes(buf, 0, 64);
}
false
} }

View File

@ -31,7 +31,7 @@ uint256 static SignatureHashOld(CScript scriptCode, const CTransaction& txTo, un
static const uint256 one(uint256S("0000000000000000000000000000000000000000000000000000000000000001")); static const uint256 one(uint256S("0000000000000000000000000000000000000000000000000000000000000001"));
if (nIn >= txTo.vin.size()) if (nIn >= txTo.vin.size())
{ {
printf("ERROR: SignatureHash(): nIn=%d out of range\n", nIn); printf("ERROR: SignatureHash(): nIn=%u out of range\n", nIn);
return one; return one;
} }
CMutableTransaction txTmp(txTo); CMutableTransaction txTmp(txTo);
@ -58,7 +58,7 @@ uint256 static SignatureHashOld(CScript scriptCode, const CTransaction& txTo, un
unsigned int nOut = nIn; unsigned int nOut = nIn;
if (nOut >= txTmp.vout.size()) if (nOut >= txTmp.vout.size())
{ {
printf("ERROR: SignatureHash(): nOut=%d out of range\n", nOut); printf("ERROR: SignatureHash(): nOut=%u out of range\n", nOut);
return one; return one;
} }
txTmp.vout.resize(nOut+1); txTmp.vout.resize(nOut+1);