Skip to content

Commit 70fa8fa

Browse files
committed
feat: expected_rav to become result<rav,error>
Signed-off-by: Carlos V <[email protected]>
1 parent 7be1b2a commit 70fa8fa

File tree

3 files changed

+29
-17
lines changed

3 files changed

+29
-17
lines changed

tap_core/src/manager/tap_manager.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@ where
194194
.collect_receipts(timestamp_buffer_ns, min_timestamp_ns, receipts_limit)
195195
.await?;
196196

197-
let expected_rav = Self::generate_expected_rav(&valid_receipts, previous_rav.clone())?;
197+
let expected_rav = Self::generate_expected_rav(&valid_receipts, previous_rav.clone());
198198

199199
Ok(RAVRequest {
200200
valid_receipts,

tap_core/src/rav/request.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
// SPDX-License-Identifier: Apache-2.0
33

44
use crate::receipt::state::Reserved;
5+
use crate::Error;
56
use crate::{
67
rav::{ReceiptAggregateVoucher, SignedRAV},
78
receipt::{state::Failed, ReceiptWithState},
@@ -17,5 +18,5 @@ pub struct RAVRequest {
1718
/// List of failed receipt used to log invalid receipts
1819
pub invalid_receipts: Vec<ReceiptWithState<Failed>>,
1920
/// Expected RAV to be created
20-
pub expected_rav: ReceiptAggregateVoucher,
21+
pub expected_rav: Result<ReceiptAggregateVoucher, Error>,
2122
}

tap_core/tests/manager_test.rs

Lines changed: 26 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -198,11 +198,13 @@ async fn manager_create_rav_request_all_valid_receipts(
198198
// no failing
199199
assert_eq!(rav_request.invalid_receipts.len(), 0);
200200

201+
let expected_rav = rav_request.expected_rav.unwrap();
202+
201203
let signed_rav =
202-
EIP712SignedMessage::new(&domain_separator, rav_request.expected_rav.clone(), &signer)
204+
EIP712SignedMessage::new(&domain_separator, expected_rav.clone(), &signer)
203205
.unwrap();
204206
assert!(manager
205-
.verify_and_store_rav(rav_request.expected_rav, signed_rav)
207+
.verify_and_store_rav(expected_rav, signed_rav)
206208
.await
207209
.is_ok());
208210
}
@@ -292,19 +294,21 @@ async fn manager_create_multiple_rav_requests_all_valid_receipts(
292294
);
293295
// no receipts failing
294296
assert_eq!(rav_request.invalid_receipts.len(), 0);
297+
298+
let expected_rav = rav_request.expected_rav.unwrap();
295299
// accumulated value is correct
296300
assert_eq!(
297-
rav_request.expected_rav.valueAggregate,
301+
expected_rav.valueAggregate,
298302
expected_accumulated_value
299303
);
300304
// no previous rav
301305
assert!(rav_request.previous_rav.is_none());
302306

303307
let signed_rav =
304-
EIP712SignedMessage::new(&domain_separator, rav_request.expected_rav.clone(), &signer)
308+
EIP712SignedMessage::new(&domain_separator, expected_rav.clone(), &signer)
305309
.unwrap();
306310
assert!(manager
307-
.verify_and_store_rav(rav_request.expected_rav, signed_rav)
311+
.verify_and_store_rav(expected_rav, signed_rav)
308312
.await
309313
.is_ok());
310314

@@ -338,19 +342,21 @@ async fn manager_create_multiple_rav_requests_all_valid_receipts(
338342
);
339343
// no receipts failing
340344
assert_eq!(rav_request.invalid_receipts.len(), 0);
345+
346+
let expected_rav = rav_request.expected_rav.unwrap();
341347
// accumulated value is correct
342348
assert_eq!(
343-
rav_request.expected_rav.valueAggregate,
349+
expected_rav.valueAggregate,
344350
expected_accumulated_value
345351
);
346352
// Verify there is a previous rav
347353
assert!(rav_request.previous_rav.is_some());
348354

349355
let signed_rav =
350-
EIP712SignedMessage::new(&domain_separator, rav_request.expected_rav.clone(), &signer)
356+
EIP712SignedMessage::new(&domain_separator, expected_rav.clone(), &signer)
351357
.unwrap();
352358
assert!(manager
353-
.verify_and_store_rav(rav_request.expected_rav, signed_rav)
359+
.verify_and_store_rav(expected_rav, signed_rav)
354360
.await
355361
.is_ok());
356362
}
@@ -415,22 +421,24 @@ async fn manager_create_multiple_rav_requests_all_valid_receipts_consecutive_tim
415421
);
416422
// no receipts failing
417423
assert_eq!(rav_request_1.invalid_receipts.len(), 0);
424+
425+
let expected_rav_1 = rav_request_1.expected_rav.unwrap();
418426
// accumulated value is correct
419427
assert_eq!(
420-
rav_request_1.expected_rav.valueAggregate,
428+
expected_rav_1.valueAggregate,
421429
expected_accumulated_value
422430
);
423431
// no previous rav
424432
assert!(rav_request_1.previous_rav.is_none());
425433

426434
let signed_rav_1 = EIP712SignedMessage::new(
427435
&domain_separator,
428-
rav_request_1.expected_rav.clone(),
436+
expected_rav_1.clone(),
429437
&signer,
430438
)
431439
.unwrap();
432440
assert!(manager
433-
.verify_and_store_rav(rav_request_1.expected_rav, signed_rav_1)
441+
.verify_and_store_rav(expected_rav_1, signed_rav_1)
434442
.await
435443
.is_ok());
436444

@@ -475,22 +483,24 @@ async fn manager_create_multiple_rav_requests_all_valid_receipts_consecutive_tim
475483
);
476484
// no receipts failing
477485
assert_eq!(rav_request_2.invalid_receipts.len(), 0);
486+
487+
let expected_rav_2 = rav_request_2.expected_rav.unwrap();
478488
// accumulated value is correct
479489
assert_eq!(
480-
rav_request_2.expected_rav.valueAggregate,
490+
expected_rav_2.valueAggregate,
481491
expected_accumulated_value
482492
);
483493
// Verify there is a previous rav
484494
assert!(rav_request_2.previous_rav.is_some());
485495

486496
let signed_rav_2 = EIP712SignedMessage::new(
487497
&domain_separator,
488-
rav_request_2.expected_rav.clone(),
498+
expected_rav_2.clone(),
489499
&signer,
490500
)
491501
.unwrap();
492502
assert!(manager
493-
.verify_and_store_rav(rav_request_2.expected_rav, signed_rav_2)
503+
.verify_and_store_rav(expected_rav_2, signed_rav_2)
494504
.await
495505
.is_ok());
496506
}
@@ -535,10 +545,11 @@ async fn manager_create_rav_and_ignore_invalid_receipts(
535545
}
536546

537547
let rav_request = manager.create_rav_request(0, None).await.unwrap();
548+
let expected_rav = rav_request.expected_rav.unwrap();
538549

539550
assert_eq!(rav_request.valid_receipts.len(), 1);
540551
// All receipts but one being invalid
541552
assert_eq!(rav_request.invalid_receipts.len(), 9);
542553
//Rav Value corresponds only to value of one receipt
543-
assert_eq!(rav_request.expected_rav.valueAggregate, 20);
554+
assert_eq!(expected_rav.valueAggregate, 20);
544555
}

0 commit comments

Comments
 (0)