ETH Price: $1,951.45 (-0.04%)
 

Overview

ETH Balance

0.002110856156302124 ETH

Eth Value

$4.12 (@ $1,951.45/ETH)

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer82008642019-07-22 14:00:142415 days ago1563804014IN
0x30Fd916C...932C63096
0.00211085 ETH0.00012636
Sweep68660352018-12-11 9:07:512639 days ago1544519271IN
0x30Fd916C...932C63096
0 ETH0.0025028550
Transfer68660142018-12-11 9:02:522639 days ago1544518972IN
0x30Fd916C...932C63096
2.34116616 ETH0.0010525550
Sweep63109942018-09-11 8:13:542730 days ago1536653634IN
0x30Fd916C...932C63096
0 ETH0.0025028550
Transfer63109762018-09-11 8:09:482730 days ago1536653388IN
0x30Fd916C...932C63096
0.10019403 ETH0.00004212
Sweep62990182018-09-09 8:16:282732 days ago1536480988IN
0x30Fd916C...932C63096
0 ETH0.0025028550
Transfer62990012018-09-09 8:11:512732 days ago1536480711IN
0x30Fd916C...932C63096
0.14307911 ETH0.00004212
Sweep62811672018-09-06 8:05:362735 days ago1536221136IN
0x30Fd916C...932C63096
0 ETH0.0025028550
Transfer62811502018-09-06 8:01:382735 days ago1536220898IN
0x30Fd916C...932C63096
0.13749773 ETH0.00004212
Sweep62632812018-09-03 8:03:302738 days ago1535961810IN
0x30Fd916C...932C63096
0 ETH0.0024996550
Transfer62632652018-09-03 8:00:422738 days ago1535961642IN
0x30Fd916C...932C63096
0.1374581 ETH0.00004212
Sweep62454402018-08-31 7:57:382741 days ago1535702258IN
0x30Fd916C...932C63096
0 ETH0.0025028550
Transfer62454222018-08-31 7:51:582741 days ago1535701918IN
0x30Fd916C...932C63096
0.13513679 ETH0.00004212
Sweep62282842018-08-28 10:26:172744 days ago1535451977IN
0x30Fd916C...932C63096
0 ETH0.0025028550
Transfer62282562018-08-28 10:21:082744 days ago1535451668IN
0x30Fd916C...932C63096
0.09106874 ETH0.00004212
Sweep62158062018-08-26 7:55:312746 days ago1535270131IN
0x30Fd916C...932C63096
0 ETH0.0025028550
Transfer62157722018-08-26 7:47:082746 days ago1535269628IN
0x30Fd916C...932C63096
0.13399025 ETH0.00004212
Sweep61980792018-08-23 7:55:042749 days ago1535010904IN
0x30Fd916C...932C63096
0 ETH0.0025028550
Transfer61980422018-08-23 7:46:542749 days ago1535010414IN
0x30Fd916C...932C63096
0.12762732 ETH0.00004212
Sweep61802542018-08-20 7:53:432752 days ago1534751623IN
0x30Fd916C...932C63096
0 ETH0.0049993100
Transfer61802232018-08-20 7:46:122752 days ago1534751172IN
0x30Fd916C...932C63096
0.13433023 ETH0.00004212
Sweep61625992018-08-17 8:03:572755 days ago1534493037IN
0x30Fd916C...932C63096
0 ETH0.0050057100
Transfer61625782018-08-17 7:58:262755 days ago1534492706IN
0x30Fd916C...932C63096
0.13429393 ETH0.00004212
Sweep61447222018-08-14 7:47:342758 days ago1534232854IN
0x30Fd916C...932C63096
0 ETH0.0050057100
Transfer61446922018-08-14 7:39:102758 days ago1534232350IN
0x30Fd916C...932C63096
0.12883734 ETH0.00004212
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
-68660352018-12-11 9:07:512639 days ago1544519271
0x30Fd916C...932C63096
2.34116616 ETH
Transfer63109942018-09-11 8:13:542730 days ago1536653634
0x30Fd916C...932C63096
0.10019404 ETH
Transfer62990182018-09-09 8:16:282732 days ago1536480988
0x30Fd916C...932C63096
0.14307911 ETH
Transfer62811672018-09-06 8:05:362735 days ago1536221136
0x30Fd916C...932C63096
0.13749774 ETH
Transfer62632812018-09-03 8:03:302738 days ago1535961810
0x30Fd916C...932C63096
0.1374581 ETH
Transfer62454402018-08-31 7:57:382741 days ago1535702258
0x30Fd916C...932C63096
0.13513679 ETH
Transfer62282842018-08-28 10:26:172744 days ago1535451977
0x30Fd916C...932C63096
0.09106875 ETH
Transfer62158062018-08-26 7:55:312746 days ago1535270131
0x30Fd916C...932C63096
0.13399025 ETH
Transfer61980792018-08-23 7:55:042749 days ago1535010904
0x30Fd916C...932C63096
0.12762732 ETH
Transfer61802542018-08-20 7:53:432752 days ago1534751623
0x30Fd916C...932C63096
0.13433024 ETH
Transfer61625992018-08-17 8:03:572755 days ago1534493037
0x30Fd916C...932C63096
0.13429394 ETH
Transfer61447222018-08-14 7:47:342758 days ago1534232854
0x30Fd916C...932C63096
0.12883734 ETH
Transfer61270982018-08-11 7:54:052761 days ago1533974045
0x30Fd916C...932C63096
0.13189615 ETH
Transfer61092432018-08-08 7:38:312764 days ago1533713911
0x30Fd916C...932C63096
0.10365755 ETH
Transfer61042562018-08-07 11:26:172764 days ago1533641177
0x30Fd916C...932C63096
0.20314735 ETH
Transfer60738052018-08-02 7:54:002770 days ago1533196440
0x30Fd916C...932C63096
0.14416603 ETH
Transfer60561452018-07-30 8:12:482773 days ago1532938368
0x30Fd916C...932C63096
0.10113283 ETH
Transfer60452442018-07-28 12:41:492774 days ago1532781709
0x30Fd916C...932C63096
0.05161178 ETH
Transfer60383652018-07-27 8:56:412776 days ago1532681801
0x30Fd916C...932C63096
0.16085055 ETH
Transfer60206482018-07-24 8:32:182779 days ago1532421138
0x30Fd916C...932C63096
0.12139054 ETH
Transfer60089212018-07-22 8:43:002781 days ago1532248980
0x30Fd916C...932C63096
0.11358275 ETH
Transfer59970742018-07-20 8:36:342783 days ago1532075794
0x30Fd916C...932C63096
0.13219658 ETH
Transfer59854662018-07-18 8:43:432785 days ago1531903423
0x30Fd916C...932C63096
0.12559933 ETH
Transfer59738482018-07-16 8:53:362787 days ago1531731216
0x30Fd916C...932C63096
0.13401251 ETH
Transfer59618092018-07-14 8:43:162789 days ago1531557796
0x30Fd916C...932C63096
0.12956365 ETH
View All Internal Transactions
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.