Skip to content

Conversation

@dmidem
Copy link
Collaborator

@dmidem dmidem commented Sep 22, 2025

This PR contains only my changes on top of the raw auto-merge snapshot in zsa1-v2.4.2-conflicts-new. It resolves conflicts and applies the minimal follow-ups needed to build and run against upstream v2.4.2, i.e. contains:

  • Conflict resolutions across the touched files, keeping upstream v2.4.2 behavior where possible and preserving our ZSA changes.
  • Required follow-ups only (API/type updates, small wiring fixes, test adjustments).

This commit applies the cumulative post-merge fixes on top of
`zsa1-v2.4.2-conflicts-new` by copying the file states from the tip of
`zsa1-v2.4.2-fixes` (old stack), without re-resolving conflicts.

Context:
- Base: zsa1-v2.4.2-conflicts-new (upstream v2.4.2 import)
- Source of fixes: zsa1-v2.4.2-fixes@<OLD_SHA>

Contents (intent):
- Conflict resolutions carried over from the old stack
- Build and test follow-ups required after v2.4.2 import
- No intentional behavior changes beyond integration fixes

Notes:
- This is a squash-style carryover to keep the new PR stack reviewable.
- For provenance, see the original fixes branch at <OLD_SHA>.

Refs: upstream v2.4.2, zsa1
@dmidem dmidem requested a review from PaulLaux September 22, 2025 09:22
@dmidem dmidem changed the title [DRAFT] Resolve v2.4.2 merge conflicts and follow-up fixes [DRAFT] Resolve v2.4.2 merge conflicts and follow-up fixes - new Sep 22, 2025
Copy link

@PaulLaux PaulLaux left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this should be a conflict resulution PR but I see alot of removes / add unrelated to conflict resulution. I can not review these changes in this partial context.

Need explanation why so much needed code was removed and if this is even relevent for review.

env:
RUST_BACKTRACE: 1
# Skip two tests that intermittently fail on CI (likely a race/ordering issue).
# FIXME: investigate and fix the underlying flake; remove these skips once resolved.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is this still needed?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, as we haven't found another way to solve the race condition in the zebra-consensus test on our CI instance for now.

