ETH Price: $2,680.19 (-0.80%)

Contract

0xE5c9E13ebD516e130347BcC99daC29f57D64b937
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Sweep98362202020-04-09 5:44:551776 days ago1586411095IN
0xE5c9E13e...57D64b937
0 ETH0.0012589522
Sweep55964862018-05-11 18:53:052475 days ago1526064785IN
0xE5c9E13e...57D64b937
0 ETH0.0023451550
Sweep50066082018-01-31 16:34:372575 days ago1517416477IN
0xE5c9E13e...57D64b937
0 ETH0.0044993790
Transfer50065762018-01-31 16:26:572575 days ago1517416017IN
0xE5c9E13e...57D64b937
6 ETH0.0019156491
Sweep50061962018-01-31 14:54:062575 days ago1517410446IN
0xE5c9E13e...57D64b937
0 ETH0.0044993790
Transfer50061702018-01-31 14:46:482575 days ago1517410008IN
0xE5c9E13e...57D64b937
14.46 ETH0.0008630941
Sweep45511322017-11-14 12:45:372653 days ago1510663537IN
0xE5c9E13e...57D64b937
0 ETH0.0010011420
Transfer45511152017-11-14 12:41:432653 days ago1510663303IN
0xE5c9E13e...57D64b937
2.3570441 ETH0.0004210220
Sweep43552962017-10-11 3:50:382688 days ago1507693838IN
0xE5c9E13e...57D64b937
0 ETH0.0015537531
Transfer43552922017-10-11 3:49:082688 days ago1507693748IN
0xE5c9E13e...57D64b937
63.53773635 ETH0.0004911823.33324352
Sweep42543752017-09-09 6:48:182719 days ago1504939698IN
0xE5c9E13e...57D64b937
0 ETH0.0025496451
Transfer42543662017-09-09 6:44:442719 days ago1504939484IN
0xE5c9E13e...57D64b937
11 ETH0.0004420721
Transfer42055042017-08-26 10:02:212733 days ago1503741741IN
0xE5c9E13e...57D64b937
0.01 ETH0.0004210220
Sweep42027402017-08-25 15:09:532734 days ago1503673793IN
0xE5c9E13e...57D64b937
0 ETH0.0015747731.5
Transfer42027262017-08-25 15:06:442734 days ago1503673604IN
0xE5c9E13e...57D64b937
5.945 ETH0.0006315330
Sweep41988292017-08-24 14:33:432735 days ago1503585223IN
0xE5c9E13e...57D64b937
0 ETH0.0015767931.5
Transfer41988172017-08-24 14:29:292735 days ago1503584969IN
0xE5c9E13e...57D64b937
6.0638933 ETH0.0006315330
Sweep41937132017-08-23 9:14:182736 days ago1503479658IN
0xE5c9E13e...57D64b937
0 ETH0.0015017130
Transfer41937092017-08-23 9:12:312736 days ago1503479551IN
0xE5c9E13e...57D64b937
5.94011926 ETH0.0006315330
Sweep41876172017-08-21 22:27:462738 days ago1503354466IN
0xE5c9E13e...57D64b937
0 ETH0.0010511921
Transfer41876092017-08-21 22:25:012738 days ago1503354301IN
0xE5c9E13e...57D64b937
5.27060804 ETH0.0006315330
Transfer41876092017-08-21 22:25:012738 days ago1503354301IN
0xE5c9E13e...57D64b937
0.61302975 ETH0.0006315330

Latest 10 internal transactions

Advanced mode:
Parent Transaction Hash Block
From
To
50066082018-01-31 16:34:372575 days ago1517416477
0xE5c9E13e...57D64b937
6 ETH
50061962018-01-31 14:54:062575 days ago1517410446
0xE5c9E13e...57D64b937
14.46 ETH
45511322017-11-14 12:45:372653 days ago1510663537
0xE5c9E13e...57D64b937
2.3570441 ETH
43552962017-10-11 3:50:382688 days ago1507693838
0xE5c9E13e...57D64b937
63.53773635 ETH
42543752017-09-09 6:48:182719 days ago1504939698
0xE5c9E13e...57D64b937
11.01 ETH
42027402017-08-25 15:09:532734 days ago1503673793
0xE5c9E13e...57D64b937
5.945 ETH
41988292017-08-24 14:33:432735 days ago1503585223
0xE5c9E13e...57D64b937
6.0638933 ETH
41937132017-08-23 9:14:182736 days ago1503479658
0xE5c9E13e...57D64b937
5.94011926 ETH
41876172017-08-21 22:27:462738 days ago1503354466
0xE5c9E13e...57D64b937
5.88363779 ETH
41814612017-08-20 11:13:342739 days ago1503227614  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.