ETH Price: $2,022.91 (+1.93%)

Contract

0xEe2Bb3bF6844F630f2a1B5280989c79b5b98C7C2
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Sweep58943342018-07-02 20:17:182826 days ago1530562638IN
0xEe2Bb3bF...b5b98C7C2
0 ETH0.004950975
Sweep57023642018-05-30 11:28:482859 days ago1527679728IN
0xEe2Bb3bF...b5b98C7C2
0 ETH0.003300650
Sweep56681672018-05-24 10:18:402865 days ago1527157120IN
0xEe2Bb3bF...b5b98C7C2
0 ETH0.003303850
Sweep56226922018-05-16 8:50:302873 days ago1526460630IN
0xEe2Bb3bF...b5b98C7C2
0 ETH0.003300650
Sweep54654642018-04-19 0:15:442900 days ago1524096944IN
0xEe2Bb3bF...b5b98C7C2
0 ETH0.003300650
Sweep54619112018-04-18 9:42:082901 days ago1524044528IN
0xEe2Bb3bF...b5b98C7C2
0 ETH0.003300650
Sweep53132462018-03-24 12:57:322926 days ago1521896252IN
0xEe2Bb3bF...b5b98C7C2
0 ETH0.003300650
Sweep52916092018-03-20 22:06:232929 days ago1521583583IN
0xEe2Bb3bF...b5b98C7C2
0 ETH0.003300650
Sweep52912112018-03-20 20:31:542929 days ago1521577914IN
0xEe2Bb3bF...b5b98C7C2
0 ETH0.003297450
Sweep52240702018-03-09 11:18:592941 days ago1520594339IN
0xEe2Bb3bF...b5b98C7C2
0 ETH0.003297450
Sweep52228942018-03-09 6:27:172941 days ago1520576837IN
0xEe2Bb3bF...b5b98C7C2
0 ETH0.0025028550
Transfer*52228632018-03-09 6:19:462941 days ago1520576386IN
0xEe2Bb3bF...b5b98C7C2
8.0994 ETH0.0021119100
Sweep51642832018-02-27 8:03:452951 days ago1519718625IN
0xEe2Bb3bF...b5b98C7C2
0 ETH0.0025028550
Transfer*51642322018-02-27 7:51:142951 days ago1519717874IN
0xEe2Bb3bF...b5b98C7C2
0.90589 ETH0.0010981852
Sweep51639142018-02-27 6:34:332951 days ago1519713273IN
0xEe2Bb3bF...b5b98C7C2
0 ETH0.0024996550
Transfer*51638322018-02-27 6:17:382951 days ago1519712258IN
0xEe2Bb3bF...b5b98C7C2
8.34486 ETH0.0021119100
Sweep50526232018-02-08 11:14:142970 days ago1518088454IN
0xEe2Bb3bF...b5b98C7C2
0 ETH0.0044993790
Transfer50525922018-02-08 11:04:442970 days ago1518087884IN
0xEe2Bb3bF...b5b98C7C2
7.981 ETH0.00008424
Sweep50396512018-02-06 6:42:312972 days ago1517899351IN
0xEe2Bb3bF...b5b98C7C2
0 ETH0.0044993790
Transfer50396202018-02-06 6:35:062972 days ago1517898906IN
0xEe2Bb3bF...b5b98C7C2
7.992 ETH0.00008424
Sweep50311332018-02-04 20:21:462974 days ago1517775706IN
0xEe2Bb3bF...b5b98C7C2
0 ETH0.0045108990
Transfer50311002018-02-04 20:13:172974 days ago1517775197IN
0xEe2Bb3bF...b5b98C7C2
68.90295399 ETH0.0018945990
Sweep50172962018-02-02 12:41:492976 days ago1517575309IN
0xEe2Bb3bF...b5b98C7C2
0 ETH0.0045108990
Transfer50172662018-02-02 12:32:412976 days ago1517574761IN
0xEe2Bb3bF...b5b98C7C2
36.46913573 ETH0.0018945990
Sweep49704592018-01-25 14:27:272984 days ago1516890447IN
0xEe2Bb3bF...b5b98C7C2
0 ETH0.0045051390
View all transactions