# everyone who runs the test benefits from these saved cases.
cc c7d8676d35bb53ddfa38c35230db08e83c04e9189b4ed1d8cf11ccfaca7245cb # shrinks to block = Block { header: Header { version: 4, previous_block_hash: block::Hash("2d5c252f187cdb9c9b3666d8f96328acd0db66abeb6999a9742a3b0000000000"), merkle_root: Root("6726047952f962585058db70cf19dc9b3c5c41b1c1ec8a4a30a1fa456de87e45"), commitment_bytes: [u8; 32]("cc709ce38a992f458a1c64edbd2917c79342fc4ff3caa9833b643bb116652565"), time: 2017-11-19T15:46:23Z, difficulty_threshold: CompactDifficulty(0x20336cdd, Some(ExpandedDifficulty("336cdd0000000000000000000000000000000000000000000000000000000000"))), nonce: [u8; 32]("59f2b300aaab0b7b50137e4672f83baad78fc54b56ea5e1d956ab82fc7d0411b"), solution: EquihashSolution("424b7faacb5381b17aa15633c8b2e4d99739336907f3e1f5bf105fb04f92b81c4389340432325308adc9fc2cedac054300e9aa527538b48934df08e6eaff6d84b7dec021f9cd7ce7d439f47eac5417fa255701fe73e03983d577bd7359db28455727d995ae52dff17d33efb0243ac0df5661cfbef4173a390738445713ea3b142c553d235534e657d84e021467bc4c9fa18926ada301dbd447217e7a701cb891c67f28bfe4ff5ee5e991358a895f2ce4ccc1a9cee68c55a10cacb56da1446fb26e14b81a4448b76b4c4274eafd6cfa674c5ea5863183a0cbc9d74be1e2bd285aa0a9880ca88573f3d1eb276942af2fed985cca48e0a1c7e37f38b4c989169b3653ba252873d18ecf7c5019b28308d0849ec5aa3c44c17b7a67778f9883fbcf253896625b150e9396b511706bc635aee6ff495a27bb06b943b55acdb5ebcb24213a44697efb361e7584cdec952f590f602114d8029134cf9a80f40820899db1efeb916ac8e370b29373149790bbfc472988b9923ac22b48870dd0e8ffa8d6a80be92f48e35846f7b3014dddf33d0e9da45a9149546c8daafb7b1b9e64d638dd3037c638029a6d38de56ed00ae19d47f532533c8421f0b3770bacb6130a2aeaf2dee8d741679a439332f02d0754a774b161720ffe93c51f21a46190e9c55ed018a17dad2f432eab5f98cda63cbf4639682746a4747b76d24326a0bf8ab37943f7205056417216dea4728af86e121bc382807d23bd98b8149bb2e11571e189f9ee77b9754a47929390d2493effdbf50861304a408691430b556db0dd59a5ef3e68d12d89da88fe5527c1c5303ec38058bab353e2d1bf9e8be29ffafc739bbd52d72fc24b9f0c11ef8135dffa2c242f1742a5569aad2087efa82d4472de2197a9b33f07581ef6897c4b52bb28fc863f129990e4d1e150a7ba1ffa74332f2f3ef7a702334baf6e5d0973ff124e17658f33a89dfc863b08e0f00858f3e958fd76213b2cb21e2c30dbcb7d03f21f9135094ff3fd412a043ed31e30ce5f7fe17e382c8a89ee98793d891cf1f6e5861ac6a36c189cf800d78bf17d94087378dab279f334fb1507e2a48a88e00173874c0b59626fba7ff36b8a284d8285273deff978d8a34efc9ab747a37bc2d6d532bc55c9818c67bb5e68fc1fb2970aa5f3c05c9a2afd18f1a46c4365cd8c4f6312534de4ba1cb2e324de26224ca69ee9ac8ae897ed0c8673deccdeaec715c4676d8686fa3f2ecb612f33e6a7ee9441a5d79b9aeff77305d00a5174071a9e05d119261bdafdd07b43fd2f8847a589c771a3a96fd8c6717b15778a8177e5d41fe617210b6591baf05b06ec92cbb7e1fa6925b927d89652d55fce25dd44c71a4da0d022fa7d85adce535a6ebadb0894a570f4a4435295c862bf3b81e448238ac4399b0c559c85633fd7ed131b1885561607d74cc74b774caf5260129c4b533329a6b1b9aae468972b7577e465c1fd023281d6244dd28c1ad13f9bb5c6ea7f3f31567e490975455fe4bd3e1c57afe2257f77b778423dcdb559b6ce2ba529fb7a5cbac3ef40d17e8739b8c05b5047b17b22792d1acba723cde322c583754672f0f76716f2346ee90af89d38d42ffcd5da0df308916dbc69805dc6addd65a82c98f4f53a9b3bc1911ef5410bec2ab74053654492a7de2fac0f0dfeb134ef7c1b4f0b0b4b1ed8c8235b483ebe3286cafe42dc716cc9bc9121bc77bf9342856def54bc2c723a7850d91a44df410bb380f5660c15451586968c74d755324a87bd73b1fe151df3af2817800a51fad02b699922bfa3069c7e9fa515828d87f3a22b0c2229cf2a8ec8631eddec056a6c91b10061051fb0b7a9b92feec1362efcd392b9a9e8a208ec81cc1961bda56bf310d7e41144599bb3468b261aa") }, transactions: [V5 { network_upgrade: Heartwood, lock_time: Height(Height(480580457)), expiry_height: Height(32308125), inputs: [Coinbase { height: Height(1687104), data: CoinbaseData("b\\x17P\\xa3&d\\xfa\\xeb\\xde\\xbc\\xd6\\x13\\x18\\xeb;3u"), sequence: 318224598 }], outputs: [], sapling_shielded_data: None, orchard_shielded_data: Some(ShieldedData { flags: Flags(0x0), value_balance: Amount<zebra_chain::amount::NegativeAllowed>(-1665014914533119), shared_anchor: Root("0f87c9b793c142112c07d330c66d40a683520e8e56740771fe83d6884d736210"), proof: Halo2Proof("acc526ba49cdf5daa87fc0314bd23323a3af2991b52d252da9b3bcda5961f32b79bb4db075a8db97441aeb97ce645f"), actions: AtLeastOne { inner: [AuthorizedAction { action: Action { cv: ValueCommitment { x: "0000000000000000000000000000000000000000000000000000000000000000", y: "0000000000000000000000000000000000000000000000000000000000000000" }, nullifier: Nullifier(0x3b5fe4a43d06d99281541089135fdc46facb83d4f3c88876fb8f42b80d486799), rk: VerificationKeyBytes { bytes: "acfbcb625ae552737cf21591e57958e5e7bbfe55efddae66c5cbdee68b4a95bf" }, cm_x: 0x0000000000000000000000000000000000000000000000000000000000000000, ephemeral_key: EphemeralPublicKey { x: "00000000ed302d991bf94c09fc98462200000000000000000000000000000040", y: "0200000000000000000000000000000000000000000000000000000000000000" }, enc_ciphertext: EncryptedNote("87573286e0d8118694398e2c731df4ce5174418eadc01c7fb1d3b84b0dc835e5022e80cc24a98508c1a29cec7d3cdb29ebe6a276b393b76b82eefe233bc8997cb21bff709486cf8765cadb441f0ae23dc3c20722b65ed00be7340bb23899ed1f3cae270045d068443e0e8851b63752e61d044eea06fa4b992558c65708b0fba94be75800d0128d53e41222d7f6f3d340c39950fbcc57fe0ea41d2ad99fb91054b2130e406d40500b2a1febfb304ebd2f8e9b0c26f764e8153e22c85dbfad03b9437e4e817c5162ce50cc1a730bef7cf46f3ef729b0d564b8513095840844534371bcf2fa9aba7250491a9a1e669e8ca630f340c368edbb11a86d634c7bf7f78c0ce996d6dc2ffe43850a1667abac36fb4b4af61624d69ae23586629b860c857d1064bbc5af1ca42a49030e22f96224920cf2293e01875fc651087d7353f141e73841a4a14304f7e34184f417d158aa459658446c37d35e7e480ac016c62391b20e91419d1d8894485358636244ea8648180b0c6b8f76bfc9e42d06ab47b43ffc298befc58981b61001dae35c8ccb5166b2c8bdd717c11122b913edfb049c17e6c245003463ebdbf7d090f0c253c2376d221c8be3a3e658b823cef82833ef55e9c700300ce2eea025bcc6bc6f20446e258a89794184d284d4ee2e8d7a5cec78431c39847e78b2394dd4ec0d75da717b46baacb02ae15eea9080adf5d05a71eab81e5413bbfe233cc9ce93392434cfab4d8389554be35ea6cf735bc188aa5b20252e25d590776a4fde9b748127469eaa8d01bc2cce639eaea2e35efc1d371c8e07507285d6"), out_ciphertext: WrappedNoteKey("34b0dde90c52711cb31ccb28db6a0f4e9a4950d323f6687318f6fb8c24dc301ec6f3602566670ba1e04b7f4645e904f2ac776065037756d2e85adb61a980afc67707563d19846b14f7b33adff622defe") }, spend_auth_sig: Signature { r_bytes: "bf1b5fd3c5b9cbd8dd882b71d8a7b210f151866810d4bd2f15c3fc425317cd73", s_bytes: "3d01abbd3eb60dd05cb94e2f67eef0ae10c8664c9efbeae196ca136bcab61cf2" } }] }, binding_sig: Signature { r_bytes: "edb35f3a4f890dc40617fff899c5d78533e94ac8765c1658b47d1f4f8ffa7799", s_bytes: "823e700437e7af3ed220785d884d479462672407d496ef6a69318f2acc1d4455" }, burn: Some([]) }) }] }, network = Mainnet
cc 895b3b0863eb1aa1007096aa5c575b9719193aff66ca5450a7c0068099af0972 # shrinks to block = Block { header: Header { version: 4, previous_block_hash: block::Hash("cd3c51b96f6b43796dfc1d7efb6b39848df7a0461199be42eec6100000000000"), merkle_root: Root("39eeec9aa77fdd2be5051eb86460188052cedd77419d300f66d240b8fb067843"), commitment_bytes: [u8; 32]("19e77d7207aa11d30ced9f9da5aeb9bbed94307f141047b1d14946255abae266"), time: 2094-02-04T12:25:54Z, difficulty_threshold: CompactDifficulty(0x2100bc89, Some(ExpandedDifficulty("bc89000000000000000000000000000000000000000000000000000000000000"))), nonce: [u8; 32]("6b5b4dc44ce2a74021297b073b45e44b71101fbbb4f8c545059d8dfcd3ec359a"), solution: EquihashSolution("07517202b0d980f1d9fe5f04bdc4c37ad3a4d3497849dac21890725f790b82e4a15a093400a84fda72835b290635e92e3e2d222c6be8282c9446b6d4df8e9cba50dc0ab9646728c09096232066c652b92985879b99c20a676c503d063511f95f4c8b9fff4e24698c208ce45affaebb2dd1729b7774c9b99671123393a43a79b8eb586d2af7dde8c28039f1709b37e4d785065e682b4223a0cb5d0e71ed6f2c7e240bddded87600c43c9d1141f97296e4034b4830eb2e835367c63c9b60ea2d615e1feaea1771adf5f460052a1e0ca1fdf6367ddf702bd5c578ab02d372600a362ee47d897cb47f1c0e7b9ae40419083fa50410f6fc4d990e09875efc7dd7fded6191a0a8a62ebde345eae841074f5a9c0fe1aa97e2c7f16cffd38912fd6d3d02e305ab6f4d056488e44c5c8607e19009513103617b4bde929f1688dd7a731973b061974b4a1b587e5554ab4e65acddb36f07667e4d39b2deb7de6b3ec34f289ca2cbc4eb528ed49a5fe1a09519c7fb7173070d19473ed49c7c22a181165f5be5ffdd8576457a3bcccb80f8a5d14607da01e502bed3784cfc8b45188e2dadba257ec5c50a15011a9e7f88e20dd9866c0584e5a650c902a3ded64fd95d06f0549a8ad42d32e8ea06e7a4edf4d518b9b161284cd4db56676be888b1e1c2399241e02247cf199e9e743fbbd6e138958d96745b61b328c887d8d9f4313788360bf17fcf7f237e10cd8290ca2b78a2bbcf696b66adbb7ffd160743005dc57c28e75b07c41c3ee76b9851dc7a9024977b83c983fcecae738a3379cad49021a81b5b878f05885ebd7123d1c6e28a463b8ec69429d7370416aff02b709d4d80a9ded2b8ac214135ebd4c9a92ac1dcdfff3594a6d89cdcd6dc48beaa8d60bff5fedbedd7355aff3ecad44d75149337a734b2d192a5cc09dccce357241834d165bd0045a2814f315e866e447a92163181f9dd6211e2d6cf60c5461187f996ce6c07ec41dff6da50506a8e33c99dee7dbf21c4fe8fa52708e84f027afe5283ff21c32bb7627abe25c9b14516a68ee20a3a295c2c909df57a459be4377f8b3215f068a73166d53ddcfc7146c2c23fdb4e72212e12c0765b4252bfee368b392e9f295eff6ec8e30df86c6d0068a61882fa52afc239b0e648a381c8af0fff58bcf5060fc337c674bb3f002bad115ad7ae0e11c4a9c857b7d53ea39764dd4f893b7a372a7859dc6fa0fd33ae16ee87d02c4dd6efeebc1f5493a7bf001ca8c7c9692fccc4eef73edc564cc4eed217974823cd9ba7587b70c8d95fafa800a714cf3d2c7c5fc0ba5de789a1471226407eef1e87c83a5be7274de7782c3b2fc529a68a2ea72435db8b04bc7951f02797dff9b25db8ee254747c3057ce22c599b179cbece161d41162056e0f82bc64270b9baf122beb49999b61ad28febec726823198f421bc08c5989eeadbfd2c8dea0ca2d4827adf8c2f36f0dbadf891119a84507a4a6af16c370af59c895ee0fe4e22a05a838bc930bf76bd2574babb7c9da51261255d3979ea76ea823d9107cdb5f06316402cf494fc20301a691a98f54d773fb448eef25ea361072a4b8acbfbb83ccca9490b3ab446de81bdb207cd9baa1e16ef6414f2fbb05023507b0c7b7623374c6444c1de694a9b9eafae65a3a64269d8852a50b521f74b35c1e947ffe26283e61e7d8a108aeccd73d34b8bdf4ef6b812ed1b80906000117ee0b195a36e1da7e3aae1b2556e9f524e6e50f056afe8ce3f4646b3a8b050ec4ccad6832d2b0cee35958b4d096998125e8af83fa5c4332c2add6d7e2c1f67a6350afa6b49879d84da314537675c10f418f6d76cd3379d32315f2379349a6cf3f7d1638d020c4db9312acac23f83b5c1243cfe8d0058108bde3607d6c1a000daadb") }, transactions: [V5 { network_upgrade: Blossom, lock_time: Time(2039-06-12T06:06:16Z), expiry_height: Height(644920957), inputs: [Coinbase { height: Height(3111000), data: CoinbaseData("~^\\xadRk,!F\\xea|]P`\\x97\\xf4\\x02\\xb4:i\\xc5\\xe1\\xef\\xce\\x1f\\x99\\x9c\\\"\\x15\\x83\\xc1\\xa8P\\x13pG&!m1&\\xe5\\xab\\x11\\xc9\\xfd\\xb4\\xfcV\\x82\\x15\\x02t\\xd29\\x80:\\x13{h\\xa0\\xe5b\\x1f\\x96\\xc8\\xaayo\\xf6\\x0c{\\x15KF\\xf6!\\xeb\\x1a"), sequence: 931075032 }], outputs: [Output { value: Amount<zebra_chain::amount::NonNegative>(937209786863753), lock_script: Script("514d62dfbb8ccc3cdf1dd4392f982a7b67cbe2382ecd7eb5ac8858adeba2280d46eba94312d1f4b8f2bf58013f3ff9eb307971") }, Output { value: Amount<zebra_chain::amount::NonNegative>(315287296346926), lock_script: Script("9a50afb23324b8ee8b1fad002822fd2c44f300ef6c866701aa7605ebdbcf4bf4e4845135edbef2b2c8bc578c8e2cf10f879b9d827578196f5f1977c8291fafac342a") }], sapling_shielded_data: Some(ShieldedData { value_balance: Amount<zebra_chain::amount::NegativeAllowed>(439633831225796), transfers: SpendsAndMaybeOutputs { shared_anchor: Root("01bb639c03f207b7667c929558f6daf04002ffe1a7cb8c07e518ddec63dc2c6d"), spends: AtLeastOne { inner: [Spend { cv: NotSmallOrderValueCommitment(ValueCommitment { u: "feada7f15dd3b3e4af81bf291b5df5ca87810ad6dd030f8bc88737bfb8cbed62", v: "0b00000000000000000000000000000000000000000000000000000000000000" }), per_spend_anchor: FieldNotPresent, nullifier: Nullifier([u8; 32]("9b46def65851a127c96f7185bb184e331c30b1dd61829dc94e81f56afbe6570e")), rk: ValidatingKey(VerificationKey(VerificationKey { point: ExtendedPoint { u: 0x1c573855bb45a5b81144296cd70e23485859187c41b40071a08b8142f993369b, v: 0x316cee1affb0884bb65781da6900078c7df7f09aebd3a5bad1668fc5f6bc7e12, z: 0x43995e7e594593c29472f0fa71200ea3d706223d016658025486d1da51107e90, t1: 0x6973ac48867ecd16f1ae8e0c1c9fbc9d685757a0df2e3b71c1c9d7d911e892a6, t2: 0x6a0e2b0c3b8000b62e96eaf4af43ca30b4277f90f5e6c9838e72fb90c0f939ea }, bytes: VerificationKeyBytes { bytes: "2d83fd9383a21b2f7a8ed0fadba102bb6b0f2ce456f7eff13f36b0e87f483d4c" } })), zkproof: Groth16Proof("a2d27e541a92ad7885a6fef947bb00199d055aa5fd129ea1c18e67f015d546148bfa8f2e6a5516a4ab7426c1d3ee87359b962f82f7a179224b85c1a615aff1ec8b8858f356ed9b2065d851def9ce058c45d6691a2145cf70fc7f6fc7c853c0329693a7c37b78422d84d138767afc5d28092473608962d192edd5847f2c0e5d8493bdebcec82f78ce9744c977362b0f4f1307404cec3f1d2f8ef67bf7537539284e549e73174ef6fad0d7694fbac04e8d7c920c06ee26f5fc51b365a8423d5e23"), spend_auth_sig: Signature(Signature { r_bytes: "a66c1c99224c9da4c3e7cf507901d503128635ebd61b3851d8ff2d3ae5d8e436", s_bytes: "ba4ffd5058fdeb094b2567e4144fb8d4483605feb4ff9c83445d392e4d72e226" }) }, Spend { cv: NotSmallOrderValueCommitment(ValueCommitment { u: "feada7f15dd3b3e4af81bf291b5df5ca87810ad6dd030f8bc88737bfb8cbed62", v: "0b00000000000000000000000000000000000000000000000000000000000000" }), per_spend_anchor: FieldNotPresent, nullifier: Nullifier([u8; 32]("c57d510f59a465a2d9028fc09f65d0be8212004d35a0d95318c9645f75a4ad89")), rk: ValidatingKey(VerificationKey(VerificationKey { point: ExtendedPoint { u: 0x5e9b5ad22f1ab1485566b21214f84411a2784400be3fc1558b8a8914b1f281c2, v: 0x26a7a506e3f416a17a2542b675b58ae40a9aca23d95be5b7fda446f843e4c65b, z: 0x3bb50ce9b966eaf7f811b9a3447edf3bab18f8e82757f4b3d19a32fc2ce7d52b, t1: 0x0885c9426c02811c9c35e359d0348528d54403937c41012c4d0f8d01de372989, t2: 0x4760879ca738727f4b1cb7d904e1554056ed4fbe1e9ba76e163e6b204483bc4b }, bytes: VerificationKeyBytes { bytes: "c97b84b645e8218150a0fcb6b548cb8e07f62eba70b2d8059899fa49f75924a8" } })), zkproof: Groth16Proof("176a2d16de98383dbcbc60beefcd584df1006fac45e9f2ee204dad8531ef1dd49b035be1e8368ddd10ef5affc431807a4e37e331b4d7bd50df4b7764ec5d1019809e5aab980bc39ce788a63ba07851fd8c0ddfc7c13453221fc1d1364d5687d87f3d85c0f8d98a2f46d8356fb7f3112b53022410a8cf0ef9618a42e3bb64fcca3e26396006aa2956a6236f9a734516672c07e83b4561b6b2da994f7ae171e75f8050cc23b46349ae2a89cc5be63ddcfc40d056d04dde3e8f5bd3941c4363a7c5"), spend_auth_sig: Signature(Signature { r_bytes: "3d3dff152e0ab424cac965d021fc6a2070dfe64bd468299e1f7e59c84354b7be", s_bytes: "0bdffac4ed45b3fc40639754f9a67c55ec69658080b224fde7b50ae64bc6d5c7" }) }] }, maybe_outputs: [Output { cv: NotSmallOrderValueCommitment(ValueCommitment { u: "feada7f15dd3b3e4af81bf291b5df5ca87810ad6dd030f8bc88737bfb8cbed62", v: "0b00000000000000000000000000000000000000000000000000000000000000" }), cm_u: 0x0000000000000000000000000000000000000000000000000000000000000000, ephemeral_key: EphemeralPublicKey { u: "feada7f15dd3b3e4af81bf291b5df5ca87810ad6dd030f8bc88737bfb8cbed62", v: "0b00000000000000000000000000000000000000000000000000000000000000" }, enc_ciphertext: EncryptedNote("bdac1323d9a964c5664bbf1c986f4f3cf6ecb63f2058eb6d848fdfd34ed10f648bf8776e6b532d0adc5d4227f10a0777802ec85fb54fe74d3adecaa94cb08248c4d436bd1879fdacc8fa7efd6ca4841e517a35f009ef99e2e4659b6a45684ac3bd94b29a80024d3979b36b5d3b36bbe1cef297cc3f37cd4d763d24dc4e8266158ca159b6403c6c9d721e4d4e1ea0dca46e51a3a8ef1dd96021607a2efa67bf8822ee8a5ab60e59f0c23b9c6ab7698c6a859a9eb882c597f133b080c5ead3686fb20bfbc3e83aeb2b7b6932146876ad7a7bda3b973c8f55894fa659465d679b7cf19b90eddc97c26095a689b5f01fe4dd7969c85c9aaca4ba6fd257d09c75f6f7254d9c366249d30f0fa0e5f363eb58b13efb1919d5a9471a3be7555eae107a8b4bc8e5881f8a4497f64478a9f8a3287e2dbe1a64258f6f57f455aab1eb8c0ff058be1bd014f4b9c4d8bf1b806166f2049a533e5c608e3ad501aaffc72f35db7aed08240b0405963c3d1d02f2e567797ed8c502aa9e697aac32c3c956386210fe44a980ebb5e10f2422e3133ffd678af640e78c4b3e9090c253ff8a04b128545c212fdd99bb2de5f4886d34ad6ef5a912db213eae7df02cb8851ffa1810fdacb2cd5d4eef4c8b9b4f25885695b5ca3f58d08890217e0a1820826304a0f6d663a15287108ca9671cf77be19d7b45cdc923ef50c0814cc8d816dcd33e1bda15b9484ea8c525eb94bfa94ba83b01b717b7b16cb2338ad587dcb96c3c6f11b259359227874eccce1d5b24dfe3cff58a3e38549572259ef8d56fc98a281d9dc9ab29ceae25e3d3"), out_ciphertext: WrappedNoteKey("c7b8bd2039b1e44b37ce9595b7095a04340495e6dcdb6958bad1b6abdfd15fb2f42bf5c99a1d4b120adb1aefe697daae5ca66a28a6fddbbcf22f77d223abc1566f9f4b5f41096ecdd089ae5c700eb8ec"), zkproof: Groth16Proof("23858be37d177245ead4e99fe57850454d6c0da08dafe553a9e7086e4f9221ca07919153f683a87bae4368670b231ef9b7a4cb05fd97e5543de0b65378a3e375b05b633dd31418746c73faa01444edf1c02236c6051b1df68408eb1cf2e4c466e77161ab3e9a728e9a3cce9b6e9f47d6e5e7739068d438555c08e5eee84fd56535b6682c98743959b22828a7b86510d435da5f3d78f3ac5f2c410931cc3a83ea65e1176e2874a4fe239f39ba04722d751106b33b75eebba828d9cb047d12b93f") }] }, binding_sig: Signature(Signature { r_bytes: "1c0f2902fee13c090668c306c1c47798fd19ff435a17760d33963c64c9980183", s_bytes: "0e6c62318443bbafdd863c039005143c3e1af573aa7088bc43c84dd3abbb6f68" }) }), orchard_shielded_data: None }, V4 { inputs: [PrevOut { outpoint: OutPoint { hash: transaction::Hash("1f3df4dd2e4b91d5a47b79a08beea80987fe7d7783e38aad982ef845d6dbbceb"), index: 1939448267 }, unlock_script: Script("00eeea398f272e6ae7a7fd"), sequence: 2852981499 }, PrevOut { outpoint: OutPoint { hash: transaction::Hash("1ac01496dc15b9fc074fb327aab26830745bf57430a62514634824098c5b41e2"), index: 2592743696 }, unlock_script: Script("689427595c14598dd943181296609a9a39c4b3fe"), sequence: 1770036452 }, PrevOut { outpoint: OutPoint { hash: transaction::Hash("9637dc9e162e5a1f9563862bc41f9599e5a210d587dff44b45133a3e2bf51136"), index: 574621683 }, unlock_script: Script("2131df1baa9a4b874f43de2b62338929c3b76221880dcd1abf07cb3dd0b9"), sequence: 1057502992 }, PrevOut { outpoint: OutPoint { hash: transaction::Hash("d0edb13722314def6926e9ef0cbcacf03833975027b4e4166bf16ce34360ecdf"), index: 2584643886 }, unlock_script: Script("5615dd"), sequence: 2161501083 }], outputs: [], lock_time: Height(Height(7007986)), expiry_height: Height(624050868), joinsplit_data: None, sapling_shielded_data: Some(ShieldedData { value_balance: Amount<zebra_chain::amount::NegativeAllowed>(1036846515935144), transfers: SpendsAndMaybeOutputs { shared_anchor: FieldNotPresent, spends: AtLeastOne { inner: [Spend { cv: NotSmallOrderValueCommitment(ValueCommitment { u: "feada7f15dd3b3e4af81bf291b5df5ca87810ad6dd030f8bc88737bfb8cbed62", v: "0b00000000000000000000000000000000000000000000000000000000000000" }), per_spend_anchor: Root("a4269bda9f122da66cf3c8610e3311c497d5c198ff5ba09c07eb5750682ac516"), nullifier: Nullifier([u8; 32]("ee1ea9387c4f2ccb1120272747de4f26d91aaea58cbaf881707b663a3ac1f2b2")), rk: ValidatingKey(VerificationKey(VerificationKey { point: ExtendedPoint { u: 0x083d1a9bd17080c490a35e946a33c0a16c76af16969fa26401417acd51e5a8f5, v: 0x10bafbd4dd999f0a3ace248211837da27d6891b4db204190fe594856294ac811, z: 0x48486145ca2729a384872fc1ee1c5ae715e54142757803f74dc30513e9d06477, t1: 0x3e536983b0998deabb48eabb17112eb5468d8a7ace0f478ffad05272dcad9d9d, t2: 0x5a429ec3dd0863951f5a61a600b356953beac0e545cc25121656f87b96bfe24c }, bytes: VerificationKeyBytes { bytes: "5347469592528ec7288d949595c264e2d30b43f5aabf3753f6b71766df3cbca8" } })), zkproof: Groth16Proof("f02d964e27f8ca27f8b21895c16c57e20c0e0b8589c02d982c0722158f151b2c59572e04b41e0e7df32d2b03d7e4dfe7de31ce1070c0ef3afd77c78f961532b9614571602f5ab4586c93921ca5e721ead78252478045b92125d2ed20efb73971a0f836db5adc54ff237c05e73f0dc9e2b16095f9459eaa423d4f596caa29564b5c100d2e8ae0cf7aa89b29a89d75d5dd280db893be1097a022de639eef4ee17db7ab9bf649274528f03cd1d8494dbb58c6eeef555b7a3b4f05a7d5862ae77a28"), spend_auth_sig: Signature(Signature { r_bytes: "c254eb01e523183ed62b54fe8a9091b79ed475d2b9dc386c9f00114167bf6d74", s_bytes: "f0ae3ca6d68658a9f6f238629c121b50426673f2da7db1aef18d7e7ec8809922" }) }, Spend { cv: NotSmallOrderValueCommitment(ValueCommitment { u: "feada7f15dd3b3e4af81bf291b5df5ca87810ad6dd030f8bc88737bfb8cbed62", v: "0b00000000000000000000000000000000000000000000000000000000000000" }), per_spend_anchor: Root("617e801d2b2b6ac345eb383f64360f5d54fc8b8522fd2051daa4f0dbf72de80d"), nullifier: Nullifier([u8; 32]("cfb8a6950550689c204b95a67a00b832660673b7d63165810e1063903ea6d44a")), rk: ValidatingKey(VerificationKey(VerificationKey { point: ExtendedPoint { u: 0x3b579f10934309c8977f7d72486e35616b990da2acca66d6cb056da4afb86912, v: 0x0e0fda5006901f495a3a614349e6a66ec1b49951d1ea1d121d513167985a4550, z: 0x3132759d9a9a096d9d9e725da4534aaec549e82a943be693ec73092d5a04a204, t1: 0x72119e9e9b5c77720f7ac1376a135e026ff193fc0e4b83401e3c64ee661755f1, t2: 0x4fc3536928ea29479de4e88a673908d2f2a640976b1c005b118c1d9f1dcf61f9 }, bytes: VerificationKeyBytes { bytes: "95e22536cdd84457eacc889f3b17cbcb5996ed22b7aa790d07e3818b532edf03" } })), zkproof: Groth16Proof("e26d8d4f84bbdf622b026fbb0d352b21c1fecbf5bfb5935e26ad0ac60bd017246875aa0f9242a909309a51a3fd0c40ce67dc1cac065e9816fa82e8c45a899499fd1bd694d6df57de10ea1bc0d419ab2a61fb0215561a68e26984ad2378741af99c33ef85db6567503b4152d9c6a2fc70b7e277fd289711d1da1bd6c6138fa9cb445796f55f6ff0cf4bf50ffaa7042c6a77a7419b1df9e22a472232c6cd68114f488e183e0298c468566fd071ad53cfeb38bb8439af81ff0ba65fa67ccdc26de3"), spend_auth_sig: Signature(Signature { r_bytes: "c452266dd39618bb70d29768c76b6e2deffcd4a686b30474f3c14e5b4d1cbe4b", s_bytes: "56285068a4d85d0971e9440bb1da73413d824683985508e0a92b1f58036dbff5" }) }] }, maybe_outputs: [] }, binding_sig: Signature(Signature { r_bytes: "9812e5b325869acd416d17013be8f256abf682ccf83f47dfc13ace17a8bffc4d", s_bytes: "b6a3febeb05003eb4278cd6aea939a290e46c2e345d7379d3f61a994fb7eac87" }) }) }] }, network = Mainnet
cc ed54bfebeb867cf1544065d217c0c096b5daf82a1bfb93823636079c333cc7fb # shrinks to block = Block { header: Header { version: 4, previous_block_hash: block::Hash("a3ade9a7a6b18bdc3ddc6daa8573c269118107733f8fe7e15ec13e0100000000"), merkle_root: Root("a70a67455fcad36b01163806e326aefe57b19a3c34ccee418bdd88b2c7d315c9"), commitment_bytes: [u8; 32]("20eac532496084c381e39320908804eb7ad0e32d44a6e1118987a3e381425e9d"), time: 1972-11-01T07:29:26Z, difficulty_threshold: CompactDifficulty(0x2100bc12, Some(ExpandedDifficulty("bc12000000000000000000000000000000000000000000000000000000000000"))), nonce: [u8; 32]("6f7f0bf13a6a8b6e1742243403299cda4eac68f3c487c2398670fcb85e836fa4"), solution: EquihashSolution("7d09b20896d301efbf7b4214ae5cc73beb2b4a0e04e7260726e68be4b80089d9f4e7eca06d31bd4381142daa84114ef2258841997d5976b683865091512dc00e72cf86ea21cdaa597054990e4459f6e566ed12970990949d35b5b58109d1cc423d650cfd822e88649f4f4bb53a6dab4d5e3cfdd2c6fb6322ef81a0597914315dc0573ce7e372e127e2e522c1788d1ae3a01031b375c8e3158343b02d411993f65a174c25b11f317068ff38f0eece91aca017ddf4d77b477497d47f585c18dcd3bf0dfe1fb44731865d7c81ca00d1f2a017c52d90effca66ca034a3d3fd7fcd5001c64e10d450e9e8578c703529b93be09ddf781190ac131bad09d68b28bde1bee6c49fb84cc2cdf41c625081e9728ad86d75333eda3e41f76deeef15d6d5bcec889e21b462b15edade801040c2517ff21713ebb288cd8dae3c49537f0e7423522d3351eaa9ae3b7e8f75008b19f3fbd2f1e6546dca8d7a4b1e29c64dcd27846e28c0a6649f0001cb84dc7fa57b3902d46d409a0149e437677d16514241bf8e5bb6b152d12f8c5ee491b1c3e88a9fa23a0979e04dc606e1f50f829192f7d962b6179319286f00825e71e3151299c2e0336f8edee7dc166e32419eb2ceee2f0964fad771584d62cb3e837abc95b4d33e2c2b2dded25d3fb246af1283494e24fc92525b2a200629a39f63047d37a7a9ed78f2288121fef3f7e369d751f038208bd939b84f15473556f6c49565d1b0e10c16c689390a22b98257bc0ba2c60d03b9ac0c326d23b4b927d378e3802a9a6bf5115915007553c814898eb44b9dc9c80dcfdb79b3c23462fd903819cd63242b04cba17f5d86dce43cf978da2aa05b1ad66c42f0c71f91e7177908914ba653ccceb98cd57f3cee816163c5a3cf2dcc34863008f38ec8f10372ca43da48dfac56c5eac65cc04ee4ac200051d0d4f8cfd92a6982674299c85a063ae2f81bb110345518270c76d120f15722c5fc277181b2764e30c87c3214a679ee0fb91a89f9b12ae1e2c048f2db5943a91a2f82d1ff2c041cbdca8721fc0dfc8a88325da83a24a506795e162ca99f2112a46e1de9a0577a7d24151891d671cc004f7ff97579df7f1630701c2a88715bf7cc4289626cf645526d2b086a21294303c018f26afd7b0a432ab6eecb621c36e161a652a648d284a5fa301a30fcd9daf8430330c7f28eff80b64de516955df4ccf33f8fc68be48ee796275260cbebdc76d76b4ebc41af0b74317d06f040475b4ac07fbb686f301692e238023f4badaa6a65fcf3c735b38dd606a5cec8de2831583726fd9fbfa6c1469716c9bb977872a49ecd60a4c9813c2b6d8480272f89d7a088d1c119fa91478881934ecc0b54610030993f29869d49aeda6b91f6407cd36e45f0517cedf2323f90559285f9e5ca214aef3d08247b7b92c63df17851c065e43cf207543ee71a5a0a5c0db050c8a0964a995feee336775d2900eb430a39158bb1230dcedc902f1adb18d4a6bb8e6a3958426d067b0dadb059824ab2ecbb30070be26a25e47871f908dce73d2839cd17824f94a1e34a68725a20bd22a090b366ebe586374e2623618861b2c8f0d6fa34ee3ebc9c4a9e7475f4e83d9debd92928d4f87dafc8fbe8fad188743c264a1d12bc2e5fa50fb96f141c2d2e7b8cc84d03653f011f0dfa0d7de323f07f2701936a6fa665975f4f3fcbe46d8e678b21319200da17dab135f5612857786994eaeb70141db0c542bed88b9af81901d7d147ec9574ade368fd2b832bb75db90084acf1618c49372a31023744e0d2bda7ba8cfb0a30e423b33ab0d41aff596f8b2b9d718bdc27bf60f4c0f15f6941d5f81eb215a9a68d2c2fadf5af6cb4619822dc976eea70e09d6cd7f415cf96ad6fbfedb66a18d8e716725f64eb") }, transactions: [V5 { network_upgrade: Nu5, lock_time: Time(2002-02-10T17:06:54Z), expiry_height: Height(1901828342), inputs: [Coinbase { height: Height(3111000), data: CoinbaseData("_U\\x15\\x83\\xb0Fh\\xe2\\x9f"), sequence: 4029209244 }], outputs: [Output { value: Amount<zebra_chain::amount::NonNegative>(821310873260299), lock_script: Script("44cb9d9dddf62e5cec8f679e55bc6e0c0c1ef6b20be3ca19") }, Output { value: Amount<zebra_chain::amount::NonNegative>(1490713094612351), lock_script: Script("da424d9f2b5022e5b6583e9bbe54897714abde95e05716c57ce2333be3f284") }, Output { value: Amount<zebra_chain::amount::NonNegative>(903663386882645), lock_script: Script("ede18a3d5c594c5d53b37feea8c293106fa8cfc7aad49f874a64c3ed57a80b4dfb3cc2d147d56342350a8e536d12c4f92599e706a33a33e35280a6") }], sapling_shielded_data: None, orchard_shielded_data: Some(ShieldedData { flags: Flags(ENABLE_SPENDS | ENABLE_OUTPUTS | ENABLE_ZSA), value_balance: Amount<zebra_chain::amount::NegativeAllowed>(1904005199848790), shared_anchor: Root("3516fe9fe1a241c8be83fcb0058f3fcc254338cf92da0b0c18406fa7bc522c25"), proof: Halo2Proof("f86be7513e47d36670ff0ff5825bb04afb2eed7b90eb17d80ca6199a65264ea1d8ee9f307a17d31ad0da9b7a5b359b97533129b6214ceeef07ec638f9516845e69b33ede5298a10193a801baa30b4336"), actions: AtLeastOne { inner: [AuthorizedAction { action: Action { cv: ValueCommitment { x: "0000000000000000000000000000000000000000000000000000000000000000", y: "0000000000000000000000000000000000000000000000000000000000000000" }, nullifier: Nullifier(0x0e794cde882a1bd28268569c55fef43878f5cc4dbf105ceeb02b1f892a2dd823), rk: VerificationKeyBytes { bytes: "7531bae8faff69562aa61963bdc19cef04812db679e8fa25fd0581ce8beafd94" }, cm_x: 0x0000000000000000000000000000000000000000000000000000000000000000, ephemeral_key: EphemeralPublicKey { x: "00000000ed302d991bf94c09fc98462200000000000000000000000000000040", y: "0200000000000000000000000000000000000000000000000000000000000000" }, enc_ciphertext: EncryptedNote([241, 196, 17, 215, 88, 189, 174, 195, 109, 196, 50, 5, 100, 80, 213, 248, 43, 182, 148, 31, 11, 100, 143, 211, 119, 218, 73, 227, 118, 29, 188, 61, 2, 244, 109, 49, 88, 234, 126, 11, 197, 144, 67, 0, 207, 90, 195, 52, 153, 9, 88, 0, 38, 168, 11, 39, 84, 175, 147, 87, 130, 142, 56, 13, 111, 181, 2, 220, 78, 105, 91, 90, 101, 34, 24, 153, 13, 183, 100, 226, 21, 218, 169, 57, 36, 195, 94, 158, 178, 20, 63, 232, 1, 3, 86, 132, 139, 18, 38, 12, 205, 117, 252, 123, 160, 139, 140, 121, 112, 51, 223, 5, 156, 66, 198, 243, 39, 225, 55, 117, 134, 139, 84, 204, 157, 57, 190, 171, 4, 229, 147, 86, 156, 57, 7, 12, 140, 176, 167, 15, 27, 227, 26, 169, 150, 239, 45, 226, 190, 168, 141, 145, 110, 93, 238, 38, 86, 42, 143, 66, 4, 22, 203, 171, 130, 21, 123, 217, 10, 96, 60, 37, 227, 176, 236, 11, 225, 200, 31, 45, 228, 179, 196, 91, 199, 239, 130, 167, 18, 33, 126, 19, 169, 252, 96, 141, 95, 7, 226, 211, 114, 240, 145, 137, 198, 99, 74, 91, 48, 148, 88, 239, 48, 187, 221, 106, 242, 220, 84, 214, 249, 179, 41, 169, 56, 227, 29, 90, 57, 16, 18, 181, 3, 183, 22, 73, 41, 251, 16, 174, 119, 131, 58, 72, 189, 5, 200, 227, 75, 69, 237, 242, 154, 156, 96, 89, 98, 187, 128, 141, 143, 218, 144, 13, 153, 229, 141, 236, 155, 60, 99, 247, 55, 84, 204, 14, 181, 168, 185, 198, 71, 172, 81, 22, 11, 235, 200, 73, 4, 117, 17, 136, 255, 47, 101, 12, 138, 15, 75, 39, 91, 180, 184, 168, 208, 236, 129, 15, 63, 190, 102, 139, 100, 28, 137, 137, 74, 144, 2, 217, 84, 28, 99, 166, 205, 148, 83, 218, 104, 202, 21, 68, 200, 195, 52, 40, 255, 170, 70, 248, 216, 172, 148, 22, 201, 41, 242, 48, 210, 188, 116, 218, 102, 15, 191, 194, 249, 5, 65, 176, 2, 33, 99, 206, 77, 55, 77, 61, 102, 81, 120, 35, 83, 209, 174, 142, 215, 136, 43, 44, 207, 205, 10, 123, 56, 88, 196, 55, 101, 212, 97, 161, 216, 237, 130, 122, 255, 167, 206, 153, 111, 134, 93, 80, 13, 113, 13, 126, 207, 169, 37, 241, 173, 232, 173, 61, 208, 80, 55, 63, 161, 56, 127, 114, 87, 127, 21, 107, 39, 142, 160, 53, 41, 124, 69, 222, 155, 10, 102, 155, 152, 196, 10, 166, 66, 20, 16, 237, 10, 63, 184, 9, 7, 54, 163, 244, 50, 178, 33, 78, 72, 1, 192, 159, 213, 246, 7, 204, 204, 9, 126, 125, 203, 255, 238, 138, 107, 198, 73, 81, 137, 17, 254, 167, 170, 100, 20, 175, 147, 194, 22, 125, 144, 164, 120, 125, 209, 28, 6, 246, 248, 143, 206, 80, 234, 48, 153, 37, 78, 217, 49, 140, 147, 54, 211, 233, 7, 120, 39, 163, 134, 99, 235, 224, 66, 136, 19, 94, 11, 185, 97, 161, 142, 226, 68, 252, 228, 181, 153, 60, 24, 128, 136, 207, 3, 240, 193, 202, 244, 73, 46, 226, 232, 228, 24, 29, 158, 17, 86, 112, 209, 40, 246, 71, 52, 141, 178, 116, 214, 221, 18, 103, 5, 162, 71, 27, 83, 255, 204, 24]), out_ciphertext: WrappedNoteKey("9128cb46cff303aa5baa42325438995fb9824dd440afa52eec7ff47e20852a612a1a5b87ae27489b1c0b7ee8137a823683edeec052617a279d5d1a3273e0e7bb1e0cb1509e3db417191c0a789fcdc169") }, spend_auth_sig: Signature { r_bytes: "30eea2aa126fc9a3a43c5122cd5447f73aff3c44cff12f11412f05e2ebfd2f61", s_bytes: "8974e92a18283214b0362ed86acaea666bb0b4d2260354e29b129a4805a6eefa" } }, AuthorizedAction { action: Action { cv: ValueCommitment { x: "0000000000000000000000000000000000000000000000000000000000000000", y: "0000000000000000000000000000000000000000000000000000000000000000" }, nullifier: Nullifier(0x072f0f3be6fc6aea869df429d2a46abbbfbbd4f87765ba878c00dab7f4d9e06a), rk: VerificationKeyBytes { bytes: "5fad6579708e4bf4f4073e062d204875c09fd0d17ddd290c381dba991ea0aa07" }, cm_x: 0x0000000000000000000000000000000000000000000000000000000000000000, ephemeral_key: EphemeralPublicKey { x: "00000000ed302d991bf94c09fc98462200000000000000000000000000000040", y: "0200000000000000000000000000000000000000000000000000000000000000" }, enc_ciphertext: EncryptedNote([113, 53, 228, 230, 124, 111, 5, 58, 86, 194, 103, 245, 196, 210, 246, 32, 178, 108, 32, 148, 30, 118, 114, 26, 20, 211, 98, 242, 145, 75, 243, 79, 157, 20, 252, 210, 221, 95, 36, 19, 43, 183, 9, 87, 38, 18, 209, 138, 248, 37, 227, 7, 168, 140, 173, 116, 77, 131, 57, 129, 62, 145, 175, 87, 172, 5, 45, 253, 16, 24, 112, 227, 255, 94, 129, 109, 167, 252, 209, 22, 95, 193, 179, 149, 81, 249, 186, 174, 79, 206, 25, 176, 28, 65, 230, 252, 81, 39, 48, 51, 114, 111, 93, 108, 121, 17, 150, 229, 141, 56, 35, 1, 213, 215, 61, 13, 237, 61, 23, 225, 252, 26, 125, 12, 214, 197, 98, 26, 162, 56, 186, 171, 133, 8, 206, 212, 77, 236, 173, 249, 174, 248, 194, 154, 141, 251, 53, 65, 70, 28, 135, 175, 64, 92, 238, 125, 162, 172, 50, 162, 49, 53, 56, 43, 228, 17, 162, 98, 77, 108, 154, 60, 69, 61, 190, 235, 252, 173, 239, 0, 89, 156, 114, 232, 26, 9, 7, 225, 148, 131, 61, 255, 62, 9, 139, 18, 141, 236, 216, 224, 5, 169, 205, 247, 183, 3, 116, 245, 52, 251, 50, 77, 56, 190, 19, 133, 72, 173, 6, 102, 231, 0, 241, 179, 207, 21, 87, 234, 195, 109, 201, 139, 157, 242, 123, 50, 243, 109, 105, 141, 18, 105, 34, 3, 137, 143, 97, 234, 218, 193, 134, 57, 115, 56, 170, 179, 204, 28, 242, 56, 141, 6, 251, 118, 26, 113, 185, 136, 61, 223, 28, 148, 19, 62, 134, 59, 57, 251, 168, 18, 225, 78, 113, 116, 127, 224, 190, 14, 142, 59, 8, 117, 243, 90, 168, 1, 46, 15, 45, 60, 16, 240, 224, 255, 182, 17, 3, 135, 81, 210, 140, 109, 216, 207, 143, 228, 60, 208, 202, 32, 37, 45, 69, 238, 190, 10, 9, 240, 141, 34, 54, 75, 135, 253, 20, 20, 26, 184, 56, 143, 8, 135, 44, 24, 118, 68, 138, 117, 36, 21, 170, 67, 57, 254, 156, 193, 44, 7, 8, 87, 204, 93, 210, 132, 27, 84, 35, 106, 223, 7, 129, 28, 234, 254, 148, 87, 174, 16, 40, 167, 249, 106, 192, 62, 180, 232, 134, 128, 23, 144, 156, 55, 186, 231, 195, 190, 117, 110, 37, 128, 171, 173, 24, 85, 230, 14, 202, 151, 115, 95, 219, 5, 49, 248, 82, 202, 141, 143, 244, 67, 155, 191, 34, 82, 83, 27, 235, 214, 49, 104, 175, 142, 142, 235, 83, 244, 116, 9, 35, 142, 241, 12, 246, 91, 79, 221, 216, 42, 13, 90, 57, 71, 73, 2, 10, 184, 149, 162, 67, 233, 154, 166, 197, 36, 202, 79, 212, 116, 32, 111, 37, 165, 81, 83, 79, 14, 50, 90, 52, 219, 114, 137, 253, 10, 85, 236, 234, 254, 146, 46, 160, 87, 228, 244, 198, 178, 72, 73, 137, 242, 102, 222, 37, 184, 62, 96, 41, 153, 98, 115, 16, 55, 81, 23, 60, 231, 101, 39, 61, 68, 36, 27, 227, 223, 226, 98, 222, 4, 181, 149, 33, 149, 141, 25, 176, 228, 128, 252, 222, 52, 115, 62, 227, 152, 214, 231, 41, 153, 44, 73, 55, 213, 116, 75, 146, 18, 212, 32, 157, 100, 226, 111, 160, 110, 65, 229, 168, 212, 13, 154, 21, 152, 224, 146, 129, 16, 64, 205, 110, 19]), out_ciphertext: WrappedNoteKey("808d065601ee4512bb392830c7ba1d32f8b4b35637bfb7efa0ac631e5cf6d58dac4da2afefbac7cf735fc6bc647603e2a730118f247cf4f3c120fc97039fdc84015b4745700a3109eec71a3b9e8958f1") }, spend_auth_sig: Signature { r_bytes: "37f660a1589b1697bed9d7fe81dbd6da04eb354290fb49f5e1e4fb4cb269f159", s_bytes: "9624aed42f00b5f702b4b91cb8070ea9ecebecfd45372fd0c4daedb8b056c684" } }] }, binding_sig: Signature { r_bytes: "40ac0c41cfd7308c8f43f861f8c7032e3c340b326a4662237c159c8d1a7d17e8", s_bytes: "c0d9b944555318d44bc060dd44976bda58aec5eff518c37194282b9e39114f86" }, burn: Burn([BurnItem(AssetBase(Ep { x: 0x086b6a92fc269d5e78d59b2019d2c0ac349ce791e731d10549aad7f1893b5bf5, y: 0x3eaa2c23031c5a02c835cbf4a7d23f3d6cd6b6367e1c3fd44768e6bfd1514809, z: 0x29d9a660a155398a24a9ab9149ec0dd4b6d8c9327196f77b5e178200fe8d2919 }), NoteValue(440657474712827580))]) }) }] }, network = Testnet
Copy link

