sendではなく、recipient.callで送信してますね。
pragma solidity ^0.8.0;
constract ConditionTransfer {
address public owner;
address payable public recipient;
uint256 public unlockTime;
constructor(address payable _recipient, uint256 _unlockTime) {
owner = msg.sender;
recipient = _recipient;
unlockTime = _unlockTime;
}
receive() external payable {}
function release() external {
require(msg.sender == owner, "Only owner can release funds");
require(block.timestamp >= unlockTime, "Funds are locked");
uint256 amount = address(this).balance;
require(amount > 0, "No funds to send");
(bool success, ) = recipient.call{value: amount}("");
require(success, "Transfer failed");
}
}