Latest 16 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer52228942018-03-09 6:27:172941 days ago1520576837
0xEe2Bb3bF...b5b98C7C2
8.0994 ETH
Transfer51642832018-02-27 8:03:452951 days ago1519718625
0xEe2Bb3bF...b5b98C7C2
0.90589 ETH
Transfer51639142018-02-27 6:34:332951 days ago1519713273
0xEe2Bb3bF...b5b98C7C2
8.34486 ETH
Transfer50526232018-02-08 11:14:142970 days ago1518088454
0xEe2Bb3bF...b5b98C7C2
7.981 ETH
Transfer50396512018-02-06 6:42:312972 days ago1517899351
0xEe2Bb3bF...b5b98C7C2
7.992 ETH
Transfer50311332018-02-04 20:21:462974 days ago1517775706
0xEe2Bb3bF...b5b98C7C2
68.90295399 ETH
Transfer50172962018-02-02 12:41:492976 days ago1517575309
0xEe2Bb3bF...b5b98C7C2
36.46913573 ETH
Transfer49704592018-01-25 14:27:272984 days ago1516890447
0xEe2Bb3bF...b5b98C7C2
127.9468 ETH
Transfer48321462017-12-31 21:39:543008 days ago1514756394
0xEe2Bb3bF...b5b98C7C2
103.41222729 ETH
Transfer47707872017-12-21 11:09:323019 days ago1513854572
0xEe2Bb3bF...b5b98C7C2
46.4 ETH
Transfer45883062017-11-20 12:13:373050 days ago1511180017
0xEe2Bb3bF...b5b98C7C2
19.335 ETH
Transfer44791862017-11-02 23:34:103067 days ago1509665650
0xEe2Bb3bF...b5b98C7C2
62.94117316 ETH
Transfer44672582017-11-01 1:00:343069 days ago1509498034
0xEe2Bb3bF...b5b98C7C2
40.3 ETH
Transfer42515322017-09-08 11:43:033123 days ago1504870983
0xEe2Bb3bF...b5b98C7C2
0.09 ETH
Transfer42048242017-08-26 5:32:073136 days ago1503725527
0xEe2Bb3bF...b5b98C7C2
0.69478637 ETH
Transfer42016262017-08-25 7:40:283137 days ago1503646828  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 0xd1DD82d1...18D918504
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.11+commit.68ef5810

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2017-08-15
*/

pragma solidity ^0.4.10;

// Copyright 2017 Bittrex

contract AbstractSweeper {
    function sweep(address token, uint amount) returns (bool);

    function () { throw; }

    Controller controller;

    function AbstractSweeper(address _controller) {
        controller = Controller(_controller);
    }

    modifier canSweep() {
        if (msg.sender != controller.authorizedCaller() && msg.sender != controller.owner()) throw;
        if (controller.halted()) throw;
        _;
    }
}

contract Token {
    function balanceOf(address a) returns (uint) {
        (a);
        return 0;
    }

    function transfer(address a, uint val) returns (bool) {
        (a);
        (val);
        return false;
    }
}

contract DefaultSweeper is AbstractSweeper {
    function DefaultSweeper(address controller)
             AbstractSweeper(controller) {}

    function sweep(address _token, uint _amount)
    canSweep
    returns (bool) {
        bool success = false;
        address destination = controller.destination();

        if (_token != address(0)) {
            Token token = Token(_token);
            uint amount = _amount;
            if (amount > token.balanceOf(this)) {
                return false;
            }

            success = token.transfer(destination, amount);
        }
        else {
            uint amountInWei = _amount;
            if (amountInWei > this.balance) {
                return false;
            }

            success = destination.send(amountInWei);
        }

        if (success) {
            controller.logSweep(this, destination, _token, _amount);
        }
        return success;
    }
}

contract UserWallet {
    AbstractSweeperList sweeperList;
    function UserWallet(address _sweeperlist) {
        sweeperList = AbstractSweeperList(_sweeperlist);
    }

    function () public payable { }

    function tokenFallback(address _from, uint _value, bytes _data) {
        (_from);
        (_value);
        (_data);
     }

    function sweep(address _token, uint _amount)
    returns (bool) {
        (_amount);
        return sweeperList.sweeperOf(_token).delegatecall(msg.data);
    }
}

contract AbstractSweeperList {
    function sweeperOf(address _token) returns (address);
}

