ETH Price: $3,397.82 (+6.36%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer197060842024-04-21 20:11:47277 days ago1713730307IN
0xbc77405A...AF649B8C0
0.095353 ETH0.000366499.78693276
Transfer196976512024-04-20 15:55:11278 days ago1713628511IN
0xbc77405A...AF649B8C0
0.071775 ETH0.0005626115.02436392
Transfer196068962024-04-07 22:50:47291 days ago1712530247IN
0xbc77405A...AF649B8C0
0.014664 ETH0.0006010316.05018043
Transfer196068632024-04-07 22:44:11291 days ago1712529851IN
0xbc77405A...AF649B8C0
0.036882 ETH0.0005868915.6726329
Transfer195972862024-04-06 14:29:11292 days ago1712413751IN
0xbc77405A...AF649B8C0
0.036148 ETH0.0006716317.93562471
Transfer195910132024-04-05 17:26:35293 days ago1712337995IN
0xbc77405A...AF649B8C0
0.0854639 ETH0.0012616733.69238095
Transfer194586912024-03-18 2:24:11312 days ago1710728651IN
0xbc77405A...AF649B8C0
0.09525068 ETH0.0015576941.59739264
Transfer194525872024-03-17 5:48:47313 days ago1710654527IN
0xbc77405A...AF649B8C0
0.013109 ETH0.0008880723.71546952
Transfer194522002024-03-17 4:30:11313 days ago1710649811IN
0xbc77405A...AF649B8C0
0.10318659 ETH0.0015832342.27937433
Transfer194509392024-03-17 0:14:11313 days ago1710634451IN
0xbc77405A...AF649B8C0
0.02291743 ETH0.0016805944.87941748
Transfer194021242024-03-10 3:50:47320 days ago1710042647IN
0xbc77405A...AF649B8C0
0.013705 ETH0.0019688552.57703338
Transfer193670232024-03-05 5:58:11325 days ago1709618291IN
0xbc77405A...AF649B8C0
0.027669 ETH0.0029194177.96111952
Transfer193665092024-03-05 4:14:23325 days ago1709612063IN
0xbc77405A...AF649B8C0
0.027854 ETH0.0032590487.03088218
Transfer193459672024-03-02 7:23:11328 days ago1709364191IN
0xbc77405A...AF649B8C0
0.037831 ETH0.0018148348.46400322
Transfer193314972024-02-29 6:50:11330 days ago1709189411IN
0xbc77405A...AF649B8C0
0.012923 ETH0.0019614352.37907832
Transfer193311872024-02-29 5:47:59330 days ago1709185679IN
0xbc77405A...AF649B8C0
0.069486 ETH0.0019362751.70708213
Transfer193281342024-02-28 19:32:59330 days ago1709148779IN
0xbc77405A...AF649B8C0
0.04386 ETH0.0022847861.01390203
Transfer193265452024-02-28 14:13:11330 days ago1709129591IN
0xbc77405A...AF649B8C0
0.04399485 ETH0.0034688492.6334915
Transfer193165152024-02-27 4:31:11332 days ago1709008271IN
0xbc77405A...AF649B8C0
0.06384369 ETH0.0020371954.40211454
Transfer193084472024-02-26 1:24:11333 days ago1708910651IN
0xbc77405A...AF649B8C0
0.03202433 ETH0.0010461627.93734482
Transfer193027672024-02-25 6:20:11334 days ago1708842011IN
0xbc77405A...AF649B8C0
0.06195946 ETH0.001144930.57390713
Flush Tokens192954612024-02-24 5:49:23335 days ago1708753763IN
0xbc77405A...AF649B8C0
0 ETH0.0012001722.59319285

Latest 24 internal transactions

Advanced mode:
Parent Transaction Hash Block
From
To
197060842024-04-21 20:11:47277 days ago1713730307
0xbc77405A...AF649B8C0
0.095353 ETH
196976512024-04-20 15:55:11278 days ago1713628511
0xbc77405A...AF649B8C0
0.071775 ETH
196068962024-04-07 22:50:47291 days ago1712530247
0xbc77405A...AF649B8C0
0.014664 ETH
196068632024-04-07 22:44:11291 days ago1712529851
0xbc77405A...AF649B8C0
0.036882 ETH
195972862024-04-06 14:29:11292 days ago1712413751
0xbc77405A...AF649B8C0
0.036148 ETH
195910132024-04-05 17:26:35293 days ago1712337995
0xbc77405A...AF649B8C0
0.0854639 ETH
194757962024-03-20 12:05:35309 days ago1710936335
0xbc77405A...AF649B8C0
0.04091119 ETH
194757962024-03-20 12:05:35309 days ago1710936335
0xbc77405A...AF649B8C0
0.04091119 ETH
194586912024-03-18 2:24:11312 days ago1710728651
0xbc77405A...AF649B8C0
0.09525068 ETH
194525872024-03-17 5:48:47313 days ago1710654527
0xbc77405A...AF649B8C0
0.013109 ETH
194522002024-03-17 4:30:11313 days ago1710649811
0xbc77405A...AF649B8C0
0.10318659 ETH
194509392024-03-17 0:14:11313 days ago1710634451
0xbc77405A...AF649B8C0
0.02291743 ETH
194021242024-03-10 3:50:47320 days ago1710042647
0xbc77405A...AF649B8C0
0.013705 ETH
193670232024-03-05 5:58:11325 days ago1709618291
0xbc77405A...AF649B8C0
0.027669 ETH
193665092024-03-05 4:14:23325 days ago1709612063
0xbc77405A...AF649B8C0
0.027854 ETH
193459672024-03-02 7:23:11328 days ago1709364191
0xbc77405A...AF649B8C0
0.037831 ETH
193314972024-02-29 6:50:11330 days ago1709189411
0xbc77405A...AF649B8C0
0.012923 ETH
193311872024-02-29 5:47:59330 days ago1709185679
0xbc77405A...AF649B8C0
0.069486 ETH
193281342024-02-28 19:32:59330 days ago1709148779
0xbc77405A...AF649B8C0
0.04386 ETH
193265452024-02-28 14:13:11330 days ago1709129591
0xbc77405A...AF649B8C0
0.04399485 ETH
193165152024-02-27 4:31:11332 days ago1709008271
0xbc77405A...AF649B8C0
0.06384369 ETH
193084472024-02-26 1:24:11333 days ago1708910651
0xbc77405A...AF649B8C0
0.03202433 ETH
193027672024-02-25 6:20:11334 days ago1708842011
0xbc77405A...AF649B8C0
0.06195946 ETH
175718422023-06-27 16:22:35576 days ago1687882955  Contract Creation0 ETH
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
/**
 *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

[{"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 Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
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.