@@ -223,8 +223,7 @@ impl BundleProofV2 {
223
223
/// [ public_input_bytes | accumulator_bytes | proof ]
224
224
pub fn calldata ( & self ) -> Vec < u8 > {
225
225
std:: iter:: empty ( )
226
- . chain ( self . instances [ ACCUMULATOR_BYTES ..] . iter ( ) )
227
- . chain ( self . instances [ 0 ..ACCUMULATOR_BYTES ] . iter ( ) )
226
+ . chain ( self . instances . iter ( ) )
228
227
. chain ( self . proof . iter ( ) )
229
228
. cloned ( )
230
229
. collect :: < Vec < _ > > ( )
@@ -347,25 +346,48 @@ impl Proof for BundleProofV2Metadata {
347
346
mod tests {
348
347
use tempdir:: TempDir ;
349
348
350
- use crate :: { read_json, BundleProofV2 , EvmProof } ;
349
+ use crate :: { deploy_and_call , read , read_json, BundleProofV2 , EvmProof } ;
351
350
352
351
#[ test]
353
- fn serde_bundle_proof ( ) -> anyhow:: Result < ( ) > {
352
+ fn bundle_proof_backwards_compat ( ) -> anyhow:: Result < ( ) > {
354
353
// Read [`EvmProof`] from test data.
355
354
let evm_proof = read_json :: < _ , EvmProof > ( "test_data/evm-proof.json" ) ?;
356
355
356
+ // Build bundle proofs.
357
+ let bundle_proof_v2 = BundleProofV2 :: new_from_raw (
358
+ & evm_proof. proof . proof ,
359
+ & evm_proof. proof . instances ,
360
+ & evm_proof. proof . vk ,
361
+ ) ?;
362
+ let bundle_proof = crate :: BundleProof :: from ( evm_proof. proof ) ;
363
+
364
+ assert_eq ! ( bundle_proof. calldata( ) , bundle_proof_v2. calldata( ) ) ;
365
+
366
+ Ok ( ( ) )
367
+ }
368
+
369
+ #[ test]
370
+ fn verify_bundle_proof ( ) -> anyhow:: Result < ( ) > {
371
+ // Create a tmp test directory.
372
+ let dir = TempDir :: new ( "proof_v2" ) ?;
373
+
374
+ // Read [`EvmProof`] from test data.
375
+ let evm_proof = read_json :: < _ , EvmProof > ( "test_data/evm-proof.json" ) ?;
376
+ let verifier = read ( "test_data/evm-verifier.bin" ) ?;
377
+
357
378
// Build bundle proof v2.
358
379
let bundle_proof = BundleProofV2 :: new_from_raw (
359
380
& evm_proof. proof . proof ,
360
381
& evm_proof. proof . instances ,
361
382
& evm_proof. proof . vk ,
362
383
) ?;
363
384
364
- // Dump the bundle proof v2 into a tmp dir.
365
- let dir = TempDir :: new ( "proof_v2" ) ?;
385
+ // Dump the bundle proof v2.
366
386
bundle_proof. dump ( & dir, "suffix" ) ?;
367
- dir. close ( ) ?;
368
387
369
- Ok ( ( ) )
388
+ // Verify the bundle proof v2 with EVM verifier contract.
389
+ assert ! ( deploy_and_call( verifier, bundle_proof. calldata( ) ) . is_ok( ) ) ;
390
+
391
+ Ok ( dir. close ( ) ?)
370
392
}
371
393
}
0 commit comments