ERC20 自动转账合约: USDT 收款自动转入指定地址
以下是一个简单的 ERC20 合约代码,当合约收到 USDT 时,会自动触发转账并将 USDT 转入指定地址。
pragma solidity ^0.8.0;
// ERC20 合约接口
interface IERC20 {
function transfer(address recipient, uint256 amount) external returns (bool);
function balanceOf(address account) external view returns (uint256);
}
contract AutoTransfer {
address private constant USDT_ADDRESS = 0xdAC17F958D2ee523a2206206994597C13D831ec7; // USDT 合约地址
address private constant DESTINATION_ADDRESS = 0x12345678901234567890; // 指定地址
// 事件
event TokensTransferred(address indexed sender, address indexed recipient, uint256 amount);
// 接收 USDT
function receiveUSDT(uint256 amount) external {
IERC20 usdt = IERC20(USDT_ADDRESS);
require(usdt.transfer(DESTINATION_ADDRESS, amount), 'Transfer failed');
emit TokensTransferred(msg.sender, DESTINATION_ADDRESS, amount);
}
// 查询合约中的 USDT 余额
function getContractUSDTBalance() external view returns (uint256) {
IERC20 usdt = IERC20(USDT_ADDRESS);
return usdt.balanceOf(address(this));
}
}
请注意,在使用此合约之前,您需要将 USDT_ADDRESS 和 DESTINATION_ADDRESS 更改为实际的 USDT 合约地址和目标地址。
此合约中的 receiveUSDT 函数将接收 USDT,并将其转账到指定地址。在转账完成后,将触发 TokensTransferred 事件。您可以通过调用 getContractUSDTBalance 函数来查询合约中的 USDT 余额。
请确保在使用此合约之前,已经授权合约能够访问您的 USDT。
原文地址: https://www.cveoy.top/t/topic/pdeO 著作权归作者所有。请勿转载和采集!