ETH Price: $2,045.34 (+6.29%)
 

Overview

ETH Balance

0.043587433770191051 ETH

Eth Value

$89.15 (@ $2,045.34/ETH)

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer79222882019-06-09 3:15:282458 days ago1560050128IN
0xFA2DbCA7...64CD1b587
0.04358742 ETH0.000021051
Sweep78776832019-06-02 3:17:282465 days ago1559445448IN
0xFA2DbCA7...64CD1b587
0 ETH0.0025028550
Transfer78776632019-06-02 3:14:082465 days ago1559445248IN
0xFA2DbCA7...64CD1b587
0.0905857 ETH0.000021051
Sweep78328472019-05-26 3:16:262472 days ago1558840586IN
0xFA2DbCA7...64CD1b587
0 ETH0.0025028550
Transfer78328232019-05-26 3:11:472472 days ago1558840307IN
0xFA2DbCA7...64CD1b587
0.22488437 ETH0.000021051
Sweep77880672019-05-19 3:15:312479 days ago1558235731IN
0xFA2DbCA7...64CD1b587
0 ETH0.0025028550
Transfer77880492019-05-19 3:12:002479 days ago1558235520IN
0xFA2DbCA7...64CD1b587
0.2501874 ETH0.000021051
Sweep77783352019-05-17 14:39:262481 days ago1558103966IN
0xFA2DbCA7...64CD1b587
0 ETH0.0025028550
Transfer77783122019-05-17 14:34:312481 days ago1558103671IN
0xFA2DbCA7...64CD1b587
0.25063433 ETH0.000021051
Sweep77690382019-05-16 3:43:302482 days ago1557978210IN
0xFA2DbCA7...64CD1b587
0 ETH0.0025028550
Transfer77690182019-05-16 3:39:452482 days ago1557977985IN
0xFA2DbCA7...64CD1b587
0.2503169 ETH0.000021051
Sweep77602152019-05-14 18:59:302484 days ago1557860370IN
0xFA2DbCA7...64CD1b587
0 ETH0.0025028550
Transfer77601992019-05-14 18:57:002484 days ago1557860220IN
0xFA2DbCA7...64CD1b587
0.25022264 ETH0.000021051
Sweep77516342019-05-13 11:02:152485 days ago1557745335IN
0xFA2DbCA7...64CD1b587
0 ETH0.0025028550
Transfer77516132019-05-13 10:58:082485 days ago1557745088IN
0xFA2DbCA7...64CD1b587
0.25091779 ETH0.000021051
Sweep77433292019-05-12 3:49:502486 days ago1557632990IN
0xFA2DbCA7...64CD1b587
0 ETH0.0025028550
Transfer77433092019-05-12 3:46:222486 days ago1557632782IN
0xFA2DbCA7...64CD1b587
0.25033141 ETH0.000021051
Sweep77349442019-05-10 20:33:532488 days ago1557520433IN
0xFA2DbCA7...64CD1b587
0 ETH0.0025028550
Transfer77349292019-05-10 20:29:512488 days ago1557520191IN
0xFA2DbCA7...64CD1b587
0.25009289 ETH0.000021051
Sweep77267912019-05-09 13:57:302489 days ago1557410250IN
0xFA2DbCA7...64CD1b587
0 ETH0.0025028550
Transfer77267732019-05-09 13:55:122489 days ago1557410112IN
0xFA2DbCA7...64CD1b587
0.25005778 ETH0.000021051
Sweep77184662019-05-08 6:39:172490 days ago1557297557IN
0xFA2DbCA7...64CD1b587
0 ETH0.0025028550
Transfer77184512019-05-08 6:34:592490 days ago1557297299IN
0xFA2DbCA7...64CD1b587
0.25055013 ETH0.000021051
Sweep77104252019-05-07 0:14:412491 days ago1557188081IN
0xFA2DbCA7...64CD1b587
0 ETH0.0025028550
Transfer77104072019-05-07 0:09:222491 days ago1557187762IN
0xFA2DbCA7...64CD1b587
0.25059974 ETH0.000021051
View all transactions

Latest 22 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
-78776832019-06-02 3:17:282465 days ago1559445448
0xFA2DbCA7...64CD1b587
0.0905857 ETH
-78328472019-05-26 3:16:262472 days ago1558840586
0xFA2DbCA7...64CD1b587
0.22488437 ETH
-77880672019-05-19 3:15:312479 days ago1558235731
0xFA2DbCA7...64CD1b587
0.2501874 ETH
-77783352019-05-17 14:39:262481 days ago1558103966
0xFA2DbCA7...64CD1b587
0.25063434 ETH
-77690382019-05-16 3:43:302482 days ago1557978210
0xFA2DbCA7...64CD1b587
0.25031691 ETH
-77602152019-05-14 18:59:302484 days ago1557860370
0xFA2DbCA7...64CD1b587
0.25022265 ETH
-77516342019-05-13 11:02:152485 days ago1557745335
0xFA2DbCA7...64CD1b587
0.25091779 ETH
-77433292019-05-12 3:49:502486 days ago1557632990
0xFA2DbCA7...64CD1b587
0.25033142 ETH
-77349442019-05-10 20:33:532488 days ago1557520433
0xFA2DbCA7...64CD1b587
0.2500929 ETH
-77267912019-05-09 13:57:302489 days ago1557410250
0xFA2DbCA7...64CD1b587
0.25005779 ETH
-77184662019-05-08 6:39:172490 days ago1557297557
0xFA2DbCA7...64CD1b587
0.25055014 ETH
-77104252019-05-07 0:14:412491 days ago1557188081
0xFA2DbCA7...64CD1b587
0.25059974 ETH
-77023452019-05-05 17:50:242493 days ago1557078624
0xFA2DbCA7...64CD1b587
0.25072168 ETH
-76942652019-05-04 11:33:282494 days ago1556969608
0xFA2DbCA7...64CD1b587
0.25008994 ETH
-76861172019-05-03 5:09:242495 days ago1556860164
0xFA2DbCA7...64CD1b587
0.25018837 ETH
-76779382019-05-01 22:29:272496 days ago1556749767
0xFA2DbCA7...64CD1b587
0.25054638 ETH
-76703932019-04-30 18:33:382498 days ago1556649218
0xFA2DbCA7...64CD1b587
0.25088036 ETH
-76627702019-04-29 14:05:062499 days ago1556546706
0xFA2DbCA7...64CD1b587
0.25085102 ETH
-76555402019-04-28 11:08:062500 days ago1556449686
0xFA2DbCA7...64CD1b587
0.25011418 ETH
-76480972019-04-27 7:21:312501 days ago1556349691
0xFA2DbCA7...64CD1b587
0.25043109 ETH
-76408212019-04-26 4:22:402502 days ago1556252560
0xFA2DbCA7...64CD1b587
0.25014557 ETH
Transfer50613942018-02-09 22:15:032942 days ago1518214503  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.