Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 49 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Sweep All | 20200914 | 234 days ago | IN | 0 ETH | 0.00007809 | ||||
Sweep All | 15469771 | 898 days ago | IN | 0 ETH | 0.0002099 | ||||
Transfer | 12010384 | 1441 days ago | IN | 0.07330965 ETH | 0.00263 | ||||
Sweep All | 11947896 | 1451 days ago | IN | 0 ETH | 0.00504198 | ||||
Transfer | 11925047 | 1454 days ago | IN | 0.06300252 ETH | 0.00324016 | ||||
Transfer | 11887138 | 1460 days ago | IN | 0.0931029 ETH | 0.00332432 | ||||
Transfer | 11851966 | 1466 days ago | IN | 0.06058039 ETH | 0.00319808 | ||||
Transfer | 11812990 | 1472 days ago | IN | 0.02227304 ETH | 0.00258792 | ||||
Transfer | 11710661 | 1487 days ago | IN | 0.1540164 ETH | 0.0029456 | ||||
Transfer | 11710617 | 1487 days ago | IN | 0.15891177 ETH | 0.00130448 | ||||
Transfer | 11685380 | 1491 days ago | IN | 0.0909074 ETH | 0.00206192 | ||||
Transfer | 11670739 | 1493 days ago | IN | 0.01245079 ETH | 0.00079952 | ||||
Transfer | 11625416 | 1500 days ago | IN | 0.07549233 ETH | 0.00132552 | ||||
Sweep All | 11374130 | 1539 days ago | IN | 0 ETH | 0.0009076 | ||||
Transfer | 11319854 | 1547 days ago | IN | 0.03647695 ETH | 0.00174632 | ||||
Transfer | 11319618 | 1547 days ago | IN | 0.28684753 ETH | 0.0019988 | ||||
Transfer | 11025023 | 1593 days ago | IN | 0.09935957 ETH | 0.00138864 | ||||
Transfer | 11024964 | 1593 days ago | IN | 0.01800512 ETH | 0.00103937 | ||||
Transfer | 11023384 | 1593 days ago | IN | 0.3079104 ETH | 0.00107304 | ||||
Sweep All | 8966630 | 1917 days ago | IN | 0 ETH | 0.00004751 | ||||
Transfer | 8780695 | 1948 days ago | IN | 0.28825663 ETH | 0.00044184 | ||||
Transfer | 8704361 | 1960 days ago | IN | 0.66409957 ETH | 0.00044184 | ||||
Sweep All | 8685354 | 1963 days ago | IN | 0 ETH | 0.00092135 | ||||
Transfer | 8657867 | 1967 days ago | IN | 0.317 ETH | 0.00023144 | ||||
Transfer | 8594353 | 1977 days ago | IN | 0.33208848 ETH | 0.00056808 |
Latest 11 internal transactions
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
20200914 | 234 days ago | 0.07330965 ETH | ||||
11947896 | 1451 days ago | 0.73073754 ETH | ||||
11374130 | 1539 days ago | 0.74859957 ETH | ||||
8966630 | 1917 days ago | 0.9523562 ETH | ||||
8685354 | 1963 days ago | 1.22618581 ETH | ||||
8246771 | 2031 days ago | 1.48977052 ETH | ||||
8093063 | 2055 days ago | 0.67019854 ETH | ||||
8049537 | 2062 days ago | 0.75692182 ETH | ||||
7855727 | 2092 days ago | 0.55991984 ETH | ||||
7580740 | 2135 days ago | 1.34205505 ETH | ||||
7111499 | 2219 days ago | Contract Creation | 0 ETH |
Loading...
Loading
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0xF2f313A4...Fd1BF0dA9 The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
UserWallet
Compiler Version
v0.4.24+commit.e67f0147
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-02-27 */ pragma solidity ^0.4.24; contract AbstractSweeper { function sweepAll(address token) public returns (bool); function() public { revert(); } Controller controller; constructor(address _controller) public { controller = Controller(_controller); } modifier canSweep() { if(msg.sender != controller.authorizedCaller() && msg.sender != controller.owner()){ revert(); } if(controller.halted()){ revert(); } _; } } contract Token { function balanceOf(address a) public pure returns (uint) { (a); return 0; } function transfer(address a, uint val) public pure returns (bool) { (a); (val); return false; } } contract DefaultSweeper is AbstractSweeper { constructor(address controller) AbstractSweeper(controller) public { } function sweepAll(address _token) public canSweep returns (bool) { bool success = false; address destination = controller.destination(); if(_token != address(0)){ Token token = Token(_token); success = token.transfer(destination, token.balanceOf(this)); }else{ success = destination.send(address(this).balance); } return success; } } contract UserWallet { AbstractSweeperList sweeperList; constructor(address _sweeperlist) public { sweeperList = AbstractSweeperList(_sweeperlist); } function() public payable { } function tokenFallback(address _from, uint _value, bytes _data) public pure { (_from); (_value); (_data); } function sweepAll(address _token) public returns (bool) { return sweeperList.sweeperOf(_token).delegatecall(msg.data); } } contract AbstractSweeperList { function sweeperOf(address _token) public returns (address); } contract Controller is AbstractSweeperList { address public owner; address public authorizedCaller; address public destination; bool public halted; event NewWalletCreated(address receiver); modifier onlyOwner() { if(msg.sender != owner){ revert(); } _; } modifier onlyAuthorizedCaller() { if(msg.sender != authorizedCaller){ revert(); } _; } modifier onlyAdmins() { if(msg.sender != authorizedCaller && msg.sender != owner){ revert(); } _; } constructor() public { owner = msg.sender; destination = msg.sender; authorizedCaller = msg.sender; } function setAuthorizedCaller(address _newCaller) public onlyOwner { authorizedCaller = _newCaller; } function setDestination(address _dest) public onlyOwner { destination = _dest; } function setOwner(address _owner) public onlyOwner { owner = _owner; } function newWallet() public onlyAdmins returns (address wallet) { wallet = address(new UserWallet(this)); emit NewWalletCreated(wallet); } function halt() public onlyAdmins { halted = true; } function start() public onlyOwner { halted = false; } address public defaultSweeper = address(new DefaultSweeper(this)); mapping (address => address) sweepers; function addSweeper(address _token, address _sweeper) public onlyOwner { sweepers[_token] = _sweeper; } function sweeperOf(address _token) public returns (address) { address sweeper = sweepers[_token]; if(sweeper == 0){ sweeper = defaultSweeper; } return sweeper; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[{"name":"_from","type":"address"},{"name":"_value","type":"uint256"},{"name":"_data","type":"bytes"}],"name":"tokenFallback","outputs":[],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"sweepAll","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_sweeperlist","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"}]
Deployed Bytecode
0x60806040526004361061004b5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663c0ee0b8a811461004d578063c18cfe86146100c3575b005b34801561005957600080fd5b50604080516020600460443581810135601f810184900484028501840190955284845261004b94823573ffffffffffffffffffffffffffffffffffffffff169460248035953695946064949201919081908401838280828437509497506101059650505050505050565b3480156100cf57600080fd5b506100f173ffffffffffffffffffffffffffffffffffffffff6004351661010a565b604080519115158252519081900360200190f35b505050565b60008054604080517f3c18d31800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff858116600483015291519190921691633c18d31891602480830192602092919082900301818787803b15801561017f57600080fd5b505af1158015610193573d6000803e3d6000fd5b505050506040513d60208110156101a957600080fd5b505160405173ffffffffffffffffffffffffffffffffffffffff90911690600090369080838380828437820191505092505050600060405180830381855af49493505050505600a165627a7a72305820ec90d4e55fb69f839fa555767145d6ac7a8f1aa98ed098b09c220c4a34f02ba10029
Deployed Bytecode Sourcemap
1322:501:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;1539:139;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1539:139:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1539:139:0;;-1:-1:-1;1539:139:0;;-1:-1:-1;;;;;;;1539:139:0;1686:134;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1686:134:0;;;;;;;;;;;;;;;;;;;;;;;;;1539:139;;;;:::o;1686:134::-;1736:4;1760:11;;:29;;;;;;:11;:29;;;;;;;;;:11;;;;;:21;;:29;;;;;;;;;;;;;;1736:4;1760:11;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;1760:29:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1760:29:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1760:29:0;:52;;:42;;;;;1803:8;;;;1760:52;1803:8;;;;1760:52;;;;;;;;;;;;;;;;;;;;;;1686:134;-1:-1:-1;;;;1686:134:0:o
Swarm Source
bzzr://ec90d4e55fb69f839fa555767145d6ac7a8f1aa98ed098b09c220c4a34f02ba1
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 31 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.