ETH Price: $2,004.11 (+0.22%)
Gas: 0.1 Gwei

Contract

0x4B4fbD4D19aC5cFac5b4E8f3603f99Ff0AAa80A6
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Sweep48815362018-01-09 19:52:543000 days ago1515527574IN
0x4B4fbD4D...f0AAa80A6
0 ETH0.0037542775
Sweep48761492018-01-08 19:56:403001 days ago1515441400IN
0x4B4fbD4D...f0AAa80A6
0 ETH0.002552951
Sweep48590412018-01-05 16:33:523004 days ago1515170032IN
0x4B4fbD4D...f0AAa80A6
0 ETH0.0049993100
Sweep48192172017-12-29 16:29:373011 days ago1514564977IN
0x4B4fbD4D...f0AAa80A6
0 ETH0.0025496451
Sweep48138862017-12-28 18:26:193012 days ago1514485579IN
0x4B4fbD4D...f0AAa80A6
0 ETH0.0025496451
Sweep47607332017-12-19 15:53:243021 days ago1513698804IN
0x4B4fbD4D...f0AAa80A6
0 ETH0.0025496451
Sweep47555432017-12-18 17:37:373022 days ago1513618657IN
0x4B4fbD4D...f0AAa80A6
0 ETH0.0025496451
Sweep47258022017-12-13 13:38:223027 days ago1513172302IN
0x4B4fbD4D...f0AAa80A6
0 ETH0.0025496451
Sweep46990762017-12-08 22:24:083032 days ago1512771848IN
0x4B4fbD4D...f0AAa80A6
0 ETH0.0039894479.8
Sweep46932042017-12-07 22:10:483033 days ago1512684648IN
0x4B4fbD4D...f0AAa80A6
0 ETH0.0041994184
Sweep46756192017-12-04 18:41:113036 days ago1512412871IN
0x4B4fbD4D...f0AAa80A6
0 ETH0.001399828
Sweep46749572017-12-04 15:56:143036 days ago1512402974IN
0x4B4fbD4D...f0AAa80A6
0 ETH0.001399828

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer48815362018-01-09 19:52:543000 days ago1515527574
0x4B4fbD4D...f0AAa80A6
1.483 ETH
Transfer48813182018-01-09 18:58:483000 days ago1515524328
0x4B4fbD4D...f0AAa80A6
1.483 ETH
Transfer48761492018-01-08 19:56:403001 days ago1515441400
0x4B4fbD4D...f0AAa80A6
1.629 ETH
Transfer48761212018-01-08 19:49:383001 days ago1515440978
0x4B4fbD4D...f0AAa80A6
1.629 ETH
Transfer48590412018-01-05 16:33:523004 days ago1515170032
0x4B4fbD4D...f0AAa80A6
1.4784 ETH
Transfer48590122018-01-05 16:25:163004 days ago1515169516
0x4B4fbD4D...f0AAa80A6
1.4784 ETH
Transfer48192172017-12-29 16:29:373011 days ago1514564977
0x4B4fbD4D...f0AAa80A6
3.026 ETH
Transfer48191882017-12-29 16:21:283011 days ago1514564488
0x4B4fbD4D...f0AAa80A6
3.026 ETH
Transfer48138862017-12-28 18:26:193012 days ago1514485579
0x4B4fbD4D...f0AAa80A6
3.71 ETH
Transfer48138552017-12-28 18:19:383012 days ago1514485178
0x4B4fbD4D...f0AAa80A6
3.71 ETH
Transfer47607332017-12-19 15:53:243021 days ago1513698804
0x4B4fbD4D...f0AAa80A6
0.92 ETH
Transfer47606822017-12-19 15:40:443021 days ago1513698044
0x4B4fbD4D...f0AAa80A6
0.92 ETH
Transfer47555432017-12-18 17:37:373022 days ago1513618657
0x4B4fbD4D...f0AAa80A6
0.59 ETH
Transfer47552342017-12-18 16:13:063022 days ago1513613586
0x4B4fbD4D...f0AAa80A6
0.59 ETH
Transfer47258022017-12-13 13:38:223027 days ago1513172302
0x4B4fbD4D...f0AAa80A6
1.69 ETH
Transfer47257682017-12-13 13:27:313027 days ago1513171651
0x4B4fbD4D...f0AAa80A6
1.69 ETH
Transfer46990762017-12-08 22:24:083032 days ago1512771848
0x4B4fbD4D...f0AAa80A6
9 ETH
Transfer46990542017-12-08 22:18:463032 days ago1512771526
0x4B4fbD4D...f0AAa80A6
5 ETH
Transfer46990252017-12-08 22:10:513032 days ago1512771051
0x4B4fbD4D...f0AAa80A6
4 ETH
Transfer46932042017-12-07 22:10:483033 days ago1512684648
0x4B4fbD4D...f0AAa80A6
1 ETH
Transfer46931042017-12-07 21:47:203033 days ago1512683240
0x4B4fbD4D...f0AAa80A6
1 ETH
Transfer46756192017-12-04 18:41:113036 days ago1512412871
0x4B4fbD4D...f0AAa80A6
0.9 ETH
Transfer46755982017-12-04 18:36:123036 days ago1512412572
0x4B4fbD4D...f0AAa80A6
0.9 ETH
Transfer46749572017-12-04 15:56:143036 days ago1512402974
0x4B4fbD4D...f0AAa80A6
0.1 ETH
Transfer46749482017-12-04 15:53:473036 days ago1512402827
0x4B4fbD4D...f0AAa80A6
0.1 ETH
View All Internal Transactions
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0xd1DD82d1...18D918504
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
UserWallet

