ETH Price: $2,198.05 (-5.49%)

Contract

0x549553185ead90CdB60194De7eDf100F357648aB
 

Overview

ETH Balance

0.028785824304770605 ETH

Eth Value

$63.27 (@ $2,198.05/ETH)

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer66734392018-11-09 16:45:012686 days ago1541781901IN
0x54955318...F357648aB
0.02878581 ETH0.000021051
Sweep66307452018-11-02 16:39:442693 days ago1541176784IN
0x54955318...F357648aB
0 ETH0.0025028550
Transfer66307292018-11-02 16:35:122693 days ago1541176512IN
0x54955318...F357648aB
0.07845663 ETH0.000021051
Sweep65880512018-10-26 16:41:532700 days ago1540572113IN
0x54955318...F357648aB
0 ETH0.0025028550
Transfer65880162018-10-26 16:33:022700 days ago1540571582IN
0x54955318...F357648aB
0.10001088 ETH0.000021051
Sweep65666572018-10-23 4:51:172703 days ago1540270277IN
0x54955318...F357648aB
0 ETH0.0025028550
Transfer65666312018-10-23 4:45:382703 days ago1540269938IN
0x54955318...F357648aB
0.10005547 ETH0.000021051
Sweep65452182018-10-19 16:46:462707 days ago1539967606IN
0x54955318...F357648aB
0 ETH0.0025028550
Transfer65451792018-10-19 16:39:022707 days ago1539967142IN
0x54955318...F357648aB
0.10004091 ETH0.000021051
Sweep65232432018-10-16 2:26:542710 days ago1539656814IN
0x54955318...F357648aB
0 ETH0.0025028550
Transfer65232172018-10-16 2:20:192710 days ago1539656419IN
0x54955318...F357648aB
0.10011533 ETH0.000021051
Sweep64963902018-10-11 17:54:442715 days ago1539280484IN
0x54955318...F357648aB
0 ETH0.0025028550
Transfer64963702018-10-11 17:51:272715 days ago1539280287IN
0x54955318...F357648aB
0.10003673 ETH0.000021051
Sweep64765412018-10-08 12:22:372718 days ago1539001357IN
0x54955318...F357648aB
0 ETH0.0025028550
Transfer64765162018-10-08 12:17:192718 days ago1539001039IN
0x54955318...F357648aB
0.10014558 ETH0.000021051
Sweep64558852018-10-05 4:21:182721 days ago1538713278IN
0x54955318...F357648aB
0 ETH0.0025028550
Transfer64558652018-10-05 4:15:352721 days ago1538712935IN
0x54955318...F357648aB
0.10014421 ETH0.000021051
Sweep64288462018-09-30 18:28:122726 days ago1538332092IN
0x54955318...F357648aB
0 ETH0.0025028550
Transfer64288202018-09-30 18:21:282726 days ago1538331688IN
0x54955318...F357648aB
0.10008341 ETH0.000021051
Sweep63958902018-09-25 8:44:122731 days ago1537865052IN
0x54955318...F357648aB
0 ETH0.0025028550
Transfer63958492018-09-25 8:34:142731 days ago1537864454IN
0x54955318...F357648aB
0.10012973 ETH0.000021051
Sweep63646032018-09-20 4:51:232736 days ago1537419083IN
0x54955318...F357648aB
0 ETH0.0025028550
Transfer63645742018-09-20 4:44:502736 days ago1537418690IN
0x54955318...F357648aB
0.10004219 ETH0.000021051
Sweep63346512018-09-15 6:21:042741 days ago1536992464IN
0x54955318...F357648aB
0 ETH0.0025028550
Transfer63346262018-09-15 6:14:112741 days ago1536992051IN
0x54955318...F357648aB
0.10010379 ETH0.000021051
View all transactions

Latest 21 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer66307452018-11-02 16:39:442693 days ago1541176784
0x54955318...F357648aB
0.07845663 ETH
Transfer65880512018-10-26 16:41:532700 days ago1540572113
0x54955318...F357648aB
0.10001089 ETH
Transfer65666572018-10-23 4:51:172703 days ago1540270277
0x54955318...F357648aB
0.10005547 ETH
Transfer65452182018-10-19 16:46:462707 days ago1539967606
0x54955318...F357648aB
0.10004092 ETH
Transfer65232432018-10-16 2:26:542710 days ago1539656814
0x54955318...F357648aB
0.10011533 ETH
Transfer64963902018-10-11 17:54:442715 days ago1539280484
0x54955318...F357648aB
0.10003673 ETH
Transfer64765412018-10-08 12:22:372718 days ago1539001357
0x54955318...F357648aB
0.10014559 ETH
Transfer64558852018-10-05 4:21:182721 days ago1538713278
0x54955318...F357648aB
0.10014421 ETH
Transfer64288462018-09-30 18:28:122726 days ago1538332092
0x54955318...F357648aB
0.10008341 ETH
Transfer63958902018-09-25 8:44:122731 days ago1537865052
0x54955318...F357648aB
0.10012974 ETH
Transfer63646032018-09-20 4:51:232736 days ago1537419083
0x54955318...F357648aB
0.1000422 ETH
Transfer63346512018-09-15 6:21:042741 days ago1536992464
0x54955318...F357648aB
0.10010379 ETH
Transfer63027162018-09-09 23:14:442747 days ago1536534884
0x54955318...F357648aB
0.10001181 ETH
Transfer62689692018-09-04 7:08:042752 days ago1536044884
0x54955318...F357648aB
0.10008854 ETH
Transfer62367272018-08-29 20:43:092758 days ago1535575389
0x54955318...F357648aB
0.10002121 ETH
Transfer62028422018-08-24 3:33:452763 days ago1535081625
0x54955318...F357648aB
0.10003355 ETH
Transfer61701492018-08-18 15:09:102769 days ago1534604950
0x54955318...F357648aB
0.10002262 ETH
Transfer61379042018-08-13 3:55:112774 days ago1534132511
0x54955318...F357648aB
0.10001029 ETH
Transfer61056842018-08-07 17:10:592780 days ago1533661859
0x54955318...F357648aB
0.10003008 ETH
Transfer60740252018-08-02 8:51:242785 days ago1533199884
0x54955318...F357648aB
0.11911756 ETH
Transfer43911682017-10-19 19:07:553072 days ago1508440075  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.