ETH Price: $2,002.81 (+0.32%)

Contract

0x3f5641af6C8FE7bB352859fc9d2Cc46ED76B37eB
 

Overview

ETH Balance

0.037910978992755286 ETH

Eth Value

$75.93 (@ $2,002.81/ETH)

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer51608182018-02-26 17:53:242952 days ago1519667604IN
0x3f5641af...ED76B37eB
0.03791097 ETH0.000021051
Sweep51199022018-02-19 17:56:512959 days ago1519063011IN
0x3f5641af...ED76B37eB
0 ETH0.0025028550
Transfer51198512018-02-19 17:44:292959 days ago1519062269IN
0x3f5641af...ED76B37eB
0.08379191 ETH0.000021051
Sweep50781512018-02-12 17:44:212966 days ago1518457461IN
0x3f5641af...ED76B37eB
0 ETH0.0045051390
Transfer50781222018-02-12 17:37:392966 days ago1518457059IN
0x3f5641af...ED76B37eB
0.23790923 ETH0.000021051
Sweep50364622018-02-05 17:38:422973 days ago1517852322IN
0x3f5641af...ED76B37eB
0 ETH0.0045051390
Transfer50364312018-02-05 17:32:002973 days ago1517851920IN
0x3f5641af...ED76B37eB
0.30411942 ETH0.000021051
Sweep49950512018-01-29 17:26:512980 days ago1517246811IN
0x3f5641af...ED76B37eB
0 ETH0.0045051390
Transfer49950212018-01-29 17:19:132980 days ago1517246353IN
0x3f5641af...ED76B37eB
0.2838568 ETH0.000021051
Sweep49534452018-01-22 17:28:212987 days ago1516642101IN
0x3f5641af...ED76B37eB
0 ETH0.0045051390
Transfer49533872018-01-22 17:11:142987 days ago1516641074IN
0x3f5641af...ED76B37eB
0.38621362 ETH0.000021051
Sweep49136062018-01-15 17:21:092994 days ago1516036869IN
0x3f5641af...ED76B37eB
0 ETH0.0045051390
Transfer49135672018-01-15 17:11:332994 days ago1516036293IN
0x3f5641af...ED76B37eB
0.37746237 ETH0.000021051
Sweep48755122018-01-08 17:15:443001 days ago1515431744IN
0x3f5641af...ED76B37eB
0 ETH0.0045051390
Transfer48754702018-01-08 17:04:443001 days ago1515431084IN
0x3f5641af...ED76B37eB
0.46334718 ETH0.000021051
Sweep48369502018-01-01 17:07:543008 days ago1514826474IN
0x3f5641af...ED76B37eB
0 ETH0.002552951
Transfer48369132018-01-01 17:00:303008 days ago1514826030IN
0x3f5641af...ED76B37eB
0.49026942 ETH0.000021051
Sweep47956312017-12-25 17:08:433015 days ago1514221723IN
0x3f5641af...ED76B37eB
0 ETH0.002552951
Transfer47955962017-12-25 16:59:333015 days ago1514221173IN
0x3f5641af...ED76B37eB
0.31629273 ETH0.000021051
Sweep47556432017-12-18 18:04:073022 days ago1513620247IN
0x3f5641af...ED76B37eB
0 ETH0.002552951
Transfer47553712017-12-18 16:52:023022 days ago1513615922IN
0x3f5641af...ED76B37eB
0.09987141 ETH0.000021051
Sweep47150762017-12-11 16:35:523029 days ago1513010152IN
0x3f5641af...ED76B37eB
0 ETH0.002552951
Transfer47148532017-12-11 15:41:373029 days ago1513006897IN
0x3f5641af...ED76B37eB
0.60910427 ETH0.000021051
Sweep46569612017-12-01 15:44:133039 days ago1512143053IN
0x3f5641af...ED76B37eB
0 ETH0.0010011420
Transfer46569422017-12-01 15:39:443039 days ago1512142784IN
0x3f5641af...ED76B37eB
0.80824157 ETH0.000021051
View all transactions

Latest 18 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer51199022018-02-19 17:56:512959 days ago1519063011
0x3f5641af...ED76B37eB
0.08379192 ETH
Transfer50781512018-02-12 17:44:212966 days ago1518457461
0x3f5641af...ED76B37eB
0.23790923 ETH
Transfer50364622018-02-05 17:38:422973 days ago1517852322
0x3f5641af...ED76B37eB
0.30411943 ETH
Transfer49950512018-01-29 17:26:512980 days ago1517246811
0x3f5641af...ED76B37eB
0.2838568 ETH
Transfer49534452018-01-22 17:28:212987 days ago1516642101
0x3f5641af...ED76B37eB
0.38621362 ETH
Transfer49136062018-01-15 17:21:092994 days ago1516036869
0x3f5641af...ED76B37eB
0.37746238 ETH
Transfer48755122018-01-08 17:15:443001 days ago1515431744
0x3f5641af...ED76B37eB
0.46334719 ETH
Transfer48369502018-01-01 17:07:543008 days ago1514826474
0x3f5641af...ED76B37eB
0.49026943 ETH
Transfer47956312017-12-25 17:08:433015 days ago1514221723
0x3f5641af...ED76B37eB
0.31629274 ETH
Transfer47556432017-12-18 18:04:073022 days ago1513620247
0x3f5641af...ED76B37eB
0.09987141 ETH
Transfer47150762017-12-11 16:35:523029 days ago1513010152
0x3f5641af...ED76B37eB
0.60910427 ETH
Transfer46569612017-12-01 15:44:133039 days ago1512143053
0x3f5641af...ED76B37eB
0.80824158 ETH
Transfer45866682017-11-20 5:59:353051 days ago1511157575
0x3f5641af...ED76B37eB
1.00001227 ETH
Transfer45075862017-11-07 13:13:543063 days ago1510060434
0x3f5641af...ED76B37eB
1.00044945 ETH
Transfer44442942017-10-28 7:58:183074 days ago1509177498
0x3f5641af...ED76B37eB
1.00009212 ETH
Transfer43571222017-10-11 18:48:253090 days ago1507747705
0x3f5641af...ED76B37eB
1.00015229 ETH
Transfer42767222017-09-15 12:52:343116 days ago1505479954
0x3f5641af...ED76B37eB
1.00040193 ETH
Transfer41569302017-08-14 13:39:423148 days ago1502717982  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.