ETH Price: $2,145.45 (-0.02%)
Gas: 0.04 Gwei

Contract

0x661e38e201f6Eb686a9bCDC16999119DFd0ecC4A
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Sweep51928362018-03-04 4:03:012938 days ago1520136181IN
0x661e38e2...DFd0ecC4A
0 ETH0.0024996550
Transfer51927912018-03-04 3:52:202938 days ago1520135540IN
0x661e38e2...DFd0ecC4A
8.74364562 ETH0.000063153
Sweep48897892018-01-11 8:35:242990 days ago1515659724IN
0x661e38e2...DFd0ecC4A
0 ETH0.0044993790
Transfer48897592018-01-11 8:26:272990 days ago1515659187IN
0x661e38e2...DFd0ecC4A
2 ETH0.0014104167
Sweep48673932018-01-07 5:37:022994 days ago1515303422IN
0x661e38e2...DFd0ecC4A
0 ETH0.0045051390
Transfer48673582018-01-07 5:26:472994 days ago1515302807IN
0x661e38e2...DFd0ecC4A
0.28567955 ETH0.0018524888
Sweep48522572018-01-04 10:18:382997 days ago1515061118IN
0x661e38e2...DFd0ecC4A
0 ETH0.002552951
Transfer48507782018-01-04 4:06:312997 days ago1515038791IN
0x661e38e2...DFd0ecC4A
0.75790702 ETH0.0004420721
Sweep48201802017-12-29 20:38:223003 days ago1514579902IN
0x661e38e2...DFd0ecC4A
0 ETH0.0025496451
Transfer48201452017-12-29 20:26:583003 days ago1514579218IN
0x661e38e2...DFd0ecC4A
0.44 ETH0.0004210220
Sweep48159052017-12-29 2:46:213003 days ago1514515581IN
0x661e38e2...DFd0ecC4A
0 ETH0.0025496451
Transfer48158712017-12-29 2:36:293003 days ago1514514989IN
0x661e38e2...DFd0ecC4A
1 ETH0.0004210220
Sweep48045622017-12-27 4:53:273005 days ago1514350407IN
0x661e38e2...DFd0ecC4A
0 ETH0.002552951
Transfer48045282017-12-27 4:45:423005 days ago1514349942IN
0x661e38e2...DFd0ecC4A
0.45655373 ETH0.0004420721
Sweep47790332017-12-22 22:15:523010 days ago1513980952IN
0x661e38e2...DFd0ecC4A
0 ETH0.0029995860
Transfer47786182017-12-22 20:36:453010 days ago1513975005IN
0x661e38e2...DFd0ecC4A
1.27320768 ETH0.0008420440
Sweep47724742017-12-21 18:23:193011 days ago1513880599IN
0x661e38e2...DFd0ecC4A
0 ETH0.0030034260
Transfer47720992017-12-21 16:42:463011 days ago1513874566IN
0x661e38e2...DFd0ecC4A
0.22318743 ETH0.0008420440
Transfer47683222017-12-21 0:36:083011 days ago1513816568IN
0x661e38e2...DFd0ecC4A
0.02094243 ETH0.0008420440
Sweep47682512017-12-21 0:14:353011 days ago1513815275IN
0x661e38e2...DFd0ecC4A
0 ETH0.002552951
Transfer47681482017-12-20 23:48:363012 days ago1513813716IN
0x661e38e2...DFd0ecC4A
0.64409677 ETH0.0008420440
Transfer47678192017-12-20 22:26:543012 days ago1513808814IN
0x661e38e2...DFd0ecC4A
0.34641037 ETH0.0008420440
Sweep47618962017-12-19 20:55:263013 days ago1513716926IN
0x661e38e2...DFd0ecC4A
0 ETH0.0025496451
Transfer47618872017-12-19 20:52:073013 days ago1513716727IN
0x661e38e2...DFd0ecC4A
0.1 ETH0.0007115233.8
Sweep47618642017-12-19 20:45:153013 days ago1513716315IN
0x661e38e2...DFd0ecC4A
0 ETH0.002552951
View all transactions

Latest 16 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer51928362018-03-04 4:03:012938 days ago1520136181
0x661e38e2...DFd0ecC4A
8.74364562 ETH
Transfer48897892018-01-11 8:35:242990 days ago1515659724
0x661e38e2...DFd0ecC4A
2 ETH
Transfer48673932018-01-07 5:37:022994 days ago1515303422
0x661e38e2...DFd0ecC4A
0.28567955 ETH
Transfer48522572018-01-04 10:18:382997 days ago1515061118
0x661e38e2...DFd0ecC4A
0.75790702 ETH
Transfer48201802017-12-29 20:38:223003 days ago1514579902
0x661e38e2...DFd0ecC4A
0.44 ETH
Transfer48159052017-12-29 2:46:213003 days ago1514515581
0x661e38e2...DFd0ecC4A
1 ETH
Transfer48045622017-12-27 4:53:273005 days ago1514350407
0x661e38e2...DFd0ecC4A
0.45655373 ETH
Transfer47790332017-12-22 22:15:523010 days ago1513980952
0x661e38e2...DFd0ecC4A
1.27320768 ETH
Transfer47724742017-12-21 18:23:193011 days ago1513880599
0x661e38e2...DFd0ecC4A
0.24412986 ETH
Transfer47682512017-12-21 0:14:353011 days ago1513815275
0x661e38e2...DFd0ecC4A
0.99050714 ETH
Transfer47618962017-12-19 20:55:263013 days ago1513716926
0x661e38e2...DFd0ecC4A
0.1 ETH
Transfer47618642017-12-19 20:45:153013 days ago1513716315
0x661e38e2...DFd0ecC4A
0.2377 ETH
Transfer47528822017-12-18 6:36:033014 days ago1513578963
0x661e38e2...DFd0ecC4A
0.1 ETH
Transfer47476322017-12-17 8:54:373015 days ago1513500877
0x661e38e2...DFd0ecC4A
0.1 ETH
Transfer47471252017-12-17 6:54:343015 days ago1513493674
0x661e38e2...DFd0ecC4A
0.10356 ETH
Transfer47445072017-12-16 20:16:313016 days ago1513455391  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.