ETH Price: $2,721.56 (+0.83%)

Contract

0x9c104AB2dA69388DCc183E3F2C66bB98f081845D
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Sweep48329322018-01-01 0:59:052602 days ago1514768345IN
0x9c104AB2...8f081845D
0 ETH0.002552951
Transfer48329012018-01-01 0:53:332602 days ago1514768013IN
0x9c104AB2...8f081845D
0.66876302 ETH0.0004210220
Sweep48142522017-12-28 19:59:532605 days ago1514491193IN
0x9c104AB2...8f081845D
0 ETH0.002552951
Transfer48142112017-12-28 19:51:222605 days ago1514490682IN
0x9c104AB2...8f081845D
0.61706702 ETH0.0004210220
Sweep47679562017-12-20 23:00:082613 days ago1513810808IN
0x9c104AB2...8f081845D
0 ETH0.0028031956
Transfer47676092017-12-20 21:34:222613 days ago1513805662IN
0x9c104AB2...8f081845D
1.243 ETH0.0008420440
Sweep46980662017-12-08 18:15:572625 days ago1512756957IN
0x9c104AB2...8f081845D
0 ETH0.0039945479.8
Transfer46980302017-12-08 18:07:052625 days ago1512756425IN
0x9c104AB2...8f081845D
0.44326789 ETH0.001199957
Sweep46504612017-11-30 14:20:372633 days ago1512051637IN
0x9c104AB2...8f081845D
0 ETH0.0010011420
Transfer46504362017-11-30 14:15:372633 days ago1512051337IN
0x9c104AB2...8f081845D
0.07995678 ETH0.0004210220
Sweep44778882017-11-02 18:28:222661 days ago1509647302IN
0x9c104AB2...8f081845D
0 ETH0.0010011420
Transfer44778832017-11-02 18:27:092661 days ago1509647229IN
0x9c104AB2...8f081845D
1.826611 ETH0.0004210220
Sweep42250082017-08-31 23:50:332724 days ago1504223433IN
0x9c104AB2...8f081845D
0 ETH0.0022525645
Transfer42249982017-08-31 23:45:082724 days ago1504223108IN
0x9c104AB2...8f081845D
0.21861668 ETH0.0006315330
Sweep42206592017-08-30 17:57:452725 days ago1504115865IN
0x9c104AB2...8f081845D
0 ETH0.0017547335.05480008
Transfer42206512017-08-30 17:54:212725 days ago1504115661IN
0x9c104AB2...8f081845D
0.32239251 ETH0.0004919523.36986672
Sweep42176722017-08-29 21:39:012726 days ago1504042741IN
0x9c104AB2...8f081845D
0 ETH0.0016518833.000002
Transfer42176512017-08-29 21:32:272726 days ago1504042347IN
0x9c104AB2...8f081845D
0.17935248 ETH0.0006420530.5
Sweep42047552017-08-26 5:00:282730 days ago1503723628IN
0x9c104AB2...8f081845D
0 ETH0.0021315542.58261654
Transfer42047442017-08-26 4:56:532730 days ago1503723413IN
0x9c104AB2...8f081845D
0.34565522 ETH0.0005349125.41063261
Sweep42045262017-08-26 3:25:042730 days ago1503717904IN
0x9c104AB2...8f081845D
0 ETH0.0015767931.5
Transfer42045192017-08-26 3:22:452730 days ago1503717765IN
0x9c104AB2...8f081845D
0.39867 ETH0.0004420721
Sweep42037302017-08-25 22:00:572730 days ago1503698457IN
0x9c104AB2...8f081845D
0 ETH0.0015767931.5
Transfer42037252017-08-25 21:59:202730 days ago1503698360IN
0x9c104AB2...8f081845D
0.71345789 ETH0.0004420721
Sweep41915372017-08-22 20:56:202733 days ago1503435380IN
0x9c104AB2...8f081845D
0 ETH0.0015017130
View all transactions

Latest 15 internal transactions

Advanced mode:
Parent Transaction Hash Block
From
To
48329322018-01-01 0:59:052602 days ago1514768345
0x9c104AB2...8f081845D
0.66876302 ETH
48142522017-12-28 19:59:532605 days ago1514491193
0x9c104AB2...8f081845D
0.61706702 ETH
47679562017-12-20 23:00:082613 days ago1513810808
0x9c104AB2...8f081845D
1.243 ETH
46980662017-12-08 18:15:572625 days ago1512756957
0x9c104AB2...8f081845D
0.44326789 ETH
46504612017-11-30 14:20:372633 days ago1512051637
0x9c104AB2...8f081845D
0.07995678 ETH
44778882017-11-02 18:28:222661 days ago1509647302
0x9c104AB2...8f081845D
1.826611 ETH
42250082017-08-31 23:50:332724 days ago1504223433
0x9c104AB2...8f081845D
0.21861668 ETH
42206592017-08-30 17:57:452725 days ago1504115865
0x9c104AB2...8f081845D
0.32239251 ETH
42176722017-08-29 21:39:012726 days ago1504042741
0x9c104AB2...8f081845D
0.17935248 ETH
42047552017-08-26 5:00:282730 days ago1503723628
0x9c104AB2...8f081845D
0.34565522 ETH
42045262017-08-26 3:25:042730 days ago1503717904
0x9c104AB2...8f081845D
0.39867 ETH
42037302017-08-25 22:00:572730 days ago1503698457
0x9c104AB2...8f081845D
0.71345789 ETH
41915372017-08-22 20:56:202733 days ago1503435380
0x9c104AB2...8f081845D
0.96083016 ETH
41913622017-08-22 19:59:552733 days ago1503431995
0x9c104AB2...8f081845D
0.1596526 ETH
41775012017-08-19 12:29:202736 days ago1503145760  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.