ETH Price: $2,062.77 (-2.98%)
Gas: 0.08 Gwei

Contract

0x4ECEFdE2A2e59fdD015720e01039C3577F96315b
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Flush Tokens197616182024-04-29 14:39:47675 days ago1714401587IN
0x4ECEFdE2...77F96315b
0 ETH0.0011728722.07923977
Flush Tokens197395372024-04-26 12:29:23678 days ago1714134563IN
0x4ECEFdE2...77F96315b
0 ETH0.000522269.83169197
Transfer197086332024-04-22 4:44:11683 days ago1713761051IN
0x4ECEFdE2...77F96315b
0.17676415 ETH0.000266367.11299313
Transfer196903732024-04-19 15:28:11685 days ago1713540491IN
0x4ECEFdE2...77F96315b
0.06576285 ETH0.0006821618.21681346
Transfer195253012024-03-27 11:15:11708 days ago1711538111IN
0x4ECEFdE2...77F96315b
0.14164859 ETH0.0011692231.22347261
Transfer195195412024-03-26 15:37:11709 days ago1711467431IN
0x4ECEFdE2...77F96315b
0.13568149 ETH0.0024635665.78805003
Transfer195124272024-03-25 15:38:11710 days ago1711381091IN
0x4ECEFdE2...77F96315b
0.10519821 ETH0.0017731747.35153322
Transfer194905952024-03-22 13:55:11713 days ago1711115711IN
0x4ECEFdE2...77F96315b
0.13802432 ETH0.0014914439.82826728
Transfer194808482024-03-21 5:05:11715 days ago1710997511IN
0x4ECEFdE2...77F96315b
0.15778382 ETH0.0012926934.52070128
Transfer194807392024-03-21 4:43:11715 days ago1710996191IN
0x4ECEFdE2...77F96315b
0.15709998 ETH0.0013338735.62031937
Transfer194807392024-03-21 4:43:11715 days ago1710996191IN
0x4ECEFdE2...77F96315b
0.15709998 ETH0.0013338735.62031937
Transfer193753532024-03-06 9:52:11729 days ago1709718731IN
0x4ECEFdE2...77F96315b
0.14387618 ETH0.0032124285.78600778
Transfer189887392024-01-12 5:30:11784 days ago1705037411IN
0x4ECEFdE2...77F96315b
0.10886284 ETH0.0006890718.40131794
Transfer189833182024-01-11 11:14:11784 days ago1704971651IN
0x4ECEFdE2...77F96315b
0.06969056 ETH0.0010555228.18706573
Transfer189818382024-01-11 6:14:47785 days ago1704953687IN
0x4ECEFdE2...77F96315b
0.0149763 ETH0.0011437430.54297608
Transfer189700662024-01-09 14:41:11786 days ago1704811271IN
0x4ECEFdE2...77F96315b
0.07155574 ETH0.0009116924.34623132
Transfer188336342023-12-21 10:26:11805 days ago1703154371IN
0x4ECEFdE2...77F96315b
0.03435749 ETH0.0015148140.45214263
Transfer186845692023-11-30 12:58:11826 days ago1701349091IN
0x4ECEFdE2...77F96315b
0.01423564 ETH0.0016407343.8147339
Transfer186845692023-11-30 12:58:11826 days ago1701349091IN
0x4ECEFdE2...77F96315b
0.15191608 ETH0.0016407343.8147339
Transfer186711102023-11-28 15:48:11828 days ago1701186491IN
0x4ECEFdE2...77F96315b
0.04662202 ETH0.0019902153.14753623

Latest 19 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer197086332024-04-22 4:44:11683 days ago1713761051
0x4ECEFdE2...77F96315b
0.17676415 ETH
Transfer196903732024-04-19 15:28:11685 days ago1713540491
0x4ECEFdE2...77F96315b
0.06576285 ETH
Transfer195253012024-03-27 11:15:11708 days ago1711538111
0x4ECEFdE2...77F96315b
0.14164859 ETH
Transfer195195412024-03-26 15:37:11709 days ago1711467431
0x4ECEFdE2...77F96315b
0.13568149 ETH
Transfer195124272024-03-25 15:38:11710 days ago1711381091
0x4ECEFdE2...77F96315b
0.10519821 ETH
Transfer194905952024-03-22 13:55:11713 days ago1711115711
0x4ECEFdE2...77F96315b
0.13802432 ETH
Transfer194808482024-03-21 5:05:11715 days ago1710997511
0x4ECEFdE2...77F96315b
0.15778382 ETH
Transfer194807392024-03-21 4:43:11715 days ago1710996191
0x4ECEFdE2...77F96315b
0.15709998 ETH
Transfer194807392024-03-21 4:43:11715 days ago1710996191
0x4ECEFdE2...77F96315b
0.15709998 ETH
Transfer193753532024-03-06 9:52:11729 days ago1709718731
0x4ECEFdE2...77F96315b
0.14387618 ETH
Transfer189887392024-01-12 5:30:11784 days ago1705037411
0x4ECEFdE2...77F96315b
0.10886284 ETH
Transfer189833182024-01-11 11:14:11784 days ago1704971651
0x4ECEFdE2...77F96315b
0.06969056 ETH
Transfer189818382024-01-11 6:14:47785 days ago1704953687
0x4ECEFdE2...77F96315b
0.0149763 ETH
Transfer189700662024-01-09 14:41:11786 days ago1704811271
0x4ECEFdE2...77F96315b
0.07155574 ETH
Transfer188336342023-12-21 10:26:11805 days ago1703154371
0x4ECEFdE2...77F96315b
0.03435749 ETH
Transfer186845692023-11-30 12:58:11826 days ago1701349091
0x4ECEFdE2...77F96315b
0.01423564 ETH
Transfer186845692023-11-30 12:58:11826 days ago1701349091
0x4ECEFdE2...77F96315b
0.15191608 ETH
Transfer186711102023-11-28 15:48:11828 days ago1701186491
0x4ECEFdE2...77F96315b
0.04662202 ETH
0x3d602d80184871102023-11-02 21:36:35854 days ago1698960995  Contract Creation0 ETH
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Minimal Proxy Contract for 0x3a5fb753285ac3a67c6b0d03e121921b2a1428be