contract Controller is AbstractSweeperList {
    address public owner;
    address public authorizedCaller;

    address public destination;

    bool public halted;

    event LogNewWallet(address receiver);
    event LogSweep(address indexed from, address indexed to, address indexed token, uint amount);
    
    modifier onlyOwner() {
        if (msg.sender != owner) throw; 
        _;
    }

    modifier onlyAuthorizedCaller() {
        if (msg.sender != authorizedCaller) throw; 
        _;
    }

    modifier onlyAdmins() {
        if (msg.sender != authorizedCaller && msg.sender != owner) throw; 
        _;
    }

    function Controller() 
    {
        owner = msg.sender;
        destination = msg.sender;
        authorizedCaller = msg.sender;
    }

    function changeAuthorizedCaller(address _newCaller) onlyOwner {
        authorizedCaller = _newCaller;
    }

    function changeDestination(address _dest) onlyOwner {
        destination = _dest;
    }

    function changeOwner(address _owner) onlyOwner {
        owner = _owner;
    }

    function makeWallet() onlyAdmins returns (address wallet)  {
        wallet = address(new UserWallet(this));
        LogNewWallet(wallet);
    }

    function halt() onlyAdmins {
        halted = true;
    }

    function start() onlyOwner {
        halted = false;
    }

    address public defaultSweeper = address(new DefaultSweeper(this));
    mapping (address => address) sweepers;

    function addSweeper(address _token, address _sweeper) onlyOwner {
        sweepers[_token] = _sweeper;
    }

    function sweeperOf(address _token) returns (address) {
        address sweeper = sweepers[_token];
        if (sweeper == 0) sweeper = defaultSweeper;
        return sweeper;
    }

    function logSweep(address from, address to, address token, uint amount) {
        LogSweep(from, to, token, amount);
    }
}

Contract Security Audit

Contract ABI

API
[{"constant":false,"inputs":[{"name":"_token","type":"address"},{"name":"_amount","type":"uint256"}],"name":"sweep","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_value","type":"uint256"},{"name":"_data","type":"bytes"}],"name":"tokenFallback","outputs":[],"payable":false,"type":"function"},{"inputs":[{"name":"_sweeperlist","type":"address"}],"payable":false,"type":"constructor"},{"payable":true,"type":"fallback"}]

0x6060604052341561000c57fe5b60405160208061026c83398101604052515b60008054600160a060020a031916600160a060020a0383161790555b505b6102218061004b6000396000f300606060405236156100495763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636ea056a98114610052578063c0ee0b8a14610092575b6100505b5b565b005b341561005a57fe5b61007e73ffffffffffffffffffffffffffffffffffffffff60043516602435610104565b604080519115158252519081900360200190f35b341561009a57fe5b604080516020600460443581810135601f810184900484028501840190955284845261005094823573ffffffffffffffffffffffffffffffffffffffff169460248035956064949293919092019181908401838280828437509496506101ef95505050505050565b005b6000805460408051602090810184905281517f3c18d31800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff878116600483015292519290931692633c18d318926024808301939282900301818787803b151561017b57fe5b6102c65a03f1151561018957fe5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff1660003660006040516020015260405180838380828437820191505092505050602060405180830381856102c65a03f415156101e057fe5b50506040515190505b92915050565b5b5050505600a165627a7a723058204cdd69fdcf3cf6cbee9677fe380fa5f044048aa9e060ec5619a21ca5a5bd4cd10029000000000000000000000000a3c1e324ca1ce40db73ed6026c4a177f099b5770

Deployed Bytecode

0x606060405236156100495763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636ea056a98114610052578063c0ee0b8a14610092575b6100505b5b565b005b341561005a57fe5b61007e73ffffffffffffffffffffffffffffffffffffffff60043516602435610104565b604080519115158252519081900360200190f35b341561009a57fe5b604080516020600460443581810135601f810184900484028501840190955284845261005094823573ffffffffffffffffffffffffffffffffffffffff169460248035956064949293919092019181908401838280828437509496506101ef95505050505050565b005b6000805460408051602090810184905281517f3c18d31800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff878116600483015292519290931692633c18d318926024808301939282900301818787803b151561017b57fe5b6102c65a03f1151561018957fe5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff1660003660006040516020015260405180838380828437820191505092505050602060405180830381856102c65a03f415156101e057fe5b50506040515190505b92915050565b5b5050505600a165627a7a723058204cdd69fdcf3cf6cbee9677fe380fa5f044048aa9e060ec5619a21ca5a5bd4cd10029

Swarm Source

bzzr://4cdd69fdcf3cf6cbee9677fe380fa5f044048aa9e060ec5619a21ca5a5bd4cd1

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.