ETH Price: $1,966.25 (-4.54%)

Contract

0x9e9F7a78fC97f201d8A7F8238B277b9fF98db770
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Sweep All201735492024-06-26 4:43:35618 days ago1719377015IN
0x9e9F7a78...fF98db770
0 ETH0.000130152.5
Transfer110567812020-10-14 23:16:301968 days ago1602717390IN
0x9e9F7a78...fF98db770
0.03323725 ETH0.000021041
Transfer110404712020-10-12 11:25:171971 days ago1602501917IN
0x9e9F7a78...fF98db770
0.08548736 ETH0.000021041
Transfer109989542020-10-06 0:22:461977 days ago1601943766IN
0x9e9F7a78...fF98db770
0.07025056 ETH0.000021041
Sweep All109652132020-09-30 17:59:181982 days ago1601488758IN
0x9e9F7a78...fF98db770
0 ETH0.0029062361.23423423
Transfer109640432020-09-30 13:32:261983 days ago1601472746IN
0x9e9F7a78...fF98db770
0.15158746 ETH0.000021041
Transfer109013362020-09-20 20:06:111992 days ago1600632371IN
0x9e9F7a78...fF98db770
0.4451693 ETH0.000021041
Transfer107743002020-09-01 8:50:422012 days ago1598950242IN
0x9e9F7a78...fF98db770
0.01432001 ETH0.00932072443
Transfer107695772020-08-31 15:44:442013 days ago1598888684IN
0x9e9F7a78...fF98db770
0.01945345 ETH0.006312300
Transfer107625642020-08-30 13:58:042014 days ago1598795884IN
0x9e9F7a78...fF98db770
0.05047285 ETH0.0044184210
Transfer107427802020-08-27 13:04:462017 days ago1598533486IN
0x9e9F7a78...fF98db770
0.06971244 ETH0.00212924101.2
Transfer107164552020-08-23 12:04:522021 days ago1598184292IN
0x9e9F7a78...fF98db770
0.04547729 ETH0.0017894585.05
Transfer106993692020-08-20 20:53:262023 days ago1597956806IN
0x9e9F7a78...fF98db770
0.04827943 ETH0.0019777694
Transfer106848002020-08-18 15:27:312026 days ago1597764451IN
0x9e9F7a78...fF98db770
0.09405321 ETH0.00324016154
Sweep All106547432020-08-13 23:59:292030 days ago1597363169IN
0x9e9F7a78...fF98db770
0 ETH0.00568655119.81532694
Transfer106528972020-08-13 17:13:572031 days ago1597338837IN
0x9e9F7a78...fF98db770
0.84810379 ETH0.00334536159
Transfer104941592020-07-20 4:03:242055 days ago1595217804IN
0x9e9F7a78...fF98db770
0.08077821 ETH0.0010099248
Transfer104604632020-07-14 22:58:552060 days ago1594767535IN
0x9e9F7a78...fF98db770
0.07927945 ETH0.000420820
Transfer104168762020-07-08 5:06:562067 days ago1594184816IN
0x9e9F7a78...fF98db770
0.07930373 ETH0.0008205639
Transfer103833712020-07-03 0:53:042072 days ago1593737584IN
0x9e9F7a78...fF98db770
0.0794509 ETH0.0005891228
Transfer103549232020-06-28 14:54:502077 days ago1593356090IN
0x9e9F7a78...fF98db770
0.08034186 ETH0.0007784837
Transfer103165452020-06-22 16:04:322083 days ago1592841872IN
0x9e9F7a78...fF98db770
0.08029783 ETH0.0008836842.00000145
Transfer102787162020-06-16 19:24:302088 days ago1592335470IN
0x9e9F7a78...fF98db770
0.07142416 ETH0.0006309829.99
Transfer102509022020-06-12 12:35:552093 days ago1591965355IN
0x9e9F7a78...fF98db770
0.08710533 ETH0.0007776336.96000148
Sweep All102284462020-06-09 0:55:232096 days ago1591664123IN
0x9e9F7a78...fF98db770
0 ETH0.0010974423.12312312
View all transactions

Latest 6 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer201735492024-06-26 4:43:35618 days ago1719377015
0x9e9F7a78...fF98db770
0.18897517 ETH
-109652132020-09-30 17:59:181982 days ago1601488758
0x9e9F7a78...fF98db770
0.93852544 ETH
-106547432020-08-13 23:59:292030 days ago1597363169
0x9e9F7a78...fF98db770
1.48608526 ETH
-102284462020-06-09 0:55:232096 days ago1591664123
0x9e9F7a78...fF98db770
1.51289482 ETH
-94853532020-02-15 4:12:412211 days ago1581739961
0x9e9F7a78...fF98db770
0.49992455 ETH
-92549052020-01-10 19:16:162246 days ago1578683776  Contract Creation0 ETH
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

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

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

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

Contract ABI

API
[{"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"}]

0x608060405234801561001057600080fd5b5060405160208061026e833981016040525160008054600160a060020a03909216600160a060020a031990921691909117905561021c806100526000396000f30060806040526004361061004b5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663c0ee0b8a811461004d578063c18cfe86146100c3575b005b34801561005957600080fd5b50604080516020600460443581810135601f810184900484028501840190955284845261004b94823573ffffffffffffffffffffffffffffffffffffffff169460248035953695946064949201919081908401838280828437509497506101059650505050505050565b3480156100cf57600080fd5b506100f173ffffffffffffffffffffffffffffffffffffffff6004351661010a565b604080519115158252519081900360200190f35b505050565b60008054604080517f3c18d31800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff858116600483015291519190921691633c18d31891602480830192602092919082900301818787803b15801561017f57600080fd5b505af1158015610193573d6000803e3d6000fd5b505050506040513d60208110156101a957600080fd5b505160405173ffffffffffffffffffffffffffffffffffffffff90911690600090369080838380828437820191505092505050600060405180830381855af49493505050505600a165627a7a72305820ec90d4e55fb69f839fa555767145d6ac7a8f1aa98ed098b09c220c4a34f02ba100290000000000000000000000007142eb34d2220152dedc5868745079bc6ffa0fdd

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

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
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.