Contract Name:
Forwarder

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-10-12
*/

// File: @uniswap/lib/contracts/libraries/TransferHelper.sol



pragma solidity >=0.6.0;

// helper methods for interacting with ERC20 tokens and sending ETH that do not consistently return true/false
library TransferHelper {
    function safeApprove(
        address token,
        address to,
        uint256 value
    ) internal {
        // bytes4(keccak256(bytes('approve(address,uint256)')));
        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x095ea7b3, to, value));
        require(
            success && (data.length == 0 || abi.decode(data, (bool))),
            'TransferHelper::safeApprove: approve failed'
        );
    }

    function safeTransfer(
        address token,
        address to,
        uint256 value
    ) internal {
        // bytes4(keccak256(bytes('transfer(address,uint256)')));
        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0xa9059cbb, to, value));
        require(
            success && (data.length == 0 || abi.decode(data, (bool))),
            'TransferHelper::safeTransfer: transfer failed'
        );
    }

    function safeTransferFrom(
        address token,
        address from,
        address to,
        uint256 value
    ) internal {
        // bytes4(keccak256(bytes('transferFrom(address,address,uint256)')));
        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x23b872dd, from, to, value));
        require(
            success && (data.length == 0 || abi.decode(data, (bool))),
            'TransferHelper::transferFrom: transferFrom failed'
        );
    }

    function safeTransferETH(address to, uint256 value) internal {
        (bool success, ) = to.call{value: value}(new bytes(0));
        require(success, 'TransferHelper::safeTransferETH: ETH transfer failed');
    }
}

// File: ManualForwarder/ERC20Interface.sol


pragma solidity ^0.8.0;

/**
 * Contract that exposes the needed erc20 token functions
 */

abstract contract ERC20Interface {
  // Send _value amount of tokens to address _to
  function transfer(address _to, uint256 _value)
    public
    virtual
    returns (bool success);

  // Get the account balance of another account with address _owner
  function balanceOf(address _owner)
    public
    virtual
    view
    returns (uint256 balance);
}

// File: ManualForwarder/Forwarder.sol



 pragma solidity ^0.8.19;



 contract Forwarder {
    address private parentAddress;
    address private owner;

    event ForwarderDeposited(address from, uint256 value, bytes data);

    function initialize(address _owner, address initAddress) public onlyUninitialized {
        require(initAddress != address(0), "Invalid parent address");
        require(_owner != address(0), "Invalid owner address");
        owner = _owner;
        parentAddress = initAddress;
    }

    modifier onlyUninitialized {
        require(parentAddress == address(0x0), "Already initialized");
        _;
    }

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

    function getParentAddress() public view onlyOwner returns (address) {
        return parentAddress;
    }

    function getOwner() public view onlyOwner returns (address) {
        return owner;
    }

    fallback() external payable {
        flush();
    }

    receive() external payable {
        flush();
    }

    function setParentAddress(address newAddress) public onlyOwner {
        require(newAddress != address(0), "Invalid parent address");
        parentAddress = newAddress;
    }

    function flush() private {
        uint256 value = payable(address(this)).balance;

        if (value == 0) {
            return;
        }

        (bool success, ) = parentAddress.call{ value: value }("");
        require(success, "Flush failed");
        emit ForwarderDeposited(msg.sender, value, msg.data);
    }

    function getERC20Balance(
        address tokenContractAddress
    ) public view returns (uint256) {
        ERC20Interface instance = ERC20Interface(tokenContractAddress);
        address forwarderAddress = address(this);
        uint256 forwarderBalance = instance.balanceOf(forwarderAddress);
        if (forwarderBalance == 0) {
            return 0;
        }
        return forwarderBalance;
    }

    function flushTokens(address tokenContractAddress) external onlyOwner {
        ERC20Interface instance = ERC20Interface(tokenContractAddress);
        address forwarderAddress = address(this);
        uint256 forwarderBalance = instance.balanceOf(forwarderAddress);
        if (forwarderBalance == 0) {
            return;
        }

        TransferHelper.safeTransfer(
            tokenContractAddress,
            parentAddress,
            forwarderBalance
        );
    }
}

Contract ABI

API
[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"ForwarderDeposited","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"address","name":"tokenContractAddress","type":"address"}],"name":"flushTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenContractAddress","type":"address"}],"name":"getERC20Balance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getParentAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"initAddress","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setParentAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.