ETH Price: $2,151.93 (+0.17%)
Gas: 0.04 Gwei

Contract

0x403E80c6ee1B2DedB6EFb923672012F3497DfBcd
 

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
Sweep47452692017-12-16 23:17:193016 days ago1513466239IN
0x403E80c6...3497DfBcd
0 ETH0.0025561751
Transfer47452302017-12-16 23:08:233016 days ago1513465703IN
0x403E80c6...3497DfBcd
30.17618852 ETH0.0005262725
Sweep47448182017-12-16 21:27:303016 days ago1513459650IN
0x403E80c6...3497DfBcd
0 ETH0.002552951
Transfer47447992017-12-16 21:22:483016 days ago1513459368IN
0x403E80c6...3497DfBcd
9.49393983 ETH0.0005262725
Transfer47447732017-12-16 21:16:283016 days ago1513458988IN
0x403E80c6...3497DfBcd
4.99718289 ETH0.0005262725
Sweep47410872017-12-16 6:05:543016 days ago1513404354IN
0x403E80c6...3497DfBcd
0 ETH0.0028031956
Transfer47410572017-12-16 5:55:193016 days ago1513403719IN
0x403E80c6...3497DfBcd
12.74444509 ETH0.0008420440
Sweep47343182017-12-15 1:49:593018 days ago1513302599IN
0x403E80c6...3497DfBcd
0 ETH0.0033751567.340098
Transfer47343122017-12-15 1:48:293018 days ago1513302509IN
0x403E80c6...3497DfBcd
10.93461964 ETH0.0010125548.10007
Transfer47342842017-12-15 1:41:033018 days ago1513302063IN
0x403E80c6...3497DfBcd
9.94859385 ETH0.0010125548.10007
Sweep47341762017-12-15 1:14:523018 days ago1513300492IN
0x403E80c6...3497DfBcd
0 ETH0.0033708467.340098
Transfer47341372017-12-15 1:04:513018 days ago1513299891IN
0x403E80c6...3497DfBcd
20.704 ETH0.0010125548.10007
Sweep47340072017-12-15 0:32:463018 days ago1513297966IN
0x403E80c6...3497DfBcd
0 ETH0.0033708467.340098
Transfer47339562017-12-15 0:19:243018 days ago1513297164IN
0x403E80c6...3497DfBcd
20 ETH0.0010125548.10007
Sweep47339112017-12-15 0:09:283018 days ago1513296568IN
0x403E80c6...3497DfBcd
0 ETH0.0033708467.340098
Transfer47338652017-12-14 23:55:093018 days ago1513295709IN
0x403E80c6...3497DfBcd
20 ETH0.0010125548.10007
Sweep47337322017-12-14 23:20:403018 days ago1513293640IN
0x403E80c6...3497DfBcd
0 ETH0.0033708467.340098
Transfer47336802017-12-14 23:07:173018 days ago1513292837IN
0x403E80c6...3497DfBcd
20 ETH0.0010125548.10007
Sweep47335382017-12-14 22:33:123018 days ago1513290792IN
0x403E80c6...3497DfBcd
0 ETH0.0033751567.340098
Transfer47334902017-12-14 22:19:093018 days ago1513289949IN
0x403E80c6...3497DfBcd
29.05783739 ETH0.0010125548.10007
Sweep47332742017-12-14 21:30:083018 days ago1513287008IN
0x403E80c6...3497DfBcd
0 ETH0.0033751567.340098
Transfer47331032017-12-14 20:49:203018 days ago1513284560IN
0x403E80c6...3497DfBcd
30.89601115 ETH0.0010125548.10007
Sweep47301952017-12-14 8:30:013018 days ago1513240201IN
0x403E80c6...3497DfBcd
0 ETH0.0025561751
Transfer47301512017-12-14 8:18:223018 days ago1513239502IN
0x403E80c6...3497DfBcd
20.42882779 ETH0.0006738432.01
Sweep47298722017-12-14 7:07:043018 days ago1513235224IN
0x403E80c6...3497DfBcd
0 ETH0.002552951
View all transactions

Latest 15 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer47452692017-12-16 23:17:193016 days ago1513466239
0x403E80c6...3497DfBcd
30.17618852 ETH
Transfer47448182017-12-16 21:27:303016 days ago1513459650
0x403E80c6...3497DfBcd
14.49112272 ETH
Transfer47410872017-12-16 6:05:543016 days ago1513404354
0x403E80c6...3497DfBcd
12.74444509 ETH
Transfer47343182017-12-15 1:49:593018 days ago1513302599
0x403E80c6...3497DfBcd
20.88321349 ETH
Transfer47341762017-12-15 1:14:523018 days ago1513300492
0x403E80c6...3497DfBcd
20.704 ETH
Transfer47340072017-12-15 0:32:463018 days ago1513297966
0x403E80c6...3497DfBcd
20 ETH
Transfer47339112017-12-15 0:09:283018 days ago1513296568
0x403E80c6...3497DfBcd
20 ETH
Transfer47337322017-12-14 23:20:403018 days ago1513293640
0x403E80c6...3497DfBcd
20 ETH
Transfer47335382017-12-14 22:33:123018 days ago1513290792
0x403E80c6...3497DfBcd
29.05783739 ETH
Transfer47332742017-12-14 21:30:083018 days ago1513287008
0x403E80c6...3497DfBcd
30.89601115 ETH
Transfer47301952017-12-14 8:30:013018 days ago1513240201
0x403E80c6...3497DfBcd
20.42882779 ETH
Transfer47298722017-12-14 7:07:043018 days ago1513235224
0x403E80c6...3497DfBcd
6.99932779 ETH
Transfer42528232017-09-08 20:13:223115 days ago1504901602
0x403E80c6...3497DfBcd
2 ETH
Transfer42481762017-09-07 13:24:203116 days ago1504790660
0x403E80c6...3497DfBcd
0.3 ETH
Transfer42473352017-09-07 7:41:343116 days ago1504770094  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.