Update shared NU5 dependencies, set the NU5 testnet activation network upgrade parameters (#2825)

* Check return value of zcash_script_new_precomputed_tx

* Set the NU5 testnet activation height to 1_590_000

* Apply suggestions from code review

Co-authored-by: teor <teor@riseup.net>

* Update Nu5 constants to new values

* Update ZIP-244 test vectors for new branch ID

* Squashed commit of the following:

commit bdb120a249
Author: Deirdre Connolly <durumcrustulum@gmail.com>
Date:   Tue Oct 5 11:54:01 2021 -0400

    Use pallas::Base::from_str_vartime() in sinsemilla tests

commit e99fa49258
Author: Deirdre Connolly <durumcrustulum@gmail.com>
Date:   Tue Oct 5 11:45:24 2021 -0400

    Compiles

commit a520018114
Author: Deirdre Connolly <durumcrustulum@gmail.com>
Date:   Tue Oct 5 10:15:17 2021 -0400

    Incomplete upgrade of deps

* Squashed commit of the following:

commit 8d1b76ec5626517817c3a4d9f3950acc90a359df
Author: Janito Vaqueiro Ferreira Filho <janito.vff@gmail.com>
Date:   Tue Oct 5 04:02:26 2021 +0000

    Update `zcash_script` to support V5 transactions

    Use a newer version of `zcash_script` that has been updated to support
    V5 transactions.

commit 371233628ae61e0c25d6ba8f31d9dba42823becb
Author: Janito Vaqueiro Ferreira Filho <janito.vff@gmail.com>
Date:   Tue Oct 5 03:06:20 2021 +0000

    Update Zcash dependencies

    Update some Zcash crates:

    - `halo2`
    - `incrementalmerkletree' (patch version)
    - `orchard` (patch version)
    - `zcash_history` (patch version)
    - `zcash_note_encryption` (patch version)
    - `zcash_primitives` (patch version)

    And also update the `group` dependency so that the code remains
    compatible.

commit de5cf1ec40c3fc08670fc971cdf3e65e13d9f4c7
Author: Janito Vaqueiro Ferreira Filho <janito.vff@gmail.com>
Date:   Tue Oct 5 03:04:13 2021 +0000

    Update error message assertion

    Use the updated message for the expected error variant.

* Update `zcash_script` to support V5 transactions

Use a newer version of `zcash_script` that has been updated to support
V5 transactions.

Co-authored-by: Conrado Gouvea <conrado@zfnd.org>
Co-authored-by: teor <teor@riseup.net>
This commit is contained in:
Janito Vaqueiro Ferreira Filho 2021-10-05 22:08:41 -03:00 committed by GitHub
parent 5d9893cf31
commit 339fefb6e6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
15 changed files with 561 additions and 306 deletions

421
Cargo.lock generated
View File

@ -59,6 +59,15 @@ version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ee2a4ec343196209d6594e19543ae87a39f96d5534d7174822a3ad825dd6ed7e"
[[package]]
name = "aead"
version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0b613b8e1e3cf911a086f53f03bf286f52fd7a7258e4fa606f0ef220d39d8877"
dependencies = [
"generic-array",
]
[[package]]
name = "aes"
version = "0.6.0"
@ -67,7 +76,19 @@ checksum = "884391ef1066acaa41e766ba8f596341b96e93ce34f9a43e7d24bf0a0eaf0561"
dependencies = [
"aes-soft",
"aesni",
"cipher",
"cipher 0.2.5",
]
[[package]]
name = "aes"
version = "0.7.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9e8b47f52ea9bae42228d07ec09eb676433d7c4ed1ebdf0f1d1c29ed446f1ab8"
dependencies = [
"cfg-if 1.0.0",
"cipher 0.3.0",
"cpufeatures",
"opaque-debug",
]
[[package]]
@ -76,7 +97,7 @@ version = "0.6.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "be14c7498ea50828a38d0e24a765ed2effe92a705885b57d029cd67d45744072"
dependencies = [
"cipher",
"cipher 0.2.5",
"opaque-debug",
]
@ -86,7 +107,7 @@ version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ea2e11f5e94c2f7d386164cc2aa1f97823fed6f259e486940a71c174dd01b0ce"
dependencies = [
"cipher",
"cipher 0.2.5",
"opaque-debug",
]
@ -258,6 +279,12 @@ version = "0.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd"
[[package]]
name = "base64ct"
version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8a32fd6af2b5827bce66c29053ba0e7c42b9dcab01835835058558c10851a46b"
[[package]]
name = "bech32"
version = "0.8.1"
@ -280,12 +307,12 @@ dependencies = [
"blake2s_simd",
"byteorder",
"crossbeam",
"ff",
"ff 0.10.0",
"futures 0.1.30",
"futures-cpupool",
"group",
"group 0.10.0",
"num_cpus",
"pairing",
"pairing 0.20.0",
"rand_core 0.6.3",
"subtle",
]
@ -351,6 +378,20 @@ dependencies = [
"which",
]
[[package]]
name = "bip0039"
version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d0830ae4cc96b0617cc912970c2b17e89456fecbf55e8eed53a956f37ab50c41"
dependencies = [
"hmac",
"pbkdf2",
"rand 0.8.4",
"sha2",
"unicode-normalization",
"zeroize",
]
[[package]]
name = "bit-set"
version = "0.5.2"
@ -431,7 +472,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "57a0e8073e8baa88212fb5823574c02ebccb395136ba9a164ab89379ec6072f0"
dependencies = [
"block-padding",
"cipher",
"cipher 0.2.5",
]
[[package]]
name = "block-modes"
version = "0.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2cb03d1bed155d89dce0f845b7899b18a9a163e148fd004e1c28421a783e2d8e"
dependencies = [
"block-padding",
"cipher 0.3.0",
]
[[package]]
@ -446,9 +497,22 @@ version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "54757888b09a69be70b5ec303e382a74227392086ba808cb01eeca29233a2397"
dependencies = [
"ff",
"group",
"pairing",
"ff 0.10.0",
"group 0.10.0",
"pairing 0.20.0",
"rand_core 0.6.3",
"subtle",
]
[[package]]
name = "bls12_381"
version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6d28daeeded7949f1c7c72693377c98473b00be0aa0023760a84a300e4e7c74b"
dependencies = [
"ff 0.11.0",
"group 0.11.0",
"pairing 0.21.0",
"rand_core 0.6.3",
"subtle",
]
@ -555,6 +619,31 @@ version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]]
name = "chacha20"
version = "0.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "01b72a433d0cf2aef113ba70f62634c56fddb0f244e6377185c56a7cadbd8f91"
dependencies = [
"cfg-if 1.0.0",
"cipher 0.3.0",
"cpufeatures",
"zeroize",
]
[[package]]
name = "chacha20poly1305"
version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3b84ed6d1d5f7aa9bdde921a5090e0ca4d934d250ea3b402a5fab3a994e28a2a"
dependencies = [
"aead",
"chacha20",
"cipher 0.3.0",
"poly1305",
"zeroize",
]
[[package]]
name = "chrono"
version = "0.4.19"
@ -578,6 +667,15 @@ dependencies = [
"generic-array",
]
[[package]]
name = "cipher"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7"
dependencies = [
"generic-array",
]
[[package]]
name = "clang-sys"
version = "1.2.0"
@ -899,18 +997,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7"
[[package]]
name = "crypto_api"
version = "0.2.2"
name = "crypto-mac"
version = "0.11.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2f855e87e75a4799e18b8529178adcde6fd4f97c1449ff4821e747ff728bb102"
[[package]]
name = "crypto_api_chachapoly"
version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d930b6a026ce9d358a17f9c9046c55d90b14bb847f36b6ebb6b19365d4feffb8"
checksum = "b1d1a86f49236c215f271d40892d5fc950490551400b02ef360692c29815c714"
dependencies = [
"crypto_api",
"generic-array",
"subtle",
]
[[package]]
@ -1136,7 +1229,7 @@ dependencies = [
[[package]]
name = "equihash"
version = "0.1.0"
source = "git+https://github.com/zcash/librustzcash.git?rev=0c3ed159985affa774e44d10172d4471d798a85a#0c3ed159985affa774e44d10172d4471d798a85a"
source = "git+https://github.com/zcash/librustzcash.git?rev=53d0a51d33a421cb76d3e3124d1e4c1c9036068e#53d0a51d33a421cb76d3e3124d1e4c1c9036068e"
dependencies = [
"blake2b_simd",
"byteorder",
@ -1163,6 +1256,17 @@ dependencies = [
"subtle",
]
[[package]]
name = "ff"
version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b2958d04124b9f27f175eaeb9a9f383d026098aa837eadd8ba22c11f13a05b9e"
dependencies = [
"bitvec",
"rand_core 0.6.3",
"subtle",
]
[[package]]
name = "flate2"
version = "1.0.19"
@ -1197,9 +1301,23 @@ version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a25080721bbcd2cd4d765b7d607ea350425fa087ce53cd3e31afcacdab850352"
dependencies = [
"aes",
"block-modes",
"num-bigint",
"aes 0.6.0",
"block-modes 0.7.0",
"num-bigint 0.3.3",
"num-integer",
"num-traits",
]
[[package]]
name = "fpe"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fcf3e40fc9accc7218e082db8a75aeea244b8f5db73e591774ef93b4276365e6"
dependencies = [
"block-modes 0.8.1",
"cipher 0.3.0",
"libm",
"num-bigint 0.4.2",
"num-integer",
"num-traits",
]
@ -1440,7 +1558,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1c363a5301b8f153d80747126a04b3c82073b9fe3130571a9d170cacdeaf7912"
dependencies = [
"byteorder",
"ff",
"ff 0.10.0",
"rand_core 0.6.3",
"subtle",
]
[[package]]
name = "group"
version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bc5ac374b108929de78460075f3dc439fa66df9d8fc77e8f12caa5165fcf0c89"
dependencies = [
"byteorder",
"ff 0.11.0",
"rand_core 0.6.3",
"subtle",
]
@ -1512,16 +1642,16 @@ checksum = "62aca2aba2d62b4a7f5b33f3712cb1b0692779a56fb510499d5c0aa594daeaf3"
[[package]]
name = "halo2"
version = "0.0.1"
source = "git+https://github.com/zcash/halo2.git?rev=236115917df9db45282fec24d1e1e36f275f71ab#236115917df9db45282fec24d1e1e36f275f71ab"
version = "0.1.0-beta.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0f186b85ed81082fb1cf59d52b0111f02915e89a4ac61d292b38d075e570f3a9"
dependencies = [
"blake2b_simd",
"crossbeam-utils 0.8.0",
"ff",
"group",
"num_cpus",
"ff 0.11.0",
"group 0.11.0",
"pasta_curves",
"rand 0.8.4",
"rayon",
]
[[package]]
@ -1582,6 +1712,16 @@ version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
[[package]]
name = "hmac"
version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2a2a2320eb7ec0ebe8da8f744d7812d9fc4cb4d09344ac01898dbcb6a20ae69b"
dependencies = [
"crypto-mac",
"digest",
]
[[package]]
name = "hostname"
version = "0.3.1"
@ -1729,8 +1869,7 @@ dependencies = [
[[package]]
name = "incrementalmerkletree"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "16d75fb342984cc8cea665a9ef5607b4956569839ca098172082fa1b19bdaf02"
source = "git+https://github.com/zcash/incrementalmerkletree?rev=b7bd6246122a6e9ace8edb51553fbf5228906cbb#b7bd6246122a6e9ace8edb51553fbf5228906cbb"
dependencies = [
"serde",
]
@ -1841,9 +1980,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "593fc4726ca80edb47ee18ab4d826719e25c2096991a79308b44fb915c6014ef"
dependencies = [
"bitvec",
"bls12_381",
"ff",
"group",
"bls12_381 0.5.0",
"ff 0.10.0",
"group 0.10.0",
"rand_core 0.6.3",
"subtle",
]
[[package]]
name = "jubjub"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e2e7baec19d4e83f9145d4891178101a604565edff9645770fc979804138b04c"
dependencies = [
"bitvec",
"bls12_381 0.6.0",
"ff 0.11.0",
"group 0.11.0",
"rand_core 0.6.3",
"subtle",
]
@ -1911,6 +2064,12 @@ dependencies = [
"winapi 0.3.9",
]
[[package]]
name = "libm"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c7d73b3f436185384286bd8098d17ec07c9a7d2388a6599f824d8502b529702a"
[[package]]
name = "librocksdb-sys"
version = "6.17.3"
@ -2008,6 +2167,15 @@ dependencies = [
"autocfg",
]
[[package]]
name = "memuse"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f69d25cd7528769ad3d897e99eb942774bff8b23165012af490351a44c5b583b"
dependencies = [
"nonempty",
]
[[package]]
name = "metrics"
version = "0.13.0-alpha.8"
@ -2186,9 +2354,9 @@ dependencies = [
[[package]]
name = "nonempty"
version = "0.6.0"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7fa586da3e43cc7df44aae0e21ed2e743218b876de3f38035683d30bd8a3828e"
checksum = "e9e591e719385e6ebaeb5ce5d3887f7d5676fceca6411d1925ccc95745f3d6f7"
[[package]]
name = "ntapi"
@ -2210,6 +2378,17 @@ dependencies = [
"num-traits",
]
[[package]]
name = "num-bigint"
version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "74e768dff5fb39a41b3bcd30bb25cf989706c90d028d1ad71971987aa309d535"
dependencies = [
"autocfg",
"num-integer",
"num-traits",
]
[[package]]
name = "num-format"
version = "0.4.0"
@ -2276,21 +2455,25 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"
[[package]]
name = "orchard"
version = "0.0.0"
source = "git+https://github.com/zcash/orchard.git?rev=37b1b7f357cd34d93f9c55bb96efd05ab4e84408#37b1b7f357cd34d93f9c55bb96efd05ab4e84408"
source = "git+https://github.com/zcash/orchard.git?rev=2c8241f25b943aa05203eacf9905db117c69bd29#2c8241f25b943aa05203eacf9905db117c69bd29"
dependencies = [
"aes",
"aes 0.7.5",
"arrayvec 0.7.1",
"bigint",
"bitvec",
"blake2b_simd",
"ff",
"fpe",
"group",
"ff 0.11.0",
"fpe 0.5.0",
"group 0.11.0",
"halo2",
"incrementalmerkletree",
"lazy_static",
"memuse",
"nonempty",
"pasta_curves",
"rand 0.8.4",
"reddsa",
"serde",
"subtle",
"zcash_note_encryption",
]
@ -2331,7 +2514,16 @@ version = "0.20.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7de9d09263c9966e8196fe0380c9dbbc7ea114b5cf371ba29004bc1f9c6db7f3"
dependencies = [
"group",
"group 0.10.0",
]
[[package]]
name = "pairing"
version = "0.21.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f2e415e349a3006dd7d9482cdab1c980a845bed1377777d768cb693a44540b42"
dependencies = [
"group 0.11.0",
]
[[package]]
@ -2361,20 +2553,41 @@ dependencies = [
]
[[package]]
name = "pasta_curves"
version = "0.1.1"
name = "password-hash"
version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "179df750e20069669699f537ec0c4bcb248283f45a78b8c66d797fb73dbbb455"
checksum = "1d791538a6dcc1e7cb7fe6f6b58aca40e7f79403c45b2bc274008b5e647af1d8"
dependencies = [
"base64ct",
"rand_core 0.6.3",
"subtle",
]
[[package]]
name = "pasta_curves"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d647d91972bad78120fd61e06b225fcda117805c9bbf17676b51bd03a251278b"
dependencies = [
"blake2b_simd",
"ff",
"group",
"ff 0.11.0",
"group 0.11.0",
"lazy_static",
"rand 0.8.4",
"static_assertions",
"subtle",
]
[[package]]
name = "pbkdf2"
version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f05894bce6a1ba4be299d0c5f29563e08af2bc18bb7d48313113bed71e904739"
dependencies = [
"crypto-mac",
"password-hash",
]
[[package]]
name = "peeking_take_while"
version = "0.1.2"
@ -2479,6 +2692,17 @@ dependencies = [
"plotters-backend",
]
[[package]]
name = "poly1305"
version = "0.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "048aeb476be11a4b6ca432ca569e375810de9294ae78f4774e78ea98a9246ede"
dependencies = [
"cpufeatures",
"opaque-debug",
"universal-hash",
]
[[package]]
name = "ppv-lite86"
version = "0.2.10"
@ -2750,9 +2974,9 @@ dependencies = [
[[package]]
name = "rayon"
version = "1.5.0"
version = "1.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8b0d8e0819fadc20c74ea8373106ead0600e3a67ef1fe8da56e39b9ae7275674"
checksum = "c06aca804d41dbc8ba42dfd964f0d01334eceb64314b9ecf7c5fad5188a06d90"
dependencies = [
"autocfg",
"crossbeam-deque 0.8.0",
@ -2762,9 +2986,9 @@ dependencies = [
[[package]]
name = "rayon-core"
version = "1.9.0"
version = "1.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9ab346ac5921dc62ffa9f89b7a773907511cdfa5490c572ae9be1be33e8afa4a"
checksum = "d78120e2c850279833f1dd3582f730c4ab53ed95aeaaaa862a2a5c71b1656d8e"
dependencies = [
"crossbeam-channel 0.5.1",
"crossbeam-deque 0.8.0",
@ -2785,13 +3009,13 @@ dependencies = [
[[package]]
name = "reddsa"
version = "0.0.0"
source = "git+https://github.com/str4d/redjubjub.git?rev=d5d8c5f3bb704bad8ae88fe4a29ae1f744774cb2#d5d8c5f3bb704bad8ae88fe4a29ae1f744774cb2"
source = "git+https://github.com/str4d/redjubjub.git?rev=416a6a8ebf8bd42c114c938883016c04f338de72#416a6a8ebf8bd42c114c938883016c04f338de72"
dependencies = [
"blake2b_simd",
"byteorder",
"digest",
"group",
"jubjub",
"group 0.11.0",
"jubjub 0.8.0",
"pasta_curves",
"rand_core 0.6.3",
"serde",
@ -2807,7 +3031,7 @@ dependencies = [
"blake2b_simd",
"byteorder",
"digest",
"jubjub",
"jubjub 0.7.0",
"rand_core 0.6.3",
"serde",
"thiserror",
@ -4040,6 +4264,16 @@ version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564"
[[package]]
name = "universal-hash"
version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9f214e8f697e925001e66ec2c6e37a4ef93f0f78c2eed7814394e10c62025b05"
dependencies = [
"generic-array",
"subtle",
]
[[package]]
name = "untrusted"
version = "0.7.1"
@ -4429,10 +4663,19 @@ dependencies = [
"zeroize",
]
[[package]]
name = "zcash_encoding"
version = "0.0.0"
source = "git+https://github.com/zcash/librustzcash.git?rev=53d0a51d33a421cb76d3e3124d1e4c1c9036068e#53d0a51d33a421cb76d3e3124d1e4c1c9036068e"
dependencies = [
"byteorder",
"nonempty",
]
[[package]]
name = "zcash_history"
version = "0.2.0"
source = "git+https://github.com/zcash/librustzcash.git?rev=0c3ed159985affa774e44d10172d4471d798a85a#0c3ed159985affa774e44d10172d4471d798a85a"
source = "git+https://github.com/zcash/librustzcash.git?rev=53d0a51d33a421cb76d3e3124d1e4c1c9036068e#53d0a51d33a421cb76d3e3124d1e4c1c9036068e"
dependencies = [
"bigint",
"blake2b_simd",
@ -4442,13 +4685,14 @@ dependencies = [
[[package]]
name = "zcash_note_encryption"
version = "0.0.0"
source = "git+https://github.com/zcash/librustzcash.git?rev=0c3ed159985affa774e44d10172d4471d798a85a#0c3ed159985affa774e44d10172d4471d798a85a"
source = "git+https://github.com/zcash/librustzcash.git?rev=53d0a51d33a421cb76d3e3124d1e4c1c9036068e#53d0a51d33a421cb76d3e3124d1e4c1c9036068e"
dependencies = [
"blake2b_simd",
"byteorder",
"crypto_api_chachapoly",
"ff",
"group",
"chacha20",
"chacha20poly1305",
"ff 0.11.0",
"group 0.11.0",
"rand_core 0.6.3",
"subtle",
]
@ -4456,23 +4700,26 @@ dependencies = [
[[package]]
name = "zcash_primitives"
version = "0.5.0"
source = "git+https://github.com/zcash/librustzcash.git?rev=0c3ed159985affa774e44d10172d4471d798a85a#0c3ed159985affa774e44d10172d4471d798a85a"
source = "git+https://github.com/zcash/librustzcash.git?rev=53d0a51d33a421cb76d3e3124d1e4c1c9036068e#53d0a51d33a421cb76d3e3124d1e4c1c9036068e"
dependencies = [
"aes",
"aes 0.7.5",
"bip0039",
"bitvec",
"blake2b_simd",
"blake2s_simd",
"bls12_381",
"bls12_381 0.6.0",
"byteorder",
"crypto_api_chachapoly",
"equihash 0.1.0 (git+https://github.com/zcash/librustzcash.git?rev=0c3ed159985affa774e44d10172d4471d798a85a)",
"ff",
"fpe",
"group",
"chacha20poly1305",
"equihash 0.1.0 (git+https://github.com/zcash/librustzcash.git?rev=53d0a51d33a421cb76d3e3124d1e4c1c9036068e)",
"ff 0.11.0",
"fpe 0.5.0",
"group 0.11.0",
"hex",
"jubjub",
"incrementalmerkletree",
"jubjub 0.8.0",
"lazy_static",
"log",
"memuse",
"nonempty",
"orchard",
"pasta_curves",
@ -4480,33 +4727,41 @@ dependencies = [
"rand_core 0.6.3",
"sha2",
"subtle",
"zcash_encoding",
"zcash_note_encryption",
]
[[package]]
name = "zcash_script"
version = "0.1.6-alpha.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e4de0927bc365facf53a295c74b6f3df0a3f428dbac800446e7ca54a152d0c52"
source = "git+https://github.com/ZcashFoundation/zcash_script.git?rev=1caa29e975405400983f679a376fb1c86527d5f2#1caa29e975405400983f679a376fb1c86527d5f2"
dependencies = [
"bindgen 0.58.1",
"blake2b_simd",
"cc",
"halo2",
"incrementalmerkletree",
"libc",
"memuse",
"orchard",
"rand_core 0.6.3",
"tracing",
"zcash_note_encryption",
"zcash_primitives",
]
[[package]]
name = "zebra-chain"
version = "1.0.0-alpha.17"
dependencies = [
"aes",
"aes 0.6.0",
"bech32",
"bigint",
"bitflags",
"bitvec",
"blake2b_simd",
"blake2s_simd",
"bls12_381",
"bls12_381 0.5.0",
"bs58",
"byteorder",
"chrono",
@ -4515,14 +4770,14 @@ dependencies = [
"displaydoc",
"ed25519-zebra",
"equihash 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"fpe",
"fpe 0.4.0",
"futures 0.3.17",
"group",
"group 0.11.0",
"halo2",
"hex",
"incrementalmerkletree",
"itertools 0.10.1",
"jubjub",
"jubjub 0.7.0",
"lazy_static",
"proptest",
"proptest-derive",
@ -4556,13 +4811,13 @@ version = "1.0.0-alpha.17"
dependencies = [
"bellman",
"blake2b_simd",
"bls12_381",
"bls12_381 0.5.0",
"chrono",
"color-eyre",
"displaydoc",
"futures 0.3.17",
"futures-util",
"jubjub",
"jubjub 0.7.0",
"lazy_static",
"metrics",
"once_cell",
@ -4649,7 +4904,7 @@ dependencies = [
"halo2",
"hex",
"itertools 0.10.1",
"jubjub",
"jubjub 0.7.0",
"lazy_static",
"metrics",
"multiset",
@ -4754,9 +5009,9 @@ dependencies = [
[[package]]
name = "zeroize"
version = "1.1.1"
version = "1.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "05f33972566adbd2d3588b0491eb94b98b43695c4ef897903470ede4f3f5a28a"
checksum = "bf68b08513768deaa790264a7fac27a58cbf2705cfcdc9448362229217d7e970"
dependencies = [
"zeroize_derive",
]

View File

@ -33,6 +33,7 @@ tower = { git = "https://github.com/tower-rs/tower", rev = "d4d1c67c6a0e4213a52a
# TODO: remove these after a new librustzcash release.
# These are librustzcash requirements specified in its workspace Cargo.toml that we must replicate here
halo2 = { git = "https://github.com/zcash/halo2.git", rev = "236115917df9db45282fec24d1e1e36f275f71ab" }
orchard = { git = "https://github.com/zcash/orchard.git", rev = "37b1b7f357cd34d93f9c55bb96efd05ab4e84408" }
zcash_note_encryption = { git = "https://github.com/zcash/librustzcash.git", rev = "0c3ed159985affa774e44d10172d4471d798a85a" }
incrementalmerkletree = { git = "https://github.com/zcash/incrementalmerkletree", rev = "b7bd6246122a6e9ace8edb51553fbf5228906cbb" }
orchard = { git = "https://github.com/zcash/orchard.git", rev = "2c8241f25b943aa05203eacf9905db117c69bd29" }
zcash_note_encryption = { git = "https://github.com/zcash/librustzcash.git", rev = "53d0a51d33a421cb76d3e3124d1e4c1c9036068e" }
zcash_primitives = { git = "https://github.com/zcash/librustzcash.git", rev = "53d0a51d33a421cb76d3e3124d1e4c1c9036068e" }

View File

@ -15,7 +15,7 @@ bench = ["zebra-test"]
[dependencies]
aes = "0.6"
bech32 = "0.8.1"
bigint = "4"
bigint = "4.4.3"
bitflags = "1.2.1"
bitvec = "0.22"
blake2b_simd = "0.5.11"
@ -27,10 +27,8 @@ chrono = { version = "0.4", features = ["serde"] }
displaydoc = "0.2.2"
fpe = "0.4"
futures = "0.3"
group = "0.10"
# TODO: replace w/ crate version when released: https://github.com/ZcashFoundation/zebra/issues/2083
# Note: if updating this, also update the workspace Cargo.toml to match.
halo2 = { git = "https://github.com/zcash/halo2.git", rev = "236115917df9db45282fec24d1e1e36f275f71ab" }
group = "0.11"
halo2 = "=0.1.0-beta.1"
hex = "0.4"
incrementalmerkletree = "0.1.0"
jubjub = "0.7.0"
@ -45,8 +43,8 @@ subtle = "2.4"
thiserror = "1"
uint = "0.9.1"
x25519-dalek = { version = "1.1", features = ["serde"] }
zcash_history = { git = "https://github.com/zcash/librustzcash.git", rev = "0c3ed159985affa774e44d10172d4471d798a85a" }
zcash_primitives = { git = "https://github.com/zcash/librustzcash.git", rev = "0c3ed159985affa774e44d10172d4471d798a85a" }
zcash_history = { git = "https://github.com/zcash/librustzcash.git", rev = "53d0a51d33a421cb76d3e3124d1e4c1c9036068e" }
zcash_primitives = { git = "https://github.com/zcash/librustzcash.git", rev = "53d0a51d33a421cb76d3e3124d1e4c1c9036068e" }
proptest = { version = "0.10", optional = true }
proptest-derive = { version = "0.3.0", optional = true }

View File

@ -202,10 +202,11 @@ mod tests {
use super::*;
use crate::orchard::tests::vectors;
#[cfg(test)]
fn x_from_str(s: &str) -> pallas::Base {
use group::ff::PrimeField;
pallas::Base::from_str(s).unwrap()
pallas::Base::from_str_vartime(s).unwrap()
}
#[test]

View File

@ -294,16 +294,14 @@ impl NoteCommitmentTree {
///
/// For Orchard, the tree is capped at 2^32.
pub fn count(&self) -> u64 {
self.inner
.position()
.map_or(0, |pos| usize::from(pos) as u64 + 1)
self.inner.position().map_or(0, |pos| u64::from(pos) + 1)
}
}
impl Default for NoteCommitmentTree {
fn default() -> Self {
Self {
inner: bridgetree::Frontier::new(),
inner: bridgetree::Frontier::empty(),
cached_root: Default::default(),
}
}

View File

@ -89,7 +89,7 @@ pub(crate) const TESTNET_ACTIVATION_HEIGHTS: &[(block::Height, NetworkUpgrade)]
(block::Height(584_000), Blossom),
(block::Height(903_800), Heartwood),
(block::Height(1_028_500), Canopy),
// TODO: Add Nu5 testnet activation height
(block::Height(1_599_200), Nu5),
];
#[cfg(test_fake_activation_heights)]
@ -131,7 +131,7 @@ pub(crate) const CONSENSUS_BRANCH_IDS: &[(NetworkUpgrade, ConsensusBranchId)] =
(Blossom, ConsensusBranchId(0x2bb40e60)),
(Heartwood, ConsensusBranchId(0xf5b9230b)),
(Canopy, ConsensusBranchId(0xe9ff75a6)),
(Nu5, ConsensusBranchId(0xf919a198)),
(Nu5, ConsensusBranchId(0x37519621)),
];
/// The target block spacing before Blossom.

View File

@ -257,16 +257,14 @@ impl NoteCommitmentTree {
///
/// For Sapling, the tree is capped at 2^32.
pub fn count(&self) -> u64 {
self.inner
.position()
.map_or(0, |pos| usize::from(pos) as u64 + 1)
self.inner.position().map_or(0, |pos| u64::from(pos) + 1)
}
}
impl Default for NoteCommitmentTree {
fn default() -> Self {
Self {
inner: bridgetree::Frontier::new(),
inner: bridgetree::Frontier::empty(),
cached_root: Default::default(),
}
}

View File

@ -385,7 +385,6 @@ where
// TODO:
// - verify orchard shielded pool (ZIP-224) (#2105)
// - ZIP-216 (#1798)
// - ZIP-244 (#1874)
// - remaining consensus rules (#2379)
// - remove `should_panic` from tests

View File

@ -234,40 +234,47 @@ async fn v5_transaction_is_rejected_before_nu5_activation() {
}
#[tokio::test]
// TODO: Remove `should_panic` once the NU5 activation heights for testnet and mainnet have been
// TODO: Remove `should_panic` once the NU5 activation height for mainnet has been
// defined.
#[should_panic]
async fn v5_transaction_is_accepted_after_nu5_activation() {
async fn v5_transaction_is_accepted_after_nu5_activation_mainnet() {
v5_transaction_is_accepted_after_nu5_activation_for_network(Network::Mainnet).await
}
#[tokio::test]
async fn v5_transaction_is_accepted_after_nu5_activation_testnet() {
v5_transaction_is_accepted_after_nu5_activation_for_network(Network::Testnet).await
}
async fn v5_transaction_is_accepted_after_nu5_activation_for_network(network: Network) {
let nu5 = NetworkUpgrade::Nu5;
let networks = vec![
(Network::Mainnet, zebra_test::vectors::MAINNET_BLOCKS.iter()),
(Network::Testnet, zebra_test::vectors::TESTNET_BLOCKS.iter()),
];
let blocks = match network {
Network::Mainnet => zebra_test::vectors::MAINNET_BLOCKS.iter(),
Network::Testnet => zebra_test::vectors::TESTNET_BLOCKS.iter(),
};
for (network, blocks) in networks {
let state_service = service_fn(|_| async { unreachable!("Service should not be called") });
let script_verifier = script::Verifier::new(state_service);
let verifier = Verifier::new(network, script_verifier);
let state_service = service_fn(|_| async { unreachable!("Service should not be called") });
let script_verifier = script::Verifier::new(state_service);
let verifier = Verifier::new(network, script_verifier);
let transaction = fake_v5_transactions_for_network(network, blocks)
.rev()
.next()
.expect("At least one fake V5 transaction in the test vectors");
let transaction = fake_v5_transactions_for_network(network, blocks)
.rev()
.next()
.expect("At least one fake V5 transaction in the test vectors");
let expected_hash = transaction.unmined_id();
let expected_hash = transaction.unmined_id();
let result = verifier
.oneshot(Request::Block {
transaction: Arc::new(transaction),
known_utxos: Arc::new(HashMap::new()),
height: nu5
.activation_height(network)
.expect("NU5 activation height is specified"),
})
.await;
let result = verifier
.oneshot(Request::Block {
transaction: Arc::new(transaction),
known_utxos: Arc::new(HashMap::new()),
height: nu5
.activation_height(network)
.expect("NU5 activation height is specified"),
})
.await;
assert_eq!(result, Ok(expected_hash));
}
assert_eq!(result, Ok(expected_hash));
}
/// Test if V4 transaction with transparent funds is accepted.
@ -414,9 +421,6 @@ async fn v4_transaction_with_transparent_transfer_is_rejected_by_the_script() {
/// Test if V5 transaction with transparent funds is accepted.
#[tokio::test]
// TODO: Remove `should_panic` once the NU5 activation heights for testnet and mainnet have been
// defined.
#[should_panic]
async fn v5_transaction_with_transparent_transfer_is_accepted() {
let network = Network::Testnet;
let network_upgrade = NetworkUpgrade::Nu5;
@ -465,9 +469,6 @@ async fn v5_transaction_with_transparent_transfer_is_accepted() {
/// Test if V5 coinbase transaction is accepted.
#[tokio::test]
// TODO: Remove `should_panic` once the NU5 activation heights for testnet and mainnet have been
// defined.
#[should_panic]
async fn v5_coinbase_transaction_is_accepted() {
let network = Network::Testnet;
let network_upgrade = NetworkUpgrade::Nu5;
@ -517,9 +518,6 @@ async fn v5_coinbase_transaction_is_accepted() {
/// This test simulates the case where the script verifier rejects the transaction because the
/// script prevents spending the source UTXO.
#[tokio::test]
// TODO: Remove `should_panic` once the NU5 activation heights for testnet and mainnet have been
// defined.
#[should_panic]
async fn v5_transaction_with_transparent_transfer_is_rejected_by_the_script() {
let network = Network::Testnet;
let network_upgrade = NetworkUpgrade::Nu5;
@ -564,7 +562,8 @@ async fn v5_transaction_with_transparent_transfer_is_rejected_by_the_script() {
assert_eq!(
result,
Err(TransactionError::InternalDowncastError(
"downcast to redjubjub::Error failed, original error: ScriptInvalid".to_string()
"downcast to known transaction error type failed, original error: ScriptInvalid"
.to_string()
))
);
}

View File

@ -116,7 +116,7 @@ pub const USER_AGENT: &str = "/Zebra:1.0.0-alpha.17/";
///
/// The current protocol version typically changes before Mainnet and Testnet
/// network upgrades.
pub const CURRENT_NETWORK_PROTOCOL_VERSION: Version = Version(170_014);
pub const CURRENT_NETWORK_PROTOCOL_VERSION: Version = Version(170_015);
/// The minimum network protocol version accepted by this crate for each network,
/// represented as a network upgrade.

View File

@ -108,8 +108,8 @@ impl Version {
(Mainnet, Heartwood) => 170_011,
(Testnet, Canopy) => 170_012,
(Mainnet, Canopy) => 170_013,
(Testnet, Nu5) => 170_014,
(Mainnet, Nu5) => 170_015,
(Testnet, Nu5) => 170_015,
(Mainnet, Nu5) => unreachable!("Nu5 Mainnet protocol version not yet defined"),
})
}
}

View File

@ -8,7 +8,7 @@ edition = "2018"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
zcash_script = "0.1.6-alpha.0"
zcash_script = { git = "https://github.com/ZcashFoundation/zcash_script.git", rev = "1caa29e975405400983f679a376fb1c86527d5f2" }
zebra-chain = { path = "../zebra-chain" }
thiserror = "1.0.29"
displaydoc = "0.2.2"

View File

@ -80,6 +80,12 @@ impl CachedFfiTransaction {
let precomputed = unsafe {
zcash_script::zcash_script_new_precomputed_tx(tx_to_ptr, tx_to_len, &mut err)
};
assert!(
!precomputed.is_null(),
"zcash_script_new_precomputed_tx returned {} ({})",
err,
Error::from(err)
);
Self {
transaction,

View File

@ -49,7 +49,7 @@ tempdir = "0.3.7"
tokio = { version = "0.3.6", features = ["full"] }
# TODO: replace w/ crate version when released: https://github.com/ZcashFoundation/zebra/issues/2083
# Note: if updating this, also update the workspace Cargo.toml to match.
halo2 = { git = "https://github.com/zcash/halo2.git", rev = "236115917df9db45282fec24d1e1e36f275f71ab" }
halo2 = "=0.1.0-beta.1"
jubjub = "0.7.0"
proptest = "0.10.1"

View File

@ -35,7 +35,7 @@ lazy_static! {
pub static ref TEST_VECTORS: Vec<TestVector> = vec![
TestVector {
tx: vec![
0x05, 0x00, 0x00, 0x80, 0x0a, 0x27, 0xa7, 0x26, 0x98, 0xa1, 0x19, 0xf9, 0x7a, 0x8f,
0x05, 0x00, 0x00, 0x80, 0x0a, 0x27, 0xa7, 0x26, 0x21, 0x96, 0x51, 0x37, 0x7a, 0x8f,
0x73, 0x9a, 0x2d, 0x6f, 0x2c, 0x02, 0x01, 0xe1, 0x52, 0xa8, 0x04, 0x9e, 0x29, 0x4c,
0x4d, 0x6e, 0x66, 0xb1, 0x64, 0x93, 0x9d, 0xaf, 0xfa, 0x2e, 0xf6, 0xee, 0x69, 0x21,
0x48, 0x1c, 0xdd, 0x86, 0xb3, 0xcc, 0x43, 0x18, 0xd9, 0x61, 0x4f, 0xc8, 0x20, 0x90,
@ -286,52 +286,52 @@ lazy_static! {
0x6b, 0x4f, 0xe1, 0x2d, 0xad, 0x9a, 0x17, 0xf5, 0xdb, 0x70, 0x31,
],
txid: [
0xbf, 0x6c, 0x7d, 0x19, 0xf7, 0xc5, 0x65, 0xb1, 0xd4, 0xd9, 0x6d, 0xfb, 0xd0, 0x69,
0x8b, 0x3c, 0x87, 0xc7, 0x4a, 0x2a, 0x63, 0xa2, 0x89, 0xd3, 0x00, 0x05, 0xda, 0xd6,
0x98, 0x3d, 0x95, 0x44,
0x3c, 0x7c, 0xe9, 0x2a, 0x10, 0x59, 0xc0, 0xf6, 0x3f, 0x14, 0x0f, 0x1c, 0xb9, 0xac,
0x5e, 0x38, 0x90, 0x0a, 0x68, 0x45, 0x95, 0x63, 0x8f, 0xce, 0xf7, 0x73, 0x18, 0x5d,
0xcf, 0x2f, 0x7f, 0x91,
],
auth_digest: [
0x1c, 0xbb, 0xe0, 0xd7, 0x25, 0x4c, 0xa6, 0x52, 0xcd, 0xda, 0xa7, 0xa9, 0xd2, 0x91,
0x5a, 0x60, 0x9e, 0x35, 0x73, 0xc0, 0x3d, 0x27, 0x05, 0xe9, 0xad, 0xd4, 0xe3, 0x2e,
0xec, 0x0d, 0x76, 0x9e,
0x1b, 0x60, 0x46, 0xb6, 0x82, 0xf6, 0x9d, 0xb1, 0x66, 0x65, 0x63, 0x2d, 0x21, 0xdc,
0x7f, 0x83, 0x46, 0xb2, 0x82, 0xec, 0x04, 0xb8, 0x40, 0xf2, 0x45, 0x1d, 0x09, 0xc0,
0x86, 0x3c, 0xda, 0x6b,
],
transparent_input: Some(0),
script_code: Some(vec![0x65, 0x00, 0x51]),
amount: Some(570688904498311),
sighash_all: [
0xf8, 0xff, 0x73, 0xee, 0x09, 0xf6, 0x4e, 0x10, 0xd8, 0x80, 0x97, 0x39, 0x62, 0x10,
0xe8, 0x67, 0xf9, 0x25, 0x4f, 0xf7, 0x40, 0xfd, 0x4f, 0x7d, 0x1f, 0xb7, 0xa6, 0x37,
0x60, 0xef, 0x01, 0x64,
0x12, 0x5a, 0xab, 0x82, 0x97, 0xf3, 0x0d, 0xe0, 0x38, 0xd1, 0x1a, 0xf8, 0x93, 0xbb,
0x77, 0x90, 0x47, 0xec, 0xad, 0x86, 0x7d, 0x03, 0x0a, 0x11, 0x6d, 0x32, 0x08, 0x7a,
0x3c, 0xad, 0x1f, 0x2d,
],
sighash_none: Some([
0x89, 0xe6, 0x1b, 0x4b, 0x75, 0x83, 0xea, 0x3d, 0x23, 0xeb, 0x60, 0x2b, 0x82, 0x8c,
0x5e, 0xf5, 0x89, 0x32, 0x1b, 0xd6, 0xf6, 0xe3, 0x96, 0x85, 0xa2, 0x44, 0xf6, 0x40,
0xd8, 0x75, 0xbe, 0x86,
0x08, 0xef, 0x7b, 0x65, 0xb9, 0xd4, 0x15, 0x2b, 0x00, 0x55, 0x24, 0xc9, 0x9e, 0x85,
0x0b, 0x0a, 0x7c, 0xe2, 0x6c, 0xc1, 0xbc, 0x00, 0xf7, 0x91, 0x5b, 0xe4, 0x7f, 0xdd,
0x4a, 0x0e, 0xe8, 0xe0,
]),
sighash_single: Some([
0x89, 0xe6, 0x1b, 0x4b, 0x75, 0x83, 0xea, 0x3d, 0x23, 0xeb, 0x60, 0x2b, 0x82, 0x8c,
0x5e, 0xf5, 0x89, 0x32, 0x1b, 0xd6, 0xf6, 0xe3, 0x96, 0x85, 0xa2, 0x44, 0xf6, 0x40,
0xd8, 0x75, 0xbe, 0x86,
0x08, 0xef, 0x7b, 0x65, 0xb9, 0xd4, 0x15, 0x2b, 0x00, 0x55, 0x24, 0xc9, 0x9e, 0x85,
0x0b, 0x0a, 0x7c, 0xe2, 0x6c, 0xc1, 0xbc, 0x00, 0xf7, 0x91, 0x5b, 0xe4, 0x7f, 0xdd,
0x4a, 0x0e, 0xe8, 0xe0,
]),
sighash_all_anyone: Some([
0xf7, 0x59, 0xd3, 0x65, 0x04, 0x80, 0xf4, 0x52, 0xc9, 0x10, 0x3b, 0x71, 0x4f, 0x11,
0x38, 0xdd, 0x35, 0x15, 0x53, 0xf0, 0x38, 0x10, 0x8a, 0xba, 0x4d, 0xe2, 0xb0, 0x29,
0x33, 0xbe, 0x7b, 0x23,
0x0e, 0xba, 0xe2, 0x6e, 0xee, 0xc6, 0x28, 0xbe, 0x1e, 0x76, 0x42, 0xd0, 0xfd, 0xb1,
0xdc, 0x13, 0x5b, 0xd1, 0x4f, 0x4f, 0x82, 0xc0, 0x83, 0x4c, 0x02, 0xab, 0xd1, 0xdf,
0x5e, 0x3d, 0x77, 0xc6,
]),
sighash_none_anyone: Some([
0xf7, 0x59, 0xd3, 0x65, 0x04, 0x80, 0xf4, 0x52, 0xc9, 0x10, 0x3b, 0x71, 0x4f, 0x11,
0x38, 0xdd, 0x35, 0x15, 0x53, 0xf0, 0x38, 0x10, 0x8a, 0xba, 0x4d, 0xe2, 0xb0, 0x29,
0x33, 0xbe, 0x7b, 0x23,
0x0e, 0xba, 0xe2, 0x6e, 0xee, 0xc6, 0x28, 0xbe, 0x1e, 0x76, 0x42, 0xd0, 0xfd, 0xb1,
0xdc, 0x13, 0x5b, 0xd1, 0x4f, 0x4f, 0x82, 0xc0, 0x83, 0x4c, 0x02, 0xab, 0xd1, 0xdf,
0x5e, 0x3d, 0x77, 0xc6,
]),
sighash_single_anyone: Some([
0xf7, 0x59, 0xd3, 0x65, 0x04, 0x80, 0xf4, 0x52, 0xc9, 0x10, 0x3b, 0x71, 0x4f, 0x11,
0x38, 0xdd, 0x35, 0x15, 0x53, 0xf0, 0x38, 0x10, 0x8a, 0xba, 0x4d, 0xe2, 0xb0, 0x29,
0x33, 0xbe, 0x7b, 0x23,
0x0e, 0xba, 0xe2, 0x6e, 0xee, 0xc6, 0x28, 0xbe, 0x1e, 0x76, 0x42, 0xd0, 0xfd, 0xb1,
0xdc, 0x13, 0x5b, 0xd1, 0x4f, 0x4f, 0x82, 0xc0, 0x83, 0x4c, 0x02, 0xab, 0xd1, 0xdf,
0x5e, 0x3d, 0x77, 0xc6,
]),
},
TestVector {
tx: vec![
0x05, 0x00, 0x00, 0x80, 0x0a, 0x27, 0xa7, 0x26, 0x98, 0xa1, 0x19, 0xf9, 0x1f, 0xc9,
0x05, 0x00, 0x00, 0x80, 0x0a, 0x27, 0xa7, 0x26, 0x21, 0x96, 0x51, 0x37, 0x1f, 0xc9,
0x98, 0xc3, 0x1f, 0x4d, 0xd2, 0x08, 0x00, 0x01, 0x50, 0x58, 0xe5, 0x75, 0x4c, 0x21,
0x04, 0x00, 0x07, 0x53, 0xac, 0x51, 0x53, 0x00, 0x51, 0x52, 0x02, 0xf8, 0x9d, 0x32,
0x26, 0xfb, 0x53, 0x29, 0x2b, 0xfb, 0x5d, 0xbb, 0xf7, 0xff, 0x01, 0x3a, 0xf3, 0x34,
@ -462,22 +462,22 @@ lazy_static! {
0xae, 0x7d, 0xfa, 0x0c, 0x00,
],
txid: [
0xcb, 0x18, 0x9c, 0x28, 0x82, 0x9b, 0x17, 0x85, 0x74, 0x7f, 0xa0, 0xb0, 0x4d, 0xf8,
0xa5, 0xe4, 0xfc, 0xb7, 0xbf, 0xa7, 0xda, 0x79, 0x29, 0xbf, 0xb7, 0x31, 0xac, 0x10,
0xa5, 0x8a, 0xb0, 0x03,
0x2f, 0x95, 0xe5, 0xa9, 0x5d, 0x20, 0x9e, 0x0a, 0x27, 0xd1, 0xfe, 0x66, 0x9a, 0x46,
0xf4, 0xa6, 0x44, 0xa3, 0x27, 0xd7, 0x9b, 0x84, 0x6e, 0x97, 0x92, 0x64, 0x18, 0x6a,
0xde, 0x04, 0x9b, 0xa0,
],
auth_digest: [
0x64, 0xed, 0x51, 0x50, 0x16, 0x96, 0xf1, 0x14, 0x32, 0xb8, 0xa1, 0xe2, 0xe6, 0x87,
0xb8, 0x9e, 0x61, 0x25, 0x97, 0xfd, 0x47, 0x49, 0xf9, 0x2c, 0x0f, 0x5f, 0x51, 0x71,
0xfc, 0xad, 0x78, 0xbe,
0x36, 0x4e, 0xa0, 0xbf, 0x6b, 0xd4, 0xb4, 0xa6, 0x26, 0xdc, 0xcf, 0x0f, 0x96, 0xca,
0x1b, 0x0c, 0x3b, 0x4c, 0x46, 0x81, 0x60, 0x24, 0x7b, 0xce, 0x13, 0xf4, 0x68, 0x98,
0x84, 0x10, 0x4e, 0xb1,
],
transparent_input: None,
script_code: None,
amount: None,
sighash_all: [
0xcb, 0x18, 0x9c, 0x28, 0x82, 0x9b, 0x17, 0x85, 0x74, 0x7f, 0xa0, 0xb0, 0x4d, 0xf8,
0xa5, 0xe4, 0xfc, 0xb7, 0xbf, 0xa7, 0xda, 0x79, 0x29, 0xbf, 0xb7, 0x31, 0xac, 0x10,
0xa5, 0x8a, 0xb0, 0x03,
0x2f, 0x95, 0xe5, 0xa9, 0x5d, 0x20, 0x9e, 0x0a, 0x27, 0xd1, 0xfe, 0x66, 0x9a, 0x46,
0xf4, 0xa6, 0x44, 0xa3, 0x27, 0xd7, 0x9b, 0x84, 0x6e, 0x97, 0x92, 0x64, 0x18, 0x6a,
0xde, 0x04, 0x9b, 0xa0,
],
sighash_none: None,
sighash_single: None,
@ -487,26 +487,26 @@ lazy_static! {
},
TestVector {
tx: vec![
0x05, 0x00, 0x00, 0x80, 0x0a, 0x27, 0xa7, 0x26, 0x98, 0xa1, 0x19, 0xf9, 0xc2, 0xeb,
0x05, 0x00, 0x00, 0x80, 0x0a, 0x27, 0xa7, 0x26, 0x21, 0x96, 0x51, 0x37, 0xc2, 0xeb,
0x51, 0x8f, 0x68, 0x98, 0x4d, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
],
txid: [
0x7f, 0x4d, 0xd8, 0x79, 0x37, 0x4e, 0x1a, 0x56, 0xa2, 0x32, 0xbb, 0x83, 0xb1, 0xcb,
0xf9, 0x57, 0x6a, 0xb7, 0x6b, 0xff, 0xc7, 0x1b, 0xcd, 0x98, 0x5b, 0x62, 0xdd, 0xd6,
0x9d, 0x29, 0x97, 0xcd,
0xa2, 0x2f, 0x92, 0xf0, 0x43, 0x79, 0x3d, 0x10, 0x9d, 0xb7, 0x43, 0x54, 0xc7, 0xd4,
0xe3, 0x28, 0x43, 0xe2, 0x11, 0x95, 0xe7, 0xca, 0xe4, 0xc0, 0x03, 0x0c, 0xf8, 0xb4,
0x2c, 0xb6, 0x40, 0xf5,
],
auth_digest: [
0x04, 0xda, 0x78, 0xb6, 0x64, 0x11, 0x1d, 0xe8, 0xe4, 0xfc, 0xfc, 0x14, 0x93, 0x3d,
0x79, 0xf6, 0xd9, 0x60, 0xda, 0xd8, 0xf1, 0x08, 0xf1, 0xe0, 0xb4, 0x26, 0xcc, 0x20,
0x36, 0x29, 0x22, 0xed,
0xd4, 0xfb, 0x0a, 0x17, 0xd1, 0x4a, 0xee, 0x9b, 0x7f, 0x67, 0x05, 0xff, 0x78, 0xa1,
0x43, 0xba, 0x07, 0xae, 0x4c, 0x59, 0xb2, 0x3c, 0x84, 0x77, 0xd0, 0xfd, 0x72, 0xf5,
0x70, 0x97, 0xb7, 0x38,
],
transparent_input: None,
script_code: None,
amount: None,
sighash_all: [
0x7f, 0x4d, 0xd8, 0x79, 0x37, 0x4e, 0x1a, 0x56, 0xa2, 0x32, 0xbb, 0x83, 0xb1, 0xcb,
0xf9, 0x57, 0x6a, 0xb7, 0x6b, 0xff, 0xc7, 0x1b, 0xcd, 0x98, 0x5b, 0x62, 0xdd, 0xd6,
0x9d, 0x29, 0x97, 0xcd,
0xa2, 0x2f, 0x92, 0xf0, 0x43, 0x79, 0x3d, 0x10, 0x9d, 0xb7, 0x43, 0x54, 0xc7, 0xd4,
0xe3, 0x28, 0x43, 0xe2, 0x11, 0x95, 0xe7, 0xca, 0xe4, 0xc0, 0x03, 0x0c, 0xf8, 0xb4,
0x2c, 0xb6, 0x40, 0xf5,
],
sighash_none: None,
sighash_single: None,
@ -516,27 +516,27 @@ lazy_static! {
},
TestVector {
tx: vec![
0x05, 0x00, 0x00, 0x80, 0x0a, 0x27, 0xa7, 0x26, 0x98, 0xa1, 0x19, 0xf9, 0x5e, 0x3d,
0x05, 0x00, 0x00, 0x80, 0x0a, 0x27, 0xa7, 0x26, 0x21, 0x96, 0x51, 0x37, 0x5e, 0x3d,
0xba, 0xf7, 0xae, 0x12, 0x67, 0x0d, 0x00, 0x01, 0x51, 0x6c, 0xf4, 0xad, 0xec, 0x75,
0x07, 0x00, 0x03, 0x65, 0x65, 0x00, 0x00, 0x00, 0x00,
],
txid: [
0x8b, 0x26, 0x35, 0x5f, 0x6c, 0xd9, 0x28, 0x8b, 0xf1, 0x15, 0xc3, 0xe6, 0x10, 0xa1,
0xe3, 0x4f, 0xd5, 0xf9, 0xc7, 0x9c, 0x9f, 0x78, 0xdc, 0x65, 0x05, 0x1a, 0x9a, 0x14,
0xca, 0xc2, 0xb1, 0xbf,
0x83, 0xc8, 0xe3, 0x41, 0x04, 0xf1, 0x8b, 0xdb, 0xe8, 0xbb, 0xf6, 0xf0, 0xb9, 0xba,
0x53, 0xb5, 0xc6, 0x69, 0x40, 0x61, 0x0c, 0x89, 0x4b, 0xc0, 0xa8, 0x4a, 0x16, 0xdc,
0x99, 0x51, 0x24, 0x74,
],
auth_digest: [
0x04, 0xda, 0x78, 0xb6, 0x64, 0x11, 0x1d, 0xe8, 0xe4, 0xfc, 0xfc, 0x14, 0x93, 0x3d,
0x79, 0xf6, 0xd9, 0x60, 0xda, 0xd8, 0xf1, 0x08, 0xf1, 0xe0, 0xb4, 0x26, 0xcc, 0x20,
0x36, 0x29, 0x22, 0xed,
0xd4, 0xfb, 0x0a, 0x17, 0xd1, 0x4a, 0xee, 0x9b, 0x7f, 0x67, 0x05, 0xff, 0x78, 0xa1,
0x43, 0xba, 0x07, 0xae, 0x4c, 0x59, 0xb2, 0x3c, 0x84, 0x77, 0xd0, 0xfd, 0x72, 0xf5,
0x70, 0x97, 0xb7, 0x38,
],
transparent_input: None,
script_code: None,
amount: None,
sighash_all: [
0x8b, 0x26, 0x35, 0x5f, 0x6c, 0xd9, 0x28, 0x8b, 0xf1, 0x15, 0xc3, 0xe6, 0x10, 0xa1,
0xe3, 0x4f, 0xd5, 0xf9, 0xc7, 0x9c, 0x9f, 0x78, 0xdc, 0x65, 0x05, 0x1a, 0x9a, 0x14,
0xca, 0xc2, 0xb1, 0xbf,
0x83, 0xc8, 0xe3, 0x41, 0x04, 0xf1, 0x8b, 0xdb, 0xe8, 0xbb, 0xf6, 0xf0, 0xb9, 0xba,
0x53, 0xb5, 0xc6, 0x69, 0x40, 0x61, 0x0c, 0x89, 0x4b, 0xc0, 0xa8, 0x4a, 0x16, 0xdc,
0x99, 0x51, 0x24, 0x74,
],
sighash_none: None,
sighash_single: None,
@ -546,7 +546,7 @@ lazy_static! {
},
TestVector {
tx: vec![
0x05, 0x00, 0x00, 0x80, 0x0a, 0x27, 0xa7, 0x26, 0x98, 0xa1, 0x19, 0xf9, 0xff, 0x6a,
0x05, 0x00, 0x00, 0x80, 0x0a, 0x27, 0xa7, 0x26, 0x21, 0x96, 0x51, 0x37, 0xff, 0x6a,
0xcc, 0x0f, 0xfc, 0x2e, 0x49, 0x0d, 0x03, 0x14, 0x6b, 0x9d, 0x49, 0xdd, 0x8c, 0x78,
0x35, 0xf4, 0x3a, 0x37, 0xdc, 0xa0, 0x78, 0x7e, 0x3e, 0xc9, 0xf6, 0x60, 0x52, 0x23,
0xd5, 0xba, 0x7a, 0xe0, 0xab, 0x90, 0x25, 0xb7, 0x3b, 0xc0, 0x3f, 0x7f, 0xac, 0x36,
@ -562,52 +562,52 @@ lazy_static! {
0x00, 0x09, 0x63, 0x6a, 0x53, 0x51, 0x52, 0x00, 0x65, 0xac, 0x65, 0x00, 0x00, 0x00,
],
txid: [
0x1e, 0xb3, 0x45, 0x26, 0x36, 0x78, 0x97, 0x7c, 0xce, 0xa4, 0x07, 0x70, 0x85, 0xf5,
0x90, 0x93, 0x03, 0xd4, 0x58, 0x0e, 0x72, 0x3a, 0xd3, 0x16, 0x2c, 0x06, 0x09, 0x66,
0x48, 0xa2, 0x5b, 0x1e,
0x42, 0xf4, 0x80, 0xd6, 0x10, 0xe0, 0xcd, 0xb6, 0xc8, 0x9c, 0xeb, 0xe9, 0x7a, 0xf4,
0x0e, 0xd9, 0x8a, 0xb9, 0x0e, 0x43, 0x73, 0xfd, 0xd2, 0x46, 0xb1, 0x01, 0xe4, 0x30,
0x21, 0xe7, 0x26, 0x2b,
],
auth_digest: [
0x9e, 0x7c, 0x68, 0x39, 0xb3, 0x1f, 0xb3, 0xe9, 0x12, 0xb6, 0x93, 0xd1, 0x87, 0x9f,
0xbb, 0xad, 0xdb, 0xe7, 0xa7, 0x4a, 0x50, 0x8e, 0x7b, 0x6d, 0x1f, 0xe1, 0x93, 0x82,
0x68, 0xc0, 0x4a, 0xb3,
0x4b, 0x58, 0x88, 0x55, 0x8d, 0x0e, 0xa2, 0x9a, 0x24, 0x27, 0x28, 0x16, 0xb4, 0x14,
0x2b, 0x9d, 0xc6, 0x82, 0x56, 0x81, 0xc0, 0xd6, 0xed, 0x99, 0x09, 0x76, 0x35, 0x55,
0x40, 0xed, 0x45, 0xf7,
],
transparent_input: Some(1),
script_code: Some(vec![0xac, 0x00, 0x00]),
amount: Some(693972628630138),
sighash_all: [
0x24, 0xa5, 0x08, 0xef, 0xed, 0x90, 0xa6, 0x08, 0x92, 0x13, 0x9b, 0xe9, 0xf8, 0x10,
0xfd, 0x82, 0xac, 0x34, 0x0f, 0xb8, 0xb4, 0xfd, 0x23, 0x65, 0x59, 0x6d, 0x29, 0xf9,
0x34, 0x17, 0x43, 0xb0,
0x2c, 0xac, 0x9b, 0xfd, 0x4a, 0x4a, 0xb0, 0x12, 0x49, 0x21, 0xa2, 0x0c, 0x04, 0xf2,
0x53, 0xaf, 0xd3, 0xba, 0x17, 0xec, 0x5c, 0xae, 0xc9, 0xa8, 0x22, 0x35, 0x62, 0xb7,
0xa6, 0x41, 0x3a, 0x4f,
],
sighash_none: Some([
0x11, 0x44, 0xde, 0x27, 0x8f, 0x2d, 0x3d, 0x80, 0x0b, 0x95, 0x01, 0x84, 0x2c, 0x09,
0xa7, 0x58, 0xa8, 0x11, 0x53, 0x01, 0x62, 0x39, 0x19, 0x59, 0xe9, 0x03, 0x71, 0x09,
0x23, 0x9c, 0x4c, 0xb6,
0x98, 0x6d, 0xf7, 0x0c, 0xe9, 0x5b, 0x5c, 0x4c, 0x4f, 0x42, 0xb9, 0x66, 0xbb, 0x4d,
0x2a, 0x73, 0x1a, 0x78, 0x7d, 0x7f, 0xa8, 0x40, 0xed, 0x5e, 0x7b, 0x02, 0x40, 0x93,
0x58, 0x50, 0x70, 0xc3,
]),
sighash_single: Some([
0xc4, 0xc2, 0x61, 0x31, 0x46, 0x7c, 0x1d, 0x4c, 0x4f, 0x8f, 0x38, 0x9f, 0x50, 0x85,
0xbe, 0x23, 0xa0, 0x85, 0x36, 0x18, 0x19, 0x45, 0x6d, 0x80, 0xfe, 0x96, 0x96, 0x2e,
0xec, 0x3f, 0xc2, 0xb2,
0x5c, 0x0d, 0x6b, 0xce, 0x77, 0xa3, 0x94, 0x2c, 0xba, 0x43, 0x28, 0x42, 0xb0, 0xdc,
0x51, 0xef, 0x5a, 0x5a, 0xe1, 0x53, 0x9f, 0xf9, 0x9c, 0xf1, 0x55, 0xa5, 0x9f, 0x45,
0xaf, 0x2a, 0xe3, 0x0c,
]),
sighash_all_anyone: Some([
0xe1, 0x3b, 0x4b, 0xfb, 0xb2, 0x4e, 0x2b, 0xd7, 0xd9, 0xac, 0xb0, 0x3d, 0x0c, 0xc0,
0xdc, 0x46, 0x35, 0xd8, 0xf7, 0x9e, 0xe9, 0x26, 0xcd, 0xf7, 0x17, 0xc5, 0x5f, 0xef,
0x33, 0x75, 0x61, 0x86,
0xd7, 0x52, 0x77, 0xd4, 0x24, 0x0e, 0x70, 0xab, 0x54, 0x98, 0xbf, 0xa7, 0xcf, 0x99,
0x89, 0x1c, 0x46, 0x16, 0x57, 0xce, 0xa0, 0xf6, 0x28, 0xf0, 0x53, 0x6e, 0x42, 0x87,
0x6d, 0xde, 0x6e, 0x52,
]),
sighash_none_anyone: Some([
0x21, 0xae, 0xbe, 0xc0, 0xdb, 0x41, 0xad, 0x64, 0x04, 0x18, 0x32, 0x4b, 0xcf, 0xfc,
0x15, 0xaa, 0x0a, 0x63, 0x5c, 0xf8, 0xf7, 0xf6, 0xbe, 0x35, 0xc5, 0x7e, 0x02, 0x06,
0xd7, 0x67, 0x87, 0x6a,
0xe6, 0x9b, 0xf5, 0x8c, 0x28, 0x86, 0xa8, 0xa4, 0xd8, 0x57, 0x53, 0x24, 0xce, 0x8e,
0xe5, 0xd9, 0x19, 0x80, 0x83, 0xc8, 0xde, 0x79, 0x9e, 0x3b, 0x6c, 0x2b, 0x58, 0xa4,
0x74, 0xa6, 0x9b, 0x28,
]),
sighash_single_anyone: Some([
0xb6, 0x0f, 0xcb, 0xf6, 0xd5, 0xf9, 0xd9, 0x2d, 0x38, 0x86, 0xe1, 0xe8, 0x87, 0x0d,
0x48, 0x08, 0x7c, 0x21, 0x51, 0x01, 0x94, 0xaa, 0xc6, 0xad, 0xf8, 0xf3, 0x55, 0x29,
0x90, 0x61, 0xf6, 0x20,
0x9e, 0x53, 0x5b, 0x3d, 0x36, 0x52, 0xae, 0xf5, 0xe9, 0x63, 0xf2, 0xff, 0xec, 0x33,
0x27, 0x8d, 0x92, 0xee, 0xed, 0xd0, 0x0d, 0xaf, 0x9c, 0x6c, 0x2b, 0x42, 0xb0, 0xdc,
0x41, 0x84, 0x98, 0x5d,
]),
},
TestVector {
tx: vec![
0x05, 0x00, 0x00, 0x80, 0x0a, 0x27, 0xa7, 0x26, 0x98, 0xa1, 0x19, 0xf9, 0xde, 0xdc,
0x05, 0x00, 0x00, 0x80, 0x0a, 0x27, 0xa7, 0x26, 0x21, 0x96, 0x51, 0x37, 0xde, 0xdc,
0x5e, 0x5f, 0x07, 0x56, 0xfb, 0x19, 0x00, 0x01, 0x33, 0xa4, 0x90, 0x76, 0x8c, 0x16,
0x00, 0x00, 0x08, 0x51, 0x53, 0x53, 0x51, 0x51, 0x65, 0x63, 0x00, 0x00, 0x01, 0xda,
0xb9, 0x57, 0x81, 0x57, 0xeb, 0xf9, 0xcd, 0x81, 0x13, 0x07, 0x88, 0x66, 0xe9, 0x52,
@ -823,22 +823,22 @@ lazy_static! {
0x11, 0xd8, 0x4d, 0x04, 0x09, 0xb7, 0x34, 0xf4, 0x52, 0xaa, 0xf0, 0x16,
],
txid: [
0xad, 0x80, 0x74, 0x56, 0xa6, 0xc0, 0x16, 0x51, 0xf0, 0x80, 0xd1, 0xdd, 0x71, 0x87,
0x1f, 0x14, 0x12, 0xe3, 0x8f, 0x89, 0x13, 0x07, 0x52, 0x80, 0xcd, 0x2b, 0x38, 0x02,
0xf5, 0xb2, 0x70, 0x4e,
0x44, 0x1f, 0xad, 0xb2, 0x5a, 0x6e, 0x02, 0x43, 0x6f, 0xe6, 0xa9, 0x8a, 0x28, 0x04,
0x56, 0xe1, 0x71, 0x72, 0x14, 0x55, 0x5d, 0xf7, 0x5a, 0xfd, 0xb8, 0x5a, 0xb1, 0x7a,
0x10, 0x81, 0x01, 0x1a,
],
auth_digest: [
0xee, 0x3a, 0x4a, 0x6d, 0xd3, 0x89, 0xf2, 0x81, 0xb6, 0xd6, 0xe3, 0xd8, 0xe0, 0xf7,
0x97, 0xa3, 0xd4, 0xfa, 0x01, 0x4e, 0x3f, 0x41, 0x6a, 0x0e, 0x47, 0x68, 0x4f, 0x76,
0x02, 0x15, 0x44, 0x58,
0x37, 0xce, 0xcf, 0x21, 0x40, 0x6b, 0xfb, 0x00, 0x2d, 0x1e, 0xde, 0x64, 0x4c, 0xff,
0x52, 0xd2, 0x2c, 0x12, 0x36, 0x9f, 0xb4, 0x9e, 0x34, 0xae, 0xf8, 0xa0, 0x3b, 0x4b,
0x61, 0xb6, 0x4f, 0xa5,
],
transparent_input: None,
script_code: None,
amount: None,
sighash_all: [
0xad, 0x80, 0x74, 0x56, 0xa6, 0xc0, 0x16, 0x51, 0xf0, 0x80, 0xd1, 0xdd, 0x71, 0x87,
0x1f, 0x14, 0x12, 0xe3, 0x8f, 0x89, 0x13, 0x07, 0x52, 0x80, 0xcd, 0x2b, 0x38, 0x02,
0xf5, 0xb2, 0x70, 0x4e,
0x44, 0x1f, 0xad, 0xb2, 0x5a, 0x6e, 0x02, 0x43, 0x6f, 0xe6, 0xa9, 0x8a, 0x28, 0x04,
0x56, 0xe1, 0x71, 0x72, 0x14, 0x55, 0x5d, 0xf7, 0x5a, 0xfd, 0xb8, 0x5a, 0xb1, 0x7a,
0x10, 0x81, 0x01, 0x1a,
],
sighash_none: None,
sighash_single: None,
@ -848,7 +848,7 @@ lazy_static! {
},
TestVector {
tx: vec![
0x05, 0x00, 0x00, 0x80, 0x0a, 0x27, 0xa7, 0x26, 0x98, 0xa1, 0x19, 0xf9, 0x8f, 0x50,
0x05, 0x00, 0x00, 0x80, 0x0a, 0x27, 0xa7, 0x26, 0x21, 0x96, 0x51, 0x37, 0x8f, 0x50,
0x25, 0x86, 0x83, 0xda, 0xf6, 0x12, 0x02, 0x39, 0x9f, 0xd0, 0x47, 0xee, 0xe2, 0x88,
0xbb, 0x45, 0x85, 0x85, 0x1d, 0xc9, 0x3e, 0xcc, 0xc6, 0x23, 0x22, 0x92, 0x4c, 0xd1,
0x3b, 0x5d, 0xd4, 0xee, 0xd6, 0x6e, 0xd8, 0xd9, 0x97, 0x2d, 0x77, 0x26, 0x29, 0xea,
@ -859,52 +859,52 @@ lazy_static! {
0xb7, 0x00, 0x00, 0x00, 0x00,
],
txid: [
0x0a, 0x8a, 0xef, 0x68, 0x56, 0x9f, 0x90, 0x23, 0xa2, 0xa5, 0xbe, 0xd0, 0x76, 0x6d,
0xbc, 0xdf, 0x2d, 0x35, 0xd0, 0x13, 0x55, 0x80, 0x4b, 0xf0, 0xe3, 0xee, 0x1b, 0x17,
0xde, 0x9e, 0x46, 0xcd,
0x6b, 0x71, 0x52, 0x9c, 0x56, 0x99, 0xb0, 0x64, 0xd8, 0x1b, 0x02, 0x3e, 0xdf, 0xf2,
0xb1, 0x02, 0xe6, 0x39, 0x7c, 0x81, 0x24, 0x6c, 0xce, 0x0a, 0x55, 0x61, 0xfb, 0x79,
0x5d, 0xd4, 0x88, 0x77,
],
auth_digest: [
0x2c, 0xbe, 0xf7, 0x5b, 0x3e, 0x2c, 0xff, 0x88, 0xb6, 0xf1, 0x20, 0xbf, 0x70, 0xcb,
0x3e, 0xc7, 0x57, 0xec, 0x25, 0xd3, 0x11, 0xfa, 0xca, 0xfd, 0xfe, 0x2d, 0xb4, 0x2e,
0xd3, 0x42, 0x04, 0x0f,
0x07, 0xec, 0x2d, 0xf0, 0xc6, 0xf7, 0x77, 0x15, 0x8d, 0xcb, 0xf7, 0xfc, 0x74, 0x08,
0xf2, 0x35, 0xdd, 0xdb, 0x55, 0x7e, 0x4a, 0x48, 0x56, 0xd9, 0x51, 0x90, 0xda, 0xb5,
0x59, 0x86, 0x9e, 0xe2,
],
transparent_input: Some(0),
script_code: Some(vec![0x63, 0x52, 0x51, 0x63, 0x53]),
amount: Some(107504874564564),
sighash_all: [
0x96, 0xc2, 0x33, 0x43, 0xe3, 0xa3, 0x69, 0x48, 0xa1, 0xbc, 0x60, 0x29, 0x6e, 0xca,
0xaa, 0x71, 0xfd, 0x72, 0xb5, 0x7c, 0x44, 0xad, 0x8e, 0xef, 0x31, 0x87, 0x47, 0x7c,
0xcf, 0xe1, 0x62, 0x9d,
0x20, 0x6d, 0x56, 0x7f, 0x65, 0xef, 0x19, 0x3f, 0x5a, 0xd7, 0x99, 0x99, 0xd8, 0xab,
0x08, 0x56, 0xa0, 0xfa, 0xcc, 0xe6, 0xae, 0x9c, 0xe4, 0x1c, 0x30, 0xf1, 0x26, 0xc6,
0x41, 0xbe, 0xb5, 0x1e,
],
sighash_none: Some([
0x27, 0x96, 0x4b, 0xca, 0x78, 0xbf, 0xff, 0x91, 0x8f, 0x5a, 0x4b, 0x6d, 0xa6, 0x08,
0x26, 0x8e, 0x56, 0xd2, 0x21, 0x81, 0xa6, 0xf4, 0x3c, 0x64, 0xe5, 0x75, 0x9c, 0x18,
0xff, 0xf3, 0x77, 0x9a,
0xdf, 0x16, 0x3f, 0x6f, 0x0d, 0x56, 0x7c, 0xfd, 0x97, 0x78, 0xa1, 0x42, 0x5c, 0xc8,
0x3d, 0x6e, 0x54, 0x8f, 0xd9, 0x37, 0x43, 0x10, 0x4d, 0x72, 0xfd, 0x7d, 0xf5, 0x42,
0xed, 0xaa, 0xe2, 0xb2,
]),
sighash_single: Some([
0x27, 0x96, 0x4b, 0xca, 0x78, 0xbf, 0xff, 0x91, 0x8f, 0x5a, 0x4b, 0x6d, 0xa6, 0x08,
0x26, 0x8e, 0x56, 0xd2, 0x21, 0x81, 0xa6, 0xf4, 0x3c, 0x64, 0xe5, 0x75, 0x9c, 0x18,
0xff, 0xf3, 0x77, 0x9a,
0xdf, 0x16, 0x3f, 0x6f, 0x0d, 0x56, 0x7c, 0xfd, 0x97, 0x78, 0xa1, 0x42, 0x5c, 0xc8,
0x3d, 0x6e, 0x54, 0x8f, 0xd9, 0x37, 0x43, 0x10, 0x4d, 0x72, 0xfd, 0x7d, 0xf5, 0x42,
0xed, 0xaa, 0xe2, 0xb2,
]),
sighash_all_anyone: Some([
0xcd, 0x13, 0xd5, 0xe0, 0x98, 0x26, 0x2b, 0x9c, 0xaf, 0x39, 0x8a, 0xad, 0x54, 0x0d,
0x75, 0x35, 0x6b, 0xd4, 0x63, 0x28, 0xc3, 0x9e, 0xe8, 0xf7, 0xf9, 0x07, 0x00, 0xdb,
0x17, 0xf5, 0x15, 0xc3,
0x2a, 0xb9, 0x5b, 0x8f, 0xb6, 0xb6, 0x3d, 0xb8, 0x7d, 0x65, 0x0e, 0xad, 0x2b, 0x73,
0x89, 0x12, 0x92, 0x31, 0x19, 0x7c, 0xfd, 0x20, 0x0c, 0x8a, 0x44, 0x56, 0x96, 0x69,
0xf4, 0x50, 0xc1, 0xe6,
]),
sighash_none_anyone: Some([
0xcd, 0x13, 0xd5, 0xe0, 0x98, 0x26, 0x2b, 0x9c, 0xaf, 0x39, 0x8a, 0xad, 0x54, 0x0d,
0x75, 0x35, 0x6b, 0xd4, 0x63, 0x28, 0xc3, 0x9e, 0xe8, 0xf7, 0xf9, 0x07, 0x00, 0xdb,
0x17, 0xf5, 0x15, 0xc3,
0x2a, 0xb9, 0x5b, 0x8f, 0xb6, 0xb6, 0x3d, 0xb8, 0x7d, 0x65, 0x0e, 0xad, 0x2b, 0x73,
0x89, 0x12, 0x92, 0x31, 0x19, 0x7c, 0xfd, 0x20, 0x0c, 0x8a, 0x44, 0x56, 0x96, 0x69,
0xf4, 0x50, 0xc1, 0xe6,
]),
sighash_single_anyone: Some([
0xcd, 0x13, 0xd5, 0xe0, 0x98, 0x26, 0x2b, 0x9c, 0xaf, 0x39, 0x8a, 0xad, 0x54, 0x0d,
0x75, 0x35, 0x6b, 0xd4, 0x63, 0x28, 0xc3, 0x9e, 0xe8, 0xf7, 0xf9, 0x07, 0x00, 0xdb,
0x17, 0xf5, 0x15, 0xc3,
0x2a, 0xb9, 0x5b, 0x8f, 0xb6, 0xb6, 0x3d, 0xb8, 0x7d, 0x65, 0x0e, 0xad, 0x2b, 0x73,
0x89, 0x12, 0x92, 0x31, 0x19, 0x7c, 0xfd, 0x20, 0x0c, 0x8a, 0x44, 0x56, 0x96, 0x69,
0xf4, 0x50, 0xc1, 0xe6,
]),
},
TestVector {
tx: vec![
0x05, 0x00, 0x00, 0x80, 0x0a, 0x27, 0xa7, 0x26, 0x98, 0xa1, 0x19, 0xf9, 0x02, 0x5f,
0x05, 0x00, 0x00, 0x80, 0x0a, 0x27, 0xa7, 0x26, 0x21, 0x96, 0x51, 0x37, 0x02, 0x5f,
0x13, 0xec, 0x91, 0x3c, 0x29, 0x02, 0x00, 0x01, 0x78, 0x8f, 0x26, 0x02, 0xa2, 0xcf,
0x06, 0x00, 0x01, 0x53, 0x00, 0x00, 0x03, 0x42, 0xf7, 0x36, 0xa0, 0xfb, 0x38, 0xae,
0x3e, 0x42, 0xec, 0x67, 0xb0, 0x74, 0x86, 0xf9, 0x0e, 0x60, 0x75, 0x2e, 0x0d, 0xc6,
@ -1125,22 +1125,22 @@ lazy_static! {
0xff, 0x82, 0xcd, 0x1f, 0x55, 0xeb, 0xca, 0x57, 0xb6, 0x33, 0x7c, 0x85, 0x13,
],
txid: [
0x80, 0xbb, 0x70, 0x2d, 0x71, 0x23, 0x5b, 0xec, 0xbb, 0xa2, 0xa2, 0x51, 0x43, 0x51,
0x2a, 0xd9, 0x06, 0x50, 0x34, 0x22, 0x5d, 0xad, 0x9c, 0x89, 0xbf, 0xcb, 0x73, 0x32,
0x8d, 0x3d, 0x4f, 0xe6,
0x1b, 0x72, 0x8a, 0xf8, 0xd8, 0x7e, 0xeb, 0x9f, 0x7b, 0x87, 0xab, 0xd9, 0x0b, 0x5f,
0x4e, 0x93, 0x62, 0x46, 0xad, 0x17, 0x89, 0x31, 0xb4, 0x04, 0x9f, 0x60, 0x42, 0x43,
0xa9, 0xaa, 0x54, 0x5c,
],
auth_digest: [
0xbb, 0x48, 0xcf, 0x27, 0x71, 0x54, 0x6c, 0x2c, 0x15, 0x57, 0x7d, 0xb2, 0x0d, 0x04,
0x86, 0x5a, 0x8c, 0xc0, 0x0c, 0x9c, 0x02, 0xec, 0xb3, 0x10, 0x24, 0x94, 0x31, 0x0f,
0x18, 0x68, 0x50, 0xcf,
0x00, 0x23, 0x09, 0x27, 0x5d, 0x8c, 0x01, 0xf1, 0x69, 0xa0, 0x51, 0x2a, 0x3e, 0x48,
0xe5, 0x21, 0x81, 0x25, 0xfa, 0x16, 0x1a, 0x87, 0xb4, 0xac, 0xa6, 0x3d, 0xaf, 0xe3,
0x12, 0x8e, 0x05, 0x27,
],
transparent_input: None,
script_code: None,
amount: None,
sighash_all: [
0x80, 0xbb, 0x70, 0x2d, 0x71, 0x23, 0x5b, 0xec, 0xbb, 0xa2, 0xa2, 0x51, 0x43, 0x51,
0x2a, 0xd9, 0x06, 0x50, 0x34, 0x22, 0x5d, 0xad, 0x9c, 0x89, 0xbf, 0xcb, 0x73, 0x32,
0x8d, 0x3d, 0x4f, 0xe6,
0x1b, 0x72, 0x8a, 0xf8, 0xd8, 0x7e, 0xeb, 0x9f, 0x7b, 0x87, 0xab, 0xd9, 0x0b, 0x5f,
0x4e, 0x93, 0x62, 0x46, 0xad, 0x17, 0x89, 0x31, 0xb4, 0x04, 0x9f, 0x60, 0x42, 0x43,
0xa9, 0xaa, 0x54, 0x5c,
],
sighash_none: None,
sighash_single: None,
@ -1150,7 +1150,7 @@ lazy_static! {
},
TestVector {
tx: vec![
0x05, 0x00, 0x00, 0x80, 0x0a, 0x27, 0xa7, 0x26, 0x98, 0xa1, 0x19, 0xf9, 0x79, 0x81,
0x05, 0x00, 0x00, 0x80, 0x0a, 0x27, 0xa7, 0x26, 0x21, 0x96, 0x51, 0x37, 0x79, 0x81,
0x3d, 0x20, 0x21, 0x0c, 0x6f, 0x10, 0x00, 0x03, 0x31, 0xef, 0xba, 0xa1, 0xcc, 0xfd,
0x05, 0x00, 0x08, 0x51, 0x53, 0x00, 0xac, 0x52, 0x65, 0xac, 0x65, 0x65, 0x7c, 0x6e,
0x39, 0x0e, 0xcf, 0x04, 0x00, 0x09, 0x51, 0x6a, 0xac, 0xac, 0x52, 0x51, 0x65, 0x65,
@ -1238,22 +1238,22 @@ lazy_static! {
0x26, 0xd0, 0xe6, 0x62, 0x10,
],
txid: [
0x2f, 0x2a, 0xb7, 0xee, 0xe4, 0xae, 0x1d, 0x52, 0x49, 0xf1, 0x2e, 0xe8, 0x16, 0x49,
0x01, 0x54, 0xeb, 0x2d, 0xeb, 0x76, 0x78, 0x74, 0xa3, 0x1b, 0x5d, 0x10, 0xaa, 0xf7,
0x6b, 0xa8, 0x4f, 0xae,
0x43, 0x67, 0x86, 0x11, 0xad, 0x3e, 0x86, 0x5b, 0x49, 0xc6, 0x6d, 0x5b, 0xcf, 0x32,
0xad, 0xce, 0xf1, 0x34, 0x82, 0x29, 0xf1, 0xdc, 0x57, 0x6c, 0xfe, 0x7f, 0x79, 0xcf,
0x3d, 0xd2, 0xcf, 0x57,
],
auth_digest: [
0xf1, 0x58, 0x29, 0x64, 0xb8, 0xc9, 0xec, 0x20, 0x29, 0xab, 0x97, 0xa2, 0x55, 0x98,
0xdb, 0xff, 0x28, 0x35, 0x23, 0xe6, 0xf3, 0x7a, 0xdb, 0x19, 0xcc, 0x57, 0x69, 0xb5,
0x13, 0xc7, 0x33, 0xc0,
0x47, 0x37, 0x40, 0x67, 0x05, 0xc0, 0x55, 0x45, 0x75, 0x9e, 0xb8, 0x20, 0x84, 0xad,
0xd3, 0xfc, 0xef, 0xd6, 0xb0, 0x98, 0x22, 0x70, 0xf3, 0x57, 0x11, 0xad, 0x67, 0x6f,
0x4f, 0xcf, 0x39, 0xdb,
],
transparent_input: None,
script_code: None,
amount: None,
sighash_all: [
0x2f, 0x2a, 0xb7, 0xee, 0xe4, 0xae, 0x1d, 0x52, 0x49, 0xf1, 0x2e, 0xe8, 0x16, 0x49,
0x01, 0x54, 0xeb, 0x2d, 0xeb, 0x76, 0x78, 0x74, 0xa3, 0x1b, 0x5d, 0x10, 0xaa, 0xf7,
0x6b, 0xa8, 0x4f, 0xae,
0x43, 0x67, 0x86, 0x11, 0xad, 0x3e, 0x86, 0x5b, 0x49, 0xc6, 0x6d, 0x5b, 0xcf, 0x32,
0xad, 0xce, 0xf1, 0x34, 0x82, 0x29, 0xf1, 0xdc, 0x57, 0x6c, 0xfe, 0x7f, 0x79, 0xcf,
0x3d, 0xd2, 0xcf, 0x57,
],
sighash_none: None,
sighash_single: None,
@ -1263,7 +1263,7 @@ lazy_static! {
},
TestVector {
tx: vec![
0x05, 0x00, 0x00, 0x80, 0x0a, 0x27, 0xa7, 0x26, 0x98, 0xa1, 0x19, 0xf9, 0x12, 0x50,
0x05, 0x00, 0x00, 0x80, 0x0a, 0x27, 0xa7, 0x26, 0x21, 0x96, 0x51, 0x37, 0x12, 0x50,
0x92, 0x6f, 0x6a, 0x8e, 0x63, 0x19, 0x03, 0x8f, 0x69, 0xad, 0x9a, 0x91, 0x92, 0xb3,
0x02, 0xf2, 0x6b, 0xdd, 0xa4, 0x65, 0xd9, 0x0b, 0x94, 0xb1, 0x2c, 0x57, 0xfa, 0x3f,
0xd6, 0x93, 0x00, 0x83, 0xf1, 0x84, 0x43, 0x8d, 0x8a, 0x88, 0x9d, 0x3f, 0x5e, 0xce,
@ -1540,47 +1540,47 @@ lazy_static! {
0x25, 0xa1, 0xf6, 0xcd, 0x5a, 0xce, 0x82, 0xc0, 0x0a, 0xb2, 0x34, 0x2b,
],
txid: [
0x16, 0x46, 0x65, 0x05, 0x5e, 0xd5, 0x01, 0x5d, 0xd9, 0xa5, 0x72, 0x47, 0xc2, 0x77,
0xde, 0x07, 0x15, 0x27, 0x5d, 0x15, 0x6c, 0xda, 0xb9, 0x6f, 0x68, 0xdc, 0x70, 0x10,
0x58, 0x3b, 0x02, 0xaa,
0xf2, 0x09, 0x0e, 0xc3, 0xe4, 0xd7, 0x61, 0x3e, 0xee, 0x5d, 0x3a, 0x77, 0xc5, 0xd6,
0x4e, 0xea, 0xa2, 0x29, 0xe0, 0xf4, 0x42, 0x74, 0x0c, 0x06, 0x1b, 0x2c, 0xb0, 0x8e,
0x93, 0x35, 0xa0, 0x03,
],
auth_digest: [
0x87, 0x46, 0xc9, 0x9d, 0x98, 0x57, 0x86, 0xb1, 0xb7, 0x7c, 0x40, 0x5f, 0x6e, 0xe8,
0x31, 0xe2, 0x98, 0x71, 0xca, 0x9d, 0x68, 0xe7, 0x72, 0x4f, 0xb7, 0xf8, 0x78, 0x6f,
0x28, 0x18, 0x42, 0xa6,
0xb0, 0x9c, 0x87, 0xf9, 0x85, 0x52, 0x9f, 0x8d, 0x51, 0x1d, 0x2c, 0xf0, 0xca, 0x42,
0xda, 0xac, 0xea, 0x04, 0x59, 0x18, 0x12, 0x18, 0x90, 0x41, 0x0d, 0x24, 0xdb, 0xdc,
0x19, 0x23, 0x96, 0xc6,
],
transparent_input: Some(0),
script_code: Some(vec![]),
amount: Some(1405243945822387),
sighash_all: [
0xc7, 0x07, 0xc7, 0x8f, 0x48, 0x49, 0xc5, 0x49, 0x87, 0x8a, 0xf6, 0x41, 0x50, 0x9d,
0xa5, 0x97, 0x87, 0xde, 0x72, 0xff, 0x4e, 0xcd, 0x08, 0xe2, 0x4c, 0x2b, 0xa1, 0x0d,
0x11, 0x7b, 0x14, 0xc0,
0x84, 0x83, 0xbf, 0x1b, 0x6a, 0xbb, 0x10, 0xa0, 0xce, 0x4a, 0x9a, 0x35, 0xfc, 0x1f,
0x56, 0xdf, 0x6e, 0x29, 0xec, 0xd3, 0x4d, 0xf6, 0x52, 0x75, 0xd0, 0x09, 0x77, 0xc5,
0x3f, 0x42, 0xf8, 0x91,
],
sighash_none: Some([
0x99, 0xc0, 0xcc, 0x62, 0xe2, 0xa0, 0xb4, 0xf1, 0xb2, 0x83, 0xeb, 0x93, 0x86, 0xc9,
0x25, 0x80, 0x41, 0x5a, 0x3a, 0xf1, 0x25, 0x5b, 0xf2, 0x81, 0x74, 0x51, 0x9a, 0x3f,
0x07, 0x8a, 0xff, 0x4c,
0xc2, 0x0a, 0x39, 0x19, 0x20, 0x96, 0x78, 0xb6, 0x0f, 0x22, 0xee, 0xe4, 0x32, 0xc4,
0xf8, 0x9a, 0x1d, 0x4a, 0x8e, 0x08, 0x6e, 0xeb, 0xd6, 0xfc, 0xef, 0x98, 0xab, 0x3f,
0x1c, 0x83, 0x61, 0x17,
]),
sighash_single: Some([
0x06, 0x7b, 0x18, 0x22, 0x92, 0xe5, 0x7c, 0xcc, 0x81, 0x0c, 0x01, 0x66, 0x0d, 0xf2,
0xdb, 0x4b, 0xda, 0x02, 0x30, 0x1e, 0x3a, 0xf6, 0x6f, 0x87, 0xc9, 0x09, 0xda, 0x0a,
0x4f, 0x25, 0x09, 0x86,
0x53, 0x98, 0xd8, 0x46, 0x02, 0xae, 0x39, 0xad, 0xdf, 0x98, 0x04, 0x0a, 0xa5, 0xdb,
0xfc, 0xfe, 0xc2, 0x66, 0xb5, 0x08, 0xdb, 0xbf, 0xac, 0xf6, 0x3a, 0xdd, 0xc3, 0x75,
0x81, 0xef, 0x81, 0x51,
]),
sighash_all_anyone: Some([
0xe3, 0xcb, 0xb8, 0x37, 0x82, 0x5a, 0x1a, 0x34, 0x19, 0x74, 0x39, 0x4b, 0x07, 0x2d,
0x8d, 0x1b, 0x1e, 0x6a, 0xa2, 0xab, 0x2b, 0x87, 0xc2, 0x0e, 0x93, 0xf7, 0x13, 0x77,
0x2e, 0x3b, 0x3d, 0x9d,
0x53, 0x91, 0xce, 0xef, 0xa5, 0x0a, 0x8e, 0x12, 0x1a, 0xa7, 0xb6, 0xde, 0xf7, 0xa7,
0x6e, 0x22, 0xcd, 0x81, 0xce, 0x0d, 0x82, 0x6f, 0xd0, 0x40, 0xdc, 0x21, 0x6d, 0xe6,
0x7b, 0x01, 0x5b, 0xbd,
]),
sighash_none_anyone: Some([
0xad, 0x36, 0x1a, 0xe8, 0xcd, 0x02, 0x78, 0xf5, 0xe8, 0xf2, 0x30, 0xf8, 0x1a, 0x3a,
0xb4, 0x21, 0x9c, 0xf1, 0x56, 0x2d, 0xb6, 0xb4, 0x13, 0x65, 0x44, 0xeb, 0xb4, 0x7d,
0x53, 0x73, 0x56, 0xc3,
0xe0, 0x9f, 0x3b, 0xe0, 0x44, 0x11, 0x00, 0x81, 0xcf, 0xb8, 0x01, 0xc4, 0x4f, 0xf6,
0x38, 0x6c, 0x61, 0x17, 0xaf, 0xd1, 0x42, 0xd3, 0x2a, 0xbe, 0xee, 0x01, 0x47, 0xdc,
0xbb, 0x74, 0x77, 0x82,
]),
sighash_single_anyone: Some([
0x00, 0x21, 0x5f, 0x2a, 0xe5, 0x57, 0xfa, 0xca, 0x3b, 0xe0, 0xbb, 0xdd, 0xdc, 0x62,
0x69, 0x12, 0x4f, 0x23, 0x26, 0xc7, 0xc0, 0x43, 0xcc, 0xcd, 0xeb, 0x46, 0x4c, 0x62,
0x5e, 0x0b, 0xff, 0x56,
0x0b, 0xf0, 0x3e, 0x2c, 0xa5, 0x30, 0xf6, 0xac, 0x7d, 0xaa, 0xf4, 0xcc, 0x64, 0xf3,
0xe0, 0x26, 0x9b, 0x5b, 0x0b, 0x3e, 0xd6, 0x66, 0xcf, 0x19, 0xe9, 0xd2, 0x6f, 0x63,
0x19, 0x1e, 0x0a, 0xfb,
]),
},
];