DSNP Announcements on Ethereum are validated at read time.
- Fetch and validate the Batch Publication.
- Validate the chain of delegation from the Announcement's
fromIdto the sender of the transaction with the
- Hash the batch publication file using keccak-256.
- Retrieve the published hash for the given file from the DSNPBatchPublication Event.
- The file hash MUST match the retrieved hash from the
- Get the Ethereum address of the sender for the transaction from the Batch (aka the Batch Publisher).
- Find the Identity Contract for the Announcement's
- Test the Batch Publisher's Ethereum address against the Identity Contract via
IDelegation.isAuthorizedTowith the permission
ANNOUNCEand the block number from the
Duplicate Announcements MUST be rejected or ignored.