@PaulLaux PaulLaux Oct 2, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

did we generate this file?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The tests/prop.txt files weren’t generated by us intentionally — I accidentally committed them during the merge while running tests locally. They’re temporary artifacts auto-generated by the proptest framework and don’t belong in the repo. I’ve removed them all::

zebra-chain/proptest-regressions/block/tests/prop.txt
zebra-chain/proptest-regressions/transaction/tests/prop.txt
zebra-network/proptest-regressions/peer/minimum_peer_version/tests/prop.txt
zebra-network/proptest-regressions/peer_set/set/tests/prop.txt

@@ -0,0 +1,7 @@
# Seeds for failure cases proptest has generated in the past. It is
Copy link

@PaulLaux PaulLaux Oct 2, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

did we generate this file?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed, see: #87 (comment)

Comment on lines +28 to +30
// FIXME: unify zebra-test/zcash_unstable nu7 usages,
// check if the code is covered of those flags properly,
// try to build with and without those flags
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's just make sure we build with nu7 and tx_v6 in our CI

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, just checked - we do: https://github.com/QED-it/zebra/blob/zsa1-v2.4.2-fixes-new/.cargo/config.toml#L7-L10
Should keep this FIXME just in case or delete it?

Comment on lines 128 to 124
// FIXME: TODO: Use a proper value below.
#[cfg(zcash_unstable = "nu7")]
(block::Height(3_111_000), Nu7),
// FIXME: TODO: Uncomment the lines below and use the correct value
// once a height for Nu6_1 is defined. Having Nu7 without Nu6_1
// causes several tests to fail, because they assume the Nu7 height
// applies to Nu6_1.
//
//#[cfg(zcash_unstable = "nu7")]
//(block::Height(3_111_000), Nu7),
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why no Nu6_1 in this list?

