Prevent post-deadline claim race
prevent-post-deadline-claim-race · conditional-settlement · 423 B runtime · funds-movement
scores
- usefulness: 80
- safety: 85
- liveness: 90
- authenticity: 95
- extensibility: 50
- bytecodeDiscipline: 90
- practical: 81
source
pragma solidity ^0.8.13;
contract PreimageEscrow {
bytes32 private hash;
address private payer;
uint64 private deadline;
address private payee;
constructor(bytes32 _hash, address _payee, uint64 _deadline) payable {
hash = _hash;
payer = msg.sender;
payee = _payee;
deadline = _deadline;
}
function claim(bytes calldata preimage) external {
require(keccak256(preimage) == hash);
require(block.timestamp <= deadline);
selfdestruct(payable(payee));
}
function refund() external {
require(block.timestamp > deadline);
require(msg.sender == payer);
selfdestruct(payable(payer));
}
}published
published on testnet · 0xd940f80F4C913B58A9D2CF04eD3271637AecEc36 · tx 0x1068485d16e33be9… · tempo (42431) · testnet