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: 8 txns
  Latest 8 txns

TxHash Age From To Value [TxFee]
0x2dc5d147388bbd61b3af170bbb6287a0ec4421bd5c967d5598658784748c1fe961 days 20 hrs agoBittrex  IN   0xe8e344a3915d254a98104a76f1ec47c435340f7b0 Ether0.001549783
0x33194803e54509711f70e8ce2f7791f20d3969cefcd8712efd865bc9d608d10b61 days 20 hrs ago0xf222b89bf57de26d2d0361c14dcd6eb95c9a311d  IN   0xe8e344a3915d254a98104a76f1ec47c435340f7b1 Ether0.000442071
0x91445e8433925dd0c8b10d5afd11fd727da2981570998cdc8c8853e300c4bd9066 days 2 hrs agoBittrex  IN   0xe8e344a3915d254a98104a76f1ec47c435340f7b0 Ether0.001549783
0xf410f4a8cd748c9c023b259876f5b7317d86c8749768b7bec9a8704b8a853aca66 days 2 hrs ago0x369f7e6cb38bd2ad56006f7fb9f9ceb851616c5a  IN   0xe8e344a3915d254a98104a76f1ec47c435340f7b0.6 Ether0.000442071
0x2d27537e7124ab5b0a32f3b5b986a72f8a3d2f5bceab11631191f54f8af1be3f66 days 17 hrs agoBittrex  IN   0xe8e344a3915d254a98104a76f1ec47c435340f7b0 Ether0.001549783
0x9670fd253ff8638bfd7f1c6a8e165c2006ec929e831325d2c05b947a7f08ca7966 days 17 hrs ago0x369f7e6cb38bd2ad56006f7fb9f9ceb851616c5a  IN   0xe8e344a3915d254a98104a76f1ec47c435340f7b0.4 Ether0.000399969
0xdf41796ddc21628a7a1647ddc5a19f09b772bbc2a61e8c8a6f15d5531f27df0766 days 22 hrs agoBittrex  IN   0xe8e344a3915d254a98104a76f1ec47c435340f7b0 Ether0.001549783
0x10837580b474b7d7cab57be32149ffc4242e4f322da74000a7b3de651a199fc366 days 22 hrs ago0x369f7e6cb38bd2ad56006f7fb9f9ceb851616c5a  IN   0xe8e344a3915d254a98104a76f1ec47c435340f7b0.2 Ether0.000399969
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
  Latest 5 Internal Transactions

ParentTxHash Block Age From To Value
0x2dc5d147388bbd61b3af170bbb6287a0ec4421bd5c967d5598658784748c1fe9435716861 days 20 hrs ago0xe8e344a3915d254a98104a76f1ec47c435340f7b0xfbb1b73c4f0bda4f67dca266ce6ef42f520fbb981 Ether
0x91445e8433925dd0c8b10d5afd11fd727da2981570998cdc8c8853e300c4bd90434483966 days 2 hrs ago0xe8e344a3915d254a98104a76f1ec47c435340f7b0xfbb1b73c4f0bda4f67dca266ce6ef42f520fbb980.6 Ether
0x2d27537e7124ab5b0a32f3b5b986a72f8a3d2f5bceab11631191f54f8af1be3f434315466 days 17 hrs ago0xe8e344a3915d254a98104a76f1ec47c435340f7b0xfbb1b73c4f0bda4f67dca266ce6ef42f520fbb980.4 Ether
0xdf41796ddc21628a7a1647ddc5a19f09b772bbc2a61e8c8a6f15d5531f27df07434256666 days 22 hrs ago0xe8e344a3915d254a98104a76f1ec47c435340f7b0xfbb1b73c4f0bda4f67dca266ce6ef42f520fbb980.2 Ether
0xc38b5ca63d189820d902973eb20abb834d8d7b177364062fab01a7a7f32216c4432336773 days 14 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.