Skip to content

Commit eb8447e

Browse files
authored
Merge pull request #232 from semiotic-ai/invalid-receipts
obtain invalid receipts
2 parents b5f2135 + b9445f7 commit eb8447e

File tree

4 files changed

+32
-43
lines changed

4 files changed

+32
-43
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: 28 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -198,11 +198,12 @@ 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)
203-
.unwrap();
204+
EIP712SignedMessage::new(&domain_separator, expected_rav.clone(), &signer).unwrap();
204205
assert!(manager
205-
.verify_and_store_rav(rav_request.expected_rav, signed_rav)
206+
.verify_and_store_rav(expected_rav, signed_rav)
206207
.await
207208
.is_ok());
208209
}
@@ -292,19 +293,17 @@ async fn manager_create_multiple_rav_requests_all_valid_receipts(
292293
);
293294
// no receipts failing
294295
assert_eq!(rav_request.invalid_receipts.len(), 0);
296+
297+
let expected_rav = rav_request.expected_rav.unwrap();
295298
// accumulated value is correct
296-
assert_eq!(
297-
rav_request.expected_rav.valueAggregate,
298-
expected_accumulated_value
299-
);
299+
assert_eq!(expected_rav.valueAggregate, expected_accumulated_value);
300300
// no previous rav
301301
assert!(rav_request.previous_rav.is_none());
302302

303303
let signed_rav =
304-
EIP712SignedMessage::new(&domain_separator, rav_request.expected_rav.clone(), &signer)
305-
.unwrap();
304+
EIP712SignedMessage::new(&domain_separator, expected_rav.clone(), &signer).unwrap();
306305
assert!(manager
307-
.verify_and_store_rav(rav_request.expected_rav, signed_rav)
306+
.verify_and_store_rav(expected_rav, signed_rav)
308307
.await
309308
.is_ok());
310309

@@ -338,19 +337,17 @@ async fn manager_create_multiple_rav_requests_all_valid_receipts(
338337
);
339338
// no receipts failing
340339
assert_eq!(rav_request.invalid_receipts.len(), 0);
340+
341+
let expected_rav = rav_request.expected_rav.unwrap();
341342
// accumulated value is correct
342-
assert_eq!(
343-
rav_request.expected_rav.valueAggregate,
344-
expected_accumulated_value
345-
);
343+
assert_eq!(expected_rav.valueAggregate, expected_accumulated_value);
346344
// Verify there is a previous rav
347345
assert!(rav_request.previous_rav.is_some());
348346

349347
let signed_rav =
350-
EIP712SignedMessage::new(&domain_separator, rav_request.expected_rav.clone(), &signer)
351-
.unwrap();
348+
EIP712SignedMessage::new(&domain_separator, expected_rav.clone(), &signer).unwrap();
352349
assert!(manager
353-
.verify_and_store_rav(rav_request.expected_rav, signed_rav)
350+
.verify_and_store_rav(expected_rav, signed_rav)
354351
.await
355352
.is_ok());
356353
}
@@ -415,22 +412,17 @@ async fn manager_create_multiple_rav_requests_all_valid_receipts_consecutive_tim
415412
);
416413
// no receipts failing
417414
assert_eq!(rav_request_1.invalid_receipts.len(), 0);
415+
416+
let expected_rav_1 = rav_request_1.expected_rav.unwrap();
418417
// accumulated value is correct
419-
assert_eq!(
420-
rav_request_1.expected_rav.valueAggregate,
421-
expected_accumulated_value
422-
);
418+
assert_eq!(expected_rav_1.valueAggregate, expected_accumulated_value);
423419
// no previous rav
424420
assert!(rav_request_1.previous_rav.is_none());
425421

426-
let signed_rav_1 = EIP712SignedMessage::new(
427-
&domain_separator,
428-
rav_request_1.expected_rav.clone(),
429-
&signer,
430-
)
431-
.unwrap();
422+
let signed_rav_1 =
423+
EIP712SignedMessage::new(&domain_separator, expected_rav_1.clone(), &signer).unwrap();
432424
assert!(manager
433-
.verify_and_store_rav(rav_request_1.expected_rav, signed_rav_1)
425+
.verify_and_store_rav(expected_rav_1, signed_rav_1)
434426
.await
435427
.is_ok());
436428

@@ -475,22 +467,17 @@ async fn manager_create_multiple_rav_requests_all_valid_receipts_consecutive_tim
475467
);
476468
// no receipts failing
477469
assert_eq!(rav_request_2.invalid_receipts.len(), 0);
470+
471+
let expected_rav_2 = rav_request_2.expected_rav.unwrap();
478472
// accumulated value is correct
479-
assert_eq!(
480-
rav_request_2.expected_rav.valueAggregate,
481-
expected_accumulated_value
482-
);
473+
assert_eq!(expected_rav_2.valueAggregate, expected_accumulated_value);
483474
// Verify there is a previous rav
484475
assert!(rav_request_2.previous_rav.is_some());
485476

486-
let signed_rav_2 = EIP712SignedMessage::new(
487-
&domain_separator,
488-
rav_request_2.expected_rav.clone(),
489-
&signer,
490-
)
491-
.unwrap();
477+
let signed_rav_2 =
478+
EIP712SignedMessage::new(&domain_separator, expected_rav_2.clone(), &signer).unwrap();
492479
assert!(manager
493-
.verify_and_store_rav(rav_request_2.expected_rav, signed_rav_2)
480+
.verify_and_store_rav(expected_rav_2, signed_rav_2)
494481
.await
495482
.is_ok());
496483
}
@@ -535,10 +522,11 @@ async fn manager_create_rav_and_ignore_invalid_receipts(
535522
}
536523

537524
let rav_request = manager.create_rav_request(0, None).await.unwrap();
525+
let expected_rav = rav_request.expected_rav.unwrap();
538526

539527
assert_eq!(rav_request.valid_receipts.len(), 1);
540528
// All receipts but one being invalid
541529
assert_eq!(rav_request.invalid_receipts.len(), 9);
542530
//Rav Value corresponds only to value of one receipt
543-
assert_eq!(rav_request.expected_rav.valueAggregate, 20);
531+
assert_eq!(expected_rav.valueAggregate, 20);
544532
}

tap_integration_tests/tests/indexer_mock.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,7 @@ where
201201
.request("aggregate_receipts", params)
202202
.await?;
203203
manager
204-
.verify_and_store_rav(rav_request.expected_rav, remote_rav_result.data)
204+
.verify_and_store_rav(rav_request.expected_rav?, remote_rav_result.data)
205205
.await?;
206206

207207
// For these tests, we expect every receipt to be valid, i.e. there should be no invalid receipts, nor any missing receipts (less than the expected threshold).

0 commit comments

Comments
 (0)