ETH Price: $2,147.81 (+8.25%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Sweep79886352019-06-19 12:07:582450 days ago1560946078IN
0xFC4EcEa2...c22752cB5
0 ETH0.0025060550
Transfer79886152019-06-19 12:03:312450 days ago1560945811IN
0xFC4EcEa2...c22752cB5
24.1121037 ETH0.0010525550
Sweep78405982019-05-27 8:22:472473 days ago1558945367IN
0xFC4EcEa2...c22752cB5
0 ETH0.0025028550
Transfer78405762019-05-27 8:19:072473 days ago1558945147IN
0xFC4EcEa2...c22752cB5
9.88621036 ETH0.0010525550
Sweep77450002019-05-12 9:57:492488 days ago1557655069IN
0xFC4EcEa2...c22752cB5
0 ETH0.0025028550
Transfer77449832019-05-12 9:53:462488 days ago1557654826IN
0xFC4EcEa2...c22752cB5
5.01814196 ETH0.0010525550
Sweep75796472019-04-16 15:04:472514 days ago1555427087IN
0xFC4EcEa2...c22752cB5
0 ETH0.0025028550
Transfer75796332019-04-16 15:01:172514 days ago1555426877IN
0xFC4EcEa2...c22752cB5
12.9270295 ETH0.0010525550
Sweep75276772019-04-08 13:19:212522 days ago1554729561IN
0xFC4EcEa2...c22752cB5
0 ETH0.0025028550
Transfer75276652019-04-08 13:17:032522 days ago1554729423IN
0xFC4EcEa2...c22752cB5
12.68447384 ETH0.0010525550
Sweep74889512019-04-02 12:35:032528 days ago1554208503IN
0xFC4EcEa2...c22752cB5
0 ETH0.0025060550
Transfer74889322019-04-02 12:29:542528 days ago1554208194IN
0xFC4EcEa2...c22752cB5
26.53194219 ETH0.0010525550
Sweep74569392019-03-28 12:12:162533 days ago1553775136IN
0xFC4EcEa2...c22752cB5
0 ETH0.0025028550
Transfer74569262019-03-28 12:09:202533 days ago1553774960IN
0xFC4EcEa2...c22752cB5
14.37518565 ETH0.0010525550
Sweep74437742019-03-26 10:40:022535 days ago1553596802IN
0xFC4EcEa2...c22752cB5
0 ETH0.0025060550
Transfer74437542019-03-26 10:36:192535 days ago1553596579IN
0xFC4EcEa2...c22752cB5
31.24085152 ETH0.0010525550
Sweep74381292019-03-25 13:31:232536 days ago1553520683IN
0xFC4EcEa2...c22752cB5
0 ETH0.0025028550
Transfer74381042019-03-25 13:26:472536 days ago1553520407IN
0xFC4EcEa2...c22752cB5
7.27242145 ETH0.0010525550
Sweep73996872019-03-19 14:07:372542 days ago1553004457IN
0xFC4EcEa2...c22752cB5
0 ETH0.0025060550
Transfer73996712019-03-19 14:03:412542 days ago1553004221IN
0xFC4EcEa2...c22752cB5
57.65704966 ETH0.0010525550
Sweep73925762019-03-18 11:19:342543 days ago1552907974IN
0xFC4EcEa2...c22752cB5
0 ETH0.0025060550
Transfer73925512019-03-18 11:14:072543 days ago1552907647IN
0xFC4EcEa2...c22752cB5
28.5227237 ETH0.0010525550
Sweep73673742019-03-14 13:21:352547 days ago1552569695IN
0xFC4EcEa2...c22752cB5
0 ETH0.0025028550
Transfer73673592019-03-14 13:18:372547 days ago1552569517IN
0xFC4EcEa2...c22752cB5
3.76759968 ETH0.0010525550
Sweep73480652019-03-11 13:09:362550 days ago1552309776IN
0xFC4EcEa2...c22752cB5
0 ETH0.0025028550
View all transactions

Latest 16 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
-79886352019-06-19 12:07:582450 days ago1560946078
0xFC4EcEa2...c22752cB5
24.1121037 ETH
-78405982019-05-27 8:22:472473 days ago1558945367
0xFC4EcEa2...c22752cB5
9.88621036 ETH
-77450002019-05-12 9:57:492488 days ago1557655069
0xFC4EcEa2...c22752cB5
5.01814196 ETH
-75796472019-04-16 15:04:472514 days ago1555427087
0xFC4EcEa2...c22752cB5
12.9270295 ETH
-75276772019-04-08 13:19:212522 days ago1554729561
0xFC4EcEa2...c22752cB5
12.68447384 ETH
-74889512019-04-02 12:35:032528 days ago1554208503
0xFC4EcEa2...c22752cB5
26.53194219 ETH
-74569392019-03-28 12:12:162533 days ago1553775136
0xFC4EcEa2...c22752cB5
14.37518565 ETH
-74437742019-03-26 10:40:022535 days ago1553596802
0xFC4EcEa2...c22752cB5
31.24085152 ETH
-74381292019-03-25 13:31:232536 days ago1553520683
0xFC4EcEa2...c22752cB5
7.27242145 ETH
-73996872019-03-19 14:07:372542 days ago1553004457
0xFC4EcEa2...c22752cB5
57.65704966 ETH
-73925762019-03-18 11:19:342543 days ago1552907974
0xFC4EcEa2...c22752cB5
28.5227237 ETH
-73673742019-03-14 13:21:352547 days ago1552569695
0xFC4EcEa2...c22752cB5
3.76759968 ETH
-73480652019-03-11 13:09:362550 days ago1552309776
0xFC4EcEa2...c22752cB5
16.03210578 ETH
-72066212019-02-11 11:59:372578 days ago1549886377
0xFC4EcEa2...c22752cB5
2.93259664 ETH
Transfer63660362018-09-20 10:34:152722 days ago1537439655
0xFC4EcEa2...c22752cB5
1.29429755 ETH
Transfer41903962017-08-22 14:35:113116 days ago1503412511  Contract Creation0 ETH
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.