ETH Price: $2,132.69 (-3.22%)

Contract

0x8a40EAf4daE676b9f8b4d06263EAB0d8Aa43e92f
 

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
Sweep45261582017-11-10 12:45:443051 days ago1510317944IN
0x8a40EAf4...8Aa43e92f
0 ETH0.0010011420
Transfer45261522017-11-10 12:44:163051 days ago1510317856IN
0x8a40EAf4...8Aa43e92f
0.08526534 ETH0.0003578617
Sweep45199612017-11-09 12:52:083052 days ago1510231928IN
0x8a40EAf4...8Aa43e92f
0 ETH0.0010011420
Transfer45199562017-11-09 12:51:283052 days ago1510231888IN
0x8a40EAf4...8Aa43e92f
0.14027449 ETH0.0002210310.5
Sweep45137192017-11-08 12:40:173053 days ago1510144817IN
0x8a40EAf4...8Aa43e92f
0 ETH0.0010011420
Transfer45137142017-11-08 12:39:153053 days ago1510144755IN
0x8a40EAf4...8Aa43e92f
0.16684334 ETH0.000105255
Sweep45107472017-11-08 1:19:063053 days ago1510103946IN
0x8a40EAf4...8Aa43e92f
0 ETH0.0010011420
Transfer45107312017-11-08 1:15:533053 days ago1510103753IN
0x8a40EAf4...8Aa43e92f
0.18062568 ETH0.00008424
Sweep45008592017-11-06 11:14:363055 days ago1509966876IN
0x8a40EAf4...8Aa43e92f
0 ETH0.0010011420
Transfer45008522017-11-06 11:11:503055 days ago1509966710IN
0x8a40EAf4...8Aa43e92f
0.17655727 ETH0.00008424
Sweep44821532017-11-03 11:10:473058 days ago1509707447IN
0x8a40EAf4...8Aa43e92f
0 ETH0.0010011420
Transfer44821402017-11-03 11:07:493058 days ago1509707269IN
0x8a40EAf4...8Aa43e92f
0.18410212 ETH0.000160837.640325
Sweep44767962017-11-02 14:14:293059 days ago1509632069IN
0x8a40EAf4...8Aa43e92f
0 ETH0.0010011420
Transfer44767852017-11-02 14:11:313059 days ago1509631891IN
0x8a40EAf4...8Aa43e92f
0.18489496 ETH0.0004210220
Sweep44699042017-11-01 11:14:053060 days ago1509534845IN
0x8a40EAf4...8Aa43e92f
0 ETH0.0010011420
Transfer44698922017-11-01 11:11:183060 days ago1509534678IN
0x8a40EAf4...8Aa43e92f
0.18176989 ETH0.0002526112
Sweep44637432017-10-31 11:29:273061 days ago1509449367IN
0x8a40EAf4...8Aa43e92f
0 ETH0.0010011420
Transfer44637352017-10-31 11:27:273061 days ago1509449247IN
0x8a40EAf4...8Aa43e92f
0.20790954 ETH0.00016848
Sweep44575142017-10-30 11:16:333062 days ago1509362193IN
0x8a40EAf4...8Aa43e92f
0 ETH0.0010011420
Transfer44575002017-10-30 11:13:283062 days ago1509362008IN
0x8a40EAf4...8Aa43e92f
0.24283226 ETH0.00012636.0001
Sweep43953002017-10-20 11:13:403072 days ago1508498020IN
0x8a40EAf4...8Aa43e92f
0 ETH0.0015517631
Transfer43952882017-10-20 11:11:263072 days ago1508497886IN
0x8a40EAf4...8Aa43e92f
0.34821193 ETH0.000021051
Sweep43897122017-10-19 13:34:463073 days ago1508420086IN
0x8a40EAf4...8Aa43e92f
0 ETH0.0015517631
Transfer43897022017-10-19 13:31:063073 days ago1508419866IN
0x8a40EAf4...8Aa43e92f
0.34259197 ETH0.00016848
Sweep43838652017-10-18 15:15:203074 days ago1508339720IN
0x8a40EAf4...8Aa43e92f
0 ETH0.0015497831
View all transactions

Latest 16 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer45261582017-11-10 12:45:443051 days ago1510317944
0x8a40EAf4...8Aa43e92f
0.08526534 ETH
Transfer45199612017-11-09 12:52:083052 days ago1510231928
0x8a40EAf4...8Aa43e92f
0.14027449 ETH
Transfer45137192017-11-08 12:40:173053 days ago1510144817
0x8a40EAf4...8Aa43e92f
0.16684334 ETH
Transfer45107472017-11-08 1:19:063053 days ago1510103946
0x8a40EAf4...8Aa43e92f
0.18062568 ETH
Transfer45008592017-11-06 11:14:363055 days ago1509966876
0x8a40EAf4...8Aa43e92f
0.17655727 ETH
Transfer44821532017-11-03 11:10:473058 days ago1509707447
0x8a40EAf4...8Aa43e92f
0.18410212 ETH
Transfer44767962017-11-02 14:14:293059 days ago1509632069
0x8a40EAf4...8Aa43e92f
0.18489496 ETH
Transfer44699042017-11-01 11:14:053060 days ago1509534845
0x8a40EAf4...8Aa43e92f
0.18176989 ETH
Transfer44637432017-10-31 11:29:273061 days ago1509449367
0x8a40EAf4...8Aa43e92f
0.20790954 ETH
Transfer44575142017-10-30 11:16:333062 days ago1509362193
0x8a40EAf4...8Aa43e92f
0.24283226 ETH
Transfer43953002017-10-20 11:13:403072 days ago1508498020
0x8a40EAf4...8Aa43e92f
0.34821193 ETH
Transfer43897122017-10-19 13:34:463073 days ago1508420086
0x8a40EAf4...8Aa43e92f
0.34259197 ETH
Transfer43838652017-10-18 15:15:203074 days ago1508339720
0x8a40EAf4...8Aa43e92f
0.36030919 ETH
Transfer43775582017-10-17 14:36:163075 days ago1508250976
0x8a40EAf4...8Aa43e92f
0.32553904 ETH
Transfer43709822017-10-16 11:35:443076 days ago1508153744
0x8a40EAf4...8Aa43e92f
0.30822075 ETH
Transfer43247032017-09-30 12:44:563092 days ago1506775496  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.