ETH Price: $2,076.83 (-4.95%)

Contract

0xfd8841b0B321Ee7cbc4cC7C9a86e50cdCdFaF5F9
 

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
Sweep57408042018-06-06 7:08:492850 days ago1528268929IN
0xfd8841b0...dCdFaF5F9
0 ETH0.0025028550
Transfer57407812018-06-06 7:02:552850 days ago1528268575IN
0xfd8841b0...dCdFaF5F9
1.23000185 ETH0.0002105110
Sweep52531962018-03-14 10:02:372934 days ago1521021757IN
0xfd8841b0...dCdFaF5F9
0 ETH0.0025028550
Transfer52531662018-03-14 9:54:382934 days ago1521021278IN
0xfd8841b0...dCdFaF5F9
0.69428 ETH0.000105255
Sweep47641862017-12-20 6:55:223018 days ago1513752922IN
0xfd8841b0...dCdFaF5F9
0 ETH0.0025496451
Transfer47641392017-12-20 6:45:573018 days ago1513752357IN
0xfd8841b0...dCdFaF5F9
1 ETH0.0010525550
Sweep42848352017-09-17 18:47:233111 days ago1505674043IN
0xfd8841b0...dCdFaF5F9
0 ETH0.0025496451
Transfer42848242017-09-17 18:44:133111 days ago1505673853IN
0xfd8841b0...dCdFaF5F9
1.1688 ETH0.0006315330
Sweep42385622017-09-04 19:51:233124 days ago1504554683IN
0xfd8841b0...dCdFaF5F9
0 ETH0.0025496451
Transfer42385542017-09-04 19:48:143124 days ago1504554494IN
0xfd8841b0...dCdFaF5F9
5 ETH0.0010525550
Sweep42347432017-09-03 17:59:023125 days ago1504461542IN
0xfd8841b0...dCdFaF5F9
0 ETH0.002552951
Transfer42347332017-09-03 17:56:433125 days ago1504461403IN
0xfd8841b0...dCdFaF5F9
0.66578034 ETH0.0004420721
Sweep42346552017-09-03 17:21:423125 days ago1504459302IN
0xfd8841b0...dCdFaF5F9
0 ETH0.0025496451
Transfer42346482017-09-03 17:18:383125 days ago1504459118IN
0xfd8841b0...dCdFaF5F9
4.92 ETH0.0004420721
Sweep42333592017-09-03 8:46:583126 days ago1504428418IN
0xfd8841b0...dCdFaF5F9
0 ETH0.0025496451
Transfer42333542017-09-03 8:45:123126 days ago1504428312IN
0xfd8841b0...dCdFaF5F9
0.05 ETH0.0004420721
Transfer42331812017-09-03 7:25:393126 days ago1504423539IN
0xfd8841b0...dCdFaF5F9
0.03 ETH0.0004815422.875
Sweep42331492017-09-03 7:09:423126 days ago1504422582IN
0xfd8841b0...dCdFaF5F9
0 ETH0.0025496451
Transfer42331402017-09-03 7:07:383126 days ago1504422458IN
0xfd8841b0...dCdFaF5F9
0.1 ETH0.0004815422.875
Sweep41832642017-08-20 21:37:193139 days ago1503265039IN
0xfd8841b0...dCdFaF5F9
0 ETH0.0015767931.5
Transfer41832572017-08-20 21:34:483139 days ago1503264888IN
0xfd8841b0...dCdFaF5F9
1.8902 ETH0.0004420721
Sweep41769072017-08-19 9:12:033141 days ago1503133923IN
0xfd8841b0...dCdFaF5F9
0 ETH0.0016614333.19083696
Transfer41768952017-08-19 9:08:023141 days ago1503133682IN
0xfd8841b0...dCdFaF5F9
0.56722458 ETH0.000465822.12722464
Sweep41768562017-08-19 8:53:213141 days ago1503132801IN
0xfd8841b0...dCdFaF5F9
0 ETH0.001659333.19083696
Transfer41768482017-08-19 8:50:263141 days ago1503132626IN
0xfd8841b0...dCdFaF5F9
0.1 ETH0.000465822.12722464
View all transactions

Latest 15 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer57408042018-06-06 7:08:492850 days ago1528268929
0xfd8841b0...dCdFaF5F9
1.23000185 ETH
Transfer52531962018-03-14 10:02:372934 days ago1521021757
0xfd8841b0...dCdFaF5F9
0.69428 ETH
Transfer47641862017-12-20 6:55:223018 days ago1513752922
0xfd8841b0...dCdFaF5F9
1 ETH
Transfer42848352017-09-17 18:47:233111 days ago1505674043
0xfd8841b0...dCdFaF5F9
1.1688 ETH
Transfer42385622017-09-04 19:51:233124 days ago1504554683
0xfd8841b0...dCdFaF5F9
5 ETH
Transfer42347432017-09-03 17:59:023125 days ago1504461542
0xfd8841b0...dCdFaF5F9
0.66578034 ETH
Transfer42346552017-09-03 17:21:423125 days ago1504459302
0xfd8841b0...dCdFaF5F9
4.92 ETH
Transfer42333592017-09-03 8:46:583126 days ago1504428418
0xfd8841b0...dCdFaF5F9
0.08 ETH
Transfer42331492017-09-03 7:09:423126 days ago1504422582
0xfd8841b0...dCdFaF5F9
0.1 ETH
Transfer41832642017-08-20 21:37:193139 days ago1503265039
0xfd8841b0...dCdFaF5F9
1.8902 ETH
Transfer41769072017-08-19 9:12:033141 days ago1503133923
0xfd8841b0...dCdFaF5F9
0.56722458 ETH
Transfer41768562017-08-19 8:53:213141 days ago1503132801
0xfd8841b0...dCdFaF5F9
0.1 ETH
Transfer41661402017-08-16 18:58:173143 days ago1502909897
0xfd8841b0...dCdFaF5F9
0.52671291 ETH
Transfer41660252017-08-16 18:20:053143 days ago1502907605
0xfd8841b0...dCdFaF5F9
0.1 ETH
Transfer41644412017-08-16 9:11:013144 days ago1502874661  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.