[ ] The hub must implement duplicate checking on all incoming transfer requests on transferID, as per the specification.
[ ] Duplicate checking must be implemented from the beginning of scheme time, ensuring that all historical and future resource identifiers are checked for duplicates. (from 3812)
[ ] Any duplicate resource identifiers found during the checking process must be flagged and appropriately handled according to the system's error handling procedures. (from 3812)
[ ] The system must log all instances of duplicate resource identifiers detected during the checking process for audit and troubleshooting purposes. (from 3812)
[ ] The system should provide feedback to clients when a duplicate resource identifier is detected, indicating the reason for rejection and any corrective actions required (in cases where corrective action is required) (from 3812)
[ ] Implement Request Duplicate Check for transfer prepares (following the specification, using hashes, design reviewed & approved by DA)
[ ] Duplicate requests with matching hashes are considered as resends and considered as GET requests if transfer is processed and is in finalized state
[ ] If hash matches but transfer is in progress (not finalized), request can be ignored because there'll be a callback when transfer is finalized
[ ] If hash doesn't match, send an error callback.
[ ] Implement Request Duplicate Check for transfer fulfils (similar requirements around hash matching)
[ ] Implement Request Duplicate Check for transfer ERRORs during fulfil
[ ] When an invalid duplicate (duplicate with different hash) is sent in fulfil, the transfer is to be aborted (DA decision)
[ ] Integration tests along with meeting other testing requirements
[ ] End-to-end tests (TTK) for duplicate checking scenarios
Comment from sprint: sam to suggest some acceptance criteria.