ETH Price: $2,799.37 (+1.03%)

Contract

0x49D823ff210A89675D21809f29f88FBB4bD0edca
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Sweep53870852018-04-05 20:46:522515 days ago1522961212IN
0x49D823ff...B4bD0edca
0 ETH0.0024996550
Transfer53870672018-04-05 20:42:092515 days ago1522960929IN
0x49D823ff...B4bD0edca
1.2 ETH0.000063153
Transfer53870352018-04-05 20:32:432515 days ago1522960363IN
0x49D823ff...B4bD0edca
1.2 ETH0.0000422
Transfer53870142018-04-05 20:25:582516 days ago1522959958IN
0x49D823ff...B4bD0edca
1.2 ETH0.0000422
Sweep43879942017-10-19 7:02:452684 days ago1508396565IN
0x49D823ff...B4bD0edca
0 ETH0.0015497831
Transfer43879822017-10-19 7:00:322684 days ago1508396432IN
0x49D823ff...B4bD0edca
1 ETH0.0004210220
Sweep43510612017-10-09 16:39:162694 days ago1507567156IN
0x49D823ff...B4bD0edca
0 ETH0.0015517631
Transfer43510562017-10-09 16:36:112694 days ago1507566971IN
0x49D823ff...B4bD0edca
1.40411434 ETH0.0004420721
Sweep42870282017-09-18 9:19:572715 days ago1505726397IN
0x49D823ff...B4bD0edca
0 ETH0.0025496451
Transfer42870162017-09-18 9:16:262715 days ago1505726186IN
0x49D823ff...B4bD0edca
4 ETH0.0005449925.8893328
Sweep42722762017-09-14 7:14:152719 days ago1505373255IN
0x49D823ff...B4bD0edca
0 ETH0.002552951
Transfer42722672017-09-14 7:08:492719 days ago1505372929IN
0x49D823ff...B4bD0edca
2.14096716 ETH0.0004919523.36982863
Sweep42478462017-09-07 11:07:472726 days ago1504782467IN
0x49D823ff...B4bD0edca
0 ETH0.002822156.3778237
Transfer42478372017-09-07 11:04:392726 days ago1504782279IN
0x49D823ff...B4bD0edca
2.14982417 ETH0.000791237.5852158
Sweep42439832017-09-06 8:54:122727 days ago1504688052IN
0x49D823ff...B4bD0edca
0 ETH0.0031142562.21420214
Transfer42439372017-09-06 8:33:252727 days ago1504686805IN
0x49D823ff...B4bD0edca
5.27427597 ETH0.0008731141.47613476
Sweep42343512017-09-03 15:26:142730 days ago1504452374IN
0x49D823ff...B4bD0edca
0 ETH0.0025496451
Transfer42343412017-09-03 15:19:472730 days ago1504451987IN
0x49D823ff...B4bD0edca
1 ETH0.0004420721
Sweep42298372017-09-02 8:34:362731 days ago1504341276IN
0x49D823ff...B4bD0edca
0 ETH0.0019532639.07079882
Transfer42298322017-09-02 8:32:442731 days ago1504341164IN
0x49D823ff...B4bD0edca
1 ETH0.0005483126.04719921
Sweep42201522017-08-30 14:32:122734 days ago1504103532IN
0x49D823ff...B4bD0edca
0 ETH0.0017524935.05480008
Transfer42201432017-08-30 14:30:132734 days ago1504103413IN
0x49D823ff...B4bD0edca
1.16 ETH0.0004919523.36986672

Latest 11 internal transactions

Advanced mode:
Parent Transaction Hash Block
From
To
53870852018-04-05 20:46:522515 days ago1522961212
0x49D823ff...B4bD0edca
1.2 ETH
43879942017-10-19 7:02:452684 days ago1508396565
0x49D823ff...B4bD0edca
1 ETH
43510612017-10-09 16:39:162694 days ago1507567156
0x49D823ff...B4bD0edca
1.40411434 ETH
42870282017-09-18 9:19:572715 days ago1505726397
0x49D823ff...B4bD0edca
4 ETH
42722762017-09-14 7:14:152719 days ago1505373255
0x49D823ff...B4bD0edca
2.14096716 ETH
42478462017-09-07 11:07:472726 days ago1504782467
0x49D823ff...B4bD0edca
2.14982417 ETH
42439832017-09-06 8:54:122727 days ago1504688052
0x49D823ff...B4bD0edca
5.27427597 ETH
42343512017-09-03 15:26:142730 days ago1504452374
0x49D823ff...B4bD0edca
1 ETH
42298372017-09-02 8:34:362731 days ago1504341276
0x49D823ff...B4bD0edca
1 ETH
42201522017-08-30 14:32:122734 days ago1504103532
0x49D823ff...B4bD0edca
1.16 ETH
42196142017-08-30 11:01:392734 days ago1504090899  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.