ETH Price: $1,982.47 (+1.80%)

Contract

0x18Df2f1cD7E1Db92eE8A4FaBD07E09670A61e66b
 

Overview

ETH Balance

0.022310844778602811 ETH

Eth Value

$44.23 (@ $1,982.47/ETH)

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer51607322018-02-26 17:33:332932 days ago1519666413IN
0x18Df2f1c...70A61e66b
0.02231083 ETH0.000021051
Sweep51198462018-02-19 17:43:052939 days ago1519062185IN
0x18Df2f1c...70A61e66b
0 ETH0.0025028550
Transfer51197902018-02-19 17:29:162939 days ago1519061356IN
0x18Df2f1c...70A61e66b
0.0563541 ETH0.000021051
Transfer50780662018-02-12 17:21:052946 days ago1518456065IN
0x18Df2f1c...70A61e66b
0.04858974 ETH0.000021051
Sweep50363742018-02-05 17:19:172953 days ago1517851157IN
0x18Df2f1c...70A61e66b
0 ETH0.0045051390
Transfer50363402018-02-05 17:13:322953 days ago1517850812IN
0x18Df2f1c...70A61e66b
0.09554585 ETH0.000021051
Sweep49949782018-01-29 17:09:132960 days ago1517245753IN
0x18Df2f1c...70A61e66b
0 ETH0.0045051390
Transfer49949522018-01-29 17:03:472960 days ago1517245427IN
0x18Df2f1c...70A61e66b
0.17393251 ETH0.000021051
Sweep49533922018-01-22 17:12:062967 days ago1516641126IN
0x18Df2f1c...70A61e66b
0 ETH0.0045051390
Transfer49533642018-01-22 17:03:562967 days ago1516640636IN
0x18Df2f1c...70A61e66b
0.19512467 ETH0.000021051
Sweep49135472018-01-15 17:06:402974 days ago1516036000IN
0x18Df2f1c...70A61e66b
0 ETH0.0044993790
Transfer49135092018-01-15 16:57:002974 days ago1516035420IN
0x18Df2f1c...70A61e66b
0.19042331 ETH0.000021051
Sweep48754432018-01-08 16:58:242981 days ago1515430704IN
0x18Df2f1c...70A61e66b
0 ETH0.0056437112.89
Transfer48753972018-01-08 16:46:062981 days ago1515429966IN
0x18Df2f1c...70A61e66b
0.16383712 ETH0.000021051
Sweep48368592018-01-01 16:48:352988 days ago1514825315IN
0x18Df2f1c...70A61e66b
0 ETH0.002552951
Transfer48368252018-01-01 16:41:032988 days ago1514824863IN
0x18Df2f1c...70A61e66b
0.16342124 ETH0.000021051
Sweep47955492017-12-25 16:45:142995 days ago1514220314IN
0x18Df2f1c...70A61e66b
0 ETH0.002552951
Transfer47955152017-12-25 16:37:482995 days ago1514219868IN
0x18Df2f1c...70A61e66b
0.17320533 ETH0.000021051
Sweep47555592017-12-18 17:42:033002 days ago1513618923IN
0x18Df2f1c...70A61e66b
0 ETH0.002552951
Transfer47552912017-12-18 16:30:173002 days ago1513614617IN
0x18Df2f1c...70A61e66b
0.18571637 ETH0.000021051
Sweep47151862017-12-11 17:03:263009 days ago1513011806IN
0x18Df2f1c...70A61e66b
0 ETH0.002552951
Transfer47150222017-12-11 16:23:093009 days ago1513009389IN
0x18Df2f1c...70A61e66b
0.26653299 ETH0.000021051
Sweep46612312017-12-02 8:35:373018 days ago1512203737IN
0x18Df2f1c...70A61e66b
0 ETH0.0010011420
Transfer46612172017-12-02 8:30:453018 days ago1512203445IN
0x18Df2f1c...70A61e66b
0.89064838 ETH0.000021051
Sweep44683072017-11-01 5:00:173049 days ago1509512417IN
0x18Df2f1c...70A61e66b
0 ETH0.003253765
View all transactions

Latest 14 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer51198462018-02-19 17:43:052939 days ago1519062185
0x18Df2f1c...70A61e66b
0.10494385 ETH
Transfer50363742018-02-05 17:19:172953 days ago1517851157
0x18Df2f1c...70A61e66b
0.09554586 ETH
Transfer49949782018-01-29 17:09:132960 days ago1517245753
0x18Df2f1c...70A61e66b
0.17393252 ETH
Transfer49533922018-01-22 17:12:062967 days ago1516641126
0x18Df2f1c...70A61e66b
0.19512467 ETH
Transfer49135472018-01-15 17:06:402974 days ago1516036000
0x18Df2f1c...70A61e66b
0.19042332 ETH
Transfer48754432018-01-08 16:58:242981 days ago1515430704
0x18Df2f1c...70A61e66b
0.16383713 ETH
Transfer48368592018-01-01 16:48:352988 days ago1514825315
0x18Df2f1c...70A61e66b
0.16342124 ETH
Transfer47955492017-12-25 16:45:142995 days ago1514220314
0x18Df2f1c...70A61e66b
0.17320534 ETH
Transfer47555592017-12-18 17:42:033002 days ago1513618923
0x18Df2f1c...70A61e66b
0.18571637 ETH
Transfer47151862017-12-11 17:03:263009 days ago1513011806
0x18Df2f1c...70A61e66b
0.26653299 ETH
Transfer46612312017-12-02 8:35:373018 days ago1512203737
0x18Df2f1c...70A61e66b
0.89064839 ETH
Transfer44683072017-11-01 5:00:173049 days ago1509512417
0x18Df2f1c...70A61e66b
1.00028881 ETH
Transfer43038222017-09-23 6:06:113088 days ago1506146771
0x18Df2f1c...70A61e66b
1.00012259 ETH
Transfer41568672017-08-14 13:21:253128 days ago1502716885  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.