ETH Price: $1,954.04 (-1.44%)

Contract

0x2541EbfED829D7a4E589b08eEC24EaF5b5D40CFc
 

Overview

ETH Balance

0.000000003402239217 ETH

Eth Value

Less Than $0.01 (@ $1,954.04/ETH)

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Sweep63679032018-09-20 18:03:162725 days ago1537466596IN
0x2541EbfE...5b5D40CFc
0 ETH0.0025028550
Transfer63678732018-09-20 17:55:442725 days ago1537466144IN
0x2541EbfE...5b5D40CFc
2.45283745 ETH0.0002947114
Sweep60461842018-07-28 16:33:362779 days ago1532795616IN
0x2541EbfE...5b5D40CFc
0 ETH0.0050057100
Transfer60461672018-07-28 16:28:212779 days ago1532795301IN
0x2541EbfE...5b5D40CFc
4.5514184 ETH0.000027361.3
Transfer60095362018-07-22 11:18:442786 days ago1532258324IN
0x2541EbfE...5b5D40CFc
0.04653687 ETH0.000021051
Sweep59685152018-07-15 11:28:032793 days ago1531654083IN
0x2541EbfE...5b5D40CFc
0 ETH0.0049993100
Transfer59684912018-07-15 11:21:372793 days ago1531653697IN
0x2541EbfE...5b5D40CFc
0.05812949 ETH0.000021051
Sweep59270442018-07-08 11:20:472800 days ago1531048847IN
0x2541EbfE...5b5D40CFc
0 ETH0.0049993100
Transfer59270172018-07-08 11:14:102800 days ago1531048450IN
0x2541EbfE...5b5D40CFc
0.06684049 ETH0.000021051
Sweep58874002018-07-01 16:15:412806 days ago1530461741IN
0x2541EbfE...5b5D40CFc
0 ETH0.00899874180
Transfer58861802018-07-01 11:12:482807 days ago1530443568IN
0x2541EbfE...5b5D40CFc
0.05127258 ETH0.000021051
Sweep58457022018-06-24 11:14:142814 days ago1529838854IN
0x2541EbfE...5b5D40CFc
0 ETH0.0024996550
Transfer58456732018-06-24 11:08:182814 days ago1529838498IN
0x2541EbfE...5b5D40CFc
0.06002995 ETH0.000021051
Sweep58046002018-06-17 11:14:102821 days ago1529234050IN
0x2541EbfE...5b5D40CFc
0 ETH0.0024996550
Transfer58045652018-06-17 11:06:492821 days ago1529233609IN
0x2541EbfE...5b5D40CFc
0.05552553 ETH0.000021051
Sweep57642612018-06-10 11:04:282828 days ago1528628668IN
0x2541EbfE...5b5D40CFc
0 ETH0.0024996550
Transfer57642362018-06-10 10:59:282828 days ago1528628368IN
0x2541EbfE...5b5D40CFc
0.0654452 ETH0.000021051
Sweep57248082018-06-03 11:02:022835 days ago1528023722IN
0x2541EbfE...5b5D40CFc
0 ETH0.0024996550
Transfer57247882018-06-03 10:57:012835 days ago1528023421IN
0x2541EbfE...5b5D40CFc
0.06176304 ETH0.000021051
Sweep56852622018-05-27 10:57:352842 days ago1527418655IN
0x2541EbfE...5b5D40CFc
0 ETH0.0024996550
Transfer56852422018-05-27 10:53:092842 days ago1527418389IN
0x2541EbfE...5b5D40CFc
0.06462071 ETH0.000021051
Sweep56457632018-05-20 10:55:212849 days ago1526813721IN
0x2541EbfE...5b5D40CFc
0 ETH0.0024996550
Transfer56457322018-05-20 10:46:312849 days ago1526813191IN
0x2541EbfE...5b5D40CFc
0.05210563 ETH0.000021051
Sweep56060862018-05-13 10:54:232856 days ago1526208863IN
0x2541EbfE...5b5D40CFc
0 ETH0.0024996550
Transfer56060372018-05-13 10:43:532856 days ago1526208233IN
0x2541EbfE...5b5D40CFc
0.06380221 ETH0.000021051
View all transactions

Latest 21 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer63679032018-09-20 18:03:162725 days ago1537466596
0x2541EbfE...5b5D40CFc
2.45283745 ETH
Transfer60461842018-07-28 16:33:362779 days ago1532795616
0x2541EbfE...5b5D40CFc
4.59795528 ETH
Transfer59685152018-07-15 11:28:032793 days ago1531654083
0x2541EbfE...5b5D40CFc
0.0581295 ETH
Transfer59270442018-07-08 11:20:472800 days ago1531048847
0x2541EbfE...5b5D40CFc
0.06684049 ETH
Transfer58874002018-07-01 16:15:412806 days ago1530461741
0x2541EbfE...5b5D40CFc
0.05127258 ETH
Transfer58457022018-06-24 11:14:142814 days ago1529838854
0x2541EbfE...5b5D40CFc
0.06002996 ETH
Transfer58046002018-06-17 11:14:102821 days ago1529234050
0x2541EbfE...5b5D40CFc
0.05552553 ETH
Transfer57642612018-06-10 11:04:282828 days ago1528628668
0x2541EbfE...5b5D40CFc
0.0654452 ETH
Transfer57248082018-06-03 11:02:022835 days ago1528023722
0x2541EbfE...5b5D40CFc
0.06176305 ETH
Transfer56852622018-05-27 10:57:352842 days ago1527418655
0x2541EbfE...5b5D40CFc
0.06462071 ETH
Transfer56457632018-05-20 10:55:212849 days ago1526813721
0x2541EbfE...5b5D40CFc
0.05210564 ETH
Transfer56060862018-05-13 10:54:232856 days ago1526208863
0x2541EbfE...5b5D40CFc
0.06380222 ETH
Transfer55657962018-05-06 10:46:092863 days ago1525603569
0x2541EbfE...5b5D40CFc
0.06199536 ETH
Transfer55431822018-05-02 11:20:412867 days ago1525260041
0x2541EbfE...5b5D40CFc
0.12299839 ETH
Transfer55258922018-04-29 10:34:502870 days ago1524998090
0x2541EbfE...5b5D40CFc
0.06306387 ETH
Transfer54853282018-04-22 10:30:372877 days ago1524393037
0x2541EbfE...5b5D40CFc
0.17453561 ETH
Transfer54444872018-04-15 10:27:382884 days ago1523788058
0x2541EbfE...5b5D40CFc
0.10815064 ETH
Transfer54027212018-04-08 10:29:142891 days ago1523183354
0x2541EbfE...5b5D40CFc
0.08296497 ETH
Transfer53604272018-04-01 10:31:242898 days ago1522578684
0x2541EbfE...5b5D40CFc
0.23950034 ETH
Transfer53186342018-03-25 10:25:392905 days ago1521973539
0x2541EbfE...5b5D40CFc
0.27852218 ETH
Transfer49785032018-01-26 23:03:382962 days ago1517007818  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.