ETH Price: $2,696.16 (+4.76%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Sweep51612532018-02-26 19:39:562534 days ago1519673996IN
0x98D64Bc1...ffa7cac96
0 ETH0.0025028550
Transfer51612092018-02-26 19:26:172534 days ago1519673177IN
0x98D64Bc1...ffa7cac96
1.19018322 ETH0.0010525550
Sweep51135312018-02-18 16:10:512542 days ago1518970251IN
0x98D64Bc1...ffa7cac96
0 ETH0.0025028550
Transfer51132742018-02-18 15:04:502542 days ago1518966290IN
0x98D64Bc1...ffa7cac96
0.51390401 ETH0.0004420721
Sweep50342962018-02-05 8:55:492556 days ago1517820949IN
0x98D64Bc1...ffa7cac96
0 ETH0.0045051390
Transfer50342642018-02-05 8:48:102556 days ago1517820490IN
0x98D64Bc1...ffa7cac96
0.44195703 ETH0.0002105110
Sweep48483342018-01-03 16:58:202588 days ago1514998700IN
0x98D64Bc1...ffa7cac96
0 ETH0.002552951
Transfer48482932018-01-03 16:46:112588 days ago1514997971IN
0x98D64Bc1...ffa7cac96
0.34853751 ETH0.0010525550
Sweep48426252018-01-02 16:39:412589 days ago1514911181IN
0x98D64Bc1...ffa7cac96
0 ETH0.0025496451
Transfer48425692018-01-02 16:25:202589 days ago1514910320IN
0x98D64Bc1...ffa7cac96
0.498 ETH0.001073651
Sweep48416432018-01-02 12:32:512589 days ago1514896371IN
0x98D64Bc1...ffa7cac96
0 ETH0.002552951
Transfer48416082018-01-02 12:24:192589 days ago1514895859IN
0x98D64Bc1...ffa7cac96
0.40165389 ETH0.0010525550
Sweep48399672018-01-02 5:29:332590 days ago1514870973IN
0x98D64Bc1...ffa7cac96
0 ETH0.002552951
Transfer48399382018-01-02 5:23:002590 days ago1514870580IN
0x98D64Bc1...ffa7cac96
0.14545219 ETH0.0010525550
Sweep48351322018-01-01 9:36:312591 days ago1514799391IN
0x98D64Bc1...ffa7cac96
0 ETH0.0025496451
Transfer48351032018-01-01 9:31:102591 days ago1514799070IN
0x98D64Bc1...ffa7cac96
14.324 ETH0.0008420440
Sweep48288762017-12-31 8:22:252592 days ago1514708545IN
0x98D64Bc1...ffa7cac96
0 ETH0.002552951
Transfer48288472017-12-31 8:14:542592 days ago1514708094IN
0x98D64Bc1...ffa7cac96
1.03774748 ETH0.0004210220
Sweep48214922017-12-30 2:09:442593 days ago1514599784IN
0x98D64Bc1...ffa7cac96
0 ETH0.002552951
Transfer48214472017-12-30 1:57:292593 days ago1514599049IN
0x98D64Bc1...ffa7cac96
2.00050287 ETH0.0010525550
Sweep48206862017-12-29 22:47:302593 days ago1514587650IN
0x98D64Bc1...ffa7cac96
0 ETH0.002552951
Transfer48206612017-12-29 22:40:032593 days ago1514587203IN
0x98D64Bc1...ffa7cac96
0.86085138 ETH0.0010525550
Sweep48167332017-12-29 6:18:142594 days ago1514528294IN
0x98D64Bc1...ffa7cac96
0 ETH0.002552951
Transfer48167012017-12-29 6:11:262594 days ago1514527886IN
0x98D64Bc1...ffa7cac96
1.15331878 ETH0.0010525550
Sweep48105852017-12-28 4:57:262595 days ago1514437046IN
0x98D64Bc1...ffa7cac96
0 ETH0.002552951
View all transactions

Latest 21 internal transactions

Advanced mode:
Parent Transaction Hash Block
From
To
51612532018-02-26 19:39:562534 days ago1519673996
0x98D64Bc1...ffa7cac96
1.19018322 ETH
51135312018-02-18 16:10:512542 days ago1518970251
0x98D64Bc1...ffa7cac96
0.51390401 ETH
50342962018-02-05 8:55:492556 days ago1517820949
0x98D64Bc1...ffa7cac96
0.44195703 ETH
48483342018-01-03 16:58:202588 days ago1514998700
0x98D64Bc1...ffa7cac96
0.34853751 ETH
48426252018-01-02 16:39:412589 days ago1514911181
0x98D64Bc1...ffa7cac96
0.498 ETH
48416432018-01-02 12:32:512589 days ago1514896371
0x98D64Bc1...ffa7cac96
0.40165389 ETH
48399672018-01-02 5:29:332590 days ago1514870973
0x98D64Bc1...ffa7cac96
0.14545219 ETH
48351322018-01-01 9:36:312591 days ago1514799391
0x98D64Bc1...ffa7cac96
14.324 ETH
48288762017-12-31 8:22:252592 days ago1514708545
0x98D64Bc1...ffa7cac96
1.03774748 ETH
48214922017-12-30 2:09:442593 days ago1514599784
0x98D64Bc1...ffa7cac96
2.00050287 ETH
48206862017-12-29 22:47:302593 days ago1514587650
0x98D64Bc1...ffa7cac96
0.86085138 ETH
48167332017-12-29 6:18:142594 days ago1514528294
0x98D64Bc1...ffa7cac96
1.15331878 ETH
48105852017-12-28 4:57:262595 days ago1514437046
0x98D64Bc1...ffa7cac96
0.995 ETH
48004822017-12-26 12:20:492596 days ago1514290849
0x98D64Bc1...ffa7cac96
2.09878974 ETH
47983852017-12-26 3:58:212597 days ago1514260701
0x98D64Bc1...ffa7cac96
1.12869728 ETH
47932162017-12-25 7:29:242598 days ago1514186964
0x98D64Bc1...ffa7cac96
0.455 ETH
47918402017-12-25 1:53:352598 days ago1514166815
0x98D64Bc1...ffa7cac96
1.001 ETH
47754822017-12-22 7:24:132601 days ago1513927453
0x98D64Bc1...ffa7cac96
1.615 ETH
47739542017-12-22 0:46:432601 days ago1513903603
0x98D64Bc1...ffa7cac96
0.195 ETH
46750082017-12-04 16:08:402618 days ago1512403720
0x98D64Bc1...ffa7cac96
0.21168187 ETH
43238562017-09-30 5:44:522684 days ago1506750292  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.