diff --git a/benches/circuit.rs b/benches/circuit.rs index 668965c4d..029f80b55 100644 --- a/benches/circuit.rs +++ b/benches/circuit.rs @@ -46,7 +46,7 @@ fn criterion_benchmark(c: &mut Criterion) { ) .unwrap(); } - let bundle: Bundle<_, i64, FL> = builder.build(rng).unwrap().unwrap().0; + let bundle: Bundle<_, i64, FL> = builder.build(rng).unwrap().0; let instances: Vec<_> = bundle .actions() diff --git a/benches/note_decryption.rs b/benches/note_decryption.rs index 44aefcab1..5bf072c50 100644 --- a/benches/note_decryption.rs +++ b/benches/note_decryption.rs @@ -74,7 +74,7 @@ fn bench_note_decryption(c: &mut Criterion) { None, ) .unwrap(); - let bundle: Bundle<_, i64, FL> = builder.build(rng).unwrap().unwrap().0; + let bundle: Bundle<_, i64, FL> = builder.build(rng).unwrap().0; bundle .create_proof(&pk, rng) .unwrap() diff --git a/src/builder.rs b/src/builder.rs index 3c2830bb4..14df505e9 100644 --- a/src/builder.rs +++ b/src/builder.rs @@ -654,7 +654,7 @@ impl Builder { pub fn build, FL: OrchardFlavor>( self, rng: impl RngCore, - ) -> Result>, BuildError> { + ) -> Result, BuildError> { bundle( rng, self.anchor, @@ -745,7 +745,7 @@ pub fn bundle, FL: OrchardFlavor>( spends: Vec, outputs: Vec, burn: HashMap, -) -> Result>, BuildError> { +) -> Result, BuildError> { let flags = bundle_type.flags(); let num_requested_spends = spends.len(); @@ -884,25 +884,24 @@ pub fn bundle, FL: OrchardFlavor>( let bvk = derive_bvk(&actions, native_value_balance, burn.iter().cloned()); assert_eq!(redpallas::VerificationKey::from(&bsk), bvk); - Ok(NonEmpty::from_vec(actions).map(|actions| { - ( - Bundle::from_parts( - actions, - flags, - result_value_balance, - burn, - anchor, - InProgress { - proof: Unproven { - witnesses, - circuit_flavor: FL::FLAVOR, - }, - sigs: Unauthorized { bsk }, + Ok(( + Bundle::from_parts( + // `actions` is never empty. It contains at least MIN_ACTIONS=2 actions. + NonEmpty::from_vec(actions).unwrap(), + flags, + result_value_balance, + burn, + anchor, + InProgress { + proof: Unproven { + witnesses, + circuit_flavor: FL::FLAVOR, }, - ), - bundle_meta, - ) - })) + sigs: Unauthorized { bsk }, + }, + ), + bundle_meta, + )) } /// Marker trait representing bundle signatures in the process of being created. @@ -1302,7 +1301,6 @@ pub mod testing { builder .build(&mut self.rng) .unwrap() - .unwrap() .0 .create_proof(&pk, &mut self.rng) .unwrap() @@ -1434,7 +1432,6 @@ mod tests { let bundle: Bundle = builder .build(&mut rng) .unwrap() - .unwrap() .0 .create_proof(&pk, &mut rng) .unwrap() diff --git a/src/bundle/commitments.rs b/src/bundle/commitments.rs index 7d09b2801..a3d28d6c8 100644 --- a/src/bundle/commitments.rs +++ b/src/bundle/commitments.rs @@ -166,7 +166,7 @@ mod tests { ) .unwrap(); - builder.build::(rng).unwrap().unwrap().0 + builder.build::(rng).unwrap().0 } /// Verify that the hash for an Orchard Vanilla bundle matches a fixed reference value diff --git a/tests/builder.rs b/tests/builder.rs index d5f2fa83f..56d2e5107 100644 --- a/tests/builder.rs +++ b/tests/builder.rs @@ -93,7 +93,7 @@ fn bundle_chain() { builder.add_output(None, recipient, note_value, AssetBase::native(), None), Ok(()) ); - let (unauthorized, bundle_meta) = builder.build(&mut rng).unwrap().unwrap(); + let (unauthorized, bundle_meta) = builder.build(&mut rng).unwrap(); assert_eq!( unauthorized @@ -163,7 +163,7 @@ fn bundle_chain() { ), Ok(()) ); - let (unauthorized, _) = builder.build(&mut rng).unwrap().unwrap(); + let (unauthorized, _) = builder.build(&mut rng).unwrap(); let sighash = unauthorized.commitment().into(); let proven = unauthorized.create_proof(&pk, &mut rng).unwrap(); proven diff --git a/tests/zsa.rs b/tests/zsa.rs index 3a1e04cdb..1efbeda38 100644 --- a/tests/zsa.rs +++ b/tests/zsa.rs @@ -88,7 +88,7 @@ fn build_and_sign_bundle( pk: &ProvingKey, sk: &SpendingKey, ) -> Bundle { - let unauthorized = builder.build(&mut rng).unwrap().unwrap().0; + let unauthorized = builder.build(&mut rng).unwrap().0; let sighash = unauthorized.commitment().into(); let proven = unauthorized.create_proof(pk, &mut rng).unwrap(); proven @@ -205,7 +205,7 @@ fn create_native_note(keys: &Keychain) -> Note { ), Ok(()) ); - let unauthorized = builder.build(&mut rng).unwrap().unwrap().0; + let unauthorized = builder.build(&mut rng).unwrap().0; let sighash = unauthorized.commitment().into(); let proven = unauthorized.create_proof(keys.pk(), &mut rng).unwrap(); proven.apply_signatures(rng, sighash, &[]).unwrap()