Copy link
Collaborator Author

@dmidem dmidem Oct 6, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added temporary heights for Nu6_1 and Nu7 and added a FIXME comment:

     // FIXME: TODO: Update height values for Nu6_1 and Nu7 when real values will be known.
      #[cfg(zcash_unstable = "nu7")]
      (block::Height(3_100_000), Nu6_1),
      #[cfg(zcash_unstable = "nu7")]
      (block::Height(3_111_000), Nu7),

@@ -1,1465 +0,0 @@
//! RPC methods related to mining only available with `getblocktemplate-rpcs` rust feature.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why remove this file?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment on lines -214 to -223
let commitment_bytes = match network_upgrade {
NetworkUpgrade::Genesis
| NetworkUpgrade::BeforeOverwinter
| NetworkUpgrade::Overwinter
| NetworkUpgrade::Sapling
| NetworkUpgrade::Blossom
| NetworkUpgrade::Heartwood => panic!("pre-Canopy block templates not supported"),
NetworkUpgrade::Canopy => chain_history_root.bytes_in_serialized_order().into(),
NetworkUpgrade::Nu5 | NetworkUpgrade::Nu6 | NetworkUpgrade::Nu7 => {
block_commitments_hash.bytes_in_serialized_order().into()
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why remove?


let _init_guard = zebra_test::init();
<<<<<<< HEAD
let mut config = os_assigned_rpc_port_config(false, &Network::new_regtest(None, None, None))?;
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why remove?

);

<<<<<<< HEAD
let block_template = GetBlockTemplate {
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why remove?

Copy link
Collaborator Author

@dmidem dmidem Oct 3, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

They replaced it with:

let block_template = BlockTemplateResponse::new(
...
);

https://github.com/QED-it/zebra/blob/zsa1/zebrad/tests/acceptance.rs#L3454

Comment on lines -3592 to -3599
let block_template = GetBlockTemplate {
coinbase_txn,
block_commitments_hash: default_roots.block_commitments_hash,
light_client_root_hash: default_roots.block_commitments_hash,
final_sapling_root_hash: default_roots.block_commitments_hash,
default_roots,
..block_template
};
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why remove?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

They replaced it with:

let block_template = BlockTemplateResponse::new(
...
);

https://github.com/ZcashFoundation/zebra/blob/main/zebrad/tests/acceptance.rs#L3581

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants