ETH Price: $2,771.93 (+3.48%)

Contract

0x78d83BCAF7881D7515Ab8458eFFeE39a88b5A4Be
 

Overview

ETH Balance

0.00000000407186596 ETH

Eth Value

Less Than $0.01 (@ $2,771.93/ETH)

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Sweep50045982018-01-31 8:17:422579 days ago1517386662IN
0x78d83BCA...a88b5A4Be
0 ETH0.0045051390
Transfer50045672018-01-31 8:08:202579 days ago1517386100IN
0x78d83BCA...a88b5A4Be
4.24826876 ETH0.0020840499
Sweep48794232018-01-09 10:29:312601 days ago1515493771IN
0x78d83BCA...a88b5A4Be
0 ETH0.0030072660
Transfer48793772018-01-09 10:17:202601 days ago1515493040IN
0x78d83BCA...a88b5A4Be
34.419927 ETH0.0013266263.01960192
Sweep48791622018-01-09 9:21:512601 days ago1515489711IN
0x78d83BCA...a88b5A4Be
0 ETH0.0025496451
Transfer48791282018-01-09 9:11:122601 days ago1515489072IN
0x78d83BCA...a88b5A4Be
10 ETH0.0014104167
Sweep47579692017-12-19 4:06:272622 days ago1513656387IN
0x78d83BCA...a88b5A4Be
0 ETH0.0025561751
Transfer47579252017-12-19 3:55:242622 days ago1513655724IN
0x78d83BCA...a88b5A4Be
36.381978 ETH0.0004631222
Sweep47574882017-12-19 2:03:072622 days ago1513648987IN
0x78d83BCA...a88b5A4Be
0 ETH0.0025561751
Transfer47574752017-12-19 1:59:152622 days ago1513648755IN
0x78d83BCA...a88b5A4Be
2.9998756 ETH0.0004420721
Transfer47574542017-12-19 1:53:272622 days ago1513648407IN
0x78d83BCA...a88b5A4Be
60 ETH0.0004631222
Sweep47387182017-12-15 20:05:552625 days ago1513368355IN
0x78d83BCA...a88b5A4Be
0 ETH0.0025561751
Transfer47385812017-12-15 19:35:552625 days ago1513366555IN
0x78d83BCA...a88b5A4Be
21.912292 ETH0.0005283825.1
Sweep47232922017-12-13 3:10:072628 days ago1513134607IN
0x78d83BCA...a88b5A4Be
0 ETH0.0025496451
Transfer47232522017-12-13 3:00:372628 days ago1513134037IN
0x78d83BCA...a88b5A4Be
6 ETH0.0006317430.01
Sweep46946192017-12-08 4:02:002633 days ago1512705720IN
0x78d83BCA...a88b5A4Be
0 ETH0.0037094874.2
Transfer46944762017-12-08 3:25:072633 days ago1512703507IN
0x78d83BCA...a88b5A4Be
3 ETH0.001115753
Sweep45789892017-11-19 0:33:152652 days ago1511051595IN
0x78d83BCA...a88b5A4Be
0 ETH0.0009998620
Transfer45789782017-11-19 0:30:332652 days ago1511051433IN
0x78d83BCA...a88b5A4Be
9.24 ETH0.00008424
Sweep45189172017-11-09 8:51:002662 days ago1510217460IN
0x78d83BCA...a88b5A4Be
0 ETH0.0009998620
Transfer45189092017-11-09 8:48:502662 days ago1510217330IN
0x78d83BCA...a88b5A4Be
10.31 ETH0.00008424
Sweep45175452017-11-09 3:22:012662 days ago1510197721IN
0x78d83BCA...a88b5A4Be
0 ETH0.0009998620
Transfer45175422017-11-09 3:21:122662 days ago1510197672IN
0x78d83BCA...a88b5A4Be
1 ETH0.00008424
Sweep45175332017-11-09 3:19:382662 days ago1510197578IN
0x78d83BCA...a88b5A4Be
0 ETH0.0009998620
Transfer45175252017-11-09 3:17:502662 days ago1510197470IN
0x78d83BCA...a88b5A4Be
9.998 ETH0.00008424
View all transactions

Latest 20 internal transactions

Advanced mode:
Parent Transaction Hash Block
From
To
50045982018-01-31 8:17:422579 days ago1517386662
0x78d83BCA...a88b5A4Be
4.24826876 ETH
48794232018-01-09 10:29:312601 days ago1515493771
0x78d83BCA...a88b5A4Be
34.419927 ETH
48791622018-01-09 9:21:512601 days ago1515489711
0x78d83BCA...a88b5A4Be
10 ETH
47579692017-12-19 4:06:272622 days ago1513656387
0x78d83BCA...a88b5A4Be
36.381978 ETH
47574882017-12-19 2:03:072622 days ago1513648987
0x78d83BCA...a88b5A4Be
62.9998756 ETH
47387182017-12-15 20:05:552625 days ago1513368355
0x78d83BCA...a88b5A4Be
21.912292 ETH
47232922017-12-13 3:10:072628 days ago1513134607
0x78d83BCA...a88b5A4Be
6 ETH
46946192017-12-08 4:02:002633 days ago1512705720
0x78d83BCA...a88b5A4Be
3 ETH
45789892017-11-19 0:33:152652 days ago1511051595
0x78d83BCA...a88b5A4Be
9.24 ETH
45189172017-11-09 8:51:002662 days ago1510217460
0x78d83BCA...a88b5A4Be
10.31 ETH
45175452017-11-09 3:22:012662 days ago1510197721
0x78d83BCA...a88b5A4Be
1 ETH
45175332017-11-09 3:19:382662 days ago1510197578
0x78d83BCA...a88b5A4Be
9.998 ETH
45175162017-11-09 3:15:262662 days ago1510197326
0x78d83BCA...a88b5A4Be
6.859 ETH
44115082017-10-23 1:23:002679 days ago1508721780
0x78d83BCA...a88b5A4Be
5.1 ETH
43627042017-10-13 16:53:092689 days ago1507913589
0x78d83BCA...a88b5A4Be
5.04107686 ETH
43547582017-10-10 23:23:392691 days ago1507677819
0x78d83BCA...a88b5A4Be
2.4485855 ETH
43511722017-10-09 17:41:392693 days ago1507570899
0x78d83BCA...a88b5A4Be
15.8581051 ETH
43499012017-10-09 7:22:052693 days ago1507533725
0x78d83BCA...a88b5A4Be
10 ETH
42651892017-09-12 7:29:352720 days ago1505201375
0x78d83BCA...a88b5A4Be
0.5 ETH
42602032017-09-10 22:05:462721 days ago1505081146  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.