Sponsored Link:   Buy your 1st Ethereum in 5 minutes. Trusted by more than 100k buyers.
Contract Overview
ETH Balance: 0 Ether
ETH USD Value: $0
No Of Transactions: 6 txns
  Latest 6 txns

TxHash Age From To Value [TxFee]
0xcf933d0e25b0e4ef205de3fa50778d6942cc8bc525920c88e448c5a4d0b192ba65 days 18 hrs agoBittrex  IN   0x05a9f4d78d25d995df98f77216821c25bae642bc0 Ether0.002552907
0xa673987ebd1cdf9a8650287759a4059af9f83e362b0b5106074ba30a9e93bad765 days 18 hrs ago0xb25333f519ff49f3b6fc9dd31540d885d692ef2c  IN   0x05a9f4d78d25d995df98f77216821c25bae642bc0.143 Ether0.000442071
0x6d28fd7cfe97d50e5c71ef3cf5b662209814a08f27f200ef320a56f75c7a1fef67 days 21 hrs agoBittrex  IN   0x05a9f4d78d25d995df98f77216821c25bae642bc0 Ether0.002552907
0xa14ada2a251579093c389b855968d2271783efd2c1d562e7b87c4985aabe3e7267 days 21 hrs ago0x71ae112846685d5af713288b82fe0d16fdf0f72e  IN   0x05a9f4d78d25d995df98f77216821c25bae642bc0.20838056 Ether0.000472873465
0x40bf68d184089438ee5d0197f529a07cc23ff06d1ab9a6a161c1c632c83b9a0767 days 23 hrs agoBittrex  IN   0x05a9f4d78d25d995df98f77216821c25bae642bc0 Ether0.002552907
0x97a58489c5534c3dc8f6bc1834acfd2b2824031dce9a39949e2f5a1219b9288c67 days 23 hrs ago0x3ff880627a152492dc4911d13804133cb7a7c901  IN   0x05a9f4d78d25d995df98f77216821c25bae642bc0.21256906 Ether0.000472873465
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
  Latest 4 Internal Transactions

ParentTxHash Block Age From To Value
0xcf933d0e25b0e4ef205de3fa50778d6942cc8bc525920c88e448c5a4d0b192ba427799365 days 18 hrs ago0x05a9f4d78d25d995df98f77216821c25bae642bc0xfbb1b73c4f0bda4f67dca266ce6ef42f520fbb980.143 Ether
0x6d28fd7cfe97d50e5c71ef3cf5b662209814a08f27f200ef320a56f75c7a1fef427037167 days 21 hrs ago0x05a9f4d78d25d995df98f77216821c25bae642bc0xfbb1b73c4f0bda4f67dca266ce6ef42f520fbb980.20838056 Ether
0x40bf68d184089438ee5d0197f529a07cc23ff06d1ab9a6a161c1c632c83b9a07427005967 days 23 hrs ago0x05a9f4d78d25d995df98f77216821c25bae642bc0xfbb1b73c4f0bda4f67dca266ce6ef42f520fbb980.21256906 Ether
0x86a42218b1694effa9218c2c4e31b44bee68e028c07502076c59f50507c9b642426708068 days 19 hrs ago0xa3c1e324ca1ce40db73ed6026c4a177f099b5770  Contract Creation0 Ether
[ Download CSV Export  ] 
Warning: The compiled contract might be susceptible to ZeroFunctionSelector (very low-severity), 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.