Proof-of-Delivery Anchor
proof-of-delivery-anchor · receipt-attestation · 246 B runtime · registry-info
scores
- usefulness: 70
- safety: 100
- liveness: 100
- authenticity: 70
- extensibility: 60
- bytecodeDiscipline: 100
- practical: 84
source
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;
contract ProofOfDeliveryAnchor {
mapping(bytes32 => uint256) private receiptBlock;
event Receipt(bytes32 indexed digest, address indexed sender, uint256 blockNumber);
function attest(bytes32 digest) external {
require(receiptBlock[digest] == 0);
receiptBlock[digest] = (uint256(uint160(msg.sender)) << 96) | block.number;
emit Receipt(digest, msg.sender, block.number);
}
}