ETH Price: $1,990.76 (-3.54%)

Contract

0x4fADb19BdE26A7347324344Db0cA4bCAa362e50A
 

Overview

ETH Balance

0.000000007355851667 ETH

Eth Value

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

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Sweep69036732018-12-17 14:38:272657 days ago1545057507IN
0x4fADb19B...Aa362e50A
0 ETH0.0025028550
Transfer69036582018-12-17 14:34:592657 days ago1545057299IN
0x4fADb19B...Aa362e50A
5.519927 ETH0.0010525550
Sweep60221952018-07-24 14:50:582803 days ago1532443858IN
0x4fADb19B...Aa362e50A
0 ETH0.0049993100
Transfer60221472018-07-24 14:40:202803 days ago1532443220IN
0x4fADb19B...Aa362e50A
10 ETH0.0012630660
Sweep56003982018-05-12 11:07:192876 days ago1526123239IN
0x4fADb19B...Aa362e50A
0 ETH0.0025028550
Transfer56003472018-05-12 10:56:052876 days ago1526122565IN
0x4fADb19B...Aa362e50A
8.007 ETH0.0021051100
Sweep53728072018-04-03 11:33:452915 days ago1522755225IN
0x4fADb19B...Aa362e50A
0 ETH0.0025028550
Transfer53728002018-04-03 11:32:162915 days ago1522755136IN
0x4fADb19B...Aa362e50A
5.04341198 ETH0.0021051100
Sweep53727932018-04-03 11:30:432915 days ago1522755043IN
0x4fADb19B...Aa362e50A
0 ETH0.0024996550
Transfer53727802018-04-03 11:26:142915 days ago1522754774IN
0x4fADb19B...Aa362e50A
2.997 ETH0.0021051100
Transfer53727612018-04-03 11:20:032915 days ago1522754403IN
0x4fADb19B...Aa362e50A
0.097 ETH0.0021051100
Sweep53385642018-03-28 18:32:542921 days ago1522261974IN
0x4fADb19B...Aa362e50A
0 ETH0.0025028550
Transfer53188772018-03-25 11:25:232924 days ago1521977123IN
0x4fADb19B...Aa362e50A
0.19268825 ETH0.0000211
Transfer53185092018-03-25 9:57:412924 days ago1521971861IN
0x4fADb19B...Aa362e50A
0.2357835 ETH0.0000422
Sweep51729272018-02-28 19:03:162949 days ago1519844596IN
0x4fADb19B...Aa362e50A
0 ETH0.0025028550
Transfer51726802018-02-28 18:06:532949 days ago1519841213IN
0x4fADb19B...Aa362e50A
0.337 ETH0.0004210220
Transfer50759632018-02-12 8:46:322965 days ago1518425192IN
0x4fADb19B...Aa362e50A
0.11520777 ETH0.0000422
Transfer50666172018-02-10 19:15:522967 days ago1518290152IN
0x4fADb19B...Aa362e50A
3.56786779 ETH0.0000211
Transfer49873912018-01-28 10:39:142980 days ago1517135954IN
0x4fADb19B...Aa362e50A
0.892168 ETH0.0000633
Transfer49873762018-01-28 10:34:592980 days ago1517135699IN
0x4fADb19B...Aa362e50A
0.892231 ETH0.0000633
Sweep49865242018-01-28 7:12:402980 days ago1517123560IN
0x4fADb19B...Aa362e50A
0 ETH0.0045051390
Transfer49865142018-01-28 7:09:372980 days ago1517123377IN
0x4fADb19B...Aa362e50A
1.74779164 ETH0.0010525550
Transfer49864942018-01-28 7:04:542980 days ago1517123094IN
0x4fADb19B...Aa362e50A
2.50896788 ETH0.0010525550
Transfer49136012018-01-15 17:18:562993 days ago1516036736IN
0x4fADb19B...Aa362e50A
1.15492 ETH0.0008440
Transfer49123792018-01-15 11:47:302993 days ago1516016850IN
0x4fADb19B...Aa362e50A
1.15576 ETH0.0008440
View all transactions

Latest 14 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
-69036732018-12-17 14:38:272657 days ago1545057507
0x4fADb19B...Aa362e50A
5.519927 ETH
Transfer60221952018-07-24 14:50:582803 days ago1532443858
0x4fADb19B...Aa362e50A
10 ETH
Transfer56003982018-05-12 11:07:192876 days ago1526123239
0x4fADb19B...Aa362e50A
8.007 ETH
Transfer53728072018-04-03 11:33:452915 days ago1522755225
0x4fADb19B...Aa362e50A
5.04341198 ETH
Transfer53727932018-04-03 11:30:432915 days ago1522755043
0x4fADb19B...Aa362e50A
3.094 ETH
Transfer53385642018-03-28 18:32:542921 days ago1522261974
0x4fADb19B...Aa362e50A
7.349485 ETH
Transfer53385342018-03-28 18:26:472921 days ago1522261607
0x4fADb19B...Aa362e50A
7.349485 ETH
Transfer51729272018-02-28 19:03:162949 days ago1519844596
0x4fADb19B...Aa362e50A
0.337 ETH
Transfer49865242018-01-28 7:12:402980 days ago1517123560
0x4fADb19B...Aa362e50A
4.25675952 ETH
Transfer47476162017-12-17 8:49:473022 days ago1513500587
0x4fADb19B...Aa362e50A
1.80172694 ETH
Transfer47269082017-12-13 18:27:283026 days ago1513189648
0x4fADb19B...Aa362e50A
2.86385499 ETH
Transfer47217092017-12-12 20:38:583027 days ago1513111138
0x4fADb19B...Aa362e50A
0.08140485 ETH
Transfer47157692017-12-11 19:39:333028 days ago1513021173
0x4fADb19B...Aa362e50A
0.10467718 ETH
Transfer47069852017-12-10 7:16:523029 days ago1512890212  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.