ETH Price: $2,098.95 (+1.66%)

Contract

0xC60300b9052C8A9D3E5e8CCc5c371D8D75F95B2D
 

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
Transfer77696882019-05-16 6:22:562511 days ago1557987776IN
0xC60300b9...D75F95B2D
0.13746221 ETH0.00031515
Transfer77691692019-05-16 4:16:352511 days ago1557980195IN
0xC60300b9...D75F95B2D
0.13771421 ETH0.00031515
Transfer77683582019-05-16 1:13:222511 days ago1557969202IN
0xC60300b9...D75F95B2D
0.13803761 ETH0.0002110
Transfer77683502019-05-16 1:11:352511 days ago1557969095IN
0xC60300b9...D75F95B2D
0.13818461 ETH0.0000633
Transfer77674602019-05-15 21:50:112511 days ago1557957011IN
0xC60300b9...D75F95B2D
0.11498659 ETH0.00007983.8
Transfer77674362019-05-15 21:46:382511 days ago1557956798IN
0xC60300b9...D75F95B2D
0.1161203 ETH0.0001055
Transfer77674152019-05-15 21:41:132511 days ago1557956473IN
0xC60300b9...D75F95B2D
0.11074576 ETH0.0001055
Transfer77674152019-05-15 21:41:132511 days ago1557956473IN
0xC60300b9...D75F95B2D
0.13845845 ETH0.0001055
Sweep77671992019-05-15 20:54:562511 days ago1557953696IN
0xC60300b9...D75F95B2D
0 ETH0.0025028550
Transfer77671802019-05-15 20:50:382511 days ago1557953438IN
0xC60300b9...D75F95B2D
0.078987 ETH0.0006315330
Transfer77668122019-05-15 19:32:552511 days ago1557948775IN
0xC60300b9...D75F95B2D
0.13752145 ETH0.0002110
Transfer77659792019-05-15 16:28:392512 days ago1557937719IN
0xC60300b9...D75F95B2D
0.13767685 ETH0.00027313
Transfer77645952019-05-15 11:17:152512 days ago1557919035IN
0xC60300b9...D75F95B2D
0.13790365 ETH0.00023111
Transfer77643062019-05-15 10:11:432512 days ago1557915103IN
0xC60300b9...D75F95B2D
0.13808887 ETH0.000228910.9
Transfer77637512019-05-15 8:05:182512 days ago1557907518IN
0xC60300b9...D75F95B2D
0.13827157 ETH0.00023111
Transfer77629252019-05-15 4:59:082512 days ago1557896348IN
0xC60300b9...D75F95B2D
0.13846897 ETH0.0001688
Transfer77615172019-05-14 23:47:092512 days ago1557877629IN
0xC60300b9...D75F95B2D
0.13862857 ETH0.0000422
Transfer77612342019-05-14 22:41:522512 days ago1557873712IN
0xC60300b9...D75F95B2D
0.13866217 ETH0.0000422
Transfer77609332019-05-14 21:38:172512 days ago1557869897IN
0xC60300b9...D75F95B2D
0.13869577 ETH0.0000422
Transfer77606482019-05-14 20:34:162512 days ago1557866056IN
0xC60300b9...D75F95B2D
0.13872937 ETH0.0000422
Transfer77597922019-05-14 17:26:402512 days ago1557854800IN
0xC60300b9...D75F95B2D
0.13875877 ETH0.0000633
Transfer77594982019-05-14 16:23:052513 days ago1557850985IN
0xC60300b9...D75F95B2D
0.13877977 ETH0.0002110
Transfer77592382019-05-14 15:21:542513 days ago1557847314IN
0xC60300b9...D75F95B2D
0.13894777 ETH0.0002110
Transfer77587272019-05-14 13:25:192513 days ago1557840319IN
0xC60300b9...D75F95B2D
0.13911577 ETH0.0002110
Transfer77579012019-05-14 10:13:382513 days ago1557828818IN
0xC60300b9...D75F95B2D
0.13928377 ETH0.0002110
View all transactions

Latest 7 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
-77671992019-05-15 20:54:562511 days ago1557953696
0xC60300b9...D75F95B2D
0.078987 ETH
-75668202019-04-14 15:16:432543 days ago1555255003
0xC60300b9...D75F95B2D
0.417472 ETH
-75214202019-04-07 13:52:522550 days ago1554645172
0xC60300b9...D75F95B2D
0.407448 ETH
-74963992019-04-03 16:39:562554 days ago1554309596
0xC60300b9...D75F95B2D
0.571578 ETH
-72046082019-02-11 0:18:232605 days ago1549844303
0xC60300b9...D75F95B2D
1.57228901 ETH
Transfer66490512018-11-05 16:47:362702 days ago1541436456
0xC60300b9...D75F95B2D
0.47288219 ETH
Transfer50470862018-02-07 12:42:212974 days ago1518007341  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.