ETH Price: $2,786.68 (+4.26%)

Contract

0x9FB5Bf4D1f3358442E61636Bb5CE478D127ADae0
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Sweep50650472018-02-10 13:07:232569 days ago1518268043IN
0x9FB5Bf4D...D127ADae0
0 ETH0.0042082290
Sweep50316612018-02-04 22:37:302574 days ago1517783850IN
0x9FB5Bf4D...D127ADae0
0 ETH0.0042082290
Sweep50309552018-02-04 19:36:132574 days ago1517772973IN
0x9FB5Bf4D...D127ADae0
0 ETH0.0042024690
Sweep50192662018-02-02 20:50:262576 days ago1517604626IN
0x9FB5Bf4D...D127ADae0
0 ETH0.004196790
Sweep50114392018-02-01 12:11:402578 days ago1517487100IN
0x9FB5Bf4D...D127ADae0
0 ETH0.0042024690
Sweep50106722018-02-01 9:05:572578 days ago1517475957IN
0x9FB5Bf4D...D127ADae0
0 ETH0.0042082290
Sweep50094622018-02-01 4:09:502578 days ago1517458190IN
0x9FB5Bf4D...D127ADae0
0 ETH0.0042082290
Sweep49973952018-01-30 2:43:432580 days ago1517280223IN
0x9FB5Bf4D...D127ADae0
0 ETH0.0042082290
Sweep49882092018-01-28 13:51:172582 days ago1517147477IN
0x9FB5Bf4D...D127ADae0
0 ETH0.0042082290
Sweep49857952018-01-28 4:17:082582 days ago1517113028IN
0x9FB5Bf4D...D127ADae0
0 ETH0.0042082290
Sweep49837522018-01-27 19:55:172582 days ago1517082917IN
0x9FB5Bf4D...D127ADae0
0 ETH0.0042082290
Sweep49823382018-01-27 14:27:372583 days ago1517063257IN
0x9FB5Bf4D...D127ADae0
0 ETH0.0042024690
Sweep49819972018-01-27 12:59:512583 days ago1517057991IN
0x9FB5Bf4D...D127ADae0
0 ETH0.0042024690
Sweep49817442018-01-27 12:00:312583 days ago1517054431IN
0x9FB5Bf4D...D127ADae0
0 ETH0.0042082290
Sweep49747092018-01-26 7:36:402584 days ago1516952200IN
0x9FB5Bf4D...D127ADae0
0 ETH0.0042082290
Sweep49726902018-01-25 23:32:582584 days ago1516923178IN
0x9FB5Bf4D...D127ADae0
0 ETH0.0042082290
Sweep49693962018-01-25 10:09:252585 days ago1516874965IN
0x9FB5Bf4D...D127ADae0
0 ETH0.0042024690
Sweep49659282018-01-24 20:13:432585 days ago1516824823IN
0x9FB5Bf4D...D127ADae0
0 ETH0.0042024690
Sweep49644042018-01-24 13:56:042586 days ago1516802164IN
0x9FB5Bf4D...D127ADae0
0 ETH0.0042024690
Sweep49641872018-01-24 12:56:112586 days ago1516798571IN
0x9FB5Bf4D...D127ADae0
0 ETH0.004196790
Sweep49618272018-01-24 3:22:322586 days ago1516764152IN
0x9FB5Bf4D...D127ADae0
0 ETH0.0042082290
Sweep49594962018-01-23 18:18:592586 days ago1516731539IN
0x9FB5Bf4D...D127ADae0
0 ETH0.0042082290
Sweep49562382018-01-23 4:52:092587 days ago1516683129IN
0x9FB5Bf4D...D127ADae0
0 ETH0.0042082290
Sweep49551592018-01-23 0:26:592587 days ago1516667219IN
0x9FB5Bf4D...D127ADae0
0 ETH0.0042024690
Sweep49483232018-01-21 20:41:112588 days ago1516567271IN
0x9FB5Bf4D...D127ADae0
0 ETH0.0042082290
View all transactions

Latest 1 internal transaction

Advanced mode:
Parent Transaction Hash Block
From
To
46096622017-11-23 23:10:082647 days ago1511478608  Contract Creation0 ETH
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
/**
 *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

[{"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"}]

Deployed Bytecode

0x606060405236156100495763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636ea056a98114610052578063c0ee0b8a14610092575b6100505b5b565b005b341561005a57fe5b61007e73ffffffffffffffffffffffffffffffffffffffff60043516602435610104565b604080519115158252519081900360200190f35b341561009a57fe5b604080516020600460443581810135601f810184900484028501840190955284845261005094823573ffffffffffffffffffffffffffffffffffffffff169460248035956064949293919092019181908401838280828437509496506101ef95505050505050565b005b6000805460408051602090810184905281517f3c18d31800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff878116600483015292519290931692633c18d318926024808301939282900301818787803b151561017b57fe5b6102c65a03f1151561018957fe5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff1660003660006040516020015260405180838380828437820191505092505050602060405180830381856102c65a03f415156101e057fe5b50506040515190505b92915050565b5b5050505600a165627a7a723058204cdd69fdcf3cf6cbee9677fe380fa5f044048aa9e060ec5619a21ca5a5bd4cd10029

Swarm Source

bzzr://4cdd69fdcf3cf6cbee9677fe380fa5f044048aa9e060ec5619a21ca5a5bd4cd1

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
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.