ETH Price: $2,098.32 (+3.77%)

Contract

0xb41F4b4B8d89716E240BfC5cDeFE10EFD60cfA31
 

Overview

ETH Balance

0.000000001515120704 ETH

Eth Value

Less Than $0.01 (@ $2,098.32/ETH)

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Sweep73864592019-03-17 12:28:502571 days ago1552825730IN
0xb41F4b4B...FD60cfA31
0 ETH0.0024996550
Transfer73864372019-03-17 12:24:372571 days ago1552825477IN
0xb41F4b4B...FD60cfA31
0.06001133 ETH0.0002105110
Sweep72559552019-02-23 4:49:562593 days ago1550897396IN
0xb41F4b4B...FD60cfA31
0 ETH0.0024996550
Transfer72559402019-02-23 4:45:452593 days ago1550897145IN
0xb41F4b4B...FD60cfA31
0.06000241 ETH0.0002105110
Sweep72186052019-02-14 8:11:192602 days ago1550131879IN
0xb41F4b4B...FD60cfA31
0 ETH0.0024996550
Transfer72185922019-02-14 8:09:142602 days ago1550131754IN
0xb41F4b4B...FD60cfA31
0.06004881 ETH0.0002105110
Sweep71889612019-02-07 16:45:172609 days ago1549557917IN
0xb41F4b4B...FD60cfA31
0 ETH0.0024996550
Transfer71889472019-02-07 16:42:142609 days ago1549557734IN
0xb41F4b4B...FD60cfA31
0.06005202 ETH0.0002105110
Sweep71703652019-02-03 22:02:152612 days ago1549231335IN
0xb41F4b4B...FD60cfA31
0 ETH0.0024996550
Transfer71703492019-02-03 21:58:092612 days ago1549231089IN
0xb41F4b4B...FD60cfA31
0.06016666 ETH0.0002105110
Sweep71463922019-01-30 0:38:362617 days ago1548808716IN
0xb41F4b4B...FD60cfA31
0 ETH0.0024996550
Transfer71463762019-01-30 0:34:372617 days ago1548808477IN
0xb41F4b4B...FD60cfA31
0.06012782 ETH0.0002105110
Sweep71200492019-01-24 17:57:202623 days ago1548352640IN
0xb41F4b4B...FD60cfA31
0 ETH0.0024996550
Transfer71200312019-01-24 17:52:052623 days ago1548352325IN
0xb41F4b4B...FD60cfA31
0.06004155 ETH0.0002105110
Sweep70928222019-01-19 12:39:552628 days ago1547901595IN
0xb41F4b4B...FD60cfA31
0 ETH0.0024996550
Transfer70927992019-01-19 12:32:592628 days ago1547901179IN
0xb41F4b4B...FD60cfA31
0.06007816 ETH0.0002105110
Sweep70806002019-01-17 8:34:562630 days ago1547714096IN
0xb41F4b4B...FD60cfA31
0 ETH0.0024996550
Transfer70805832019-01-17 8:29:122630 days ago1547713752IN
0xb41F4b4B...FD60cfA31
0.06031412 ETH0.0002105110
Sweep70698862019-01-15 10:18:092632 days ago1547547489IN
0xb41F4b4B...FD60cfA31
0 ETH0.0024996550
Transfer70698692019-01-15 10:13:152632 days ago1547547195IN
0xb41F4b4B...FD60cfA31
0.06002085 ETH0.0002105110
Sweep70578052019-01-13 6:36:372634 days ago1547361397IN
0xb41F4b4B...FD60cfA31
0 ETH0.0024996550
Transfer70577842019-01-13 6:32:402634 days ago1547361160IN
0xb41F4b4B...FD60cfA31
0.06008974 ETH0.0002105110
Sweep70453122019-01-11 0:54:382636 days ago1547168078IN
0xb41F4b4B...FD60cfA31
0 ETH0.0024996550
Transfer70452982019-01-11 0:50:072636 days ago1547167807IN
0xb41F4b4B...FD60cfA31
0.0601575 ETH0.0002105110
Sweep70327532019-01-08 19:01:132639 days ago1546974073IN
0xb41F4b4B...FD60cfA31
0 ETH0.0024996550
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
-73864592019-03-17 12:28:502571 days ago1552825730
0xb41F4b4B...FD60cfA31
0.06001134 ETH
-72559552019-02-23 4:49:562593 days ago1550897396
0xb41F4b4B...FD60cfA31
0.06000241 ETH
-72186052019-02-14 8:11:192602 days ago1550131879
0xb41F4b4B...FD60cfA31
0.06004882 ETH
-71889612019-02-07 16:45:172609 days ago1549557917
0xb41F4b4B...FD60cfA31
0.06005202 ETH
-71703652019-02-03 22:02:152612 days ago1549231335
0xb41F4b4B...FD60cfA31
0.06016666 ETH
-71463922019-01-30 0:38:362617 days ago1548808716
0xb41F4b4B...FD60cfA31
0.06012782 ETH
-71200492019-01-24 17:57:202623 days ago1548352640
0xb41F4b4B...FD60cfA31
0.06004156 ETH
-70928222019-01-19 12:39:552628 days ago1547901595
0xb41F4b4B...FD60cfA31
0.06007816 ETH
-70806002019-01-17 8:34:562630 days ago1547714096
0xb41F4b4B...FD60cfA31
0.06031413 ETH
-70698862019-01-15 10:18:092632 days ago1547547489
0xb41F4b4B...FD60cfA31
0.06002085 ETH
-70578052019-01-13 6:36:372634 days ago1547361397
0xb41F4b4B...FD60cfA31
0.06008975 ETH
-70453122019-01-11 0:54:382636 days ago1547168078
0xb41F4b4B...FD60cfA31
0.06015751 ETH
-70327532019-01-08 19:01:132639 days ago1546974073
0xb41F4b4B...FD60cfA31
0.06025598 ETH
-70199432019-01-06 11:52:422641 days ago1546775562
0xb41F4b4B...FD60cfA31
0.06012463 ETH
-70076702019-01-04 7:13:292643 days ago1546586009
0xb41F4b4B...FD60cfA31
0.06015477 ETH
-69966602019-01-02 8:45:522645 days ago1546418752
0xb41F4b4B...FD60cfA31
0.06016963 ETH
-69862272018-12-31 14:27:002647 days ago1546266420
0xb41F4b4B...FD60cfA31
0.06012773 ETH
-69751902018-12-29 17:52:312649 days ago1546105951
0xb41F4b4B...FD60cfA31
0.06005479 ETH
-69643342018-12-27 21:34:112650 days ago1545946451
0xb41F4b4B...FD60cfA31
0.06003917 ETH
-69533152018-12-26 0:57:512652 days ago1545785871
0xb41F4b4B...FD60cfA31
0.06028427 ETH
-69341742018-12-22 19:25:202655 days ago1545506720
0xb41F4b4B...FD60cfA31
0.06005849 ETH
-69079442018-12-18 8:01:542660 days ago1545120114
0xb41F4b4B...FD60cfA31
0.06003221 ETH
-68809532018-12-13 20:08:262664 days ago1544731706
0xb41F4b4B...FD60cfA31
0.06010635 ETH
-68500282018-12-08 18:04:162670 days ago1544292256
0xb41F4b4B...FD60cfA31
0.0600355 ETH
-68210062018-12-03 22:24:532674 days ago1543875893
0xb41F4b4B...FD60cfA31
0.06006304 ETH
View All Internal Transactions
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.