Cryo Explorer Ethereum Mainnet

Address Contract Partially Verified

Address 0xfED876867d4E030F8aFEF3F110bB3Cccc730EeEe
Balance 0.000000001 ETH ($0.00)
Nonce 1
Code Size 545 bytes
Last Active
Indexed Transactions 22 (10,728,29410,787,093)
Value (indexed) ↓ 8.7977 ETH
Gas Used (indexed) 390,180
External Etherscan · Sourcify

Contract Bytecode

545 bytes
0x606060405236156100495763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636ea056a98114610052578063c0ee0b8a14610092575b6100505b5b565b005b341561005a57fe5b61007e73ffffffffffffffffffffffffffffffffffffffff60043516602435610104565b604080519115158252519081900360200190f35b341561009a57fe5b604080516020600460443581810135601f810184900484028501840190955284845261005094823573ffffffffffffffffffffffffffffffffffffffff169460248035956064949293919092019181908401838280828437509496506101ef95505050505050565b005b6000805460408051602090810184905281517f3c18d31800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff878116600483015292519290931692633c18d318926024808301939282900301818787803b151561017b57fe5b6102c65a03f1151561018957fe5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff1660003660006040516020015260405180838380828437820191505092505050602060405180830381856102c65a03f415156101e057fe5b50506040515190505b92915050565b5b5050505600a165627a7a723058204cdd69fdcf3cf6cbee9677fe380fa5f044048aa9e060ec5619a21ca5a5bd4cd10029

Verified Source Code Partial Match

Compiler: v0.4.11+commit.68ef5810 Optimization: Yes (200 runs)
UserWallet.sol 170 lines
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);
    }
}

Write Contract 2 functions

These functions modify contract state and require a wallet transaction to execute.

sweep 0x6ea056a9
address _token
uint256 _amount
returns: bool
tokenFallback 0xc0ee0b8a
address _from
uint256 _value
bytes _data

Top Interactions

AddressTxnsSentReceived
0xFBb1b73C...BB98 5 5
0x8fD00f17...BA45 5 5

Recent Transactions

CSV View All 22 Transactions →
|
Hash Method Block Age From/To Value Txn Fee Type
0x35ed510e...58b6ee 0x6ea056a9 10,787,093 IN 0xFBb1b73C...BB98 0 ETH 0.02601365 ETH Legacy
0x18a6a980...2df1ba Transfer 10,787,075 IN 0x8fD00f17...BA45 2.0855 ETH 0.000126306000 ETH Legacy
0xf5eee21a...5d4c5e 0x6ea056a9 10,780,555 IN 0xFBb1b73C...BB98 0 ETH 0.02849250 ETH Legacy
0xfc5a32c5...73dc8b Transfer 10,780,532 IN 0x8fD00f17...BA45 2.9682 ETH 0.000126306000 ETH Legacy
0x96d4135b...09b9dc 0x6ea056a9 10,741,335 IN 0xFBb1b73C...BB98 0 ETH 0.00639372 ETH Legacy
0xbe039acd...ae9907 Transfer 10,741,316 IN 0x8fD00f17...BA45 1.2095 ETH 0.000126306000 ETH Legacy
0xfc8c908a...02ea00 0x6ea056a9 10,734,832 IN 0xFBb1b73C...BB98 0 ETH 0.00506796 ETH Legacy
0x2b2af613...b6ba4f Transfer 10,734,809 IN 0x8fD00f17...BA45 1.2565 ETH 0.000126306000 ETH Legacy
0x5dd640e0...05c653 0x6ea056a9 10,728,354 IN 0xFBb1b73C...BB98 0 ETH 0.00445053 ETH Legacy
0xdea30d88...dbc06c Transfer 10,728,294 IN 0x8fD00f17...BA45 1.2779 ETH 0.000126306000 ETH Legacy