ETH Price: $2,052.02 (-1.40%)

Contract

0x062d8A7CFbDF3d898FA8D2BdE47eDEE6Bd4e9b31
 

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
Sweep50394922018-02-06 6:05:242967 days ago1517897124IN
0x062d8A7C...6Bd4e9b31
0 ETH0.0045051390
Transfer50394562018-02-06 5:56:372967 days ago1517896597IN
0x062d8A7C...6Bd4e9b31
0.7977569 ETH0.0008630941
Sweep50224352018-02-03 9:25:272970 days ago1517649927IN
0x062d8A7C...6Bd4e9b31
0 ETH0.0045051390
Transfer50224032018-02-03 9:17:492970 days ago1517649469IN
0x062d8A7C...6Bd4e9b31
0.37341671 ETH0.0008630941
Sweep49227392018-01-17 8:55:312987 days ago1516179331IN
0x062d8A7C...6Bd4e9b31
0 ETH0.0045051390
Transfer49227082018-01-17 8:45:282987 days ago1516178728IN
0x062d8A7C...6Bd4e9b31
0.58665715 ETH0.0008630941
Sweep49167302018-01-16 6:46:302988 days ago1516085190IN
0x062d8A7C...6Bd4e9b31
0 ETH0.0045051390
Transfer49166972018-01-16 6:39:452988 days ago1516084785IN
0x062d8A7C...6Bd4e9b31
0.94068164 ETH0.0008630941
Sweep49030282018-01-13 19:15:222990 days ago1515870922IN
0x062d8A7C...6Bd4e9b31
0 ETH0.0045051390
Transfer49030012018-01-13 19:07:502990 days ago1515870470IN
0x062d8A7C...6Bd4e9b31
0.80810335 ETH0.0008630941
Sweep48357302018-01-01 12:05:383002 days ago1514808338IN
0x062d8A7C...6Bd4e9b31
0 ETH0.002552951
Transfer48357042018-01-01 11:59:313002 days ago1514807971IN
0x062d8A7C...6Bd4e9b31
1.3385677 ETH0.0008420440
Sweep48289292017-12-31 8:34:153004 days ago1514709255IN
0x062d8A7C...6Bd4e9b31
0 ETH0.0025496451
Transfer48289012017-12-31 8:28:283004 days ago1514708908IN
0x062d8A7C...6Bd4e9b31
1.61254945 ETH0.0008420440
Sweep48226102017-12-30 6:51:183005 days ago1514616678IN
0x062d8A7C...6Bd4e9b31
0 ETH0.002552951
Transfer48225532017-12-30 6:37:293005 days ago1514615849IN
0x062d8A7C...6Bd4e9b31
1.35837589 ETH0.0008420440
Sweep48165372017-12-29 5:26:563006 days ago1514525216IN
0x062d8A7C...6Bd4e9b31
0 ETH0.002552951
Transfer48165062017-12-29 5:18:313006 days ago1514524711IN
0x062d8A7C...6Bd4e9b31
1.39471062 ETH0.0008420440
Sweep48117992017-12-28 9:52:523007 days ago1514454772IN
0x062d8A7C...6Bd4e9b31
0 ETH0.002552951
Transfer48117712017-12-28 9:46:043007 days ago1514454364IN
0x062d8A7C...6Bd4e9b31
1.03139513 ETH0.0008420440
Sweep48067392017-12-27 13:26:263007 days ago1514381186IN
0x062d8A7C...6Bd4e9b31
0 ETH0.002552951
Transfer48067082017-12-27 13:19:553007 days ago1514380795IN
0x062d8A7C...6Bd4e9b31
1.50185274 ETH0.0008420440
Sweep48007342017-12-26 13:18:003008 days ago1514294280IN
0x062d8A7C...6Bd4e9b31
0 ETH0.002552951
Transfer48007052017-12-26 13:11:583008 days ago1514293918IN
0x062d8A7C...6Bd4e9b31
1.18542478 ETH0.0008420440
Sweep47824692017-12-23 12:14:403011 days ago1514031280IN
0x062d8A7C...6Bd4e9b31
0 ETH0.002552951
View all transactions

Latest 17 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer50394922018-02-06 6:05:242967 days ago1517897124
0x062d8A7C...6Bd4e9b31
0.79775691 ETH
Transfer50224352018-02-03 9:25:272970 days ago1517649927
0x062d8A7C...6Bd4e9b31
0.37341671 ETH
Transfer49227392018-01-17 8:55:312987 days ago1516179331
0x062d8A7C...6Bd4e9b31
0.58665716 ETH
Transfer49167302018-01-16 6:46:302988 days ago1516085190
0x062d8A7C...6Bd4e9b31
0.94068164 ETH
Transfer49030282018-01-13 19:15:222990 days ago1515870922
0x062d8A7C...6Bd4e9b31
0.80810335 ETH
Transfer48357302018-01-01 12:05:383002 days ago1514808338
0x062d8A7C...6Bd4e9b31
1.3385677 ETH
Transfer48289292017-12-31 8:34:153004 days ago1514709255
0x062d8A7C...6Bd4e9b31
1.61254945 ETH
Transfer48226102017-12-30 6:51:183005 days ago1514616678
0x062d8A7C...6Bd4e9b31
1.35837589 ETH
Transfer48165372017-12-29 5:26:563006 days ago1514525216
0x062d8A7C...6Bd4e9b31
1.39471062 ETH
Transfer48117992017-12-28 9:52:523007 days ago1514454772
0x062d8A7C...6Bd4e9b31
1.03139513 ETH
Transfer48067392017-12-27 13:26:263007 days ago1514381186
0x062d8A7C...6Bd4e9b31
1.50185274 ETH
Transfer48007342017-12-26 13:18:003008 days ago1514294280
0x062d8A7C...6Bd4e9b31
1.18542478 ETH
Transfer47824692017-12-23 12:14:403011 days ago1514031280
0x062d8A7C...6Bd4e9b31
1.64693966 ETH
Transfer47756572017-12-22 8:08:493013 days ago1513930129
0x062d8A7C...6Bd4e9b31
0.88053197 ETH
Transfer47658832017-12-20 14:05:023014 days ago1513778702
0x062d8A7C...6Bd4e9b31
0.58257613 ETH
Transfer47658292017-12-20 13:50:553014 days ago1513777855
0x062d8A7C...6Bd4e9b31
0.15 ETH
Transfer47551312017-12-18 15:46:003016 days ago1513611960  Contract Creation0 ETH
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.