Compiler Version
v0.4.11+commit.68ef5810

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2017-08-15
*/

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 Security Audit

Contract ABI

API
[{"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"}]

0x6060604052341561000c57fe5b60405160208061026c83398101604052515b60008054600160a060020a031916600160a060020a0383161790555b505b6102218061004b6000396000f300606060405236156100495763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636ea056a98114610052578063c0ee0b8a14610092575b6100505b5b565b005b341561005a57fe5b61007e73ffffffffffffffffffffffffffffffffffffffff60043516602435610104565b604080519115158252519081900360200190f35b341561009a57fe5b604080516020600460443581810135601f810184900484028501840190955284845261005094823573ffffffffffffffffffffffffffffffffffffffff169460248035956064949293919092019181908401838280828437509496506101ef95505050505050565b005b6000805460408051602090810184905281517f3c18d31800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff878116600483015292519290931692633c18d318926024808301939282900301818787803b151561017b57fe5b6102c65a03f1151561018957fe5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff1660003660006040516020015260405180838380828437820191505092505050602060405180830381856102c65a03f415156101e057fe5b50506040515190505b92915050565b5b5050505600a165627a7a723058204cdd69fdcf3cf6cbee9677fe380fa5f044048aa9e060ec5619a21ca5a5bd4cd10029000000000000000000000000a3c1e324ca1ce40db73ed6026c4a177f099b5770

Deployed Bytecode

0x606060405236156100495763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636ea056a98114610052578063c0ee0b8a14610092575b6100505b5b565b005b341561005a57fe5b61007e73ffffffffffffffffffffffffffffffffffffffff60043516602435610104565b604080519115158252519081900360200190f35b341561009a57fe5b604080516020600460443581810135601f810184900484028501840190955284845261005094823573ffffffffffffffffffffffffffffffffffffffff169460248035956064949293919092019181908401838280828437509496506101ef95505050505050565b005b6000805460408051602090810184905281517f3c18d31800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff878116600483015292519290931692633c18d318926024808301939282900301818787803b151561017b57fe5b6102c65a03f1151561018957fe5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff1660003660006040516020015260405180838380828437820191505092505050602060405180830381856102c65a03f415156101e057fe5b50506040515190505b92915050565b5b5050505600a165627a7a723058204cdd69fdcf3cf6cbee9677fe380fa5f044048aa9e060ec5619a21ca5a5bd4cd10029

Swarm Source

bzzr://4cdd69fdcf3cf6cbee9677fe380fa5f044048aa9e060ec5619a21ca5a5bd4cd1

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.