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

TxHash Age From To Value [TxFee]
0xda20f677ee913247a40e20b2297f24683c25483b0c15a29a37c7211ee1cf6d418 days 8 hrs agoBittrex  IN   0x482da4e0dd1c3e53aba82536b0073d09f157e01e0 Ether0.002552907
0x797e7efd618d4b913acafa72b64dbad29c5fa1a30731476ae032d13014fa7e598 days 8 hrs ago0x6be48bfe2747fb0a813ea377e69c8b6a7c4384a4  IN   0x482da4e0dd1c3e53aba82536b0073d09f157e01e0.23327038 Ether0.000472873465
0x745223289fbc605d9ad9f0dafef099904f673210691f3c584893137d9d314a0116 days 18 hrs agoBittrex  IN   0x482da4e0dd1c3e53aba82536b0073d09f157e01e0 Ether0.002549643
0xa52f604bed8fbfc8ad78e56f303417b022b77d0eb3bd026d8e251d833a5ef4ed16 days 18 hrs ago0xbcaffdf2111cea7c850b77d255e2e2ee7cacddf4  IN   0x482da4e0dd1c3e53aba82536b0073d09f157e01e0.25 Ether0.000442071
0x10c150172a0c98f4caf5e8150b8d1afcd74962626073c6a8eb52ec51cdb5f62916 days 19 hrs agoBittrex  IN   0x482da4e0dd1c3e53aba82536b0073d09f157e01e0 Ether0.002549643
0x36276fa8ac600b8544946c5998e1e16a00de643ae8d2763b7ad518c81647460116 days 19 hrs agoCoinhakoSG  IN   0x482da4e0dd1c3e53aba82536b0073d09f157e01e0.3 Ether0.00105255
0x0c406416293f1224ce3c25730938edd4610cf1d04553dfd8bf73e309bc8e937d16 days 19 hrs agoBittrex  IN   0x482da4e0dd1c3e53aba82536b0073d09f157e01e0 Ether0.002549643
0x5e8b71b1bcf00ecefbe4da6404f42c6a95d71ae86aafa5dd43b0b724cc6ce1e116 days 19 hrs agoCoinhakoSG  IN   0x482da4e0dd1c3e53aba82536b0073d09f157e01e0.1 Ether0.00105255
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
  Latest 5 Internal Transactions

ParentTxHash Block Age From To Value
0xda20f677ee913247a40e20b2297f24683c25483b0c15a29a37c7211ee1cf6d4142700418 days 8 hrs ago0x482da4e0dd1c3e53aba82536b0073d09f157e01e0xfbb1b73c4f0bda4f67dca266ce6ef42f520fbb980.23327038 Ether
0x745223289fbc605d9ad9f0dafef099904f673210691f3c584893137d9d314a01424020416 days 18 hrs ago0x482da4e0dd1c3e53aba82536b0073d09f157e01e0xfbb1b73c4f0bda4f67dca266ce6ef42f520fbb980.25 Ether
0x10c150172a0c98f4caf5e8150b8d1afcd74962626073c6a8eb52ec51cdb5f629424006116 days 19 hrs ago0x482da4e0dd1c3e53aba82536b0073d09f157e01e0xfbb1b73c4f0bda4f67dca266ce6ef42f520fbb980.3 Ether
0x0c406416293f1224ce3c25730938edd4610cf1d04553dfd8bf73e309bc8e937d424003616 days 19 hrs ago0x482da4e0dd1c3e53aba82536b0073d09f157e01e0xfbb1b73c4f0bda4f67dca266ce6ef42f520fbb980.1 Ether
0x15cc5d50b9ae51e3533eae1bb6b08b1f36c9aba5022a839c4d746a17e68d342a423872117 days 4 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.