ETH Price: $2,723.74 (-3.62%)
Gas: 0.65 Gwei

Contract

0x7a62C1A1C87F139026f227DC251bd9a6D015CcC6
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Sweep50768992018-02-12 12:30:122568 days ago1518438612IN
0x7a62C1A1...6D015CcC6
0 ETH0.0044993790
Transfer50768632018-02-12 12:20:162568 days ago1518438016IN
0x7a62C1A1...6D015CcC6
0.24 ETH0.0004420721
Sweep50596472018-02-09 15:03:042571 days ago1518188584IN
0x7a62C1A1...6D015CcC6
0 ETH0.0044993790
Transfer50596172018-02-09 14:55:182571 days ago1518188118IN
0x7a62C1A1...6D015CcC6
12.83 ETH0.0004420721
Sweep46003342017-11-22 11:18:112650 days ago1511349491IN
0x7a62C1A1...6D015CcC6
0 ETH0.0009998620
Transfer46003252017-11-22 11:14:572650 days ago1511349297IN
0x7a62C1A1...6D015CcC6
4.99 ETH0.0004736422.5
Sweep45810372017-11-19 8:22:142653 days ago1511079734IN
0x7a62C1A1...6D015CcC6
0 ETH0.0009998620
Transfer45810252017-11-19 8:20:202653 days ago1511079620IN
0x7a62C1A1...6D015CcC6
7 ETH0.0004420721
Sweep45742662017-11-18 6:26:262655 days ago1510986386IN
0x7a62C1A1...6D015CcC6
0 ETH0.0009998620
Transfer45742602017-11-18 6:24:492655 days ago1510986289IN
0x7a62C1A1...6D015CcC6
0.59 ETH0.0006315330
Sweep45617022017-11-16 5:57:282657 days ago1510811848IN
0x7a62C1A1...6D015CcC6
0 ETH0.0009998620
Transfer45616942017-11-16 5:56:182657 days ago1510811778IN
0x7a62C1A1...6D015CcC6
0.39 ETH0.00012636
Sweep45564462017-11-15 9:21:192657 days ago1510737679IN
0x7a62C1A1...6D015CcC6
0 ETH0.0009998620
Transfer45564342017-11-15 9:19:022657 days ago1510737542IN
0x7a62C1A1...6D015CcC6
4.7804 ETH0.0006315330
Sweep44167512017-10-23 21:33:342680 days ago1508794414IN
0x7a62C1A1...6D015CcC6
0 ETH0.0015517631
Transfer44167492017-10-23 21:33:022680 days ago1508794382IN
0x7a62C1A1...6D015CcC6
4.995 ETH0.0008841442
Sweep44167432017-10-23 21:31:082680 days ago1508794268IN
0x7a62C1A1...6D015CcC6
0 ETH0.0015497831
Transfer44167322017-10-23 21:29:152680 days ago1508794155IN
0x7a62C1A1...6D015CcC6
3.04 ETH0.0004420721
Sweep41814422017-08-20 11:09:152744 days ago1503227355IN
0x7a62C1A1...6D015CcC6
0 ETH0.0015747731.5
Transfer41814392017-08-20 11:07:392744 days ago1503227259IN
0x7a62C1A1...6D015CcC6
9 ETH0.0004420721
Sweep41791892017-08-19 22:08:172745 days ago1503180497IN
0x7a62C1A1...6D015CcC6
0 ETH0.001659333.19083696
Transfer41791792017-08-19 22:03:062745 days ago1503180186IN
0x7a62C1A1...6D015CcC6
1 ETH0.0004420721

Latest 12 internal transactions

Advanced mode:
Parent Transaction Hash Block
From
To
50768992018-02-12 12:30:122568 days ago1518438612
0x7a62C1A1...6D015CcC6
0.24 ETH
50596472018-02-09 15:03:042571 days ago1518188584
0x7a62C1A1...6D015CcC6
12.83 ETH
46003342017-11-22 11:18:112650 days ago1511349491
0x7a62C1A1...6D015CcC6
4.99 ETH
45810372017-11-19 8:22:142653 days ago1511079734
0x7a62C1A1...6D015CcC6
7 ETH
45742662017-11-18 6:26:262655 days ago1510986386
0x7a62C1A1...6D015CcC6
0.59 ETH
45617022017-11-16 5:57:282657 days ago1510811848
0x7a62C1A1...6D015CcC6
0.39 ETH
45564462017-11-15 9:21:192657 days ago1510737679
0x7a62C1A1...6D015CcC6
4.7804 ETH
44167512017-10-23 21:33:342680 days ago1508794414
0x7a62C1A1...6D015CcC6
4.995 ETH
44167432017-10-23 21:31:082680 days ago1508794268
0x7a62C1A1...6D015CcC6
3.04 ETH
41814422017-08-20 11:09:152744 days ago1503227355
0x7a62C1A1...6D015CcC6
9 ETH
41791892017-08-19 22:08:172745 days ago1503180497
0x7a62C1A1...6D015CcC6
1 ETH
41746152017-08-18 20:00:082746 days ago1503086408  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.