ETH Price: $2,120.64 (-2.02%)

Contract

0x9D04d2a3030f85d83EB7b72aAd7A05D923C19142
 

Overview

ETH Balance

0.000000008517144796 ETH

Eth Value

Less Than $0.01 (@ $2,120.64/ETH)

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Sweep49274892018-01-18 5:32:072989 days ago1516253527IN
0x9D04d2a3...923C19142
0 ETH0.0045051390
Transfer49274542018-01-18 5:23:362989 days ago1516253016IN
0x9D04d2a3...923C19142
1.51673012 ETH0.0013683165
Transfer46647752017-12-02 22:38:263035 days ago1512254306IN
0x9D04d2a3...923C19142
0.04520285 ETH0.000021051
Sweep46189392017-11-25 10:54:433042 days ago1511607283IN
0x9D04d2a3...923C19142
0 ETH0.0009998620
Transfer46189352017-11-25 10:53:253042 days ago1511607205IN
0x9D04d2a3...923C19142
0.05013483 ETH0.000021051
Sweep46052502017-11-23 5:58:513045 days ago1511416731IN
0x9D04d2a3...923C19142
0 ETH0.0009998620
Transfer46052292017-11-23 5:55:153045 days ago1511416515IN
0x9D04d2a3...923C19142
0.05005356 ETH0.000021051
Sweep45918422017-11-21 2:09:533047 days ago1511230193IN
0x9D04d2a3...923C19142
0 ETH0.0009985820
Transfer45918292017-11-21 2:07:243047 days ago1511230044IN
0x9D04d2a3...923C19142
0.05010289 ETH0.000021051
Sweep45786042017-11-18 23:04:033049 days ago1511046243IN
0x9D04d2a3...923C19142
0 ETH0.0009998620
Transfer45785872017-11-18 23:01:163049 days ago1511046076IN
0x9D04d2a3...923C19142
0.05009321 ETH0.000021051
Sweep45661042017-11-16 22:58:113051 days ago1510873091IN
0x9D04d2a3...923C19142
0 ETH0.0009998620
Transfer45660962017-11-16 22:55:393051 days ago1510872939IN
0x9D04d2a3...923C19142
0.05002502 ETH0.000021051
Sweep45531372017-11-14 20:37:553053 days ago1510691875IN
0x9D04d2a3...923C19142
0 ETH0.0010011420
Transfer45531252017-11-14 20:34:593053 days ago1510691699IN
0x9D04d2a3...923C19142
0.05004004 ETH0.000021051
Transfer45398982017-11-12 17:16:343055 days ago1510506994IN
0x9D04d2a3...923C19142
0.04900781 ETH0.0004210220
Sweep43093832017-09-25 3:57:193104 days ago1506311839IN
0x9D04d2a3...923C19142
0 ETH0.002552951
Transfer43093742017-09-25 3:54:153104 days ago1506311655IN
0x9D04d2a3...923C19142
0.04903047 ETH0.0004420721
Transfer43056622017-09-23 21:18:503105 days ago1506201530IN
0x9D04d2a3...923C19142
0.04904165 ETH0.0004420721
Sweep43016202017-09-22 12:12:533106 days ago1506082373IN
0x9D04d2a3...923C19142
0 ETH0.002552951
Transfer43016062017-09-22 12:03:403106 days ago1506081820IN
0x9D04d2a3...923C19142
0.04920079 ETH0.0004420721
Transfer42975512017-09-21 7:20:093108 days ago1505978409IN
0x9D04d2a3...923C19142
0.04934543 ETH0.0004420721
Sweep42936662017-09-20 5:31:523109 days ago1505885512IN
0x9D04d2a3...923C19142
0 ETH0.0037542775
Transfer42936602017-09-20 5:26:303109 days ago1505885190IN
0x9D04d2a3...923C19142
0.04914525 ETH0.0010525550
Transfer42897122017-09-19 3:28:003110 days ago1505791680IN
0x9D04d2a3...923C19142
0.04920472 ETH0.0004420721
View all transactions

Latest 21 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer49274892018-01-18 5:32:072989 days ago1516253527
0x9D04d2a3...923C19142
1.56193297 ETH
Transfer46189392017-11-25 10:54:433042 days ago1511607283
0x9D04d2a3...923C19142
0.05013484 ETH
Transfer46052502017-11-23 5:58:513045 days ago1511416731
0x9D04d2a3...923C19142
0.05005356 ETH
Transfer45918422017-11-21 2:09:533047 days ago1511230193
0x9D04d2a3...923C19142
0.0501029 ETH
Transfer45786042017-11-18 23:04:033049 days ago1511046243
0x9D04d2a3...923C19142
0.05009322 ETH
Transfer45661042017-11-16 22:58:113051 days ago1510873091
0x9D04d2a3...923C19142
0.05002502 ETH
Transfer45531372017-11-14 20:37:553053 days ago1510691875
0x9D04d2a3...923C19142
0.09904786 ETH
Transfer43093832017-09-25 3:57:193104 days ago1506311839
0x9D04d2a3...923C19142
0.09807213 ETH
Transfer43016202017-09-22 12:12:533106 days ago1506082373
0x9D04d2a3...923C19142
0.09854623 ETH
Transfer42936662017-09-20 5:31:523109 days ago1505885512
0x9D04d2a3...923C19142
0.09834997 ETH
Transfer42859002017-09-18 1:38:333111 days ago1505698713
0x9D04d2a3...923C19142
0.09813438 ETH
Transfer42782942017-09-15 23:13:163113 days ago1505517196
0x9D04d2a3...923C19142
0.09808049 ETH
Transfer42708792017-09-13 21:53:493115 days ago1505339629
0x9D04d2a3...923C19142
0.09842165 ETH
Transfer42619262017-09-11 10:00:083117 days ago1505124008
0x9D04d2a3...923C19142
0.09813361 ETH
Transfer42538572017-09-09 3:11:583120 days ago1504926718
0x9D04d2a3...923C19142
0.09836039 ETH
Transfer42467052017-09-07 3:16:173122 days ago1504754177
0x9D04d2a3...923C19142
0.09867655 ETH
Transfer42392362017-09-05 0:31:553124 days ago1504571515
0x9D04d2a3...923C19142
0.09827597 ETH
Transfer42322102017-09-03 0:38:223126 days ago1504399102
0x9D04d2a3...923C19142
0.0982546 ETH
Transfer42241552017-08-31 17:59:103128 days ago1504202350
0x9D04d2a3...923C19142
0.09840894 ETH
Transfer42170742017-08-29 17:23:303130 days ago1504027410
0x9D04d2a3...923C19142
0.09876936 ETH
Transfer42043542017-08-26 2:17:103134 days ago1503713830  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.