Latest 12 from a total of 12 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Transfer | 19462556 | 721 days ago | IN | 0.67984451 ETH | 0.00199517 | ||||
| Transfer | 19462339 | 721 days ago | IN | 0.6881423 ETH | 0.00161022 | ||||
| Transfer | 19454825 | 723 days ago | IN | 0.74259388 ETH | 0.00112341 | ||||
| Transfer | 19453473 | 723 days ago | IN | 0.36904265 ETH | 0.00089872 | ||||
| Transfer | 19434636 | 725 days ago | IN | 0.26645817 ETH | 0.00235916 | ||||
| Transfer | 19425178 | 727 days ago | IN | 0.36825209 ETH | 0.00348257 | ||||
| Transfer | 19410182 | 729 days ago | IN | 0.3604093 ETH | 0.00164766 | ||||
| Transfer | 19405829 | 729 days ago | IN | 0.28868857 ETH | 0.00280852 | ||||
| Transfer | 19396614 | 731 days ago | IN | 0.44559741 ETH | 0.00172256 | ||||
| Transfer | 19389497 | 732 days ago | IN | 0.18045991 ETH | 0.0023966 | ||||
| Transfer | 19384624 | 732 days ago | IN | 0.37805016 ETH | 0.00318299 | ||||
| Transfer | 19379010 | 733 days ago | IN | 0.2 ETH | 0.00382204 |
Latest 13 internal transactions
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| Transfer | 19462556 | 721 days ago | 0.67984451 ETH | ||||
| Transfer | 19462339 | 721 days ago | 0.6881423 ETH | ||||
| Transfer | 19454825 | 723 days ago | 0.74259388 ETH | ||||
| Transfer | 19453473 | 723 days ago | 0.36904265 ETH | ||||
| Transfer | 19434636 | 725 days ago | 0.26645817 ETH | ||||
| Transfer | 19425178 | 727 days ago | 0.36825209 ETH | ||||
| Transfer | 19410182 | 729 days ago | 0.3604093 ETH | ||||
| Transfer | 19405829 | 729 days ago | 0.28868857 ETH | ||||
| Transfer | 19396614 | 731 days ago | 0.44559741 ETH | ||||
| Transfer | 19389497 | 732 days ago | 0.18045991 ETH | ||||
| Transfer | 19384624 | 732 days ago | 0.37805016 ETH | ||||
| Transfer | 19379010 | 733 days ago | 0.2 ETH | ||||
| 0x3d602d80 | 17644416 | 976 days ago | Contract Creation | 0 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 | 33 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.