Contract 0xafcad370866cdaca2ba248b1e5d87ac13fac4cce

 

TxHash Block Age From To Value [TxFee]
0x7ccb3908688d2115da476ee9fff62d610326e24820e2c78d25ff1cb536f698f5680722082 days 16 hrs agoBittrex_1 IN  0xafcad370866cdaca2ba248b1e5d87ac13fac4cce0 Ether0.0023389
0x2dabd8a35433d088f5bbb8a4c5d01b42d0710468bd17bdc2afa8550929284ef66656175107 days 11 hrs agoBittrex_1 IN  0xafcad370866cdaca2ba248b1e5d87ac13fac4cce0 Ether0.0023327
0xc71e9ac7bd73e5f34dea18f3ce378917a60eb0516615773183044c8ab613c13c5383937323 days 10 mins agoBittrex_1 IN  0xafcad370866cdaca2ba248b1e5d87ac13fac4cce0 Ether0.00233365
0xcdea7f3049a86d37b3cdb67979baf6aa1eb5e2d60fd5fd2e42a8a8b3aa1a7ef55220779350 days 10 hrs agoBittrex_1 IN  0xafcad370866cdaca2ba248b1e5d87ac13fac4cce0 Ether0.00239255
0x216631c320464bb8cdc662d86158a5b8d4211c1725674c12af19b3b8a7a048f55089457372 days 16 hrs agoBittrex_1 IN  0xafcad370866cdaca2ba248b1e5d87ac13fac4cce0 Ether0.00430083
0x526c0f9c1ce1ee567204c3aa4403e7962cba26fedd228d5dd843e2897d3857f55086473373 days 5 hrs agoBittrex_1 IN  0xafcad370866cdaca2ba248b1e5d87ac13fac4cce0 Ether0.00430659
0xaf91b5dd9c61f615e62b2b2a8dd87f75a8f0061ee5a8343ebc69328ef7a7ee114683242443 days 4 hrs agoBittrex_1 IN  0xafcad370866cdaca2ba248b1e5d87ac13fac4cce0 Ether0.002549643
0x6c58a06dd683a87e262e725c5459b581c54f074147a69c4ea876c3840880cff64683199443 days 4 hrs ago0xf220c96a5e6c8fa8d59ef6cf5d02291bd2f880da IN  0xafcad370866cdaca2ba248b1e5d87ac13fac4cce12.34 Ether0.00063153
0xd411b90d4e21cbc6786fb79e1d0f1ad225cb7bd14d49444e78404f304b4a7b734647128449 days 6 hrs agoBittrex_1 IN  0xafcad370866cdaca2ba248b1e5d87ac13fac4cce0 Ether0.00099986
0x032a7417b5282edae841f6f6b9fe062cfa0d611a1cf3fad565320e79142296414647114449 days 6 hrs ago0xed1ecf0ff3dd65659b8ae64ccf18696c0bb4d61a IN  0xafcad370866cdaca2ba248b1e5d87ac13fac4cce1 Ether0.00042102
0x5618ae865dd4237c4acb8f54ca76dd2776dee9c64b2b8f05453eb313911a22674633844451 days 11 hrs agoBittrex_1 IN  0xafcad370866cdaca2ba248b1e5d87ac13fac4cce0 Ether0.00100114
0x322da9c2e21bf0ce423f49a8feed3d158e4df0df993af75126d3050e8d317f3f4633832451 days 11 hrs ago0x0883e86da86d6a99893d5db5b8d5af2d58be03c1 IN  0xafcad370866cdaca2ba248b1e5d87ac13fac4cce2.025 Ether0.00042102
0xd93e904fe4576432b7c44a9be17bbcbed3354e0d4e9e6c916f0303ef82f32c2b4482972475 days 17 hrs agoBittrex_1 IN  0xafcad370866cdaca2ba248b1e5d87ac13fac4cce0 Ether0.00099986
0x9b69c997be787a05e35893307e413819e474b56e04a7433f12133a33ab0327514482965475 days 18 hrs ago0xeb1a4d1458455e71274331ada95ef315e50256cc IN  0xafcad370866cdaca2ba248b1e5d87ac13fac4cce1.69 Ether0.00042102
[ Download CSV Export 

Latest 5 Internal Transactions Internal Transactions as a result of Contract Execution

[ Download CSV Export 
Warning: The compiled contract might be susceptible to ExpExponentCleanup (medium/high-severity), 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: This contract matches the deployed ByteCode of the Verified Source Code for Contract 0xd1DD82d1dED8f40c200b89455050E9C18D918504
Contract Name: UserWallet
Compiler Version: v0.4.11+commit.68ef5810
Optimization Enabled: Yes
Runs (Optimizer):  200


Contract Source Code
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
6060604052341561000c57fe5b60405160208061026c83398101604052515b60008054600160a060020a031916600160a060020a0383161790555b505b6102218061004b6000396000f300606060405236156100495763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636ea056a98114610052578063c0ee0b8a14610092575b6100505b5b565b005b341561005a57fe5b61007e73ffffffffffffffffffffffffffffffffffffffff60043516602435610104565b604080519115158252519081900360200190f35b341561009a57fe5b604080516020600460443581810135601f810184900484028501840190955284845261005094823573ffffffffffffffffffffffffffffffffffffffff169460248035956064949293919092019181908401838280828437509496506101ef95505050505050565b005b6000805460408051602090810184905281517f3c18d31800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff878116600483015292519290931692633c18d318926024808301939282900301818787803b151561017b57fe5b6102c65a03f1151561018957fe5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff1660003660006040516020015260405180838380828437820191505092505050602060405180830381856102c65a03f415156101e057fe5b50506040515190505b92915050565b5b5050505600a165627a7a723058204cdd69fdcf3cf6cbee9677fe380fa5f044048aa9e060ec5619a21ca5a5bd4cd10029000000000000000000000000a3c1e324ca1ce40db73ed6026c4a177f099b5770


   Swarm Source:
bzzr://4cdd69fdcf3cf6cbee9677fe380fa5f044048aa9e060ec5619a21ca5a5bd4cd1
Block Age transaction Difficulty GasUsed Reward
Block Age Uncle Number Difficulty GasUsed Reward
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.