Contract 0x1eE31ecC8A6d7eB6D1563220197baEa39581aAe4

 
Txn Hash
Method
Block
From
To
Value
0x6b8d66c23abbd9d34ef9e3273ce1f8e7c4278ff2f818b878b3870c28ec86a909Sweep132860332021-09-24 3:14:27317 days 18 hrs agoBittrex IN  0x1ee31ecc8a6d7eb6d1563220197baea39581aae40 Ether0.004572980.81477902
0x79c363ba6fdc5f1a4fc9bb11d071e6532d39ae5cfe71c9200d7ea2094de176e4Transfer132860162021-09-24 3:10:01317 days 18 hrs ago0x72e5263ff33d2494692d7f94a758aa9f82062f73 IN  0x1ee31ecc8a6d7eb6d1563220197baea39581aae40.16942108 Ether0.0016419778
0x4a58db7d21dea5bac36b1a813428783324e7e4fe0652eab5cdc94833c78b0978Transfer102171432020-06-07 6:41:55791 days 14 hrs ago0xad3b30233ada0e8aa94ad9fd940a7d2c387bbcb4 IN  0x1ee31ecc8a6d7eb6d1563220197baea39581aae40.025 Ether0.0003789118
0xde03fa573891eddf135f6e9f2d19a1a706a97510bfaea556c9efd19813903c1fSweep102170092020-06-07 6:12:42791 days 15 hrs agoBittrex IN  0x1ee31ecc8a6d7eb6d1563220197baea39581aae40 Ether0.0017437430.6
0xc197c82612373215d1bd9a9720eb87b82dc9b70f60514ec8a1690c01e131f370Transfer102169912020-06-07 6:08:15791 days 15 hrs ago0xad3b30233ada0e8aa94ad9fd940a7d2c387bbcb4 IN  0x1ee31ecc8a6d7eb6d1563220197baea39581aae41.15962108 Ether0.0003789118
0x35736558415188f4b0bccfa04d67ea68624a3191b9572b3a4be359d5a43cbe85Sweep74327192019-03-24 17:27:561232 days 4 hrs agoBittrex IN  0x1ee31ecc8a6d7eb6d1563220197baea39581aae40 Ether0.0024996550
0x7b87f977190632470f54ef66ac78381e1c76f2874c7cf812da5c2a4e1bfd747aTransfer74326902019-03-24 17:22:091232 days 4 hrs ago0xcfcb2cccd5f53823d7b05b0ca22e2b0c39b54322 IN  0x1ee31ecc8a6d7eb6d1563220197baea39581aae40.0590384 Ether0.000105255
0x359a6a2f964cf0e3e3e7ae105e8a25672b58fe4fd5a6db3edb91b30238467abaSweep72122292019-02-12 19:39:461272 days 1 hr agoBittrex IN  0x1ee31ecc8a6d7eb6d1563220197baea39581aae40 Ether0.0025028550
0xd82edb39de789d83960df25d5043f3717b64bb2e202bdb5705a7048267db8cf8Transfer72122132019-02-12 19:33:121272 days 2 hrs ago0x27973b3297466ba29d08d5a71c5f28ecfb144e73 IN  0x1ee31ecc8a6d7eb6d1563220197baea39581aae40.12376245 Ether0.000189459
0xb977d1908fe032f55a32bb1231aaa07f9cf397c1a35a26cac7272737c0131863Sweep71857432019-02-07 1:11:081277 days 20 hrs agoBittrex IN  0x1ee31ecc8a6d7eb6d1563220197baea39581aae40 Ether0.0025028550
0x618f10b1406a033aee8939946e3b263de752145e796ddb914e54882c06998c3cTransfer71857252019-02-07 1:05:151277 days 20 hrs agoCoinExchange.io IN  0x1ee31ecc8a6d7eb6d1563220197baea39581aae41.19916949 Ether0.0010525550
[ Download CSV Export 
Latest 6 internal transactions
Parent Txn Hash Block From To Value
0x6b8d66c23abbd9d34ef9e3273ce1f8e7c4278ff2f818b878b3870c28ec86a909132860332021-09-24 3:14:27317 days 18 hrs ago 0x1ee31ecc8a6d7eb6d1563220197baea39581aae4Bittrex0.19442108 Ether
0xde03fa573891eddf135f6e9f2d19a1a706a97510bfaea556c9efd19813903c1f102170092020-06-07 6:12:42791 days 15 hrs ago 0x1ee31ecc8a6d7eb6d1563220197baea39581aae4Bittrex1.15962108 Ether
0x35736558415188f4b0bccfa04d67ea68624a3191b9572b3a4be359d5a43cbe8574327192019-03-24 17:27:561232 days 4 hrs ago 0x1ee31ecc8a6d7eb6d1563220197baea39581aae4Bittrex0.0590384 Ether
0x359a6a2f964cf0e3e3e7ae105e8a25672b58fe4fd5a6db3edb91b30238467aba72122292019-02-12 19:39:461272 days 1 hr ago 0x1ee31ecc8a6d7eb6d1563220197baea39581aae4Bittrex0.12376245 Ether
0xb977d1908fe032f55a32bb1231aaa07f9cf397c1a35a26cac7272737c013186371857432019-02-07 1:11:081277 days 20 hrs ago 0x1ee31ecc8a6d7eb6d1563220197baea39581aae4Bittrex1.19916949 Ether
0xf29f9baa564ab70132acaf460d1d4cd5b36d58a9da04f87acdf17414d9bd0c5e50550672018-02-08 20:57:171641 days 37 mins ago Bittrex: Controller  Contract Creation0 Ether
[ Download CSV Export 
Loading
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.

Similar Match Source Code
Note: This contract matches the deployed ByteCode of the Source Code for Contract 0xd1DD82d1dED8f40c200b89455050E9C18D918504

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"}]

6060604052341561000c57fe5b60405160208061026c83398101604052515b60008054600160a060020a031916600160a060020a0383161790555b505b6102218061004b6000396000f300606060405236156100495763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636ea056a98114610052578063c0ee0b8a14610092575b6100505b5b565b005b341561005a57fe5b61007e73ffffffffffffffffffffffffffffffffffffffff60043516602435610104565b604080519115158252519081900360200190f35b341561009a57fe5b604080516020600460443581810135601f810184900484028501840190955284845261005094823573ffffffffffffffffffffffffffffffffffffffff169460248035956064949293919092019181908401838280828437509496506101ef95505050505050565b005b6000805460408051602090810184905281517f3c18d31800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff878116600483015292519290931692633c18d318926024808301939282900301818787803b151561017b57fe5b6102c65a03f1151561018957fe5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff1660003660006040516020015260405180838380828437820191505092505050602060405180830381856102c65a03f415156101e057fe5b50506040515190505b92915050565b5b5050505600a165627a7a723058204cdd69fdcf3cf6cbee9677fe380fa5f044048aa9e060ec5619a21ca5a5bd4cd10029000000000000000000000000a3c1e324ca1ce40db73ed6026c4a177f099b5770

Swarm Source

bzzr://4cdd69fdcf3cf6cbee9677fe380fa5f044048aa9e060ec5619a21ca5a5bd4cd1
Block Transaction Difficulty Gas Used Reward
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.

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.