ETH Price: $3,267.34 (+0.05%)
Gas: 1 Gwei

Contract

0x0D1a9Dbe8F26F8A89F9607D81A2239c03f7D2B32
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer197179422024-04-23 11:57:2394 days ago1713873443IN
0x0D1a9Dbe...03f7D2B32
0.11799 ETH0.000372569.94901628
Transfer196121242024-04-08 16:26:23109 days ago1712593583IN
0x0D1a9Dbe...03f7D2B32
0.04948 ETH0.0016335243.62233317
Transfer195968652024-04-06 13:04:23111 days ago1712408663IN
0x0D1a9Dbe...03f7D2B32
0.04804 ETH0.0007304719.50688229
Transfer195911792024-04-05 17:59:59112 days ago1712339999IN
0x0D1a9Dbe...03f7D2B32
0.01509 ETH0.0007775820.76497713
Transfer195642432024-04-01 23:26:59116 days ago1712014019IN
0x0D1a9Dbe...03f7D2B32
0.01708 ETH0.000805121.49994422
Transfer195195372024-03-26 15:36:11122 days ago1711467371IN
0x0D1a9Dbe...03f7D2B32
0.02233 ETH0.002219559.27057688
Transfer194929632024-03-22 21:53:35126 days ago1711144415IN
0x0D1a9Dbe...03f7D2B32
0.01824 ETH0.000923324.65627325
Transfer194487172024-03-16 16:44:23132 days ago1710607463IN
0x0D1a9Dbe...03f7D2B32
0.14045 ETH0.0012777334.12109088
Transfer193698942024-03-05 15:35:11143 days ago1709652911IN
0x0D1a9Dbe...03f7D2B32
0.01329 ETH0.0054175144.6713935
Transfer191728892024-02-07 0:54:59171 days ago1707267299IN
0x0D1a9Dbe...03f7D2B32
0.00967 ETH0.0010171627.1628593
Transfer191369022024-02-01 23:37:11176 days ago1706830631IN
0x0D1a9Dbe...03f7D2B32
0.25 ETH0.0016570944.25167236
Transfer191089382024-01-29 1:34:11180 days ago1706492051IN
0x0D1a9Dbe...03f7D2B32
0.13222 ETH0.00035819.56289357
Transfer190953452024-01-27 3:49:59182 days ago1706327399IN
0x0D1a9Dbe...03f7D2B32
0.00527 ETH0.0005453714.56395941
Transfer190872122024-01-26 0:29:23183 days ago1706228963IN
0x0D1a9Dbe...03f7D2B32
0.05423 ETH0.0006663617.79493822
Transfer190839922024-01-25 13:41:23183 days ago1706190083IN
0x0D1a9Dbe...03f7D2B32
0.04527 ETH0.0011074329.57329906
Transfer190777642024-01-24 16:43:35184 days ago1706114615IN
0x0D1a9Dbe...03f7D2B32
0.01795 ETH0.0004952613.22572875
Transfer190737152024-01-24 3:06:59185 days ago1706065619IN
0x0D1a9Dbe...03f7D2B32
0.22063 ETH0.0005893115.73726579
Transfer190649912024-01-22 21:41:11186 days ago1705959671IN
0x0D1a9Dbe...03f7D2B32
0.0344 ETH0.0005283614.10954689

Latest 19 internal transactions

Advanced mode:
Parent Transaction Hash Block From To
197179422024-04-23 11:57:2394 days ago1713873443
0x0D1a9Dbe...03f7D2B32
0.11799 ETH
196121242024-04-08 16:26:23109 days ago1712593583
0x0D1a9Dbe...03f7D2B32
0.04948 ETH
195968652024-04-06 13:04:23111 days ago1712408663
0x0D1a9Dbe...03f7D2B32
0.04804 ETH
195911792024-04-05 17:59:59112 days ago1712339999
0x0D1a9Dbe...03f7D2B32
0.01509 ETH
195642432024-04-01 23:26:59116 days ago1712014019
0x0D1a9Dbe...03f7D2B32
0.01708 ETH
195195372024-03-26 15:36:11122 days ago1711467371
0x0D1a9Dbe...03f7D2B32
0.02233 ETH
194929632024-03-22 21:53:35126 days ago1711144415
0x0D1a9Dbe...03f7D2B32
0.01824 ETH
194487172024-03-16 16:44:23132 days ago1710607463
0x0D1a9Dbe...03f7D2B32
0.14045 ETH
193698942024-03-05 15:35:11143 days ago1709652911
0x0D1a9Dbe...03f7D2B32
0.01329 ETH
191728892024-02-07 0:54:59171 days ago1707267299
0x0D1a9Dbe...03f7D2B32
0.00967 ETH
191369022024-02-01 23:37:11176 days ago1706830631
0x0D1a9Dbe...03f7D2B32
0.25 ETH
191089382024-01-29 1:34:11180 days ago1706492051
0x0D1a9Dbe...03f7D2B32
0.13222 ETH
190953452024-01-27 3:49:59182 days ago1706327399
0x0D1a9Dbe...03f7D2B32
0.00527 ETH
190872122024-01-26 0:29:23183 days ago1706228963
0x0D1a9Dbe...03f7D2B32
0.05423 ETH
190839922024-01-25 13:41:23183 days ago1706190083
0x0D1a9Dbe...03f7D2B32
0.04527 ETH
190777642024-01-24 16:43:35184 days ago1706114615
0x0D1a9Dbe...03f7D2B32
0.01795 ETH
190737152024-01-24 3:06:59185 days ago1706065619
0x0D1a9Dbe...03f7D2B32
0.22063 ETH
190649912024-01-22 21:41:11186 days ago1705959671
0x0D1a9Dbe...03f7D2B32
0.0344 ETH
190609452024-01-22 7:59:35186 days ago1705910375  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.