Overview
ETH Balance
0 ETH
Eth Value
$0.00Latest 25 from a total of 40 transactions
| Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Transfer | 19564545 | 692 days ago | IN | 0.00372036 ETH | 0.00080511 | ||||
| Transfer | 19374740 | 719 days ago | IN | 0.02079927 ETH | 0.0020306 | ||||
| Transfer | 19309977 | 728 days ago | IN | 0.03221999 ETH | 0.00103135 | ||||
| Transfer | 19245363 | 737 days ago | IN | 0.0655959 ETH | 0.00058369 | ||||
| Transfer | 19225278 | 740 days ago | IN | 0.0258873 ETH | 0.0010636 | ||||
| Transfer | 19213667 | 742 days ago | IN | 0.04976324 ETH | 0.00302937 | ||||
| Transfer | 19149423 | 751 days ago | IN | 0.02761902 ETH | 0.00081066 | ||||
| Transfer | 19128813 | 754 days ago | IN | 0.02359672 ETH | 0.00101106 | ||||
| Transfer | 19123146 | 754 days ago | IN | 0.05934127 ETH | 0.00070288 | ||||
| Transfer | 19068744 | 762 days ago | IN | 0.09873599 ETH | 0.00062175 | ||||
| Transfer | 19065591 | 762 days ago | IN | 0.25944001 ETH | 0.0004601 | ||||
| Transfer | 19052833 | 764 days ago | IN | 0.03252584 ETH | 0.00038551 | ||||
| Transfer | 19045424 | 765 days ago | IN | 0.03024 ETH | 0.00056866 | ||||
| Transfer | 19038762 | 766 days ago | IN | 0.0224263 ETH | 0.00085262 | ||||
| Transfer | 19038139 | 766 days ago | IN | 0.09993549 ETH | 0.00127049 | ||||
| Transfer | 19000613 | 772 days ago | IN | 0.05071299 ETH | 0.0005607 | ||||
| Transfer | 18995417 | 772 days ago | IN | 0.02273019 ETH | 0.0006099 | ||||
| Transfer | 18994708 | 772 days ago | IN | 0.03302569 ETH | 0.00064132 | ||||
| Transfer | 18986633 | 774 days ago | IN | 0.02242688 ETH | 0.00084001 | ||||
| Transfer | 18965570 | 777 days ago | IN | 0.05136 ETH | 0.00067441 | ||||
| Transfer | 18948083 | 779 days ago | IN | 0.08928 ETH | 0.00063399 | ||||
| Transfer | 18944750 | 779 days ago | IN | 0.061866 ETH | 0.00043437 | ||||
| Transfer | 18938559 | 780 days ago | IN | 0.10689599 ETH | 0.00050882 | ||||
| Transfer | 18938109 | 780 days ago | IN | 0.2299812 ETH | 0.00055235 | ||||
| Transfer | 18935598 | 781 days ago | IN | 0.0760508 ETH | 0.00096127 |
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
To
|
|||
|---|---|---|---|---|---|---|---|
| Transfer | 19564545 | 692 days ago | 0.00372036 ETH | ||||
| Transfer | 19374740 | 719 days ago | 0.02079927 ETH | ||||
| Transfer | 19309977 | 728 days ago | 0.03221999 ETH | ||||
| Transfer | 19245363 | 737 days ago | 0.0655959 ETH | ||||
| Transfer | 19225278 | 740 days ago | 0.0258873 ETH | ||||
| Transfer | 19213667 | 742 days ago | 0.04976324 ETH | ||||
| Transfer | 19149423 | 751 days ago | 0.02761902 ETH | ||||
| Transfer | 19128813 | 754 days ago | 0.02359672 ETH | ||||
| Transfer | 19123146 | 754 days ago | 0.05934127 ETH | ||||
| Transfer | 19068744 | 762 days ago | 0.09873599 ETH | ||||
| Transfer | 19065591 | 762 days ago | 0.25944001 ETH | ||||
| Transfer | 19052833 | 764 days ago | 0.03252584 ETH | ||||
| Transfer | 19045424 | 765 days ago | 0.03024 ETH | ||||
| Transfer | 19038762 | 766 days ago | 0.0224263 ETH | ||||
| Transfer | 19038139 | 766 days ago | 0.09993549 ETH | ||||
| Transfer | 19000613 | 772 days ago | 0.05071299 ETH | ||||
| Transfer | 18995417 | 772 days ago | 0.02273019 ETH | ||||
| Transfer | 18994708 | 772 days ago | 0.03302569 ETH | ||||
| Transfer | 18986633 | 774 days ago | 0.02242688 ETH | ||||
| Transfer | 18965570 | 777 days ago | 0.05136 ETH | ||||
| Transfer | 18948083 | 779 days ago | 0.08928 ETH | ||||
| Transfer | 18944750 | 779 days ago | 0.061866 ETH | ||||
| Transfer | 18938559 | 780 days ago | 0.10689599 ETH | ||||
| Transfer | 18938109 | 780 days ago | 0.2299812 ETH | ||||
| Transfer | 18935598 | 781 days ago | 0.0760508 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Minimal Proxy Contract for 0x3a5fb753285ac3a67c6b0d03e121921b2a1428be
Contract Name:
Forwarder
Compiler Version
v0.8.19+commit.7dd6d404
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"}]Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 34 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
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.