Sponsored Link:  Download the Monaco app for Android and iOS on Aug 31 - www.mona.co
Contract Overview
ETH Balance: 0.000000006 Ether
ETH USD Value: less than $0.01 (@ $263.31/ETH)
No Of Transactions: 10 txns
  Latest 10 txns

TxHash Age From To Value [TxFee]
0x801c4569bf1b36dfd827d2ed4f261cb0fa688cb1e0e5fdd5174c68c070340ff05 days 8 hrs agoBittrex  IN   0x0b839a7688f99f429a8c53a5af88c2b30243c4d50 Ether0.002552907
0x8b8c1577d25bd3977fce75885e404fbf99fc2b1bfae0e9fc1823ffeb6fe5bb1d5 days 8 hrs ago0x4d4886151200ef57a06af7b2e7116ff87a6b0ba7  IN   0x0b839a7688f99f429a8c53a5af88c2b30243c4d51.440497386 Ether0.000442071
0x3b07bc8845ed6058027bd9a2c2f00b142d3ce23084ccc071d73dbc9072eb28469 days 9 hrs agoBittrex  IN   0x0b839a7688f99f429a8c53a5af88c2b30243c4d50 Ether0.002549643
0xea4d2b1cd68ad65ff8173ea5d1d3c96b75c22de92f7da8bfba003548a94800689 days 9 hrs ago0x25a52ad4f8b01ed23081d85596b6f16e33a67d91  IN   0x0b839a7688f99f429a8c53a5af88c2b30243c4d50.9 Ether0.000442071
0xfa769ae9ae24da833693c92f4212478220654fc64d6a97514211bfbd8b37ad0510 days 8 hrs agoBittrex  IN   0x0b839a7688f99f429a8c53a5af88c2b30243c4d50 Ether0.002549643
0xb4bca0aadf156f1c0d7a9b47ef06450323fc8dcaa281264d674780bc7344446810 days 8 hrs agoKraken_4  IN   0x0b839a7688f99f429a8c53a5af88c2b30243c4d50.988 Ether0.00055258875
0x40a0452cca12ea1abf2064878d40eed566662cf2599bab9273ca6669f1a1055c22 days 6 hrs agoBittrex  IN   0x0b839a7688f99f429a8c53a5af88c2b30243c4d50 Ether0.002699622
0xbb5fe936efda24bcbec8c3958afc9c4836680f050065666551bf7fe058e3de4122 days 7 hrs ago0x4d4886151200ef57a06af7b2e7116ff87a6b0ba7  IN   0x0b839a7688f99f429a8c53a5af88c2b30243c4d50.5 Ether0.000442071
0x279a52419eaa057871277942cfdb085dd975e71daba9076dfeff892f8eb0c63923 days 3 hrs agoBittrex  IN   0x0b839a7688f99f429a8c53a5af88c2b30243c4d50 Ether0.001754738127
0x5185b30a146461f44fe24f9bc1a2bff9d1232a40d067dceb41bd7831bf93d23f23 days 3 hrs agoKraken_4  IN   0x0b839a7688f99f429a8c53a5af88c2b30243c4d50.495 Ether0.000516557017
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
  Latest 6 Internal Transactions

ParentTxHash Block Age From To Value
0x801c4569bf1b36dfd827d2ed4f261cb0fa688cb1e0e5fdd5174c68c070340ff042849095 days 8 hrs ago0x0b839a7688f99f429a8c53a5af88c2b30243c4d50xfbb1b73c4f0bda4f67dca266ce6ef42f520fbb981.44049738 Ether
0x3b07bc8845ed6058027bd9a2c2f00b142d3ce23084ccc071d73dbc9072eb284642704029 days 9 hrs ago0x0b839a7688f99f429a8c53a5af88c2b30243c4d50xfbb1b73c4f0bda4f67dca266ce6ef42f520fbb980.9 Ether
0xfa769ae9ae24da833693c92f4212478220654fc64d6a97514211bfbd8b37ad05426697610 days 8 hrs ago0x0b839a7688f99f429a8c53a5af88c2b30243c4d50xfbb1b73c4f0bda4f67dca266ce6ef42f520fbb980.988 Ether
0x40a0452cca12ea1abf2064878d40eed566662cf2599bab9273ca6669f1a1055c422458722 days 6 hrs ago0x0b839a7688f99f429a8c53a5af88c2b30243c4d50xfbb1b73c4f0bda4f67dca266ce6ef42f520fbb980.5 Ether
0x279a52419eaa057871277942cfdb085dd975e71daba9076dfeff892f8eb0c639422157623 days 3 hrs ago0x0b839a7688f99f429a8c53a5af88c2b30243c4d50xfbb1b73c4f0bda4f67dca266ce6ef42f520fbb980.495 Ether
0x4d98f227c56336597cf2ad8e75fde775a793e1167d69b169c27b11bcc60efcf6420811327 days 2 mins ago0xa3c1e324ca1ce40db73ed6026c4a177f099b5770  Contract Creation0 Ether
[ Download CSV Export  ] 
Warning: The compiled contract might be susceptible to DelegateCallReturnValue (low-severity), ECRecoverMalformedInput (medium-severity), SkipEmptyStringLiteral (low-severity) Solidity compiler bugs.

Contract Source Code Verified
Note: Displaying matching verified source code at contract 0xd1dd82d1ded8f40c200b89455050e9c18d918504
Contract Name: UserWallet
Compiler Version: v0.4.11+commit.68ef5810
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts
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 ABI  
[{"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"}]

  Contract Creation Code Switch To Opcodes View
6060604052341561000c57fe5b60405160208061026c83398101604052515b60008054600160a060020a031916600160a060020a0383161790555b505b6102218061004b6000396000f300606060405236156100495763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636ea056a98114610052578063c0ee0b8a14610092575b6100505b5b565b005b341561005a57fe5b61007e73ffffffffffffffffffffffffffffffffffffffff60043516602435610104565b604080519115158252519081900360200190f35b341561009a57fe5b604080516020600460443581810135601f810184900484028501840190955284845261005094823573ffffffffffffffffffffffffffffffffffffffff169460248035956064949293919092019181908401838280828437509496506101ef95505050505050565b005b6000805460408051602090810184905281517f3c18d31800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff878116600483015292519290931692633c18d318926024808301939282900301818787803b151561017b57fe5b6102c65a03f1151561018957fe5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff1660003660006040516020015260405180838380828437820191505092505050602060405180830381856102c65a03f415156101e057fe5b50506040515190505b92915050565b5b5050505600a165627a7a723058204cdd69fdcf3cf6cbee9677fe380fa5f044048aa9e060ec5619a21ca5a5bd4cd10029000000000000000000000000a3c1e324ca1ce40db73ed6026c4a177f099b5770

   Swarm Source:
bzzr://4cdd69fdcf3cf6cbee9677fe380fa5f044048aa9e060ec5619a21ca5a5bd4cd1
View All
Block Age txn Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "downvote" button for any spammy posts, and the "upvote" for interesting conversations.