Sponsored Link:   Qravity - the only blockchain entertainment production studio and distributor. Learn more.
Contract Overview
Balance: 0.02640622 Ether
Ether Value: $11.96 (@ $452.80/ETH)
Transactions: 8 txns
 Latest 8 txns

TxHash Age From To Value [TxFee]
0x20a27d3da99938589ccabc61c22e1360839af069e92580a129b10fd32fcbd51388 days 20 hrs agoBittrex  IN   0x2e1d0c47a56f98bd035eeedeeee32412ebf073170 Ether0.0024078
0xb0e79f05db64a7f301235aab211a59712ffc46d910ac5277948f71ca64bb0b90276 days 16 hrs agoBittrex  IN   0x2e1d0c47a56f98bd035eeedeeee32412ebf073170.02640622 Ether0.001073601
0x560613ef5f17e7fe8fdb88bf3ba7791c9294445052be99bab9d6c9c9f2875ee1282 days 11 hrs agoBittrex  IN   0x2e1d0c47a56f98bd035eeedeeee32412ebf073170 Ether0.003749475
0x2537393364e7d72faf2fc68e5906032dd09fc94aa40460440278da7a34456484282 days 11 hrs agoGemini_1  IN   0x2e1d0c47a56f98bd035eeedeeee32412ebf073172.16 Ether0.00126306
0xdfae80e83d264c6e6ab26b404c8991423619f07925b4724b6591f0741894501e283 days 20 hrs agoBittrex  IN   0x2e1d0c47a56f98bd035eeedeeee32412ebf073170 Ether0.002549643
0x369b7a8420e20ae3c11857002925bcf525480faa2b4dcbd9aed682cca75f5099283 days 20 hrs agoGemini_1  IN   0x2e1d0c47a56f98bd035eeedeeee32412ebf073172.5 Ether0.000567448158
0xfbf9f9e02b1a506c435b3b8a1bb3da6ec1e0126fb1910529bee3e18159b4398d283 days 21 hrs agoBittrex  IN   0x2e1d0c47a56f98bd035eeedeeee32412ebf073170 Ether0.002549643
0xcd41efb4bdcc783d35caedb3963e94b216a6c7657971419bf328078130c551b8283 days 21 hrs agoGemini_1  IN   0x2e1d0c47a56f98bd035eeedeeee32412ebf073171.8 Ether0.000567448158
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
 Latest 4 Internal Transactions

ParentTxHash Block Age From To Value
0x560613ef5f17e7fe8fdb88bf3ba7791c9294445052be99bab9d6c9c9f2875ee14275929282 days 11 hrs ago0x2e1d0c47a56f98bd035eeedeeee32412ebf073170xfbb1b73c4f0bda4f67dca266ce6ef42f520fbb982.16 Ether
0xdfae80e83d264c6e6ab26b404c8991423619f07925b4724b6591f0741894501e4270924283 days 20 hrs ago0x2e1d0c47a56f98bd035eeedeeee32412ebf073170xfbb1b73c4f0bda4f67dca266ce6ef42f520fbb982.5 Ether
0xfbf9f9e02b1a506c435b3b8a1bb3da6ec1e0126fb1910529bee3e18159b4398d4270782283 days 21 hrs ago0x2e1d0c47a56f98bd035eeedeeee32412ebf073170xfbb1b73c4f0bda4f67dca266ce6ef42f520fbb981.8 Ether
0x66b46c70cf3ec985931e56e5f822a6d56342272b740ade860d542d964034beb64268045284 days 16 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 (Similar match)
Note: Displaying similar matching verified source code at contract 0xd1DD82d1dED8f40c200b89455050E9C18D918504(excluding Constructor Arguments if any)
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.