ETH Price: $2,764.09 (+4.72%)

Contract

0xdc948Ebd66d0d0E39Afa196692AAa81120745e40
 

Overview

ETH Balance

0.000000008344034653 ETH

Eth Value

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

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Sweep64563022018-10-05 5:58:092332 days ago1538719089IN
0xdc948Ebd...120745e40
0 ETH0.0023925550
Sweep61853492018-08-21 4:30:042377 days ago1534825804IN
0xdc948Ebd...120745e40
0 ETH0.0025028550
Transfer61853062018-08-21 4:20:222377 days ago1534825222IN
0xdc948Ebd...120745e40
0.37699158 ETH0.0005262725
Sweep60779382018-08-03 0:56:172395 days ago1533257777IN
0xdc948Ebd...120745e40
0 ETH0.0050057100
Transfer60779162018-08-03 0:50:292395 days ago1533257429IN
0xdc948Ebd...120745e40
0.26457955 ETH0.0005262725
Sweep60180952018-07-23 21:49:232405 days ago1532382563IN
0xdc948Ebd...120745e40
0 ETH0.0050057100
Transfer60180642018-07-23 21:40:252405 days ago1532382025IN
0xdc948Ebd...120745e40
0.39824508 ETH0.0005262725
Sweep58428072018-06-23 23:25:052435 days ago1529796305IN
0xdc948Ebd...120745e40
0 ETH0.0025028550
Transfer58427852018-06-23 23:20:032435 days ago1529796003IN
0xdc948Ebd...120745e40
0.2201494 ETH0.0007367835
Sweep58207152018-06-20 4:58:152439 days ago1529470695IN
0xdc948Ebd...120745e40
0 ETH0.0025028550
Transfer58206892018-06-20 4:50:142439 days ago1529470214IN
0xdc948Ebd...120745e40
0.2093795 ETH0.0007367835
Sweep57463572018-06-07 6:47:132452 days ago1528354033IN
0xdc948Ebd...120745e40
0 ETH0.0025028550
Transfer*57463382018-06-07 6:42:482452 days ago1528353768IN
0xdc948Ebd...120745e40
0.24089763 ETH0.0002745413
Sweep57357932018-06-05 9:43:152454 days ago1528191795IN
0xdc948Ebd...120745e40
0 ETH0.0025028550
Transfer57357712018-06-05 9:38:142454 days ago1528191494IN
0xdc948Ebd...120745e40
0.19091481 ETH0.0007367835
Sweep55939942018-05-11 8:13:472479 days ago1526026427IN
0xdc948Ebd...120745e40
0 ETH0.0025028550
Transfer*55938132018-05-11 7:31:512479 days ago1526023911IN
0xdc948Ebd...120745e40
0.56979205 ETH0.000126716
Sweep53652012018-04-02 5:21:272518 days ago1522646487IN
0xdc948Ebd...120745e40
0 ETH0.0024996550
Transfer53651502018-04-02 5:09:552518 days ago1522645795IN
0xdc948Ebd...120745e40
0.78 ETH0.0007367835
Sweep53589592018-04-01 4:30:532519 days ago1522557053IN
0xdc948Ebd...120745e40
0 ETH0.0025028550
Transfer53589192018-04-01 4:20:362519 days ago1522556436IN
0xdc948Ebd...120745e40
0.32044458 ETH0.0007367835
Sweep50368782018-02-05 19:33:062573 days ago1517859186IN
0xdc948Ebd...120745e40
0 ETH0.0045051390
Transfer50368482018-02-05 19:26:252573 days ago1517858785IN
0xdc948Ebd...120745e40
0.15221 ETH0.0004210220
Sweep48542872018-01-04 19:12:042605 days ago1515093124IN
0xdc948Ebd...120745e40
0 ETH0.0025496451
Transfer48542372018-01-04 19:01:002606 days ago1515092460IN
0xdc948Ebd...120745e40
0.2144 ETH0.0006315330
View all transactions

Latest 22 internal transactions

Advanced mode:
Parent Transaction Hash Block
From
To
61853492018-08-21 4:30:042377 days ago1534825804
0xdc948Ebd...120745e40
0.37699158 ETH
60779382018-08-03 0:56:172395 days ago1533257777
0xdc948Ebd...120745e40
0.26457955 ETH
60180952018-07-23 21:49:232405 days ago1532382563
0xdc948Ebd...120745e40
0.39824508 ETH
58428072018-06-23 23:25:052435 days ago1529796305
0xdc948Ebd...120745e40
0.2201494 ETH
58207152018-06-20 4:58:152439 days ago1529470695
0xdc948Ebd...120745e40
0.2093795 ETH
57463572018-06-07 6:47:132452 days ago1528354033
0xdc948Ebd...120745e40
0.24089763 ETH
57357932018-06-05 9:43:152454 days ago1528191795
0xdc948Ebd...120745e40
0.19091481 ETH
55939942018-05-11 8:13:472479 days ago1526026427
0xdc948Ebd...120745e40
0.56979205 ETH
53652012018-04-02 5:21:272518 days ago1522646487
0xdc948Ebd...120745e40
0.78 ETH
53589592018-04-01 4:30:532519 days ago1522557053
0xdc948Ebd...120745e40
0.32044458 ETH
50368782018-02-05 19:33:062573 days ago1517859186
0xdc948Ebd...120745e40
0.15221 ETH
48542872018-01-04 19:12:042605 days ago1515093124
0xdc948Ebd...120745e40
0.2144 ETH
48093632017-12-28 0:09:032613 days ago1514419743
0xdc948Ebd...120745e40
0.18 ETH
47699412017-12-21 7:25:152620 days ago1513841115
0xdc948Ebd...120745e40
0.06 ETH
47580002017-12-19 4:17:362622 days ago1513657056
0xdc948Ebd...120745e40
0.1 ETH
47409872017-12-16 5:41:322625 days ago1513402892
0xdc948Ebd...120745e40
0.05 ETH
47295112017-12-14 5:38:582627 days ago1513229938
0xdc948Ebd...120745e40
0.05227 ETH
47242712017-12-13 7:16:102628 days ago1513149370
0xdc948Ebd...120745e40
0.13282 ETH
47011472017-12-09 7:00:072632 days ago1512802807
0xdc948Ebd...120745e40
0.23 ETH
46846482017-12-06 9:58:292635 days ago1512554309
0xdc948Ebd...120745e40
0.08821 ETH
46842582017-12-06 8:14:542635 days ago1512548094
0xdc948Ebd...120745e40
0.15 ETH
46839892017-12-06 7:05:202635 days ago1512543920  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.