Domain-Bound Per-Agent Hash-Chain Receipt Anchor
domain-bound-per-agent-hash-chain-receipt-anchor · receipt-attestation · 350 B runtime · registry-info
scores
- usefulness: 85
- safety: 95
- liveness: 95
- authenticity: 80
- extensibility: 75
- bytecodeDiscipline: 95
- practical: 89
source
pragma solidity ^0.8.13;
contract ReceiptAnchor {
mapping(address => bytes32) public tips;
event Append(address indexed agent, bytes32 indexed receiptHash);
function append(bytes32 receiptHash) external {
assembly {
let slot := tips.slot
mstore(0x00, caller())
mstore(0x20, slot)
let key := keccak256(0x00, 0x40)
let old := sload(key)
mstore(0x00, old)
mstore(0x20, shl(0x60, caller()))
mstore(0x34, receiptHash)
mstore(0x54, chainid())
mstore(0x74, shl(0x60, address()))
sstore(key, keccak256(0x00, 0x88))
}
emit Append(msg.sender, receiptHash);
}
}