More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 100 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Sweep All | 17353689 | 627 days ago | IN | 0 ETH | 0.00115175 | ||||
Transfer | 11584242 | 1501 days ago | IN | 0.0502014 ETH | 0.00002104 | ||||
Transfer | 11568444 | 1503 days ago | IN | 0.05003048 ETH | 0.00002104 | ||||
Transfer | 11550649 | 1506 days ago | IN | 0.05001639 ETH | 0.00002104 | ||||
Transfer | 11535001 | 1509 days ago | IN | 0.05003542 ETH | 0.00002104 | ||||
Transfer | 11510742 | 1512 days ago | IN | 0.01001485 ETH | 0.00002104 | ||||
Transfer | 10610908 | 1651 days ago | IN | 0.05003561 ETH | 0.00002104 | ||||
Transfer | 10596726 | 1653 days ago | IN | 0.05008875 ETH | 0.00002104 | ||||
Transfer | 10583213 | 1655 days ago | IN | 0.05008293 ETH | 0.00002104 | ||||
Transfer | 10568904 | 1657 days ago | IN | 0.05002616 ETH | 0.00002104 | ||||
Sweep All | 10557352 | 1659 days ago | IN | 0 ETH | 0.00186214 | ||||
Transfer | 10556000 | 1659 days ago | IN | 0.05010436 ETH | 0.00002104 | ||||
Transfer | 10543373 | 1661 days ago | IN | 0.0500211 ETH | 0.00002104 | ||||
Transfer | 10528808 | 1663 days ago | IN | 0.0500168 ETH | 0.00002104 | ||||
Transfer | 10508644 | 1666 days ago | IN | 0.05009397 ETH | 0.00002104 | ||||
Transfer | 10496681 | 1668 days ago | IN | 0.0501185 ETH | 0.00002104 | ||||
Transfer | 10484296 | 1670 days ago | IN | 0.05001123 ETH | 0.00002104 | ||||
Transfer | 10466406 | 1673 days ago | IN | 0.05003862 ETH | 0.00002104 | ||||
Transfer | 10454160 | 1675 days ago | IN | 0.05004764 ETH | 0.00002104 | ||||
Transfer | 10441163 | 1677 days ago | IN | 0.05012136 ETH | 0.00002104 | ||||
Transfer | 10428025 | 1679 days ago | IN | 0.0500439 ETH | 0.00002104 | ||||
Transfer | 10414415 | 1681 days ago | IN | 0.05005926 ETH | 0.00002104 | ||||
Transfer | 10400544 | 1683 days ago | IN | 0.05007345 ETH | 0.00002104 | ||||
Transfer | 10386343 | 1685 days ago | IN | 0.05002046 ETH | 0.00002104 | ||||
Transfer | 10373604 | 1687 days ago | IN | 0.0500565 ETH | 0.00002104 |
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.