ETH Price: $2,036.72 (+0.91%)
Gas: 0.13 Gwei

Contract

0x14bAB2e27d835Fa4d4c0E41C73D6b3Fae4D2c056
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer194625562024-03-18 15:26:23721 days ago1710775583IN
0x14bAB2e2...ae4D2c056
0.67984451 ETH0.0019951753.28
Transfer194623392024-03-18 14:42:23721 days ago1710772943IN
0x14bAB2e2...ae4D2c056
0.6881423 ETH0.0016102243
Transfer194548252024-03-17 13:21:23723 days ago1710681683IN
0x14bAB2e2...ae4D2c056
0.74259388 ETH0.0011234130
Transfer194534732024-03-17 8:46:47723 days ago1710665207IN
0x14bAB2e2...ae4D2c056
0.36904265 ETH0.0008987224
Transfer194346362024-03-14 17:11:23725 days ago1710436283IN
0x14bAB2e2...ae4D2c056
0.26645817 ETH0.0023591663
Transfer194251782024-03-13 9:12:11727 days ago1710321131IN
0x14bAB2e2...ae4D2c056
0.36825209 ETH0.0034825793
Transfer194101822024-03-11 6:52:11729 days ago1710139931IN
0x14bAB2e2...ae4D2c056
0.3604093 ETH0.0016476644
Transfer194058292024-03-10 16:16:35729 days ago1710087395IN
0x14bAB2e2...ae4D2c056
0.28868857 ETH0.0028085275
Transfer193966142024-03-09 9:22:11731 days ago1709976131IN
0x14bAB2e2...ae4D2c056
0.44559741 ETH0.0017225646
Transfer193894972024-03-08 9:17:11732 days ago1709889431IN
0x14bAB2e2...ae4D2c056
0.18045991 ETH0.002396664
Transfer193846242024-03-07 16:55:47732 days ago1709830547IN
0x14bAB2e2...ae4D2c056
0.37805016 ETH0.0031829985
Transfer193790102024-03-06 22:06:59733 days ago1709762819IN
0x14bAB2e2...ae4D2c056
0.2 ETH0.00382204102.06556481

Latest 13 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer194625562024-03-18 15:26:23721 days ago1710775583
0x14bAB2e2...ae4D2c056
0.67984451 ETH
Transfer194623392024-03-18 14:42:23721 days ago1710772943
0x14bAB2e2...ae4D2c056
0.6881423 ETH
Transfer194548252024-03-17 13:21:23723 days ago1710681683
0x14bAB2e2...ae4D2c056
0.74259388 ETH
Transfer194534732024-03-17 8:46:47723 days ago1710665207
0x14bAB2e2...ae4D2c056
0.36904265 ETH
Transfer194346362024-03-14 17:11:23725 days ago1710436283
0x14bAB2e2...ae4D2c056
0.26645817 ETH
Transfer194251782024-03-13 9:12:11727 days ago1710321131
0x14bAB2e2...ae4D2c056
0.36825209 ETH
Transfer194101822024-03-11 6:52:11729 days ago1710139931
0x14bAB2e2...ae4D2c056
0.3604093 ETH
Transfer194058292024-03-10 16:16:35729 days ago1710087395
0x14bAB2e2...ae4D2c056
0.28868857 ETH
Transfer193966142024-03-09 9:22:11731 days ago1709976131
0x14bAB2e2...ae4D2c056
0.44559741 ETH
Transfer193894972024-03-08 9:17:11732 days ago1709889431
0x14bAB2e2...ae4D2c056
0.18045991 ETH
Transfer193846242024-03-07 16:55:47732 days ago1709830547
0x14bAB2e2...ae4D2c056
0.37805016 ETH
Transfer193790102024-03-06 22:06:59733 days ago1709762819
0x14bAB2e2...ae4D2c056
0.2 ETH
0x3d602d80176444162023-07-07 20:52:35976 days ago1688763155  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.