Sponsored:   Kirik Meta Protocol - New Generation of Blockchain - Join Pre-Sale Aug 15-17
Contract Overview
Balance: 0 Ether
Ether Value: $0
Transactions: 11 txns
 Latest 11 txns

TxHash Age From To Value [TxFee]
0x1c130efbfc14873b3736f8810211ca5a10102bb0c5ac86477407fb74e251b8a15 days 10 hrs agoBittrex_1  IN   0x89e29e7ddd202f95f2213e56122e4177082e3d780 Ether0.0049993
0x0276d1b643cfbe5265bfcf568c8dbaad1bbe5c080f2305204236a4b49744328b5 days 11 hrs agoBinance_3  IN   0x89e29e7ddd202f95f2213e56122e4177082e3d780.59 Ether0.001368315
0x55f70809f1c8569768e91577c6adf3af239295cb94ad8c41255d53395278f59243 days 9 hrs agoBittrex_1  IN   0x89e29e7ddd202f95f2213e56122e4177082e3d780 Ether0.0049993
0xbbfd203adbc3146ac2545d2e8ec692f85d45dea626186316847ad65c09075ab843 days 9 hrs agoBinance_2  IN   0x89e29e7ddd202f95f2213e56122e4177082e3d780.18 Ether0.00168408
0xe282aec0784f5d1e335f698b4bc02800bf09a848b1c9adb6b5b8428287b5b2f452 days 18 hrs agoBittrex_1  IN   0x89e29e7ddd202f95f2213e56122e4177082e3d780 Ether0.00249965
0xf8e2d27a5027878102ebfaea7dedc001f525e13b26aae65c0814bd918b34bfaf52 days 18 hrs agoBinance_2  IN   0x89e29e7ddd202f95f2213e56122e4177082e3d780.156 Ether0.001073601
0xa0a4ea2fcdf62aaf25ef3847ca710998aad3b722fa7e056e36ed6c69c810baac77 days 8 hrs agoBittrex_1  IN   0x89e29e7ddd202f95f2213e56122e4177082e3d780 Ether0.00250285
0xf888a16c540255748307401339433cd0e74e9f50317675ea197431ca5e46739c77 days 8 hrs ago0x0bcc44487079e276e1a175e8266db3691f0b0445  IN   0x89e29e7ddd202f95f2213e56122e4177082e3d780.425 Ether0.000863091
0xe2d86d3211381c2ca7f1ec8b85ed07ad61b6a22d333b74afb3a20cb44015808f77 days 8 hrs ago0x0bcc44487079e276e1a175e8266db3691f0b0445  IN   0x89e29e7ddd202f95f2213e56122e4177082e3d780.43 Ether0.000863091
0xab1b7b28bb43c062653a73d63f1ccf94ad5930aaf30e6930fcc114f3d62846fe92 days 20 hrs agoBittrex_1  IN   0x89e29e7ddd202f95f2213e56122e4177082e3d780 Ether0.00249965
0x9615393494dd39576e1bc98a50e588c21f9d0dae5e1f10ccb6aa0d1a86a4769a92 days 20 hrs ago0x0bcc44487079e276e1a175e8266db3691f0b0445  IN   0x89e29e7ddd202f95f2213e56122e4177082e3d781.3 Ether0.000863091
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
 Latest 6 Internal Transactions

ParentTxHash Block Age From To Value
0x1c130efbfc14873b3736f8810211ca5a10102bb0c5ac86477407fb74e251b8a161382555 days 10 hrs ago0x89e29e7ddd202f95f2213e56122e4177082e3d780xfbb1b73c4f0bda4f67dca266ce6ef42f520fbb980.59 Ether
0x55f70809f1c8569768e91577c6adf3af239295cb94ad8c41255d53395278f592591432043 days 9 hrs ago0x89e29e7ddd202f95f2213e56122e4177082e3d780xfbb1b73c4f0bda4f67dca266ce6ef42f520fbb980.18 Ether
0xe282aec0784f5d1e335f698b4bc02800bf09a848b1c9adb6b5b8428287b5b2f4585965552 days 18 hrs ago0x89e29e7ddd202f95f2213e56122e4177082e3d780xfbb1b73c4f0bda4f67dca266ce6ef42f520fbb980.156 Ether
0xa0a4ea2fcdf62aaf25ef3847ca710998aad3b722fa7e056e36ed6c69c810baac571848577 days 8 hrs ago0x89e29e7ddd202f95f2213e56122e4177082e3d780xfbb1b73c4f0bda4f67dca266ce6ef42f520fbb980.855 Ether
0xab1b7b28bb43c062653a73d63f1ccf94ad5930aaf30e6930fcc114f3d62846fe563092092 days 20 hrs ago0x89e29e7ddd202f95f2213e56122e4177082e3d780xfbb1b73c4f0bda4f67dca266ce6ef42f520fbb981.3 Ether
0xc6f5454632bd6fc518f0a7d8b4efa8ce71e2d206f555a4773da2282fac49b05d5021518196 days 10 hrs ago0xa3c1e324ca1ce40db73ed6026c4a177f099b5770  Contract Creation0 Ether
[ Download CSV Export  ] 
Warning: The compiled contract might be susceptible to NestedArrayFunctionCallDecoder (medium-severity), 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.