ETH Price: $2,832.02 (-1.45%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Sweep45876812017-11-20 9:45:112632 days ago1511171111IN
0x8EA17a71...aaE6192E5
0 ETH0.0009139620
Sweep44409592017-10-27 19:11:252656 days ago1509131485IN
0x8EA17a71...aaE6192E5
0 ETH0.0009139620
Sweep44403992017-10-27 16:58:342656 days ago1509123514IN
0x8EA17a71...aaE6192E5
0 ETH0.0009139620
Sweep44403132017-10-27 16:37:182656 days ago1509122238IN
0x8EA17a71...aaE6192E5
0 ETH0.0009139620
Sweep44401722017-10-27 16:01:562656 days ago1509120116IN
0x8EA17a71...aaE6192E5
0 ETH0.0009139620
Sweep44401162017-10-27 15:47:402656 days ago1509119260IN
0x8EA17a71...aaE6192E5
0 ETH0.0009139620
Sweep44366452017-10-27 2:29:372656 days ago1509071377IN
0x8EA17a71...aaE6192E5
0 ETH0.0009139620
Sweep44346042017-10-26 18:39:122657 days ago1509043152IN
0x8EA17a71...aaE6192E5
0 ETH0.0009139620
Sweep44345062017-10-26 18:16:492657 days ago1509041809IN
0x8EA17a71...aaE6192E5
0 ETH0.0009139620
Sweep44339082017-10-26 16:04:092657 days ago1509033849IN
0x8EA17a71...aaE6192E5
0 ETH0.0009139620
Sweep44335272017-10-26 14:34:242657 days ago1509028464IN
0x8EA17a71...aaE6192E5
0 ETH0.0009139620
Sweep44334642017-10-26 14:17:532657 days ago1509027473IN
0x8EA17a71...aaE6192E5
0 ETH0.0009139620
Sweep44328012017-10-26 11:39:572657 days ago1509017997IN
0x8EA17a71...aaE6192E5
0 ETH0.0009139620
Sweep44327582017-10-26 11:31:202657 days ago1509017480IN
0x8EA17a71...aaE6192E5
0 ETH0.0009139620
Sweep44324912017-10-26 10:27:122657 days ago1509013632IN
0x8EA17a71...aaE6192E5
0 ETH0.0009139620
Sweep43949622017-10-20 9:59:032663 days ago1508493543IN
0x8EA17a71...aaE6192E5
0 ETH0.0014166331
Sweep43830902017-10-18 12:05:152665 days ago1508328315IN
0x8EA17a71...aaE6192E5
0 ETH0.0014166331
Sweep43799522017-10-18 0:00:252665 days ago1508284825IN
0x8EA17a71...aaE6192E5
0 ETH0.0014166331
Sweep43789172017-10-17 20:04:232666 days ago1508270663IN
0x8EA17a71...aaE6192E5
0 ETH0.0014166331
Sweep43786682017-10-17 19:07:422666 days ago1508267262IN
0x8EA17a71...aaE6192E5
0 ETH0.0014166331
Sweep43786382017-10-17 18:59:092666 days ago1508266749IN
0x8EA17a71...aaE6192E5
0 ETH0.0014166331
Sweep43779352017-10-17 16:13:512666 days ago1508256831IN
0x8EA17a71...aaE6192E5
0 ETH0.0014166331
Sweep43593872017-10-12 13:59:282671 days ago1507816768IN
0x8EA17a71...aaE6192E5
0 ETH0.0014166331
Sweep43514792017-10-09 20:16:522674 days ago1507580212IN
0x8EA17a71...aaE6192E5
0 ETH0.0014166331
Sweep43419732017-10-06 12:58:372677 days ago1507294717IN
0x8EA17a71...aaE6192E5
0 ETH0.0014166331
View all transactions

Latest 1 internal transaction

Advanced mode:
Parent Transaction Hash Block
From
To
42812572017-09-16 19:14:022697 days ago1505589242  Contract Creation0 ETH
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
/**
 *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

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

Deployed Bytecode

0x606060405236156100495763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636ea056a98114610052578063c0ee0b8a14610092575b6100505b5b565b005b341561005a57fe5b61007e73ffffffffffffffffffffffffffffffffffffffff60043516602435610104565b604080519115158252519081900360200190f35b341561009a57fe5b604080516020600460443581810135601f810184900484028501840190955284845261005094823573ffffffffffffffffffffffffffffffffffffffff169460248035956064949293919092019181908401838280828437509496506101ef95505050505050565b005b6000805460408051602090810184905281517f3c18d31800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff878116600483015292519290931692633c18d318926024808301939282900301818787803b151561017b57fe5b6102c65a03f1151561018957fe5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff1660003660006040516020015260405180838380828437820191505092505050602060405180830381856102c65a03f415156101e057fe5b50506040515190505b92915050565b5b5050505600a165627a7a723058204cdd69fdcf3cf6cbee9677fe380fa5f044048aa9e060ec5619a21ca5a5bd4cd10029

Swarm Source

bzzr://4cdd69fdcf3cf6cbee9677fe380fa5f044048aa9e060ec5619a21ca5a5bd4cd1

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
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.