Sponsored Link:  Download the Monaco app for Android and iOS on Aug 31 - www.mona.co
Contract Overview
ETH Balance: 0 Ether
ETH USD Value: $0
No Of Transactions: 7 txns
  Latest 7 txns

TxHash Age From To Value [TxFee]
0xdf52e922838a3a1a5fb53944745fafe3ddc33cde736b5cae18483852d0167cba8 days 12 hrs agoBittrex  IN   0x75c7e12b4907f2dbb68ec125b3a22666bb2d60b40 Ether0.003045167121
0x027333a43bb9d695e4a4ac02eba7a2a6d643c7a7b6705f3ed9b9f5d4655bfbab8 days 12 hrs ago0x2f09c25884b78b62491e635daad372d987c5343b  IN   0x75c7e12b4907f2dbb68ec125b3a22666bb2d60b40.8 Ether0.001073601
0x35a56fea2dd29049098bb145ce5ee140467ecc747c461a7c868febc34767a95b9 days 11 hrs agoBittrex  IN   0x75c7e12b4907f2dbb68ec125b3a22666bb2d60b40 Ether0.002549643
0x22fd9f84aec8f597c5f28ed22121ce050411890bf0cf47b00e842c70614387529 days 11 hrs agoBittrex  IN   0x75c7e12b4907f2dbb68ec125b3a22666bb2d60b40 Ether0.002549643
0x44c9e619f3772ca69e69b3d90c513703c341ad74756871aea0abc87e6f2f39ad9 days 11 hrs ago0x2f09c25884b78b62491e635daad372d987c5343b  IN   0x75c7e12b4907f2dbb68ec125b3a22666bb2d60b40.09 Ether0.001073601
0x2035547342568b584f5a2b5006225f3b7d84eca12c19b56e554ddcf5daf0518f9 days 11 hrs ago0x2f09c25884b78b62491e635daad372d987c5343b  IN   0x75c7e12b4907f2dbb68ec125b3a22666bb2d60b40.09 Ether0.001073601
0x02bd01e80d568d9233ab400117e8cdee80363fabe444d38219acd45acadda3019 days 11 hrs ago0x2f09c25884b78b62491e635daad372d987c5343b  IN   0x75c7e12b4907f2dbb68ec125b3a22666bb2d60b40.01 Ether0.001073601
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
  Latest 4 Internal Transactions

ParentTxHash Block Age From To Value
0xdf52e922838a3a1a5fb53944745fafe3ddc33cde736b5cae18483852d0167cba42724698 days 12 hrs ago0x75c7e12b4907f2dbb68ec125b3a22666bb2d60b40xfbb1b73c4f0bda4f67dca266ce6ef42f520fbb980.8 Ether
0x35a56fea2dd29049098bb145ce5ee140467ecc747c461a7c868febc34767a95b42690679 days 11 hrs ago0x75c7e12b4907f2dbb68ec125b3a22666bb2d60b40xfbb1b73c4f0bda4f67dca266ce6ef42f520fbb980.09 Ether
0x22fd9f84aec8f597c5f28ed22121ce050411890bf0cf47b00e842c706143875242690619 days 11 hrs ago0x75c7e12b4907f2dbb68ec125b3a22666bb2d60b40xfbb1b73c4f0bda4f67dca266ce6ef42f520fbb980.1 Ether
0xba4a7e7b8145b1d610a58be7162e118f4f2a859bd469246dfa536daf2298245c426418110 days 20 hrs 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.