ETH Price: $2,393.51 (-2.17%)

Contract

0x80D865fcaDFF0e457502CDf213b4A42b95a78452
 

Overview

ETH Balance

0.017933131276103633 ETH

Eth Value

$42.92 (@ $2,393.51/ETH)

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer62077902018-08-24 23:21:582238 days ago1535152918IN
0x80D865fc...b95a78452
0.01793312 ETH0.000021051
Sweep61663602018-08-17 23:21:192245 days ago1534548079IN
0x80D865fc...b95a78452
0 ETH0.0049993100
Transfer61663332018-08-17 23:15:192245 days ago1534547719IN
0x80D865fc...b95a78452
0.03303862 ETH0.000021051
Transfer61249552018-08-10 23:09:572252 days ago1533942597IN
0x80D865fc...b95a78452
0.03899108 ETH0.000021051
Sweep60833872018-08-03 23:12:592259 days ago1533337979IN
0x80D865fc...b95a78452
0 ETH0.0050057100
Transfer60833702018-08-03 23:07:542259 days ago1533337674IN
0x80D865fc...b95a78452
0.03872555 ETH0.000021051
Transfer60418592018-07-27 23:05:512266 days ago1532732751IN
0x80D865fc...b95a78452
0.03736911 ETH0.000021051
Sweep60005762018-07-20 23:09:092273 days ago1532128149IN
0x80D865fc...b95a78452
0 ETH0.0050057100
Transfer60005442018-07-20 23:00:372273 days ago1532127637IN
0x80D865fc...b95a78452
0.03856864 ETH0.000021051
Transfer59593372018-07-13 23:01:282280 days ago1531522888IN
0x80D865fc...b95a78452
0.04005571 ETH0.000021051
Sweep59183162018-07-06 23:02:282287 days ago1530918148IN
0x80D865fc...b95a78452
0 ETH0.0050057100
Transfer59182952018-07-06 22:57:182287 days ago1530917838IN
0x80D865fc...b95a78452
0.04212658 ETH0.000021051
Transfer58773432018-06-29 22:50:522294 days ago1530312652IN
0x80D865fc...b95a78452
0.03535762 ETH0.000021051
Sweep58367852018-06-22 22:54:542301 days ago1529708094IN
0x80D865fc...b95a78452
0 ETH0.0024996550
Transfer58367592018-06-22 22:48:022301 days ago1529707682IN
0x80D865fc...b95a78452
0.03935657 ETH0.000021051
Transfer57956762018-06-15 22:46:142308 days ago1529102774IN
0x80D865fc...b95a78452
0.03232713 ETH0.000021051
Sweep57557972018-06-08 22:51:052315 days ago1528498265IN
0x80D865fc...b95a78452
0 ETH0.0025028550
Transfer57557752018-06-08 22:45:102315 days ago1528497910IN
0x80D865fc...b95a78452
0.04138662 ETH0.000021051
Transfer57162832018-06-01 22:41:442322 days ago1527892904IN
0x80D865fc...b95a78452
0.04148705 ETH0.000021051
Sweep56767192018-05-25 22:42:502329 days ago1527288170IN
0x80D865fc...b95a78452
0 ETH0.0025028550
Transfer56766992018-05-25 22:37:312329 days ago1527287851IN
0x80D865fc...b95a78452
0.03898813 ETH0.000021051
Transfer56372892018-05-18 22:37:282336 days ago1526683048IN
0x80D865fc...b95a78452
0.03787028 ETH0.000021051
Sweep55974112018-05-11 22:39:382343 days ago1526078378IN
0x80D865fc...b95a78452
0 ETH0.0025028550
Transfer55973862018-05-11 22:32:312343 days ago1526077951IN
0x80D865fc...b95a78452
0.03792519 ETH0.000021051
Transfer55571472018-05-04 22:26:492350 days ago1525472809IN
0x80D865fc...b95a78452
0.03885886 ETH0.000021051
View all transactions

Latest 17 internal transactions

Advanced mode:
Parent Transaction Hash Block From To
61663602018-08-17 23:21:192245 days ago1534548079
0x80D865fc...b95a78452
0.07202972 ETH
60833872018-08-03 23:12:592259 days ago1533337979
0x80D865fc...b95a78452
0.07609467 ETH
60005762018-07-20 23:09:092273 days ago1532128149
0x80D865fc...b95a78452
0.07862436 ETH
59183162018-07-06 23:02:282287 days ago1530918148
0x80D865fc...b95a78452
0.07748421 ETH
58367852018-06-22 22:54:542301 days ago1529708094
0x80D865fc...b95a78452
0.07168371 ETH
57557972018-06-08 22:51:052315 days ago1528498265
0x80D865fc...b95a78452
0.08287369 ETH
56767192018-05-25 22:42:502329 days ago1527288170
0x80D865fc...b95a78452
0.07685842 ETH
55974112018-05-11 22:39:382343 days ago1526078378
0x80D865fc...b95a78452
0.07678405 ETH
55172262018-04-27 22:28:472357 days ago1524868127
0x80D865fc...b95a78452
0.08151824 ETH
54355612018-04-13 22:25:012371 days ago1523658301
0x80D865fc...b95a78452
0.08043521 ETH
53513062018-03-30 22:17:092385 days ago1522448229
0x80D865fc...b95a78452
0.056173 ETH
52681202018-03-16 23:04:272399 days ago1521241467
0x80D865fc...b95a78452
0.07428927 ETH
51854462018-03-02 22:09:232413 days ago1520028563
0x80D865fc...b95a78452
0.07195969 ETH
51030002018-02-16 22:03:102427 days ago1518818590
0x80D865fc...b95a78452
0.05759919 ETH
50195302018-02-02 21:51:542441 days ago1517608314
0x80D865fc...b95a78452
0.0683823 ETH
49369292018-01-19 21:38:142455 days ago1516397894
0x80D865fc...b95a78452
0.06167235 ETH
46200952017-11-25 15:22:422510 days ago1511623362  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.