ETH Price: $2,711.70 (+3.56%)
Gas: 1.15 Gwei

Contract

0xd556ca48f4ED6e96cd0EDD868e43B01C0474E990
 

Overview

ETH Balance

0.000000005672006364 ETH

Eth Value

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

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Sweep43643322017-10-14 6:30:302685 days ago1507962630IN
0xd556ca48...C0474E990
0 ETH0.0017149834.26068259
Transfer43643232017-10-14 6:25:542685 days ago1507962354IN
0xd556ca48...C0474E990
0.10895212 ETH0.000606628.81596385
Sweep43610942017-10-13 3:54:462686 days ago1507866886IN
0xd556ca48...C0474E990
0 ETH0.0015517631
Transfer43610822017-10-13 3:44:102686 days ago1507866250IN
0xd556ca48...C0474E990
0.22710194 ETH0.0005683927.00066957
Sweep43553152017-10-11 3:59:062688 days ago1507694346IN
0xd556ca48...C0474E990
0 ETH0.0015517631
Transfer43553082017-10-11 3:54:132688 days ago1507694053IN
0xd556ca48...C0474E990
0.1572235 ETH0.0005419725.74599976
Sweep43496212017-10-09 4:45:322690 days ago1507524332IN
0xd556ca48...C0474E990
0 ETH0.0018916537.79008799
Transfer43495892017-10-09 4:28:312690 days ago1507523311IN
0xd556ca48...C0474E990
0.15977919 ETH0.0006629331.49173999
Sweep43438012017-10-07 4:11:542692 days ago1507349514IN
0xd556ca48...C0474E990
0 ETH0.0015517631
Transfer43437792017-10-07 4:00:082692 days ago1507348808IN
0xd556ca48...C0474E990
0.1577289 ETH0.0005356525.44562212
Sweep43380142017-10-05 4:07:502694 days ago1507176470IN
0xd556ca48...C0474E990
0 ETH0.0015517631
Transfer43379892017-10-05 3:58:342694 days ago1507175914IN
0xd556ca48...C0474E990
0.16126863 ETH0.0005337225.35391602
Sweep43324722017-10-03 5:55:252696 days ago1507010125IN
0xd556ca48...C0474E990
0 ETH0.0016900733.76297067
Transfer43324622017-10-03 5:50:062696 days ago1507009806IN
0xd556ca48...C0474E990
0.16114254 ETH0.0005922828.13580889
Sweep43265392017-10-01 4:04:432698 days ago1506830683IN
0xd556ca48...C0474E990
0 ETH0.0015517631
Transfer43265312017-10-01 4:00:132698 days ago1506830413IN
0xd556ca48...C0474E990
0.17992504 ETH0.0005354925.43785132
Sweep43209082017-09-29 4:39:002700 days ago1506659940IN
0xd556ca48...C0474E990
0 ETH0.002552951
Transfer43208942017-09-29 4:33:232700 days ago1506659603IN
0xd556ca48...C0474E990
0.12085572 ETH0.0005829127.69043968
Sweep43180642017-09-28 4:20:182701 days ago1506572418IN
0xd556ca48...C0474E990
0 ETH0.002552951
Transfer43180562017-09-28 4:13:242701 days ago1506572004IN
0xd556ca48...C0474E990
0.12264205 ETH0.000594228.2267191
Sweep43151812017-09-27 4:27:222702 days ago1506486442IN
0xd556ca48...C0474E990
0 ETH0.002552951
Transfer43151752017-09-27 4:25:522702 days ago1506486352IN
0xd556ca48...C0474E990
0.12163575 ETH0.0005673526.95138812
Sweep43124292017-09-26 5:36:412703 days ago1506404201IN
0xd556ca48...C0474E990
0 ETH0.002552951
Transfer43124222017-09-26 5:34:092703 days ago1506404049IN
0xd556ca48...C0474E990
0.1188248 ETH0.0005197424.68999174
Sweep43094472017-09-25 4:24:082704 days ago1506313448IN
0xd556ca48...C0474E990
0 ETH0.002552951
View all transactions

Latest 19 internal transactions

Advanced mode:
Parent Transaction Hash Block
From
To
43643322017-10-14 6:30:302685 days ago1507962630
0xd556ca48...C0474E990
0.10895213 ETH
43610942017-10-13 3:54:462686 days ago1507866886
0xd556ca48...C0474E990
0.22710194 ETH
43553152017-10-11 3:59:062688 days ago1507694346
0xd556ca48...C0474E990
0.1572235 ETH
43496212017-10-09 4:45:322690 days ago1507524332
0xd556ca48...C0474E990
0.15977919 ETH
43438012017-10-07 4:11:542692 days ago1507349514
0xd556ca48...C0474E990
0.15772891 ETH
43380142017-10-05 4:07:502694 days ago1507176470
0xd556ca48...C0474E990
0.16126863 ETH
43324722017-10-03 5:55:252696 days ago1507010125
0xd556ca48...C0474E990
0.16114254 ETH
43265392017-10-01 4:04:432698 days ago1506830683
0xd556ca48...C0474E990
0.17992505 ETH
43209082017-09-29 4:39:002700 days ago1506659940
0xd556ca48...C0474E990
0.12085573 ETH
43180642017-09-28 4:20:182701 days ago1506572418
0xd556ca48...C0474E990
0.12264205 ETH
43151812017-09-27 4:27:222702 days ago1506486442
0xd556ca48...C0474E990
0.12163575 ETH
43124292017-09-26 5:36:412703 days ago1506404201
0xd556ca48...C0474E990
0.11882481 ETH
43094472017-09-25 4:24:082704 days ago1506313448
0xd556ca48...C0474E990
0.11600506 ETH
43065332017-09-24 4:40:472705 days ago1506228047
0xd556ca48...C0474E990
0.11688888 ETH
43035872017-09-23 4:09:412706 days ago1506139781
0xd556ca48...C0474E990
0.13850062 ETH
43006102017-09-22 4:05:592707 days ago1506053159
0xd556ca48...C0474E990
0.23438835 ETH
42970482017-09-21 4:02:572708 days ago1505966577
0xd556ca48...C0474E990
0.23254863 ETH
42939822017-09-20 7:31:022709 days ago1505892662
0xd556ca48...C0474E990
0.13011422 ETH
42840352017-09-17 13:28:532712 days ago1505654933  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.