ETH Price: $3,309.62 (+1.25%)

Contract

0xfD452554FE72fFbC30776Ee9Ae528DEf8630408b
 

Overview

ETH Balance

0.016599 ETH

Eth Value

$54.94 (@ $3,309.62/ETH)

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Sweep54973542018-04-24 12:15:522463 days ago1524572152IN
0xfD452554...f8630408b
0 ETH0.0025060550
Transfer54973382018-04-24 12:12:432463 days ago1524571963IN
0xfD452554...f8630408b
37.4291 ETH0.00008424
Sweep54633192018-04-18 15:38:112468 days ago1524065891IN
0xfD452554...f8630408b
0 ETH0.0024996550
Transfer54632892018-04-18 15:29:272468 days ago1524065367IN
0xfD452554...f8630408b
5 ETH0.00008424
Sweep54631472018-04-18 14:53:342468 days ago1524063214IN
0xfD452554...f8630408b
0 ETH0.0024996550
Transfer54631222018-04-18 14:47:052468 days ago1524062825IN
0xfD452554...f8630408b
5 ETH0.00008424
Sweep54628872018-04-18 13:46:062468 days ago1524059166IN
0xfD452554...f8630408b
0 ETH0.0024996550
Transfer54628582018-04-18 13:37:572468 days ago1524058677IN
0xfD452554...f8630408b
1 ETH0.00008424
Sweep54521122018-04-16 17:32:452470 days ago1523899965IN
0xfD452554...f8630408b
0 ETH0.0024996550
Transfer54520862018-04-16 17:25:442470 days ago1523899544IN
0xfD452554...f8630408b
1 ETH0.00008424
Sweep54387642018-04-14 11:18:512473 days ago1523704731IN
0xfD452554...f8630408b
0 ETH0.0025028550
Transfer54387312018-04-14 11:13:032473 days ago1523704383IN
0xfD452554...f8630408b
50 ETH0.00008424
Transfer54387292018-04-14 11:12:352473 days ago1523704355IN
0xfD452554...f8630408b
20 ETH0.00008424
Sweep54330732018-04-13 12:10:142474 days ago1523621414IN
0xfD452554...f8630408b
0 ETH0.0025028550
Transfer54330552018-04-13 12:06:212474 days ago1523621181IN
0xfD452554...f8630408b
50 ETH0.00008424
Sweep54330382018-04-13 12:02:382474 days ago1523620958IN
0xfD452554...f8630408b
0 ETH0.0025028550
Transfer54330162018-04-13 11:58:212474 days ago1523620701IN
0xfD452554...f8630408b
50 ETH0.00008424
Sweep54330102018-04-13 11:55:462474 days ago1523620546IN
0xfD452554...f8630408b
0 ETH0.0025028550
Transfer54330082018-04-13 11:54:222474 days ago1523620462IN
0xfD452554...f8630408b
50 ETH0.00008424
Sweep54329732018-04-13 11:46:202474 days ago1523619980IN
0xfD452554...f8630408b
0 ETH0.0025028550
Transfer54329442018-04-13 11:39:122474 days ago1523619552IN
0xfD452554...f8630408b
50 ETH0.00008424
Sweep54328672018-04-13 11:21:152474 days ago1523618475IN
0xfD452554...f8630408b
0 ETH0.0025028550
Transfer54328362018-04-13 11:13:512474 days ago1523618031IN
0xfD452554...f8630408b
30 ETH0.00008424
Sweep54326622018-04-13 10:31:012474 days ago1523615461IN
0xfD452554...f8630408b
0 ETH0.0025028550
Transfer54326432018-04-13 10:26:272474 days ago1523615187IN
0xfD452554...f8630408b
20 ETH0.00008424
View all transactions

Latest 19 internal transactions

Advanced mode:
Parent Transaction Hash Block
From
To
55600412018-05-05 10:32:532452 days ago1525516373
0xfD452554...f8630408b
0.016599 ETH
54973542018-04-24 12:15:522463 days ago1524572152
0xfD452554...f8630408b
37.4291 ETH
54633192018-04-18 15:38:112468 days ago1524065891
0xfD452554...f8630408b
5 ETH
54631472018-04-18 14:53:342468 days ago1524063214
0xfD452554...f8630408b
5 ETH
54628872018-04-18 13:46:062468 days ago1524059166
0xfD452554...f8630408b
1 ETH
54521122018-04-16 17:32:452470 days ago1523899965
0xfD452554...f8630408b
1 ETH
54387642018-04-14 11:18:512473 days ago1523704731
0xfD452554...f8630408b
70 ETH
54330732018-04-13 12:10:142474 days ago1523621414
0xfD452554...f8630408b
50 ETH
54330382018-04-13 12:02:382474 days ago1523620958
0xfD452554...f8630408b
50 ETH
54330102018-04-13 11:55:462474 days ago1523620546
0xfD452554...f8630408b
50 ETH
54329732018-04-13 11:46:202474 days ago1523619980
0xfD452554...f8630408b
50 ETH
54328672018-04-13 11:21:152474 days ago1523618475
0xfD452554...f8630408b
30 ETH
54326622018-04-13 10:31:012474 days ago1523615461
0xfD452554...f8630408b
30 ETH
54325272018-04-13 9:58:082474 days ago1523613488
0xfD452554...f8630408b
11 ETH
54285992018-04-12 17:57:232474 days ago1523555843
0xfD452554...f8630408b
5 ETH
54280412018-04-12 15:39:432474 days ago1523547583
0xfD452554...f8630408b
5 ETH
54277382018-04-12 14:25:522474 days ago1523543152
0xfD452554...f8630408b
5 ETH
54274192018-04-12 13:08:372475 days ago1523538517
0xfD452554...f8630408b
0.07 ETH
49851382018-01-28 1:39:462549 days ago1517103586  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.