Latest 25 from a total of 701 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Transfer | 24041136 | 4 days ago | IN | 20 ETH | 0.00000233 | ||||
| Transfer | 24041013 | 4 days ago | IN | 44 ETH | 0.00011234 | ||||
| Flush Tokens | 24028007 | 6 days ago | IN | 0 ETH | 0.00000155 | ||||
| Transfer | 24027966 | 6 days ago | IN | 88.2467445 ETH | 0.00000146 | ||||
| Transfer | 24020787 | 7 days ago | IN | 16.39440586 ETH | 0.0000015 | ||||
| Flush Tokens | 23999568 | 10 days ago | IN | 0 ETH | 0.0000026 | ||||
| Flush Tokens | 23999321 | 10 days ago | IN | 0 ETH | 0.00000191 | ||||
| Flush Tokens | 23999272 | 10 days ago | IN | 0 ETH | 0.00000219 | ||||
| Transfer | 23992185 | 11 days ago | IN | 17.74389023 ETH | 0.00000462 | ||||
| Transfer | 23978142 | 13 days ago | IN | 120.95984086 ETH | 0.00000745 | ||||
| Transfer | 23970560 | 14 days ago | IN | 80.49917629 ETH | 0.00001199 | ||||
| Transfer | 23949768 | 17 days ago | IN | 139.13432872 ETH | 0.00000081 | ||||
| Flush Tokens | 23942326 | 18 days ago | IN | 0 ETH | 0.0000026 | ||||
| Transfer | 23942224 | 18 days ago | IN | 23.66890747 ETH | 0.00000214 | ||||
| Flush Tokens | 23936110 | 19 days ago | IN | 0 ETH | 0.00000096 | ||||
| Transfer | 23935693 | 19 days ago | IN | 67.30372938 ETH | 0.00000125 | ||||
| Flush Tokens | 23928562 | 20 days ago | IN | 0 ETH | 0.00000237 | ||||
| Transfer | 23928388 | 20 days ago | IN | 34.20911078 ETH | 0.00000207 | ||||
| Flush Tokens | 23922859 | 21 days ago | IN | 0 ETH | 0.00000179 | ||||
| Flush Tokens | 23922659 | 21 days ago | IN | 0 ETH | 0.00000146 | ||||
| Flush Tokens | 23922217 | 21 days ago | IN | 0 ETH | 0.00000188 | ||||
| Flush Tokens | 23921915 | 21 days ago | IN | 0 ETH | 0.00000168 | ||||
| Transfer | 23921595 | 21 days ago | IN | 169.0144425 ETH | 0.00000118 | ||||
| Flush Tokens | 23900152 | 24 days ago | IN | 0 ETH | 0.0000021 | ||||
| Flush Tokens | 23900102 | 24 days ago | IN | 0 ETH | 0.00000196 |
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| Transfer | 24041136 | 4 days ago | 20 ETH | ||||
| Transfer | 24041013 | 4 days ago | 44 ETH | ||||
| Transfer | 24027966 | 6 days ago | 88.2467445 ETH | ||||
| Transfer | 24020787 | 7 days ago | 16.39440586 ETH | ||||
| Transfer | 23992185 | 11 days ago | 17.74389023 ETH | ||||
| Transfer | 23978142 | 13 days ago | 120.95984086 ETH | ||||
| Transfer | 23970560 | 14 days ago | 80.49917629 ETH | ||||
| Transfer | 23949768 | 17 days ago | 139.13432872 ETH | ||||
| Transfer | 23942224 | 18 days ago | 23.66890747 ETH | ||||
| Transfer | 23935693 | 19 days ago | 67.30372938 ETH | ||||
| Transfer | 23928388 | 20 days ago | 34.20911078 ETH | ||||
| Transfer | 23921595 | 21 days ago | 169.0144425 ETH | ||||
| Transfer | 23899666 | 24 days ago | 234.7353549 ETH | ||||
| Transfer | 23885578 | 26 days ago | 131.62322569 ETH | ||||
| Transfer | 23879076 | 27 days ago | 31.64794852 ETH | ||||
| Transfer | 23878292 | 27 days ago | 32.87624952 ETH | ||||
| Transfer | 23871267 | 28 days ago | 3.47852003 ETH | ||||
| Transfer | 23771438 | 42 days ago | 6.50622919 ETH | ||||
| Transfer | 23750023 | 45 days ago | 22.31590884 ETH | ||||
| Transfer | 23735642 | 47 days ago | 11.63973852 ETH | ||||
| Transfer | 23728551 | 48 days ago | 11.95177163 ETH | ||||
| Transfer | 23721278 | 49 days ago | 50.83763549 ETH | ||||
| Transfer | 23721257 | 49 days ago | 0.005 ETH | ||||
| Transfer | 23699526 | 52 days ago | 0.00011672 ETH | ||||
| Transfer | 23699517 | 52 days ago | 71.36496838 ETH |
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
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.