ETH Price: $1,997.88 (+0.31%)

Contract

0x9e009c19C7601C74263efc216c7ace0bCb82f39B
 

Overview

ETH Balance

0.011 ETH

Eth Value

$21.98 (@ $1,997.88/ETH)

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer46500262017-11-30 12:41:013040 days ago1512045661IN
0x9e009c19...bCb82f39B
0.002 ETH0.000021051
Transfer46500232017-11-30 12:40:363040 days ago1512045636IN
0x9e009c19...bCb82f39B
0.005 ETH0.000021051
Transfer46500172017-11-30 12:39:453040 days ago1512045585IN
0x9e009c19...bCb82f39B
0.004 ETH0.000021051
Sweep46499672017-11-30 12:27:123040 days ago1512044832IN
0x9e009c19...bCb82f39B
0 ETH0.0010011420
Transfer46499422017-11-30 12:21:023040 days ago1512044462IN
0x9e009c19...bCb82f39B
0.062 ETH0.00008424
Transfer46496522017-11-30 11:16:463040 days ago1512040606IN
0x9e009c19...bCb82f39B
0.027 ETH0.00008424
Sweep46076132017-11-23 15:14:583047 days ago1511450098IN
0x9e009c19...bCb82f39B
0 ETH0.0010011420
Transfer46076002017-11-23 15:11:363047 days ago1511449896IN
0x9e009c19...bCb82f39B
0.13 ETH0.00008424
Transfer46049872017-11-23 4:57:353047 days ago1511413055IN
0x9e009c19...bCb82f39B
0.033 ETH0.000021051
Sweep45754432017-11-18 10:58:333052 days ago1511002713IN
0x9e009c19...bCb82f39B
0 ETH0.0009985820
Sweep45754362017-11-18 10:57:083052 days ago1511002628IN
0x9e009c19...bCb82f39B
0 ETH0.0009998620
Transfer45754342017-11-18 10:55:493052 days ago1511002549IN
0x9e009c19...bCb82f39B
0.06 ETH0.000021051
Transfer45754312017-11-18 10:55:063052 days ago1511002506IN
0x9e009c19...bCb82f39B
0.053 ETH0.000021051
Sweep45531392017-11-14 20:38:203056 days ago1510691900IN
0x9e009c19...bCb82f39B
0 ETH0.0010011420
Transfer45531272017-11-14 20:35:343056 days ago1510691734IN
0x9e009c19...bCb82f39B
0.033 ETH0.00008424
Transfer45511162017-11-14 12:42:123056 days ago1510663332IN
0x9e009c19...bCb82f39B
0.04 ETH0.00008424
Sweep45510992017-11-14 12:37:043056 days ago1510663024IN
0x9e009c19...bCb82f39B
0 ETH0.0009998620
Transfer45510852017-11-14 12:34:303056 days ago1510662870IN
0x9e009c19...bCb82f39B
0.13 ETH0.00008424
Sweep45195232017-11-09 11:10:163061 days ago1510225816IN
0x9e009c19...bCb82f39B
0 ETH0.0010011420
Transfer45195152017-11-09 11:07:593061 days ago1510225679IN
0x9e009c19...bCb82f39B
0.167 ETH0.00008424
Transfer45193332017-11-09 10:31:163061 days ago1510223476IN
0x9e009c19...bCb82f39B
0.03208682 ETH0.0004420721
Sweep45184922017-11-09 6:59:253061 days ago1510210765IN
0x9e009c19...bCb82f39B
0 ETH0.0010011420
Transfer45184832017-11-09 6:57:083061 days ago1510210628IN
0x9e009c19...bCb82f39B
0.375 ETH0.00008424
Sweep45079532017-11-07 14:35:143063 days ago1510065314IN
0x9e009c19...bCb82f39B
0 ETH0.0009998620
Transfer45079432017-11-07 14:34:053063 days ago1510065245IN
0x9e009c19...bCb82f39B
0.384 ETH0.00008424
View all transactions

Latest 16 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer46499672017-11-30 12:27:123040 days ago1512044832
0x9e009c19...bCb82f39B
0.089 ETH
Transfer46076132017-11-23 15:14:583047 days ago1511450098
0x9e009c19...bCb82f39B
0.163 ETH
Transfer45754432017-11-18 10:58:333052 days ago1511002713
0x9e009c19...bCb82f39B
0.06 ETH
Transfer45754362017-11-18 10:57:083052 days ago1511002628
0x9e009c19...bCb82f39B
0.053 ETH
Transfer45531392017-11-14 20:38:203056 days ago1510691900
0x9e009c19...bCb82f39B
0.073 ETH
Transfer45510992017-11-14 12:37:043056 days ago1510663024
0x9e009c19...bCb82f39B
0.13 ETH
Transfer45195232017-11-09 11:10:163061 days ago1510225816
0x9e009c19...bCb82f39B
0.19908682 ETH
Transfer45184922017-11-09 6:59:253061 days ago1510210765
0x9e009c19...bCb82f39B
0.375 ETH
Transfer45079532017-11-07 14:35:143063 days ago1510065314
0x9e009c19...bCb82f39B
0.384 ETH
Transfer44896292017-11-04 15:55:303066 days ago1509810930
0x9e009c19...bCb82f39B
0.22 ETH
Transfer44205062017-10-24 11:51:203077 days ago1508845880
0x9e009c19...bCb82f39B
0.30163 ETH
Transfer44189282017-10-24 5:52:503077 days ago1508824370
0x9e009c19...bCb82f39B
0.15 ETH
Transfer44189142017-10-24 5:50:513077 days ago1508824251
0x9e009c19...bCb82f39B
0.126 ETH
Transfer43535472017-10-10 13:34:313091 days ago1507642471
0x9e009c19...bCb82f39B
1.8791 ETH
Transfer43535362017-10-10 13:30:293091 days ago1507642229
0x9e009c19...bCb82f39B
0.1 ETH
Transfer42250602017-09-01 0:12:303130 days ago1504224750  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.